Wireguard IPv6 Problem

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 16:22:51

Hallo zusammen,
ich habe einen Wireguardserver auf einem OpenWRT-Router laufen und unter IPv4 funktioniert alles bestens, von überall aus. Nun möchte ich den ersten Debian-Client hinzufügen (bisher Windows, Android, iOS) und scheitere an IPv6 wie es scheint.
Gespeckert habe ich schon in diesem Thread: viewtopic.php?t=175628

Hier mal ein Screenshot auf dem man die Interfaces von OpenWRT sieht und rechts das Fenster mit Wireguard:

https://transfer.sh/9GWY9q/Bildschirmfo ... -03-52.png

Auf dem Screenshot funktioniert alles, da dies von intern ist. Sobald ich es von extern probiere bekomme ich keinen Handshake hin. Die aufgelöste v6-Adresse passt meiner Meinung nach, aber auch wenn ich in der Client Config von Wireguard z.B. die [2003:c7:4f48:4300::1]:51902 direkt als Endpoint eingebe funktioniert es leider nicht. Es scheitert extern immer schon am Handshake. Unter Android und Co. funktioniert alles problemlos da dort einfach IPv4 benutzt wird und das scheint zu funktionieren.

Hier mal die Client Config:

Code: Alles auswählen

[Interface]
PrivateKey = Private Key Client
Address = 192.168.20.8/24, fd42:42:42::2/64, fd3b:ec65:a318::2/64, 2003:c7:4f48:4300::2/64
MTU = 1400

[Peer]
PublicKey = Public Key Server
Endpoint = mydomain.net:51902
AllowedIPs = 192.168.178.0/24, 192.168.20.0/24
#, 0.0.0.0/0, ::/0
Ein Ping intern auf

Code: Alles auswählen

ping6 fd42:42:42::1
gibt

Code: Alles auswählen

From fd42:42:42::2 icmp_seq=4 Destination unreachable: Address unreachable
ping6: sendmsg: Der notwendige Schlüssel ist nicht verfügba
Extern scheitert es wie gesagt schon am Handshake.

Hier mal eine Übersicht vom Client:

Code: Alles auswählen

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1400
        inet 192.168.20.8  netmask 255.255.255.0  destination 192.168.20.8
        inet6 fd42:42:42::2  prefixlen 64  scopeid 0x0<global>
        inet6 2003:c7:4f48:4300::2  prefixlen 64  scopeid 0x0<global>
        inet6 fd3b:ec65:a318::2  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 2331  bytes 1658944 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2245  bytes 312480 (305.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Was ich nicht verstehe ist, dass die v6-Adresse vom Wireguard-Interface 2003:c7:4f48:4300::1, extern problemlos pingbar ist, aber Wireguard da keinen Handshake zustande bekommt.

Vielleicht hat ja jemand eine schlaue Idee.

Vielen Dank!

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 28.08.2022 16:45:31

Wie sieht die Wirguard Config deines Servers aus?

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 16:52:14

Reicht das, oder habe ich noch was vergessen?

Code: Alles auswählen

config interface 'WG0'
	option proto 'wireguard'
	option private_key 'PRIVATE KEY'
	option listen_port '51902'
	option ip6assign '64'
	list addresses '192.168.20.1/24'
	list addresses 'fd42:42:42::1/64'


config wireguard_WG0
	option description 'PJelly'
	option public_key 'PUBLIC KEY'
	option route_allowed_ips '1'
	list allowed_ips '192.168.20.8/32'
	list allowed_ips 'fd42:42:42::2/128'
	list allowed_ips 'fd3b:ec65:a318::2/64'
	list allowed_ips '2003:c7:4f48:4300::2'


Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 28.08.2022 18:21:12

Kannst du bitte mal prüfen, das du die Schlüssel wirklich korrrekt verteilt hast und führe mal auf beiden Seiten aus:

Code: Alles auswählen

wg show

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 19:14:06

Die Schlüssel stimmen leider wirklich wirklich überein, das passt leider :).

Hier mal wg show vom Router:

Code: Alles auswählen

interface: WG0
  public key: XhSZD...30=
  private key: (hidden)
  listening port: 51902

peer: 9JF.....Hw=
  endpoint: [2003:c7:4fff:4988:48:c92e:d329:c9ca]:43400
  allowed ips: 192.168.20.8/32, fd42:42:42::2/128
  latest handshake: 2 minutes, 26 seconds ago
  transfer: 1.70 MiB received, 24.23 MiB sent
und vom Client, von intern:

Code: Alles auswählen

interface: wg0
  public key: 9Jg.....Hw=
  private key: (hidden)
  listening port: 43400
  fwmark: 0xca6c

peer: XhS....230=
  endpoint: [2003:c7:4fff:4988:a80a:61af:c5c6:95db]:51902
  allowed ips: 0.0.0.0/0, ::/0
  latest handshake: 26 seconds ago
  transfer: 820.17 KiB received, 176.23 KiB sent


Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 28.08.2022 19:24:29

Auf dem OpenWRT Router beginnt der Pubkey mit 9JF auf dem Client mit 9Jg, da passt was nicht zusammen!

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Wireguard IPv6 Problem

Beitrag von mat6937 » 28.08.2022 19:44:26

Alternativende hat geschrieben: ↑ zum Beitrag ↑
28.08.2022 16:22:51
Hier mal eine Übersicht vom Client:

Code: Alles auswählen

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1400
        inet 192.168.20.8  netmask 255.255.255.0  destination 192.168.20.8
        inet6 fd42:42:42::2  prefixlen 64  scopeid 0x0<global>
        inet6 2003:c7:4f48:4300::2  prefixlen 64  scopeid 0x0<global>
        inet6 fd3b:ec65:a318::2  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 2331  bytes 1658944 (1.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2245  bytes 312480 (305.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Warum hat das wg0-Interface des Clienten, vier IP-Adressen? Eine einzige IPv4-Adresse würde doch reichen, oder?
Wenn alle WG-peers (Server, Clients) IPv6 können, machst Du den WG-Tunnel mit IPv6 und im Tunnel benutzt Du z. B. IPv4.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 19:50:40

Leider nicht, da habe ich unglücklich gekürzt. Hier noch mal beide Seiten komplett ungekürzt. Der Client kommt diesmal über ein LTE Hotspot.

Client:

Code: Alles auswählen

interface: wg0
  public key: 9JFHw=
  private key: (hidden)
  listening port: 56077
  fwmark: 0xca6c

peer: Xh0=
  endpoint: [2003:c7:4fff:4988:a80a:61af:c5c6:95db]:51902
  allowed ips: 0.0.0.0/0, ::/0
  transfer: 0 B received, 888 B sent
Router:

Code: Alles auswählen

interface: WG0
  public key: N230=
  private key: (hidden)
  listening port: 51902

peer: 9Jg=
  endpoint: [2003:c7:4fff:4988:48:c92e:d329:c9ca]:43400
  allowed ips: 192.168.20.8/32, fd42:42:42::2/128
  latest handshake: 13 minutes, 42 seconds ago  #Der war dann von intern
  transfer: 1.88 MiB received, 25.15 MiB sent
Zuletzt geändert von Alternativende am 03.09.2022 12:47:49, insgesamt 2-mal geändert.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 19:52:27

mat6937 hat geschrieben: ↑ zum Beitrag ↑
28.08.2022 19:44:26
Warum hat das wg0-Interface des Clienten, vier IP-Adressen? Eine einzige IPv4-Adresse würde doch reichen, oder?
Wenn alle WG-peers (Server, Clients) IPv6 können, machst Du den WG-Tunnel mit IPv6 und im Tunnel benutzt Du z. B. IPv4.
Das wäre auch das was ich machen möchte. Auf meine v4 Dienste zugreifen. Die anderen v6-Adressen sind durchs ausprobieren entstanden.

Nur v4-Adressen zu verwenden reicht nicht aus, so wie ich das sehe. Debian gibt bei einer vorhandenen v6-Adresse dieser den Vorzug, zumindest bei Wireguard und so wie ich das bisher im Netz gesehen habe muss der v6-Teil schon konfiguriert sein beim Client.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Wireguard IPv6 Problem

Beitrag von mat6937 » 28.08.2022 20:02:55

Alternativende hat geschrieben: ↑ zum Beitrag ↑
28.08.2022 19:52:27
Nur v4-Adressen zu verwenden reicht nicht aus, so wie ich das sehe. Debian gibt bei einer vorhandenen v6-Adresse dieser den Vorzug, zumindest bei Wireguard und so wie ich das bisher im Netz gesehen habe muss der v6-Teil schon konfiguriert sein beim Client.
Du bringst hier etwas durcheinander. Was _im_ Tunnel (wg0-Interface) benutzt wird, legst Du fest bzw. entscheidest Du.
Du solltest dich mit den basics von WireGuard vertraut machen.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 20:08:01

Ich habe aber auch einen Peer bei dem nur v4-Adressen konfiguriert sind, welcher aber leider ebenfalls keinen handshake hinbekommt. Auch dieser Client löst die DynDNS-Adresse mit der V6 auf und bekommt den Handshake nicht hin.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 28.08.2022 20:15:53

Check bitte mal deine MTU, der Client ist auf 1400 gestellt und der Server?

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 20:36:30

Habe ich jetzt auch mal auf 1400 gestellt, hat leider keinen Effekt gehabt.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Wireguard IPv6 Problem

Beitrag von mat6937 » 28.08.2022 20:39:58

Alternativende hat geschrieben: ↑ zum Beitrag ↑
28.08.2022 20:36:30
... hat leider keinen Effekt gehabt.
Poste mal hier die vollständige WG-Konfiguration für zwei WG-Peers (Server und Client).

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 28.08.2022 21:03:54

Hoffe das passt so.

Code: Alles auswählen


CLIENT1

[Interface]
PrivateKey = PRIVATE KEY
Address = 192.168.20.8/24, fd42:42:42::2/64, fd3b:ec65:a318::2/64, 2003:c7:4f48:4300::2/64
MTU = 1420

[Peer]
PublicKey = X30=
Endpoint = mydomain.net:51902
AllowedIPs = 0.0.0.0/0, ::/0


CLIENT1 ROUTER

config wireguard_WG0
	option description 'PJ'
	option public_key '9Jgw='
	option route_allowed_ips '1'
	list allowed_ips '192.168.20.8/32'
	list allowed_ips 'fd42:42:42::2/128'
	list allowed_ips 'fd3b:ec65:a318::2/64'
	list allowed_ips '2003:c7:4f48:4300::2'

ROUTER

config interface 'WG0'
	option proto 'wireguard'
	option private_key PIRVATE KEY
	option listen_port '51902'
	option ip6assign '64'
	list addresses '192.168.20.1/24'
	list addresses 'fd42:42:42::1/64'
	option mtu '1420'


CLIENT2 ROUTER

config wireguard_WG0
	list allowed_ips '192.168.20.5/32'
	option route_allowed_ips '1'
	option description 'L9'
	option public_key 'PUBLIC KEY CLIENT2'


CLIENT 2

[Interface]
PrivateKey = PRIVATE KEY
Address = 192.168.20.5/32


[Peer]
PublicKey = X230=
Endpoint = mydomain.net:51902
AllowedIPs = 0.0.0.0/0, ::/0
Ps.
Habe es mit MTU 1400, 1420 und ohne probiert.
Zuletzt geändert von Alternativende am 03.09.2022 12:48:13, insgesamt 1-mal geändert.

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Wireguard IPv6 Problem

Beitrag von mat6937 » 28.08.2022 21:10:32

Alternativende hat geschrieben: ↑ zum Beitrag ↑
28.08.2022 21:03:54
Hoffe das passt so.
Nein, das passt nicht. Ich wollte einen WG-Client und einen WG-Server sehen, die miteinander verbunden sind.

EDIT:

Hier als Beispiel eine ganz einfache und funktionierende WG-Konfiguration für WG-Client (ohne systemd) und WG-Server (mit systemd):
WG-Client:

Code: Alles auswählen

:~ # cat /usr/local/etc/wireguard/wg1.conf
[Interface]
Address = 192.168.22.99/24
MTU = 1392
PrivateKey = *******
ListenPort = 33333

[Peer]
PublicKey = ############
Endpoint = <externe-IP-Adresse-Server>:44444
AllowedIPs = 192.168.22.1/32
PersistentKeepalive = 49
WG-Server:

Code: Alles auswählen

:~# cat /etc/systemd/network/wg0.network
[Match]
Name=wg0

[Link]
MTUBytes=1392
RequiredForOnline=no

[Network]
DHCP=no
LinkLocalAddressing=no
Address=192.168.22.1/24
DNS=1.1.1.1
DNS=9.9.9.9
IPForward=ipv4
IPMasquerade=yes
BindCarrier=eth0
ConfigureWithoutCarrier=true
IgnoreCarrierLoss=true

Code: Alles auswählen

:~# cat /etc/systemd/network/wg0.netdev
[Match]
Host=<machine-id>

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuardServer

[WireGuard]
PrivateKey = ########
ListenPort = 44444

[WireGuardPeer]
#Client
PublicKey = ***********
AllowedIPs = 192.168.22.99/32
PersistentKeepalive = 59

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 29.08.2022 08:16:59

Okay. Ich schaue später noch mal nach den Configs.

Kannst du mir zufällig sagen wo ich die Configs bei OpenWRT finde? Ist das alles in /etc/config/network?

Sorry in Sachen Wireguard und OpenWRT bin ich absoluter Neuling. Danke jedenfalls für die geduldige Hilfe :).

mat6937
Beiträge: 2927
Registriert: 09.12.2014 10:44:00

Re: Wireguard IPv6 Problem

Beitrag von mat6937 » 29.08.2022 08:30:54

Alternativende hat geschrieben: ↑ zum Beitrag ↑
29.08.2022 08:16:59
Kannst du mir zufällig sagen wo ich die Configs bei OpenWRT finde?
Nein, ... weil ich OpenWRT nie benutzt habe.

EDIT:

BTW: Da sieht man wieder den Nachteil, wenn jeder Hersteller meint seine eigenes WEB-IF zur Verfügung stellen zu müssen, statt für solche Konfigurationen, einheitliche/OS-übergreifende Textdateien/Syntax benutzen zu können/dürfen.

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 29.08.2022 16:25:09

Wirf mal auf allen Seiten die MTU raus und prüfe mal auf beiden Seiten deine Firewallregeln

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 29.08.2022 18:40:12

MTU weg, leider keine Veränderung. Es wird dann standardmäßig 1420 gesetzt. Ich hab auch mal den Standardport 51820 verwendet, auch ohne Erfolg.
Android, iOS und Windows die sich mittels ipv4 verbinden haben weiterhin keine Probleme. Ich habe auch mal alle ipv6-Adressen beim Debian-Client aus der WG Config entfernt, bringt aber auch nichts da er ja automatisch die v6-Adresse benützt.

Firewallconfig vom OpenWRT kann ich gerne posten, auf dem Client ist nichts mit Firewall, nur Debian und dann per Hotspot über Handy raus.

Hier die FWConfig: https://nopaste.debianforum.de/41791

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 29.08.2022 19:23:29

Alternativende hat geschrieben: ↑ zum Beitrag ↑
29.08.2022 18:40:12
Hier die FWConfig: https://nopaste.debianforum.de/41791
Kannst du einfach die Ausgabe von iptables-save und ip6tables-save posten, die OpenWRT Config kann ich nicht gegenlesen.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 31.08.2022 16:17:24

Hat ein bisschen gebraucht bis ich herausgefunden habe wie man das mit OpenWRT macht. Geht alles über fw3 print -S, sorry.

https://nopaste.debianforum.de/41792

Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 01.09.2022 12:49:52

Also wenn ich deine Firewall richtig interpretiere, dann hast du WAN-seitig für eingehenden Trafik den Wireguard-Port einfach nicht geöffnet.

Alternativende
Beiträge: 2091
Registriert: 07.07.2006 18:32:05

Re: Wireguard IPv6 Problem

Beitrag von Alternativende » 01.09.2022 19:42:28

Für Ipv6 scheint das zu stimmen. Scheinbar brauche ich noch eine Traffic Rule, ich habe jetzt einige Varianten ausprobiert aber bisher habe ich die richtige noch nicht gefunden.

Folgendes habe ich z.B. probiert.

Code: Alles auswählen

config rule
	option name 'wgv6test'
	option family 'ipv6'
	option src 'wan'
	option src_port '51902'
	option target 'ACCEPT'
	list proto 'udp'
	list dest_ip 'fd42:42:42::1'


Benutzeravatar
bluestar
Beiträge: 2336
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Wireguard IPv6 Problem

Beitrag von bluestar » 01.09.2022 20:28:08

Alternativende hat geschrieben: ↑ zum Beitrag ↑
01.09.2022 19:42:28
Für Ipv6 scheint das zu stimmen.
Nein ich spreche von IPv4 und IPv6.
Alternativende hat geschrieben: ↑ zum Beitrag ↑
01.09.2022 19:42:28
Folgendes habe ich z.B. probiert.

Code: Alles auswählen

config rule
	option name 'wgv6test'
	option family 'ipv6'
	option src 'wan'
	option src_port '51902'
	option target 'ACCEPT'
	list proto 'udp'
	list dest_ip 'fd42:42:42::1'
Das macht eigentlich keinerlei Sinn, aus wan (Internet) kommen niemals Pakete, die an eine private IP addressiert sind.

Du brauchst in etwa folgende Regeln:

Code: Alles auswählen

config rule
	option name 'VPN incoming over IPv6'
	option family 'ipv6'
	option src 'wan'
	option dst_port '51902'
	option target 'ACCEPT'

config rule
	option name 'VPN incoming over IPv4'
	option family 'ipv4'
	option src 'wan'
	option dst_port '51902'
	option target 'ACCEPT'
Danach sollten VPN-Pakete aus wan (Internet) zu dem Server möglich sein.

Korrektur: src_port durch dst_port ersetzt
Zuletzt geändert von bluestar am 02.09.2022 15:29:02, insgesamt 1-mal geändert.

Antworten