OpenVPN ar GCE: cuir IP alias leis sula ndéanann tú push ar róid
Ní dhéanann ród a bhrúitear den VM next hop. Cuir an raon IP alias leis, déan é a mheaitseáil le pool an fhreastalaí agus cruthaigh ród fillte an VPC sula dtástáil tú cliaint.
Déanann cliant dhiailiú ar fhreastalaí OpenVPN ar VM Compute Engine, deir an fhuinneog stáit go bhfuil sé ceangailte, agus ní théann ping chuig óstr laistigh den VPC aon áit fós. Is é an t-instinct ná líne push eile a chur leis, agus ní réitíonn sé sin riamh é. Socraíonn Compute Engine cá dtéann paicéid óna thábla róid féin agus ó na seoltaí atá ag comhéadan VM i ndáiríre, mar sin is pool é pool tolláin nach bhfuil ag an VM nach seachadann aon duine chuige.
Lean an paicéad atá ag teip seachas an comhad cumraíochta, agus tagann na píosaí atá ar iarraidh chun solais in ord.
Tosaigh ag an bpaicéad a fhaigheann bás
Fágann an SYN an cliant, tagann sé isteach sa tollán agus sroicheann sé an VM mar phaicéad imshlithe chuig ceann scríbe laistigh den VPC. Díshlonnaíonn OpenVPN é agus déanann sé iarracht é a chur amach trí eth0, áit a gcuireann an fabric ceist amháin roimh gach rud eile: an bhfuil an seoladh cinn scríbe ag an gcás seo. Teipeann ar phool tolláin a gearradh as fo-líonra duine eile an cheist sin, agus caitear an paicéad sula gcomhairlítear aon ród nó riail balla dóiteáin.
Mar sin tá dhá riachtanas ar leithligh ag an treo ón gcliant go dtí an VPC, agus ní treoir push ceachtar acu. Teastaíonn raon alias ón VM a chlúdaíonn pool an tolláin, agus is é sin a dhéanann úinéir dlisteanach de na seoltaí sin í. Teastaíonn ród ón VPC a ainmníonn an VM mar next hop do gach réimír chosanta. Má chailleann tú ceann amháin faigheann an paicéad bás in áit eile, agus feiceann an cliant an chiúnas céanna.
Léigh an teip san ord sin, mar ó thaobh an chliaint breathnaíonn an dá choinníoll go hiomlán mar an gcéanna. Is é comhartha fadhb topolaíochta tollán a deir go bhfuil sé ceangailte agus nach dtugann aon rud freagra, ní comhartha cipher dona é.
An bhfuil pool an tolláin ag an gcás
Tabhair raon tánaisteach don VM laistigh dá fho-líonra féin, ansin déan OpenVPN a sheoladh seoltaí go díreach ón raon sin. Ar chás a bhfuil a phríomhsheoladh 10.156.0.10/20, coinníonn alias /28 an pool scartha ó na seoltaí atá ag cásanna eile cheana:
gcloud compute instances network-interfaces update openvpn-vm \
--zone=europe-west1-b \
--aliases=eth0:10.156.1.0/28Ansin caithfidh an treoir server an bloc céanna a chur síos. Tagann a chéad seoladh chun bheith ina gateway an tolláin, agus dáiltear na seoltaí atá fágtha ar chliaint. Déanann dhá uimhir cur síos ar aon bhloc amháin anseo, líonra agus netmask, agus sin an chomhréir phool a bhfuil OpenVPN fós ag súil léi.
server 10.156.1.0 255.255.255.240Deimhnigh gur tháinig an seoladh ar an gcomhéadan i ndáiríre agus ní amháin i gcumraíocht OpenVPN. Seolann an fabric an rud a thuairiscíonn an NIC, ní an rud a chreideann an daemon. Socraíonn aon ordú amháin é:
ip -4 addr show dev eth0Tagann seoladh tánaisteach nach sroicheann eth0 riamh, nó pool a fhorluíonn le fo-líonra eile, chun solais níos déanaí mar chaillteanais eatramhacha seachas mar earráid tosaithe. Tosaíonn an daemon, ceanglaíonn cliaint, agus ní bhíonn ach roinnt ceann scríbe mícheart. Coinnigh an raon alias beag ionas go mbeadh an pool éasca le haithint i dtábla róid. Ná gearr riamh as fo-líonra a úsáideann cás eile cheana é.
Tabhair next hop don trácht fillte
Seoltar freagra ó óstr sa VPC chuig seoladh cliaint i bpool an tolláin, nach mbaineann le haon fho-líonra atá ar eolas ag an VPC. Gan ród don phool sin, stopann an freagra ag an gcéad hop nach bhfuil aon mheaitseáil aige, agus b'fhéidir gur éirigh leis an iarraidh ag an taobh thall.
gcloud compute routes create openvpn-return \
--network=prod-vpc \
--destination-range=192.168.127.0/24 \
--next-hop-instance=openvpn-vm \
--next-hop-instance-zone=europe-west1-b \
--priority=800Tá an ród céanna ag teastáil do gach réimír a chónaíonn taobh thiar de chliant seachas laistigh den VPC. Teastaíonn iontráil iroute freisin ó na réimírí sin i gcomhad ccd an chliaint sin. Is cuntasaíocht ar thaobh an fhreastalaí an iontráil sin: insíonn sé don fhreastalaí cé an cliant a shealbhaíonn an réimír, agus ní shuiteálann sé aon rud ar an gcliant féin.
Coinnigh an liosta push do thaobh cliant an chomhrá, mar ní chuireann sé ach róid leis an meaisín a cheanglaíonn. Is dhá leath den chonair chéanna iad líne push d'fho-líonra VPC agus ród VPC ar ais chuig an pool, agus cruthaíonn gach leath ina haonar tollán a iompraíonn iarrataí ach ní freagraí.
Ballai dóiteáin, seoladh ar aghaidh agus na hops eatarthu
Déanann balla dóiteáin an VPC an paicéad díshlonnaithe a mheas, mar sin caithfidh riail ingress an pool tolláin agus aon réimír suímh a shroicheann an VM ar an mbealach sin a ligean isteach. Teipeann ar dhearcadh default-deny go ciúin anseo: caitear an paicéad tar éis díshlonnaithe, agus taispeánann log OpenVPN seisiún sláintiúil.
Ar aon óstr Linux a sheolann ar aghaidh seachas a chríochnú, seiceáil go bhfuil net.ipv4.ip_forward cumasaithe. Baineann an riail úinéireachta leis ansin freisin: caitheann bosca a sheolann ar aghaidh d'fho-líonra nach bhfuil aige an paicéad díreach mar a dhéanfadh an VM. Léigh an luach sula gcuireann tú an milleán ar an tollán.
Nuair a theipeann ar aon réimír amháin
Is é an teip pháirteach an cás is éasca le léamh, mar tá gach rud eile ar an gconair cruthaithe cheana. Tosaigh leis an liosta ród agus léigh raon an chinn scríbe agus next hop na hiontrála ar cheart an réimír a chlúdach, ansin léigh cur síos an cháis agus cuir a raon alias i gcomparáid leis an pool a dháileann an freastalaí.
gcloud compute routes list --filter=destination-range~10.164.0.0
gcloud compute instances describe openvpn-vm --format=get(networkInterfaces[0].aliasIpRanges)Taispeánann ród atá ar iarraidh é féin mar easpa next hop don réimír, agus taispeánann alias atá ar iarraidh é féin mar phaicéad a chaitear ag an gcomhéadan; ón gcliant breathnaíonn an dá rud cosúil lena chéile agus sna dhá aschur sin tá siad go hiomlán difriúil. Má tá an dá rud ann, is é an t-amhrastach atá fágtha iroute ccd an chliaint a éilíonn an réimír.
Scríobh na ceithre luach in aice leis an tollán: raon alias, pool an fhreastalaí, réimírí brúite, róid VPC. Bristear gach seoladh pool le alias sean, bristear treo amháin le ród sean, folaítear an réimír ón gcliant le push atá ar iarraidh, agus seoltar an réimír chuig an peer mícheart le iroute mícheart. Teastaíonn na ceithre cinn in aon áit amháin ón gcéad duine eile a chuireann fo-líonra leis, agus tá an nóta níos saoire ná an tráthnóna.