Gall dau labordy fodelu’r un topoleg VPN a methu mewn ffyrdd hollol wahanol: mae un yn byw mewn gofodau enw rhwydwaith, a’r llall ar lwybrau’r gwesteiwr ei hun. Mae’r fersiwn gofodau enw yn cadw pob rhyngwyneb, llwybr a soced mewn cyd-destun y gallwch ei ddileu, tra bo’r fersiwn gwesteiwr yn dechrau’n gyflymach ac yn gadael cyflwr ar ei ôl. Y cyflwr gweddilliol hwnnw yw’r rheswm y mae’r ail labordy’n anodd ei ailadrodd fis yn ddiweddarach. Cymharwch y glanhau’n gyntaf, oherwydd mae’n penderfynu a allwch redeg yr arbrawf ddwywaith.

Dwy ffordd o adeiladu’r un labordy, a phryd y mae pob un yn ennill

Mewn labordy llwybrau’r gwesteiwr rydych yn ychwanegu rhyngwyneb tiwnel a llwybrau at y peiriant rydych yn gweithio arno, felly mae’r arbrawf yn rhannu tynged â’ch shell, eich rheolwr pecynnau a phob cysylltiad arall. Mewn labordy gofodau enw mae pob rôl yn cael ei stac ei hun o ryngwynebau, cyfeiriadau, llwybrau a socedi, ac mae dileu’r gofod enw yn cael gwared ar y cyfan. Nid yw’r naill fodel na’r llall yn fwy cywir, oherwydd maent yn ateb cwestiynau gwahanol. Dewiswch ofodau enw pan fo’r pwnc yn lllwybro ac yn anfon ymlaen, a labordy gwesteiwr pan fo’r pwnc yn ymwneud â sut mae un cleient bwrdd gwaith yn integreiddio.

AspectNamespace labHost-route lab
IsolationFull stack per roleShares the host stack
CleanupDelete named namespacesManual route and rule removal
RealismStrong for routingNeeded for GUI clients

Cymysgu’r ddau yw’r camgymeriad arferol: labordy gofodau enw wedi’i brofi yn erbyn cleient gwesteiwr yn unig nid yw’n profi dim am y naill drefniant na’r llall. Penderfynwch pa gwestiwn rydych yn ei ofyn cyn creu’r cyswllt cyntaf.

Un cyd-destun i bob rôl, wedi’u cysylltu’n fwriadol

Crëwch un gofod enw i bob rôl a symudwch bob pen pob pâr veth i’r cyd-destun sy’n berchen arno. Mae’r pedwar gorchymyn cyntaf yn ddigon i weld y siâp:

ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns client

Rhowch ystodau i’r labordy nad ydynt yn gorgyffwrdd â dim ar y gwesteiwr, ac ysgrifennwch cyn dechrau pa ofod enw sy’n berchen ar ba gyfeiriad. Mae angen dau lwybr ar wahân ar labordy sy’n gweithio: un allanol i gyrchfan VPN gyrraedd ei chymar, a llwybr dychwelyd ar gyfer yr adnodd sy’n cael ei amddiffyn. Modelwch hwy fel dau benderfyniad, oherwydd mae labordy sy’n adeiladu hanner allan yn unig yn pasio prawf ysgydwad llaw ac yn methu prawf cymhwysiad.

Rôl anfon ymlaen yw lle mae labordai’n dod yn ddiddorol

Rhaid i un rôl anfon ymlaen, sy’n golygu galluogi anfon ymlaen y tu mewn i’r gofod enw hwnnw ac ychwanegu’r rheol sydd ei hangen ar y dyluniad. Mae cyflwr anfon ymlaen yn perthyn i bob gofod enw, felly nid yw gosodiad y gwesteiwr yn berthnasol i’r labordy ac nid yw gosodiad y labordy yn gollwng allan, fel y mae’r ddogfennaeth am ofodau enw rhwydwaith yn ei ddisgrifio. Mae WireGuard yn dogfennu y gall rhyngwyneb a’i soced allanol fyw mewn gwahanol ofodau enw, sy’n dric defnyddiol ac yn ffordd ragorol o ddrysu eich hun. Peidiwch â chymryd yn ganiataol bod symud rhyngwyneb yn symud pob rhan o’r cysylltiad yn yr un modd.

Gwiriwch y cyfrifydd anfon ymlaen ar ôl pecyn prawf, oherwydd mae rheol na chyfatebodd erioed a rheol a wrthododd yn edrych yn union yr un fath yn y tabl llwybrau. Dim ond y cyfrifwyr sy’n eu gwahanu.

Cofnodwch linell sylfaen, yna torrwch un llwybr

Dechreuwch drwy gofnodi’r hyn sy’n bodoli, gyda’r cyd-destun wedi’i ysgrifennu wrth ymyl pob llinell. Darllenwch y gofodau enw, yna’r llwybr y byddai cyrchfan brawf yn ei gymryd y tu mewn i un ohonynt, yna’r cyfrifwyr ar y cyswllt sy’n ei gario:

ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-g

Y trydydd gorchymyn yw’r un y mae pobl yn ei hepgor, a dyna lle mae’r dystiolaeth: mae’r cyfrifwyr a wrthodwyd a gwallau yn dweud wrthych a gyrhaeddodd pecyn rôl anfon ymlaen o gwbl. Cofnodwch yr un tri golwg ar ôl newid, a gadewch i’r diff fod yn dystiolaeth yn hytrach na’ch cof ohono. Yna torrwch un peth yn union, naill ai drwy ddileu llwybr neu drwy ychwanegu rheol gwrthod ar y llwybr anfon ymlaen, a chadarnhewch y symptom y gwnaethoch ei ragweld: ysgydwad llaw wedi’i gwblhau heb ateb, neu fethiant datrys yn lle goramser. Mae labordy nad yw’n dangos ond llwyddiant yn dysgu ychydig iawn.

Glanhau yw’r hyn sy’n gwneud y rhedeg nesaf yn ailadroddadwy

Cadwch lanhau o fewn ffiniau’r adnoddau a enwyd gennych, oherwydd nid yw ailosod wal dân cyffredinol neu ddileu llwybr gwesteiwr yn ailadroddadwyedd, mae’n ail ddigwyddiad. Cadwch y topoleg, y gorchmynion union a’r arsylwadau roeddech yn eu disgwyl, fel bod y rhedeg nesaf yn atgynhyrchu’r un methiant yn lle dyfalu pa gyd-destun a ddaliodd y cyflwr blaenorol. Heb y cofnod hwnnw mae’r labordy’n stori, nid yn weithdrefn.

Defnyddiwch fanylion mewngofnodi a gynhyrchwyd yn lleol ar gyfer y labordy, a chadwch gyfrifon cynhyrchu allan o enghreifftiau a rennir. Yna dilëwch bob gofod enw a chadarnhewch fod golwg y gwesteiwr yn ddigyfnewid, sef yr holl reswm dros ddewis y model hwn. Mae labordy na allwch ei dynnu’n lân yn newid gwesteiwr gyda chamau ychwanegol.

Erthyglau cysylltiedig