VPN पर Wake-on-LAN काम करना बंद कर देता है? ARP प्रविष्टि ठीक करें
जादुई पैकेट सुरंग पार करते हैं, पर राउटर की ARP प्रविष्टि समाप्त होने पर वह उन्हें गिरा देता है। तीन डिलीवरी मार्गों की तुलना करें, फिर MAC पता स्थायी रूप से पिन करें।
शटडाउन के तुरंत बाद वेक पैकेट भेजें और पीसी लौट आता है; अगली सुबह वही कमांड कुछ नहीं करती। VPN कॉन्फ़िगरेशन में कुछ नहीं बदला है, और पोर्ट फ़ॉरवर्ड अब भी सही पते की ओर इशारा करता है। फ़र्क़ समय का है: राउटर की पड़ोसी तालिका सोई हुई मशीन को भूल चुकी है, इसलिए उसके पास फ़्रेम में डालने के लिए कोई MAC पता नहीं है। सुरंग नहीं, यही समाप्ति VPN पर अधिकांश Wake-on-LAN विफलताओं की व्याख्या करती है।
पहला जगाना काम करता है और अगला नहीं
राउटर अपनी पड़ोसी तालिका में गंतव्य खोजकर निजी पते पर फ़्रेम भेजता है। जब तक मशीन चलती है, वह ARP का उत्तर देती है, इसलिए मैपिंग ताज़ा रहती है। बंद होते ही कुछ भी उत्तर नहीं देता, प्रविष्टि कुछ मिनटों में पुरानी हो जाती है, और उस पते के लिए बाद के फ़्रेम गिरा दिए जाते हैं, भले ही IP और पोर्ट फ़ॉरवर्ड मान्य रहें।
यह पैटर्न बताता है कि आपके पास कौन-सी विफलता है। जो जगाना कभी काम नहीं करता, वह डिलीवरी की ओर इशारा करता है: गलत पोर्ट, गलत गंतव्य, या ऐसा फ़ायरवॉल जो पैकेट को LAN तक पहुँचने से पहले गिरा देता है। जो जगाना एक बार काम करके फिर घंटों विफल रहता है, वह पड़ोसी प्रविष्टि की ओर इशारा करता है। जो जगाना DHCP लीज़ बदलने तक काम करता है, वह पता-निर्धारण की ओर इशारा करता है, जिसे आरक्षण ठीक करता है।
ARP को छूने से पहले पुष्टि करें कि पता स्थिर है। यदि सोई हुई मशीन लीज़ समाप्त होने पर नया पता ले लेती है, तो पुराने पते के लिए पिन की गई पड़ोसी प्रविष्टि एक ही समय में स्थायी और बेकार होगी। पहले DHCP आरक्षण सेट करें ताकि पता रीबूट के बाद भी बना रहे।
जादुई पैकेट को नेटवर्क से क्या चाहिए
पेलोड सरल है: छह 0xFF बाइट के बाद लक्ष्य MAC पता सोलह बार, कुल 102 बाइट, जो आमतौर पर UDP पोर्ट 9 पर भेजे जाते हैं। सपाट LAN पर यह प्रसारण के रूप में निकलता है, हर पोर्ट उसे पाता है, और बंद नेटवर्क कार्ड अपना पता पहचान लेता है।
VPN के रास्ते पैकेट राउटर तक निजी पते के लिए यूनिकास्ट के रूप में या सबनेट-निर्देशित प्रसारण के रूप में पहुँचता है। यूनिकास्ट की स्थिति में राउटर को LAN पर फ़्रेम रखने से पहले गंतव्य को MAC पते में हल करना होता है, और होस्ट के सोने के दौरान ठीक वही हल होना विफल रहता है।
कुछ उपकरण 9 के बजाय पोर्ट 7 पर भेजते हैं, और कुछ उपकरण डिफ़ॉल्ट रूप से निर्देशित प्रसारण अवरुद्ध करते हैं। ये डिलीवरी की विफलताएँ हैं, ARP की नहीं, इसलिए पड़ोसी तालिका बदलने से पहले गंतव्य और पोर्ट जाँचें।
सोए हुए होस्ट तक तीन मार्ग
फ़्रेम को LAN पर लाने के तीन व्यावहारिक तरीके हैं, और सही चुनाव इस पर निर्भर करता है कि आप क्या नियंत्रित करते हैं।
| Method | What it needs | Where it breaks |
|---|---|---|
| Subnet-directed broadcast | A wake tool that accepts a broadcast address and a router that forwards it | Broadcast filtering, or a tool that only takes a MAC |
| Helper on the LAN | An always-on host such as the VPN server | No suitable host, or the host cannot reach the target VLAN |
| Permanent neighbour entry | Router shell access and the target MAC | NIC replacement or address change |
जब मददगार होस्ट हो तो उसे चुनें, क्योंकि वह लिंक पर प्रसारण करता है और राउटर में किसी अपवाद की ज़रूरत नहीं होती। जब राउटर पहले से अनुमति देता हो और वेक उपकरण पता स्वीकार करता हो तो निर्देशित प्रसारण चुनें। जब दोनों में से कोई उपलब्ध न हो और आप राउटर पर कमांड चला सकें तो स्थिर प्रविष्टि चुनें।
ये एक-दूसरे को बाहर नहीं करते। स्थायी प्रविष्टि यूनिकास्ट मार्ग को भी नींद से पार जाने देती है, जो तब उपयोगी है जब VPN क्लाइंट केवल किसी विशेष पते पर ही भेज सकता हो।
पड़ोसी प्रविष्टि को स्थायी बनाएँ
Linux शेल वाले राउटर पर एक कमांड मैपिंग को पिन करती है। यहाँ दिए मान एक उदाहरण LAN के हैं और उन्हें अपने मानों से बदलना होगा:
ip neigh replace 192.168.50.23 lladdr 3c:7c:3f:12:9a:4e dev br0 nud permanent
ip neigh show dev br0 | grep 192.168.50.23स्थिति nud permanent ARP टाइमआउट के दौरान प्रविष्टि रखती है और मशीन बंद होने पर फ़ॉरवर्डिंग के लिए उसका उपयोग करती है। दूसरा कमांड सिद्ध करता है कि प्रविष्टि मौजूद है और वह किस इंटरफ़ेस की है यह दिखाता है, जो अलग गेस्ट ब्रिज या VLAN वाले राउटरों पर मायने रखता है।
फ़र्मवेयर जो भी हुक दे, उसके ज़रिए इसे रीबूट में टिकाएँ: /jffs/scripts पर एक स्क्रिप्ट, गेटवे के रूप में काम करने वाले Linux सर्वर पर systemd oneshot यूनिट, systemd-networkd में Neighbor= stanza, या स्थानीय टूलिंग जिस फ़ाइल को पढ़ती है उस /etc/ethers में प्रविष्टि। शेल में टाइप किया गया कमांड अगले रीस्टार्ट पर गायब हो जाता है, और यही सबसे आम कारण है जिससे काम करता हुआ समाधान अचानक काम करना बंद करता दिखता है।
बाहर से परीक्षण करें और जानें कि कब हटाना है
मशीन को सुलाएँ और कम से कम दस मिनट प्रतीक्षा करें, किसी भी गतिशील प्रविष्टि के पुराने होने के लिए पर्याप्त। फिर VPN क्लाइंट से वेक अनुरोध भेजें और राउटर के दोनों ओर देखें:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9पहला कैप्चर सिद्ध करता है कि पैकेट सुरंग से आया; दूसरा सिद्ध करता है कि राउटर ने LAN पर फ़्रेम रखा। मान्य जादुई पैकेट 102 बाइट के रूप में दिखता है जिसमें MAC दोहराया गया हो, इसलिए लंबाई के साथ गंतव्य भी जाँचें। यदि फ़्रेम LAN ब्रिज से निकल जाता है और मशीन बंद ही रहती है, तो बची हुई समस्या डिवाइस में है: तेज़ स्टार्टअप, गहरी नींद या BIOS सेटिंग जो नेटवर्क कार्ड की बिजली काट देती है।
नेटवर्क कार्ड बदलने पर प्रविष्टि हटाएँ, और मशीन को दूसरे पते पर ले जाने पर उसे अपडेट करें। स्थायी मैपिंग एक जानबूझकर किया गया अपवाद है, और जिस अपवाद को कोई याद नहीं रखता, वही वह तरीका है जिससे भविष्य का लैपटॉप सेवानिवृत्त डेस्कटॉप के लिए भेजे गए फ़्रेम प्राप्त करने लगता है।