To laboratorium kan modellere same VPN-topologi og feile på heilt ulike måtar: det eine lever i nettverksnamnerom, det andre på verten sine eigne ruter. Namneromsversjonen held kvar grensesnitt, rute og socket i ein kontekst du kan slette, medan vertsversjonen startar raskare og etterlet tilstand. Den etterlatne tilstanden er grunnen til at det andre laboratoriet er vanskeleg å gjenta ein månad seinare. Samanlikn oppryddinga først, fordi ho avgjer om du kan køyre eksperimentet to gonger.

To måtar å byggje same lab på, og når kvar av dei vinn

I eit vertsrutelab legg du til eit tunnelgrensesnitt og ruter på maskinen du arbeider på, så eksperimentet deler skjebne med skalet ditt, pakkehandsamaren og kvar annan tilkopling. I eit namneromslab får kvar rolle sin eigen stabel av grensesnitt, adresser, ruter og sockets, og sletting av namnerommet fjernar alt dette. Ingen av modellane er meir korrekte, fordi dei svarar på ulike spørsmål. Vel namnerom når emnet er ruting og videresending, og eit vertslab når emnet er korleis éin skrivebordsklient integrerast.

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

Å blande dei to er den vanlege feilen: eit namneromslab testa mot ein klient som berre finst på verten beviser ingenting om nokon av dei to oppsetta. Bestem kva spørsmål du stiller før du opprettar den første koplinga.

Éin kontekst per rolle, kopla med vilje

Opprett eitt namnerom per rolle og flytt kvar ende av kvart veth-par inn i konteksten som eig han. Dei fire første kommandoane er nok til å sjå forma:

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

Gi laboratoriet område som ikkje overlappar noko på verten, og skriv ned før start kva namnerom som eig kva adresse. Eit laboratorium som verkar treng to separate vegar: ein ytre for at VPN-endepunktet skal nå sin part, og ein returveg for ressursen som blir verna. Modeller dei som to avgjerder, fordi eit laboratorium som berre byggjer den utgåande halvdelen består ein handtrykktest og feilar ein applikasjonstest.

Videresendingsrolla er der laboratorium blir interessante

Éi rolle må videresende, noko som tyder å slå på videresending inne i det namnerommet og leggje til regelen designet treng. Videresendingstilstand er per namnerom, så verten si innstilling er irrelevant for laboratoriet og laboratoriet si innstilling lek ikkje utover, som dokumentasjonen om nettverksnamnerom skildrar. WireGuard dokumenterer at eit grensesnitt og den ytre socketen hans kan leve i ulike namnerom, noko som er eit nyttig triks og ein utmerkt måte å forvirre seg sjølv på. Ikkje gå ut frå at flytting av eit grensesnitt flyttar kvar del av sambandet identisk.

Kontroller videresendingsteljaren etter ein testpakke, fordi ein regel som aldri matsja og ein regel som drap ser identiske ut i rutetabellen. Berre teljarane skil dei.

Registrer ei grunnlinje, og bryt deretter éi rute

Byrj med å registrere kva som finst, med konteksten skriven ved sida av kvar linje. Les namneromma, deretter ruta ein testdestinasjon ville ta inne i eitt av dei, deretter teljarane på koplinga som ber henne:

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

Den tredje kommandoen er den folk hoppar over, og det er der prova bur: teljarane for droppa og feil fortel deg om ein pakke i det heile nådde videresendingsrolla. Registrer dei same tre visingane etter ei endring, og lat diffen vere prova i staden for minnet ditt. Bryt deretter nøyaktig éin ting, anten ved å slette ei rute eller ved å leggje til ein avvisingsregel på videresendingsvegen, og stadfest symptomet du føresåg: eit fullført handtrykk utan svar, eller ein namneoppløysingsfeil i staden for tidsavbrot. Eit laboratorium som berre viser suksess, lærer svært lite.

Opprydding er det som gjer neste køyring repeterbar

Hald oppryddinga avgrensa til ressursane du namngav, fordi ein generell brannmur-reset eller fjerning av ei vertsrute ikkje er repeterbarheit, det er ein andre hending. Lagre topologien, dei nøyaktige kommandoane og observasjonane du forventa, slik at neste køyring reproduserer same feil i staden for å gjette kva kontekst som heldt den førre tilstanden. Utan den registreringa er laboratoriet ei historie, ikkje ein prosedyre.

Bruk lokalt genererte påloggingsdetaljar for laboratoriet, og hald produksjonskontoar unna delte døme. Slett deretter kvart namnerom og stadfest at vertsvisninga er uendra, som er heile grunnen til å velje denne modellen. Eit laboratorium du ikkje kan fjerne reint, er ei vertsendring med ekstra trinn.

Relaterte artiklar