Mae dau eicon cysylltiad gwyrdd yn edrych fel cymhariaeth ac fel arfer maen nhw'n gyd-ddigwyddiad. Os gallai'r cais prawf fod wedi defnyddio'r naill dwnnel neu'r llall, mae'r canlyniad yn disgrifio un ohonyn nhw ar ei orau ac yn disgrifio'r un ohonyn nhw ar ei waethaf. Rhowch gyd-destun rhwydwaith, cyrchfan a fwriedir a disgwyliad a ysgrifennwyd cyn i'r prawf redeg i bob arsylwi. Ar flwch Linux sy'n cael ei reoli gennych chi'ch hun, gofodau enw rhwydwaith ag enw yw'r ffordd rataf o brynu'r gwahanu hwnnw.

Nid yw dau olau gwyrdd yn gymhariaeth

Mae gofod enw yn gwahanu tablau llwybro, rhyngwynebau a chyflwr y pentwr rhwydwaith, felly ni all cais a gychwynnodd y tu mewn i un fenthyca twnnel y llall yn dawel. Yr hyn nad yw'n ei wahanu yw prosesydd, cyswllt ffisegol neu'r daemon datryswr sy'n rhedeg ar y gwesteiwr. Yn y bwlch olaf hwnnw y mae'r rhan fwyaf o'r profion hyn yn methu heb i neb sylwi. Mae chwiliad sy'n gadael y gofod enw ac yn gofyn i ddatryswr y gwesteiwr yn dychwelyd ateb heb unrhyw berthynas â'r twnnel sy'n cael ei brofi.

Mae'r weithdrefn hon yn tybio dau ofod enw prawf sydd eisoes wedi'u darparu a'u cymeradwyo, gyda chysylltedd allanol gweithredol a chleientiaid â chefnogaeth. Nid yw'n creu dim, yn cofrestru dim ac yn disodli unrhyw ffurfweddiad. Peiriannau rhithwir ar wahân yw'r dewis gonest pan fydd cleient angen sesiwn bwrdd gwaith lawn neu'n gwrthod rhedeg y tu allan i un.

Trwsiwch y disgwyliad cyn y rhediad cyntaf

Penderfynwch fesul cyd-destun sut mae llwyddiant yn edrych: y datryswr, enw'r gwasanaeth, y cyfeiriad a ddisgwylir a'r ymddygiad sy'n ofynnol pan fydd y twnnel yn cwympo. Cadwch y gwerthoedd a gynlluniwyd yn eu colofn eu hunain, oherwydd mae cofnod sy'n cymysgu cynllun ac arsylwi yn ffuglen â stamp amser. Y rhestr wirio isod yw'r siâp sydd ei angen ar y cofnod, a rhaid i bob rhes fod yn llenwadwy cyn y cysylltiad cyntaf.

TunnelOwnerClient interface inside the namespaceProof commandRequired on disconnect
vpn-athe identity that owns profile A, recorded by nameits own tun device, never the host'sip -n vpn-a -4 route get 10.55.10.20traffic stops; no host-side fallback
vpn-ba separate owner, even when both run on one boxits own tun device in its own namespaceip -n vpn-b -4 route get 10.55.20.20verified separately, never inferred from A

Mae angen llinell ei hun ar wifrau'r datryswr yn y cofnod hwnnw, oherwydd dyma'r maes mwyaf tebygol o ddweud celwydd. Mae ffeiliau sy'n perthyn i'r gofod enw, fel /etc/netns/vpn-a/resolv.conf yn ymddangos ar eu llwybrau arferol pan fydd gorchymyn yn rhedeg y tu mewn i'r gofod enw, fel y mae cyfeirlyfr iproute2 ar ofodau enw yn ei ddisgrifio, ond gall ffurfweddiad newid gwasanaeth enw ac unrhyw ddatryswr lleol y mae'n ei lansio dynnu chwiliad yn ôl i'r gwesteiwr o hyd.

Un twnnel ar y tro, y llall wedi'i ddatgysylltu

Cysylltwch A drwy ei berchennog presennol tra bo B yn parhau i lawr, yna archwiliwch bolisi, llwybrau a'r llwybr a ddewiswyd o'r cyd-destun gweinyddu. Mae tair o'r gorchmynion isod yn darllen cyflwr; dim ond yr olaf yn cysylltu â gwasanaeth enw, ac nid oes yr un ohonyn nhw'n anfon cais cymhwysiad.

