Pingate oddaljenega gostitelja z linux stroja in odgovori, torej tunel deluje. Vsebnik ob vas še vedno poteče, naslednji naravni korak pa je ponoven zagon Dockerja. Vsebnik v mostnem omrežju se običajno začne z drugim izvornim naslovom in v gostitelja vstopi prek posredovanja, ne po lastni izhodni poti aplikacije na gostitelju, zato je uspešni test izmeril drug paket. Pri tunelu strongSwan, ki temelji na pravilniku, običajna pot do oddaljenega podomrežja ne zadostuje, ko posredovani paket ne ustreza nameščenemu pravilniku IPsec.

Spodnji postopek sledi enemu cilju skozi dva vira in bere stanje, preden karkoli spremeni.

Začnite z enim ciljem in dvema viroma

Najprej izberite znano storitev po IP, da ne bi hkrati razhroščevali DNS. Zapišite tri dejstva: mostni predpono vsebnika, izvorni naslov zahteve gostitelja, ki je delovala, in izpogajane lokalne ter oddaljene selektorje prometa za tunel. Te tri številke pojasnijo skoraj vsak primer tega simptoma.

Nato ponovite neuspešno zahtevo znotraj vsebnika in ujemite vir, ki ga dejansko uporablja. Če tega naslova lokalni selektor ne pokriva, izid že poznate, in nobeno ponovno ustvarjanje vsebnika tega ne bo spremenilo.

Preberite pravilnike, preden se dotaknete Dockerja

Gostiteljske kontrole samo za branje pokrivajo odločitve usmerjanja, zbirko pravilnikov in pravila, ki izbirajo med njimi:

ip rule show
ip route show table all
ip xfrm policy

Seznam pravilnikov prikaže selektorje in smer brez izpisa stanja IPsec, polnega ključnega gradiva, zato ga je varno prilepiti v zahtevek. Poiščite lokalni selektor, ki pokriva naslov gostitelja, ne pa mostne predpone. Preverite tudi prekrivanje: pot vsebnika, ki oddaljeni cilj obravnava kot lokalni, nikoli ne bo ustvarila pričakovanega posredovanega paketa, in tunel je okrivljen. Shranite seznam ob izvorni naslov vsebnika, saj sta oba skupaj cela primerjava.

Če predpone vsebnika ni, se ustavite in se odločite o arhitekturi, preden uredite karkoli drugega. Preostanek postopka predpostavlja, da ste se dogovorili, kateri izvorni naslov mora biti viden v omrežju.

Preverite filtriranje in prevajanje po vrsti

Linuxova mostna požarna pregrada Dockerja lahko blokira posredovanje neodvisno od IPsec. Pri zaledju iptables preglejte pot FORWARD in odločitve DOCKER-USER, pri čemer upoštevajte, da pravilo, dodano po prejšnji razsodbi, morda nikoli ne bo izvedeno. Zaledje nftables se vključuje drugače, zato ne ustvarjajte verige DOCKER-USER samo zato, ker jo je tako poimenoval primer iptables; preverite, katero zaledje vaš daemon dejansko uporablja.

Nato preverite prevajanje vira. Široko pravilo MASQUERADE lahko spremeni paket, ki je prej ustrezal selektorju IPsec, v takega, ki mu ne ustreza več, in napaka je videti natanko kot težava usmerjanja. vodnik za posredovanje strongSwan dokumentira izjemo NAT, potrebno pred takim prevajanjem za promet, ki že ustreza pravilniku.

Ta izjema ni način, da bi tunelu dodali nepokrit vir vsebnika. Ščiti le promet, ki že ustreza zasnovi, zato najprej razrešite vprašanji selektorja in povratne poti, nato uskladite NAT in filtriranje z odgovorom. Če začnete izjemo širiti, je treba spremeniti selektor, ne pravila NAT.

Nato se odločite za usmerjeno ali prevedeno

Usmerjeno podomrežje vsebnika zahteva, da oba partnerja sprejmeta to podomrežje in da do njega vodi oddaljena povratna pot, kar običajno pomeni spremembo selektorja na obeh koncih in pogovor z lastnikom oddaljene strani. Namerno prevedena zasnova pa mora v ustreznem koraku iskanja predstaviti naslov, ki ga pokriva pravilnik, kar običajno pomeni ozko, dokumentirano pravilo namesto privzetega MASQUERADE.

Nobena od obeh ureditev ne izhaja samodejno iz delujočega tunela gostitelja, izbira med njima pa je oblikovalska odločitev z lastnikom. Zapišite, katero ste izbrali, sicer jo bo naslednji inženir spet izpeljal iz števcev požarne pregrade.

Pazite tudi na hibridno napako: polovica nabora pravil prevedena, polovica ne, kar daje občasen uspeh, ki je odvisen od ciljnih vrat in ne od česa v omrežju.

Preverite z novo povezavo, ne s ponovnim zagonom

Uporabite novo povezavo aplikacije, medtem ko spremljate ozke števce požarne pregrade in oddaljenega prejemnika, da ima vsako opažanje vir. Ponovni zagon Dockerja lahko spremeni stanje pravil in bo tudi motil delovne obremenitve, kar vas stane čistega signala, ki ste ga želeli dobiti.

Trajni rezultat so štiri trditve, ki jih lahko pokažete: vir vsebnika, ustrezna zaščitena pot, dovoljeno posredovanje in odgovor, ki se vrne. Ko vse štiri veljajo, vsebnik doseže partnerja iz istega razloga kot gostitelj.

Sorodni članki