टोरगार्ड आईपी चेकर

Wireguard VPN – समस्या निवारण

अगला, हम “init” (मूल) नामस्थान में एक Wireguard इंटरफ़ेस बनाते हैं:

टोरगार्ड आईपी चेकर

सभी लिनक्स नेटवर्क इंटरफेस की तरह, Wireguard नेटवर्क नेमस्पेस इन्फ्रास्ट्रक्चर में एकीकृत करता है. इसका मतलब है कि एक व्यवस्थापक के पास कई पूरी तरह से अलग -अलग नेटवर्किंग सबसिस्टम हो सकते हैं और यह चुन सकते हैं कि प्रत्येक में कौन से इंटरफेस रहते हैं.

Wireguard कुछ काफी दिलचस्प करता है. जब एक Wireguard इंटरफ़ेस बनाया जाता है (IP लिंक Add WG0 प्रकार Wireguard के साथ), तो यह नामस्थान को याद करता है जिसमें इसे बनाया गया था. “मैं नेमस्पेस में बनाया गया था.”बाद में, वाइरगार्ड को नए नामस्थानों में ले जाया जा सकता है (” मैं नेमस्पेस बी में जा रहा हूं.”), लेकिन यह अभी भी याद होगा कि यह नेमस्पेस ए में उत्पन्न हुआ था.

Wireguard वास्तव में एन्क्रिप्टेड पैकेट भेजने और प्राप्त करने के लिए एक UDP सॉकेट का उपयोग करता है. यह सॉकेट हमेशा नेमस्पेस में रहता है – मूल जन्मस्थान नेमस्पेस. यह कुछ बहुत ही शांत गुणों के लिए अनुमति देता है. अर्थात्, आप एक नेमस्पेस (ए) में वाइरगार्ड इंटरफ़ेस बना सकते हैं, इसे दूसरे (बी) में ले जा सकते हैं, और नेमस्पेस बी से भेजे गए क्लियरटेक्स्ट पैकेट को नेमस्पेस में एक यूडीपी सॉकेट के माध्यम से एन्क्रिप्टेड भेजा है.

(ध्यान दें कि यह एक ही तकनीक उपयोगकर्ताओं के लिए उपलब्ध है, जो एक नाम स्थान में बदलने से पहले और पिछले नेमस्पेस ओपन से फ़ाइल-विवरणक को रखने से पहले, एक नामस्थान में सॉकेट फ़ाइल-विवरणक बनाकर, एक नाम स्थान पर एक सॉकेट फ़ाइल-विवरणक बनाकर उपलब्ध है।.)

यह कुछ बहुत अच्छी संभावनाओं को खोलता है.

साधारण कंटेनरीकरण

इसका सबसे स्पष्ट उपयोग कंटेनर (जैसे डॉकर कंटेनर, उदाहरण के लिए) देना है।.

कंटेनर # IP Addr 1: LO: MTU 65536 QDISC NOQUEUE STATE अज्ञात समूह डिफ़ॉल्ट Qlen 1 लिंक/लूपबैक 00: 00: 00: 00: 00: 00: 00 BRD 00: 00: 00: 00: 00: 00 INT 127.0.0.1/8 स्कोप होस्ट लो वैध_लफ़्ट फॉरएवर पसंदीदा_लफ्ट फॉरएवर फॉरएवर.168.4.33/32 स्कोप ग्लोबल WG0 WALL_LFT हमेशा के लिए पसंदीदा_लफ़्ट हमेशा के लिए 

यहां, नेटवर्क तक पहुंचने का एकमात्र तरीका WG0, Wireguard इंटरफ़ेस के माध्यम से है.

इस तरह से एक सेटअप को पूरा करने का तरीका इस प्रकार है:

पहले हम “कंटेनर” नामक नेटवर्क नाम स्थान बनाते हैं:

# IP netns कंटेनर जोड़ें 

अगला, हम “init” (मूल) नामस्थान में एक Wireguard इंटरफ़ेस बनाते हैं:

# IP लिंक WG0 प्रकार WireGuard जोड़ें 

अंत में, हम उस इंटरफ़ेस को नए नामस्थान में स्थानांतरित करते हैं:

# IP लिंक सेट wg0 netns कंटेनर 

