commit b6e72504d62e2f68c8c3d445f0215b98ad289268
parent 5306b361814c65c9cd16c56f04da5a9e78d7855d
Author: Daniel Barlow <dan@telent.net>
Date: Fri, 30 Jun 2023 10:17:33 +0100
ipv6 default route
needs to specify the ppp0 *peer* address not the local address
Diffstat:
3 files changed, 16 insertions(+), 5 deletions(-)
diff --git 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
@@ -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
@@ -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;
};