Metrika poti OpenVPN: zakaj izbrana pot še vedno izgubi
Metrika posamezne poti in route-metric določata različne stvari. Prehodite vrstico profila, poglejte, kaj je namestil odjemalec, in ugotovite, zakaj manjše število še vedno izgubi.
Poti v profilu ste dodali metriko, se znova povezali, promet pa še vedno odhaja skozi napačen vmesnik. Številka je redko težava. Metrika le razvršča kandidate, ki jih operacijski sistem že primerja, podrobnejša predpona ali zgodnejša tabela pravil pa odloči, še preden se prebere katera koli metrika.
Najprej preglejte profil, nato nameščeno tabelo in nazadnje pravila izbire. Ta vrstni red ustreza načinu, kako odjemalec sestavi pot, in vas ustavi pri nastavljanju vrednosti, ki v primerjavo nikoli ne vstopi.
Vrstico poti berite v vrstnem redu polj
Odjemalec Community OpenVPN 2.6 v vrstici route za IPv4 sprejme štiri polja: omrežje, masko, prehod in izbirno metriko. Na mestu prehoda stoji posebna ključna beseda vpn_gateway. Pomeni naslednji skok na strani VPN za to povezavo, ne številke usmerjevalne tabele in ne vašega fizičnega usmerjevalnika. Če to spregledate, se preostanek vrstice bere z napačno predstavo o tem, kaj počne. Referenca za omrežne možnosti opisuje vsa štiri polja.
Za zasebni cilj je lahko vrstica takšna:
route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30
Izrecna 30 velja za to pot, 50 pa ostane privzeta vrednost za vsako drugo pot v profilu, ki številke ne navaja. Branje vrstice od leve proti desni zadostuje, da ugotovite, katera vrednost velja kje.
route-metric je privzeta vrednost, ne rang
route-metric nastavi nadomestno vrednost za poti, ki nimajo lastne številke. Poti ne postavi nad nič drugega in ne prerazporedi poti, nameščenih z izrecnimi metrikami.
Ta razlika je pomembna, ko profil meša obe obliki. Ena sama vrstica route-metric blizu vrha je videti odločilna in jo je lahko kriviti, medtem ko ima pot, ki dejansko nosi promet, lahko svojo metriko tri vrstice nižje.
Če želite, da ena pot raje izbere določeno pot, postavite številko na to pot. Če želite dosledno privzeto vrednost v ustvarjenem profilu, uporabite route-metric in posamezne vrstice pustite pri miru. Mešanje obojega brez razloga je način, kako profil konča s potjo, ki je nihče ne zna razložiti.
Poglejte, kaj je odjemalec namestil
Ko se ponovna povezava konča, vprašajte jedro, ne profil.
ip route show našteje poti, ki jih je odjemalec dodal, ip route get 172.20.5.10 pa odgovori na bolj uporabno vprašanje: katero pot bi ta cilj dejansko uporabil in z naslovom katerega vira. Če cilja v tabeli ni, ga odjemalec ni namestil.
Lokalna direktiva, potiskanje s strežnika ali drug upravitelj omrežja lahko doda ali odstrani isto predpono, in zmaga tisti, ki piše zadnji. Med delom imejte pot do končne točke na očeh, ker povezava potrebuje pot do oddaljenega strežnika, ki ne teče skozi predor, ki ga gradi.
Zakaj manjša metrika še vedno izgubi
Metrike primerjajo poti do istega cilja. Široke predpone ne naredijo bolj podrobne. Ko je v igri redirect-gateway def1, odjemalec namesti 0.0.0.0/1 in 128.0.0.0/1, ti dve predponi pa pokrivata ves prostor IPv4 bolj podrobno kot 0.0.0.0/0. Metrika 1 na privzeti poti ju ne prekaša.
Enaka logika velja za vsak par, ki se prekriva. /24 premaga /16 za naslov znotraj njega ne glede na pripete številke, ker iskanje najprej izbere najbolj podrobno ujemanje in šele nato primerja metrike med enakimi.
To je del, ki je videti kot napaka v metriki, pa ni. Preden spremenite katero koli številko, preverite dolžino predpone pri obeh kandidatih.
Pravila politike se izvajajo pred tabelo
V Linuxu ip rule odloči, katera usmerjevalna tabela se pregleda. Pravila se vrednotijo po vrstnem redu prioritete, zato lahko zgodnejša tabela vrne pot, še preden se glavna tabela sploh prebere. Metrika v main ne more prekašati ujemanja v tabeli, ki je bila pregledana prva.
Uporabite ip rule show in nato povprašajte določeno tabelo, na primer ip route show table 100, da vidite, kaj bi to pravilo vrnilo. Če je pravilo dodal odjemalec VPN ali okolje za zabojnike, je odgovor morda tam in ne v tabeli, ki ste jo brali. Pomemben je tudi naslov vira, saj lahko pravilo ujame vir in isti cilj razreši drugače za promet predora in promet v LAN.
Preverite cilj, ne razvrstitve
Preizkus, ki konča razpravo, je ena sama poizvedba na gostitelja znotraj predvidenega podomrežja, skupaj s preverjanjem naslova vira, ki ga je izbralo jedro. Če se ta par ujema z zasnovo, metrika opravlja svoje delo, tudi ko seznam ne izgleda kot urejena razvrstitev.
IPv6 in DNS pustite izven tega preverjanja. Nastavljata se z drugimi direktivami in razrešujeta z drugimi mehanizmi, delujoča pot IPv4 pa o njima ne pove ničesar. Spreminjajte eno plast naenkrat in poizvedbo znova zaženite.