Sample Header Ad - 728x90

Debugging IPv6 connectivity in fresh Debian 12 installation

1 vote
0 answers
2744 views
### Context I installed Debian 12 in my machine a couple of days ago, and since then I have been facing some issues with (outbound) IPv6 networking. From my investigation so far (having gone through infinitely many related posts on this and other Linux forums, none of which have been particularly helpful), it seems to me the default gateway for IPv6 is misconfigured, but I'm currently at my wit's end on how to proceed from here. ### Reproducing the issue A simple ping suffices to illustrate it:
$ ping -6 example.org                                                                                                                                                                                           
PING example.org(2606:2800:220:1:248:1893:25c8:1946 (2606:2800:220:1:248:1893:25c8:1946)) 56 data bytes                                                                                                            
^C                                                                                                                                                                                                                 
--- example.org ping statistics ---                                                                                                                                                                                
18 packets transmitted, 0 received, 100% packet loss, time 17394ms
whereas it works with _regular_ IPv4:
$ ping -4 example.org                                                                                                                                                                                           
PING  (93.184.216.34) 56(84) bytes of data.                                                                                                                                                                        
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=1 ttl=52 time=116 ms                                                                                                                                         
64 bytes from 93.184.216.34 (93.184.216.34): icmp_seq=2 ttl=52 time=194 ms                                                                                                                                         
^C                                                                                                                                                                                                                 
---  ping statistics ---                                                                                                                                                                                           
2 packets transmitted, 2 received, 0% packet loss, time 1002ms                                                                                                                                                     
rtt min/avg/max/mdev = 116.459/155.372/194.285/38.913 ms
The issue is not limited to ICMP packets, wget and curl also fail to establish connection if targeting an IPv6 address. This also shows DNS is not the problem here, since the IPv6 address is succesfully resolved. ### Setup As mentioned, my setup is a recent installation of Debian 12 with GNOME. This means networking is handled by Network Manager, where the IPv6 method is set to auto and ip6-privacy is enabled (I already tried disabling it to no avail). Output from relevant commands:
$ sudo dmesg | grep IPv6                                      
[10528.771325] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[10559.614635] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[18402.308519] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[18406.196405] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
[18444.190916] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
So it looks like IPv6 is enabled at the kernel level (?).
$ ip -6 route                                                 
2a00:d100:18e2:9f00::/64 dev wlp2s0 proto ra metric 600 pref medium
fe80::/64 dev wlp2s0 proto kernel metric 1024 pref medium
default via fe80::1 dev wlp2s0 proto ra metric 600 pref medium
From what I can tell, fe80:: is meant for [local networking](https://en.wikipedia.org/wiki/Link-local_address#IPv6) so it should not be where requests are routed to by default. On the other hand, `2a00:d100:18e2:9f00::/56 is the value my router claims for _prefix delegation_, but I am not entirely sure what that means. I tried to set it as the default gateway (with sudo route add -A inet6 default gw 2a00:d100:18e2:9f00::`), but that didn't do the trick either.
$ sudo route -A inet6                                                                                                                                                                                       
Kernel IPv6 routing table                                                                                
Destination                    Next Hop                   Flag Met Ref  Use If                                                                                                                                     
2a00:d100:18e2:9f00::/64       [::]                       U    600 1      0 wlp2s0                                                                                                                                 
fe80::/64                      [::]                       U    1024 1      0 wlp2s0                                                                                                                                
[::]/0                         _gateway                   UG   600 5      0 wlp2s0                                                                                                                                 
localhost/128                  [::]                       Un   0   7      0 lo                                                                                                                                     
zenbook/128                    [::]                       Un   0   3      0 wlp2s0                                                                                                                                 
zenbook/128                    [::]                       Un   0   2      0 wlp2s0                                                                                                                                 
zenbook/128                    [::]                       Un   0   3      0 wlp2s0                                                                                                                                 
ff00::/8                       [::]                       U    256 6      0 wlp2s0                                                                                                                                 
[::]/0                         [::]                       !n   -1  1      0 lo
$ traceroute -6 google.com
traceroute to google.com (2a00:1450:4003:80f::200e), 30 hops max, 80 byte packets                                                                                                                                  
 1  * * *                                                                                                
 2  * * *                                                                                                
 3  * * *                                                                                                
[continues ...]
28  * * *
29  * * *
30  * * *
If any other command output is required in order to make progress, please let me know in the comments. Any help with this is appreciated.
Asked by cronos2 (203 rep)
Aug 29, 2023, 02:15 PM
Last activity: Aug 31, 2023, 11:17 AM