अब हम WG0 को हमेशा की तरह कॉन्फ़िगर कर सकते हैं, सिवाय इसके कि हम ऐसा करने में इसके नए नामस्थान को निर्दिष्ट करते हैं:

# ip -n कंटेनर addr जोड़ें 192.168.4.33/32 dev WG0 # IP Netns Exec कंटेनर WG SETCONF WG0/ETC/WIREGUARD/WG0.conf # ip -n कंटेनर लिंक सेट wg0 up # ip -n कंटेनर रूट डिफ़ॉल्ट देव wg0 जोड़ें 

और वोइला, अब “कंटेनर” के लिए किसी भी नेटवर्क संसाधनों तक पहुंचने का एकमात्र तरीका वायरगार्ड इंटरफ़ेस के माध्यम से होगा.

ध्यान दें कि डॉकर उपयोगकर्ता नेटवर्क नेमस्पेस नाम के बजाय एक डॉकर प्रक्रिया के पीआईडी ​​को निर्दिष्ट कर सकते हैं, नेटवर्क नेमस्पेस का उपयोग करने के लिए जो पहले से ही अपने कंटेनर के लिए बनाया गया था:

# IP लिंक सेट WG0 NETNS 879 

अपने सभी ट्रैफ़िक को रूट करना

एक कम स्पष्ट उपयोग, लेकिन बेहद शक्तिशाली, फिर भी, वायरगार्ड की इस विशेषता का उपयोग वायरगार्ड के सभी सामान्य इंटरनेट ट्रैफ़िक को पुनर्निर्देशित करने के लिए वाइरगार्ड की इस विशेषता का उपयोग करना है. लेकिन पहले, चलो ऐसा करने के लिए पुराने सामान्य समाधानों की समीक्षा करें:

क्लासिक समाधान

क्लासिक समाधान विभिन्न प्रकार के रूटिंग टेबल कॉन्फ़िगरेशन पर निर्भर करते हैं. इन सभी के लिए, हमें वास्तविक वायरगार्ड एंडपॉइंट के लिए कुछ स्पष्ट मार्ग निर्धारित करने की आवश्यकता है. इन उदाहरणों के लिए, मान लें कि Wireguard समापन बिंदु डेमो है.वायरगार्ड.कॉम, जो, लेखन के रूप में, 163 का संकल्प करता है.172.161.0 . इसके अलावा, मान लें कि हम आमतौर पर ETH0 और 192 के क्लासिक गेटवे का उपयोग करके इंटरनेट से जुड़ते हैं.168.1.1 .

डिफ़ॉल्ट मार्ग की जगह

सबसे सीधी तकनीक केवल डिफ़ॉल्ट मार्ग को बदलना है, लेकिन वायरगार्ड एंडपॉइंट के लिए एक स्पष्ट नियम जोड़ें:

# आईपी रूट डेल डिफ़ॉल्ट # आईपी रूट डिफ़ॉल्ट देव WG0 # IP रूट जोड़ें 163 जोड़ें.172.161.192 के माध्यम से 0/32.168.1.1 देव एथ 0 

यह काम करता है और अपेक्षाकृत सीधा है, लेकिन डीएचसीपी डेमन्स और इस तरह के पूर्ववत करना पसंद है कि हमने अभी क्या किया है, दुर्भाग्य से.

डिफ़ॉल्ट मार्ग को ओवरराइड करना

इसलिए, डिफ़ॉल्ट मार्ग को बदलने के बजाय, हम इसे केवल दो और विशिष्ट नियमों के साथ ओवरराइड कर सकते हैं जो कि डिफ़ॉल्ट रूप से संक्षेप में जोड़ते हैं, लेकिन डिफ़ॉल्ट से पहले मेल खाते हैं:

# आईपी रूट 0 जोड़ें.0.0.0/1 देव WG0 # IP रूट 128 जोड़ें.0.0.0/1 देव WG0 # IP रूट 163 जोड़ें.172.161.192 के माध्यम से 0/32.168.1.1 देव एथ 0 

