I’m having some trouble currently with DHCP packets being filtered by a switch (OpenWRT 23.05.0; no CPU involvement). My setup involves NAT’ing DHCP packets through netfilter. The trouble is that when a broadcast DHCP OFFER is sent from the server NIC to the client, the offer is never received. Unicast DHCP works fine.
I tested DHCP broadcasts in a usual DHCP configuration (not NAT’ed), and the OFFER was received fine, with the client obtaining an IP. I’ve inspected the packets of both DHCP servers, but the only major differences I can see are the IPv4 ID field and the DHCP TXID (TXID being different between each server, that is).
On OpenWRT, the switch config is thus:
# swconfig dev switch0 show
Global attributes:
enable_vlan: 1
ar8xxx_mib_poll_interval: 0
ar8xxx_mib_type: 0
enable_mirror_rx: 0
enable_mirror_tx: 0
mirror_monitor_port: 0
mirror_source_port: 0
arl_age_time: 300
arl_table: address resolution table
igmp_snooping: 0
igmp_v3: 0
...
Port 2:
mib: ???
enable_eee: 0
igmp_snooping: 0
vlan_prio: 0
pvid: 3
link: port:2 link:up speed:1000baseT full-duplex txflow rxflow auto
I’m incredibly unsure as to how to lift this issue. DHCP works properly across my other switches; it’s just this OpenWRT router (repurposed to a switch) that’s causing the issue! Could it be something to do with the switch-chip (AR8327N) config itself?
Contextual network information:

‘netfilter’ handles the NAT and other packet manipulation required for the DHCP server to communicate with the network.
What on earth could be causing this issue? Thanks