It setten fan 0.0.0.0/0, ::/0 yn ’e AllowedIPs fan in peer is de stap dy’t elkenien ûnthâldt, en it beslút allinnich hokker ferkear de peer drage mei. Dy foarheaksels meitsje gjin rûtes, stjoere neat troch oan ’e oare kant en litte de resolver fan elke applikaasje krekt wêr’t er wie. Fjouwer aparte dingen moatte tagelyk jilde foar in folsleine tunnel om in folsleine tunnel te wêzen, en se wurde it bêste yn ’e folchoarder hjirûnder kontrolearre, want in lettere kontrôle kin in eardere net rêde. Elke kontrôle hjirûnder is in feit dat jo fan in masine ôflêze kinne, net in ynstelling dêr’t jo op hoopje dat dy tapast is.

Wat it foarheaksel fan de peer kiest, en wat net

AllowedIPs is tagelyk in selektor en in autorisaasje. It fertelt de lokale kant hokker bestimmingen nei dizze peer stjoerd wurde meie, en it fertelt de ûntfangende kant hokker boarneadressen dizze peer presintearje mei. Dat is it hiele wurk. Neat yn dy beskriuwing makket in rûte op ’e host, set trochstjoering oan ’e fiere kant oan of rekket de nameresolúsje.

Dêrom kin in konfiguraasje folslein lykje en him as in split tunnel hâlde. It foarheaksel seit dat de peer alles akseptearje soe; de rûtetabel fan ’e host beslút wat dêr echt oankomt, en de gateway beslút oft der wat fuortgiet. Net ien fan dy trije besluten wennet yn ’e peer-seksje.

De klant rûte, net allinnich de peer-list

Behearders lykas wg-quick programmearje de rûtetabel fan ’e host foar jo, en dêrom hâlde twa identike konfiguraasjefilen har oars, ôfhinklik fan hoe’t de ynterface omheech kaam. In minimaal profyl is koart genôch om yn ien kear te lêzen:

[Interface]
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.net:51820

Twa details drage it wurk. It fjild Address is in inkeld host-foarheaksel ynstee fan in subnet dat de klant mient te besitten, en it is de behearder dy’t de standert-AllowedIPs yn in echte standertrûte omsette. Set itselde bestân omheech mei ip link en wg setconf en der ferskine hielendal gjin rûtes, wat op in stikken tunnel liket en in sûne is wêrby’t de rûtestap oerslein is. De hânlieding fan wg-quick dokumintearret de rûtering en it Table gedrach dat dy behearders tafoegje.

Lês it resultaat ynstee fan it bestân: ip route get 1.1.1.1 soe de tunnel-ynterface neame moatte, en wg show soe in resinte handshake melde moatte mei in beweegjende oerdrachtsteller. In handshake sûnder rûte betsjut dat de behearder nea rûn, en it profyl nochris bewurkje sil dat net reparearje. Start de ynterface sa’t de brûker dy start, oars mjit de test jo shell ynstee fan ’e útrulling.

It einpunt bûten de tunnel hâlde

In folsleine tunnel fangt elke bestimming, ek dy’t er brûke moat om te bestean. Behearders dogge dat troch in host-rûte foar it einpunt ta te foegjen fia de oarspronklike gateway, en dêrom befettet in korrekte konfiguraasje hast altyd ien bewuste útsûndering. De helte fan ’e konfiguraasje mei in behearder en de oare helte mei de hân tapasse is de gewoane wize wêrop dy útsûndering wei rekket.

As it einpunt in hostnamme is dy’t nei ferskate adressen resolvet, of nei in famylje dy’t jo net drage, dan ferâldet de útsûndering min en kin de tunnel misse nei in werferbining dy’t routine like. Pin it einpunt fêst oan in adres dat jo kontrolearje, of befêstigje dat de behearder it op ’e nij beoardielet, en lês de host-rûte op ’e nij nei elke netwurkferoaring.

Hitselde meganisme ferklearret wêrom’t in folsleine tunnel en in captive portal fjochtsje. It portal ferwachtet it ferkear te ûnderskeppen dat jo tunnel no fangt, dus op hotel- en fleanfjildnetwurken sette jo de tunnel omheech nei de portal-oanmelding, nea dêrfoar.

Trochstjoering en it werompaad op ’e gateway

Set op ’e gateway trochstjoering oan foar de famylje dy’t jo drage, stean de forward-keten yn beide rjochtingen ta as jo oersette, en befêstigje it werompaad mei in syktocht dy’t spesifyk foar de boarne is. Neat dêrfan folget út in slagge handshake, want in handshake bewiist allinnich dat de beide peers UDP útwikselje kinne. It seit neat oer wat der neitiid mei it ûntkapsele pakket bart.

sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
ip route get 1.1.1.1 from 10.8.0.2

De syktocht rint op ’e gateway en net op ’e klant, oars lêze jo in oare rûtetabel. As it de ferkearde ynterface neamt, of meldt dat der gjin rûte is, dan sil gjin feroaring oan ’e klantkant in ynternetútgong opleverje. As de gateway de adressen fan klanten ûnderweis nei bûten oerset, hinget it antwurd fan dy oersettingstastân ôf, dus de regel moat foar beide rjochtingen fan ’e stream bestean en net allinnich foar de útgeande.

DNS en de flatertastân, apart testen

It protokol sels konfigurearret de resolver fan gjin inkelde applikaasje. wg-quick past de rigel DNS ta fia de resolver-ynjegraasje fan ’e distribúsje, containers en browsers mei har eigen stacks kinne it negearje, en dêrom kin in namme misse wylst de tunnel pakketten perfekt draacht. Test mei in hostnamme ynstee fan in adres, en skriuw op hokker tsjinner antwurde ynstee fan oan te nimmen dat dy út it profyl dat die.

Adresfamyljes binne in aparte test mei in apart antwurd. In standertrûte foar v4 seit neat oer wat de v6-ferbining fan in applikaasje dwaan sil, en in tunnel dy’t de twadde famylje stil weilit, is minner as ien dy’t lûd misse. Freegje in namme oer elke famylje, lês de ynterface dy’t elk fersyk brûkte, en kontrolearje de oersettingstellers foar en nei, want in regel dy’t mei neat oerienkomt liket identyk op in regel dy’t ûntbrekt.

Test úteinlik de tastân dy’t jo wolle as de tunnel stopt. In folsleine tunnel soe ticht misse moatte foar it ferkear dat er opeasket: as de ynterface delgiet en applikaasjes stil oer de fysike keppeling trochgeane, is it ûntwerp in split tunnel mei ekstra stappen. Skriuw it bedoelde flatergedrach op, kontrolearje it bewust, en einigje mei it fêstlizzen fan de fjouwer antwurden — hokker behearder set de ynterface omheech, hokker rûte draacht de standert, wa stjoert troch en oerset op ’e gateway, en hokker resolver antwurdet.

Relatearre artikelen