Puncte:0

Wireguard nu funcționează cu enpoint inclus în AllowedIps

drapel cn

Rulez un wireguard enpoint ca container docker pe serverul meu cu clienți roadwarrior care se conectează la el prin LTE:

diagrama rețelei wireguard

Adresa reală a serverului este un IP public static. Configurația clientului este după cum urmează (excluse părțile irelevante):

[Interfață]
Adresa = 10.254.99.2

[Peer]
AllowedIps = 10.254.99.1/32
Punct final = 192.168.5.55

Acest lucru funcționează bine dacă dau ping la client din containerul docker. Dar, din moment ce vreau să ajung și la client de la gazda docker, adaug o rută pe server:

ruta ip adăugați 10.254.99.0/24 prin 172.17.0.2 dev docker0 src 192.168.5.55

În consecință, adaug src adresa la lista de AllowedIps de pe server:

[Peer]
AllowedIps = 10.254.99.1/32, 192.168.5.55/32

Și cu asta lucrurile nu mai funcționează. Nu mai pot ping clientul, nici de pe server, nici din interiorul containerului. Dacă permit toate I-urile pe client, totul funcționează conform așteptărilor:

[Peer]
AllowedIps = 0.0.0.0/0

Dar nu vreau să direcționez tot traficul prin tunel. Care este modalitatea corectă de a face asta?

A.B avatar
drapel cl
A.B
mai multe probleme deodată. `Punctul final = 192.168.5.55`.Asta înseamnă că încercați să faceți tunelul 192.168.5.55 în interiorul tunelului învăluit în 192.168.5.55?
drapel cn
Nu intenționez, dar cred că asta fac. Vreau să permit doar traficul care provine de la 192.168.5.55 până la wg. Totuși, nu sunt sigur de ce funcționează cu 0.0.0.0/0 în IP-urile permise.
Puncte:2
drapel cn

Nu puteți folosi aceeași adresă în cea a clientului Punct final și IP-uri permise setări*. Punct final ar trebui să fie adresa serverului in afara tunelul și IP-uri permise ar trebui să includă toate adresele la care doriți să aveți acces interior tunelul.

Pentru a o repara, scăpați de src setarea pe ruta pe care ați adăugat-o la server, astfel încât ruta să folosească doar adresa serverului docker0 interfata:

ruta ip adăugați 10.254.99.0/24 prin 172.17.0.2 dev docker0

Apoi schimbați clientul WireGuard IP-uri permise setarea pentru a include adresa serverului docker0 interfata (172.17.0.1):

AllowedIps = 10.254.99.1/32, 172.17.0.1/32

Serverul dvs. îl va folosi acum docker0 adresa interfeței (172.17.0.1) ca sursă a pachetelor pe care le trimite prin rețeaua WireGuard.


Cu toate acestea, în loc să adăugați acel strat suplimentar de rutare pe serverul dvs., cel mai simplu lucru de făcut ar fi să rulați containerul WireGuard în modul de rețea „gazdă” (folosind --network=gazdă steag cu docker run, sau network_mode: gazdă aşezare cu docker-compune).Asta ar expune containerul WireGuard wg0 interfață direct la gazdă, astfel încât să nu aveți nevoie de reguli suplimentare de rutare pe server și nu ar trebui să adăugați IP-uri permise către client.

În acest caz, serverul ar folosi doar interfața WireGuard proprie 10.254.99.1 adresa ca sursă a pachetelor pe care le trimite prin rețeaua WireGuard.


* cu excepția cazului în care ați configurat niște reguli de rutare/filtrare a pachetelor de lux pe clientul dvs. în loc să utilizați valorile implicite pe care clientul WireGuard le setează pentru dvs.

drapel us
„Nu puteți utiliza aceeași adresă în setările Endpoint și AllowedIPs ale clientului.” De ce funcționează când AllowedIPs=0.0.0.0/0? Acel CIDR acoperă punctul final.
drapel cn
`AllowedIPs = 0.0.0.0/0` funcționează deoarece clientul WireGuard încasează `/0` pentru a configura câteva reguli de rutare/filtrare a pachetelor pentru tine. Începeți aici pentru o explicație despre modul în care wg-quick gestionează acest lucru pe Linux: https://stackoverflow.com/a/70827884/149050

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.