OpenVPN-i marsruudimõõdik: miks valitud marsruut ikkagi kaotab
Marsruudipõhine mõõdik ja route-metric määravad erinevaid asju. Käige profiilirida läbi, kontrollige, mida klient installis, ja vaadake, miks väiksem number ikkagi kaotab.
Lisasite profiilis marsruudile mõõdiku, ühendusite uuesti ja liiklus väljub ikkagi vale liidese kaudu. Number on harva probleemiks. Mõõdik ainult järjestab kandidaate, mida operatsioonisüsteem juba võrdleb, ja täpsem prefiks või varasem poliitikatabel otsustab enne, kui ühtegi mõõdikut loetakse.
Käige esmalt läbi profiil, seejärel installitud tabel ja seejärel valikureeglid. See järjekord vastab sellele, kuidas klient marsruudi ehitab, ja hoiab ära väärtuse häälestamise, mis kunagi võrdlusesse ei jõua.
Lugege marsruudirida väljade järjekorras
OpenVPN 2.6 kogukonnaklient aktsepteerib IPv4 route real nelja välja: võrk, võrgumask, lüüs ja valikuline mõõdik. Lüüsi asukoht on see, kuhu läheb spetsiaalne märksõna vpn_gateway. See tähendab selle ühenduse jaoks järgmist hüpet VPN-i poolel, mitte marsruutimistabeli numbrit ja mitte teie füüsilist ruuterit. Kui selle vahele jätate, loetakse rea ülejäänud osa vale ettekujutusega sellest, mida see teeb. võrguvalikute viide dokumenteerib kõik neli välja.
Privaatse sihtkoha jaoks võib rida olla selline:
route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30
Selgesõnaline 30 kehtib selle marsruudi kohta ja 50 jääb vaikeväärtuseks kõigile teistele profiili marsruutidele, mis numbri ära jätavad. Rea lugemisest vasakult paremale piisab, et näha, milline väärtus kus kehtib.
route-metric on vaikeväärtus, mitte auaste
route-metric määrab varuväärtuse marsruutidele, mis ei kanna oma numbrit. See ei tõsta marsruuti millegi muu kohale ega järjesta ümber selgesõnaliste mõõdikutega installitud marsruute.
See erinevus loeb, kui profiil segab mõlemat vormi. Üksik route-metric rida ülaosas tundub autoriteetne ja seda on lihtne süüdistada, samal ajal kui marsruut, mis liiklust tegelikult kannab, võib kanda oma mõõdikut kolm rida allpool.
Kui soovite, et üks marsruut eelistaks teed, pange number sellele marsruudile. Kui soovite genereeritud profiili ulatuses ühtset vaikeväärtust, kasutage route-metric ja jätke üksikud read rahule. Kahe segamine ilma põhjuseta on viis, kuidas profiil lõpetab marsruudiga, mida keegi seletada ei oska.
Kontrollige, mida klient installis
Kui uuesti ühendamine on lõppenud, küsige tuumalt, mitte profiililt.
ip route show loetleb marsruudid, mille klient lisas, ja ip route get 172.20.5.10 vastab kasulikumale küsimusele: millist marsruuti see sihtkoht tegelikult kasutaks ja millise lähteaadressiga. Kui sihtkoht tabelis puudub, ei installinud klient seda.
Kohalik direktiiv, serveri tõuge või muu võrguhaldur võivad sama prefiksi lisada või eemaldada ning võidab see, kes viimasena kirjutab. Hoidke lõpp-punkti marsruut silme ees, kui töötate, sest ühendus vajab teed kaugserverini, mis ei kulge läbi selle tunnel, mida ta ehitab.
Miks väiksem mõõdik ikkagi kaotab
Mõõdikud võrdlevad marsruute sama sihtkoha suhtes. Need ei muuda laia prefiksit täpsemaks. Kui redirect-gateway def1 on mängus, installib klient 0.0.0.0/1 ja 128.0.0.0/1, ning need kaks prefiksit katavad kogu IPv4 ruumi täpsemalt kui 0.0.0.0/0. Mõõdik 1 vaikemarsruudil ei ületa neid.
Sama loogika kehtib iga kattuva paari kohta. /24 võidab /16 selle sees oleva aadressi puhul sõltumata lisatud numbritest, sest otsing valib kõigepealt kõige täpsema vaste ja alles siis võrdleb mõõdikuid võrdsete vahel.
See on see osa, mis näeb välja nagu mõõdiku viga, aga ei ole. Kontrollige prefiksi pikkust mõlemal kandidaadil enne, kui muudate ükskõik millist numbrit.
Poliitikareeglid töötavad enne tabelit
Linuxis otsustab ip rule, millist marsruutimistabelit konsulteeritakse. Reeglid hinnatakse prioriteedi järjekorras, nii et varasem tabel võib tagastada marsruudi enne, kui põhitabelit üldse loetakse. Mõõdik main-i sees ei saa ületada vastet tabelis, mida konsulteeriti esimesena.
Kasutage ip rule show ja seejärel küsige konkreetset tabelit, näiteks ip route show table 100, et näha, mida see reegel tagastaks. Kui VPN-klient või konteineri käituskeskkond lisas reegli, võib vastus olla seal, mitte tabelis, mida olete lugenud. Ka lähteaadress loeb, sest reegel võib vastata lähtele ja lahendada sama sihtkoha tunneliliikluse ja LAN-liikluse jaoks erinevalt.
Kontrollige sihtkohta, mitte pingerea järjekorda
Test, mis vaidluse lõpetab, on üks päring sihtalamvõrgu sees olevasse hosti pluss tuuma valitud lähteaadressi kontroll. Kui see paar vastab kavandile, teeb mõõdik oma tööd ka siis, kui loend ei näe välja nagu puhas pingerea järjekord.
Jätke IPv6 ja DNS sellest kontrollist välja. Neid konfigureeritakse erinevate direktiividega ja lahendatakse erinevate mehhanismidega ning töötav IPv4 marsruut ei ütle kummagi kohta midagi. Muutke korraga ühte kihti ja käivitage päring uuesti.