Samhlaigh óstach Linux a chríochnaíonn VPN agus a ritheann coimeádán ar líonra macvlan ag an am céanna. Is é 192.168.60.0/24 an LAN, tá 192.168.60.210 ag an gcoimeádán, agus tagann cliaint VPN ó 10.95.0.0/24. Sroicheann an cliant an tseirbhís, ní thagann an freagra ar ais riamh, agus breathnaíonn gach riail balla dóiteáin ar an óstach i gceart. Cruthaíonn dhá shrian ar leith an tsíomptóm sin, agus má dheisíonn tú ceann amháin fanann an ceann eile ina áit.

Dhá shrian, síomptóm amháin

Is é an chéad srian ná leithlisiú: ní ligeann tiománaí macvlan Docker do choimeádán labhairt lena óstach féin tríd an gcomhéadan tuismitheora. Níl aon chosán ag an trácht idir stoc an óstaigh agus an coimeádán, cibé conas a scríobhtar na bealaí ar an óstach.

Is é an dara srian ná an cosán fillte. Is é ródaire an LAN gnáthgheata an choimeádáin de ghnáth, mar sin téann freagra a sheoltar chuig cliant VPN amach tríd an ródaire sin. Mura bhfuil bealach ar ais chuig an linn VPN ag an ródaire, scaoiltear an freagra áit éigin sa lár.

Breathnaíonn an dá chliseadh mar an gcéanna ó thaobh an chliaint: iarraidh a thagann agus freagra nach dtagann riamh. Teastaíonn deisiúcháin dhifriúla uathu, agus féadann riail masquerade leathan a cheilt cé acu atá briste fós. Sin an fáth gurb é an chéad tástáil ná gabháil ar thaobh an choimeádáin seachas athrú balla dóiteáin eile. Mura dtagann an iarraidh ansin riamh, is é an srian leithlisithe atá i gceist.

Tóg an shim ar thaobh an óstaigh, go cúng

Tugann dara comhéadan macvlan ar an óstach, atá ceangailte leis an tuismitheoir céanna i mód droichid, aitheantas féin do stoc an óstaigh ar an deighleog LAN sin. Cuir seoladh in áirithe dó lasmuigh de linn DHCP agus lasmuigh de raon an choimeádáin, agus seol an coimeádán amháin tríd.

ip link add macvlan-vpn link eth0 type macvlan mode bridge
ip address add 192.168.60.250/32 dev macvlan-vpn
ip link set macvlan-vpn up
ip route add 192.168.60.210/32 dev macvlan-vpn src 192.168.60.250

Cruthaíonn an chéad ordú an comhéadan i mód droichid, arb é an réamhshocrú doiciméadaithe don tiománaí seo é agus an mód atá uait do thrácht idir óstach agus coimeádán. Sannann an dara ceann /32 ionas nach n-imbhuailfidh an seoladh le réimír an LAN, agus seolann an ceathrú ceann seoladh an choimeádáin amháin tríd an shim.

Ná atreoraigh an LAN iomlán tríd an gcomhéadan nua. Fanann an gnáthbhealach ceangailte mar atá sé, agus tá bealach an óstaigh cúng d’aon ghnó ionas go bhfaighidh coimeádán amháin cosán gan iompar an chuid eile den deighleog a athrú. Ba dhearadh eile é bealach réamhshocraithe a dhíríonn ar an shim, le hiarmhairtí eile. Coinnigh go sonrach é agus fanann an ga damáiste beag.

Athraíonn na horduithe seo socruithe líonra ar óstach atá ag rith. Ar fhearas nó ar ardán bainistithe, úsáid meicníocht chumraíochta thacaithe an ardáin sin, mar b’fhéidir nach maireann athrú idirghníomhach i sliogán root tar éis uasghrádaithe.

Cinneadh conas a chaomhnaítear an fhoinse

