liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
Mexamples/rotuer.nix | 11++++++++++-
Mmodules/busybox.nix | 1+
Mpkgs/liminix-tools/networking/default.nix | 9+++++----
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; };