mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 08:29:17 +08:00
system.networking: add networkd support
This commit is contained in:
parent
5c280cb15b
commit
8da6495ab7
@ -122,6 +122,7 @@ inputs:
|
|||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
resolved.enable = false;
|
||||||
};
|
};
|
||||||
sops =
|
sops =
|
||||||
{
|
{
|
||||||
|
@ -3,11 +3,14 @@ inputs:
|
|||||||
options.nixos.system.networking = let inherit (inputs.lib) mkOption types; in
|
options.nixos.system.networking = let inherit (inputs.lib) mkOption types; in
|
||||||
{
|
{
|
||||||
hostname = mkOption { type = types.nonEmptyStr; };
|
hostname = mkOption { type = types.nonEmptyStr; };
|
||||||
|
networkd =
|
||||||
|
{
|
||||||
|
dhcp = mkOption { type = types.listOf types.nonEmptyStr; default = []; };
|
||||||
|
};
|
||||||
};
|
};
|
||||||
config =
|
config = let inherit (inputs.config.nixos.system) networking; in inputs.lib.mkMerge
|
||||||
let
|
[
|
||||||
inherit (inputs.config.nixos.system) networking;
|
# general config
|
||||||
in
|
|
||||||
{
|
{
|
||||||
networking =
|
networking =
|
||||||
{
|
{
|
||||||
@ -44,5 +47,31 @@ inputs:
|
|||||||
"net.bridge.bridge-nf-call-ip6tables" = false;
|
"net.bridge.bridge-nf-call-ip6tables" = false;
|
||||||
"net.bridge.bridge-nf-call-arptables" = false;
|
"net.bridge.bridge-nf-call-arptables" = false;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
# networkd
|
||||||
|
(inputs.lib.mkIf (networking.networkd.dhcp != [])
|
||||||
|
{
|
||||||
|
systemd.network =
|
||||||
|
{
|
||||||
|
enable = true;
|
||||||
|
networks = builtins.listToAttrs (builtins.map
|
||||||
|
(network:
|
||||||
|
{
|
||||||
|
name = "10-${network}";
|
||||||
|
value =
|
||||||
|
{
|
||||||
|
matchConfig.name = network;
|
||||||
|
networkConfig =
|
||||||
|
{
|
||||||
|
DHCP = "yes";
|
||||||
|
IPv6AcceptRA = true;
|
||||||
|
};
|
||||||
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
networking.networkd.dhcp);
|
||||||
|
};
|
||||||
|
networking = { useDHCP = false; networkmanager.unmanaged = networking.networkd.dhcp; };
|
||||||
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user