इस तरह, हम डिफ़ॉल्ट मार्ग को क्लोबर नहीं करते हैं. यह भी काफी अच्छी तरह से काम करता है, हालांकि, दुर्भाग्य से जब ETH0 ऊपर और नीचे जाता है, तो डेमो के लिए स्पष्ट मार्ग.वायरगार्ड.कॉम भूल जाएगा, जो कष्टप्रद है.

नियम-आधारित मार्ग

कुछ लोग नियम-आधारित रूटिंग और कई रूटिंग टेबल का उपयोग करना पसंद करते हैं. जिस तरह से यह काम करता है, हम वाइरगार्ड मार्गों के लिए एक रूटिंग टेबल और प्लेनटेक्स्ट इंटरनेट मार्गों के लिए एक रूटिंग टेबल बनाते हैं, और फिर यह निर्धारित करने के लिए नियम जोड़ते हैं कि प्रत्येक के लिए कौन सी रूटिंग टेबल का उपयोग करना है:

# आईपी नियम 163 में जोड़ें.172.161.0 लुकअप मेन प्रीफ 30 # आईपी नियम सभी लुकअप में जोड़ें 80 प्रीफ 40 # आईपी रूट डिफ़ॉल्ट देव WG0 तालिका 80 जोड़ें 

अब, हम रूटिंग टेबल को अलग रखने में सक्षम हैं. दुर्भाग्य से नकारात्मक पक्ष यह है कि स्पष्ट समापन बिंदु नियमों को अभी भी जोड़ने की आवश्यकता है, और इंटरफ़ेस को हटाए जाने पर कोई सफाई नहीं है, और अधिक जटिल रूटिंग नियमों को अब डुप्लिकेट करने की आवश्यकता है.

बेहतर नियम-आधारित मार्ग

पूर्व समाधान हम पर निर्भर करता है कि स्पष्ट समापन बिंदु आईपी को जानने के लिए जो सुरंग से मुक्त होना चाहिए, लेकिन वायरगार्ड एंडपॉइंट घूम सकते हैं, जिसका अर्थ है कि यह नियम बासी हो सकता है. सौभाग्य से, हम वाइरगार्ड के यूडीपी सॉकेट से बाहर जाने वाले सभी पैकेटों पर एक एफडब्ल्यूएमएआरएम सेट करने में सक्षम हैं, जिसे तब सुरंग से छूट दी जाएगी:

# WG सेट WG0 FWMARK 1234 # IP रूट डिफ़ॉल्ट DEVER DEV WG0 TABLE 2468 # IP नियम ADD नहीं FWMARK 1234 तालिका 2468 # IP नियम जोड़ें तालिका मुख्य शमन_प्रफिक्सलथ 0 जोड़ें 

हम पहले FWMARK को इंटरफ़ेस पर सेट करते हैं और एक वैकल्पिक रूटिंग टेबल पर एक डिफ़ॉल्ट मार्ग सेट करते हैं. तब हम संकेत देते हैं कि जिन पैकेटों में FWMARK नहीं है, उन्हें इस वैकल्पिक रूटिंग टेबल पर जाना चाहिए. और अंत में हम अभी भी स्थानीय नेटवर्क तक पहुंचने के लिए एक सुविधा सुविधा जोड़ते हैं, जिससे हम एफडब्ल्यूएमएम के बिना पैकेटों को मुख्य रूटिंग टेबल का उपयोग करने की अनुमति देते हैं, न कि वायरगार्ड इंटरफ़ेस की रूटिंग टेबल, अगर यह शून्य से अधिक उपसर्ग लंबाई के साथ इसमें किसी भी मार्ग से मेल खाता है, जैसे कि गैर-डिफॉल्ट स्थानीय मार्ग. यह WG-Quick (8) टूल द्वारा उपयोग की जाने वाली तकनीक है.

क्लासिक समाधानों में सुधार

वायरगार्ड लेखकों को सुरंग के उपयोग के मामलों को कवर करने के लिए कर्नेल में “नोटोइफ़” नामक एक सुविधा जोड़ने में रुचि है. यह इंटरफेस को यह कहने की अनुमति देगा “रूटिंग लूप से बचने के लिए, इस पैकेट को इंटरफ़ेस के रूप में खुद का उपयोग करके रूट न करें”. Wireguard की तरह एक लाइन जोड़ने में सक्षम होगा .flowi4_not_oif = wg0_idx, और UsersPace tun -based इंटरफेस अपने आउटगोइंग सॉकेट पर एक विकल्प सेट करने में सक्षम होगा जैसे कि setsockopt (fd, so_notoif, tun0_idx); . दुर्भाग्य से यह अभी तक विलय नहीं किया गया है, लेकिन आप यहाँ LKML धागा पढ़ सकते हैं.

