Eng Applikatioun bindet un d’Adress vum VPN, an d’Verbindung geet trotzdem iwwer déi gewéinlech Standardroute eraus. Am Bind ass näischt feelgeschloen; e gouf genau dat, wat e Bind mécht. E Socket un eng lokal Adress ze binden, wielt d’Quelladress, déi de Kernel an den Header setzt. Et installéiert keng Route an et mécht keng Politikregel, déi Pakete mat där Quell an en bestëmmten Tunnel schéckt.

De Rescht vun dësem Handbook ass d’Prüforderung, déi ech benotzen, mam Kommando, deen all Observatioun liwwert.

Wat e Bind tatsächlech entscheet

E Bind gëtt dem Socket eng lokal Adress. Duerno mécht de Kernel déi selwecht Routesich, déi en och soss gemaach hätt, ausser eng Politikregel ännert, wéi eng Tabell déi Sich liest.

Dofir kann e Paket mat enger VPN-Quelladress op enger physescher Interface erausgoen. Op der anerer Säit kënnt en aus engem private Beräich, deen d’Netzwierk op deem Wee ni erwaart huet, de Réckverkéier huet keng Route zréck, an d’Verbindung hänkt oder gëtt zréckgesat.

D’Linux-Referenz zu IP-Sockets dokumentéiert d’Semantik vum Bind. D’Halschent mam Routing läit an ip-rule an ip-route, an dat sinn aus engem Grond getrennte Handbicher.

Bestätegt, datt d’Adress zu dësem Namespace gehéiert

Eng Adress, un déi Dir bäinge kënnt, muss op enger Interface bannent dem Netzwierk-Namespace existéieren, an deem d’App leeft. Eng Peer-Adress, eng Gateway-Adress oder eng Adress, déi nëmmen an engem aneren Namespace existéiert, ass net bindbar, an den Opruff feelt mat EADDRNOTAVAIL.

ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>

Fëllt déi dräi am selwechte Kontext wéi d’App aus: selwechten Namespace, an dee selwechte Benotzer, wann Dir en kritt. En ale net30-Diagramm ass kee Beweis dofir, wéi eng Adress Är aktuell Topologie dem Client ginn huet. Liest d’Interface, déi tatsächlech aktiv ass.

Liest d’Sich fir déi Quell an dat Zil

Ee Kommando äntwert op d’Fro, déi de Bind net beäntwert huet:

ip route get 203.0.113.10 from 10.8.0.2
ip rule show

Déi éischt Zäil dréckt d’Route, déi e Paket vun där Quell op dat Zil huelen, mat der Ausgangsinterface an der preferéierter Quell. Wann se déi physesch Interface nennt, sinn de Bind an d’Route net eens, an de Paket geet mat enger Quell eraus, op déi de Wee net zréckkënnt.

Duerno seet ip rule show, ob iergendeng Regel eng aner Tabell gewielt hätt. Prioritéite zielen hei, well déi éischt passend Regel gewënnt, an eng Regel, déi alles iwwer Ärer Regel fänkt, mécht Är Regel onsichtbar.

Installéiert eng Politikregel nëmmen, wann dat den Design ass

Quellbaséiert Routing ass en bewossten Design, keng Reparatur fir eng eenzeg App. Wann de Politikbesëtzer wëll, datt de Verkéier aus dem Tunnel-Subnetz den Tunnel benotzt, gehéiert d’Regel an seng Konfiguratioun an net an en eemolegen Kommando op Ärem Laptop.

Eng funktionéierend Form ass eng separat Tabell mat enger Standardroute duerch den Tunnel, plus eng Regel, déi de VPN-Quellberäich an déi Tabell schéckt. Setzt d’Ausnamen derbäi, déi den Design braucht, well eng Tabell mat nëmmen engem Tunnel-Standard Ziler fänkt, déi lokal solle bleiwen oder iwwer de physesche Wee erreechbar solle sinn.

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

Maacht et mat ip rule del an ip route flush table 100 zréck. Alles, wat esou derbäigesat gëtt, verschwënnt beim Neistart, ausser en Manager schreift et, wat souwuel eng Sécherheetseigenschaft ass wéi och e Grond, déi eenzeg Kopie net an Ärer Shell-Historie ze halen.

Verifizéiert mat dräi Observatiounen

Notéiert d’Quell, déi d’App ugefrot huet, d’Route, déi d’Sich gewielt huet, an d’Quell, déi de Server tatsächlech gesinn huet.

Déi dräi kënnen auserneegoe, an all Ofwäichung weist op eng aner Plaz. Eng Opnam op der Tunnelinterface beweist, datt de Paket mat der richteger Quell erausgaang ass. Eng Opnam op der physescher Interface beweist, datt en de falsche Wee geholl huet. Nëmmen d’Sicht vun der Serversäit beweist de Wee vum Enn bis zum Enn.

Wann d’App eng Optioun fir un een Apparat ze binden oder e Routingmodus pro App ubitt, behandelt se wéi en anere Mechanismus mat aneren Aschränkungen. Ähnlech ausgesinn Astellungen féieren net all zu der selwechter Kernel-Entscheedung.

Ähnlech Artikelen