Usmerjevalne tabele se berejo kot pokvarjene vsakič, ko stolpec prehoda ostane prazen, čeprav je vrstica običajno sama po sebi popolna. Polje via se pojavi le, ko jedro preda paket naslovu naslednjega skoka; pot, pritrjena na vmesnik, doseže svoje cilje namesto tega prek razrešitve na povezovalnem sloju ali prek partnerja od točke do točke. Branje stolpcev od leve proti desni vam pove, v katerem primeru ste, in to branje bi moralo pasti pred tem, ko kdo uredi privzeto pot. Večina zahtevkov o manjkajočem prehodu se konča pri tem razlikovanju.

Preberite vrstico poti stolpec za stolpcem

Vsak vnos se začne s ciljem in dolžino njegove predpone, nato doda modifikatorje v fiksnem slovarju: via, dev, proto, scope, src in metric. Vrstica, kot je 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2, je gosta, a popolnoma določena. Nič ji ne manjka in noben naslov usmerjevalnika ni impliciran.

Zanimiva je odsotnost via. Brez naslednjega skoka jedro razreši cilj neposredno na navedenem vmesniku, kar za tunel pomeni predajo okvira tunelski napravi in prepustitev enkapsulaciji, da prevzame od tam. proto kernel beleži, da je bil vnos nameščen samodejno, ko je bil dodeljen naslov, ne pa da ga je vnesel skrbnik. scope link pravi, da je cilj na tej povezavi dosegljiv brez prehoda skozi usmerjevalnik, in src imenuje naslov, ki ga bo jedro raje izbralo kot vir za ujemajoči se promet.

Zdaj preberite privzeto pot na enak način: default via 192.0.2.254 dev eth0 proto static metric 100. Tu je via prisotno, ker paket res potrebuje naslednji skok, in ta skok mora biti sam dosegljiv na eth0. Ti dve vrstici nista različici druga druge; odgovarjata na različna vprašanja o tem, kam gre promet.

Dve obliki poti, ki se med seboj zamenjujeta

Pot podomrežja tunela in privzeta pot sta videti podobni na posnetku zaslona in se obnašata povsem drugače. Uporabite spodnjo tabelo kot pomoč pri branju polj, nato pa potrdite dejanske številke na stroju, ki ga odpravljate, namesto da bi zaupali vzorcu iz priročnika.

Piece of the lineWhat it settlesWhat it says nothing about
The destination and maskWhich packets are eligible to matchWhere those packets leave the host
via plus its addressWhich next hop receives them, and therefore that a router is involvedWhether that router is reachable or sane
devWhich interface carries the encapsulated or raw packetWhether the interface is up or has a carrier
proto and scopeWho installed the entry and how far the destination is considered to beWhether a firewall later drops the traffic

Česar tabela ne more povedati, je namen. Neposredna pot v zasebni razpon skozi tunel je namerna zasnova razdeljenega tunela; ista oblika na gostitelju, ki bi moral vse pošiljati prek VPN, je simptom. Namen živi v konfiguraciji, ki je ustvarila vnos, zato poglejte orodje, ki ga je namestilo, preden sklepate, da je jedro kaj naredilo narobe.

Prav tako manjkajoči prehod ni dovoljenje, da si ga izmislite. Če pot res potrebuje naslednji skok, mora biti ta skok dosegljiv na vmesniku, ki ga nosi, in pri tunelu od točke do točke naslov partnerja ni isti objekt kot lokalni naslov. Obravnavanje lokalnega naslova tunela kot Ethernet usmerjevalnika je pogost način, da ustvarite pot, ki je videti pravilna in ne posreduje ničesar.

Vprašajte jedro, katero vrstico bo dejansko uporabilo

Branje tabele ni isto kot izvedba poizvedbe, ker se jedro pred odgovorom posvetuje s pravili politike, več tabelami in predpomnjenimi vnosi. Glagol, ki izvede pravo poizvedbo, je ip route get, in izpiše pot, ki bi jo paket s temi lastnostmi ubral.

ip route get 203.0.113.37 from 198.51.100.2 iif tun0

Vstavite cilj, ki vam je res pomemben, nato dodajte from ali iif, ko je promet izbran glede na vir ali posredovan naprej, ker lahko običajna lokalna poizvedba izbere drugačno pot kot posredovani odjemalec. Odgovor navede vmesnik, izbrani naslov vira in morebitni naslednji skok, kar so iste informacije, s katerimi bi bil paket v tistem trenutku usmerjen.

Če vas odgovor preseneti, izpišite pravila, preden karkoli spremenite: ip -4 rule show jih navaja po vrstnem redu prednosti, in odjemalec VPN, ki namesti svojo tabelo ali pravilo za označene pakete, se v glavni tabeli sploh ne bo pojavil. Naštevanje vseh tabel zapre to vrzel.

ip -4 route show table all | grep -E 'tun|default'

Preverite spodnji sloj, preden zamenjate privzeto pot

Lastni paketi tunela morajo doseči oddaljeno končno točko, in to storijo prek fizičnega vmesnika z uporabo poti, ki je obstajala, preden se je VPN dvignil. Zamenjava celotne privzete poti brez pripenjanja te končne točke pošlje enkapsulirane pakete v tunel, ki bi ga morali zgraditi, in povezava se zruši. Najprej potrdite pot do končne točke s poizvedbo samo po njenem naslovu.

Ko delate spremembo, imejte tri stvari ločene: pot do končne točke, ki mora ostati na fizičnem vmesniku, zasebni razponi, ki bi morali vstopiti v tunel, in privzeta pot, ki odloča o vsem drugem. Ločite jih v tem vrstnem redu, uporabite eno naenkrat in po vsakem koraku znova zaženite poizvedbo. Neuspel ping pozneje sam po sebi dokaže zelo malo, saj so dovoljenja, usmerjanje odgovorov, DNS in sama storitev vsi dolvodno od pravilne poti.

Zapišite štiri vrednosti, ki vam jih je vrstica dala pred urejanjem: cilj, naslednji skok ali njegova odsotnost, naprava in izbrani vir. Če se katera od njih zaradi poznejše spremembe premakne, veste, katera odločitev je bila dejansko spremenjena, in lahko obnovite en vnos, namesto da bi ugibali o celotni tabeli.

Sorodni članki