नया नामस्थान समाधान

यह पता चला है कि हम क्लासिक रूटिंग टेबल हैक के बजाय नेटवर्क नेमस्पेस का उपयोग करके वाइरगार्ड के माध्यम से सभी इंटरनेट ट्रैफ़िक को रूट कर सकते हैं. जिस तरह से यह काम करता है वह यह है कि हम इंटरफेस को स्थानांतरित करते हैं जो इंटरनेट से जुड़ते हैं, जैसे कि ETH0 या WLAN0, एक नाम स्थान (जिसे हम “भौतिक” कहते हैं), और फिर एक Wireguard इंटरफ़ेस “init” नाम स्थान में एकमात्र इंटरफ़ेस है.

पहले हम “भौतिक” नेटवर्क नाम स्थान बनाते हैं:

# IP Netns भौतिक जोड़ें 

अब हम ETH0 और WLAN0 को “भौतिक” नामस्थान में स्थानांतरित करते हैं:

# IP लिंक सेट ETH0 NETNS भौतिक # IW PHY PHY 0 सेट NETNS नाम भौतिक 

(ध्यान दें कि वायरलेस उपकरणों को IW का उपयोग करके और भौतिक डिवाइस PHY0 निर्दिष्ट करके स्थानांतरित किया जाना चाहिए .)

अब हमारे पास “भौतिक” नामस्थान में ये इंटरफेस हैं, जबकि “init” नामस्थान में कोई इंटरफेस नहीं है:

# IP -N भौतिक लिंक 1: LO: MTU 65536 QDISC NOOP STATE DOWN MODE DEFAULT GROUP डिफ़ॉल्ट समूह डिफ़ॉल्ट QLEN 1 लिंक/लूपबैक 00: 00: 00: 00: 00: 00: 00 BRD 00: 00: 00: 00: 00: 00 2: ETH0: MTU 1500 QDISC PFIFO_FAST STATE DOWN मोड डिफ़ॉल्ट समूह डिफ़ॉल्ट QLEN 1000 लिंक/ईथर AB: CD: EF: G1: 23: 45 BRD FF: FF: FF: FF: FF: FF 3: WLAN0: MTU 1500 QDISC MQ स्टेट अप मोड डॉर्मेंट ग्रुप डिफ़ॉल्ट Qlen 1000 लिंक/ईथर 01: 23: 45: 67: 89: एबी बीआरडी एफएफ: एफएफ: एफएफ: एफएफ: एफएफ: एफएफ: एफएफ # आईपी लिंक 1: एलओ: एमटीयू 65536 क्यूडीस्क नोक्यू स्टेट अनजान मोड डिफ़ॉल्ट समूह डिफ़ॉल्ट क्यूलेन 1 लिंक/लूपबैक 00: 00: 00: 00: 00: 00: 00 BRD 00: 00: 00: 00: 00: 00: 00 

अब हम सीधे “भौतिक” नामस्थान में एक वायरगार्ड इंटरफ़ेस जोड़ते हैं:

# ip -n भौतिक लिंक WG0 प्रकार WireGuard जोड़ें 

WG0 का जन्मस्थान नाम स्थान अब “भौतिक” नामस्थान है, जिसका अर्थ है कि Ciphertext UDP सॉकेट्स को ETH0 और WLAN0 जैसे उपकरणों को सौंपा जाएगा . अब हम WG0 को “init” नामस्थान में स्थानांतरित कर सकते हैं; यह अभी भी सॉकेट्स के लिए अपने जन्मस्थान को याद रखेगा, हालांकि.

# ip -n भौतिक लिंक सेट wg0 netns 1 

हम “1” को “init” नामस्थान के रूप में निर्दिष्ट करते हैं, क्योंकि यह सिस्टम पर पहली प्रक्रिया का PID है. अब “init” नेमस्पेस में WG0 डिवाइस है:

