Domaćin stiže do IPsec partnera, Docker kontejner ne
Kontejner na mostu koristi drugi izvor i ulazi kroz prosljeđivanje, pa tunel domaćina malo dokazuje. Provjerite selektore prije nego što restartujete Docker.
Pingate udaljeni domaćin sa Linux mašine i on odgovara, pa tunel radi. Kontejner pored vas još uvijek ističe vrijeme, a prirodan sljedeći korak je restart Dockera. Kontejner na most mreži obično počinje s drugom izvornom adresom i ulazi u domaćina kroz prosljeđivanje, a ne kroz vlastitu izlaznu putanju aplikacije na domaćinu, pa je uspješni test izmjerio drugi paket. Za strongSwan tunel zasnovan na politici, obična ruta prema udaljenoj podmreži nije dovoljna kada proslijeđeni paket ne odgovara instaliranoj IPsec politici.
Šetnja ispod prati jednu destinaciju kroz dva izvora, čitajući stanje prije nego što se bilo šta promijeni.
Pođite od jedne destinacije i dva izvora
Prvo odaberite poznatu uslugu po IP-u, da ne otklanjate i DNS greške istovremeno. Zapišite tri činjenice: prefiks mosta kontejnera, izvornu adresu zahtjeva domaćina koji je uspio, i pregovorane lokalne i udaljene selektore saobraćaja za tunel. Ta tri broja objašnjavaju gotovo svaki slučaj ovog simptoma.
Zatim ponovite neuspjeli zahtjev iz kontejnera i uhvatite izvor koji on stvarno koristi. Ako ta adresa nije pokrivena lokalnim selektorom, ishod već znate, i nikakvo ponovno stvaranje kontejnera to neće promijeniti.
Pročitajte politike prije nego što dirnete Docker
Provjere domaćina samo za čitanje pokrivaju odluke rutiranja, bazu politika i pravila koja biraju između njih:
ip rule show
ip route show table all
ip xfrm policyLista politika pokazuje selektore i smjer bez potrebe za ispisom IPsec stanja punim ključnog materijala, zato je sigurno zalijepiti je u tiket. Tražite lokalni selektor koji pokriva adresu domaćina ali ne prefiks mosta. Provjerite i preklapanje: ruta kontejnera koja udaljenu destinaciju tretira kao lokalnu nikada neće proizvesti proslijeđeni paket koji očekujete, a tunel zbog toga ispašta. Sačuvajte tu listu pored izvorne adrese kontejnera, jer te dvije zajedno čine cijelo poređenje.
Ako prefiks kontejnera nedostaje, zaustavite se i odlučite arhitekturu prije nego što uredite bilo šta drugo. Ostatak ove šetnje pretpostavlja da ste se dogovorili koja izvorna adresa treba da se pojavi na mreži.
Provjerite filtriranje i prevođenje po redu
Dockerov Linux most firewall može blokirati prosljeđivanje nezavisno od IPsec-a. S iptables pozadinom, pregledajte FORWARD putanju i DOCKER-USER odluke, imajući na umu da pravilo dodano nakon ranije presude možda nikada neće biti izvršeno. nftables pozadina se integrira drugačije, pa nemojte stvarati DOCKER-USER lanac samo zato što ga je iptables primjer nazvao; provjerite koju pozadinu vaš daemon stvarno koristi.
Zatim provjerite prevođenje izvora. Široko MASQUERADE pravilo može pretvoriti paket koji je ranije odgovarao IPsec selektoru u onaj koji više ne odgovara, a kvar izgleda tačno kao problem rutiranja. strongSwan vodič za prosljeđivanje dokumentuje NAT izuzetak potreban prije takvog prevođenja za saobraćaj koji već odgovara politici.
Taj izuzetak nije način da se nepokriveni izvor kontejnera doda u tunel. On štiti samo saobraćaj koji već odgovara dizajnu, pa prvo riješite pitanja selektora i povratne putanje, a zatim uskladite NAT i filtriranje s tim odgovorom. Ako počnete širiti izuzetak, stvar koju treba promijeniti je selektor, a ne NAT pravilo.
Zatim odlučite rutirano ili prevedeno
Rutirana podmreža kontejnera zahtijeva da oba partnera prihvate tu podmrežu i udaljenu povratnu putanju do nje, što obično znači promjenu selektora na oba kraja i razgovor s vlasnikom daleke strane. Namjerno preveden dizajn umjesto toga mora predstaviti adresu pokrivenu politikom u relevantnoj fazi pretraživanja, što obično znači usko, dokumentovano pravilo umjesto zadanog MASQUERADE.
Nijedno od ta dva rješenja ne slijedi automatski iz radnog tunela domaćina, a izbor između njih je dizajnerska odluka s vlasnikom. Zapišite koje ste odabrali, jer će sljedeći inženjer to inače ponovo izvesti iz brojača firewalla.
Pazite i na hibridni kvar: pola skupa pravila prevedeno a pola ne, što daje povremeni uspjeh koji zavisi od odredišnog porta, a ne od bilo čega na mreži.
Provjerite novom vezom, a ne restartom
Koristite novu vezu aplikacije dok gledate uska brojila firewalla i udaljeni prijemnik, tako da svako zapažanje ima izvor. Restart Dockera može promijeniti stanje pravila i takođe će poremetiti radna opterećenja, što vas košta čistog signala koji ste htjeli dobiti.
Trajni rezultat su četiri tvrdnje koje možete pokazati: izvor kontejnera, odgovarajuća zaštićena putanja, dozvoljeno prosljeđivanje i odgovor koji se vraća. Kada sve četiri vrijede, kontejner stiže do partnera iz istog razloga kao i domaćin.