169.254 over ein VPN: adressa var aldri rutbar
Ein link-local-destinasjon blir kasta før han når tunnelen, så fleire ruter gjer berre feilen breiare. Vel mellom å reparere subnettet og å byggje ei bru.
Du legg til ruta, tunnelen kjem opp, og likevel døyr ping til den andre sida med totalt tap i staden for «network unreachable». Skilnaden tel, fordi han peikar bort frå rutetabellen og mot adressa sjølv. Ein 169.254-destinasjon er link-local, og rekkevidda sluttar ved første hopp etter design, ikkje etter feilkonfigurasjon.
Avgjerda som følgjer er smal og bør takast eksplisitt: reparer subnettet på serversida, eller utvid lag 2-segmentet slik at adressa igjen gir lokal meining. Alt anna, også ei breiare rute, gjer berre at same feil gjeld for fleire destinasjonar.
Adressa er ikkje utan rute, ho er ikkje rutbar
IPv4 link-local-adresser tildeler seg sjølv når ingenting betre svarar; det er bakgrunnen for den automatiske private adresseringa i Windows og tilsvarande på andre system. Området blir brukt på kvar lenke samstundes, og nettopp difor verkar det: to vertar i same segment kan snakke saman utan noka koordinering.
Same eigenskap er grunnen til at ein ruter ikkje skal videresende slike pakkar mellom nettverk. Å ta imot ein pakke adressert til ein link-local-destinasjon og sende han ut på eit anna grensesnitt ville skape tvetyd, fordi «lokalt» hjå avsendar og «lokalt» hjå mottakar er ulike stader. Det finst ingen oppslag som kan avgjere kva av dei to avsendaren meinte. Videresending er ikkje eit policyval ein administrator kan slå på her; adresseklassen utelukkar det.
Så ein gateway som installerer 169.254.1.10 som nåbar gjennom tunnelen, ber kjernen om noko adresseformatet forbyr. Pakken blir kasta lenge før han når den fjerne verten, og ingen rutepresisjon endrar det.
Kvifor ein tunnel gjer rekkeviddeproblemet synleg
Eit TUN-grensesnitt ber IP-pakkar mellom to partar og har ingen delt segment bak seg. Det finst inga kringkasting, ingen ARP for den andre sida og inga nabo-oppdaging som kan løyse ein link-local-destinasjon til ei lenkjelagsadresse.
Symptoms passer nøyaktig når ein veit kva ein skal sjå etter. Ruta finst i tabellen, ping rapporterer totalt tap i staden for eit utilgjengeleg nettverk, og nabo-tabellen viser ei ufullstendig eller mislukka oppføring. Eit opptak på tunnelen viser pakken forlating, noko som får folk til å sjå på den fjerne enden i staden for adresseklassen.
I Windows finst eit andre, tilsynelatande urelatert symptom med same rot: ein adapter som berre har ei link-local-adresse, har ingen brukbar gateway, så nettverksidentifikasjon kan ikkje klassifisere sambandet og brannmurprofilen hamnar på offentleg. Tunnelen er ikkje årsaka; adressa er det.
Avgjer med tre spørsmål
Valet mellom å reparere subnettet og å bru lenka avheng av tre vilkår, og eit kva som helst av dei kan avgjere det før du opnar ei konfigurasjonsfil.
| Question | If yes | If no |
|---|---|---|
| Can the far-side host be given a routable address? | Change the host or fix DHCP and route normally | Continue to the next question |
| Does the device accept a static address at all? | Assign one from the site's real prefix | Bridging is the only remaining option |
| Can you accept broadcast crossing the tunnel? | A bridge is viable for a small segment | Replace the device or accept no remote access |
Dei fleste tilfella stoppar ved første spørsmål. Ein vert med link-local-adresse tyder vanlegvis at DHCP ikkje svara, at ein kabel eller VLAN er feil, eller at nokon skreiv adressa for hand. Å reparere det er billegare enn alt tunnelarbeid og fjernar problemet for kvar framtidig klient, ikkje berre denne.
Kontroller serversida før du antek noko. Køyr ip addr show og ip route på verten, og arp -n eller route print -4 på klienten, for å sjå om prefikset faktisk finst eller om berre ei gammal oppføring påstår det.
Kva ei bru kostar når ho er det rette svaret
Å bru ei fysisk grensesnitt med ein TAP-adapter gjer den fjerne klienten til ein del av det lokale kringkastingsdomenet. Då verkar kringkasting og nabo-oppdaging, og ei link-local-adresse gir igjen meining fordi klienten faktisk er lokal på den lenka.
Kostnadene er reelle og bør nemnast før nokon godtek. Kringkastingstrafikk kryssar tunnelen, klienten er utsett for det lokale segmentet for alle føremål og ikkje berre tenestene han treng, og serveren må no videresende rammer i staden for å rute pakkar. Det er eit rimeleg byte for ein laboratoriebenk eller eining utan rutbar konfigurasjonsveg, og ein dårleg standard for fjernåtkomst.
Når du bru, trengst båe halvdelar: brua på serveren og ei rute i klientprofilen som seier kva destinasjonar som ligg på den andre sida. Ei bru åleine lèt klienten gjette, og ei rute åleine kan ikkje reparere ein adresseklasse.