Додали сте метрику рути у профилу, поново се повезали, а саобраћај и даље излази кроз погрешан интерфејс. Број је ретко проблем. Метрика само уређује кандидате које оперативни систем већ пореди, а специфичнији префикс или ранија табела политика одлучује пре него што се било која метрика прочита.

Прво прођите кроз профил, затим кроз инсталирану табелу, па кроз правила избора. Тај редослед одговара начину на који клијент гради руту и спречава вас да подешавате вредност која никада не улази у поређење.

Читајте линију руте по редоследу поља

Community OpenVPN 2.6 клијент прихвата четири поља у IPv4 линији route: мрежу, маску, gateway и опциону метрику. Позиција gateway-а је место где иде посебна кључна реч vpn_gateway. Она означава следећи хоп са VPN стране за ову конекцију, а не број табеле рутирања и не ваш физички рутер. Ако то пропустите, остатак линије се чита са погрешном представом о томе шта она ради. Референца за мрежне опције документује сва четири поља.

За приватну дестинацију линија може изгледати овако:

route-metric 50
route 172.20.0.0 255.255.0.0 vpn_gateway 30

Експлицитних 30 важи за ту руту, а 50 остаје подразумевана вредност за сваку другу руту у профилу која изоставља број. Читање линије с лева на десно довољно је да се види која вредност где важи.

route-metric је подразумевана вредност, а не ранг

route-metric поставља резервну вредност за руте које не носе сопствени број. Она не подиже руту изнад било чега другог и не преуређује руте инсталиране са експлицитним метрикама.

Та разлика је важна када профил меша оба облика. Једна линија route-metric при врху изгледа ауторитативно и лако је окривити, док рута која стварно носи саобраћај може имати сопствену метрику три линије ниже.

Ако желите да једна рута преферира путању, ставите број на ту руту. Ако желите доследну подразумевану вредност у генерисаном профилу, користите route-metric и оставите појединачне линије на миру. Мешање једног и другог без разлога је начин на који профил заврши са рутом коју нико не може објаснити.

Проверите шта је клијент инсталирао

Након што се поновно повезивање заврши, питајте кернел, а не профил.

ip route show приказује руте које је клијент додао, а ip route get 172.20.5.10 одговара на корисније питање: коју би руту ова дестинација заиста користила и са које изворне адресе. Ако дестинације нема у табели, клијент је није инсталирао.

Локална директива, сервер push или други мрежни менаџер могу додати или уклонити исти префикс, а последњи који упише побеђује. Држите руту до крајње тачке на оку док радите, јер конекцији треба пут до удаљеног сервера који не пролази кроз тунел који гради.

Зашто мања метрика ипак губи

Метрике пореде руте до исте дестинације. Оне не чине широки префикс специфичнијим. Када је redirect-gateway def1 у игри, клијент инсталира 0.0.0.0/1 и 128.0.0.0/1, а та два префикса покривају цео IPv4 простор специфичније од 0.0.0.0/0. Метрика 1 на подразумеваној рути их не надмашује.

Иста логика важи за сваки пар који се преклапа. /24 побеђује /16 за адресу унутар њега без обзира на бројеве који су прикачени, јер претрага прво бира најспецифичније поклапање и тек онда пореди метрике међу једнакима.

То је део који изгледа као грешка у метрици, а није. Проверите дужину префикса на оба кандидата пре него што промените било који број.

Правила политике раде пре табеле

На Linux-у ip rule одлучује која табела рутирања се консултује. Правила се вреднују по приоритету, па ранија табела може вратити руту пре него што се главна табела уопште прочита. Метрика унутар main не може надмашити поклапање у табели која је консултована прва.

Користите ip rule show, а затим упитајте конкретну табелу, на пример ip route show table 100, да видите шта би то правило вратило. Ако је VPN клијент или контејнерски runtime додао правило, одговор може бити тамо, а не у табели коју сте читали. Изворна адреса је такође важна, јер правило може да се поклопи по извору и реши исту дестинацију другачије за тунелски и LAN саобраћај.

Проверите дестинацију, а не рангирање

Тест који завршава расправу је један упит ка хосту унутар жељене подмреже, плус провера изворне адресе коју је кернел одабрао. Ако се тај пар поклапа са пројектом, метрика ради свој посао чак и када листа не изгледа као уредно рангирање.

Оставите IPv6 и DNS ван ове провере. Њих конфигуришу друге директиве и разрешавају други механизми, а исправна IPv4 рута не говори ништа ни о једном. Мењајте по један слој и поново покрените упит.

Повезани чланци