# IP लिंक 1: LO: MTU 65536 QDISC NOQUEUE STATE अज्ञात मोड डिफ़ॉल्ट समूह डिफ़ॉल्ट QLEN 1 लिंक/लूपबैक 00: 00: 00: 00: 00: 00: 00 BRD 00: 00: 00: 00: 00: 00: 00 17: MTU: MTU: 1423 QDISC NOQUEUE STATE अज्ञात मोड डिफ़ॉल्ट समूह डिफ़ॉल्ट QLEN 1 लिंक/कोई नहीं 

अब हम साधारण उपकरणों का उपयोग करके भौतिक उपकरणों को कॉन्फ़िगर कर सकते हैं, लेकिन हम उन्हें “भौतिक” नेटवर्क नामस्थान के अंदर लॉन्च करते हैं:

# ip netns निष्पादित भौतिक dhcpcd wlan0 # ip netns निष्पादित भौतिक wpa_supplicant -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.कन्फ # आईपी -एन फिजिकल एडर जोड़ें 192.168.12.52/24 देव ETH0 

इत्यादि. अंत में, हम हमेशा की तरह WG0 इंटरफ़ेस को कॉन्फ़िगर कर सकते हैं, और इसे डिफ़ॉल्ट मार्ग के रूप में सेट कर सकते हैं:

# WG SetConf WG0/ETC/WIREGUARD/WG0.conf # ip addr 10 जोड़ें.2.4.5/32 dev wg0 # ip लिंक सेट wg0 up # ip रूट डिफ़ॉल्ट dev wg0 जोड़ें 

खत्म! इस बिंदु पर, सिस्टम पर सभी साधारण प्रक्रियाएं अपने पैकेट को “init” नामस्थान के माध्यम से रूट करेगी, जिसमें केवल WG0 इंटरफ़ेस और WG0 मार्ग शामिल हैं. हालांकि, WG0 का अपना UDP सॉकेट “भौतिक” नामस्थान में रहता है, जिसका अर्थ है कि यह ETH0 या WLAN0 से ट्रैफ़िक भेजेगा . सामान्य प्रक्रियाओं को DHCPCD और WPA_SUPPLICANT को छोड़कर, ETH0 या WLAN0 के बारे में भी पता नहीं चलेगा, जो “भौतिक” नेमस्पेस के अंदर पैदा हुए थे.

कभी -कभी, हालांकि, आप एक वेबपेज खोल सकते हैं या “भौतिक” नामस्थान का उपयोग करके जल्दी से कुछ कर सकते हैं. उदाहरण के लिए, हो सकता है कि आप अपने सभी ट्रैफ़िक को हमेशा की तरह वायरगार्ड के माध्यम से रूट करने की योजना बना रहे हों, लेकिन जिस कॉफी शॉप पर आप बैठे हैं, उसे आपको एक वेबसाइट का उपयोग करने से पहले प्रमाणित करने की आवश्यकता होती है, इससे पहले कि वह आपको एक वास्तविक इंटरनेट लिंक देगा. तो, आप “भौतिक” इंटरफ़ेस का उपयोग करके चयन प्रक्रियाओं (अपने स्थानीय उपयोगकर्ता के रूप में) निष्पादित कर सकते हैं:

$ sudo -e ip netns निष्पादित भौतिक sudo -e -u \#$ (id -u) -g \#$ (id -g) क्रोमियम 

यह निश्चित रूप से एक अच्छे समारोह में बनाया जा सकता है .BASHRC:

physexec ()

और अब आप “भौतिक” नामस्थान में क्रोमियम खोलने के लिए निम्नलिखित लिख सकते हैं.

$ physexec क्रोमियम 

जब आप कॉफी शॉप नेटवर्क में हस्ताक्षर कर रहे हों, तो हमेशा की तरह एक ब्राउज़र को स्पॉन करें, और शांति से सर्फ करें कि आपका सारा ट्रैफ़िक वायरगार्ड द्वारा संरक्षित है:

$ क्रोमियम 

नमूना स्क्रिप्ट

निम्नलिखित उदाहरण स्क्रिप्ट को/usr/स्थानीय/bin/wgphys के रूप में सहेजा जा सकता है और wgphys up, wgphys डाउन, और WGPHYS Exec जैसे आदेशों के लिए उपयोग किया जा सकता है:

