Personal Nix setup

Update ipv6 settings, fixed IP and nftables rules

Changed files
+21 -21
modules
+12 -5
modules/router/network.nix
···
DUIDType = "link-layer";
DUIDRawData = mkIf (extern.adoptMacAddress != null) "00:01:${extern.adoptMacAddress}";
};
+
dhcpPrefixDelegationConfig = mkIf cfg.ipv6 {
+
UplinkInterface = ":self";
+
Announce = false;
+
};
ipv6AcceptRAConfig = mkIf cfg.ipv6 {
UseDNS = false;
UseDomains = false;
···
DHCPServer = true;
IPv4Forwarding = true;
IPv6Forwarding = cfg.ipv6;
-
IPMasquerade = if cfg.ipv6 then "ipv4" else "both";
+
IPMasquerade = "ipv4";
ConfigureWithoutCarrier = true;
MulticastDNS = cfg.mdns;
DHCPPrefixDelegation = cfg.ipv6;
IPv6SendRA = cfg.ipv6;
+
IPv6AcceptRA = mkIf cfg.ipv6 false;
};
fairQueueingControlledDelayConfig = {
Parent = "root";
};
+
dhcpServerStaticLeases = builtins.map (lease: {
+
Address = lease.ipAddress;
+
MACAddress = lease.macAddress;
+
}) cfg.leases;
dhcpServerConfig = {
EmitDNS = true;
EmitNTP = true;
···
DefaultLeaseTimeSec = 43200;
MaxLeaseTimeSec = 86400;
};
-
dhcpServerStaticLeases = builtins.map (lease: {
-
Address = lease.ipAddress;
-
MACAddress = lease.macAddress;
-
}) cfg.leases;
dhcpPrefixDelegationConfig = mkIf cfg.ipv6 {
+
UplinkInterface = extern.name;
+
Token = "static:::1";
Announce = true;
};
};
+9 -16
modules/router/nftables.nix
···
capturePortsRules =
strings.concatStringsSep "\n"
-
(builtins.map (port: " iifname { ${concatIfnames internalInterfaces} } udp dport ${toString port} redirect to ${toString port}") cfg.nftables.capturePorts);
+
(builtins.map (port: ''
+
iifname { ${concatIfnames internalInterfaces} } meta l4proto { tcp, udp } th dport ${toString port} redirect to ${toString port}
+
'') cfg.nftables.capturePorts);
blockForwardRules =
if intern != null then
···
chain postrouting {
type nat hook postrouting priority 0; policy accept;
-
oifname != { ${concatIfnames trustedInterfaces} } masquerade
+
oifname != { ${concatIfnames trustedInterfaces} } meta protocol ip masquerade
}
chain input {
···
ip dscp set cs0
ip6 dscp set cs0
-
ip protocol udp udp sport ntp ip dscp set cs5
-
ip6 nexthdr udp udp sport ntp ip6 dscp set cs5
+
udp sport 53 ip dscp set cs5
+
tcp sport 853 ip dscp set cs5
+
udp sport 123 ip dscp set cs5
+
tcp dport {80, 443} ip dscp set cs3
-
ip saddr {1.1.1.1, 1.0.0.1} ip dscp set cs5
-
ip daddr {1.1.1.1, 1.0.0.1} ip dscp set cs5
-
-
tcp dport {http, https} ip dscp set cs3
-
tcp sport {http, https} ip dscp set cs3
-
ip6 nexthdr tcp tcp dport {http, https} ip6 dscp set cs3
-
ip6 nexthdr tcp tcp sport {http, https} ip6 dscp set cs3
-
-
udp dport 41641 ip dscp set cs4 # tailscale
-
udp sport 41641 ip dscp set cs4 # tailscale
-
-
# mark some VOIP traffic as flash override (low delay)
+
udp dport 41641 ip dscp set cs4
udp dport {3478-3479, 19302-19309} ip dscp set cs4
udp sport {3478-3479, 19302-19309} ip dscp set cs4
ip6 nexthdr udp udp dport {3478-3479, 19302-19309} ip6 dscp set cs4