Zwee Labs kënnen déiselwecht VPN-Topologie modelléieren an op komplett ënnerschiddlech Weeër feelen: deen een lieft an Netzwierk-Nummraim, deen aneren op den eegenen Host-Routen. D’Nummraum-Versioun hält all Interface, Route a Socket an engem Kontext, deen Dir kënnt läschen, wärend d’Host-Versioun méi séier startet an e Staat hannerlaasst. Genee dëse Reschtstaat ass de Grond, firwat den zweete Lab e Mount méi spéit schwéier ze widderhuelen ass. Vergläicht d’éischt d’Botzen, well et entscheet, ob Dir den Experiment zweemol kënnt lafen.

Zwee Weeër fir deeselwechte Lab ze bauen, a wéini jiddwereen gewënnt

An engem Host-Route-Lab füügt Dir en Tunnel-Interface an Routen op der Maschinn bäi, op där Dir schafft, sou datt den Experiment d’Schicksal mat Ärer Shell, Ärem Package-Manager an all anerer Verbindung deelt. An engem Nummraum-Lab kritt all Roll hire eegene Stack aus Interface, Adressen, Routen a Sockets, an d’Läschen vum Nummraum hëlt dat alles ewech. Keent vun de Modellë ass méi korrekt, well si verschidde Froen beäntweren. Wielt Nummraim, wann d’Thema Routing a Forwarding ass, an en Host-Lab, wann d’Thema ass, wéi een Desktop-Client sech integréiert.

AspectNamespace labHost-route lab
IsolationFull stack per roleShares the host stack
CleanupDelete named namespacesManual route and rule removal
RealismStrong for routingNeeded for GUI clients

Déi zwou ze mëschen ass de gewéinleche Feeler: en Nummraum-Lab, deen géint e Client getest gëtt, deen nëmmen um Host leeft beweiseet näischt iwwer eng vun den zwou Opstellungen. Entscheet, wéi eng Fro Dir stellt, ier Dir déi éischt Verbindung erstellt.

Een Kontext pro Roll, bewosst verbonnen

Erstellt een Nummraum pro Roll a verréckelt all Enn vun all veth-Puer an de Kontext, deem et gehéiert. Déi éischt véier Kommandoen duerge fir d’Form ze gesinn:

ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns client

Gitt dem Lab Beräicher, déi sech mat näischt um Host iwwerschneiden, a schreift virum Start op, wéi en Nummraum wéi eng Adress huet. En funktionéierende Lab brauch zwee getrennte Weeër: en äusseren, fir datt den VPN-Endpunkt säin Partner erreecht, an en Zeréckwee fir d’Ressource, déi geschützt gëtt. Modelléiert se als zwou Entscheidungen, well en Lab, deen nëmmen déi ausgänglech Hallschent baut, en Handshake-Test besteet an en Applikatiounstest feelt.

D’Forwarding-Roll ass de Punkt, wou Labs interessant ginn

Eng Roll muss forwarden, dat heescht d’Forwarding an dësem Nummraum aktivéieren an d’Regel bäifügen, déi den Design brauch. De Forwarding-Staat ass pro Nummraum, also ass d’Host-Astellung fir de Lab irrelevant an d’Lab-Astellung leckt net no baussen, wéi et d’Dokumentatioun iwwer Netzwierk-Nummraim beschreift. WireGuard dokumentéiert, datt en Interface an säi baussenzege Socket an ënnerschiddlechen Nummraim kënne liewen, wat en nëtzlechen Trick an eng exzellent Manéier ass, sech selwer ze verwirren. Gitt net dovun aus, datt d’Verréckele vun engem Interface all Deel vun der Verbindung identesch verréckelt.

Kuckt de Forwarding-Zähler no engem Testpaket, well eng Regel, déi ni gepasst huet, an eng Regel, déi verworf huet, an der Routetabell identesch ausgesinn. Nëmmen d’Zähler trennen se.

Hält eng Baseline fest, a briecht dann eng Route

Fänkt domat un, festzehalen, wat et gëtt, mam Kontext nieft all Zeil. Liest d’Nummraim, dann d’Route, déi en Testdestinatioun an engem vun hinnen huelen géif, dann d’Zähler um Link, deen se dréit:

ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-g

Den drëtte Kommando ass deen, deen d’Leit iwwersprangen, an do läit de Beweis: d’Zähler fir verworf a Feeler soen Iech, ob e Paket iwwerhaapt bei d’Forwarding-Roll komm ass. Hält déi selwecht dräi Usiichten no enger Ännerung fest, a loosst den Diff de Beweis sinn an net Äert Gediechtnes. Briecht dann genee eng Saach, entweder andeems Dir eng Route läscht oder eng Oflehnungsregel um Forwarding-Wee bäifügt, a bestätegt de Symptom, deen Dir virausgesot hutt: en ofgeschlossenen Handshake ouni Äntwert, oder e Nummopléisungsfeeler amplaz vun engem Timeout. En Lab, deen nëmmen Erfolleg weist, léiert ganz wéineg.

Botzen ass dat, wat den nächsten Laf widderhuelbar mécht

Hält d’Botzen op déi Ressourcen begrenzt, déi Dir genannt hutt, well en allgemengen Firewall-Reset oder d’Ewechhuele vun enger Host-Route ass keng Widderhuelbarkeet, et ass en zweeten Tëschefall. Späichert d’Topologie, déi genee Kommandoen an d’Observatiounen, déi Dir erwaart hutt, sou datt den nächsten Laf deeselwechte Feeler reproduzéiert amplaz ze roden, a wéi engem Kontext de fréiere Staat war. Ouni dës Opzeechnung ass de Lab eng Geschicht an net eng Prozedur.

Benotzt lokal generéiert Umeldungsdaten fir de Lab, a haalt Produktiouns-Konten aus gedeelten Beispiller eraus. Läscht dann all Nummraum a bestätegt, datt d’Host-Usiicht onverännert ass, wat de ganzen Grond ass, dëse Modell ze wielen. En Lab, deen Dir net propper kënnt ewechhuelen, ass eng Host-Ännerung mat zousätzleche Schrëtt.

Ähnlech Artikelen