sudo ip -n vpn-a -4 rule show
sudo ip -n vpn-a -4 route show table all
sudo ip -n vpn-a -4 route get 10.55.10.20
sudo ip netns exec vpn-a getent ahostsv4 svc-a.lab.internal

Mae chwiliad llwybr yn ateb cwestiwn damcaniaethol am gyrchfan, felly ni all ddangos bod y gwasanaeth yn derbyn traffig. Cadwch y ddau fath hynny o dystiolaeth mewn colofnau ar wahân, oherwydd mae llwybr iach wrth ymyl cysylltiad a wrthodwyd yn ganlyniad gwirioneddol a chyffredin. Yna anfonwch un cais diniwed awdurdodedig gyda'r cymhwysiad go iawn, wedi'i lansio yng nghyd-destun A fel ei ddefnyddiwr arferol heb fraint gyda dilysu tystysgrifau a dilysu cymhwysiad yn gyfan, a chofnodwch y canlyniad ynghyd â'r cyfeiriad ffynhonnell a welodd y gwasanaeth. Datgysylltwch A drwy ei berchennog ac ailadroddwch y llinell sylfaen gyfan ar gyfer B, gan nodi unrhyw newid ffurfweddiad a wnewch, neu bydd y ddwy linell sylfaen yn peidio â bod yn gymharol.

Y ddau i fyny, yna un i lawr ar y tro

Y cyflwr sefydlog yw'r rhan hawdd. Gyda'r ddau dwnnel wedi'u cysylltu, ailadroddwch chwiliad a chais cymhwysiad pob cyd-destun, yna torrwch un twnnel a gwirio'r llall. Ailgysylltwch yn y drefn wrthdro pan mai'r drefn gysylltu ei hun yw'r cwestiwn.

sudo ip netns exec vpn-a tcpdump -ni any port 443 -c 5
sudo ip netns exec vpn-b getent ahostsv4 svc-b.lab.internal
sudo ip -n vpn-b -4 route get 10.55.20.20

Mae'r dal yn setlo dadleuon na all canlyniad cymhwysiad eu setlo: mae'n dangos a adawodd y cais drwy'r rhyngwyneb roeddech yn ei ddisgwyl, neu drwy rywbeth hollol wahanol. Ar gyfer pob trawsnewidiad cofnodwch weithred y perchennog, y stamp amser, canlyniad y llwybr, canlyniad yr enw a chanlyniad y cymhwysiad. Yna gwiriwch y gofyniad cau'n ddiogel y tu mewn i'r gofod enw yr effeithiwyd arno, oherwydd nid yw ynysu yn switsh lladd. Mae gofod enw yn cadw dau dwnnel ar wahân; nid yw'n atal y naill na'r llall rhag cario traffig pan fydd ei broffil yn dweud bod traffig yn gorfod stopio.

Beth all y cofnod hwn ei honni a beth na all

Mae pas yn profi'r arsylwadau hynny ar gyfer y trefniant hwn, ar y gwesteiwr hwn, ar yr adeg honno. Nid yw'n dweud dim am ddau gleient yn rhannu un tabl llwybro bwrdd gwaith, nac am drwybyniad tra bo'r ddau dwnnel yn cario llwyth. Cwestiynau ar wahân yw'r rheini gyda phrofion ar wahân, ac nid yw cymhariaeth yn well na'r cyd-destun sydd ynghlwm wrth bob rhes.

Cadwch y methiannau yn y cofnod wrth ymyl y llwyddiannau, wedi'u labelu â pha dwnnel oedd i fyny ar y pryd. Mae tudalen lân sy'n cuddio'r cyflwr ar adeg y mesur yn waeth nag un hyll sy'n ei ddangos. Y cyd-destun, nid y sgôr, sy'n gwneud y cofnod yn ailddefnyddiadwy yn ddiweddarach.

Gellir cymharu dau dwnnel ar un blwch yn onest, ond dim ond o fewn cymaint o gyd-destunau ag y gwnaethoch chi eu rheoli mewn gwirionedd. Mae unrhyw beth y tu hwnt i hynny yn ddymuniad ag eicon gwyrdd wrth ei ymyl.

Erthyglau cysylltiedig