Pridali ste metriku k trase v profile, znova sa pripojili a prevádzka stále vychádza cez nesprávne rozhranie. Problémom je len zriedka číslo. Metrika iba zoraďuje kandidátov, ktorých operačný systém už porovnáva, a konkrétnejší prefix alebo skoršia tabuľka pravidiel rozhodne ešte predtým, než sa prečíta akákoľvek metrika.

Najprv prejdite profil, potom nainštalovanú tabuľku a nakoniec pravidlá výberu. Toto poradie zodpovedá spôsobu, akým klient zostavuje trasu, a zabráni vám ladiť hodnotu, ktorá do porovnania nikdy nevstúpi.

Čítajte riadok trasy v poradí polí

Klient Community OpenVPN 2.6 prijíma v riadku route pre IPv4 štyri polia: sieť, masku, bránu a voliteľnú metriku. Na pozícii brány stojí špeciálne kľúčové slovo vpn_gateway. Znamená ďalší skok na strane VPN pre toto pripojenie, nie číslo smerovacej tabuľky a nie váš fyzický router. Ak to prehliadnete, zvyšok riadku sa číta s nesprávnou predstavou o tom, čo robí. Referencia sieťových možností dokumentuje všetky štyri polia.

Pre súkromné cieľové umiestnenie môže riadok vyzerať takto:

route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30

Explicitná 30 platí pre túto trasu a 50 zostáva predvolenou hodnotou pre každú ďalšiu trasu v profile, ktorá číslo neuvádza. Prečítať riadok zľava doprava stačí na to, aby ste zistili, ktorá hodnota platí kde.

route-metric je predvolená hodnota, nie poradie

route-metric nastavuje záložnú hodnotu pre trasy, ktoré nemajú vlastné číslo. Neposúva trasu nad nič iné a nezoraďuje znova trasy nainštalované s explicitnými metrikami.

Tento rozdiel je dôležitý, keď profil mieša obe formy. Jediný riadok route-metric blízko začiatku pôsobí autoritatívne a ľahko sa obviňuje, zatiaľ čo trasa, ktorá skutočne nesie prevádzku, môže mať vlastnú metriku o tri riadky nižšie.

Ak chcete, aby jedna trasa uprednostnila cestu, dajte číslo na tú trasu. Ak chcete konzistentnú predvolenú hodnotu v generovanom profile, použite route-metric a jednotlivé riadky nechajte tak. Miešanie oboch bez dôvodu je spôsob, akým profil skončí s trasou, ktorú nikto nevie vysvetliť.

Pozrite sa, čo klient nainštaloval

Po dokončení opätovného pripojenia sa pýtajte jadra, nie profilu.

ip route show vypíše trasy, ktoré klient pridal, a ip route get 172.20.5.10 odpovedá na užitočnejšiu otázku: ktorú trasu by toto cieľové umiestnenie skutočne použilo a s ktorou zdrojovou adresou. Ak v tabuľke cieľ chýba, klient ho nenainštaloval.

Lokálna direktíva, push zo servera alebo iný správca siete môže pridať alebo odobrať ten istý prefix a vyhráva ten posledný, kto zapíše. Majte trasu ku koncovému bodu na očiach, kým pracujete, pretože pripojenie potrebuje cestu k vzdialenému serveru, ktorá nevedie cez tunel, ktorý buduje.

Prečo menšia metrika stále prehráva

Metriky porovnávajú trasy k rovnakému cieľu. Nerobia široký prefix konkrétnejším. Keď je v hre redirect-gateway def1, klient nainštaluje 0.0.0.0/1 a 128.0.0.0/1, a tieto dva prefixy pokrývajú celý priestor IPv4 konkrétnejšie než 0.0.0.0/0. Metrika 1 na predvolenej trase ich nepredbehne.

Rovnaká logika platí pre každú prekrývajúcu sa dvojicu. /24 porazí /16 pre adresu vnútri nej bez ohľadu na pripojené čísla, pretože vyhľadávanie najprv vyberie najkonkrétnejšiu zhodu a až potom porovnáva metriky medzi rovnakými.

Toto je časť, ktorá vyzerá ako chyba metriky, a nie je. Pred zmenou akéhokoľvek čísla skontrolujte dĺžku prefixu na oboch kandidátoch.

Pravidlá politiky bežia pred tabuľkou

V Linuxe ip rule rozhoduje, ktorá smerovacia tabuľka sa použije. Pravidlá sa vyhodnocujú v poradí priority, takže skoršia tabuľka môže vrátiť trasu skôr, než sa hlavná tabuľka vôbec prečíta. Metrika v main nemôže predbehnúť zhodu v tabuľke, ktorá sa prehľadala prvá.

Použite ip rule show a potom sa opýtajte konkrétnej tabuľky, napríklad ip route show table 100, aby ste videli, čo by to pravidlo vrátilo. Ak pravidlo pridal VPN klient alebo kontajnerový runtime, odpoveď môže byť tam a nie v tabuľke, ktorú ste čítali. Záleží aj na zdrojovej adrese, pretože pravidlo môže zhodovať zdroj a vyriešiť ten istý cieľ inak pre tunelovú prevádzku a inak pre prevádzku v LAN.

Overte cieľ, nie poradie

Test, ktorý ukončí hádku, je jediný dotaz na hostiteľa v zamýšľanej podsieti plus kontrola zdrojovej adresy, ktorú vybralo jadro. Ak táto dvojica zodpovedá návrhu, metrika robí svoju prácu, aj keď výpis nevyzerá ako čisté poradie.

Nechajte IPv6 a DNS mimo tejto kontroly. Konfigurujú ich iné direktívy a riešia ich iné mechanizmy a funkčná trasa IPv4 o nich nehovorí nič. Meňte po jednom vrstve a dotaz znova spustite.

Súvisiace články