Wake-on-LAN VPN:n yli lakkasi toimimasta? Korjaa ARP-merkintä
Taikapaketit kulkevat tunnelin läpi, mutta reititin pudottaa ne, kun sen ARP-merkintä vanhenee. Vertaa kolmea toimitustapaa ja kiinnitä MAC-osoite pysyvästi.
Lähetä herätyspaketti heti sammutuksen jälkeen ja kone palaa; sama komento seuraavana aamuna ei tee mitään. VPN-asetuksissa ei muuttunut mikään, ja portin uudelleenohjaus osoittaa yhä oikeaan osoitteeseen. Ero on ajassa: reitittimen naapuritaulu on unohtanut nukkuvan koneen, joten sillä ei ole MAC-osoitetta, jonka se voisi laittaa kehykseen. Juuri tuo vanheneminen, ei tunneli, selittää useimmat Wake-on-LAN-virheet VPN:n yli.
Ensimmäinen herätys toimii, seuraava ei
Reititin välittää kehyksen yksityiseen osoitteeseen etsimällä kohteen naapuritaulustaan. Kun kone käy, se vastaa ARP-kyselyyn, joten kartoitus pysyy tuoreena. Kun se sammuu, mikään ei vastaa, merkintä vanhenee muutamassa minuutissa ja myöhemmät kehykset tuohon osoitteeseen pudotetaan, vaikka IP ja portin uudelleenohjaus pysyvät voimassa.
Kuvio kertoo, mikä vika sinulla on. Herätys, joka ei koskaan toimi, viittaa toimitukseen: väärä portti, väärä kohde tai palomuuri, joka pudottaa paketin ennen kuin se saavuttaa LAN-verkon. Herätys, joka toimii kerran ja epäonnistuu sen jälkeen tunteja, viittaa naapurimerkintään. Herätys, joka toimii siihen asti kun DHCP-vuokraus vaihtuu, viittaa osoitteistukseen, jonka varaus korjaa.
Varmista, että osoite on vakaa, ennen kuin kosket ARP:hen. Jos nukkuva kone saa uuden osoitteen vuokrauksen päätyttyä, vanhaan osoitteeseen kiinnitetty naapurimerkintä on samaan aikaan pysyvä ja hyödytön. Aseta ensin DHCP-varaus, jotta osoite säilyy uudelleenkäynnistysten yli.
Mitä taikapaketti tarvitsee verkosta
Hyötykuorma on yksinkertainen: 102 tavua, jotka koostuvat kuudesta 0xFF-tavusta, jota seuraa kohde-MAC-osoite kuusitoista kertaa, yleensä lähetettynä UDP-porttiin 9. Tasaisessa LAN-verkossa se lähtee lähetyksenä, jokainen portti vastaanottaa sen ja sammutettu verkkokortti tunnistaa oman osoitteensa.
VPN:n yli paketti saapuu reitittimelle yksilähetyksenä yksityiseen osoitteeseen tai aliverkkoon suunnattuna lähetyksenä. Yksilähetyksen tapauksessa reitittimen on ratkaistava kohde MAC-osoitteeksi ennen kuin se voi laittaa kehyksen LAN-verkkoon, ja juuri tuo ratkaisu epäonnistuu, kun isäntä nukkuu.
Jotkin työkalut lähettävät porttiin 7 portin 9 sijaan, ja jotkin laitteet estävät suunnatun lähetyksen oletuksena. Ne ovat toimitusvirheitä, eivät ARP-virheitä, joten tarkista kohde ja portti ennen naapuritaulun muuttamista.
Kolme reittiä nukkuvalle isännälle
Kehyksen saa LAN-verkkoon kolmella käytännöllisellä tavalla, ja oikea valinta riippuu siitä, mitä hallitset.
| 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 |
Valitse apuisäntä, kun sellainen on, koska se lähettää linkillä eikä tarvitse reitittimeen poikkeusta. Valitse suunnattu lähetys, kun reititin jo sallii sen ja herätystyökalu tukee osoitetta. Valitse staattinen merkintä, kun kumpaakaan ei ole saatavilla ja voit ajaa komennon reitittimellä.
Nämä eivät sulje toisiaan pois. Pysyvä merkintä mahdollistaa myös sen, että yksilähetysreitti selviää unesta, mikä on hyödyllistä, kun VPN-asiakas voi lähettää vain tiettyyn osoitteeseen.
Tee naapurimerkinnästä pysyvä
Linux-kuorta käyttävässä reitittimessä yksi komento kiinnittää kartoituksen. Tässä olevat arvot kuuluvat esimerkki-LAN-verkkoon ja ne on korvattava omillasi:
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.23Tila nud permanent pitää merkinnän ARP-aikakatkosten yli ja käyttää sitä välitykseen, kun kone on pois päältä. Toinen komento todistaa, että merkintä on olemassa, ja näyttää liitännän, johon se kuuluu, millä on merkitystä reitittimissä, joissa on erillinen vierassilta tai VLAN.
Tee siitä uudelleenkäynnistyksen kestävä millä tahansa laiteohjelmiston tarjoamalla koukulla: komentosarja hakemistossa /jffs/scripts Asuswrt-Merlinissä, systemd oneshot -yksikkö Linux-palvelimella yhdyskäytävänä, Neighbor= stanza systemd-networkdissa tai merkintä tiedostossa /etc/ethers, jonka paikalliset työkalut lukevat. Kuoreen kirjoitettu komento katoaa seuraavassa uudelleenkäynnistyksessä, ja se on yleisin syy siihen, miksi toimiva korjaus näyttää lakkaavan toimimasta.
Testaa ulkopuolelta ja tiedä, milloin se poistetaan
Laita kone nukkumaan ja odota vähintään kymmenen minuuttia, tarpeeksi kauan, jotta mikä tahansa dynaaminen merkintä vanhenee. Lähetä sitten herätyspyyntö VPN-asiakkaasta ja seuraa reitittimen molempia puolia:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Ensimmäinen kaappaus todistaa, että paketti saapui tunnelista; toinen todistaa, että reititin laittoi kehyksen LAN-verkkoon. Kelvollinen taikapaketti näkyy 102 tavuna, jossa MAC toistuu, joten tarkista sekä pituus että kohde. Jos kehys lähtee LAN-sillalta ja kone pysyy sammuksissa, jäljellä oleva ongelma on laitteessa: pikakäynnistys, syvä uni tai BIOS-asetus, joka katkaisee virran verkkokortilta.
Poista merkintä, kun verkkokortti vaihtuu, ja päivitä se, kun siirrät koneen toiseen osoitteeseen. Pysyvä kartoitus on tarkoituksellinen poikkeus, ja poikkeus, jota kukaan ei muista, on se tapa, jolla tulevaisuuden kannettava alkaa vastaanottaa kehyksiä, jotka oli tarkoitettu eläkkeelle jääneelle pöytäkoneelle.