Debian IPv6 not working correctly (Trixie) #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Full Diagnostic Report: IPv6 Not Working on Debian
Symptom
IPv6 connections would time out after a long delay before falling back to IPv4, making many applications and websites very slow. Other devices on the same LAN had working IPv6, ruling out the router, ISP, or network infrastructure. The issue had been ongoing for months.
System Details
6.12.74+deb13+1-amd64rtl8168h-2) onenp4s0Investigation Summary
Initial finding:
net.ipv6.conf.enp4s0.accept_rawas0, meaning the interface was ignoring Router Advertisements from the gateway entirely. Without RA, the kernel can't perform SLAAC and never establishes a routable IPv6 address.Things ruled out:
accept_ra=0— none found anywhere in/etc,/usr/lib, or/runnetworking.service— disabled, made no differencenet.ipv6.conf.default.accept_ra— correctly set to1net.ipv6.conf.all.accept_ra— correctly set to1Diagnostic tools used:
inotifywaitwatching/proc/sys/net/ipv6/conf/enp4s0/accept_ra— caught nothing, ruling out/procwritesauditdwatch on the same file — caught nothing, confirming the value was being set via netlink rather than/proc/sys, which bypasses both tools entirelystraceon the NetworkManager process — revealed the kernel was already reportingDEVCONF_ACCEPT_RA=0andIN6_ADDR_GEN_MODE_NONEin the netlink message NM received on connectwatch -n 0.1onaccept_raduring interface creation — confirmed the value starts at0the moment the interface is created and never changesaddr_gen_mode— foundenp4s0/addr_gen_mode=1(IN6_ADDR_GEN_MODE_NONE) whiledefault/addr_gen_mode=0(EUI64)Things tried that didn't fix it:
/etc/sysctl.d/99-ipv6-accept-ra.conf— applied too early, before the interface existedaccept_ra=1on interface up — overridden by NM via netlinkipv6.addr-gen-modetoeui64, thenstable-privacy— NM ignored both and still setaddr_gen_mode=1networking.service— no effectRoot Cause
Debian Bug#1025073 — a known bug in NetworkManager affecting multiple Debian versions.
When NM takes ownership of a network interface it sets
addr_gen_mode=1via netlink as the first step of its IPv6 setup sequence. This value means "I will manage address generation myself" and as a side effect causes the kernel to setaccept_ra=0. NM is then supposed to complete the setup by configuring IPv6 properly and restoringaccept_ra=1— but it never does. The interface is left permanently in this half-configured state.This is why no config file anywhere was setting
accept_ra=0— NM was doing it silently at runtime via netlink every time the connection came up, completely invisible toauditd,inotifywait, and the NM logs themselves.Fix Applied
Setting
ipv6.method=ignoretells NetworkManager to leave IPv6 configuration on this interface entirely alone. With NM out of the way, the kernel handles IPv6 natively: it processes Router Advertisements from the gateway, performs SLAAC, assigns a global IPv6 address, and installs the default route — exactly as it does on every other device on the LAN.Known limitation of this workaround: NM will no longer manage IPv6 DNS on this interface. IPv6 DNS servers advertised via RA or DHCPv6 won't be picked up by NM. IPv4 DNS continues to work normally, so in practice this is unlikely to cause any issues for most use cases.
When a Fix Becomes Available
Monitor https://bugs.debian.org/1025073 for updates. When a fixed version of
network-manageris released and installed on your system, do the following:apt-cache policy network-managersudo nmcli connection modify "Wired connection 1" ipv6.method autosudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"accept_rais now1without the workaround:cat /proc/sys/net/ipv6/conf/enp4s0/accept_raClaude conversation: https://claude.ai/chat/41242f09-7fed-498d-a724-ef0764877525