From b6e72504d62e2f68c8c3d445f0215b98ad289268 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Fri, 30 Jun 2023 10:17:33 +0100 Subject: [PATCH] ipv6 default route needs to specify the ppp0 *peer* address not the local address --- examples/rotuer.nix | 11 ++++++++++- modules/busybox.nix | 1 + pkgs/liminix-tools/networking/default.nix | 9 +++++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/rotuer.nix b/examples/rotuer.nix index 4c9ce5d1..d37ece1c 100644 --- a/examples/rotuer.nix +++ b/examples/rotuer.nix @@ -220,12 +220,20 @@ in rec { }; services.defaultroute4 = route { - name = "defaultroute"; + name = "defaultroute4"; via = "$(output ${services.wan} address)"; target = "default"; dependencies = [ services.wan ]; }; + services.defaultroute6 = route { + name = "defaultroute6"; + via = "$(output ${services.wan} ipv6-peer-address)"; + target = "default"; + dev = "$(output ${services.wan} ifname)"; + dependencies = [ services.wan ]; + }; + services.firewall = let script= pkgs.firewallgen "firewall.nft" (import ./rotuer-firewall.nix); @@ -307,6 +315,7 @@ in rec { hostap5 ntp defaultroute4 + defaultroute6 packet_forwarding dns resolvconf diff --git a/modules/busybox.nix b/modules/busybox.nix index aeaa0a8a..953c3103 100644 --- a/modules/busybox.nix +++ b/modules/busybox.nix @@ -72,6 +72,7 @@ in { FEATURE_EDITING_MAX_LEN = "1024"; FEATURE_TAB_COMPLETION = "y"; FEATURE_EDITING_WINCH = "y"; + FEATURE_IPV6 = "y"; }; }; filesystem = dir { diff --git a/pkgs/liminix-tools/networking/default.nix b/pkgs/liminix-tools/networking/default.nix index 22fe6dd0..6080ad7c 100644 --- a/pkgs/liminix-tools/networking/default.nix +++ b/pkgs/liminix-tools/networking/default.nix @@ -45,14 +45,15 @@ in { pppoe = callPackage ./pppoe.nix {}; dnsmasq = callPackage ./dnsmasq.nix {}; hostapd = callPackage ./hostapd.nix {}; - route = { name, target, via, dependencies }: - oneshot { + route = { name, target, via, dependencies, dev ? null }: + let with_dev = if dev != null then "dev ${dev}" else ""; + in oneshot { inherit name; up = '' - ip route add ${target} via ${via} + ip route add ${target} via ${via} ${with_dev} ''; down = '' - ip route del ${target} via ${via} + ip route del ${target} via ${via} ${with_dev} ''; inherit dependencies; };