Added nftables DNS accept rules for container bridge interfaces

This commit is contained in:
Matthew Grotke 2026-04-14 22:05:56 -04:00
parent 2d50a982b8
commit 82f3058577

View file

@ -1710,6 +1710,7 @@ def build_nft_config(data, dry_run=False):
all_except = rule_enabled(data.get("inter_vlan_exceptions", []))
banned_v4, banned_v6 = banned_ip_sets(data)
container_bridges = get_container_bridges()
L = []
def line(s=""):
@ -1817,6 +1818,12 @@ def build_nft_config(data, dry_run=False):
line(" udp dport 1812 drop")
line()
if container_bridges:
iface_set = ", ".join(f'"{b}"' for b in container_bridges)
line(" # Allow DNS from container bridge networks (Docker, Podman, etc.)")
line(f" iif {{ {iface_set} }} meta l4proto {{ tcp, udp }} th dport 53 accept")
line()
line(" # Allow all traffic inbound from any VLAN interface")
for vlan in vlans:
line(f" iif \"{vlan['interface']}\" accept # {vlan['name']}")
@ -1853,7 +1860,6 @@ def build_nft_config(data, dry_run=False):
line(f" iif \"{vlan['interface']}\" oif \"{wan}\" accept # {vlan['name']} -> WAN")
line()
container_bridges = get_container_bridges()
if container_bridges:
line(" # Allow VLAN -> Docker bridge forwarding")
for vlan in vlans: