[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: update krijg Wireguard niet naar verwachting aan de gang met IPv6



Dank voor het geduld en meedenken

On 25 September 2021 23:24 Geert Stappers, wrote:

> On Sat, Sep 25, 2021 at 09:04:26AM +0200, Gijs Hillenius wrote:
>> Goedenmorgen!
>> 
>> Tijd voor een update. Er zit een (klein) beetje schot in, maar ik ben er
>> nog niet.
>> 
>> /me veegt lei schoon, huidige configuratie onderaan.
>> 
>> 
>> A) IPv4 lijkt het te doen.
>> 
>> Met ping4 kom ik voorbij de server. En, ik kan (als voorbeeld) met ssh
>> -4 een-vriend@shell.xs4all.nl bereiken, en dan toont het me dat ik kom
>> vanaf 144.76.204.189, zoals de bedoeling is.
>> 
>> Mijn conclusie: masquerading werkt,
>> en de firewalld doet zijn werk. Voor IPv4.
>
> Ja, er zal sprake zijn van masquerading.
> Waar het gebeurd heeft het verhaal nog niet vertelt.
> Is het misschien iets wat "ADSL modem router" doet?

Goede vraag. Belgacom/Proximus doet inderdaad NAT voor IPv4 en IPv6, en
roteert (ongeveer 1 keer per jaar) de IP addressen.

Als ik op de client Wireguard *niet* aanzet, dan is het antwoord van ssh
-4 shell.xs4all.nl dat het verkeert komt vanaf 109.146.128.183

zet ik Wireguard aan, dan komt het dus van mijn servertje.


>> b) IPv6 gaat gedeeltelijk goed.
>> 
>> Zowel client en server kan ik nu heen en weer met ping6 bereiken. Maar
>> ik kom niet vanaf de client voorbij de server, niet met ping6, maar ook
>> niet met ssh. Bijvoorbeeld
>> 
>> ssh -6 weer-die-vriend@shell.xs4all.nl
>> (knip)
>> debug1: Connecting to shell.xs4all.nl [2001:888:0:1::9] port 22.
>> 
>> en dan stilte, tot ik ^C doe.
>
> Er zal ook masquerading nodig zijn.  Dan wel iets anders zodat "local
> addresses" ( fc80:: ) niet meer lokale adressen zijn.
>
>
>
>  
>> De configuratie van de client - let op, er staan twee mogelijke IPv[4,6]
>> reeksen, ze doen het beiden (niet tegelijk, uiteraard).
>> 
>> ,----
>> | [Interface]
>> | Address= 10.93.15.2/24, fc80::b85f:d925:971e:110f/64
>> | # een alternatief, werkt ook: Address = 10.66.66.2/24,fd42:42:42::2/64
>> | PrivateKey = <privatekey>
>> | 
>> | [Peer]
>> | PublicKey = P3GrgaFCxj6gc6CnOUPo8vxBtKaOcKa7wa8LoL1oUl0=
>> | Endpoint = [2a01:4f8:200:546b::9e15:1]:51820
>> | AllowedIPs = 0.0.0.0/0, ::/0
>> | PersistentKeepalive = 25
>> `----
>> 
>> en die van de server:
>> 
>> ,----
>> | Interface]
>> | Address = 10.93.15.1/24, fc80::b85f:d925:971e:109f/64
>> | # alternatief, ook goed: Address = 10.66.66.1/24,fd42:42:42::1/64
>> | PrivateKey = <privatekey>
>> | ListenPort = 51820
>> | 
>> | [Peer]
>> | PublicKey = nRwfI98C+AFDaLZuaF1i7YWrj7yQDHrQO07XvivGn2U=
>> | # alternatief: AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
>> | AllowedIPs = 10.93.15.2/32, fc80::b85f:d925:971e:110f/128
>> `----
>> 
>> In de spaarzame vrije tijd heb ik van alles nagelopen.
>> 
>      ...  IPv4 ...
>> 
>> Dan spelde ik https://wiki.debian.org/NetworkConfiguration: mist mijn
>> static configured ethernet device (die van de oops) soms "accept_ra 2"
>> (ik begrijp het helaas nog niet helemaal)
>> 
>> sysctl net.ipv6.conf.all.accept_ra=2 getest
>> 
>> Maar het maakt voor WireGuard niets uit.
>> 
>> Ik zie ook /niets/ relevants in de logs (mezelf kennende zal het er toch
>> wel staan).
>> 
>> Hier een paar van de huidige IPv6 instellingen op de server:
>> 
>> sysctl -a | grep -E 'ipv6.*\.(forwarding|accept_ra) ='
>> net.ipv6.conf.all.accept_ra = 1
>> net.ipv6.conf.all.forwarding = 1
>> net.ipv6.conf.default.accept_ra = 1
>> net.ipv6.conf.default.forwarding = 1
>> net.ipv6.conf.eth0.accept_ra = 0
>> net.ipv6.conf.eth0.forwarding = 1
>> net.ipv6.conf.lo.accept_ra = 1
>> net.ipv6.conf.lo.forwarding = 1
>> net.ipv6.conf.wg0.accept_ra = 1
>> net.ipv6.conf.wg0.forwarding = 1
>
>
> Met de diverse 'forwarding = 1' ben ik het mee eens.
>
> Wat ik hier van de "accept router advertizing" moet vinden,
> weet ik nog niet.
>
>
>  
>> Waarom doe ik al die moeite om Wireguard ook via IPv6 te doen? Tja: ik
>> wil het gewoon in orde hebben, het is net als het strijken van je
>> overhemden. In België wordt IPv6 gewoon goed ondersteund, het werkt goed
>> op mijn LAN, het doet het uitstekend in Debian. WireGuard kan het, dus
>> waarom zou ik het niet doen?
>
> Met alle respect: "Your logic is flawed"

