Připojíte VPN, spustíte route print a výchozí trasa teď nese mnohem nižší metriku než dřív. Přirozený závěr je, že VPN převzala výchozí trasu, protože její číslo je menší. Někdy se to přesně stalo. Často metrika není rozhodující faktor vůbec a její úprava nic nezmění, protože volba padla dřív, podle délky prefixu nebo podle pravidla zásad.

Příznak je skutečný: provoz, který dřív odcházel přes adaptér Wi-Fi, teď odchází tunelem, nebo naopak. Metrika je jeden vstup do vyhledávání, které běží v pevném pořadí, a právě to pořadí musíte přečíst, než se dotknete čísla.

S čím číslo vlastně soutěží

První srovnání je specificita, ne preference. Trasa pro 10.20.0.0/16 poráží 10.0.0.0/8 a obě porážejí 0.0.0.0/0, ať jejich metriky říkají cokoli. VPN, která nainstaluje výchozí trasu s nejnižší metrikou na stroji, stále prohrává s každou specifičtější trasou odpovídající cíli, včetně hostitelské trasy, kterou klient instaluje pro svůj vlastní server.

Proto snížení metriky na výchozí trase nemůže dotlačit přímo připojenou podsíť do tunelu. Pokud tu podsíť chcete uvnitř VPN, přidejte trasu pro prefix nebo vyberte tabulku tunelu pravidlem zásad. Metrika je pro tuhle práci špatná páka.

Check in this orderQuestionWhere you read it
1. Policy and tableWhich routing table does this traffic use?ip rule, client profile
2. Prefix lengthWhich matching route is most specific?route print, ip route
3. MetricWhich of the equally specific routes is preferred?route print, ip route
4. Interface stateIs the chosen next hop reachable?adapter status, link state

Linux rozhoduje o tabulce dřív než o metrice

V Linuxu jádro nejdřív nahlédne do databáze zásad. ip rule vypisuje pravidla a tabulky, které vybírají, a ip route get 203.0.113.10 hlásí tabulku, trasu a zdrojovou adresu, které by jádro pro daný cíl skutečně použilo. Metrika uvnitř tabulky 100 nikdy nesoutěží s trasou v hlavní tabulce, protože pravidlo vybralo tabulku dřív, než se jakákoli metrika porovnala.

Proto může trasa vypadat správně v ip route show table all a přesto nést provoz. Přečtěte pravidlo, které odpovídalo, pak tabulku, kterou vybralo, a pak porovnejte trasy v ní. Pokud je vybraná špatná tabulka, žádná úprava metriky v jiné tabulce nepomůže.

Windows kombinuje dvě metriky

Windows ve výchozím stavu databázi zásad nemá, ale kombinuje metriku trasy s metrikou rozhraní a automatická metrika rozhraní se může měnit s rychlostí linky a stavem adaptéru. Proto se stejná trasa může chovat jinak poté, co se objeví dokovací stanice nebo virtuální adaptér. Find-NetRoute -RemoteIPAddress 203.0.113.10 hlásí zvolenou zdrojovou adresu, další skok a rozhraní, což je blíž skutečnému rozhodnutí než surová tabulka.

Čtěte hodnoty trasy a rozhraní společně. Zvýšení metriky rozhraní může přesunout provoz, aniž by se změnil jediný záznam trasy, a klient VPN, který vlastní své trasy, je při opětovném připojení nainstaluje znovu a vaši úpravu zahodí.

Držte koncový bod tunelu mimo tunel

Každý tunel potřebuje cestu ke svému serveru, která nevede tunelem. Klienti instalují hostitelskou trasu pro koncový bod přes fyzickou bránu a tato trasa musí zůstat specifičtější než výchozí trasa, kterou klient přidává. Smažte ji nebo nechte tunel vyhrát vyhledávání pro tuto adresu a zapouzdřené pakety se pokusí vstoupit do tunelu, který mají teprve postavit. Spojení selže nebo se zacyklí.

Zkontrolujte tuto hostitelskou trasu před změnou metriky i po ní: má ukazovat na fyzický další skok a přežít opětovné připojení. Pokud ji klient vlastní, změňte profil nebo spravovanou konfiguraci, ne runtime hodnotu, která bude přepsána.

Zkontrolujte obě rodiny adres i kontext aplikace

IPv4 a IPv6 jsou oddělená rozhodnutí s oddělenými tabulkami. VPN může nést IPv4, zatímco IPv6 dál používá místní router, a změna metriky v jedné rodině neříká o druhé nic. Zkontrolujte obě, pak zkontrolujte kontext aplikace. Proces svázaný s rozhraním, namespace kontejneru nebo VPN pro jednotlivé aplikace může vidět jinou tabulku než váš shell.

Ověřujte nástrojem, který hlásí rozhodnutí pro skutečný cíl, ne úplným výpisem tabulky. Pokud je zvolená trasa ta, kterou návrh zamýšlí, přestaňte. Metrika, která není nejmenší číslo na obrazovce, není vada a nutit ji být nejmenší může rozbít cestu ke koncovému bodu, na níž tunel závisí.

Související články