#!/बिन/बैश set -ex [[$ uid != 0]] && निष्पादित सूडो -e "$ (readlink -f "$ 0")" "$@" ऊपर() < killall wpa_supplicant dhcpcd || true ip netns add physical ip -n physical link add wgvpn0 type wireguard ip -n physical link set wgvpn0 netns 1 wg setconf wgvpn0 /etc/wireguard/wgvpn0.conf ip addr add 192.168.4.33/32 dev wgvpn0 ip link set eth0 down ip link set wlan0 down ip link set eth0 netns physical iw phy phy0 set netns name physical ip netns exec physical dhcpcd -b eth0 ip netns exec physical dhcpcd -b wlan0 ip netns exec physical wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0 ip link set wgvpn0 up ip route add default dev wgvpn0 >नीचे() < killall wpa_supplicant dhcpcd || true ip -n physical link set eth0 down ip -n physical link set wlan0 down ip -n physical link set eth0 netns 1 ip netns exec physical iw phy phy0 set netns 1 ip link del wgvpn0 ip netns del physical dhcpcd -b eth0 dhcpcd -b wlan0 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0 >execi () < exec ip netns exec physical sudo -E -u \#$ Sudo_uid:-$ (id -u)> -जी \#$ Sudo_gid:-$ (id -g)> -- "$@" > कमांड ="$ 1" बदलाव मामला "$ आज्ञा" में ऊपर ऊपर "$@" ;; नीचे नीचे "$@" ;; निष्पादित) निष्पादित करें "$@" ;; *) इको "उपयोग: $ 0 ऊपर | नीचे | निष्पादित " > & 2; बाहर निकलें 1 ;; स्वामी 

उपरोक्त का एक छोटा डेमो:

© कॉपीराइट 2015-2022 जेसन ए. डोनफेल्ड. सर्वाधिकार सुरक्षित. “वायरगार्ड” और “वायरगार्ड” लोगो जेसन ए के पंजीकृत ट्रेडमार्क हैं. डोनफेल्ड.

यह परियोजना ZX2C4 और एज सिक्योरिटी से है, जो सूचना सुरक्षा अनुसंधान विशेषज्ञता के लिए समर्पित एक फर्म है.

Wireguard VPN – समस्या निवारण

यह वॉच WG कमांड के साथ एक टर्मिनल खुला छोड़ने में मददगार हो सकता है. यहाँ एक नमूना आउटपुट है जो दो साथियों के साथ एक प्रणाली दिखा रहा है, जहां केवल एक ने अब तक वीपीएन की स्थापना की है:

हर 2.0S: WG J-WG: FRI अगस्त 26 17:44:37 2022 इंटरफ़ेस: WG0 सार्वजनिक कुंजी: +T3T3HTMEYREDVIM8FBXBYJBZ 10.172.196.106: 51000 की अनुमति IPS: 10.10.11.2/32 नवीनतम हैंडशेक: 3 घंटे, 27 मिनट, 35 सेकंड पहले स्थानांतरण: 3.06 किब प्राप्त, 2.80 kib भेजा गया सहकर.10.11.3/32 

कर्नेल डिबग संदेश

जब लॉगिंग की बात आती है तो Wireguard भी चुप है. अनिवार्य रूप से एक कर्नेल मॉड्यूल होने के नाते, हमें इसके मॉड्यूल के वर्बोज़ लॉगिंग को स्पष्ट रूप से सक्षम करने की आवश्यकता है. यह निम्नलिखित कमांड के साथ किया जाता है:

$ इको "मॉड्यूल वायरगार्ड +पी" | sudo tee/sys/kernel/debug/modical_debug/नियंत्रण 

यह कर्नेल लॉग को वायरगार्ड लॉगिंग संदेश लिखेगा, जिसे लाइव के साथ देखा जा सकता है:

$ sudo dmesg -wt 

लॉगिंग को अक्षम करने के लिए, इसे चलाएं:

$ इको "मॉड्यूल वायरगार्ड -पी" | sudo tee/sys/kernel/debug/modical_debug/नियंत्रण 

गंतव्य का पता आवश्यक है