...  zeer wel mogelijk

> Weet dat ik het ook een uitdagend probleem vind.
> Mijn insteek is wel "Waar gaat het kapot?" (vermoeden: Geen NAT)
>
> Gijs zijn insteek is meer "Hoe krijg ik het werkend?"
>
>
> Als we roepen "Het gaat niet"  komt de mensheid nooit vooruit.

Tja uhm. Beschouw de twee als synonym?

>
>  
>> op de server:
>> 
>> ip -6 route
>> ,----
>> | ::1 dev lo proto kernel metric 256 pref medium
>> | 2a01:4f8:200:546b::/64 dev eth0 proto kernel metric 256 pref medium
>> | fd42:42:42::/64 dev wg0 proto kernel metric 256 pref medium
> Dat komt niet overeen met
>   | Address = 10.93.15.1/24, fc80::b85f:d925:971e:109f/64
> Eventueel wel met  
>   | # alternatief, ook goed: Address = 10.66.66.1/24,fd42:42:42::1/64

Goed gezien. Ik had inmiddels die twee reeksen omgewisseld.

>> | fe80::/64 dev eth0 proto kernel metric 256 pref medium
>> | default via 2a01:4f8:200:546b::3 dev eth0 metric 1024 onlink pref medium
>> `----
>> 
>> Mij valt op dat ssh -6 hierboven wel weet welk IP address ie moet
>> hebben.
>> 
>> /etc/resolf.conf op de server (wg0 is up)
>> nameserver 2606:4700:4700::1111
>> nameserver 1.1.1.1
>> 
>> op de client (wg0 is eveneens up)
>> search home
>> nameserver 192.168.1.1
>> 
>> dank voor de aandacht!
>
> Output van `ip -6 route` op client ontbrak.

op de client met WG aan:

ip -6 route
::1 dev lo proto kernel metric 256 pref medium
2a02:a03f:6b2d:b400::/64 dev wlp0s20f3 proto ra metric 600 pref medium
2a02:a03f:6b2d:b400::/56 via fe80::6a15:90ff:fe0c:1641 dev wlp0s20f3 proto ra metric 600 pref medium
fd42:42:42::/64 dev wg0 proto kernel metric 256 pref medium
fe80::/64 dev wlp0s20f3 proto kernel metric 600 pref medium
default via fe80::6a15:90ff:fe0c:1641 dev wlp0s20f3 proto ra metric 600 pref medium


>> Vraag: Hoe tover ik op de wireguard server informatie tevoorschijn die
>> toont waarom het IPv6 verkeer stopt bij de server. Iemand suggesties?
>
> Het echte probleem^Wuitdaging is connectie tussen  wireguard client en
> IPv6 host voorbij wireguard server.  Of dat IPv6 verkeer stopt bij de
> wireguard server is nog niet gebleken, het kan ook zijn de
> netwerkpakketen verder op verloren gaan.
>  
>
>> Tips zijn (zeer) welkom!
>  
> Op WGserver: sudo tcpdump -ni any  port 2309
> Op WGclient: telnet host_achter_server 2309

uitput op de server van (op client) telnet xs4all.nl 2309

,----
| tcpdump -ni any  port 2309
| tcpdump: data link type LINUX_SLL2
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
| 10:01:07.351560 wg0   In  IP 10.66.66.2.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717353847 ecr 0,nop,wscale 7], length 0
| 10:01:07.351590 eth0  Out IP 144.76.204.189.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717353847 ecr 0,nop,wscale 7], length 0
| 10:01:08.370230 wg0   In  IP 10.66.66.2.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717354866 ecr 0,nop,wscale 7], length 0
| 10:01:08.370248 eth0  Out IP 144.76.204.189.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717354866 ecr 0,nop,wscale 7], length 0
| 10:01:10.386263 wg0   In  IP 10.66.66.2.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717356882 ecr 0,nop,wscale 7], length 0
| 10:01:10.386282 eth0  Out IP 144.76.204.189.50640 > 194.109.6.93.2309: Flags [S], seq 1011808921, win 64860, options [mss 1380,sackOK,TS val 2717356882 ecr 0,nop,wscale 7], length 0
`----

uitput op de server van (op client) telnet 6 xs4all.nl 2309

