WireGuard - nefunguje připojení více peerů

vpn22

WireGuard - nefunguje připojení více peerů
« kdy: 15. 02. 2022, 19:52:35 »
Ahoj,

řeším problém s WireGuardem s připojením více než dvou peerů.

Na MikroTiku s veřejnou IP jsem nastavil WireGuard VPN. Dále jsem WireGuard nastavil na telefonu s Adroidem a vše fungovalo jak má. Poté jsem nastavil WireGuard na počítači s Windows a zde začaly problémy. Buď funguje WG pouze s telefonem a nebo pouze s počítačem (podle toho, který peer byl na MikroTiku naposledy editován).

Konfigurace adres na MikroTiku:
Kód: [Vybrat]
/ip address
add address=10.0.0.1/24 comment="LAN" interface=bridge1 network=10.0.0.0
add address=10.0.20.1/24 comment="WireGuard" interface=wg1 network=10.0.20.0

Konfigurace WireGuardu na MikroTiku:
Kód: [Vybrat]
add listen-port=51234 mtu=1420 name=vpn1
/interface wireguard peers
add allowed-address=10.0.20.2/32,10.0.0.2/32 comment="Android-TEL" interface=wg1 public-key="ANDROID-PUB-KEY"
add allowed-address=10.0.20.3/32,10.0.0.3/32 comment="Windows-PC" interface=wg1 public-key="WINDOWS-PUB-KEY"

Konfigurace na telefonu:
Kód: [Vybrat]
[Interface]
PrivateKey = ANDROID-PRIVATE-KEY
Address = 10.0.20.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = MIKROTIK-PUBLIC-KEY
AllowedIPs = 10.0.20.0/24, 10.0.0.0/24
Endpoint = vpn.example.com:51234

Konfigurace na PC:
Kód: [Vybrat]
[Interface]
PrivateKey = WINDOWS-PRIVATE-KEY
Address = 10.0.20.3/24
DNS = 8.8.8.8

[Peer]
PublicKey = MIKROTIK-PUBLIC-KEY
AllowedIPs = 10.0.20.0/24, 10.0.0.0/24
Endpoint = vpn.example.com:51234

V čem může být problém?

Díky za pomoc.


David

  • ***
  • 143
    • Zobrazit profil
Re:WireGuard - nefunguje připojení více peerů
« Odpověď #1 kdy: 15. 02. 2022, 20:25:47 »
Proč máte na tom Mikrotiku i ty allowed-address 10.0.0.2/32 a 10.0.0.3/32, když klienti mají IP z 10.0.20.0/24? To bych odebral.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #2 kdy: 15. 02. 2022, 20:46:18 »
U klientu by mela byt nastavena adresa takto: Address = 10.0.20.2/32

vpn22

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #3 kdy: 15. 02. 2022, 21:04:46 »
@David

Dobrý připomínka. Asi to bylo kvůli tomu, aby telefon mohl komunikovat se zařízeními ze sítě 10.0.0.0/24. Každopádně, dal jsem to pryč z AllowedIPs, ale nepomohlo to.

@sosy

Změnil jsem prefixy na telefonu a na PC na /32, ale je to pořád stejné.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #4 kdy: 15. 02. 2022, 21:12:50 »
No a co to dělá? Co nefunguje?

@David
Dobrý připomínka. Asi to bylo kvůli tomu, aby telefon mohl komunikovat se zařízeními ze sítě 10.0.0.0/24. Každopádně, dal jsem to pryč z AllowedIPs, ale nepomohlo to.

Pokud je 10.0.0.0/24 na tom Mikrotiku, předpokládám, že jde o LAN rozsah, tak by to mohlo fungovat i bez tohoto v AllowedIPs (na Mikrotiku). Je to router, zná obě sítě. Pochopitelně ale záleží, jak je to dále nastavené.


ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:WireGuard - nefunguje připojení více peerů
« Odpověď #5 kdy: 15. 02. 2022, 22:31:24 »
Na routeri:

Kód: [Vybrat]
add allowed-address=10.0.20.2/32 comment="Android-TEL" interface=wg1 public-key="ANDROID-PUB-KEY"
add allowed-address=10.0.20.3/32 comment="Windows-PC" interface=wg1 public-key="WINDOWS-PUB-KEY"

vo wireguarde je tunel definovany ip adresou a verejnym klucom; allowed-address definuje tu ip adresu - preto /32 - a public-key definuje ten kluc.

na telefone:

