{config, lib, pkgs, ...}: { boot.kernel.sysctl = { "net.ipv4.conf.all.forwarding" = true; "net.ipv6.conf.all.forwarding" = true; }; networking = { interfaces = { # wan wifi wlo1.useDHCP = true; # cri enp1s0.useDHCP = true; # HPE enp2s0 = { useDHCP = false; ipv4.addresses = [{ address = "129.199.156.112"; prefixLength = 32; }]; mtu = 9000; }; # thurne enp3s0 = { useDHCP = false; ipv4.addresses = [{ address = "192.168.42.1"; prefixLength = 24; }]; mtu = 9000; }; }; nat = { enable = true; extraCommands = '' iptables -t nat -A POSTROUTING -o wlo1 -j MASQUERADE iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE ''; }; firewall = { enable = true; extraCommands = '' iptables -A FORWARD -i enp3s0 -o wlo1 -j ACCEPT iptables -A FORWARD -i wlo1 -o enp3s0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp3s0 -o enp1s0 -j ACCEPT iptables -A FORWARD -i enp1s0 -o enp3s0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i enp2s0 -o enp1s0 -j ACCEPT iptables -A FORWARD -i enp1s0 -o enp2s0 -j ACCEPT ''; }; }; services.dnsmasq = { enable = true; settings = { interface = [ "enp2s0" "enp3s0" ]; bind-dynamic = true; dhcp-option = "3,0.0.0.0"; dhcp-range = "192.168.42.2,192.168.42.254,255.255.255.0,12h"; # dhcp-host = "a8:b1:3b:75:6f:92,129.199.224.96"; }; }; }