Test VPN-routing yn nammeromten sûnder de rûtes fan de host oan te reitsjen
Trije simulearre rollen, trije isolearre konteksten en ien veth per keppeling. Ferlykje in nammeromte-laboratoarium mei in hostrûte-laboratoarium foardat jo de host oanreitsje.
Twa laboratoaria kinne deselde VPN-topology modellearje en op folslein ferskillende manieren mislearje: de iene libbet yn netwurknammeromten, de oare op ’e eigen rûtes fan ’e host. De nammeromte-ferzje hâldt elke ynterface, rûte en socket yn in kontekst dy’t jo wiskje kinne, wylst de host-ferzje flugger start en steat efterlit. Krekt dy oerbliuwende steat is wêrom’t it twadde laboratoarium in moanne letter dreech te werheljen is. Ferlykje earst it opromjen, want dat beslút oft jo it eksperimint twa kear rinne kinne.
Twa manieren om itselde laboratoarium te bouwen, en wannear’t elk wint
Yn in hostrûte-laboratoarium foegje jo in tunnelinterface en rûtes ta oan ’e masine dêr’t jo op wurkje, sadat it eksperimint it lot dielt mei jo shell, jo pakketbehearder en elke oare ferbining. Yn in nammeromte-laboratoarium krijt elke rol syn eigen stapel interfaces, adressen, rûtes en sockets, en it wiskjen fan ’e nammeromte hellet dat allegear fuort. Gjin fan beide modellen is krekter, want se beantwurdzje ferskillende fragen. Kies nammeromten as it ûnderwerp routing en trochstjoeren is, en in host-laboratoarium as it ûnderwerp is hoe’t ien desktopklant yntegrearret.
| Aspect | Namespace lab | Host-route lab |
|---|---|---|
| Isolation | Full stack per role | Shares the host stack |
| Cleanup | Delete named namespaces | Manual route and rule removal |
| Realism | Strong for routing | Needed for GUI clients |
De beide trochinoar helje is de gewoane flater: in nammeromte-laboratoarium dat test wurdt tsjin in klant dy’t allinnich op ’e host draait bewiist neat oer ien fan ’e beide opstellings. Beslút hokker fraach jo stelle foardat jo de earste keppeling meitsje.
Ien kontekst per rol, mei opsetsin ferbûn
Meitsje ien nammeromte per rol en ferpleats elk ein fan elk veth-pear nei de kontekst dy’t it hat. De earste fjouwer opdrachten binne genôch om de foarm te sjen:
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 clientJou it laboratoarium berikken dy’t neat op ’e host oerlaapje, en skriuw foar it begjin op hokker nammeromte hokker adres hat. In wurkjend laboratoarium hat twa aparte paden nedich: in bûtenste sadat it VPN-einpunt syn partner berikke kin, en in werompaad foar de boarne dy’t beskerme wurdt. Modellearje se as twa besluten, want in laboratoarium dat allinnich de útgeande helte bout, slagget foar in hânskoddingstest en mislearret in applikaasjetest.
De trochstjoerrol is dêr’t laboratoaria nijsgjirrich wurde
Ien rol moat trochstjoere, wat betsjut dat jo trochstjoeren yn dy nammeromte ynskeakelje en de regel tafoegje dy’t it ûntwerp nedich hat. Trochstjoersteat is per nammeromte, dus de host-ynstelling is net fan belang foar it laboratoarium en de laboratoarium-ynstelling lekt net nei bûten, sa’t de dokumintaasje oer netwurknammeromten beskriuwt. WireGuard dokumintearret dat in ynterface en syn bûtenste socket yn ferskillende nammeromten libje kinne, wat in nuttige trúk is en in treflike manier om josels yn ’e war te bringen. Nim net oan dat it ferpleatsen fan in ynterface elk part fan ’e ferbining itselde ferpleatst.
Kontrolearje de trochstjoerteller nei in testpakket, want in regel dy’t nea oerienkaam en in regel dy’t wegere, lykje identyk yn ’e rûtetabel. Allinnich de tellers skiede se.
Nim in basisline op, en ferbrek dan ien rûte
Begjin mei op te nimmen wat bestiet, mei de kontekst njonken elke rigel. Lês de nammeromten, dan de rûte dy’t in testbestimming binnen ien fan har nimme soe, dan de tellers op ’e keppeling dy’t it draacht:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gDe tredde opdracht is dejinge dy’t minsken oerslaan, en dêr leit it bewiis: de tellers foar wegere en flaters fertelle jo oft in pakket de trochstjoerrol ea berikt hat. Fês deselde trije werjeften nei in feroaring, en lit it diff it bewiis wêze ynstee fan jo ûnthâld dêrfan. Ferbrek dan krekt ien ding, itsij troch in rûte te wiskjen, itsij troch in weigeringsregel op it trochstjoerpaad ta te foegjen, en befêstigje it symptoom dat jo foarsein hiene: in foltôge hânskodding sûnder antwurd, of in mislearring by it oplossen fan namme ynstee fan in time-out. In laboratoarium dat allinnich sukses sjen lit, leart hiel lyts by.
Opromjen is wat de folgjende run werhelber makket
Hâld opromjen beheind ta de boarnen dy’t jo neamd hawwe, want in algemiene firewall-reset of it fuortheljen fan in hostrûte is gjin werhelberens, it is in twadde foarfal. Bewarje de topology, de krekte opdrachten en de waarnimmings dy’t jo ferwachte, sadat de folgjende run deselde flater reprodusearret ynstee fan te rieden hokker kontekst de eardere steat hie. Sûnder dat ferslach is it laboratoarium in ferhaal, net in proseduere.
Brûk lokaal generearre oanmeldgegevens foar it laboratoarium, en hâld produksje-akkounts bûten dielde foarbylden. Wiskje dan elke nammeromte en befêstigje dat de host-werjefte ûnferoare is, wat de hiele reden is om dit model te kiezen. In laboratoarium dat jo net skjin fuorthelje kinne, is in host-feroaring mei ekstra stappen.