Апликација врзана за адресата на VPN сè уште користи погрешна рута
Сокет врзан за адресата на VPN ја следи вообичаената стандардна рута. Проверете ја сопственоста на адресата и пребарувањето свесно за изворот пред да додадете правила за политика.
Апликација се врзува за адресата на VPN, а врската сепак излегува по вообичаената стандардна рута. Ништо во врзувањето не затаи; тоа го направи точно она што го прави врзувањето. Врзувањето сокет за локална адреса ја избира изворната адреса што јадрото ја става во заглавието. Тоа не инсталира рута и не создава правило за политика што би ги пратило пакетите со тој извор во одреден тунел.
Остатокот од овој прирачник е редоследот на проверка што го користам, заедно со наредбата што го дава секое набљудување.
Што всушност одлучува врзувањето
Врзувањето доделува локална адреса на сокетот. Потоа јадрото го извршува истото пребарување на рута што би го извршило инаку, освен ако правило за политика не смени која табела ја чита тоа пребарување.
Затоа пакет може да излезе со изворна адреса на VPN на физички интерфејс. Од другата страна доаѓа од приватен опсег што мрежата никогаш не го очекувала на тој пат, повратниот сообраќај нема рута назад, и врската виси или се ресетира.
Linux референцата за IP сокети ја документира семантиката на врзувањето. Половината за рутирање живее во ip-rule и ip-route, и тие се одделни прирачници со причина.
Потврдете дека адресата припаѓа на овој именски простор
Адреса за која можете да се врзете мора да постои на интерфејс во мрежниот именски простор во кој работи апликацијата. Адреса на партнер, адреса на порта или адреса што постои само во друг именски простор не може да се врзе, и повикот затајува со EADDRNOTAVAIL.
ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>Извршете ги тие три во истиот контекст како апликацијата: исти именски простор и ист корисник ако можете да го добиете. Стара net30 шема не е доказ која адреса вашата тековна топологија ѝ ја доделила на клиентот. Читајте го интерфејсот што е навистина активен.
Прочитајте го пребарувањето за тој извор и одредиште
Една наредба одговара на прашањето на кое врзувањето не одговори:
ip route get 203.0.113.10 from 10.8.0.2
ip rule showПрвиот ред ја печати рутата што пакетот од тој извор до тоа одредиште би ја поминал, вклучувајќи го излезниот интерфејс и претпочитаниот извор. Ако го именува физичкиот интерфејс, врзувањето и рутата не се согласуваат, и пакетот ќе излезе со извор до кој патот не може да се врати.
Потоа ip rule show ви кажува дали некое правило би избрало друга табела. Приоритетите се важни овде, бидејќи победува првото правило што се совпаѓа, а правило што фаќа сè над вашето го прави вашето правило невидливо.
Инсталирајте правило за политика само ако тоа е проектот
Рутирањето засновано на извор е намерен проект, а не поправка за една апликација. Ако сопственикот на политиката сака сообраќајот од подмрежата на тунелот да го користи тунелот, правилото припаѓа во неговата конфигурација, а не во еднократна наредба на вашиот преносен компјутер.
Изводлива форма е посебна табела со стандардна рута низ тунелот, плус правило што го праќа изворниот опсег на VPN во таа табела. Додајте ги исклучоците што му се потребни на проектот, бидејќи табела што содржи само тунелски стандард ќе ги фати одредиштата што треба да останат локални или да бидат достапни преку физичкиот пат.
ip route add default dev tun0 table 100
ip rule add from 10.8.0.2 table 100 priority 100
ip route get 203.0.113.10 from 10.8.0.2Откажете со ip rule del и ip route flush table 100. Сè што е додадено така исчезнува при рестартирање, освен ако управител не го запише, што е истовремено безбедносно својство и причина да не ја чувате единствената копија во историјата на вашата обвивка.
Проверете со три набљудувања
Забележете го изворот што го побарала апликацијата, рутата што ја избрало пребарувањето и изворот што серверот навистина го видел.
Тие три можат да се разликуваат, и секое разидување покажува на друго место. Снимање на тунелскиот интерфејс докажува дека пакетот излегол со правилниот извор. Снимање на физичкиот интерфејс докажува дека излегол по погрешниот пат. Само погледот од страната на серверот го докажува патот од крај до крај.
Ако апликацијата нуди опција за врзување за уред или режим на рутирање по апликација, третирајте го тоа како друг механизам со други ограничувања. Сличните поставки не водат сите до истата одлука на јадрото.