Išsiųskite pažadinimo paketą iškart po išjungimo ir kompiuteris sugrįžta; ta pati komanda kitą rytą nieko nedaro. VPN konfigūracijoje niekas nepasikeitė, o prievado peradresavimas vis dar rodo teisingą adresą. Skirtumas yra laikas: maršrutizatoriaus kaimynų lentelė pamiršo miegančią mašiną, todėl neturi MAC adreso, kurį įrašytų į kadrą. Būtent šis galiojimo pasibaigimas, o ne tunelis, paaiškina daugumą Wake-on-LAN gedimų per VPN.

Pirmas pažadinimas veikia, o kitas ne

Maršrutizatorius persiunčia kadrą į privatų adresą, ieškodamas paskirties savo kaimynų lentelėje. Kol mašina veikia, ji atsako į ARP, todėl susiejimas išlieka šviežias. Kai ji išsijungia, niekas neatsako, įrašas pasensta po kelių minučių, o vėlesni kadrai į tą adresą išmetami, nors IP ir prievado peradresavimas lieka galioti.

Modelis pasako, kokia tai klaida. Pažadinimas, kuris niekada neveikia, rodo pristatymą: neteisingas prievadas, neteisinga paskirtis arba ugniasienė, kuri išmeta paketą iki jam pasiekiant LAN. Pažadinimas, kuris suveikia kartą ir po to valandų valandas nepavyksta, rodo kaimyno įrašą. Pažadinimas, kuris veikia iki DHCP nuomos pasikeitimo, rodo adresavimą, kurį ištaiso rezervacija.

Prieš liesdami ARP įsitikinkite, kad adresas stabilus. Jei miegančios mašinos nuomai pasibaigus ji gauna naują adresą, senam adresui prisegtas kaimyno įrašas bus kartu ir pastovus, ir nenaudingas. Pirmiausia nustatykite DHCP rezervaciją, kad adresas išliktų po perkrovimų.

Ko magiškam paketui reikia iš tinklo

Naudingoji apkrova paprasta: 102 baitai iš šešių 0xFF baitų, po kurių šešiolika kartų kartojamas tikslinis MAC adresas, dažniausiai siunčiama į UDP 9 prievadą. Plokščiame LAN jis išeina kaip transliacija, kiekvienas prievadas jį gauna, o išjungta tinklo kortelė atpažįsta savo adresą.

Per VPN paketas pasiekia maršrutizatorių kaip vieno adreso siuntimas į privatų adresą arba kaip į potinklį nukreipta transliacija. Vieno adreso atveju maršrutizatorius turi išspręsti paskirtį į MAC adresą, kol dar gali įdėti kadrą į LAN, ir būtent tas sprendimas nepavyksta, kol pagrindinis kompiuteris miega.

Kai kurie įrankiai siunčia į 7 prievadą, o ne 9, o kai kurie įrenginiai pagal numatytuosius nustatymus blokuoja nukreiptą transliaciją. Tai pristatymo klaidos, o ne ARP, todėl prieš keisdami kaimynų lentelę patikrinkite paskirtį ir prievadą.

Trys keliai į miegančią mašiną

Yra trys praktiški būdai perkelti kadrą į LAN, o teisingas pasirinkimas priklauso nuo to, ką kontroliuojate.

MethodWhat it needsWhere it breaks
Subnet-directed broadcastA wake tool that accepts a broadcast address and a router that forwards itBroadcast filtering, or a tool that only takes a MAC
Helper on the LANAn always-on host such as the VPN serverNo suitable host, or the host cannot reach the target VLAN
Permanent neighbour entryRouter shell access and the target MACNIC replacement or address change

Pasirinkite pagalbinę mašiną, kai ji yra, nes ji transliuoja grandyje ir nereikia maršrutizatoriaus išimties. Pasirinkite nukreiptą transliaciją, kai maršrutizatorius jau leidžia, o pažadinimo įrankis priima adresą. Pasirinkite statinį įrašą, kai nė vieno nėra ir galite vykdyti komandą maršrutizatoriuje.

Šie variantai vienas kito neišskiria. Nuolatinis įrašas taip pat leidžia vieno adreso keliui išgyventi miegą, o tai naudinga, kai VPN klientas gali siųsti tik į konkretų adresą.

Padarykite kaimyno įrašą nuolatiniu

Maršrutizatoriuje su Linux apvalkalu viena komanda prisega susiejimą. Čia pateiktos reikšmės priklauso pavyzdiniam LAN ir turi būti pakeistos jūsų:

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

Būsena nud permanent išlaiko įrašą per ARP laiko limitus ir naudoja jį persiuntimui, kol mašina išjungta. Antra komanda įrodo, kad įrašas egzistuoja, ir parodo sąsają, kuriai jis priklauso, o tai svarbu maršrutizatoriuose su atskiru svečių tiltu ar VLAN.

Padarykite jį atsparų perkrovimui bet kokiu kabliu, kurį siūlo programinė įranga: scenarijus /jffs/scripts faile Asuswrt-Merlin, systemd oneshot įrenginys Linux serveryje kaip tarpinė, Neighbor= stanza systemd-networkd, arba įrašas /etc/ethers faile, kurį skaito vietiniai įrankiai. Apvalkale įvesta komanda išnyksta per kitą perkrovimą, ir tai yra dažniausia priežastis, kodėl veikiantis labojums tarsi nustoja veikti.

Išbandykite iš išorės ir žinokite, kada jį pašalinti

Užmigdinkite mašiną ir palaukite bent dešimt minučių, tiek pakanka, kad pasenštų bet kuris dinaminis įrašas. Tada išsiųskite pažadinimo užklausą iš VPN kliento ir stebėkite abi maršrutizatoriaus puses:

tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9

Pirmas fiksavimas įrodo, kad paketas atėjo iš tunelio; antras, kad maršrutizatorius įdėjo kadrą į LAN. Galiojantis magiškas paketas rodomas kaip 102 baitai su kartojamu MAC, todėl tikrinkite ir ilgį, ir paskirtį. Jei kadras palieka LAN tiltą, o mašina lieka išjungta, likusi problema yra įrenginyje: greitas paleidimas, gilus miegas arba BIOS nustatymas, nutraukiantis tinklo kortelės maitinimą.

Pašalinkite įrašą, kai pasikeičia tinklo kortelė, ir atnaujinkite jį, kai perkelsite mašiną į kitą adresą. Nuolatinis susiejimas yra sąmoninga išimtis, o išimtis, kurios niekas neatsimena, yra būdas, kuriuo būsimas nešiojamasis kompiuteris pradeda gauti kadrus, skirtus į pensiją išėjusiam staliniam kompiuteriui.

Susiję straipsniai