EHOSTUNREACH je lokalna odluka jednako često kao i udaljeni kvar. Kernel može odbiti paket jer ruta kaže da je odredište nedostupno, jer Ethernet susjed nikada nije odgovorio ili jer je ICMP host-unreachable izvještaj stigao s daljeg dijela puta. Svaki izvor živi u drugoj tablici ili kešu i svaki se popravlja na drugom mjestu. Pročitajte odabranu rutu i stanje sljedećeg hopa prije nego što dirate šifre ili ponovno instalirate tunel.

Odaberite adresu i namespace koje klijent stvarno koristi

Počnite tako što ćete fiksirati odredište i mrežni namespace koji je proizveo grešku. VPN klijent može raditi u vlastitom namespaceu, a pretraga iz zadanog namespacea konsultuje drugu tablicu rutiranja s drugim pravilima politike.

Pretraga mora koristiti isti kontekst izvora, oznake i tablice kao aplikacija koja pada, inače može odgovoriti na pitanje koje niko nije postavio. Za ilustrativni IPv4 peer, provjere samo za čitanje su:

ip -4 route get 198.51.100.25
ip -4 neigh show 198.51.100.1
ip -4 route show table all | grep -w unreachable

Rezultat iz administrativne ljuske dokazuje samo šta bi ta ljuska uradila. Ako klijent postavlja firewall oznaku ili se veže na VRF, ponovite pretragu s odgovarajućom oznakom ili unutar VRF-a i uporedite odabranu rutu i sljedeći hop. Prva adresa koju treba potvrditi je peer adresa u profilu, a ne klaster ili servis koji korisnik navodi.

Izričita nedostupna ruta odbija paket lokalno

Ruta tipa unreachable je namjeran lokalni odgovor. Ona kaže kernelu da odbaci paket i vrati EHOSTUNREACH pošiljaocu, zbog čega se greška pojavljuje trenutno i bez ikakvog saobraćaja koji napušta mašinu. Neko ili neka automatizacija je namjerno stavila tu rutu tamo.

Tipovi ruta nisu zamjenjivi. Blackhole odbacuje paket bez greške pošiljaocu, prohibit vraća EACCES, a unreachable vraća EHOSTUNREACH. VPN pomoćnik koji tokom ponovnog povezivanja instalira sink rutu može zato proizvesti nalet host-unreachable grešaka koje nestanu kada se tunel podigne, dok bi blackhole ruta umjesto toga proizvela tihe timeout-e.

Pretražite sve tablice za tip prije nego što okrivite udaljeni kraj. Pravilo koje bira tablicu važno je koliko i ruta unutar nje, a ruta dodana u glavnu tablicu neće pomoći klijentu čije pravilo politike šalje njegov saobraćaj negdje drugdje.

Mrtav susjed proizvodi istu grešku na Ethernetu

Kada odabrana ruta koristi on-link gateway, dostava treba razriješenu adresu sloja veze. Kernel šalje ARP ili IPv6 susjedski zahtjev, a ako odgovor ne stigne, paket se ne može uokviriti. Slanje tada pada s EHOSTUNREACH iako je sama ruta valjana.

Tablica susjeda imenuje fazu. INCOMPLETE znači da je razrješavanje još u toku, FAILED znači da posljednji pokušaj nije dobio odgovor, a REACHABLE ili STALE znači da kernel ima upotrebljivu adresu. FAILED zapis za VPN gateway je lokalni problem dostave, a ne dokaz o dalekoj strani tunela.

Čitajte zapis za stvarni sljedeći hop, a ne za udaljenu internet adresu. Udaljena adresa se obično doseže preko rutera, pa neće imati vlastiti ARP zapis; tražiti ga je kategorijska greška koja ljude šalje u potragu za zapisom koji nikada nije trebao postojati.

Udaljeni izvještaji i asinhronne UDP greške

EHOSTUNREACH može doći i izvana. Ruter koji ne može proslijediti paket može poslati ICMP host unreachable, a kernel taj izvještaj prosljeđuje socketu koji posjeduje tok. U tom slučaju ruta i susjed su u redu, a kvar pripada hopu izvan lokalne mreže.

UDP otežava pripisivanje. Greška koju vrati kasniji poziv slanja ili primanja može se odnositi na raniji datagram, pa se adresa i vrijeme poziva koji pada možda ne podudaraju s paketom koji je pokrenuo izvještaj. Povezani UDP socket primi grešku jednom, a nepovezani je možda nikada ne vidi.

Zato vrijeme pripada dokazima. Zabilježite kada se greška pojavila, koju je peer adresu socket koristio i da li se tunel upravo ponovno povezao. Nalet odmah nakon promjene rute upućuje na lokalnu tablicu; pojedinačna greška nekoliko minuta nakon stabilnog toka upućuje na izvještaj puta.

Odvojite slojeve prije nego što promijenite kripto

Tri pitanja klasificiraju grešku. Da li je kernel odabrao rutu koja odbija odredište? Da li je odabrao valjanu rutu ali nije razriješio sljedeći hop? Ili je izvještaj stigao izvan lokalne mreže? Samo treći slučaj može uključiti daleki kraj tunela, a ni tada ne uključuje enkripciju.

Problemi s autentifikacijom i pregovaranjem pojavljuju se kao vlastite greške nakon što transport dosegne peer. Promjena šifre ili ponovna instalacija klijenta ne može popraviti lokalnu unreachable rutu i uništava dokaze o ruti i susjedu koji bi vam trebali za stvarni uzrok.

Zabilježite odredište, namespace, odabranu tablicu, sljedeći hop, stanje susjeda i vrijeme greške prije prve promjene. Ponovite istu pretragu nakon popravke; ruta koja sada pokazuje na tunel i zapis susjeda koji se sada razrješava jači su dokaz od uspješnog pinga na nepovezanu adresu.

Povezani članci