From daa7bef9d5b2371396bf1a701ed5550692c38be5 Mon Sep 17 00:00:00 2001 From: Astro Date: Tue, 6 Apr 2021 22:46:56 +0200 Subject: [PATCH] nixos-module/container/bird: add radv --- nix/nixos-module/container/bird.nix | 38 +++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/nix/nixos-module/container/bird.nix b/nix/nixos-module/container/bird.nix index 009a222..d8be60e 100644 --- a/nix/nixos-module/container/bird.nix +++ b/nix/nixos-module/container/bird.nix @@ -2,6 +2,13 @@ let hostConf = config.site.hosts.${hostName}; + + gatewayNet = + let + m = builtins.match "(.+)-gw" hostName; + in if m == null + then null + else builtins.head m; in { services.bird2 = { @@ -23,16 +30,27 @@ in scan time 10; } - # protocol radv { - # interface "c3d2" { - # min ra interval 10; - # max ra interval 60; - # prefix ::/64 { - # preferred lifetime 20; - # valid lifetime 60; - # }; - # }; - # } + ${lib.optionalString (gatewayNet != null) '' + protocol radv { + rdnss ${config.site.net.serv.hosts6.dn42.dnscache}; + + interface "${gatewayNet}" { + min ra interval 10; + max ra interval 60; + + ${builtins.concatStringsSep "\n" ( + map (subnet6: '' + prefix ::/64 { + preferred lifetime 20; + valid lifetime 60; + }; + '') (builtins.attrValues config.site.net.${gatewayNet}.subnets6) + )} + + dnssl "${config.site.net.${gatewayNet}.domainName}"; + }; + } + ''} protocol ospf v2 ZW4 { area 0 {