Hi all,
I'm experiencing a strange issue with inter-VLAN routing on my OpenWrt router and would appreciate any help.
Setup:
Device: Raspberry Pi Compute Module 4 with DFRobot Router Board.
OpenWrt Version: 24.10.2 r28739-d9340319c6
Kernel: 6.6.93
Networking: VLANs on br-lan.X subinterfaces
e.g
br-lan.10 Camera VLAN
br-lan.3 IoT VLAN
br-lan.4 Guest VLAN
br-lan.30 VPN VLAN
VLANs with forwarding allowed from LAN only
Issue:
Devices on the LAN (192.168.0.0/24) can no longer reach devices in my VPN_VLAN (192.168.30.0/24), even though this used to work, and all other VLANs (e.g. Cameras, IoT, Guests) are still reachable from the LAN.
Expected Behavior:
LAN β VPN_VLAN traffic should work (one-way forward)
Devices on VPN VLAN should not reach LAN (no reverse forwarding rule)
Actual Behavior:
LAN --> 192.168.30.50, 192.168.30.60, 192.168.30.101 Ping/HTTP/VNC requests time out
LAN --> 192.168.30.1 pings okay
OpenWrt can ping 192.168.30.50, 192.168.30.60 (Docker containers) 192.168.30.101 (Raspberry Pi host)
Tcpdump shows replies from 192.168.30.50 arriving on br-lan.30 but replies never show up on br-lan.99
Diagnostics:
tcpdump on OpenWrt
On VPN VLAN (br-lan.30):
ICMP echo request from 192.168.0.195 --> 192.168.30.50
ICMP echo reply from 192.168.30.50 --> 192.168.0.195
pings fine.
On LAN (br-lan.99):
Only requests seen from 192.168.0.195 --> 192.168.30.50
no ping replies.
conntrack -L | grep 192.168.30.50
no results.
Firewall Configuration:
PIA_VPN zone
config zone
option name 'PIA_VPN'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network 'VPN_VLAN'
config forwarding
option src 'lan'
option dest 'PIA_VPN'
No reverse forwarding defined (VPN --> LAN) This is intentional for isolation, other VLANS e.g (IoT --> LAN and Camera --> LAN) are working fine with no reverse forwarding.
What I've Tried:
Tcpdump confirms replies are received by the router but not forwarded.
rp_filter is disabled (/proc/sys/net/ipv4/conf/all/rp_filter = 0)
nf_call_iptables not present (same as other working VLANs)
Routing tables look correct.
Devices on VPN VLAN have correct gateways and are replying.
Working VLAN Example:
Camera VLAN br-lan.10
config zone
option name 'Camera_Zone'
option input 'DROP'
option output 'ACCEPT'
option forward 'DROP'
option network 'Cameras'
config forwarding
option src 'lan'
option dest 'Camera_Zone'
Ping from LAN to 192.168.10.xx (Camera VLAN) works fine.
What could cause this single VLAN (192.168.30.0/24) to stop routing return traffic to the LAN, despite replies being visible on the router (via tcpdump) No conntrack entries appearing and other VLANs working with the same config.
Any ideas would be appreciated!
Let me know if you want logs, uci show, or other configs.
Thanks in advance!