Една апликација на машината излегува преку VPN, а друга не, и двајцата корисници се колнат дека ништо не смениле. Разликата често е одлука за врзување што ја носи самата апликација: сокет врзан за уред, изворна адреса избрана пред врската или именски простор со сопствена табела за рутирање. Секоја од нив менува кој пат важи, и ниту една не се појавува во општата проверка на IP во прелистувачот.

Три различни врзувања, три различни ефекти

Врзувањето за уред и врзувањето за изворна адреса се сродни операции со различни последици. Врзувањето за уред може да го принуди сообраќајот да излезе низ еден интерфејс и да го заобиколи нормалното барање рута за тој сокет. Врзувањето изворна адреса сè уште поминува низ избор на рута, но избраниот извор може да одговара на правило за политика и да го испрати пакетот на друго место. Разликата звучи академски додека правилото не рутира по извор. Тогаш тоа одлучува сè.

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

Утврдете што апликацијата навистина поставува

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

На Linux опциите на сокетот како SO_BINDTODEVICE имаат документиран опсег и барања за дозволи, а непривилегиран процес може воопшто да не може да ги постави. Ова ограничување е корисен траг: ако опцијата не може да се примени, апликацијата веројатно не е изворот на разликата.

Рутирањето по политика го чита изворот

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

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

Поделен тунел и помошни процеси

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

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

Тестирајте го сопствениот пат на апликацијата

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

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

Поврзани статии