VPN клиентот ви ја брише додадената рута? Користете табела со политики
Клиентот повторно ги наметнува рутите што ги поседува, па рачно додаден запис исчезнува за секунди. Ставете го исклучокот во табела со политики со приоритет на правило што победува.
Една /24 за лабораториски печатач исчезнува помеѓу два повикувања на ip route show, а дневникот на клиентот само вели дека мрежата се променила. Ништо не беше погрешно во командата, префиксот или вашите привилегии. Корпоративен клиент што го поседува моделот за рутирање на домаќинот повторно го наметнува тој модел кога некој друг ќе го уреди, па записот што го додадовте се отстранува како натрапник. Борењето со него во истата табела е загубена позиција. Решението е целосно да престанете да се натпреварувате за таа табела и да го ставите исклучокот таму каде што мониторот никогаш не гледа.
Мониторот ја објаснува исчезнатата рута
Прикажете го ова пред да преработите нешто: прочитајте ја табелата, додајте го префиксот, почекајте неколку секунди, прочитајте повторно. Ако записот го нема, а не сте внеле ништо за да го отстраните, некој агент набљудува. Најдете го процесот што го поседува тоа однесување и прочитајте го неговиот дневник околу моментот кога рутата исчезнува, бидејќи истата услуга обично го одржува тунелот, филтрите за пакети и конфигурацијата на resolver-от. Да го убиете за да ви остане рутата е замена за која ќе зажалите при следното повторно поврзување.
ip route show
ip route add 192.168.2.0/24 dev enp0s31f6
sleep 5; ip route showПрефиксот и интерфејсот погоре се заменски вредности. Копирањето име на интерфејс од работен пример на друга машина е најчестата причина зошто оваа демонстрација воопшто не дава ништо.
Втората табела е невидлива за мониторот
Агентот ја преградува само табелата што ја поседува. Дајте му на исклучокот сопствена табела плус правило што ги испраќа соодветните одредишта таму, и главната табела никогаш не се менува, па агентот нема што да поправи. Тоа е целата идеја: еден именски простор на рути што го одржува некој друг и еден што само вие го допирате.
Замената е одржување. Два објекти можат да се разидат, а положбата на правилото во списокот е исто толку важна како рутата во табелата што ја избира.
Изградете го исклучокот, потоа направете да победи
Создадете ја табелата, инсталирајте ја рутата и додајте правило што ја избира табелата за тоа одредиште. Приоритетот одлучува дали вашето правило се разгледува пред или по оние што ги вметнал клиентот, а правило што се подредува подоцна никогаш не се достигнува, па бројот е дел од дизајнот, а не украс. Потоа прашајте го јадрото што всушност би направило, што е различно прашање од тоа што сте го конфигурирале.
ip rule add to 192.168.2.0/24 table 110 pref 30010
ip route add 192.168.2.0/24 dev enp0s31f6 table 110
ip route get 192.168.2.50ip route get ја решава рутата што јадрото би ја користело, вклучително уредот и изворната адреса. Не го печати идентификаторот на табелата, па поврзете го со ip rule show кога треба да потврдите која табела победи. Заедно тие одговараат на единственото важно прашање: дали сообраќајот до таа адреса излегува таму каде што сте сакале?
Други форми на истата идеја
Моделот се генерализира штом престанете да размислувате во одредишта. Локална подмрежа може да остане достапна додека тунелот ја држи стандардната рута. Одговорите од SSH сервер поврзан на LAN можат да излезат низ интерфејсот низ кој пристигнале наместо да исчезнат во тунелот. А правило засновано на интерфејс може да турка сите што пристигнува на безжичен интерфејс во тунелот, додека сообраќајот што домаќинот сам го создава останува на Ethernet:
ip rule add iif wlan0 table 10
ip route add default dev tun0 table 10Последниот случај одговара на влезниот интерфејс, а не на одредиштето, што е друг тип на правило и друг ментален модел. Пренасочениот сообраќај бара и овозможен net.ipv4.ip_forward, а далечниот крај мора да го пренасочи изворниот опсег назад или да го преведе; правило на една машина никогаш не ја создава другата половина од патеката.
Третирајте го правилото како за еднократна употреба
Правилата и табеларните рути живеат во меморијата. По повторно поврзување уредот на тунелот може да се преименува, доделената адреса може да се премести, а правилото со старата вредност тивко престанува да се совпаѓа. Повторно применете ја целата промена од една скрипта што ја поседува, потоа повторно проверете го ip rule show, тековното име на уредот и нов ip route get против вистинско одредиште пред да му верувате на исклучокот.
Две граници опстојуваат при секаква грижа. Клиентот сите уште ги контролира своите филтерски правила и конфигурацијата на resolver-от, а рутирачкиот исклучок не надминува ниту едно од двете. Ако клиентот ви го избрише и правилото за политика, поддржани патеки се неговата сопствена политика за поделен тунел или клиент што ви дозволува да управувате со рути, како OpenConnect; крпењето на добавувачки бинарен файл за да го замолчите неговиот монитор е обврска за одржување со прикачена проверка на интегритет.
Запишете го бројот на табелата, приоритетот и одредиштето во белешка до скриптата. Инаку следниот човек ќе најде правило што го надминува тунелот и нема начин да дознае зошто.