यदि आप एक आईपी को पिंग करते हैं और इस तरह की त्रुटि वापस प्राप्त करते हैं:

$ पिंग 10.10.11.2 पिंग 10.10.11.2 (10.10.11.2) 56 (84) डेटा के बाइट्स. 10 से.10.11.1 ICMP_SEQ = 1 गंतव्य होस्ट अप्राप्य पिंग: Sendmsg: गंतव्य पते की आवश्यकता है 

यह इसलिए हो रहा है क्योंकि इस गंतव्य के लिए चुने गए Wireguard इंटरफ़ेस को इसके लिए समापन बिंदु नहीं पता है. दूसरे शब्दों में, यह नहीं पता कि एन्क्रिप्टेड ट्रैफ़िक कहां भेजना है.

इसके लिए एक सामान्य परिदृश्य एक सहकर्मी पर है जहां कोई एंडपॉइंट कॉन्फ़िगरेशन नहीं है, जो पूरी तरह से मान्य है, और होस्ट उस सहकर्मी को ट्रैफ़िक भेजने की कोशिश कर रहा है. आइए कॉफी शॉप परिदृश्य को लें जो हमने पहले एक उदाहरण के रूप में वर्णित किया है.

लैपटॉप वीपीएन से जुड़ा हुआ है और यातायात का आदान -प्रदान करता है. फिर यह थोड़ा रुक जाता है (व्यक्ति एक और कप पाने के लिए चला गया). ट्रैफ़िक बंद हो जाता है (वायरगार्ड चुप है, याद रखें). यदि होम राउटर पर वायरगार्ड अब फिर से शुरू हो जाता है, जब यह वापस आता है, तो यह नहीं पता है कि लैपटॉप तक कैसे पहुंचा जाए, क्योंकि इससे पहले कभी भी संपर्क नहीं किया गया था. इसका मतलब है कि इस समय, अगर होम राउटर कॉफी शॉप में लैपटॉप पर ट्रैफ़िक भेजने की कोशिश करता है, तो यह उपरोक्त त्रुटि मिल जाएगी.

अब लैपटॉप उपयोगकर्ता वापस आता है, और होम नेटवर्क में कुछ ट्रैफ़िक उत्पन्न करता है (याद रखें: लैपटॉप में होम नेटवर्क का समापन मूल्य है). वीपीएन “जागता है”, डेटा का आदान -प्रदान किया जाता है, हैंडशेक पूरा हो जाता है, और अब होम राउटर लैपटॉप से ​​जुड़े समापन बिंदु को जानता है, और फिर से बिना किसी समस्या के नए ट्रैफ़िक शुरू कर सकता है.

एक और संभावना यह है कि साथियों में से एक NAT के पीछे है, और “कनेक्शन” को जीवित करने के लिए राज्य के फ़ायरवॉल के लिए पर्याप्त यातायात नहीं था, और इसने NAT मानचित्रण को गिरा दिया।. इस मामले में, सहकर्मी को पर्सिस्टेंटकीपेलिव कॉन्फ़िगरेशन से लाभ हो सकता है, जो वायरगार्ड को भेजता है जिंदा रहो हर इतने सेकंड की जांच करें.

आवश्यक कुंजी उपलब्ध नहीं है

$ पिंग 10.10.11.1 पिंग 10.10.11.1 (10.10.11.1) 56 (84) डेटा के बाइट्स. 10 से.10.11.2 ICMP_SEQ = 1 गंतव्य होस्ट अप्राप्य पिंग: Sendmsg: आवश्यक कुंजी उपलब्ध नहीं है 

तब हो सकता है जब आपके पास WireGuard इंटरफ़ेस के लिए ट्रैफ़िक को निर्देशित करने का मार्ग हो, लेकिन उस इंटरफ़ेस के पास अपने अनुमतप्स कॉन्फ़िगरेशन में सूचीबद्ध लक्ष्य पता नहीं है.

यदि आपने Wireguard के लिए कर्नेल डिबगिंग को सक्षम किया है, तो आपको DMESG आउटपुट में इस तरह का एक संदेश भी दिखाई देगा:

Wireguard: Home0: किसी भी सहकर्मी ने IPs को 10 से मिलान करने की अनुमति नहीं दी है.10.11.1