diff options
Diffstat (limited to 'hosts/carmel/networking.nix')
| -rw-r--r-- | hosts/carmel/networking.nix | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/hosts/carmel/networking.nix b/hosts/carmel/networking.nix deleted file mode 100644 index 99c9796..0000000 --- a/hosts/carmel/networking.nix +++ /dev/null @@ -1,114 +0,0 @@ -{ lib, ... }: -let - ethLink = (name: - (mac: { - matchConfig = { - Type = "ether"; - MACAddress = mac; - }; - linkConfig.Name = name; - })); - - vlanNetdev = (name: - (id: { - netdevConfig = { - Name = name; - Kind = "vlan"; - }; - vlanConfig.Id = id; - })); - - vlanNetwork = (name: - (id: { - matchConfig.Name = name; - - # Embed ID directly in IPv4 address for clarity. - address = [ "192.168.${toString id}.1/24" ]; - })); -in -{ - systemd.network = { - enable = true; - - links."10-wan0" = ethLink "wan0" "a8:a1:59:43:95:36"; - networks."10-wan0" = { - matchConfig.Name = "wan0"; - networkConfig.DHCP = "ipv4"; - dhcpV4Config = { - UseDNS = true; - UseDomains = true; - - # Don't release IPv4 address on restart/reboots - SendRelease = false; - }; - }; - - links."15-mgmt0" = ethLink "mgmt0" "a0:36:9f:fa:5d:6c"; - networks."15-mgmt0" = { - matchConfig.Name = "mgmt0"; - address = [ "192.168.0.1/24" ]; - vlan = [ "iot" "guest" ]; - networkConfig = { - DHCP = "no"; - Domains = "home"; - }; - }; - - # unused interface - links."16-mgmt1" = ethLink "mgmt1" "a0:36:9f:fa:5d:6d"; - - # IoT VLAN. - netdevs."25-iot" = vlanNetdev "iot" 10; - networks."25-iot" = vlanNetwork "iot" 10; - - # Guest VLAN. - netdevs."30-guest" = vlanNetdev "guest" 20; - networks."30-guest" = vlanNetwork "guest" 20; - - # ignore these interfaces, as they are not used - wait-online.ignoredInterfaces = [ "mgmt1" "wlp8s0" ]; - }; - - # don't use systemd-resolved on the router - services.resolved.enable = false; - - networking.hostName = "carmel"; - networking.useDHCP = false; - - networking.firewall = { - enable = true; - allowPing = true; - # If rejectPackets = true, refused packets are rejected rather than dropped (ignored). This - # means that an ICMP "port unreachable" error message is sent back to the client (or a TCP RST - # packet in case of an existing connection). Rejecting packets makes port scanning somewhat - # easier. - rejectPackets = false; - - trustedInterfaces = [ "mgmt0" "iot" "guest" "wg0" ]; - - logRefusedConnections = true; - logRefusedPackets = false; - logReversePathDrops = true; - - interfaces = { - "wan0" = { - allowedTCPPorts = [ - 22 # ssh - 51413 # transmission - ]; - allowedUDPPorts = [ - 35947 # wireguard - 51413 # transmission - ]; - }; - }; - }; - - networking.nat = { - enable = true; - externalInterface = "wan0"; - internalInterfaces = [ "mgmt0" "guest" "iot" ]; - }; - - networking.private-wireguard.enable = true; -} |
