29 lines
720 B
Nix
29 lines
720 B
Nix
|
index: { lib, pkgs, ... }:
|
||
|
let
|
||
|
inherit (lib) mkForce concatMapStringsSep;
|
||
|
inherit (lib.my) net;
|
||
|
inherit (lib.my.c.home) domain prefixes;
|
||
|
|
||
|
mkInterface = name: ''
|
||
|
interface lan-${name} {
|
||
|
AdvSendAdvert on;
|
||
|
AdvRASrcAddress { fe80::1; };
|
||
|
AdvLinkMTU ${toString prefixes."${name}".mtu};
|
||
|
prefix ${prefixes."${name}".v6} {};
|
||
|
RDNSS ${net.cidr.host 1 prefixes."${name}".v6} ${net.cidr.host 2 prefixes."${name}".v6} {};
|
||
|
DNSSL ${domain} {};
|
||
|
};
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
# To be started by keepalived
|
||
|
systemd.services.radvd.wantedBy = mkForce [ ];
|
||
|
|
||
|
services = {
|
||
|
radvd = {
|
||
|
enable = true;
|
||
|
config = concatMapStringsSep "\n" mkInterface [ "hi" "lo" "untrusted" ];
|
||
|
};
|
||
|
};
|
||
|
}
|