29 lines
723 B
Nix
29 lines
723 B
Nix
let build = iface: mac: rest: {
|
|
systemd.network.enable = true;
|
|
systemd.network.links."${iface}" = {
|
|
linkConfig.Name = iface;
|
|
matchConfig.PermanentMACAddress = mac;
|
|
};
|
|
systemd.network.networks."${iface}".enable = true;
|
|
} // rest; in
|
|
{
|
|
bridge = bridge: ip: gateway: build {
|
|
systemd.network.networks."${iface}".bridge = [ bridge ];
|
|
systemd.network.networks."${bridge}" = {
|
|
address = [ ip ];
|
|
gateway = [ gateway ];
|
|
};
|
|
systemd.network.netdevs."${bridge}" = {
|
|
netdevConfig = {
|
|
Name = bridge;
|
|
Kind = "bridge";
|
|
};
|
|
};
|
|
};
|
|
dhcp = build {
|
|
systemd.network.networks."${iface}" = {
|
|
DHCP = "yes";
|
|
};
|
|
};
|
|
}
|