Kwenye laptop moja, ukiwa na mteja mmoja wa VPN aliyeunganishwa, kontena za Linux zinaendelea kuzungumza na kontena za Windows zinasimama. Kigezo si taswira; ni njia ambayo pakiti huchukua kuingia kwenye mwenyeji. Kontena za Windows kwenye mtandao chaguo-msingi hukopa jedwali la njia na tafsiri ya mwenyeji, kwa hiyo sera inayobadilisha uelekezaji wa mwenyeji huzibadilisha pia. Thibitisha hilo kwa utafutaji wa njia kabla ya kusakinisha upya kitu chochote.

Pakiti za kontena ya Windows huingia kwenye mwenyeji wapi

Kontena kwenye mtandao chaguo-msingi nat hupata anwani kutoka kiambishi cha huduma ya Host Networking Service, kwa kawaida mahali fulani ndani ya 172.16.0.0/12, na kumfikia mwenyeji kupitia adapta ya mtandaoni. Mwenyeji anamiliki njia ya kiambishi hicho na hutafsiri trafiki kuelekea adapta ambayo inatumika sasa. Hakuna mashine ya mtandaoni tofauti katikati ya njia hiyo.

Muundo huu ndio unaofanya hitilafu kuwa ya kimakanika. Kontena inapotuma pakiti, mwenyeji hufanya utafutaji wa njia kwa kiambishi cha kontena. Njia ipi itakayoshinda ndiyo pakiti inakoenda, na kontena haina maoni kuhusu hilo.

Mteja wa VPN hubadilisha nini kwenye njia hiyo

Mteja wa shirika mara nyingi husakinisha seti pana ya njia na kichujio kinachokataa ufikiaji wa subnet ya ndani wakati handaki inafanya kazi. Kusudi ni la ulinzi: mtandao wa ndani ulioathirika haupaswi kufikia mashine iliyolindwa. Athari ya pembeni ni kwamba njia ya mwenyeji kuelekea kiambishi cha kontena si tena mtandao wa NAT wa ndani.

Badala yake utafutaji unalingana na handaki na pakiti inakabidhiwa kwa lango, ambalo halijawahi kusikia anwani hiyo ya kontena. Ping inashindikana, programu inaisha muda, na kontena inaonekana imevunjika wakati aikoni ya VPN inang'aa. Angalia jedwali la mwenyeji ukiwa umeunganishwa na njia pinzani inaonekana.

Container modeOutbound pathTypical result behind the VPN
Windows, default natHost routes and translates container trafficContainer prefix follows the tunnel and fails
Windows, transparentContainer sits on the physical linkDepends on the local subnet being allowed
Linux engine on Docker DesktopVM egress proxied by a host processOften keeps working

Kwa nini kontena za Linux hujiendesha tofauti

Injini ya Linux huendesha kontena ndani ya mashine ya mtandaoni nyepesi, na miunganisho ya kutoka kwenye mashine hiyo hufunguliwa na proksi upande wa mwenyeji kwa niaba ya kontena. Mwenyeji ndiye anayeanzisha soketi, kwa hiyo kanuni ya VPN kuhusu kiambishi cha kontena haitumiki kwake kwa namna hiyo hiyo, na mzigo wa kazi unaendelea kufikia mtandao.

Tofauti hiyo pia inaeleza kwa nini mapishi ya Linux hayahamiki. Kontena ya Linux inayohitaji handaki yake yenyewe hupewa kifaa cha TUN pamoja na uwezo wa NET_ADMIN. Kontena za Windows hazionyeshi kiolesura chochote kama kifaa, kwa hiyo muundo huo hauna kifani upande huo.

Thibitisha njia, kisha chagua muundo

Kusanya ushahidi kutoka kwa mwenyeji, si kutoka kwa kontena, kwa sababu mwenyeji ndiye anayefanya utafutaji:

docker network inspect nat --format "{{range .IPAM.Config}}{{.Subnet}}{{end}}"
route print -4
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like "172.16.*"

Endesha matokeo ya njia mara moja kabla VPN kuunganishwa na mara moja baadaye. Ikiwa kwenye matokeo ya pili kiambishi cha kontena kinaelekeza kwenye adapta ya handaki, utambuzi umekamilika na kuanzisha upya kontena hakutasaidia.

Chaguo la kwanza ni uamuzi wa sera: muulize mmiliki wa mtandao ikiwa ufikiaji wa LAN ya ndani unaweza kuruhusiwa kwa kifaa hiki. Wateja kadhaa wa shirika hutoa hilo kama mpangilio, lakini hudhoofisha mpaka uliokusudiwa. Liombe kama msamaha ulioandikwa ukiwa na mmiliki na tarehe ya mapitio. Kitufe cha kila kifaa ambacho hakuna anayerejea ni njia ambayo sera ya ulinzi hutoweka kimya.

Mahali sera inapaswa kusimama, hamisha mzigo wa kazi badala ya kupigana na njia. Mtandao wazi wenye subnet na lango lililo wazi huweka kontena kwenye kiungo cha ndani, mzigo wa kazi wa Linux huendeshwa nyuma ya proksi ya mashine ya mtandaoni, na mashine ya mtandaoni tofauti yenye mteja wake huhifadhi sera yake mwenyewe. Chagua moja kwa makusudi na uijaribu kutoka ndani ya kontena, kwa sababu ombi la mtumiaji huanzia hapo.

Makala zinazohusiana