Freagraíonn coimeádáin ar LAN na hoifige, ansin stopann siad ag freagairt an nóiméad a nascann VPN na cuideachta. Níor athraigh aon rud sa choimeádán: gan atosú, gan nuashonrú íomhá, gan eagarthóireacht chumraíochta. Is é a d'athraigh tábla ródála an ósta, áit a gclúdaíonn ród a chuir an tollán leis an seoladh a thug Docker anois. Sula n-eagraíonn tú fo-líonra nó sula n-iarrfaidh tú eisiamh VPN, cuir an dá phlean seoltaí taobh le taobh, mar caithfidh na deisiúcháin méideanna an-difriúla ama.

Léigh an ród sula n-athraíonn tú an chumraíocht

Tosaigh leis an líonra a thóg Docker i ndáiríre. Is é bloc IPAM an plean seoltaí, agus is é an fo-líonra an líne a bhfuil tábhacht léi:

docker network inspect project_default --format '{{json .IPAM.Config}}'
# [{"Subnet":"172.18.0.0/16","Gateway":"172.18.0.1"}]

Leithdháileann Compose /16 ar gach tionscadal nua de réir réamhshocraithe, mar sin is féidir le dhá sheirbhís suí laistigh de raon de 65,536 seoladh. Is é an leithead sin an chúis a bhfuil forluí coitianta: tá /16 a roghnaítear go randamach mór go leor chun suíomh a shroicheann tú tríd an tollán a shlogadh, agus ní thugann aon duine faoi deara é go dtí go n-ardaíonn an tollán.

Ansin déan comparáid idir roghnú ród do sheoladh coimeádáin amháin, uair amháin leis an tollán síos agus uair amháin leis suas:

ip route get 172.18.0.7
# 172.18.0.7 dev br-3f2a9c src 172.18.0.1

Tugann dhá chruth freagraí chuig áiteanna difriúla. Má ainmníonn an t-aschur tun0, wg0 nó gléas tolláin eile, tá réimír VPN chomh sonrach ar a laghad leis an ród droichid agus ní shroicheann an paicéad an coimeádán riamh. Má ainmníonn sé an droichead fós, is féidir leis an óstach an coimeádán a shroicheadh, agus is é do locht ná scagadh, DNS nó cosán fillte a theipeann i dtreo amháin.

Cén fáth go bhfuil sé éasca imbhuailtí /16 a bhualadh

Tarraingíonn Docker líonraí droichid ó na linn phribháideacha, agus tagann an linn réamhshocraithe as an mbloc 172.16.0.0/12 i slisní /16. Is minic a úsáideann líonraí corparáideacha an spás príobháideach céanna, agus brúnn VPN rochtana cianda na réimíreanna sin chuig gach cliant a nascann. Nuair a chreideann an dá thaobh go bhfuil 172.18.0.0/16 acu, coinníonn aon tábla ródála dhá mhaíomh contrártha.

Is é fad na réimíre a shocraíonn an buaiteoir, ní ord na ród. Ní sháraíonn tollán a bhrúnn 10.0.0.0/8 ród droichid 172.18.0.0/16, mar tá /8 níos lú sonrach. Sáraíonn tollán a bhrúnn 172.18.0.0/16, nó 172.18.5.0/24 laistigh de, é. Sin an fáth a n-oibríonn ríomhaire glúine amháin ar líonra na hoifige agus a theipeann sé ar Wi-Fi óstáin leis an VPN céanna: faigheann an cliant réimíreanna difriúla.

Rialaíonn an tábla céanna an treo eile. Seolann coimeádán a theastaíonn óstach inmheánach ag 10.8.4.20 an paicéad chuig a gheata droichid, agus ansin ródaíonn an t-óstach isteach sa tollán é. Oibríonn an cosán sin de ghnáth mar déanann an t-óstach an NAT, ach teipeann sé nuair nach nglacann an taobh corparáideach ach le seoladh VPN an ríomhaire ghlúine, nó nuair a scaoileann scagadh cosán droim ar ais an freagra neamhshiméadrach.

Déan comparáid idir na trí dheisiú

Níl ach trí bhealach amach ann, agus difríonn siad i dtaobh cé a chaithfidh iad a cheadú agus cad a bhriseann agus ceann á chur i bhfeidhm agat.

RepairWho owns itWhat it costs
Renumber the container networkYouRecreates the network, restarts services, invalidates literal addresses in configs and scripts
Exclude your range from the tunnelNetwork teamChanges what every laptop sees, needs a change request and a client profile update
Reach the service through a published portYou and the clientOne port only, no direct container-to-container routing across the tunnel

Is é athuimhriú an t-aon deisiú is féidir leat a chríochnú gan ticéad, agus sin an fáth a stopann formhór na scríbhinní ansin. Tá sé saor ar thionscadal óg agus daor a luaithe a dhíríonn uirlis imirce nó teaghrán nasctha stóráilte ar sheoladh litriúil. Comhair na tagairtí sin sula n-eagraíonn tú YAML, ní ina dhiaidh.

