Prečo trasa VPN nezobrazuje bránu vo výstupe ip route
Riadok s rozhraním a bez brány je priama trasa, nie rozbitá. Prečítajte cieľ, dev a scope a potom to overte pomocou ip route get.
Smerovacie tabuľky sa často čítajú ako rozbité vždy, keď stĺpec brány zostane prázdny, hoci riadok je zvyčajne sám o sebe úplný. Pole via sa objaví len vtedy, keď jadro odovzdá paket adrese ďalšieho skoku; trasa pripojená k rozhraniu dosahuje svoje ciele namiesto toho cez rozlíšenie na linkovej vrstve alebo cez partnera bod-bod. Čítanie stĺpcov zľava doprava vám povie, v ktorom prípade sa nachádzate, a toto čítanie by malo prebehnúť skôr, než niekto upraví predvolenú trasu. Väčšina tiketov o chýbajúcej bráne končí pri tomto rozlíšení.
Čítajte riadok trasy stĺpec po stĺpci
Každý záznam začína cieľom a dĺžkou jeho prefixu a potom pridáva modifikátory v pevnom slovníku: via, dev, proto, scope, src a metric. Riadok ako 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2 je hustý, ale plne určený. Nič v ňom nechýba a žiadna adresa smerovača sa nenaznačuje.
Zaujímavá je neprítomnosť via. Bez ďalšieho skoku jadro vyrieši cieľ priamo na uvedenom rozhraní, čo pri tuneli znamená odovzdať rámec tunelovému zariadeniu a nechať zapuzdrenie, aby sa oň postaralo odtiaľ. proto kernel zaznamenáva, že záznam bol nainštalovaný automaticky pri pridelení adresy, nie že ho napísal správca. scope link hovorí, že cieľ je na tomto spoji dosiahnuteľný bez prechodu cez smerovač, a src pomenúva adresu, ktorú jadro uprednostní ako zdroj pre zodpovedajúcu prevádzku.
Teraz prečítajte predvolenú trasu rovnako: default via 192.0.2.254 dev eth0 proto static metric 100. Tu je via prítomné, pretože paket ďalší skok skutočne potrebuje, a tento skok musí byť sám dosiahnuteľný na eth0. Tie dva riadky nie sú variantmi jeden druhého; odpovedajú na rôzne otázky o tom, kam prevádzka ide.
Dva tvary trás, ktoré sa navzájom pletú
Trasa podsiete tunela a predvolená trasa vyzerajú na snímke obrazovky podobne a správajú sa úplne odlišne. Použite tabuľku nižšie ako pomôcku na čítanie polí a potom overte skutočné čísla na stroji, ktorý ladíte, namiesto toho, aby ste dôverovali ukážke z návodu.
| Piece of the line | What it settles | What it says nothing about |
|---|---|---|
| The destination and mask | Which packets are eligible to match | Where those packets leave the host |
via plus its address | Which next hop receives them, and therefore that a router is involved | Whether that router is reachable or sane |
dev | Which interface carries the encapsulated or raw packet | Whether the interface is up or has a carrier |
proto and scope | Who installed the entry and how far the destination is considered to be | Whether a firewall later drops the traffic |
Čo vám tabuľka nemôže povedať, je zámer. Priama trasa do privátneho rozsahu cez tunel je zámerný návrh rozdeleného tunelovania; rovnaký tvar na hostiteľovi, ktorý by mal posielať všetko cez VPN, je príznak. Zámer žije v konfigurácii, ktorá záznam vytvorila, takže sa pozrite na nástroj, ktorý ho nainštaloval, skôr než usúdite, že jadro niečo pokazilo.
Rovnako tak chýbajúca brána nie je povolenie si nejakú vymyslieť. Ak trasa skutočne potrebuje ďalší skok, tento skok musí byť dosiahnuteľný na rozhraní, ktoré ho nesie, a pri tuneli bod-bod nie je adresa partnera ten istý objekt ako lokálna adresa. Považovať lokálnu adresu tunela za ethernetový smerovač je častý spôsob, ako vytvoriť trasu, ktorá vyzerá správne a nič neodošle.
Opýtajte sa jadra, ktorý riadok skutočne použije
Čítanie tabuľky nie je to isté ako vykonanie vyhľadania, pretože jadro pred odpoveďou konzultuje pravidlá politiky, niekoľko tabuliek a položky v medzipamäti. Sloveso, ktoré vykonáva skutočné vyhľadanie, je ip route get, a vypisuje trasu, ktorou by paket s týmito vlastnosťami išiel.
ip route get 203.0.113.37 from 198.51.100.2 iif tun0
Dosaďte cieľ, na ktorom vám skutočne záleží, a potom pridajte from alebo iif, keď je prevádzka vybratá podľa zdroja alebo sa preposiela, pretože bežné lokálne vyhľadanie môže zvoliť inú cestu ako preposielaný klient. Odpoveď uvádza rozhranie, zvolenú zdrojovú adresu a prípadný ďalší skok, čo sú tie isté informácie, s ktorými by bol paket v tej chvíli smerovaný.
Ak vás odpoveď prekvapí, vypíšte pravidlá pred akoukoľvek úpravou: ip -4 rule show ich uvádza v poradí priority a klient VPN, ktorý inštaluje vlastnú tabuľku alebo pravidlo pre označené pakety, sa v hlavnej tabuľke vôbec neobjaví. Vypísanie všetkých tabuliek túto medzeru uzatvára.
ip -4 route show table all | grep -E 'tun|default'Skontrolujte podkladovú vrstvu, než nahradíte predvolenú trasu
Vlastné pakety tunela sa musia dostať k vzdialenému koncovému bodu, a to cez fyzické rozhranie pomocou trasy, ktorá existovala pred spustením VPN. Nahradenie celej predvolenej trasy bez pripnutia tohto koncového bodu pošle zapuzdrené pakety do tunela, ktorý majú postaviť, a spojenie sa zrúti. Najprv overte cestu ku koncovému bodu vyhľadaním iba jeho adresy.
Pri zmene držte tri veci oddelene: trasu ku koncovému bodu, ktorá musí zostať na fyzickom rozhraní, privátne rozsahy, ktoré majú vstúpiť do tunela, a predvolenú trasu, ktorá rozhoduje o všetkom ostatnom. Rozdeľte ich v tomto poradí, aplikujte po jednej a po každom kroku znova spustite vyhľadanie. Neúspešný ping potom sám o sebe dokazuje veľmi málo, pretože oprávnenia, smerovanie odpovedí, DNS aj samotná služba stoja všetky po prúde správnej trasy.
Zapíšte si štyri hodnoty, ktoré vám riadok dal pred úpravou: cieľ, ďalší skok alebo jeho neprítomnosť, zariadenie a zvolený zdroj. Ak niektorú z nich neskoršia zmena posunie, viete, ktoré rozhodnutie sa skutočne zmenilo, a môžete obnoviť jeden záznam namiesto hádania o celej tabuľke.