Pridėjote metriką maršrutui profilyje, prisijungėte iš naujo, o srautas vis tiek išeina per netinkamą sąsają. Problema retai būna skaičiuje. Metrika tik surikiuoja kandidatus, kuriuos operacinė sistema jau lygina, o konkretesnis prefiksas ar ankstesnė politikos lentelė nusprendžia dar prieš perskaitant bet kokią metriką.

Pirmiausia peržiūrėkite profilį, tada įdiegtą lentelę, o paskui atrankos taisykles. Ši tvarka atitinka būdą, kuriuo klientas kuria maršrutą, ir neleidžia derinti reikšmės, kuri niekada nepatenka į palyginimą.

Skaitykite maršruto eilutę laukų tvarka

Community OpenVPN 2.6 klientas priima keturis laukus IPv4 route eilutėje: tinklą, tinklo kaukę, šliuzą ir pasirinktinę metriką. Šliuzo vietoje įrašomas specialusis vpn_gateway raktinis žodis. Jis reiškia VPN pusės kitą šuolį šiam ryšiui, o ne maršrutizavimo lentelės numerį ir ne jūsų fizinį maršrutizatorių. To nepastebėjus, likusi eilutės dalis skaitoma su klaidinga idėja apie jos paskirtį. network-options nuoroda aprašo visus keturis laukus.

Privačiam tikslui eilutė gali atrodyti taip:

route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30

Aiškusis 30 taikomas tam maršrutui, o 50 lieka numatytuoju visiems kitiems profilio maršrutams, kuriuose skaičius praleistas. Eilutę skaityti iš kairės į dešinę pakanka nustatyti, kuri reikšmė kur taikoma.

route-metric yra numatytoji reikšmė, o ne rangas

route-metric nustato atsarginę reikšmę maršrutams, kurie neturi savo skaičiaus. Jis nekelia maršruto aukščiau už ką nors kita ir nepertvarko maršrutų, įdiegtų su aiškiomis metrikomis.

Šis skirtumas svarbus, kai profilis maišo abi formas. Viena route-metric eilutė viršuje atrodo autoritetingai ir ją lengva kaltinti, o maršrutas, kuris iš tikrųjų neša srautą, gali turėti savo metriką trimis eilutėmis žemiau.

Jei norite, kad vienas maršrutas teiktų tam tikrą kelią, dėkite skaičių į tą maršrutą. Jei norite nuoseklios numatytosios reikšmės visame sugeneruotame profilyje, naudokite route-metric ir palikite atskiras eilutes ramybėje. Abiejų maišymas be priežasties yra būdas gauti profilį su maršrutu, kurio niekas negali paaiškinti.

Patikrinkite, ką įdiegė klientas

Baigus jungtis iš naujo, klauskite branduolio, o ne profilio.

ip route show išvardija maršrutus, kuriuos pridėjo klientas, o ip route get 172.20.5.10 atsako į naudingesnį klausimą: kurį maršrutą šis tikslas iš tikrųjų naudotų ir su kokiu šaltinio adresu. Jei tikslo lentelėje nėra, klientas jo neįdiegė.

Vietinė direktyva, serverio push ar kitas tinklo tvarkytuvas gali pridėti ar pašalinti tą patį prefiksą, ir laimi paskutinis rašiusysis. Darbo metu nepamirškite galinio taško maršruto, nes ryšiui reikia kelio į nuotolinį serverį, kuris neina per statomą tunelį.

Kodėl mažesnė metrika vis tiek pralaimi

Metrikos lygina maršrutus į tą patį tikslą. Jos nepadaro plataus prefikso konkretesnio. Kai naudojama redirect-gateway def1, klientas įdiegia 0.0.0.0/1 ir 128.0.0.0/1, ir šie du prefiksai konkretesniai apima visą IPv4 erdvę nei 0.0.0.0/0. Metrika 1 numatytajame maršrute jų neaplenkia.

Ta pati logika galioja bet kuriai persidengiančiai porai. /24 nugali /16 adresui jos viduje, nesvarbu kokie skaičiai pritvirtinti, nes paieška pirmiausia pasirenka konkretiausią atitikimą ir tik tada lygina metrikas tarp lygiųjų.

Tai dalis, kuri atrodo kaip metrikos klaida, bet ja nėra. Prieš keisdami bet kokį skaičių, patikrinkite prefikso ilgį abiejuose kandidatuose.

Politikos taisyklės vyksta prieš lentelę

Linux sistemoje ip rule nusprendžia, kuri maršrutizavimo lentelė nagrinėjama. Taisyklės vertinamos prioriteto tvarka, todėl ankstesnė lentelė gali grąžinti maršrutą dar nepaskaičius pagrindinės lentelės. Metrika pagrindinėje lentelėje negali aplenkti atitikimo lentelėje, kuri buvo nagrinėta pirmoji.

Naudokite ip rule show ir tada užklauskite konkrečią lentelę, pavyzdžiui ip route show table 100, kad pamatytumėte, ką ta taisyklė grąžintų. Jei VPN klientas ar konteinerių vykdymo aplinka pridėjo taisyklę, atsakymas gali būti ten, o ne lentelėje, kurią skaitėte. Šaltinio adresas taip pat svarbus, nes taisyklė gali atitikti šaltinį ir tą patį tikslą išspręsti skirtingai tunelio ir LAN srautui.

Tikrinkite tikslą, o ne reitingą

Bandymas, kuris užbaigia ginčą, yra viena užklausa į numatytosios podtinklio viduje esantį kompiuterį ir branduolio pasirinkto šaltinio adreso patikra. Jei ši pora atitinka projektą, metrika dirba savo darbą, net kai sąrašas neatrodo kaip tvarkingas reitingas.

Palikite IPv6 ir DNS už šio patikrinimo ribų. Jie konfigūruojami skirtingomis direktyvomis ir sprendžiami skirtingais mechanizmais, o veikiantis IPv4 maršrutas nieko nesako apie nei vieną. Keiskite vieną sluoksnį vienu metu ir pakartokite užklausą.

Susiję straipsniai