169.254 kroz VPN: adresa nikada nije bila rutabilna
Link-local odredište se odbacuje prije nego stigne do tunela, pa dodavanje ruta samo širi kvar. Odaberite između popravke podmreže i mosta.
Dodate rutu, tunel se digne, a ping na drugu stranu i dalje umire s potpunim gubitkom umjesto «network unreachable». Ta razlika je važna jer skreće pogled s tablice rutiranja na samu adresu. Odredište 169.254 je link-local, a link-local opseg završava na prvom hopu po dizajnu, ne zbog pogrešne konfiguracije.
Odluka koja slijedi je uska i vrijedi je donijeti izričito: popraviti podmrežu na strani servera ili proširiti segment sloja 2 da adresa ponovno dobije lokalni smisao. Sve ostalo, uključujući dodavanje šire rute, samo čini da isti kvar vrijedi za više odredišta.
Adresa nije bez rute, ona je nerutabilna
IPv4 link-local adrese dodjeljuju se same kad ništa bolje ne odgovori, i odatle dolazi automatsko privatno adresiranje na Windowsima i odgovarajuća rezerva na drugim sistemima. Raspon se koristi na svakom linku istovremeno, i upravo zato radi: dva hosta na istom segmentu mogu razgovarati bez ikakve koordinacije.
Upravo zbog tog svojstva usmjerivač ne smije prosljeđivati te pakete između mreža. Primiti paket adresiran na link-local odredište i poslati ga kroz drugo sučelje stvorilo bi nejasnoću, jer su «lokalno» pošiljatelja i «lokalno» primatelja različita mjesta. Nema pretrage koja bi odredila koje je od toga pošiljatelj mislio. Prosljeđivanje ovdje nije politička opcija koju administrator može uključiti; klasa adresa to isključuje.
Zato gateway koji 169.254.1.10 postavi kao dostupan kroz tunel traži od kernela nešto što format adrese zabranjuje. Paket se odbacuje mnogo prije nego stigne do udaljenog hosta, i nikakva preciznost rute to ne mijenja.
Zašto tunel čini problem opsega vidljivim
TUN sučelje prenosi IP pakete između dva partnera i nema zajednički segment iza sebe. Nema broadcasta, nema ARP-a za drugu stranu, ni otkrivanja susjeda koje bi link-local odredište pretvorilo u adresu sloja veze. Čak i da je prosljeđivanje dopušteno, klijent ne može saznati koji partner treba odgovoriti.
Simptomi se lijepo poklapaju kad znate što tražiti. Ruta postoji u tablici, ping prijavljuje potpuni gubitak umjesto nedostupne mreže, a tablica susjeda pokazuje nepotpun ili neuspješan zapis za odredište. Snimka na tunelu pokazuje da paket izlazi, što ljude usmjerava na udaljeni kraj umjesto na klasu adrese.
Na Windowsima postoji drugi, naizgled nepovezan simptom s istim korijenom: adapter kojem je ostala samo link-local adresa nema upotrebljiv gateway, pa identifikacija mreže ne može klasificirati vezu i profil vatrozida završi na javnom. Tunel nije uzrok; adresa jest.
Odlučite s tri pitanja
Izbor između popravke podmreže i premošćivanja linka ovisi o tri uvjeta, i bilo koji od njih može ga riješiti prije nego otvorite datoteku konfiguracije.
| 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 |
Većina slučajeva stane na prvom pitanju. Host s link-local adresom obično znači da DHCP nije odgovorio, da su kabel ili VLAN pogrešni ili da je netko adresu upisao ručno. Popraviti to je jeftinije od bilo kojeg rada na tunelu i uklanja problem za svakog budućeg klijenta, a ne samo za ovaj. Ostavlja i radni DHCP raspon, što je ono što ste zapravo htjeli.
Provjerite stranu servera prije nego bilo što pretpostavite. Pokrenite ip addr show i ip route na hostu te arp -n ili route print -4 na klijentu, da vidite postoji li prefiks uopće ili samo zastario zapis tvrdi da postoji.
Koliko most košta kad je pravi odgovor
Premošćivanje fizičkog adaptera s TAP adapterom čini udaljenog klijenta dijelom lokalne broadcast domene. Tada broadcast i otkrivanje susjeda rade, a link-local adresa ponovno ima smisla jer je klijent doista lokalno na tom linku.
Troškovi su stvarni i valja ih navesti prije nego se itko složi. Broadcast promet prelazi tunel, klijent je izložen lokalnom segmentu za svaku svrhu, ne samo za usluge koje treba, a server sada mora prosljeđivati okvire umjesto rutirati pakete. To je razumna zamjena za laboratorijsku klupu ili uređaj bez rutabilnog puta konfiguracije, a loš zadani izbor za udaljeni pristup.
Kad gradite most, potrebne su obje polovice: most na serveru i ruta u profilu klijenta koja kaže koja su odredišta na drugoj strani. Sam most ostavlja klijenta da nagađa, a sama ruta ne može popraviti klasu adrese.