Agus an shim ina háit, is féidir leis an gcoimeádán an t-óstach a shroicheadh, agus is é an cheist ansin cén seoladh foinse a iompraíonn an freagra. Is é caomhnú fhoinse bhunaidh an VPN an múnla is glaine: feiceann an coimeádán fíor-sheoladh an chliaint, agus is féidir le logaí agus rialacha rochtana na seirbhíse é a úsáid.

Chun go n-oibreodh sé sin, caithfidh cumraíocht líonra an choimeádáin trácht do 10.95.0.0/24 a sheoladh chuig 192.168.60.250 mar a gheata don chosán seo. Is socrú bealaigh nó geata tacaithe é sin laistigh de chumraíocht an choimeádáin féin, ní cleas ar thaobh an óstaigh. Deimhnigh é ón taobh istigh den choimeádán seachas glacadh leis go bhfuil an socrú i bhfeidhm. Leanfaidh geata réamhshocraithe a dhíríonn fós ar ródaire an LAN ag seoladh freagraí isteach sa pholl céanna.

Má cheileann an dearadh ceadaithe na foinsí VPN ina ionad sin, cuir teorainn chúng leis an aistriúchán: an fhíor-linn VPN, an shim mar chomhéadan amach, agus an coimeádán agus an tseirbhís ar leith.

iptables -t nat -A POSTROUTING -s 10.95.0.0/24 -o macvlan-vpn -j SNAT --to-source 192.168.60.250

Meaitseáil an shim mar chomhéadan amach, ní an tollán. Ní mheaitseálfaidh riail a ainmníonn an tollán mar chomhéadan amach le paicéad atá ag dul i dtreo an choimeádáin, agus sin an botún a bhíonn sa chineál seo socraithe de ghnáth. Coinnigh an riail chomh cúng leis an abairt thuas agus déan athbhreithniú uirthi nuair a athraíonn an linn.

Fíoraigh ón gcliaint, ní ón óstach

Cruthaíonn iarraidh ón óstach féin, atá ceangailte le seoladh an shim, go bhfuil an shim in ann an coimeádán a shroicheadh. Ní chruthaíonn sé gur féidir leis an gcoimeádán trácht a chur ar ais chuig foinse chaomhnaithe 10.95.0.x, mar is é seoladh an shim féin seoladh na foinse sa tástáil sin.

curl -sS --interface 192.168.60.250 -o /dev/null -w '%{http_code}\n' http://192.168.60.210:8080/health
sudo tcpdump -ni macvlan-vpn host 192.168.60.210

Tástálann an chéad ordú an chuid ón óstach go dtí an coimeádán, agus taispeánann an dara ceann cad a théann tríd an shim i ndáiríre agus cliant VPN fíor ag déanamh na hiarrata. Féach ar sheoladh na foinse ar an mbealach isteach agus an bhfuil freagra le feiceáil leis an sreabhadh céanna.

Caithfidh seoladh ar aghaidh a bheith cumasaithe ar an óstach, agus teastaíonn cead ó chosán an tseolta ar aghaidh don linn VPN chuig an shim ar phort na seirbhíse móide freagraí bunaithe. Ní údaraíonn riail INPUT ar an óstach trácht a sheoltar ar aghaidh, agus is cúis choitianta é sin go scaoiltear an paicéad tar éis don ródú breathnú i gceart.

Rith an fhíor-fheidhmchlár le fíordheimhniúcháin fhíora, ansin seiceáil go ndiúltaíonn dara seirbhís, nach bhfuil gaolmhar, ar an gcoimeádán céanna duit fós. Más é an t-aon bhealach chun é a chur ag obair ná gach riail seolta ar aghaidh a oscailt, níl an dearadh críochnaithe. Tabhair faoi deara freisin cén seoladh foinse a thaifead an tseirbhís, mar sin a úsáidfidh a rialacha rochtana féin as seo amach.

Ailt ghaolmhara