Mwenyeji anaendelea kujibu SSH baada ya VPN ya handaki kamili kuwaka, wakati huduma iliyochapishwa kwa Docker kwenye mashine hiyo hiyo inanyamaza. Hakuna kosa kwa msikilizaji: kontena linaendesha, ramani ya bandari ipo, na pakiti inafika. Kontena ni zuri na ombi kweli linaifikia. Kinachotofautiana ni wapi jibu linaanza wakati Linux inachagua njia yake, na tofauti hiyo huamua ni muundo upi kati ya miwili iliyo hapa chini unaouhitaji.

Fuata tuple kupitia NAT ya lengwa

Chukua mwenyeji katika 192.0.2.10 anayechapisha TCP 2222 kwa kontena katika 172.30.240.5:22. Ombi kutoka 198.51.100.25 hutafsiriwa kabla ya kufikia kontena, na kontena hujibu kama yeye mwenyewe.

WAN request:      198.51.100.25 -> 192.0.2.10:2222
after DNAT:       198.51.100.25 -> 172.30.240.5:22
container reply:  172.30.240.5:22 -> 198.51.100.25

Katika uamuzi wa njia wa mwenyeji jibu bado hubeba anwani ya chanzo ya kontena. Utafsiri wa kinyume hurejesha tuple iliyochapishwa baadaye, na ndiyo sababu pakiti inaonekana si sahihi hasa wakati njia inachaguliwa.

Kwa nini kanuni ya mwenyeji pekee inaikosa

Kanuni inayochagua jedwali la WAN kwa pakiti kutoka 192.0.2.10 pekee inashughulikia daemon za mwenyeji mwenyewe na inakosa jibu hili lililopelekwa kabisa. Anwani ya chanzo kwenye jibu ni 172.30.240.5, si mwenyeji.

Marekebisho ya kupita kiasi ni kuelekeza kila kitu kutoka kontena kupitia WAN, jambo ambalo pia huziachia VPN miunganisho ya nje isiyohusiana ya kontena. Hiyo ni sera tofauti na ile iliyoombwa, na kwa kawaida humshangaza mtu baadaye.

Ulinganishaji wa baada ya DNAT ni hook tofauti

Nyaraka za Docker kuhusu firewall zinasema kwamba uchujaji wa kawaida wa mtumiaji huona lengwa baada ya DNAT, hivyo kulinganisha bandari iliyochapishwa 2222 katika kanuni ya kawaida si sawa na kulinganisha bandari 22 ya kontena. Ikiwa tuple ya awali ni muhimu, tumia utaratibu unaotumika wa lengwa la awali badala ya kukisia bandari ipi inaonekana.

Mkanganyiko huu wa hook huzalisha kanuni zinazoonekana sahihi na hazilingani kamwe. Angalia vihesabu kwenye kanuni yenyewe kabla ya kuandika upya sera. Kanuni isiyo na hiti hata moja inakuambia inatathminiwa mahali ambapo pakiti haifikii kamwe.

Muundo A: beba uamuzi kama hali ya muunganisho

Alama ya muunganisho inaweza kubeba uamuzi wa kuingia kupitia utafsiri, lakini lazima irejeshwe kwenye pakiti kabla ya utafutaji wa njia ambao ni muhimu. Hatua ni:

  1. Tenga uwanja wa alama na kipaumbele cha kanuni ambavyo havigongani na Docker, VPN au mmiliki mwingine wa sera.
  2. Tambua muunganisho mpya wa WAN unaokusudiwa pekee katika hatua ya kabla ya DNAT ambapo ufuatiliaji wa miunganisho unapatikana.
  3. Rekodi uamuzi kwenye alama ya muunganisho, bila kulazimisha ombi la awali lenyewe kwenye jedwali la WAN.
  4. Katika mwelekeo wa jibu, rejesha biti zako za alama pekee kwenye pakiti kabla ya uelekezaji.
  5. Chagua jedwali kamili la WAN mapema vya kutosha ili kanuni ya VPN isishinde kwanza.

Jedwali hilo linahitaji njia halisi zilizounganishwa na lango. Linahitaji pia tabia iliyobainishwa wakati njia haipo. Kuanguka kimya ndani ya handaki ni matokeo mabaya zaidi, kwa sababu usanidi bado unaonekana kufanya kazi. Badala yake shindwa kwa kufungwa na uandike hilo.

Muundo B: maliza kwenye mwenyeji

Frontend iliyosanidiwa kwa makusudi upande wa mwenyeji, kama proksi ya TCP au proksi ya kinyume mbele ya kontena, huweka jibu likitoka kwenye anwani ya mwenyeji. Kisha kanuni zilizoandikwa kwa mwenyeji hufanya kazi kama inavyotarajiwa, na kontena hubaki kwenye mtandao wake wa faragha.

Gharama ni sehemu nyingine inayosonga na usanidi wake, utunzaji wa anwani ya chanzo na vidhibiti vya ufikiaji. Kwa kawaida ni mpaka rahisi unaotumika, na mara nyingi ni jibu sahihi wakati sera ya uelekezaji ingehudumiwa na mtu mmoja ambaye anaweza kuondoka.

Thibitisha mabadiliko, si nia

Fungua muunganisho mpya ulioidhinishwa kutoka upande wa umma na uthibitishe kwamba jibu linatoka kupitia kiolesura kinachokusudiwa. Kisha angalia kwamba ombi lisilohusiana lililoanzishwa na kontena bado linafuata VPN.

Usifute jedwali la miunganisho la mashine ili kujaribu kanuni moja: maingizo yaliyopo yanabaki na ramani yao ya awali, na kufuta kuvunja kila kitu kingine kwenye mwenyeji. Kuchapisha bandari kunafafanua ufikikaji. Hakifafanui njia ya jibu. Andika muundo uliochaguliwa pamoja na majina ya majedwali yake, ili mtu anayefuata asilazimike kuugundua tena wakati wa tukio.

Makala zinazohusiana