32 lines
867 B
Nix
32 lines
867 B
Nix
{
|
|
# To get the MAC address of each card, use this command: cat /sys/class/net/*device_name*/address
|
|
# Make sure to use the lower-case hex values in your udev rules. It does not like upper-case.
|
|
wanInterface, wirelessInterfaces, lanInterfaces,
|
|
internalRouterIP,
|
|
internalPrefixLength? 24,
|
|
internalBridgeInterfaceName? "lan"
|
|
}:
|
|
|
|
let pkgs = import <nixpkgs> { };
|
|
in {
|
|
networking = {
|
|
enableIPv6 = false; # TODO
|
|
nat = {
|
|
enable = true;
|
|
externalInterface = wanInterface;
|
|
internalInterfaces = [ internalBridgeInterfaceName ];
|
|
};
|
|
|
|
bridges.lan.interfaces = lanInterfaces ++ wirelessInterfaces;
|
|
interfaces.lan = {
|
|
ipv4 = {
|
|
addresses = [{
|
|
address = internalRouterIP;
|
|
prefixLength = internalPrefixLength;
|
|
}];
|
|
};
|
|
};
|
|
firewall.trustedInterfaces = [ internalBridgeInterfaceName ];
|
|
};
|
|
|
|
}
|