This commit is contained in:
Ehmry - 2019-11-29 21:41:01 +01:00
parent e0c0fe1902
commit dce1a251ce
1 changed files with 19 additions and 14 deletions

View File

@ -1,16 +1,16 @@
{ config, lib }:
{ config, lib, ... }:
with lib;
let
cfg = config.hq.yggdrasil;
hostNameHash = hashString "sha256" networking.hostName;
hextets = map (i: substring (4 * i) (4 * (i + 1)) hostNameHash) [0 1 2 3];
hostNameHash = hashString "sha256" config.networking.hostName;
hextets = map (i: substring (4 * i) (4 * (i + 1)) hostNameHash) [ 0 1 2 3 ];
hostAddr = concatStringsSep ":" hextets;
in
{
in {
options = with types; {
hq.yggdrasil = {
enable = mkEnableOption "Configure Yggdrasil access via the Yggdrasil router";
enable =
mkEnableOption "Configure Yggdrasil access via the Yggdrasil router";
interface = mkOption {
type = nullOr str;
@ -20,14 +20,19 @@ in
};
};
networking.interfaces = optionalAttrs cfg.enable {
"${cfg.interface}.ipv6" = {
addresses = [
{ address = "310:5217:69c0:9afc:${hostAddr}"; prefixLength = 64; }
];
routes = [
{ address = "200::"; prefixLength = 7; via = "310:5217:69c0:9afc::1"; }
];
config = mkIf cfg.enable {
networking.interfaces = {
"${cfg.interface}.ipv6" = {
addresses = [{
address = "310:5217:69c0:9afc:${hostAddr}";
prefixLength = 64;
}];
routes = [{
address = "200::";
prefixLength = 7;
via = "310:5217:69c0:9afc::1";
}];
};
};
};
}