Dwy allanfa VPN iach, un llwythiad hir eisoes yn rhedeg, a gofyniad bod y cysylltiad nesaf yn defnyddio’r twnnel arall. Mae dwy ffordd i fodloni hynny, a dim ond un ohonynt yn ddiogel ar gyfer porth byw. Mae cyfnewid y llwybr diofyn yn symud pob pecyn, gan gynnwys y rhai sy’n perthyn i’r llwythiad. Mae draeniad wedi’i gynllunio yn newid y dewis ar gyfer cysylltiadau newydd tra’n gadael y llifau a draciwyd ar y llwybr y gwnaethant ddechrau arno.

Dwy ffordd i newid allanfa

Mae cyfnewid llwybr yn un gorchymyn ac mae’n gildroadwy mewn eiliadau, a dyna pam y caiff ei ddefnyddio yn ystod digwyddiadau. Mae hefyd yn ddifreinio: mae pecynnau’r llwythiad presennol yn gadael yn sydyn drwy dwnnel gwahanol, gyda chyfeiriad ffynhonnell cyhoeddus gwahanol a chyflwr cyfieithu ar wahân.

Os yw’r pen pell yn tracio llifau yn ôl cyfeiriad ffynhonnell, gall y llwythiad roi’r gorau i gael ei adnabod. Mae’r draeniad yn osgoi hynny drwy wneud y penderfyniad unwaith y cysylltiad a’i storio, felly mae’r hen lwythiad yn cadw ei allanfa nes iddo ddod i ben. Dyna holl werth yr ymarferiad: nid yw’r pen pell yn gweld unrhyw newid y mae’n rhaid iddo ei ddehongli. Mae’n parhau i dderbyn pecynnau sy’n cyfateb i’r cysylltiad y mae’n ei adnabod yn barod.

Y gost yw cymhlethdod: dwy dabl llwybro, dosbarthydd sy’n rhedeg yn y bachyn cywir, a marciau y mae’n rhaid eu cydlynu â phob peth arall ar y blwch sy’n eu defnyddio.

Rhowch dabl ei hun i bob allanfa

Cadwch dabl llwybro fesul allanfa a gwerthoedd marcio neu ddarnau gwahanol ar gyfer y ddau ddewis. Mae angen y llwybrau sy’n addas i’w rôl ar bob tabl, nid enw yn unig, ac mae angen canlyniad methiant bwriadol ar gyfer yr achos coll. Tabl gwag sy’n syrthio’n ddistaw i’r prif dabl — dyna sut mae traffig yn gadael drwy allanfa na ddewisodd neb.

ip rule add fwmark 0x10/0x10 table 101
ip rule add fwmark 0x20/0x20 table 102
ip route add default via 192.0.2.1 dev wg-a table 101
ip route add default via 198.51.100.1 dev wg-b table 102

Ychwanegwch lwybr blackhole ar ddiwedd pob tabl fel bod chwiliad heb unrhyw gydweddiad yn methu’n uchel yn lle dianc i rynfa nad oeddech wedi’i dewis.

Dewiswch unwaith, ar y pecyn cyntaf

Dosbarthwch ar ôl bod tracio cysylltiadau yn bodoli ac o flaen y chwiliad llwybr sy’n bwysig. Ar gyfer cysylltiad LAN newydd, heb ei ddosbarthu, dewiswch yr allanfa a’i storio yng nghyflwr y cysylltiad. Ar becynnau diweddarach, adferwch y gwerth a storwyd i’r marc pecyn y mae llwybro polisi yn ei ddarllen.

Y rhan gynnil yw beth mae newydd yn ei olygu. Gall conntrack barhau i adrodd NEW ar gyfer pecynnau cynnar ac ailanfon cyn gweld ateb, felly gall dosbarthydd sy’n dibynnu ar y cyflwr hwnnw yn unig drosysgrifo dewis y mae eisoes wedi’i wneud. Gwiriwch nad oes allanfa wedi’i storio ar gyfer y cysylltiad cyn aseinio un.

Mae nftables yn cadw marciau pecyn a chysylltiad ar wahân, ac mae’r canllaw metaddata yn dogfennu’r copi penodol rhyngddynt. Nid yw marc cysylltiad yn dod yn farc pecyn y mae eich rheol yn cyfateb iddo ohono’i hun, a dyna’r rheswm mwyaf cyffredin pam nad oes effaith gan ddosbarthydd wedi’i ysgrifennu’n ofalus.

Cyfyngwch adferiad i’r cyfeiriad a’r traffig a olygir. Gall cymhwyso marc allanfa rhyngrwyd i becynnau sy’n dychwelyd anfon atebion tuag at yr allanfa yn lle’r LAN, a’r symptom yw cysylltiad unffordd sy’n edrych fel problem mur tân. Darllenwch lwybr yr ateb cyn cyffwrdd â rheol mur tân, oherwydd mae’r pecyn yn cael ei lwybro, dim ond nid yn ôl at yr anfonwr.

Pedwar cyfnod draenio

  1. Paratowch B heb gyffwrdd ag A: llwybro, anfon ymlaen, awdurdodi, NAT a’r llwybr dychwelyd. Gosodwch ei dabl a’i bolisi dewis drwy berchennog cyfluniad presennol y porth.

  2. Newidiwch y dosbarthydd fel bod cysylltiadau newydd, heb eu dosbarthu yn dewis B, gan gadw’r dewisiadau a storwyd. Mae trafodiad nftables atomig yn osgoi ffenestr lle mae’n rhaid clirio’r hen gyflwr.

  3. Gadewch A i fyny tra bod ei lifau’n gorffen. Mae ei ryngwyneb, ei dabl, ei allanfa bell a’i fapiau NAT yn dal yn rhan o’r llifau hynny, ac nid yw golygu rheol NAT yn ailadeiladu rhwymiadau sy’n bodoli’n barod.

  4. Ymddeolwch A pan gyflawnir amod y draen, wedi’i farnu o gyflwr cysylltiadau ac ymddygiad yr ap, yn hytrach nag o un cyfwng distaw.

Beth na all draeniad ei addo

Nid yw cais porwr yn gysylltiad cludo newydd; mae cronni’n dal i anfon ceisiadau dros yr hen un. I’r gwrthwyneb, gall llif UDP heneiddio allan o conntrack a chaiff pecyn diweddarach ei ddosbarthu o’r newydd. Mae’r draen yn dilyn llifau a draciwyd, nid syniad ap o sesiwn.

Os bydd A yn methu cyn i’w lifau orffen, nid yw’r marc a storwyd yn eu hachub. Maent yn ailgysylltu drwy B, neu ddim yn ailgysylltu o gwbl. Mae draen wedi’i gynllunio yn prynu parhad tra bod y llwybr gwreiddiol yn iach; nid yw’n ailgopïo cyflwr rhwng allanfeydd annibynnol.

Gwiriwch y ddwy hanner

Dechreuwch gysylltiad caniataol hirhoedlog cyn y newid ac un sy’n wirioneddol newydd ar ei ôl. Cadarnhewch pa dwnnel mae pob un yn ei ddefnyddio a pha gyfeiriad ffynhonnell cyhoeddus y mae’r pen pell yn ei weld, yna gwiriwch fod y traffig dychwelyd yn dod yn ôl.

Peidiwch â fflysio’r tabl conntrack i wneud i’r dewis newydd ymddangos. Mae hynny’n dinistrio’r union gyflwr y mae’r draen i fod i’w gadw, ac mae’n troi mudo rheoledig yn fethiant â phrawf sy’n edrych yn lân.

Erthyglau cysylltiedig