Is é eisiamh ón tollán an freagra is glaine nuair a shuíonn an forluí i raon a shealbhaíonn do chuideachta i ndáiríre. Tá sé ar an gceann is moille freisin, agus tá sé gan úsáid do chonraitheoir nach féidir leis próifíl an chliaint a athrú. Seachnaíonn port foilsithe nó seachfhreastalaí beag droim ar ais an argóint: labhraíonn an cliant le seoladh a ródaíonn an tollán i gceart cheana féin, agus ní gá ach an port sin a bheith inrochtana.

Pionnáil raon d'aon ghnó

Do thionscadal amháin, dearbhaigh an fo-líonra sa chomhad compose ionas go stopfaidh an tionscadal ag tarraingt ón linn roinnte:

networks:
  default:
    ipam:
      config:
        - subnet: 10.201.7.0/24

Tóg an raon sin ó chlár a choinníonn do fhoireann, ní ó shampla a fuaireadh agus tú ag cuardach. Seiceáil é i gcoinne na réimíreanna a bhrúnn an VPN, na LANanna baile a n-oibríonn daoine astu, agus na líonraí coimeádán eile ar an óstach céanna. Ansin pleanáil an t-athchruthú, mar coinníonn líonra atá ann cheana a shean-fho-líonra: docker compose down, ansin up -d. docker network rm diúltaíonn agus críochphointí ceangailte, agus caithfidh aon ipv4_address iontráil sa chomhad titim laistigh den raon nua.

Do líonraí a chruthaíonn Docker é féin, socráigh linn daemon i /etc/docker/daemon.json:

{
  "default-address-pools": [
    { "base": "10.201.0.0/16", "size": 24 },
    { "base": "10.202.0.0/16", "size": 24 }
  ]
}

Baineann an linn le líonraí a chruthaítear tar éis an daemon a atosú, agus coinníonn droichid atá ann cheana a seoltaí. Tá sin áisiúil agus éasca le dearmad, mar sin caith le seantionscadal mar rud atá fós ag forluí go dtí go n-athchruthaíonn duine éigin a líonra. Déanann doiciméadú Docker ar líonrú an innill cur síos ar na rialacha leithdháilte má theastaíonn uait an linn a chosaint in athbhreithniú.

Teipeann droichead Linux agus Docker Desktop ar bhealaí difriúla

Ar óstach Linux, suíonn coimeádáin ar dhroichid i spás ainmneacha an ósta. Socraíonn aon tábla gach rud, mar sin is é an comparáid thuas an scéal iomlán: léigh ród an droichid, léigh ród an tolláin, agus féach cé a bhaineann le seoladh coimeádáin fíor.

Cuireann Docker Desktop coimeádáin taobh thiar de VM a bhfuil a NAT féin aige. Níl aon ród ag an óstach chuig seoladh an choimeádáin ar chor ar bith; sroicheann sé an tseirbhís trí phort foilsithe, atá ceangailte go hiondúil le 127.0.0.1. Mar sin is féidir le cliant VPN an tseirbhís a bhriseadh gan aon fhorluí fo-líonra, cibé acu trí ród a shuiteáil do raon inmheánach an VM nó trí thrácht loopback a bhac nuair atá an tollán nasctha. Má thuairiscíonn ip route get ar an óstach nach bhfuil aon ród ann do sheoladh an choimeádáin, tá sin ag súil leis agus ní hé an locht é.

Is é an iarmhairt phraiticiúil ná cá bhféachann tú ar dtús. Ar Linux, tosaigh ag an tábla ródála. Ar Desktop, tosaigh ag an port foilsithe agus ag rialacha balla dóiteáin an chliaint VPN, ansin seiceáil an dtagann fo-líonra inmheánach an VM salach ar rud éigin a bhrúnn an tollán.

Fíoraigh leis an tollán suas

Athnasc an VPN faoi dhó sula ndeir tú go bhfuil sé deisithe, mar is féidir le próifíl a bhrúnn róid ar nascadh agus a tharraingíonn siar iad ar dhínascadh breathnú i gceart tar éis an chéad iarracht. Ansin rith na seiceálacha a ritheann an cliant i ndáiríre:

  1. ip route get ón óstach, ag úsáid fíorseoladh an choimeádáin.
  2. Iarratas ó choimeádán eile, chun a chruthú go bhfuil an tseirbhís féin sláintiúil.
  3. curl -sv http://127.0.0.1:8080/ ón gcliant leis an tollán suas, ansin traceroute -n chuig seoladh an choimeádáin ó mheaisín ar an LAN.
  4. sysctl net.ipv4.conf.all.rp_filter má shroicheann an t-iarratas an t-óstach ach má imíonn an freagra.

Ar deireadh, scríobh an raon roghnaithe isteach sa chlár céanna a d'úsáid tú chun é a roghnú, leis an dáta agus an tionscadal ar leis é. Tiocfaidh an chéad fhorluí eile ó thionscadal nár dhoiciméadaigh aon duine, agus is é an t-aon chosaint ná gur cuireadh an raon in áirithe d'aon ghnó seachas é a tharraingt go randamach.

Ailt ghaolmhara