{ # 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 { }; 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 ]; }; }