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

Три различита везивања, три различита дејства

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

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

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

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

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

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

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

Поновите претрагу са истом породицом адреса, извором и именским простором које апликација користи. Уобичајена претрага руте из љуске у именском простору хоста одговара на друго питање, а тај несклад је најчешћи разлог што исправна рута изгледа покварено.

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

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

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

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

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

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

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