Kód: [Vybrat]
[Interface]
...
Address = 10.0.20.2/24
...

[Peer]
...
AllowedIPs = 10.0.0.0/24
...

a na pc:

Kód: [Vybrat]
[Interface]
...
Address = 10.0.20.3/24
...

[Peer]
...
AllowedIPs = 10.0.0.0/24
...


Na peerovi je 'Address' ip adresa na wg rozhrani, vratane subnetu; 'AllowedIPs' je cisto informacia pre klienta, ako nastavit routovaciu tabulku. Subnet, v ktorom je jeho wg interface tam uvadzat netreba.

Samozrejme, takto sa dostanes iba po wg rozhranie na routeri. Pokial chces ist dalej, treba bud nastavit forward do sieti, kam sa wg klienti maju dostat, alebo prihodit wg rozhranie do interface listu, ktory to uz ma nastavene. Na domace ucely, pridaj interface wireguard1 do interface listu LAN:

Kód: [Vybrat]
/interface/list
add interface=wireguard1 list=LAN

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #6 kdy: 16. 02. 2022, 09:41:30 »
Resil jsem neco podobnyho a nakonec mi pomohl TCP dump a nejaky clanek na netu. WG funguje dobre i za NATem, ale nektere veci proste nezvladne. Muj WG nemel verejnou IP adresu a tak jsem nakonec musel pro druhy peer pouzit jine cislo portu.

Pokud je vice stran za NATem a ani samotny WG server nema verejnou IP adreasu, tak je nutne rozlisit VPNky jinym cislem portu.

vpn22

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #7 kdy: 16. 02. 2022, 09:45:12 »
@GPU

Jak jsem psal v úvodním příspěvku, PC a telefon nefungují souběžně.

Vždy funguje pouze ten peer, jehož konfigurace byla na MikroTiku naposledy editována (stačí disable a enable).

Pokud dám disable+enable na MK u peera telefonu, tak telefon ve VPN funguje. Připojím se na webconfig MK přes adresu jeho wg1 rozhraní (10.0.20.1), připojím se například na NAS ze sítě 10.0.0.0/24... Ale PC nekomunikuje.

Když pak zákážu a zase povolím peera PC, tak funguje PC. Připojím se přes Winbox na MikroTik přes adresu jeho wg1 rozhraní, dostanu se na NAS ze subnetu 10.0.0.0/24, ale odříznu si zase telefon.

@Ivan Březina

Veřejnou adresu mám přímo na MK a WireGuard mám nastavený jediný.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #8 kdy: 16. 02. 2022, 23:16:04 »
1: WG funguje dobre i za NATem, ale nektere veci proste nezvladne.

Pokud je vice stran za NATem a ani samotny WG server nema verejnou IP adreasu, tak je nutne rozlisit VPNky jinym cislem portu.

Můžeš to rozvést nebo napsat, kdejsto četl. Docela bymětozajímalo.

Zkusil bych ponechat výchozí porty. A pak hloupá otázka na překonrolování - jsou ty veřejné a privátní klíče všech zařízení opravdu unikátní?

Já myslím že zakopaný pes by mohl být v tom endpoint. Protože se často omílá, že  peeři když spolu chtějí komunikovat ,  tak odešlou paket na tu adresu, ze které protistrana komunikovala naposledy... A mám pocit, že ten počítač a telefon, jestli jsou ve stejné síti, že to tam asi může dělat problém. Zkusil bych třeba ještě se připojit přes mobilní data... Nemá router MASQ nastaven nebo hairpinning?

 Viz zde článek na root.cz o wireguard (poslední díl letošní, předchozí 3 díly asi během 2 let)

vpn22

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #9 kdy: 19. 02. 2022, 18:17:51 »
@mikesznovu

Každé zařízení zkouším z jiné sítě.

Klíče jsem kontroloval několikrát. Pokud by byly špatně nastavené, tak by peer nefungoval nikdy. Jenomže on funguje, ale v jednu dobu vždy jen jeden jediný.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #10 kdy: 05. 03. 2022, 21:28:26 »
Taky sem řešil a je to až neuvěřitelně snadné, i když trošku zmatené.
v nastavení peer na routeru je třeba mít např. endpoint 10.0.200.100 a allow IPs 10.0.200.100/32
paradoxně v nastavení IP/address je třeba mít 10.0.200.0/24
další peer pak už 101 atd. a jede to bezproblémů.

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:WireGuard - nefunguje připojení více peerů
« Odpověď #11 kdy: 06. 03. 2022, 00:49:02 »
Taky sem řešil a je to až neuvěřitelně snadné, i když trošku zmatené.
v nastavení peer na routeru je třeba mít např. endpoint 10.0.200.100 a allow IPs 10.0.200.100/32
paradoxně v nastavení IP/address je třeba mít 10.0.200.0/24
další peer pak už 101 atd. a jede to bezproblémů.

