Jedna aplikácia na stroji vychádza cez VPN a druhá nie, a obaja používatelia prisahajú, že nič nezmenili. Rozdiel je často rozhodnutie o naviazaní, ktoré urobí samotná aplikácia: soket naviazaný na zariadenie, zdrojová adresa zvolená pred spojením alebo menný priestor s vlastnou smerovacou tabuľkou. Každé z nich mení, ktorá cesta platí, a žiadne sa neprejaví v bežnej kontrole IP v prehliadači.

Tri rôzne naviazania, tri rôzne účinky

Naviazanie na zariadenie a naviazanie na zdrojovú adresu sú príbuzné operácie s odlišnými dôsledkami. Naviazanie na zariadenie môže prinútiť prevádzku vyjsť jedným rozhraním a obísť bežné hľadanie trasy pre daný soket. Naviazanie zdrojovej adresy stále prechádza výberom trasy, ale zvolený zdroj môže zodpovedať pravidlu zásad a poslať paket inam. Rozdiel znie akademicky, kým pravidlo nezačne smerovať podľa zdroja. Potom rozhoduje o všetkom.

Sieťový menný priestor je tretí prípad. Má vlastné rozhrania a vlastnú smerovaciu tabuľku, takže aplikácia vnútri nie je predvoleným nastavením hostiteľa vôbec ovplyvnená. Ak sa všetky tri považujú za to isté, vznikajú sebavedomé vysvetlenia, ktoré neprejdú prvým testom.

Zistite, čo aplikácia skutočne nastavuje

Predtým než sa dotknete trás, prečítajte si sieťovú konfiguráciu aplikácie alebo jej dokumentované správanie. Ak ponúka voľbu rozhrania, pole zdrojovej adresy alebo možnosť menného priestoru, práve toto nastavenie treba preskúmať ako prvé. Ak nie, naviazanie môže byť vnútorné a viditeľné len cez sledovanie alebo vlastnú diagnostiku.

V Linuxe majú voľby soketu ako SO_BINDTODEVICE dokumentovaný rozsah a požiadavky na oprávnenia a neprivilegovaný proces ich nemusí vedieť vôbec nastaviť. Toto obmedzenie je užitočná stopa: ak voľbu nemožno použiť, aplikácia pravdepodobne nie je zdrojom rozdielu.

Smerovanie podľa zásad číta zdroj

Keď je nastavené smerovanie podľa zásad, pravidlo môže vybrať tabuľku na základe zdroja paketu. Soket, ktorý naväzuje zdrojovú adresu, preto môže sledovať pravidlo, na ktoré predvolená cesta vôbec nesiaha, aj keď nie je výslovne uvedené žiadne rozhranie.

Zopakujte hľadanie s tou istou rodinou adries, zdrojom a menným priestorom, ktoré aplikácia používa. Bežné hľadanie trasy z prostredia shellu v mennom priestore hostiteľa odpovedá na inú otázku a tento nesúlad je najčastejším dôvodom, prečo funkčná trasa vyzerá pokazená.

Rozdelený tunel a pomocné procesy

Rozdelený tunel pre jednotlivé aplikácie pridáva ďalšiu vrstvu. Klient môže párovať balík alebo proces aplikácie a pomocník, ktorý otvára vlastný soket, je samostatný subjekt. Spúšťač a jeho služba na pozadí môžu vytvárať rôzne spojenia pod rovnakým viditeľným menom.

Skontrolujte, či pravidlo rozdeleného tunela pokrýva proces, ktorý sa skutočne pripája. Ak sa aplikácia naviaže na konkrétne rozhranie a klient VPN páruje podľa balíka, obe rozhodnutia sa môžu rozísť, hoci ani jedno nie je nesprávne.

Otestujte vlastnú cestu aplikácie

Po každej zmene spustite z aplikácie novú požiadavku. Prehliadač, ktorý ukazuje požadovaný výstup, nie je rovnocenným dôkazom pre iný program naviazaný na iné rozhranie a uložené spojenia môžu starú cestu používať dlho po zmene nastavenia. Pred posúdením nového pravidla zavrite starú reláciu. Inak test meria minulosť.

Referenčná príručka soketov Linuxu dokumentuje SO_BINDTODEVICE a jeho požiadavky. Najprv si prečítajte vlastnú konfiguráciu aplikácie, zopakujte hľadanie v tom istom kontexte a až potom rozhodnite, či zmeniť trasu, alebo naviazanie.

Súvisiace články