De hânskieding foltôget, wg show meldt resinte oerdracht, en it tunneladres fan de tsjinner antwurdet op in ping. In host op it LAN fan de tsjinner net. Trije betingsten moatte tagelyk jilde: de kliïnt moat it LAN-prefiks yn de tunnel routearje, de tsjinner moat de pakketten trochstjoere, en it antwurd hat in paad werom nedich. As ien fan de trije ûntbrekt, is it symptoom identyk.

AllowedIPs is sawol in tagongslist as in routingstabel

Op de kliïnt beslút de list AllowedIPs sawol wat nei dy peer stjoerd wurde mei as hokker rûtes WireGuard ynstallearret. In peer-ynskriuwing dy't allinnich it tunneladres fan de tsjinner listet, ynstallearret ien hostrûte, sadat LAN-bestimmingen nea yn de tunnel komme. It LAN-prefiks tafoegje is it earste dat ferifiearre wurde moat, en it is ek de feroaring dy't nei in kopiearre konfiguraasje it meast ûntbrekt. In peer útwreide nei in standertrûte is in oar ûntwerp, en it sil ek it ynternetferkear fan de kliïnt ferpleatse.

Hâld de hostrûte en it LAN-prefiks as aparte ynskriuwingen. As it kantoar twa subnetten hat, hearre beide yn de list, en it ûntbrekkende twadde prefiks produsearret in flater dy't seletyf liket ynstee fan totaal.

[Peer]
PublicKey = <server public key>
Endpoint = vpn.example.net:51820
AllowedIPs = 10.66.0.1/32, 192.168.50.0/24

Trochstjoeren en oersetting hearre op de tsjinner

De tsjinner hat IP-trochstjoeren ynskeakele nedich, in trochstjoerregel dy't ferkear út de tunnel akseptearret, en in oersettingsregel nei syn LAN-ynterface. De oersetting is wat it ûntwerp wurkje lit sûnder elke host op it kantoarnetwurk oan te reitsjen. Dan komme antwurden werom nei de tsjinner ynstee fan nei in adres dêr't it LAN nea fan heard hat. Sûnder dat hat elke host in rûte foar it tunnelsubnet en in firewallregel nedich dy't dat tastean, wat selden akseptabel is op in netwurk dat immen oars beheart.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Regels dy't mei de hân tafoege binne, ferdwine by it opnij opstarten, dus bine se oan 'e ynterface mei de hook-opdrachten yn 'e tsjinnerkonfiguraasje. In regelset dy't syn ynterface oerlibbet, is hoe't in masine úteinlik ferkear oerset foar in tunnel dy't net mear bestiet.

Doe't it LAN ferhuze en de regel net

It ferfangen fan in router dy't it kantoar-subnet opnij nûmeret, is de klassike ferzje fan dizze flater. De tunnel bliuwt oan, de hânskieding bliuwt farsk, en neat efter de tsjinner antwurdet, omdat de oersettingsregel noch altyd it âlde adres neamt. Ynstallaasjeskripts bakke it LAN-adres fan de tsjinner faak yn in POSTROUTING-regel, en nei in opnij nûmerjen bestiet dat adres op gjin inkelde ynterface. Pakketten wurde dan oerskreaun nei in bestimming dy't net antwurdzje kin.

iptables -t nat -n -L POSTROUTING
ip -br addr show

Fergelykje de twa útfieringen. In oersettingsdoel dat net yn 'e ynterfacelist ferskynt, is de bug, en it reparearjen is in feroaring fan ien rigel as jo it ienris sjoen hawwe. De regel kin yn in generearre unit libje ynstee fan yn 'e WireGuard-konfiguraasje, dus herlaad dy unit nei it bewurkjen en befêstigje dat de folgjende opstart jo feroaring net oerskriuwt.

Twa sites efter NAT hawwe in plak nedich om te moetsjen

As gjin fan beide kanten ynkommende ferbiningen akseptearret, is it praktykse antwurd in lytse host mei in iepenbier adres en twa WireGuard-ynterfaces. Elke site ferbynt nei bûten, de middelste host listet it LAN fan elke peer yn syn eigen AllowedIPs, en trochstjoeren draacht pakketten tusken de twa tunnels. Neat oan 'e firewall fan ien fan beide sites hoecht te feroarjen, en dêrom ferspriedt dit ûntwerp him maklik.

Routing tusken de sites behâldt de oarspronklike boarneadressen en hâldt dêrtroch logging per host betsjuttingsfol. Oersetting op de middelste host is ienfâldiger as de twa LAN's oerlaapje, mar tsjin de priis fan it ferliezen fan 'e boarne-identiteit yn 'e logs. Beslute hokker eigenskip fan belang is foardat jo kieze.

Skied de lagen mei fjouwer kontrôles

Doch ien kontrôle per laach ynstee fan trije dingen te feroarjen en te hoopjen. De earste lit de âldens fan 'e hânskieding en tellers foar elke peer sjen. De twadde lit sjen oft de kliïnt dy bestimming echt yn 'e tunnel routearret. De tredde en fjirde fertelle jo oft it fersyk oankaam en oft in belied it nei oankomst wegere.

wg show
ip route get 192.168.50.20
tcpdump -ni wg0 icmp
iptables -vnL FORWARD --line-numbers

In fersyk dat oankomt en gjin antwurd opsmyt, wiist op it antwurdpaad of op 'e LAN-host. In fersyk dat nea oankomt, wiist op AllowedIPs of op 'e rûte fan de kliïnt. Dy twa útkomsten hawwe ferskillende reparaasjes nedich, en de opname is wat se ûnderskiedt.

Relatearre artikelen