VPN üzərindən Wake-on-LAN işləmir? ARP qeydini düzəldin
Sehrli paketlər tuneldən keçir, lakin marşrutlaşdırıcı ARP qeydi bitdikdən sonra onları atır. Üç çatdırılma yolunu müqayisə edin və MAC ünvanını daimi olaraq bərkidin.
Söndürdükdən dərhal sonra oyanma paketi göndərin — kompüter qayıdır; eyni əmr səhəri heç nə etmir. VPN konfiqurasiyasında heç nə dəyişməyib və port yönləndirməsi hələ də düzgün ünvana baxır. Fərq zamandadır: marşrutlaşdırıcının qonşu cədvəli yatan maşını unudub, ona görə kadra qoyacaq MAC ünvanı yoxdur. Tunel deyil, məhz bu bitmə VPN üzərindən Wake-on-LAN uğursuzluqlarının çoxunu izah edir.
Birinci oyanma işləyir, növbəti işləmir
Marşrutlaşdırıcı kadrı şəxsi ünvana göndərmək üçün təyinatı qonşu cədvəlində axtarır. Maşın işlədiyi müddətdə ARP-yə cavab verir, ona görə uyğunluq təzə qalır. Söndükdən sonra heç nə cavab vermir, qeyd bir neçə dəqiqədən sonra köhnəlir və IP ilə port yönləndirməsi qüvvədə qalsa da, həmin ünvana sonrakı kadrlar atılır.
Nümunə sizə hansı nasazlıqla üzləşdiyinizi deyir. Heç vaxt işləməyən oyanma çatdırılmaya işarə edir: səhv port, səhv təyinat və ya paketi LAN-a çatmadan atan firewall. Bir dəfə işləyib sonra saatlarla uğursuz olan oyanma qonşu qeydinə işarə edir. DHCP icarəsi dəyişənə qədər işləyən oyanma ünvanlamaya işarə edir və bunu rezervasiya düzəldir.
ARP-yə toxunmadan əvvəl ünvanın sabit olduğunu təsdiqləyin. Yatan maşın icarə bitdikdən sonra yeni ünvan alırsa, köhnə ünvan üçün bərkidilmiş qonşu qeydi eyni zamanda həm daimi, həm də faydasız olacaq. Əvvəlcə DHCP rezervasiyası qurun ki, ünvan yenidən başlatmalardan sonra qalsın.
Sehrli paketin şəbəkədən nəyə ehtiyacı var
Yük sadədir: altı 0xFF baytından sonra hədəf MAC ünvanının on altı dəfə təkrarlanması ilə 102 bayt, adətən UDP port 9-a göndərilir. Düz LAN-da yayım kimi çıxır, hər port onu alır və söndürülmüş şəbəkə kartı öz ünvanını tanıyır.
VPN üzərindən paket marşrutlaşdırıcıya şəxsi ünvana tək göndəriş və ya alt şəbəkəyə yönəlmiş yayım kimi çatır. Tək göndəriş halında marşrutlaşdırıcı kadrı LAN-a qoymadan əvvəl təyinatı MAC ünvanına çözməlidir və host yatarkən məhz bu çözüm uğursuz olur.
Bəzi alətlər 9 əvəzinə port 7-yə göndərir, bəzi cihazlar isə yönəlmiş yayımı ilk ayarda bloklayır. Bunlar çatdırılma nasazlıqlarıdır, ARP nasazlığı deyil, ona görə qonşu cədvəlini dəyişməzdən əvvəl təyinatı və portu yoxlayın.
Yatan hosta üç yol
Kadrı LAN-a çıxarmağın üç praktik yolu var və düzgün seçim nəyə nəzarət etdiyinizdən asılıdır.
| 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 |
Köməkçi host varsa onu seçin, çünki o, keçid üzərində yayım edir və marşrutlaşdırıcı istisnası tələb etmir. Marşrutlaşdırıcı artıq icazə verirsə və oyanma aləti ünvanı dəstəkləyirsə, yönəlmiş yayımı seçin. Heç biri yoxdursa və marşrutlaşdırıcıda əmr işlədə bilirsinizsə, statik qeydi seçin.
Bunlar bir-birini istisna etmir. Daimi qeyd tək göndəriş yolunun da yuxudan keçməsini təmin edir, bu da VPN klienti yalnız konkret ünvana göndərə bildikdə faydalıdır.
Qonşu qeydini daimi edin
Linux qabığı olan marşrutlaşdırıcıda bir əmr uyğunluğu bərkidir. Buradakı dəyərlər nümunə LAN-a aiddir və öz dəyərlərinizlə əvəzlənməlidir:
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.23Bu nud permanent vəziyyəti qeydi ARP fasilələri boyunca saxlayır və maşın söndükdə yönləndirmə üçün istifadə edir. İkinci əmr qeydin mövcud olduğunu sübut edir və hansı interfeysə aid olduğunu göstərir, bu da ayrı qonaq körpüsü və ya VLAN olan marşrutlaşdırıcılarda vacibdir.
Proqram təminatının təklif etdiyi hər hansı qarmaqla onu yenidən başlatmaya davamlı edin: /jffs/scripts Asuswrt-Merlin-də skript ola bilər, gateway kimi işləyən Linux serverdə systemd oneshot uniti, systemd-networkd-də Neighbor= stanza və ya yerli alətlərin oxuduğu /etc/ethers faylı ola bilər. Qabığa yazılmış əmr növbəti yenidən başlatmada yox olur və işləyən düzəlişin birdən işləməməsinin ən çox yayılmış səbəbi budur.
Çöldən sınağın və nə vaxt siləcəyinizi bilin
Maşını yuxuya qoyun və ən azı on dəqiqə gözləyin, bu istənilən dinamik qeydin bitməsi üçün kifayətdir. Sonra VPN klientindən oyanma sorğusunu göndərin və marşrutlaşdırıcının hər iki tərəfini izləyin:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Birinci tutma paketin tuneldən gəldiyini sübut edir; ikinci marşrutlaşdırıcının LAN-a kadr qoyduğunu sübut edir. Etibarlı sehrli paket MAC təkrarlanan 102 bayt kimi görünür, ona görə həm uzunluğu, həm təyinatı yoxlayın. Kadr LAN körpüsündən çıxır və maşın sönülü qalırsa, qalan problem cihazdadır: sürətli başlanğıc, dərin yuxu və ya şəbəkə kartına enerjini kəsən BIOS ayarı.
Şəbəkə kartı dəyişdikdə qeydi silin, maşını başqa ünvana köçürdükdə isə yeniləyin. Daimi uyğunluq qəsdən edilmiş istisnadır və heç kimin xatırlamadığı istisna gələcək noutbukun pensiyaya çıxarılmış masaüstü üçün nəzərdə tutulmuş kadrları alması ilə nəticələnir.