Shtrëngimi i duarve i WireGuard funksionon, por nënrrjeti i zyrës nuk përgjigjet
WireGuard është aktiv dhe pingon serverin, por asgjë në LAN-in e tij nuk përgjigjet. Kontrolloni prefiksin e klientit, përcjelljen në server dhe rrugën e përgjigjes.
Shtrëngimi i duarve përfundon, wg show raporton transferim të fundit, dhe adresa e tunelit të serverit përgjigjet ndaj ping. Një host në LAN-in e serverit jo. Tre kushte duhet të jenë të vërteta njëkohësisht: klienti duhet ta drejtojë prefiksin e LAN-it në tunel, serveri duhet t'i përcjellë paketat, dhe përgjigja ka nevojë për një rrugë kthimi. Kur mungon njëra nga të tria, simptomi është identik.
AllowedIPs është njëkohësisht listë aksesi dhe tabelë rrugëtimi
Në klient, lista AllowedIPs përcakton si atë që mund t'i dërgohet atij peer-i, ashtu edhe cilat rrugë instalon WireGuard. Një zë peer-i që liston vetëm adresën e tunelit të serverit instalon një rrugë të vetme hosti, kështu që destinacionet e LAN-it nuk hyjnë kurrë në tunel. Shtimi i prefiksit të LAN-it është gjëja e parë që duhet verifikuar, dhe është gjithashtu ndryshimi që mungon më shpesh pas një konfigurimi të kopjuar. Një peer i zgjeruar në një rrugë të parazgjedhur është një dizajn tjetër, dhe ai do të zhvendosë edhe trafikun e internetit të klientit.
Mbani rrugën e hostit dhe prefiksin e LAN-it si zëra të veçantë. Nëse zyra ka dy nënrrjeta, të dyja i përkasin listës, dhe prefiksi i dytë që mungon prodhon një dështim që duket selektiv, jo i plotë.
[Peer] PublicKey = <server public key> Endpoint = vpn.example.net:51820 AllowedIPs = 10.66.0.1/32, 192.168.50.0/24
Përcjellja dhe përkthimi i përkasin serverit
Serveri ka nevojë për përcjellje IP të aktivizuar, një rregull përcjelljeje që pranon trafikun që vjen nga tuneli, dhe një rregull përkthimi drejt ndërfaqes së tij LAN. Është pikërisht përkthimi ai që e bën dizajnin të funksionojë pa prekur çdo host në rrjetin e zyrës. Përgjigjet pastaj kthehen në server në vend të një adrese për të cilën LAN-i nuk ka dëgjuar kurrë. Pa të, çdo host ka nevojë për një rrugë drejt nënrrjetit të tunelit dhe një rregull muri zjarri që e lejon, gjë që rrallë është e pranueshme në një rrjet që administrohet nga dikush tjetër.
sysctl -w net.ipv4.ip_forward=1 iptables -A FORWARD -i wg0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Rregullat e shtuara me dorë zhduken në rinisje, prandaj lidhini ato me ndërfaqen me komandat hook në konfigurimin e serverit. Një grup rregullash që i mbijeton ndërfaqes së vet është mënyra se si një makinë përfundon duke përkthyer trafik për një tunel që nuk ekziston më.
Kur LAN-i u zhvendos dhe rregulli jo
Zëvendësimi i një router-i që rinumëron nënrrjetin e zyrës është versioni klasik i këtij dështimi. Tuneli qëndron aktiv, shtrëngimi i duarve qëndron i freskët, dhe asgjë prapa serverit nuk përgjigjet, sepse rregulli i përkthimit vazhdon të emërtojë adresën e vjetër. Skriptet e instalimit shpesh e fusin adresën LAN të serverit në një rregull POSTROUTING, dhe pas një rinumërimi ajo adresë nuk ekziston në asnjë ndërfaqe. Paketat pastaj rishkruhen drejt një destinacioni që nuk mund të përgjigjet.
iptables -t nat -n -L POSTROUTING ip -br addr show
Krahasoni dy daljet. Një objektiv përkthimi që nuk shfaqet në listën e ndërfaqeve është gabimi, dhe rregullimi i tij është një ndryshim i një rreshti sapo ta keni parë. Rregulli mund të jetojë në një unit të gjeneruar dhe jo në konfigurimin e WireGuard, prandaj ringarkoni atë unit pas redaktimit dhe konfirmoni që nisja tjetër nuk e rishkruan ndryshimin tuaj.
Dy site pas NAT kanë nevojë për një vend takimi
Kur asnjëra palë nuk pranon lidhje hyrëse, përgjigja praktike është një host i vogël me adresë publike dhe dy ndërfaqe WireGuard. Çdo site lidhet nga jashtë, hosti i mesëm liston LAN-in e çdo peer në AllowedIPs, domethënë listën e vet, dhe përcjellja i transporton paketat midis dy tuneleve. Asgjë në murin e zjarrit të asnjërës prej siteve nuk duhet të ndryshojë, dhe për këtë arsye ky dizajn përhapet lehtë.
Rrugëtimi midis siteve ruan adresat origjinale të burimit dhe për këtë arsye e mban kuptimplotë regjistrimin për çdo host. Përkthimi në hostin e mesëm është më i thjeshtë kur dy LAN-et mbivendosen, por me koston e humbjes së identitetit të burimit në regjistra. Vendosni se cila veti ka rëndësi përpara se të zgjidhni.
Ndani shtresat me katër kontrolle
Bëni një kontroll për shtresë në vend që të ndryshoni tri gjëra dhe të shpresoni. I pari tregon moshën e shtrëngimit të duarve dhe numëruesit për çdo peer. I dyti tregon nëse klienti e drejton vërtet atë destinacion në tunel. I treti dhe i katërti ju tregojnë nëse kërkesa mbërriti dhe nëse një politikë e hodhi poshtë pas mbërritjes.
wg show ip route get 192.168.50.20 tcpdump -ni wg0 icmp iptables -vnL FORWARD --line-numbers
Një kërkesë që mbërrin dhe nuk nxit përgjigje tregon rrugën e përgjigjes ose hostin e LAN-it. Një kërkesë që nuk mbërrin kurrë tregon AllowedIPs ose rrugën e klientit. Këto dy rezultate kërkojnë rregullime të ndryshme, dhe kapja është ajo që i dallon.