Cheia în această situație este să vă asigurați IP-uri permise
pe fiecare peer este configurat pentru a permite adresele IP de destinație ale pachetelor pe care doriți să le faceți Trimite catre (sau trimite prin) egalul.
Deci, dacă blocul CIDR pentru site-ul local pe care doriți să îl accesați de la gazda C prin gazda A la gazda B este 10.0.0.0/24
, asigurați-vă că IP-uri permise
setarea pe Gazda C pentru Gazda A include 10.0.0.0/24
(cum ai si tu):
# Configurație gazdă C pentru peer gazdă A
IP-uri permise = 10.201.50.0/24, 10.0.0.0/24
Și, de asemenea, că IP-uri permise
setarea pe Gazda A pentru Gazda B include 10.0.0.0/24
(pe care iti lipseste):
# Configurație gazdă A pentru peer gazdă B
IP-uri permise = 10.201.50.2/32, 10.0.0.0/24
Dar din descrierea dvs. despre funcționarea ping și SSH/HTTP nu, este posibil să aveți și o problemă MTU (pachete fragmentate/respinse deoarece au fost dimensionate puțin prea mari pentru un anumit hop pe parcurs). Încercați să adăugați această setare la [Interfață]
secțiunea fiecărei configurații WireGuard:
MTU = 1280
Și nu aveți nevoie de masquerading pe Gazda A (doar pe Gazda B, așa cum ați făcut).
Cu toate acestea, dacă doriți să rutați toate trafic (0.0.0.0/0
) de la gazda C la gazda A la gazda B, schimbați configurația WireGuard pentru gazdă A la aceasta:
[Interfață]
PrivateKey =...
Adresa = 10.201.50.1/24
ListenPort = 51820
Tabel = 123
PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = regulă ip add iif %i tabelul 123 prioritate 456
PostDown = ip rule del iif %i tabelul 123 prioritate 456
# către gazda B
[Peer]
PublicKey =...
AllowedIPs = 0.0.0.0/0
# către gazda C
[Peer]
PublicKey =...
IP-uri permise = 10.201.50.3/32
Aceasta va folosi un tabel de rutare personalizat (123
) pentru acel trafic, pentru a evita să vă încurcați cu tabelul principal de rutare al gazdei A.
(Și modificați configurația Host C pentru a utiliza AllowedIPs = 0.0.0.0/0
de asemenea, dar fără alte modificări ale configurației sale.)