,----
| tcpdump -ni any  port 2309
| tcpdump: data link type LINUX_SLL2
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
| 10:02:07.336031 wg0   In  IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882373628 ecr 0,nop,wscale 7], length 0
| 10:02:07.336058 eth0  Out IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882373628 ecr 0,nop,wscale 7], length 0
| 10:02:08.370035 wg0   In  IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882374662 ecr 0,nop,wscale 7], length 0
| 10:02:08.370054 eth0  Out IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882374662 ecr 0,nop,wscale 7], length 0
| 10:02:10.386058 wg0   In  IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882376678 ecr 0,nop,wscale 7], length 0
| 10:02:10.386075 eth0  Out IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882376678 ecr 0,nop,wscale 7], length 0
| 10:02:14.639624 wg0   In  IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882380930 ecr 0,nop,wscale 7], length 0
| 10:02:14.639642 eth0  Out IP6 fd42:42:42::2.43670 > 2001:888:0:18::93.2309: Flags [S], seq 1028934560, win 65280, options [mss 1360,sackOK,TS val 2882380930 ecr 0,nop,wscale 7], length 0
`----

>
> Vervolgens
> Op WGserver: sudo tcpdump -ni wg0  port 2309
> Op WGclient: telnet host_achter_server 2309

uitput op server van (op client) telnet 4 xs4all.nl 2309

,----
| tcpdump -ni wg0 port 2309
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on wg0, link-type RAW (Raw IP), snapshot length 262144 bytes
| 10:04:46.909365 IP 10.66.66.2.50642 > 194.109.6.93.2309: Flags [S], seq 4180321105, win 64860, options [mss 1380,sackOK,TS val 2717573420 ecr 0,nop,wscale 7], length 0
| 10:04:47.939298 IP 10.66.66.2.50642 > 194.109.6.93.2309: Flags [S], seq 4180321105, win 64860, options [mss 1380,sackOK,TS val 2717574450 ecr 0,nop,wscale 7], length 0
| 10:04:49.955885 IP 10.66.66.2.50642 > 194.109.6.93.2309: Flags [S], seq 4180321105, win 64860, options [mss 1380,sackOK,TS val 2717576466 ecr 0,nop,wscale 7], length 0
`----

uitput op server van (op client) telnet 4 xs4all.nl 2309

,----
| tcpdump -ni wg0 port 2309
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on wg0, link-type RAW (Raw IP), snapshot length 262144 bytes
| 10:05:09.792864 IP6 fd42:42:42::2.43672 > 2001:888:0:18::93.2309: Flags [S], seq 2619383962, win 65280, options [mss 1360,sackOK,TS val 2882556097 ecr 0,nop,wscale 7], length 0
| 10:05:10.817965 IP6 fd42:42:42::2.43672 > 2001:888:0:18::93.2309: Flags [S], seq 2619383962, win 65280, options [mss 1360,sackOK,TS val 2882557122 ecr 0,nop,wscale 7], length 0
| 10:05:12.833963 IP6 fd42:42:42::2.43672 > 2001:888:0:18::93.2309: Flags [S], seq 2619383962, win 65280, options [mss 1360,sackOK,TS val 2882559138 ecr 0,nop,wscale 7], length 0
| 10:05:16.897433 IP6 fd42:42:42::2.43672 > 2001:888:0:18::93.2309: Flags [S], seq 2619383962, win 65280, options [mss 1360,sackOK,TS val 2882563202 ecr 0,nop,wscale 7], length 0
`----


> En ook
> Op WGserver: sudo tcpdump -ni eth0  port 2309
> Op WGclient: telnet host_achter_server 2309

ditto telnet 4
,----
| tcpdump -ni eth0 port 2309
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
| 10:07:17.036282 IP 144.76.204.189.50644 > 194.109.6.93.2309: Flags [S], seq 3149583072, win 64860, options [mss 1380,sackOK,TS val 2717723555 ecr 0,nop,wscale 7], length 0
| 10:07:18.041847 IP 144.76.204.189.50644 > 194.109.6.93.2309: Flags [S], seq 3149583072, win 64860, options [mss 1380,sackOK,TS val 2717724562 ecr 0,nop,wscale 7], length 0
`----

ditto telnet 6

,----
| tcpdump -ni eth0 port 2309
| tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
| listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
| 10:08:06.110814 IP6 fd42:42:42::2.43674 > 2001:888:0:18::93.2309: Flags [S], seq 2765591401, win 65280, options [mss 1360,sackOK,TS val 2882732426 ecr 0,nop,wscale 7], length 0
| 10:08:07.126090 IP6 fd42:42:42::2.43674 > 2001:888:0:18::93.2309: Flags [S], seq 2765591401, win 65280, options [mss 1360,sackOK,TS val 2882733442 ecr 0,nop,wscale 7], length 0
| 10:08:09.143819 IP6 fd42:42:42::2.43674 > 2001:888:0:18::93.2309: Flags [S], seq 2765591401, win 65280, options [mss 1360,sackOK,TS val 2882735458 ecr 0,nop,wscale 7], length 0
`----


Reply to: