Àwọn kóńténíà Windows àti VPN: kí ni ó fa ìdàrúdàpọ̀ nẹ́tíwọ́kì àdúgbò
Kóńténíà Windows ń lo tábìlì ọ̀nà ti agbàlejò, nítorí náà VPN tí ó dínà ẹ̀ka-nẹ́tíwọ́kì àdúgbò gbé àfojúsùn kóńténíà náà pẹ̀lú. Ipò Linux gbà ọ̀nà mìíràn.
Lórí kọ̀mpútà gbé-ẹ̀yìn kan, pẹ̀lú kúlàìọ̀tì VPN kan tí ó so mọ́, àwọn kóńténíà Linux ń bá ara wọn sọ̀rọ̀, ṣùgbọ́n àwọn kóńténíà Windows dúró. Ohun tí ń yí padà kì í ṣe àwòrán, bíkòṣe ọ̀nà tí àwọn pákẹ́tì ń gbà wọ agbàlejò. Àwọn kóńténíà Windows lórí nẹ́tíwọ́kì àkọ́kọ́ ń gbà tábìlì ọ̀nà àti ìtumọ̀ agbàlejò, nítorí náà ìlànà tí ó yí ìtọ́sọ́nà agbàlejò padà yí àwọn náà padà. Jẹ́rìí sí èyí pẹ̀lú wíwá ọ̀nà kí o tó tún fi ohunkóhun sórí ẹ̀rọ.
Ibẹ tí àwọn pákẹ́tì kóńténíà Windows ń wọ agbàlejò
Kóńténíà kan lórí nẹ́tíwọ́kì àkọ́kọ́ nat ń gba àdírẹ́sì láti àfojúsùn Host Networking Service, ní ọ̀pọ̀ ìgbà níbìkan nínú 172.16.0.0/12, ó sì ń dé agbàlejò nípasẹ̀ àdáńtà fojú-ń-rí. Agbàlejò ni ó ní ọ̀nà fún àfojúsùn yẹn ó sì ń tumọ ìrìnàjò sí àdáńtà tí ó ń ṣiṣẹ́ báyìí. Kò sí ẹ̀rọ fojú-ń-rí ọ̀tọ̀ ní àárín ọ̀nà yẹn.
Ìtò yìí ni ó mú kí àbàwọ́n di ti ẹ̀rọ. Nígbà tí kóńténíà bá rán pákẹ́tì, agbàlejò ń wá ọ̀nà fún àfojúsùn kóńténíà. Ọ̀nà tí ó bá borí ni pákẹ́tì ń lọ, kóńténíà kò sì ní èrò kankan nípa rẹ̀.
Ohun tí kúlàìọ̀tì VPN ń yí padà lórí ọ̀nà yẹn
Kúlàìọ̀tì ilé-iṣẹ́ máa ń fi ọ̀pọ̀lọpọ̀ ọ̀nà àti àlẹmọ tí ó kọ̀ ìwọlé sí ẹ̀ka-nẹ́tíwọ́kì àdúgbò nígbà tí ọ̀nà-ìsàlẹ̀ wà. Èrò ni ààbò: nẹ́tíwọ́kì àdúgbò tí ó ti bàjẹ́ kò gbọdọ̀ dé ẹ̀rọ tí a dáàbò bò. Èsì ẹ̀gbẹ́ ni pé ọ̀nà agbàlejò dé àfojúsùn kóńténíà kì í ṣe nẹ́tíwọ́kì NAT àdúgbò mọ́.
Dípò bẹ́ẹ̀, wíwá ọ̀nà bá ọ̀nà-ìsàlẹ̀ mu, a sì fi pákẹ́tì lé ẹnubodè tí kò tíì gbọ́ nípa àdírẹ́sì kóńténíà yẹn. Ping kùnà, ohun-èlò náà ń pari àkókò, kóńténíà sì dàbí ẹni tí ó ti já nígbà tí àmì VPN ń tàn. Wo tábìlì agbàlejò nígbà tí o so mọ́, wà á rí ọ̀nà tí ó ń bára wọn jà.
| Container mode | Outbound path | Typical result behind the VPN |
|---|---|---|
| Windows, default nat | Host routes and translates container traffic | Container prefix follows the tunnel and fails |
| Windows, transparent | Container sits on the physical link | Depends on the local subnet being allowed |
| Linux engine on Docker Desktop | VM egress proxied by a host process | Often keeps working |
Kí ni ó fi í ṣe pé àwọn kóńténíà Linux ń hu ìwà mìíràn
Ẹ̀rọ Linux ń ṣiṣẹ́ àwọn kóńténíà nínú ẹ̀rọ fojú-ń-rí fúyẹ́, àwọn ìsopọ̀ tí ó jáde láti ẹ̀rọ yẹn ni aṣojú ẹ̀gbẹ́ agbàlejò ń ṣí fún kóńténíà. Agbàlejò ni ó ń bẹ̀rẹ̀ sọ́kẹ́tì, nítorí náà ìlànà VPN nípa àfojúsùn kóńténíà kò kan òun ní ọ̀nà kan náà, ẹrù iṣẹ́ sì ń dé nẹ́tíwọ́kì.
Ìyàtọ̀ yìí tún ṣàlàyé kí ni ó fi í ṣe pé àwọn ìtọ́ni Linux kò gbé kọjá. Kóńténíà Linux tí ó nílò ọ̀nà-ìsàlẹ̀ tirẹ̀ ni a ń fún ní ẹ̀rọ TUN pẹ̀lú agbára NET_ADMIN. Àwọn kóńténíà Windows kò fi èyíkéyìí ojú-ìwọlé hàn gẹ́gẹ́ bí ẹ̀rọ, nítorí náà àpẹẹrẹ yẹn kò ní ìbámu ní ẹ̀gbẹ́ yẹn.
Fi ọ̀nà hàn, lẹ́yìn náà yan àpẹẹrẹ kan
Kó ẹ̀rí láti agbàlejò, kì í ṣe láti kóńténíà, nítorí agbàlejò ni ó ń wá ọ̀nà:
docker network inspect nat --format "{{range .IPAM.Config}}{{.Subnet}}{{end}}"
route print -4
Get-NetRoute -AddressFamily IPv4 | Where-Object DestinationPrefix -like "172.16.*"
Ṣe ìjáde ọ̀nà lẹ́ẹ̀kan kí VPN tó so mọ́ àti lẹ́ẹ̀kan lẹ́yìn náà. Bí àfojúsùn kóńténíà bá tọ́ka sí àdáńtà ọ̀nà-ìsàlẹ̀ nínú ìjáde kejì, ìwádìí ti parí, àti pé bíbẹ̀rẹ̀ àwọn kóńténíà padà kò ní rànwọ́.
Àkọ́kọ́ àṣàyàn jẹ́ ìpinnu ìlànà: béèrè lọ́wọ́ ẹni tí ó ní nẹ́tíwọ́kì bóyá a lè gbà ìwọlé LAN àdúgbò fún ẹ̀rọ yìí. Ọ̀pọ̀ kúlàìọ̀tì ilé-iṣẹ́ ń fi í hàn gẹ́gẹ́ bí ètò, ṣùgbọ́n ó ń sọ ààlà tí a mọ̀ọ́mọ̀ dá di aláìlera. Béèrè fún un gẹ́gẹ́ bí ìyọ̀nudá tí a kọ sílẹ̀ pẹ̀lú ẹni tí ó ní í àti ọjọ́ àyẹ̀wò. Yíyí pátákó fún ẹ̀rọ kọ̀ọ̀kan tí kò sẹ́ni tó padà wò ni ọ̀nà tí ìlànà ààbò fi ń pòórá ní ìdákẹ́jẹ́.
Níbi tí ìlànà gbọdọ̀ dúró, gbé ẹrù iṣẹ́ lọ dípò kí o bá ọ̀nà jà. Nẹ́tíwọ́kì tí ó ṣẹ́ sílẹ̀ pẹ̀lú ẹ̀ka-nẹ́tíwọ́kì àti ẹnubodè tí ó ṣe kedere ń gbé àwọn kóńténíà sórí ìsopọ̀ àdúgbò, ẹrù iṣẹ́ Linux ń ṣiṣẹ́ lẹ́yìn aṣojú ẹ̀rọ fojú-ń-rí, àti ẹ̀rọ fojú-ń-rí ọ̀tọ̀ pẹ̀lú kúlàìọ̀tì tirẹ̀ ń pa ìlànà tirẹ̀ mọ́. Yan ọ̀kan mọ̀ọ́mọ̀ kí o sì dán an wò láti inú kóńténíà, nítorí níbẹ̀ ni ìbéèrè olùṣe ń bẹ̀rẹ̀.