Vekk en sovende hjemme-PC over VPN: hvor pakken kommer fra
En tunnel kan ikke vekke maskinen den selv avslutter. Legg magic packet på hjemme-LAN-et, bekreft adapter og strømtilstand, og koble til etterpå.
Du kobler til, ruteren svarer, og stasjonæren blir mørk. Tunnelen er i orden; pakken som skulle ha vekket maskinen, nådde aldri segmentet der maskinen lytter. Går du veien baklengs fra ruteren, ser du hvor den dør.
Tre enheter har tre oppgaver. Å blande dem sammen er den vanlige grunnen til at et vekkeforsøk går i ring for evig.
Start ved fjernklienten og følg veien
Fra et hotellnettverk kobler du til hjemmeruteren, som er det eneste alltid aktive endepunktet i bildet. En vekkeforespørsel du skriver på laptopen, blir vanlig tunneltrafikk, adressert til hvilken som helst destinasjon du har navngitt. Den destinasjonen avgjør alt som følger.
Hvis du sendte den til hjemmeruterens LAN-adresse på magic-packet-porten, kan ruteren godta datagrammet og aldri sende ut en ramme på hjemmesegmentet, fordi ingenting der lytter på den porten. Hvis du kringkaster den inne i tunnelen, stopper den ved tunellgrensesnittet. En rutet tunnel er ikke en utvidelse av lag 2 i husets ledningsnett. Følg veien hopp for hopp, og blindveien blir tydelig.
Kontrollen som avgjør dette, krever én kommando fra fjernsiden og én fra hjemsiden. Send forespørselen, og følg deretter med på hjemmesegmentet etter rammen.
Flytt avsenderen inn på hjemmesegmentet
Ruteren kan gjøre vekkingen selv når du først er autentisert gjennom tunnelen. OpenWrt dokumenterer en Wake-on-LAN-tjeneste som kjører på enheten og sender ut rammen lokalt, og det er nøyaktig den formen som trengs: fjernautentisering utenfor, lokal kringkasting innenfor.
Den ordningen holder også vekkefunksjonen unna det offentlige internettet. Ingenting nytt blir eksponert mot internettet, fordi utløseren går over VPN-en du allerede stoler på. Alternativet, en vekketjeneste med videresendt port, bytter litt bekvemmelighet mot et internettvendt endepunkt som hvem som helst kan sondere.
Den sirkulære avhengigheten er verdt å navngi rett ut. En VPN-klient installert på stasjonæren kan ikke vekke den stasjonæren, fordi klientprosessen trenger at maskinen kjører. Hold fjerninngangspunktet på ruteren eller en annen alltid aktiv boks, og la stasjonæren være bare et mål.
Bekreft målet før du gir tunnelen skylden
Denne delen avgjøres av maskinvaren, ikke av VPN-en, og strømtilstanden avgjør den først. Adapteren må støtte vekking, fastvaren må la adapteren være strømforsynt i dvale, og operativsystemet må være konfigurert til å tillate det. En maskin som er suspendert, er et annet tilfelle enn en som er slått av, og begge skiller seg fra en maskin der strømforsyningen er slått av ved veggen. Avklar den tilstanden før du går gjennom resten av listen.
Les maskinvareadressen fra adapteren som faktisk mottar rammen. En stasjonær med både Ethernet og Wi-Fi har ofte to adresser, og bare én av dem er kanskje i stand til å vekke. Trådløs vekking er en egen egenskap med egne fastvarekrav, så en fungerende Ethernet-vekking sier ingenting om vekking over Wi-Fi.
Bevis den lokale veien først. Send magic packet fra en annen enhet på samme svitsj og se maskinen komme opp. Hvis det feiler, hjelper ingen mengde tunnel-feilsøking, og feilen ligger i fastvaren, adapterinnstillingene eller strømtilstanden.
Etter oppvåkning, koble til tjenesten du ønsket
Vekking er ikke fjernadgang. Når maskinen gjenopptar, må den fortsatt starte tjenestene sine, få en adresse og godta økten du faktisk trenger. Gi den tid til å nå den tilstanden før du konkluderer med at vekkingen feilet.
# remote side: trigger the wake through the already-authenticated tunnel
ssh [email protected] 'wol -i br-lan 3c:7a:8f:2b:11:04'
# home side: is the target answering on the LAN?
ping -c 3 10.10.0.42
arp -n 10.10.0.42
Linjen arp er den nyttige. En oppføring som skifter fra ufullstendig til en ekte maskinvareadresse, betyr at maskinen gjenopptok og svarte; en forespørsel som aldri løses opp, peker tilbake på vekketrinnet snarere enn på tjenesten du prøvde å nå.
Skill fasene i notatene dine: vekking, oppstart, tjeneste. En feil i fase to ser identisk ut med en feil i fase én fra et chatvindu, og bare det lokale beviset skiller dem.