Cén fáth nach féidir le coimeádán Docker teacht ar óstairí taobh thiar den VPN
Tá a spás ainmneacha féin ag coimeádáin droichid, mar sin tá tollán an óstaigh dofheicthe dóibh. Déan comparáid idir líonrú óstaigh, gléas tun agus macvlan sula n-athraíonn tú DNS.
Maionn coimeádán nach féidir leis teacht ar aon rud taobh thiar den VPN corparáideach i spás ainmneacha líonra difriúil ón tollán de ghnáth. Baineann bealaí, freastalaithe DNS agus marcanna balla dóiteáin an chliaint óstaigh le stoc an óstaigh; tá a stoc féin ag coimeádán líonra droichid. Míníonn an t-aon fhíric sin formhór na dtuarascálacha a shroicheann foireann ardáin, agus is é an chúis freisin gur féidir «tá an VPN briste» agus «seachnaíonn Docker an VPN» a bheith mícheart araon ag an am céanna. Tá dhá shocrú an-difriúil i bhfolach taobh thiar de shíomptóm amháin, mar sin sainaithin cé acu atá agat sula n-athraíonn tú aon socrú.
Faigh amach cé a shealbhaíonn spás ainmneacha an tolláin
Ar Docker Desktop do macOS nó Windows ritheann coimeádáin taobh istigh de mheaisín fíorúil Linux. Cruthaíonn cliant VPN atá suiteáilte ar an deasc tollán i gcóras oibriúcháin na deisce, agus ní fheiceann an meaisín fíorúil riamh é. Ní dheisíonn aon chumraíocht coimeádáin é sin, mar níl an comhéadan a bheadh ag teastáil ón gcoimeádán ann ar chor ar bith ina spás ainmneacha líonra.
Ar óstach Linux maireann an tollán i spás ainmneacha an óstaigh, agus sroicheann coimeádáin droichid é de ghnáth trí thábla ródaithe an óstaigh le NAT foinseach curtha i bhfeidhm ar an mbealach amach. Nuair a theipeann ar an mbealach sin, is é an chúis de ghnáth polasaí ar aghaidh, scagadh bealaigh chúl nó folíonra forluite seachas bealach atá ar iarraidh. Deimhnigh cé acu den dá shaol ina bhfuil tú sula léann tú níos faide:
docker info --format '{{.OperatingSystem}}'
docker run --rm --net=host alpine ip route | head -5
docker run --rm alpine ip route | head -5
Is é an difríocht idir an dá thábla ródaithe sin an fhadhb ar fad ar aon scáileán amháin. Má tá comhéadan an tolláin i radharc an óstaigh agus nach bhfuil i radharc an droichid, tá tú ag féachaint ar leithlisiú spás ainmneacha, agus is rogha é gach rud eile faoi conas é a thrasnú.
Is tástáil é líonrú óstaigh, ní dearadh
Nuair a ritheann tú coimeádán le líonrú óstaigh, rud a dhoiciméadaíonn Docker mar roinnt spás ainmneacha líonra an óstaigh, faigheann sé comhéadan an tolláin agus a bhealaí le hoidhreacht go díreach. Má éiríonn leis an iarratas céanna ansin, deimhnítear teoiric na mbealach agus is leithlisiú spás ainmneacha an teip, ní dintiúirí, DNS ná riail rochtana.
docker run --rm --net=host curl -sS -o /dev/null -w '%{http_code}\n' https://api.internal/health
Coinnigh é mar dhiagnóisic. Tréigeann líonrú óstaigh foilsiú port agus an chuid is mó den leithlisiú a bhí uait ó choimeádán, agus ar Docker Desktop ciallaíonn «host» an meaisín fíorúil, ní an deasc, mar sin is féidir le rath nó teip ansin tú a chur ar strae má dhéanann tú dearmad cé an t-óstach a bhí á shroicheadh agat.
Gléas tun agus na pribhléidí a ghabhann leis
Teastaíonn gléas tolláin agus cead chun é a chumrú ó chliant VPN taobh istigh den choimeádán. Is é an t-aicearra coitianta --privileged, a thugann gach gléas agus a scaoileann an polasaí slándála ar fud an choimeádáin. Tá sé sin i bhfad níos mó ná mar a éilíonn an tasc seo, agus is deacair é a chosaint in athbhreithniú.
sudo modprobe tun
docker run --rm -it --device /dev/net/tun --cap-add NET_ADMIN myvpn-client
Mapálann an fhoirm níos cúinge an t-aon nód gléis agus ní chuireann sé ach cumas riaracháin líonra leis. Luchtaigh an modúl ar an óstach ar dtús ionas go mbeidh an nód ann. Má thosaíonn an coimeádán agus má thuairiscíonn an cliant nach féidir leis an ngléas tolláin a oscailt, seiceáil an mapáil sula ndéanann tú amhras faoin bpróifíl, mar is gnách go mbíonn an earráid sin liteartha.
Ciallaíonn an dearadh seo freisin go ritheann an cliant in aghaidh an choimeádáin. Is é sin an freagra ceart nuair a theastaíonn a thollán féin ó gach ualach oibre, agus an freagra mícheart nuair a bhí tú ag iarraidh ach go mbeadh tollán an óstaigh le feiceáil, rud a ghlac foireann an ardáin leis is dócha a bhí á dhéanamh agat.
Athraíonn NAT an droichid an fhoinse a fheiceann an VPN
Leis an droichead réamhshocraithe aistrítear trácht amach an choimeádáin chuig seoladh an óstaigh. Taobh thiar de VPN feiceann an taobh corparáideach seoladh tolláin an óstaigh mar sin seachas seoladh an choimeádáin, iompraíonn rialacha rochtana de réir foinse iad féin amhail is gur dhéan an t-óstach an t-iarratas, agus éiríonn dhá choimeádán doscartha don fhreastalaí VPN.
Tugann macvlan nó ipvlan seoladh LAN don choimeádán ina ionad, rud a chabhraíonn le fionnachtain LAN agus a fhágann go bhfuil cuma comhchosúil ar an gcoimeádán ar an teascán. Seachnaíonn sé tollán an óstaigh go hiomlán freisin, mar sin ní shroichfidh a leithéid de choimeádán réimíreanna VPN-amháin mura bhfuil an VPN inrochtana ón LAN sin freisin.
Tá an dá fhoirm dlisteanach; freagraíonn siad do riachtanais éagsúla. Más é an riachtanas «caithfidh an coimeádán seo seirbhís VPN-amháin a shroicheadh», tá tú ag roghnú idir ródú tríd an óstach agus an tollán a fhoirceannadh taobh istigh den choimeádán. Scríobh an rogha sin síos roimh an imscaradh, ní tar éis an chéad iarratais theipthe. Cibé a roghnóidh tú, taifead an seoladh foinse a fheicfidh an taobh i bhfad i gcéin, mar sin an rud a thaispeánfaidh a rialacha rochtana agus a lóga. Níl dearadh nach féidir leis an seoladh sin a lua críochnaithe.
Leanann DNS an daemon, ní an tollán
Faigheann coimeádán a chumraíocht réitigh nuair a thosaíonn sé, cóipeáilte ón daemon nó ón íomhá. Sroicheann seoltaí a bhrúnn an VPN tar éis ceangail rómhall don chóip sin, agus brúitear chuig réiteoir an óstaigh iad seachas isteach sa choimeádán.
Socraigh an réiteoir go sainráite don tseirbhís, nó díriú é ar réiteoir inmheánach atá inrochtana tríd an tollán. Úsáideann coimeádán a réitíonn ainm príobháideach go seoladh poiblí réiteoir poiblí de ghnáth, ní fhulaingíonn sé bealach briste, agus baineann an ceartú leis an gcomhad compose nó le cumraíocht an daemon.
Baineann an réasúnaíocht chéanna le ceist an tseolta amach. Mura mór do gach coimeádán teacht ó sheoladh VPN difriúil, ní féidir le haon tollán óstaigh é a sheachadadh mar go dtitfidh NAT le chéile iad ina n-aon fhoinse amháin. Is iad na foirmeacha indéanta cliant i spás ainmneacha gach coimeádáin nó sidecar a shealbhaíonn an tollán agus a roinneann a stoc, agus athraíonn an dá rud conas a sheoltar an feidhmchlár.
Seicliosta sula ndúnfaidh tú an ticéad: sainaithin an spás ainmneacha a shealbhaíonn an tollán, cruthaigh an bealach le líonrú óstaigh, mapáil ach an gléas tun a theastaíonn uait, cuimhnigh ar an seoladh foinse tar éis NAT, socraigh an réiteoir go sainráite agus caith le seoltaí amach in aghaidh an choimeádáin mar chinneadh ailtireachta seachas mar bhratach.