Presne to som pisal v komentari vyssie ;-) Aj s vysvetlenim, preco, a ze to nie je zmatene.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #12 kdy: 06. 03. 2022, 15:37:02 »
Ale vždyť jsi ten konfigurační soubor nijak neupravil kromě odstranění 10.0.0.x

A mám pocit, že je ty nastaven /24 vs /32 jsou naopak než na https://ondrej-sika.cz/blog/wireguard/ (Tam nevím jaký je důvod proč firemní počítač má adresu .100/32 když i mac i apple mají .101,.201/24)
Kód: [Vybrat]
[Interface]
PrivateKey = Priv/Office=
Address = 10.10.0.100/32
DNS = 1.1.1.1

Nicméně pokud je někde problém, první co bych vyzkoušel, je redukovat allowedIPs na /32....
Vypozoroval jsem, že pokud se překrývají, tak pakety sice dorazí od protistrany, ale daný pc je neodešle.


Re:WireGuard - nefunguje připojení více peerů
« Odpověď #13 kdy: 06. 03. 2022, 17:10:39 »
Prosímtě neraď, když netušíš, o čem píšeš.

Adresa toho clienta v interface musí být /24, to je dobře, jinak by se ten peer izoloval od ostatních pc v subnetu. To allowed je prakticky routing, routovat traffic chceš určitě do celého /24 subnetu, ne k jednomu konkrétnímu PC, takže neměnit.


Ale vždyť jsi ten konfigurační soubor nijak neupravil kromě odstranění 10.0.0.x

A mám pocit, že je ty nastaven /24 vs /32 jsou naopak než na https://ondrej-sika.cz/blog/wireguard/ (Tam nevím jaký je důvod proč firemní počítač má adresu .100/32 když i mac i apple mají .101,.201/24)
Kód: [Vybrat]
[Interface]
PrivateKey = Priv/Office=
Address = 10.10.0.100/32
DNS = 1.1.1.1

Nicméně pokud je někde problém, první co bych vyzkoušel, je redukovat allowedIPs na /32....
Vypozoroval jsem, že pokud se překrývají, tak pakety sice dorazí od protistrany, ale daný pc je neodešle.

Re:WireGuard - nefunguje připojení více peerů
« Odpověď #14 kdy: 06. 03. 2022, 19:35:36 »
Ale já neradím, já se ptám, protože mi to přišlo že  ja. napsal to samé co tazatel a působilo to na mně, že se tady radí to udělat opačně, ale přitom stejně.

Ale to co říkáš, že Inteface -Address má být /24  to není ve sporu s tím co si myslím. Mimochodem příkaz wg parametr Interface-Address neukazuje, což i souhlasí s tím, že Interface-Address je jen parametr, který wireguard sám nešteluje, ale předává ho linuxovému ip addr add & ip route add - Ano tudiž defacto nastavení adresy a routing.

Ten výstřižek byl nešťastný příklad - na té stránce u ostatních (Mac & Iphone) je Address=/24. Bylo mi divné že zrovna u KlientVFirmě tam bylo /32.

2) A Moje praktická zkušenost, že jakmile se AllowedIps začnou překrývat, najednou začnou problémy, že někde se budou ztrácet pakety. A konkrétně jsem lokalizoval i kde: Ten u koho se překrývají, je zdroj problémů - neposílá pakety zpět. (patrně ani se nedostanou aplikaci, která naslouchá na portu). Což obvykle není  vpn klient, který má jednoho peera( VPN server) ale VPN server, který má víc peerů a tudíž víc AllowerdIPs S Vědomím že VPN klient může být i  router (v případě multiSites-to-Server * VPN, pak allowed IPS na serveru je třeba 10.0.1.0/24 10.0.2.0/24  10.0.3./24 apod, ), routery pak mají mají v allowed IPS 10.0.0.0/16 (Dodatek: InterfaceAddress bude taky /16)


* multiSites-to-Server : mé unikátní označení, že ty routery peerují jen s hlavním master serverem. Přišlo mi to názorější než site-to-site
« Poslední změna: 06. 03. 2022, 19:39:57 od mikesznovu »