Ien applikaasje op de masine giet troch de VPN nei bûten en in oare net, en beide brûkers swarre dat se neat feroare hawwe. It ferskil is faak in biningsbeslút fan de applikaasje sels: in socket oan in apparaat bûn, in boarneadres dat foar de ferbining keazen is, of in nammeromte mei syn eigen rûtetabel. Elk feroaret hokker paad jildt, en gjinien dêrfan is te sjen yn in algemiene IP-kontrôle yn de browser.

Trije ferskillende biningen, trije ferskillende effekten

Bine oan in apparaat en bine oan in boarneadres binne besibbe operaasjes mei ferskillende gefolgen. In apparaatbining kin ferkear twinge om troch ien ynterface nei bûten te gean en de normale rûtesykjen foar dy socket omslaan. In boarneadresbining giet noch altyd troch rûtekar, mar de keazen boarne kin oerienkomme mei in beliedsregel en it pakket earne oars hinne stjoere. It ûnderskaat klinkt akademysk oant in regel op boarne rûtet. Dan beslút it alles.

In netwurknammeromte is it tredde gefal. It hat syn eigen ynterfaces en rûtetabel, sadat in applikaasje deryn hielendal net beynfloede wurdt troch de standert fan de host. Alle trije as itselde ding behannelje jout selsfoldiene ferklearrings dy’t de earste test net oerlibje.

Bepale wat de app eins ynstelt

Lês de netwurkkonfiguraasje fan de applikaasje of syn dokumintearre gedrach foardat jo rûtes oanreitsje. As it in ynterfacekar, in boarneadresfjild of in nammeromte-opsje biedt, is dy ynstelling it earste dat besjoen wurde moat. Sa net, dan kin de bining yntern wêze en allinnich troch tracing of syn eigen diagnostyk sichtber.

Op Linux hawwe socket-opsjes lykas SO_BINDTODEVICE in dokumintearre omfang en betingsten foar rjochten, en in net-privilegearre proses kin se miskien hielendal net ynstelle. Dy beheining is in nuttige oanwizing: as de opsje net tapast wurde kin, is de applikaasje wierskynlik net de boarne fan it ferskil.

Beliedsrouting lêst de boarne

As beliedsrouting konfigurearre is, kin in regel in tabel kieze op grûn fan de boarne fan it pakket. In socket dy’t in boarneadres bynt, kin dêrom in regel folgje dy’t it standertpaad nea oanreitsje, sels as gjin ynterface eksplisyt neamd is.

Werhelje de syktocht mei deselde adresfamylje, boarne en nammeromte dy’t de applikaasje brûkt. In algemiene rûtesyktocht út in shell yn ’e nammeromte fan de host beantwurdet in oare fraach, en dat mismatch is de meast foarkommende reden dat in wurkjende rûte brutsen liket.

Split-tunnel en helpprosessen

Split-tunnel per app foeget noch in laach ta. De kliïnt kin it pakket of proses fan de applikaasje oerienkomme litte, en in helper dy’t syn eigen socket iepenet is in apart subjekt. In lansearder en syn eftergrûntsjinst kinne ferskillende ferbiningen ûnder deselde sichtbere namme meitsje.

Kontrolearje oft de split-tunnelregel it proses omfettet dat eins ferbynt. As de app oan in beskaat ynterface bynt en de VPN-kliïnt op pakket oerienkomt, kinne de twa besluten ferskille sûnder dat ien ferkeard is.

Test it eigen paad fan de app

Start nei elke wiziging in nij fersyk út de applikaasje. In browser dy’t de útgong sjen lit dy’t jo woene is gjin lykweardich bewiis foar in oar programma dat oan in oar ynterface bûn is, en cachede ferbiningen kinne it âlde paad noch lang brûke nei’t in ynstelling feroare is. Slút de âlde sesje foardat jo de nije regel beoardielje. Oars mjit de test it ferline.

De Linux-socketreferinsje dokumintearret SO_BINDTODEVICE en syn betingsten. Lês earst de eigen konfiguraasje fan de applikaasje, werhelje de syktocht yn deselde kontekst en beslút pas dêrnei oft de rûte of de bining feroare wurde moat.

Relatearre artikelen