Wake-on-LAN oor VPN werk nie meer nie? Herstel die ARP-inskrywing
Magiese pakkette steek die tonnel oor, maar die router laat val hulle nadat sy ARP-inskrywing verval. Vergelyk drie afleweringsroetes en pen die MAC-adres permanent vas.
Stuur 'n wekpakket reg ná afskakeling en die rekenaar kom terug; dieselfde opdrag die volgende oggend doen niks. Niks in die VPN-konfigurasie het verander nie, en die poortaanstuur wys steeds na die regte adres. Die verskil is tyd: die router se buurtabel het die slapende masjien vergeet, so dit het geen MAC-adres om op die raam te sit nie. Daardie verval, nie die tonnel nie, verduidelik die meeste Wake-on-LAN-foute oor 'n VPN.
Die eerste wek werk en die volgende een nie
'n Router stuur 'n raam na 'n private adres deur die bestemming in sy buurtabel na te slaan. Terwyl die masjien loop, antwoord dit ARP, so die kartering bly vars. Sodra dit afskakel, antwoord niks, die inskrywing verouder ná 'n paar minute, en latere rame vir daardie adres word laat val al bly die IP en die poortaanstuur geldig.
Die patroon sê vir jou watter fout jy het. 'n Wek wat nooit werk nie dui op aflewering: verkeerde poort, verkeerde bestemming, of 'n vuurmuur wat die pakket laat val voordat dit die LAN bereik. 'n Wek wat een keer werk en dan vir ure misluk, dui op die buurinskrywing. 'n Wek wat werk totdat die DHCP-leenkontrak verander, dui op adressering, wat 'n reservering regstel.
Bevestig die adres is stabiel voordat jy aan ARP raak. As die slapende masjien 'n nuwe adres kry nadat 'n leenkontrak verval, sal 'n vasgepen buurinskrywing vir die ou adres permanent en nutteloos tegelyk wees. Stel eers 'n DHCP-reservering op sodat die adres herstarte oorleef.
Wat die magiese pakket van die netwerk nodig het
Die vrag is eenvoudig: 102 grepe van ses 0xFF-grepe gevolg deur die teiken-MAC-adres sestien keer, gewoonlik na UDP-poort 9 gestuur. Op 'n plat LAN gaan dit uit as 'n uitsending, elke poort ontvang dit, en die afgeskakelde netwerkkaart herken sy eie adres.
Oor 'n VPN kom die pakket by die router aan as eenmalige stuur na 'n private adres of as 'n subnetgerigte uitsending. In die eenmalige geval moet die router die bestemming na 'n MAC-adres oplos voordat dit die raam op die LAN kan sit, en daardie oplossing is juis wat faal terwyl die gasheer slaap.
Sommige gereedskap stuur na poort 7 in plaas van 9, en sommige toestelle blokkeer gerigte uitsending by verstek. Dit is afleweringsfoute, nie ARP-foute nie, so kontroleer die bestemming en poort voordat jy die buurtabel verander.
Drie roetes na 'n slapende gasheer
Jy het drie praktiese maniere om die raam op die LAN te kry, en die regte keuse hang af van wat jy beheer.
| 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 |
Kies die hulp-gasheer wanneer een bestaan, want dit stuur op die skakel uit en het geen router-uitsondering nodig nie. Kies gerigte uitsending wanneer die router dit reeds toelaat en die wekgereedskap 'n adres ondersteun. Kies die statiese inskrywing wanneer nie een beskikbaar is nie en jy 'n opdrag op die router kan loop.
Hierdie sluit mekaar nie uit nie. 'n Permanente inskrywing laat ook die eenmalige roete die slaap oorleef, wat nuttig is wanneer die VPN-kliënt net na 'n spesifieke adres kan stuur.
Maak die buurinskrywing permanent
Op 'n router met 'n Linux-dop pen een opdrag die kartering vas. Die waardes hier hoort by 'n voorbeeld-LAN en moet deur jou eie vervang word:
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.23Die nud permanent toestand hou die inskrywing oor ARP-tydverstrykings en gebruik dit vir aanstuur terwyl die masjien af is. Die tweede opdrag bewys die inskrywing bestaan en wys die koppelvlak waaraan dit behoort, wat saak maak op routers met 'n aparte gas-brug of VLAN.
Maak dit herstartbestand deur watter haak die firmware ook al bied: 'n script in /jffs/scripts op Asuswrt-Merlin, 'n systemd-eenmal-eenheid op 'n Linux-bediener as die gateway, 'n Neighbor=-stanza in systemd-networkd, of 'n inskrywing in /etc/ethers waar die plaaslike gereedskap een lees. 'n Opdrag wat in 'n dop getik word, verdwyn by die volgende herstart, en dit is die algemeenste rede waarom 'n werkende oplossing skynbaar ophou werk.
Toets van buite en weet wanneer om dit te verwyder
Sit die masjien aan die slaap en wag minstens tien minute, lank genoeg vir enige dinamiese inskrywing om te verval. Stuur dan die wekversoek vanaf die VPN-kliënt en kyk na beide kante van die router:
tcpdump -ni tun0 udp port 9
tcpdump -ni br0 ether proto 0x0806 or udp port 9Die eerste opname bewys die pakket het uit die tonnel gekom; die tweede bewys die router het 'n raam op die LAN gesit. 'n Geldige magiese pakket wys as 102 grepe met die MAC herhaal, so kontroleer die lengte sowel as die bestemming. As die raam die LAN-brug verlaat en die masjien bly af, is die oorblywende probleem op die toestel: vinnige opstart, diepe slaap of 'n BIOS-instelling wat krag na die netwerkkaart afsny.
Verwyder die inskrywing wanneer die netwerkkaart verander, en werk dit by wanneer jy die masjien na 'n ander adres skuif. 'n Permanente kartering is 'n doelbewuste uitsondering, en 'n uitsondering wat niemand onthou nie, is hoe 'n toekomstige skootrekenaar rame ontvang wat vir 'n afgetrede tafelrekenaar bedoel was.