WireGuard: twa healrûtes tsjin 0.0.0.0/0 yn wg-quick
Twa /1-berikken dekke deselde adressen as /0, mar wg-quick rûtet se oars. Kontrolearje beliedsregels, merken en it einpuntpaad foardat jo bewurkje.
Twa /1-prefiksen dekke krekt deselde IPv4-adressen as ien /0, en dy gelikens jildt allinnich binnen de list mei tastiene prefiksen fan de peer. It hâldt op te jildjen op it stuit dat it ynstellingsark beslút hoe’t rûte wurde moat, want Linux wg-quick behannelet in standertprefiks as in spesjaal gefal en net as rekkenjen. De spesjale tûke ynstallearret in aparte tabel, twa beliedsregels, in socketmerk en ynstellingen foar de omkearde paad dy’t in pear heale rûtes nea krije. As in proxy of in browser nei de bewurking dus ophâldt te wurkjen, binne de prefiksen it minst nijsgjirrige part fan de feroaring.
De prefikslist is net de hiele konfiguraasje
AllowedIPs docht twa taken tagelyk, en mar ien dêrfan giet oer dekking. Foar WireGuard sels is de list kryptokaai-rûting: it beslút hokker bestimmings fersifere wurde nei in peer en hokker boarne-adressen dy peer brûke mei. Foar wg-quick tsjinnet deselde list ek as rûtespesifikaasje, en de rûte dy’t it makket hinget ôf fan hokker tûke de list tafallich past. Identike dekking by twa ferskillende listfoarmen seit dus neat oer identike hoststeat.
De standertkonfiguraasje nimt dy beslissing út jo hannen, want Table is standert automatysk en it ark kiest wêr’t de rûtes lânje. In oare netwurkbehearder, in distribúsje-omhulsel of in oanpaste Table-wearde feroaret de útkomst wer, en dêrom kin advys skreaun foar ien host op de folgjende ferkeard lykje.
Wat de standerttûke boppe in rûte tafoeget
In /0-ynfier stjoert wg-quick yn syn standertrûtepaad: in aparte rûtingstabel krijt de standert, ien beliedsregel stjoert ûnmarkearre ferkear dêrhinne, in twadde regel hâldt mear spesifike rûtes fan de haadtabel autorityf, en de ynterface krijt in firewallmerk op syn eigen socket. Dy merk is de lusbewekker. De fersifere datagrammen dy’t it tunnelferkear drage, geane fuort mei de merk set, sadat de regel dy’t al it oare de tunnel yn stjoert net de eigen transportpakketten fan de tunnel opslokt.
In pear /1-ynfieren nimt ynstee it gewoane rûtepaad. Twa rûtes lânje yn de konfigurearre tabel, en neat fan de omlizzende masjinerie ferskynt, net om’t it oerstallich is, mar om’t dat kodepaad nea betrape is.
Wêr’t de twa arranzjeminten útinoar geane
De ôfwiking docht him earst foar as rekursje. Mei de heale rûtes yn de haadtabel falt it eigen transportadres fan de peer binnen in tunnelprefiks, dat it pakket dat de tunnel drage moat, past by in rûte dy’t de tunnel yn wiist. Iets moat it frijstelle: in hostrûte foar it hjoeddeistige einpunt, in merk dy’t mei de hân tapast is, of in ynterfacespesifike regel. In hostrûte wurket oant it adres fan it einpunt feroaret, wat bart by einpunten op basis fan DNS, omswalkjende kliïnten en konfiguraasjes mei mear peers.
Twadde, alles wat oer merken riddenearret, feroaret gedrach. In transparante proxy dy’t ferbiningen lokaal trochstjoert, makket nije sockets waans merken en boarnen fan de oarspronklike kliïntstream ferskille, en de beliedsregels dy’t de standerttûke generearret wiene part fan wat dy streamen skiede. It lêzen fan de eigen útgeande ferbining fan de proxy is in oare oefening as it testen oft de oarspronklike bestimmings berikber is.
Lês de regels en merken foardat jo bewurkje
Fetsje de hjoeddeistige steat wylst de tunnel sûn is, en wer nei de feroaring, en ferlykje de twa dumps ynstee fan út it konfiguraasjebestân te riddenearjen. Nimm de beliedsregels, elke tabel, de merk fan de ynterface en de registrearre einpunten op.
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
As de earste rigel fan de útfiere de regel foar ûnmarkearre ferkear ferlern hat en de aparte tabel leech is, rint de standerttûke net en gjin hoemannichte prefiksrekkenjen sil de effekten dêrfan werombringe. In merk fan nul op in ynterface dy’t earder ien droech is itselde sinjaal, sichtber yn ien wearde.
Oefen it ferlies fan de tunnel foardat jo útrolle
As de heale-rûte-yndieling de bewuste kar is, moat dy de ûntbrekkende stikken eksplisyt leverje: in einpuntpaad dat adresferoarings oerlibbet, it bedoelde gedrach as de tunnel falt, en de lykweardige behanneling foar IPv6. Skriuw dat as easken op ynstee fan it by in steuring te ûntdekken. Oefen dêrnei de flater, want in folsleine tunnel dy’t stil weromfalt op de fysike uplink is slimmer as ien dy’t ophâldt te wurkjen.
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
De rûtesiking soe it einpunt út de fysike ynterface oplosse moatte sûnder de tunnel te trochkrusen, en it delheljen fan de ynterface soe de host yn de steat litte moatte dy’t it ûntwerp tasein hat. In proxy dy’t nei de ferfanging wurket, bewissiget dat de generearre hoststeat fan betjut wie; it bewissiget net dat lusfoarking en gedrach yn útsette steat de bewurking oerlibbe hawwe.