Jo pingje de fiere host fan de Linux-masine en dy antwurdet, dus de tunnel wurket. De container njonken jo rint noch altyd op in time-out, en de natuerlike folgjende stap is Docker opnij starte. In container op in brêgenetwurk begjint meastentiids mei in oar boarneadres en komt by de host yn troch trochstjoering yn stee fan fia it eigen útgeande paad fan ’e hostapplikaasje, dus mat de slagge test in oar pakket. Foar in policy-basearre strongSwan-tunnel is in gewoane rûte nei it fiere subnet net genôch as it trochstjoerde pakket net by it ynstallearre IPsec-belied past.

De rûnlieding hjirûnder folget ien bestimming oer twa boarnen en lêst de tastân foardat der wat feroare wurdt.

Begjin by ien bestimming en twa boarnen

Kies earst in tsjinst dy’t jo by IP kenne, sadat jo net tagelyk DNS debugge. Skriuw trije feiten op: it brêgeprefiks fan de container, it boarneadres fan it hostfersyk dat wurke, en de út-ûnderhannele lokale en fiere ferkiersselekteurs foar de tunnel. Dy trije sifers ferklearje hast elk gefal fan dit symptoom.

Werhelje dan it misleare fersyk fan binnen de container en fang de boarne dy’t er echt brûkt. As dat adres net troch de lokale selekteur dutsen wurdt, witte jo de útkoms al, en gjin opnij meitsjen fan de container sil dat feroarje.

Lês it belied foardat jo Docker oanreitsje

Allinnich-lêzen hostkontrôles omfetsje de rûtebesluten, de beliedsdatabank en de regels dy’t dêrtusken kieze:

ip rule show
ip route show table all
ip xfrm policy

De beliedslist lit selekteurs en rjochting sjen sûnder in IPsec-tastânsoergong fol kaaimateriaal nedich te hawwen, dêrom is it feilich om dy yn in ticket te plakken. Sykje in lokale selekteur dy’t it hostadres dutsen mar net it brêgeprefiks. Kontrolearje ek oerlap: in containerrûte dy’t de fiere bestimming as lokaal behannelet sil nea it ferwachte trochstjoerde pakket meitsje, en de tunnel krijget de skuld. Bewarje dy list njonken it boarneadres fan de container, want dy twa tegearre binne de hiele ferliking.

As it containerprefiks ûntbrekt, stopje dan en beslute de arsjitektuer foardat jo wat oars bewurkje. De rest fan dizze rûnlieding giet derfan út dat jo ôfpraat hawwe hokker boarneadres op ’e tried ferskine moat.

Kontrolearje filtering en oersetting yn folchoarder

De Linux-brêgefirewall fan Docker kin trochstjoering los fan IPsec blokkearje. Mei de iptables-backend, besjoch it FORWARD-paad en de DOCKER-USER-besluten, en betink dat in regel dy’t nei in eardere útspraak tafoege is miskien nea draait. De nftables-backend yntegrearret oars, dus meitsje gjin DOCKER-USER-ketting allinnich om’t in iptables-foarbyld dy sa neamde; kontrolearje hokker backend jo daemon echt brûkt.

Kontrolearje dan boarneoersetting. In brede MASQUERADE-regel kin in pakket dat earder by in IPsec-selekteur paste feroarje yn ien dat der no net mear by past, en de flater liket krekt op in rûteprobleem. De strongSwan-trochstjoergids dokumintearret de NAT-útsûndering dy’t nedich is foar sa’n oersetting foar ferkear dat al by in belied past.

Dy útsûndering is gjin manier om in net-dutsen containerboarne oan de tunnel ta te foegjen. It beskermet allinnich ferkear dat al by it ûntwerp past, dus regelje earst de selekteur- en weromweifragen, en meitsje dan NAT en filtering mei it antwurd iens. As jo de útsûndering ynstee ferbrede, is de selekteur it ding om te feroarjen, net de NAT-regel.

Beslute dan rûte of oerset

In rûtecontainer-subnet freget dat beide pearen dat subnet akseptearje en in fiere weromwei dêrhinne, wat meastentiids in selekteurferoaring oan beide kanten betsjut en in petear mei de eigner fan ’e fiere kant. In bewust oerset ûntwerp moat ynstee in adres presintearje dat troch it belied dutsen wurdt yn ’e relevante sykstap, wat meastentiids in smelle, dokumintearre regel betsjut yn stee fan in standert-MASQUERADE.

Gjin fan beide oarderingen folget automatysk út de wurkjende tunnel fan de host, en kieze tusken har is in ûntwerpbeslissing mei in eigner. Skriuw op hokker jo keazen hawwe, want oars sil de folgjende yngenieur it wer ôfliede út ’e firewalltellers.

Pas ek op foar de hybride flater: de helte fan ’e regels oerset en de helte net, wat tuskenskoftich súkses jout dat fan ’e bestimmingspoarte ôfhinget en net fan wat oan it netwurk.

Ferifiearje mei in nije ferbining, net mei in werstart

Brûk in nije applikaasjeferbining wylst jo smelle firewalltellers en de fiere ûntfanger besjen, sadat elke waarnimming in boarne hat. In Docker-werstart kin de regeletastân feroarje en sil ek wurklasten fersteure, wat jo it skjinne sinjaal kostet dat jo besochten te krijen.

It bliuwende resultaat binne fjouwer bewearings dy’t jo sjen litte kinne: de containerboarne, it byhearrende beskerme paad, tastiene trochstjoering, en in antwurd dat weromkomt. As alle fjouwer jilde, berikt de container de peer om deselde reden as de host.

Relatearre artikelen