You are not logged in.
**SOLVED**: Turns out my shit TP-Link router had poor/unreliable IPv6 support. Swapping it for a Ubiquiti router instantly solved the problem, not IPv6 reliably as expected on Arch.
I am migrating from Windows to Linux on my desktop, but I'm having trouble getting IPv6 to work. My ISP supports it, it is enabled and configured in my router, and it works on Windows. But when I boot into Arch Linux on the same device, IPv6 refuses to work.
If I try to run "curl -v https://ip6only.me/ --connect-timeout", it just hangs for about 10 seconds until the timeout is reached. According to the Arch wiki, it should be enabled by default, but for some reason it doesn't work.
I'm using NetworkManager with default configuration. I haven't changed anything in /etc/NetworkManager/, or any other network-related setting since I've installed Arch.
Here are some relevant command outputs:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 18:31:bf:cc:94:08 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.108/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s31f6
valid_lft 6370sec preferred_lft 6370sec
inet6 2a02:2f0c:c008:4e00:1010:f45:8bea:849d/64 scope global dynamic noprefixroute
valid_lft 86345sec preferred_lft 14345sec
inet6 2a02:2f0c:c008:4e00:21b9:ec99:8c85:be5/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86345sec preferred_lft 14345sec
inet6 fe80::fa86:1d8:6cdb:b241/64 scope link
valid_lft forever preferred_lft forever
inet6 fe80::f7b3:ca41:251c:bcf3/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet 10.8.0.6/24 brd 10.8.0.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::4c86:b2bb:c16:969b/64 scope link stable-privacy proto kernel_ll
valid_lft forever preferred_lft forever$ ip -6 route
2a02:2f0c:c008:4e00::/64 dev enp0s31f6 proto ra metric 100 pref medium
2a02:2f0c:c008:4e00::/64 dev enp0s31f6 proto ra metric 1002 pref medium
fe80::/64 dev enp0s31f6 proto kernel metric 256 pref medium
fe80::/64 dev tun0 proto kernel metric 256 pref medium
fe80::/64 dev enp0s31f6 proto kernel metric 1024 pref medium
default via fe80::ae84:c6ff:febc:616f dev enp0s31f6 proto ra metric 1002 pref medium
default via fe80::ae84:c6ff:febc:616f dev enp0s31f6 proto ra metric 20100 pref medium$ sudo ip6tables -L
modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/6.9.6-zen1-1-zen
ip6tables v1.8.10 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded.I also have an Arch laptop on the same LAN that uses iwd instead of NetworkManager, and it has no issues connecting to IPv6-only sites.
What could be the issue?
Last edited by SparkyTD (2025-11-21 19:55:45)
Offline
modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/6.9.6-zen1-1-zen
You updated the kernel and didn't reboot?
uname -a
pacman -Qs kernelThen
ip r get 2001:4860:4860::8888
ping -6 -c3 2001:4860:4860::8888
ip r get 2001:4810:0:3::78 # your test domain
ping -6 -c3 2001:4810:0:3::78dig -t AAAA ip6only.meOffline
modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/6.9.6-zen1-1-zen
You updated the kernel and didn't reboot?
I did, but that was for something unrelated. I just rebooted now, and IPv6 still doesn't work.
$ uname -a
Linux archlinux 6.9.8-zen1-1-zen #1 ZEN SMP PREEMPT_DYNAMIC Fri, 05 Jul 2024 22:11:01 +0000 x86_64 GNU/Linux$ pacman -Qs kernel
local/dkms 3.0.12-1
Dynamic Kernel Modules System
local/fuse3 3.16.2-1
Interface for userspace programs to export a filesystem to the Linux kernel
local/iptables 1:1.8.10-2
Linux kernel packet control tool (using legacy interface)
local/kmod 32-1
Linux kernel module management tools and library
local/lib32-libdrm 2.4.122-1
Userspace interface to kernel DRM services (32-bit)
local/libdrm 2.4.122-1
Userspace interface to kernel DRM services
local/libnetfilter_conntrack 1.0.9-2
Library providing an API to the in-kernel connection tracking state table
local/libnfnetlink 1.0.2-2
Low-level library for netfilter related kernel/userspace communication
local/libsysprof-capture 46.0-3
Kernel based performance profiler - capture library
local/linux-api-headers 6.8-1
Kernel headers sanitized for use in userspace
local/linux-zen 6.9.8.zen1-1
The Linux ZEN kernel and modules
local/linux-zen-headers 6.9.8.zen1-1
Headers and scripts for building modules for the Linux ZEN kernel
local/mtdev 1.1.7-1
A stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol
local/nvidia-dkms-tkg 555.52.04-254
NVIDIA kernel module sources (DKMS)
local/openrazer-daemon 3.8.0-1
Userspace daemon that abstracts access to the kernel driver. Provides a DBus service for applications to use
local/openrazer-driver-dkms 3.8.0-1
OpenRazer kernel modules sources$ ip r get 2001:4860:4860::8888
2001:4860:4860::8888 from :: via fe80::ae84:c6ff:febc:616f dev enp0s31f6 proto ra src 2a02:2f0c:c008:4e00:1010:f45:8bea:849d metric 1002 pref medium$ ping -6 -c3 2001:4860:4860::8888
PING 2001:4860:4860::8888 (2001:4860:4860::8888) 56 data bytes
--- 2001:4860:4860::8888 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2047ms$ ip r get 2001:4810:0:3::78 # your test domain
2001:4810:0:3::78 from :: via fe80::ae84:c6ff:febc:616f dev enp0s31f6 proto ra src 2a02:2f0c:c008:4e00:1010:f45:8bea:849d metric 1002 pref medium$ ping -6 -c3 2001:4810:0:3::78
PING 2001:4810:0:3::78 (2001:4810:0:3::78) 56 data bytes
--- 2001:4810:0:3::78 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2067ms$ dig -t AAAA ip6only.me
; <<>> DiG 9.18.27 <<>> -t AAAA ip6only.me
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8605
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f45e56f50603ee94371b97a5668e5dd37d3d60d02d3a2018 (good)
;; QUESTION SECTION:
;ip6only.me. IN AAAA
;; ANSWER SECTION:
ip6only.me. 10800 IN AAAA 2001:4810:0:3::78
;; Query time: 141 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Wed Jul 10 13:09:23 EEST 2024
;; MSG SIZE rcvd: 95Offline
it works on Windows. But when I boot into Arch Linux on the same device
3rd link below. Mandatory.
Disable it (it's NOT the BIOS setting!) and reboot windows and linux twice for voodo reasons.
If that's not it:
tracepath -6 2001:4810:0:3::78There's nothing wrong with the configuration, there's just no response for the IPv6
Offline
it works on Windows. But when I boot into Arch Linux on the same device
3rd link below. Mandatory.
Disable it (it's NOT the BIOS setting!) and reboot windows and linux twice for voodo reasons.If that's not it:
tracepath -6 2001:4810:0:3::78There's nothing wrong with the configuration, there's just no response for the IPv6
Sorry about the late reply, life got in the way.
I have all that windows crap disabled, but I double checked to make sure and yes, secure boot/fast start are off.
Running the command yields this output:
$ tracepath -6 2001:4810:0:3::78
1?: [LOCALHOST] 0.010ms pmtu 1500
1: no reply
2: no reply
3: no reply
4: no reply
5: no reply
6: no reply
7: no reply
8: no reply
9: no reply
10: no reply
...IPv6 still doesn't work
Last edited by SparkyTD (2024-07-16 23:22:28)
Offline
The gateway doesn't respond, there're doubled entries in the routing table :\
ping -6 -c3 2001:4860:4860::8888%enp0s31f6and try to disable what's likely a VPN and causing the tun0 device…
Offline
The gateway doesn't respond, there're doubled entries in the routing table :\
ping -6 -c3 2001:4860:4860::8888%enp0s31f6and try to disable what's likely a VPN and causing the tun0 device…
The command returns the following:
ping: 2001:4860:4860::8888%enp0s31f6: Name or service not knownThe tun0 device is indeed a VPN, it's managed by openvpn3 so I can connect to several corporate networks. Disabling the VPN and the interface doesn't fix the problem unfortunately. And even if it did, it would still be an undesirable solution as I need to use this VPN for my job.
Offline
Sorry wrong context for that syntax ![]()
ping -6 -c3 -I enp0s31f6 2001:4860:4860::8888Edit: the plan would not be to simply abandon the VPN, we just need to figure why you're not getting any response here.
Last edited by seth (2024-07-17 11:42:29)
Offline
Sorry wrong context for that syntax
ping -6 -c3 -I enp0s31f6 2001:4860:4860::8888
No worries. This one seems to time out after a few seconds:
$ ping -6 -c3 -I enp0s31f6 2001:4860:4860::8888
PING 2001:4860:4860::8888 (2001:4860:4860::8888) from 2a02:2f0c:c008:4e00:1010:f45:8bea:849d enp0s31f6: 56 data bytes
--- 2001:4860:4860::8888 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2046msOffline
So despite going over the intended NIC there's no response and from the tracepath the buck stops at the gateway already.
Can you
ping -6 -c3 fe80::ae84:c6ff:febc:616fIn doubt try to reboot the router.
Offline
So despite going over the intended NIC there's no response and from the tracepath the buck stops at the gateway already.
Can youping -6 -c3 fe80::ae84:c6ff:febc:616fIn doubt try to reboot the router.
Timeout, same output as before. I can try rebooting the router, but like I said, if I boot into Windows, IPv6 works without any issues.
I also want to note that I have a second device on a same network running Arch, and it connects to IPv6 with no issues. The only difference is that this second device is a laptop, and it's using iwd as the default network daemon instead of NetworkManager unlike my main workstation.
Last edited by SparkyTD (2024-07-17 12:31:52)
Offline
If you're concerned about the hardware/connection, does IPv4 work?
ping -c3 192.168.1.1Offline
If you're concerned about the hardware/connection, does IPv4 work?
ping -c3 192.168.1.1
Of course, I'm currently messaging you from the system in question.
Normally I wouldn't even be that concerned with IPv6, but my problem is that several scripts and programs try to use it by default which causes timeouts, freezes and other random program errors. Even curl/wget are using it by default whenever they can resolve a AAAA record for a domain, forcing me to specify "-4" every time I run them, which I don't want to do.
Offline
You could disable IPv6 entirely but I'd first try to reboot the router.
Offline
You could disable IPv6 entirely but I'd first try to reboot the router.
Rebooting the router didn't help.
I would still like to figure out the root cause and fix it if possible. The world is slowly moving towards IPv6, so disabling it altogether would only be an absolute last resort for me.
You've mentioned duplicate entries in my routing table. Could that be the cause of the issue? Is there a way to disable/delete the duplicates?
Offline
Eg.
ip r delete default via fe80::ae84:c6ff:febc:616f dev enp0s31f6 proto ra metric 20100 pref mediumThough those will likely have been caused by the VPN?
Have you actually tried to disable that and reboot (the system, not the router)?
It seems to be the most likely suspect.
Do you have several entries for IPv4 as well?
Another thing on top would be to disable NM and simply obtain the lease w/ dhcpcd.
To analyze the situation further you could run wireshark on a ping target and see whether the request makes it there (ie. whether it's an outbound or inbound issue on the problematic host)
Offline