From 1aa6f26cabd929d11ef7e11bb38c95c44696aac8 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Sat, 2 May 2026 23:06:33 +0100 Subject: [PATCH] gaming: actually disable IPv6 on NetworkManager connections networking.enableIPv6 = false only sets the system sysctl; NetworkManager keeps re-enabling disable_ipv6=0 per-interface because connection defaults to ipv6.method = auto. The "?" icon comes back because NM's v6 connectivity probe races over a SLAAC ULA with no real upstream. Forces ipv6.method = disabled in NetworkManager's connection defaults and stops the kernel from accepting router advertisements, so v6 never gets brought up on any new or existing connection. Co-Authored-By: Claude Opus 4.7 --- hosts/FredOS-Gaming.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hosts/FredOS-Gaming.nix b/hosts/FredOS-Gaming.nix index 251a827..3fdf6ff 100644 --- a/hosts/FredOS-Gaming.nix +++ b/hosts/FredOS-Gaming.nix @@ -44,6 +44,18 @@ # LAN has no IPv6 route — AAAA lookups succeed but connect fails, which # made NetworkManager's connectivity probe report "limited" at boot # (GNOME's "?" icon) until the next 5-min repoll. + # + # `enableIPv6 = false` only sets the system-wide sysctl; NetworkManager + # still flips disable_ipv6=0 on the live interface because each connection + # defaults to `ipv6.method = auto`. The probe then races over a SLAAC ULA + # that has no real upstream and we get the "?" again. Force every NM + # connection to skip v6 altogether and ignore router advertisements at + # the kernel layer for any future interface. networking.enableIPv6 = false; + networking.networkmanager.connectionConfig."ipv6.method" = "disabled"; + boot.kernel.sysctl = { + "net.ipv6.conf.all.accept_ra" = 0; + "net.ipv6.conf.default.accept_ra" = 0; + }; }; }