Testu VPN-enkursigadon en nomspacoj sen tuŝi la gastigajn itinerojn
Tri simulitaj roloj, tri izolitaj kuntekstoj kaj unu veth por ĉiu ligilo. Komparu nomspacan laboratorion kun gastigita itinera laboratorio antaŭ ol tuŝi la gastiganton.
Du laboratorioj povas modeligi la saman VPN-topologion kaj malsukcesi tute malsame: unu vivas en retaj nomspacoj, la alia sur la propraj itineroj de la gastiganto. La nomspaca versio tenas ĉiun interfacon, itineron kaj ingon en kunteksto, kiun vi povas forigi, dum la gastiganta versio startas pli rapide kaj lasas staton malantaŭe. Ĝuste tiu restanta stato kaŭzas, ke la dua laboratorio estas malfacile ripetebla monaton poste. Komparu unue la purigadon, ĉar ĝi decidas, ĉu vi povas ruli la eksperimenton dufoje.
Du manieroj konstrui la saman laboratorion, kaj kiam ĉiu venkas
En gastigita itinera laboratorio vi aldonas tunelan interfacon kaj itinerojn al la maŝino, sur kiu vi laboras, do la eksperimento dividas sorton kun via ŝelo, via pakaĵmastrumilo kaj ĉiu alia konekto. En nomspaca laboratorio ĉiu rolo ricevas sian propran stakon da interfacoj, adresoj, itineroj kaj ingoj, kaj forigi la nomspacon forigas ĉion tion. Neniu modelo estas pli ĝusta, ĉar ili respondas malsamajn demandojn. Elektu nomspacojn, kiam la temo estas enkursigado kaj plusendado, kaj gastigitan laboratorion, kiam la temo estas kiel integriĝas unu labortabla kliento.
| 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 |
Miksi la du estas la kutima eraro: nomspaca laboratorio testita kontraŭ kliento nur sur la gastiganto pruvas nenion pri iu ajn el la du aranĝoj. Decidu, kiun demandon vi starigas, antaŭ ol krei la unuan ligilon.
Unu kunteksto por rolo, konektitaj intence
Kreu unu nomspacon por rolo kaj movu ĉiun finon de ĉiu veth-paro en la kuntekston, kiu posedas ĝin. La unuaj kvar komandoj sufiĉas por vidi la formon:
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 clientDonu al la laboratorio gamojn, kiuj koincidas kun nenio sur la gastiganto, kaj skribu antaŭ la komenco, kiu nomspaco posedas kiun adreson. Funkcianta laboratorio bezonas du apartajn vojojn: eksteran, por ke la VPN-finpunkto atingos sian partneron, kaj revenan vojon por la protektata rimedo. Modeligu ilin kiel du decidojn, ĉar laboratorio, kiu konstruas nur la elirantan duonon, trapasas manpreman teston kaj malsukcesas aplikaĵan teston.
La plusenda rolo estas tie, kie laboratorioj fariĝas interesaj
Unu rolo devas plusendi, kio signifas ebligi plusendadon ene de tiu nomspaco kaj aldoni la regulon, kiun la dezajno bezonas. Plusenda stato estas po nomspaco, do la agordo de la gastiganto estas senrilata por la laboratorio, kaj la agordo de la laboratorio ne likas eksteren, kiel priskribas la dokumentaro pri retaj nomspacoj. WireGuard dokumentas, ke interfaco kaj ĝia ekstera ingo povas vivi en malsamaj nomspacoj, kio estas utila lertaĵo kaj bonega maniero konfuzi vin mem. Ne supozu, ke movi interfacon movas ĉiun parton de la konekto same.
Kontrolu la plusendan nombrilon post testa pakaĵo, ĉar regulo, kiu neniam kongruis, kaj regulo, kiu forĵetis, aspektas idente en la itinera tabelo. Nur la nombriloj apartigas ilin.
Registru bazlinion, poste rompu unu itineron
Komencu registrante, kio ekzistas, kun la kunteksto skribita apud ĉiu linio. Legu la nomspacojn, poste la itineron, kiun testa celloko prenus ene de unu el ili, poste la nombrilojn sur la ligilo, kiu portas ĝin:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gLa tria komando estas tiu, kiun homoj preterlasas, kaj ĝuste tie loĝas la pruvoj: la nombriloj de forĵetoj kaj eraroj diras al vi, ĉu pakaĵo entute atingis la plusendan rolon. Registru la samajn tri vidpunktojn post ŝanĝo, kaj lasu la diff esti la pruvo anstataŭ via memoro pri ĝi. Poste rompu precize unu aferon, aŭ forigante itineron aŭ aldonante malpermesan regulon sur la plusenda vojo, kaj konfirmu la simptomon, kiun vi antaŭdiris: kompletigita manpremo sen respondo, aŭ malsukceso de solvado anstataŭ tempolimo. Laboratorio, kiu montras nur sukceson, instruas tre malmulte.
Purigado estas tio, kio faras la sekvan rulon ripetebla
Tenu purigadon limigita al la rimedoj, kiujn vi nomis, ĉar ĝenerala fajroŝirmila restarigo aŭ forigo de gastiganta itinero ne estas ripeteblo, ĝi estas dua incidento. Konservu la topologion, la precizajn komandojn kaj la observojn, kiujn vi atendis, por ke la sekva rulo reproduktu la saman fiaskon anstataŭ diveni, kiu kunteksto tenis la antaŭan staton. Sen tiu registro la laboratorio estas rakonto, ne proceduro.
Uzu loke generitajn akreditaĵojn por la laboratorio, kaj tenu produktadajn kontojn for de kunhavataj ekzemploj. Poste forigu ĉiun nomspacon kaj konfirmu, ke la gastiganta vido estas senŝanĝa, kio estas la tuta kialo elekti ĉi tiun modelon. Laboratorio, kiun vi ne povas purigi for, estas gastiganta ŝanĝo kun pliaj paŝoj.