Dechreuwch y VPN y tu mewn i’w ofod enw ei hun, rhedwch un rhaglen yno, ac mae traffig yn dal i adael drwy lwybr y gwesteiwr. Nid oes dim wedi torri: dim ond prosesau sy’n mynd i mewn iddo y mae’r gofod enw yn eu llywodraethu, a daeth y gollyngiad o un na chafodd erioed fynd i mewn. Rhyngwynebau, cyfeiriadau, llwybrau, rheolau mur gwarchod a socedau yw’r hyn y mae’r gofod enw yn berchen arno. Nid felly ffeiliau, cyfrifon a gwasanaethau sy’n rhedeg eisoes, a dyna o ble y daw’r mwyafrif o’r syrpreisys.

Beth mae’r gofod enw yn berchen arno, a lle mae’r soced yn cael ei eni

Symudwch ryngwyneb i ofod enw ac mae’r gwesteiwr yn ei golli; adeiladwch dwnnel y tu mewn ac ni all y gwesteiwr ei weld. Dyna’r mecanwaith y tu ôl i VPN sydd wedi’i gwmpasu i ofod enw: mae’r ddyfais a’r llwybrau sy’n pwyntio ati yn byw mewn cyd-destun na all ond y prosesau a ddewiswyd ei gyrraedd. Mae’r gwesteiwr yn cadw ei lwybr rhagosodedig, felly mae popeth y tu allan yn parhau’n ddianaf.

Mae cyd-destun creu yr un mor bwysig â’r lleoliad presennol ar gyfer WireGuard: mae’r soced UDP yn cael ei rwymo yn y gofod enw lle crëwyd y rhyngwyneb, hyd yn oed ar ôl i’r ddyfais symud i rywle arall. Pa dabl llwybro y mae’r pecynnau amgryptio yn ei ddilyn sy’n dibynnu ar y man geni hwnnw. Pan fydd y soced yn aros mewn cyd-destun heb lwybr at y cymar, mae’r rhyngwyneb yn chwilio ac ni fydd yr ysgwyd llaw byth yn gadael. Gwiriwch ei fan geni, yna ei leoliad presennol.

Beth nad yw gofod enw yn ei ynysu

Nid oes dim yma yn gwahanu systemau ffeilio, cyfrifon na chyfrinachau, ac nid oes yr un o’r ffiniau hynny’n ymddangos am eich bod wedi creu gofod enw. Mae ffurfweddiad y datryswr yn ffeil, felly gall proses y tu mewn ddarllen gosodiad sy’n pwyntio at ddatryswr y gwesteiwr o hyd a danfon ei ymholiad allan drwy ba bynnag lwybr y mae hynny’n ei olygu. Mae rhaglen sy’n trosglwyddo’r cais i frocer neu wasanaeth system sy’n rhedeg eisoes yn cynnwys proses mewn cyd-destun hollol wahanol. Mae’r ddau yn geisiadau na chafodd y ffin erioed ei bwriadu i’w hateb.

Y datrysiad yw ffeil fesul gofod enw yn /etc/netns/<name>/resolv.conf, neu bind mount o ffeil barod, wedi’i chyfeirio at ddatryswr y gellir ei gyrraedd o’r tu mewn. Nid yw golygu /etc/resolv.conf ar y gwesteiwr yn newid dim y mae’r gofod enw yn ei weld.

Lleoli prosesau yw’r rheolaeth

Mae’r ynysiad a gewch yn union yn ynysiad y prosesau a gewch chi eu cychwyn y tu mewn. Mae plisgyn a gychwynnir drwy gymorth exec y gofod enw, a phopeth y mae’n ei greu, yn aros i mewn; nid yw rhaglen ben-desg a lansiwyd o sesiwn y gwesteiwr yn gwneud hynny. Crëwch y cyd-destun, symudwch y ddyfais, yna profwch y ddwy ochr:

ip netns add vpn1
ip link set wg0 netns vpn1
ip netns exec vpn1 wg show
wg show

Darllenwch y wg show cyntaf o du mewn i’r gofod enw a’r ail oddi ar y gwesteiwr, a disgwyliwch mai dim ond un ohonynt sy’n rhestru’r cymar. Os yw’r ddau yn gwneud hynny, ni symudodd y ddyfais erioed; os nad oes yr un yn gwneud, aeth i rywle arall. Pan mai rheolwr gwasanaeth yw’r lansiwr, y ffeil uned yw’r hyn i’w olygu, nid y llwybr byr ar y bwrdd gwaith. Mae uned heb y gosodiad gofod enw yn cychwyn y daemon yng nghyd-destun y gwesteiwr ac yn dadwneud y dyluniad yn dawel.

Profwch o gyd-destun y rhaglen

Rhedwch y gwiriad gyda’r un deuaidd a’r un defnyddiwr ag y mae’r rhaglen yn eu defnyddio, y tu mewn i’r gofod enw. Cynhwyswch DNS a’r ddwy deulu cyfeiriadau, oherwydd llwybr IPv6 na wnaethoch chi feddwl amdano yw ffordd allan gyffredin. Nid yw prawf o’ch plisgyn eich hun yn profi ond bod eich plisgyn chi wedi’i ynysu.

Yna rhedwch yr un gwiriad ar y gwesteiwr a chadarnhewch fod yr atebion yn wahanol: cyfeiriad twnnel a’r allanfa a fwriadwyd y tu mewn, llwybr y gwesteiwr ac allanfa’r swyddfa y tu allan, a’r datryswr wrth ei enw. Enwch ofodau enw ar ôl y defnydd, nid ar ôl y protocol, fel na all sgript glanhau ddrysu dau ohonynt.

Anfon ymlaen, polisi methiant a glanhau

Ar gyfer porth, trowch anfon ymlaen ymlaen yn fwriadol a phenderfynwch beth ddylai ddigwydd pan fydd y twnnel yn cwympo. Nid yw gofod enw yn blocio llwybrau a osodwch y tu mewn iddo, felly bydd llwybr wrth gefn at y gwesteiwr yn cael ei ddefnyddio os crëwch un. Mae hynny’n benderfyniad polisi, a dylid ei ysgrifennu cyn i ddiffyg brofi hynny.

Cofnodwch enwau’r gofodau enw, y rhyngwynebau a phwy sy’n berchen ar y ffurfweddiad, fel mai dim ond yr hyn a grëwyd gan y defnydd y mae’r glanhau yn ei dynnu. Mae ailosod rhwydweithio’r gwesteiwr yn ystod adferiad yn troi glanhau yn ddiffyg. network_namespaces(7) yn dudalen fer ac yn werth ei darllen cyn i chi gynllunio’r llwybr hwnnw.

Erthyglau cysylltiedig