Twa sûne VPN-útgongen, ien lange upload dy’t al rint, en de eask dat de folgjende ferbining de oare tunnel brûkt. Der binne twa manieren om dat te foldwaan, en mar ien fan beide is feilich op in libbene poarte. It wikseljen fan de standertrûte ferplakket elk pakket, ek dy’t by de upload hearre. In plande drêning feroaret de kar foar nije ferbiningen en lit de folge streams op it paad bliuwe dêr’t se begûn binne.

Twa manieren om in útgong te wikseljen

De rûtewiksel is ien opdracht en is yn sekonden werom te draaien, dêrom wurdt er by ynsidinten brûkt. Hy is ek sûnder ûnderskied: pakketten fan de besteande upload geane ynienen troch in oare tunnel, mei in oar iepenbier boarne-adres en in aparte oersettingstastân.

As de fiere kant streams op boarne-adres folget, kin it wêze dat de upload gewoan net mear werkenber is. De drêning foarket dat troch de beslissing ien kear per ferbining te nimmen en op te slaan, sadat de âlde upload syn útgong hâldt oant er klear is. Dat is de hiele wearde fan de oefening: de fiere kant sjocht gjin feroaring dy’t er ynterpretearje moat. Hy bliuwt pakketten ûntfangen dy’t by de ferbining passe dy’t er al ken.

De priis is kompleksiteit: twa routingtabellen, in klassifisearjer dy’t op de juste hook rint, en merken dy’t ôfstimd wurde moatte mei al it oare op de masine dat se brûkt.

Jou elke útgong syn eigen tabel

Reservje in routingtabel per útgong en aparte merkwearden of bits foar de twa karren. Elke tabel hat de rûtes nedich dy’t by syn rol passe, net allinnich in namme, en hy hat in bewuste mislearringsútkomst nedich foar it ûntbrekkende gefal. In lege tabel dy’t stilwei trochfalt nei de haadtabel — sa ferlit ferkear in útgong dy’t nimmen keas.

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

Foegje in blackhole-rûte ta oan de ein fan elke tabel, sadat in syktocht sûnder oerienkomst lûd mislearret ynstee fan nei in standert te ûntkommen dy’t jo net keasen.

Kies ien kear, by it earste pakket

Klassifisearje nei’t ferbiningsopspoaring bestiet en foar’t de rûtesyktocht plakfynt dy’t fan belang is. Foar in nije, net-klassifisearre LAN-ferbining, kies de útgong en bewarje dy yn de ferbiningstastân. Op lettere pakketten, werstel de bewarre wearde yn it pakketmerk dat beliedsrouting lêst.

It subtile diel is wat nij betsjut. Conntrack kin noch NEW melde foar iere pakketten en werhellings foar’t in antwurd sjoen wurdt, dus in klassifisearjer dy’t allinnich op dy tastân fertrout, kin in kar dy’t er al makke hat oerskriuwe. Kontrolearje dat der gjin útgong foar de ferbining bewarre is foar’t jo ien tawize.

nftables hâldt pakket- en ferbiningsmerken apart, en de berjocht oer metaynformaasje dokumintearret de eksplisite kopy dertusken. In ferbiningsmerk wurdt net fansels it pakketmerk dêr’t jo regel mei oerienkomt, en dat is de meast foarkommende reden dat in soarchfâldich skreaune klassifisearjer gjin effekt hat.

Behein it werstellen ta de rjochting en it ferkear dat jo bedoele. It tapassen fan in ynternet-útgongsmerk op weromkommende pakketten kin antwurden nei de útgong stjoere ynstee fan nei it LAN, en it symptoom is in ienrjochtingsferbining dy’t op in firewallprobleem liket. Lês it antwurdpaad foar’t jo in firewallregel oanreitsje, want it pakket wurdt routed, allinnich net werom nei de stjoerder.

Fjouwer fazen fan in drêning

  1. Meitsje B klear sûnder A oan te reitsjen: routing, trochstjoeren, autorisaasje, NAT en it werompaad. Ynstallearje syn tabel en kar-belied fia de besteande konfiguraasje-eigner fan de poarte.

  2. Wikselje de klassifisearjer sadat nije, net-klassifisearre ferbiningen B kieze, wylst bewarre karren behâlden bliuwe. In atomêre nftables-transaksje foarket in finster dêr’t de âlde tastân wiskied wurde moat.

  3. Lit A oan wylst syn streams klear komme. Syn ynterface, tabel, fiere útgong en NAT-mappings binne noch part fan dy streams, en it bewurkjen fan in NAT-regel bout gjin biningen wer op dy’t al besteane.

  4. Nim A út tsjinst as de drêningsbetingst ferfold is, beoardiele op grûn fan ferbiningstastân en applikaasjegedrach ynstee fan ien stil ynterval.

Wat in drêning net belove kin

In browser-oanfraach is gjin nije transportferbining; bonding stjoert oanfragen oer de âlde troch. Oarsom kin in UDP-stream út conntrack ferrâne en in letter pakket wurdt farsk klassifisearre. De drêning folget folge streams, net de gedachte fan in applikaasje oan in sesje.

As A mislearret foar’t syn streams klear binne, rêdt it bewarre merk se net. Se ferbine wer fia B, of se ferbine hielendal net. In plande drêning keapet trochgeandens wylst it oarspronklike paad sûn is; it is gjin tastânreplikaasje tusken ûnôfhinklike útgongen.

Kontrolearje beide helten

Start in langduorjende tastiene ferbining foar de feroaring en in wier nije dêrnei. Befêstigje hokker tunnel elk brûkt en hokker iepenbier boarne-adres de fiere kant sjocht, kontrolearje dan dat it weromferkear weromkomt.

Meitsje de conntrack-tabel net leech om de nije kar ferskine te litten. Dat fernielt krekt de tastân dy’t de drêning bewissigje moat, en it makket in kontrolearre migraasje ta in ûnderbrekking mei in skjin likende test.

Relatearre artikelen