Otvorite tablicu usmjeravanja nakon spajanja i pronađete jednu adresu usmjerenu kroz tunel, dok podmreža oko nje i dalje ide na lokalni pristupnik. Taj je unos ruta do hosta: jedna adresa, usklađena prefiksom od samih jedinica. Važan je jer odluke o usmjeravanju koriste najdulji podudarni prefiks, pa /32 može nadjačati /24 ili zadanu rutu bez promjene bilo koje od njih. Je li to pažljiva iznimka ili budući prekid, ovisi o tome koju adresu imenuje i tko je održava.

Jedna adresa, jedan unos u tablici

Ruta do hosta IPv4 nosi prefiks /32, a ruta do hosta IPv6 nosi /128, što znači da se unos može podudarati s točno jednom odredišnom adresom. Ništa se drugo u tablici ne pomiče: podmreža koja je pokriva i zadana ruta ostaju gdje su bile. Uski unos pobjeđuje za tu adresu jer je njegov prefiks dulji, a ne jer je dodan kasnije.

To svojstvo čini rutu do hosta dobrom iznimkom i lošom navikom. Dva unosa /32 koja imenuju ulazna vrata neke usluge ne pokrivaju njezinu drugu adresu, njezinu adresu IPv6 ni adresu na koju se seli sljedećeg mjeseca. Tablica puna neobjašnjenih unosa s jednom adresom obično znači da je netko stalno krpao oko odluke o podmreži umjesto da je donese. Prvo pročitajte duljinu prefiksa, a zatim pitajte što unos treba zaštititi.

Pročitajte unos od klijenta prema van

Počnite na stroju s problemom jer se ista adresa može usmjeravati različito na prijenosniku i na pristupniku ispred njega. Pitajte jezgru koji bi put odabrala za točnu adresu koju aplikacija koristi, umjesto da čitate tablicu odozgo. Odgovor uključuje sučelje i sljedeći skok, što zajedno čini odluku.

ip route get 203.0.113.25
ip -6 route get 2001:db8:4::25
ip route show | grep -F 203.0.113.25
Find-NetRoute -RemoteIPAddress 203.0.113.25

Ponovite upit za obitelj adresa koju aplikacija doista odabire jer klijent može preferirati IPv6 i tiho zaobići iznimku IPv4. Usporedite rezultat prije i nakon podizanja tunela i sačuvajte oba izlaza. Ta usporedba pokazuje je li klijent dodao unos pri spajanju ili je već bio tamo.

Trajni unos i izvršni unos zatajuju različito. Izvršni nestaje sa sesijom, dok trajni preživljava ponovno pokretanje i nastavlja slati promet na pristupnik koji više ne postoji.

Iznimka za završnu točku i zamka rekurzije

VPN klijenti obično instaliraju rutu do hosta na vanjsku adresu poslužitelja kroz izvorni pristupnik prije nego preusmjere zadanu rutu. Bez tog unosa šifrirani bi se paketi slali u tunel koji pokušavaju izgraditi, a veza bi se vrtjela u petlji dok ne istekne.

Zamka se pojavljuje kad prihvaćene podmreže tunela slučajno uključe tu adresu završne točke ili kad drugi profil kasnije doda širu rutu. Tada unos završne točke gubi od duljeg prefiksa i sesija se ruši čim počne propuštati promet. Zapisivanje adrese završne točke uz prihvaćene podmreže najjeftiniji je način da se sudar primijeti prije korisnika. To također objašnjava zašto isti profil radi iz jedne mreže, a iz druge ne.

Provjerite put koji aplikacija doista koristi

Uspješan ping na ime hosta slab je dokaz kad se aplikacija spaja na drugu adresu ili drugu obitelj. Provjerite točnu kombinaciju adrese, obitelji, porta i sučelja sa stroja koji pokreće klijenta.

ip route get 203.0.113.25
sudo nft list ruleset | grep -A 4 'chain output'
curl -sS --max-time 8 -o /dev/null -w '%{remote_ip}
' https://app.example.net

Ako je put pogrešan, odlučite je li zahtjev mreža ili jedna adresa prije nego što išta uredite. Zahtjev za jednom adresom opravdava rutu do hosta s komentarom i vlasnikom; usluga s adresama koje se rotiraju treba usmjeravanje na temelju domene ili poštenu odluku o podmreži.

Uklonite unose koji više ne odgovaraju stvarnom odredištu i zabilježite one koje zadržavate. Neobjašnjen /32 tri mjeseca kasnije ne razlikuje se od pogreške, a sljedeća osoba izbrisat će ga ne znajući što je o njemu ovisilo.

Povezani članci