Seachnaíonn trácht coimeádán Docker VPN an óstaigh: conas é a sheiceáil
Ní chlúdaíonn VPN óstaigh ach ainmspás líonra an óstaigh. Úsáid na seiceálacha seo chun a fháil amach an dtéann trácht coimeádán ar dhroichead isteach sa tollán nó an dtagann sé amach go díreach.
Taispeánann do bhrabhsálaí ar an óstach seoladh imeachta an VPN, tuairiscíonn an coimeádán do nasc baile, agus glaonn duine éigin sceitheadh air. Níor sceith aon rud. Is éard atá i dtollán óstaigh ná babhta comhéadan, bealaí agus rialacha a bhaineann le hainmspás líonra an óstaigh, agus is ainmspás eile é coimeádán ar dhroichead lena bhealach réamhshocraithe féin. Bhí mé i mo shuí ar stac Compose ina raibh cliant an VPN ceangailte le seachtainí agus nár tháinig aon phaicéad coimeádáin isteach ann riamh.
Seiceáil an t-ainmspás roimh an deilbhín sa tráidire
Is iad na hainmspásanna an argóint ar fad. Nuair a thosaíonn Docker coimeádán ar líonra droichid, cruthaíonn sé ainmspás líonra, ceanglaíonn sé foirceann amháin de phéire veth istigh ann, agus tugann sé seoladh agus bealach réamhshocraithe don ainmspás sin. Maireann comhéadan an tolláin, cibé ainm a thugtar air, in ainmspás an óstaigh. Ní féidir le trácht taobh istigh den choimeádán é a fheiceáil, agus ní athraíonn aon socrú cliaint é sin ón taobh amuigh.
Tugann dhá ghluaiseacht thacaithe tú amach as an leithlisiú. Cuireann --network host an coimeádán taobh istigh d'ainmspás an óstaigh, mar sin faigheann sé bealaí an óstaigh agus dá réir sin an tollán le hoidhreacht. Roinneann --network container:vpn ainmspás coimeádáin eile, agus is mar sin a sheolann formhór na ndearaí sidecar ualach oibre trí choimeádán VPN. Roghanna follasacha is ea an dá rud; de ghnáth ní bhíonn ach ceann amháin acu mar an rud a bhí i gceist ag an duine atá ag imscaradh.
Ní huasghrádú saor in aisce é mód an óstaigh. Stopann an coimeádán de bheith aige a sheoladh féin, stopann foilsiú port de bheith i bhfeidhm, agus is féidir le próiseas a bhfuil NET_ADMIN aige ansin ródú an óstaigh a athscríobh. D'fhéadfadh sé a bheith mar an gcinneadh ceart glacadh leis sin. Is é glacadh leis go bhfuil sé air cheana an chaoi a gcaitheann daoine tráthnóna ag dífhabhtú tolláin nach raibh riamh sa chonair.
Lean an paicéad amach ón droichead
Seolann coimeádán droichid a phaicéad chuig a gheata réamhshocraithe, arb é comhéadan an droichid ar an óstach é. Ansin seolann an t-óstach an paicéad ar aghaidh agus, sa chumraíocht réamhshocraithe, aistríonn sé an seoladh foinse chuig a sheoladh féin sula n-imíonn an paicéad. Is é an chéim aistrithe sin a sháraíonn an polasaí go ciúin.
Faoin am a shroicheann an paicéad deireadh an tolláin tá seoladh an óstaigh á iompar aige. Stopann aon riail, bealach polasaí nó cinneadh tolláin scoilte atá bunaithe ar bhunseoladh an choimeádáin de bheith ag teacht leis, agus ní féidir dhá choimeádán a bhí le himeacht trí imeachtaí éagsúla a aithint ón bhfoinse amháin. Má theastaíonn ródú in aghaidh an choimeádáin uait, caithfidh an cinneadh tarlú roimh an aistriú nó taobh istigh d'ainmspás atá faoi do smacht.
Coinníonn Docker na rialacha seo é féin, trí cibé inneall balla dóiteáin a cumraíodh an daemon leis. Is féidir rialacha a scríobhadh de láimh lasmuigh den chrúca tacaithe do thrácht a sheoltar ar aghaidh, DOCKER-USER, a athordú nó a scriosadh nuair a atosaíonn an daemon nó nuair a uasghrádaítear an t-óstach. Taispeánann doiciméadú Docker ar scagadh paicéad ord na slabhraí; is é an pointe praiticiúil go dteastaíonn úinéir agus conair athluchtaithe ó gach riail a ndearna tú tástáil uirthi i ndáiríre.
Tástáil an dá chóras ar leithligh
Ní deir fianaise ó ainmspás amháin aon rud faoin gceann eile. Cruthaíonn iarratas a ritear taobh istigh de choimeádán an VPN go n-oibríonn an tollán don choimeádán sin. Ní fianaise é faoin óstach, agus ní fianaise faoin droichead é an t-ordú céanna a ritear ó choimeádán --network host.
# host namespace
ip route get 1.1.1.1
ip -brief addr show
# a fresh container on the same bridge network
docker run --rm --network appnet alpine sh -c 'ip route; cat /etc/resolv.conf; ip -6 route'
Ansin déan an tástáil a athrá taobh istigh de fhíor-choimeádán an fheidhmchláir seachas íomhá chosúil. D'fhéadfadh bealach breise, athróg timpeallachta seachfhreastalaí nó réiteoir difriúil a bheith ag an bhfeidhmchlár, agus athraíonn gach ceann acu sin an freagra. Seiceáil réiteach ainmneacha agus an dara fine seoltaí gach uair: réitítear coimeádáin ar dhroichid atá sainithe ag an úsáideoir trí réiteoir ionsuite Docker ag 127.0.0.11, agus is féidir le bealach réamhshocraithe IPv6 ar an droichead trácht a thabhairt amach agus tú gnóthach ag tástáil tolláin IPv4 amháin.
Léigh an patrún sula dtéann tú i dteagmháil le dintiúir
Nuair a oibríonn an t-óstach agus nach n-oibríonn an coimeádán, bíonn an chúis struchtúrach beagnach gach uair, agus cuireann rothlú eochracha nó athshuiteáil an chliaint tráthnóna amú. Sórtáil an tsíomptóm ar dtús agus is gnách go n-ainmníonn an deisiú é féin.
| What you see | Usual cause | First check |
|---|---|---|
| Host exits through the VPN, container shows the ISP address | The container never entered the tunnel | Default route inside the container |
| Container works until the daemon restarts, then stops | Rules outside the supported hook, or a changed backend | Daemon's reported firewall backend and DOCKER-USER |
| Container loses internal hosts after the tunnel comes up | VPN prefix overlaps the Docker bridge subnet | ip route on the host, then docker network inspect |
| Small replies arrive, large ones hang | Tunnel MTU or missing MSS clamping | Link MTU on both ends of the tunnel |
| Container falls back to the ISP address when the tunnel drops | Nothing enforces the kill switch for forwarded traffic | Stop the tunnel with a request in flight |
Tá abairt dá chuid féin tuillte ag an ró thrasnaithe. Cuireann próifíl VPN a bhrúnn bealach le haghaidh 172.17.0.0/16, nó le haghaidh 10.0.0.0/8 a bhfuil réimír do dhroichid ann trí sheans, ar an tollán fo-líonra na gcoimeádán a éileamh, agus rachaidh freagraí chuig seoltaí aistrithe sa treo mícheart nó imeoidh siad. Is gnách go mbíonn athuimhriú líonra Docker níos glaine ná eisceachtaí a charnadh.
Déan an clúdach follasach, ansin bris é d'aon ghnó
Seasann dhá dhearadh le linn athbhreithnithe. Roinn ainmspás choimeádán an VPN agus úsáideann gach ualach oibre clúdaithe tollán amháin le teorainn atosaigh amháin, rud atá simplí go dtí go dteastaíonn imeacht difriúil nó a chonair DNS féin ó sheirbhís amháin. Nó ród an líonra coimeádán chuig geata VPN ar an óstach: seoladh ar aghaidh cumasaithe, réimír an droichid dírithe ar an tollán, trácht fillte láimhseáilte go follasach. Ceannaíonn sin smacht in aghaidh an líonra agus cosnaíonn sé sraith rialacha ort le cothabháil thar uasghrádú an daemon agus an chliaint.
Cibé scéal é, is é an cás teipe an tástáil is tábhachtaí. Stop an tollán agus iarratas coimeádáin ar eitilt, agus féach cá dtéann an paicéad. Má thiteann sé ar ais chuig an gconair dhíreach, níor forchuireadh an clúdach riamh, mar go rialaíonn kill switch cliaint trácht an chliaint féin agus ní paicéid a sheoltar ar aghaidh ó dhroichead. Atosaigh an daemon agus an t-óstach ina dhiaidh sin agus deimhnigh an toradh an dara huair; sin an nóiméad a n-imíonn rialacha a scríobhtar de láimh.
Sula ndéarfaidh tú go bhfuil sé críochnaithe, deimhnigh ceithre rud: tá comhéadan an tolláin san ainmspás céanna leis an trácht, ritheadh tástáil an choimeádáin taobh istigh den fhíor-choimeádán, seiceáladh réiteach ainmneacha agus an dá fhine seoltaí, agus teipeann ar thástáil teipe an tolláin fós go dúnta. Ansin scríobh síos inneall an bhalla dóiteáin, leagan an chliaint agus úinéir gach rialach. Is é an taifead sin a choinníonn an chéad uasghrádú eile ó mheascán neamhdhoiciméadaithe de sheanbharúla a fhágáil ina áit.