Pārbaudiet VPN maršrutēšanu nosaukumvietās, neaiztiekot resursdatora maršrutus
Trīs simulētas lomas, trīs izolēti konteksti un viens veth katram savienojumam. Salīdziniet nosaukumvietu laboratoriju ar resursdatora maršrutu laboratoriju pirms resursdatora aiztikšanas.
Divas laboratorijas var modelēt vienu un to pašu VPN topoloģiju un neizdoties pilnīgi atšķirīgi: viena dzīvo tīkla nosaukumvietās, otra – paša resursdatora maršrutos. Nosaukumvietu versija tur katru saskarni, maršrutu un ligzdu kontekstā, ko varat dzēst, savukārt resursdatora versija startē ātrāk un atstāj aiz sevis stāvokli. Tieši šis atlikušais stāvoklis ir iemesls, kāpēc otro laboratoriju pēc mēneša ir grūti atkārtot. Vispirms salīdziniet tīrīšanu, jo tā nosaka, vai varat eksperimentu veikt divreiz.
Divi veidi, kā uzbūvēt vienu un to pašu laboratoriju, un kad kurš uzvar
Resursdatora maršrutu laboratorijā jūs pievienojat tuneļa saskarni un maršrutus mašīnai, kurā strādājat, tāpēc eksperiments dala likteni ar jūsu shell, pakotņu pārvaldnieku un jebkuru citu savienojumu. Nosaukumvietu laboratorijā katra loma iegūst savu saskarņu, adrešu, maršrutu un ligzdu kaudzi, un nosaukumvietas dzēšana to visu noņem. Neviens modelis nav pareizāks, jo tie atbild uz dažādiem jautājumiem. Izvēlieties nosaukumvietas, ja tēma ir maršrutēšana un pārsūtīšana, un resursdatora laboratoriju, ja tēma ir tas, kā integrējas viens galddatora klients.
| 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 |
Abu sajaukšana ir ierasta kļūda: nosaukumvietu laboratorija, kas pārbaudīta tikai pret resursdatora klientu neko nepierāda par nevienu no abiem izkārtojumiem. Izlemiet, kādu jautājumu uzdodat, pirms izveidojat pirmo savienojumu.
Viens konteksts katrai lomai, apzināti savienots
Izveidojiet vienu nosaukumvietu katrai lomai un pārvietojiet katru katras veth pāra galu kontekstā, kuram tas pieder. Ar pirmajām četrām komandām pietiek, lai redzētu formu:
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 clientDodiet laboratorijai diapazonus, kas ar neko resursdatorā nepārklājas, un pirms sākšanas pierakstiet, kura nosaukumvieta pieder kurai adresei. Strādājošai laboratorijai vajadzīgi divi atsevišķi ceļi: ārējais, lai VPN galapunkts sasniegtu savu partneri, un atgriešanās ceļš aizsargātajam resursam. Modelējiet tos kā divus lēmumus, jo laboratorija, kas būvē tikai izejošo pusi, iztur rokasspiediena testu un neiztur lietojumprogrammas testu.
Pārsūtīšanas loma ir vieta, kur laboratorijas kļūst interesantas
Vienai lomai ir jāpārsūta, kas nozīmē iespējot pārsūtīšanu šajā nosaukumvietā un pievienot noteikumu, kas nepieciešams dizainam. Pārsūtīšanas stāvoklis ir katrai nosaukumvietai atsevišķs, tāpēc resursdatora iestatījums laboratorijai nav svarīgs un laboratorijas iestatījums neizplūst uz āru, kā apraksta tīkla nosaukumvietu dokumentācija. WireGuard dokumentē, ka saskarne un tās ārējā ligzda var dzīvot dažādās nosaukumvietās, kas ir noderīgs triks un lielisks veids, kā apmulsināt sevi. Neuzskatiet, ka saskarnes pārvietošana pārvieto katru savienojuma daļu vienādi.
Pārbaudiet pārsūtīšanas skaitītāju pēc testa paketes, jo noteikums, kas nekad nesakrita, un noteikums, kas nometa, maršrutu tabulā izskatās vienādi. Tikai skaitītāji tos šķir.
Pierakstiet bāzes līniju, pēc tam salauziet vienu maršrutu
Sāciet ar to, kas pastāv, pierakstīšanu, blakus katrai rindai ierakstot kontekstu. Izlasiet nosaukumvietas, tad maršrutu, kuru testa galamērķis veiktu vienā no tām, tad skaitītājus saitē, kas to nes:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gTrešā komanda ir tā, kuru cilvēki izlaiž, un tieši tur dzīvo pierādījumi: nomesto un kļūdu skaitītāji pasaka, vai pakete vispār sasniedza pārsūtīšanas lomu. Pierakstiet tos pašus trīs skatus pēc izmaiņām un ļaujiet diff būt pierādījumam, nevis jūsu atmiņai. Pēc tam salauziet tieši vienu lietu, vai nu dzēšot maršrutu, vai pievienojot noraidīšanas noteikumu pārsūtīšanas ceļā, un apstipriniet prognozēto simptomu: pabeigts rokasspiediens bez atbildes vai nosaukuma atrisināšanas kļūme laika limita vietā. Laboratorija, kas demonstrē tikai panākumus, iemāca ļoti maz.
Tīrīšana ir tas, kas padara nākamo palaišanu atkārtojamu
Turiet tīrīšanu tikai to resursu robežās, kurus nosaukāt, jo vispārēja ugunsmūra atiestatīšana vai resursdatora maršruta noņemšana nav atkārtojamība, tā ir otrs incidents. Saglabājiet topoloģiju, precīzās komandas un novērojumus, kurus gaidījāt, lai nākamā palaišana atkārtotu to pašu kļūmi, nevis minētu, kurā kontekstā bija iepriekšējais stāvoklis. Bez šī ieraksta laboratorija ir stāsts, nevis procedūra.
Izmantojiet laboratorijai lokāli ģenerētus pieteikšanās datus un turiet ražošanas kontus prom no koplietotiem piemēriem. Pēc tam dzēsiet katru nosaukumvietu un apstipriniet, ka resursdatora skats nav mainījies, kas ir viss iemesls šī modeļa izvēlei. Laboratorija, ko nevarat notīrīt, ir resursdatora izmaiņas ar papildu soļiem.