While trying to configure my RB5009 I found a reproduceable bug that I could not find existing mentions of.
Original discussion in: viewtopic.php?t=182719
I have seen this issue on 7.1.1, 7.2rc1 and 7.2rc3
Configuration steps:
I used the default configuration as a base.
Code: Select all
#Change to my subnet and disable DHCP
/ip/address/
add address=10.10.10.4/24 network=10.10.10.0 interface=bridge
remove numbers=0
/ip/dhcp-server/disable defconf
#Add VLANs and assign to bridge
/interface/vlan/
add interface=bridge name=VLAN10_LAN vlan-id=10
add interface=bridge name=VLAN20_WAN vlan-id=20
#Set bridge ports
/interface/bridge/port/
set bridge=bridge interface=ether2 pvid=20 numbers=0
set bridge=bridge interface=ether8 pvid=10 numbers=6
#Set bridge VLANs
/interface/bridge/vlan/
add bridge=bridge tagged=bridge untagged=ether2 vlan-ids=20
add bridge=bridge tagged=bridge untagged=ether8 vlan-ids=10
#Set interface list WAN to VLAN20_WAN
/interface/list/
#This I messed up with command line but fixed in WinBox
add interface=VLAN20_WAN list=WAN
#Change WAN DHCP client from ether1 to VLAN20_WAN
/ip/dhcp-client/
set ether1 interface=VLAN20_WAN
#Enable VLAN filtering on the bridge
/interface/bridge/set bridge vlan-filtering=yes
#Enabled DHCP server for VLAN10_LAN to make packet capture easier
#Configure packet sniffer
/tool/sniffer/
set filter-interface=ether2 streaming-enabled=yes streaming-server=10.10.88.254
start
#Ping public IP and capture in Wireshark
/tool/ping 8.8.8.8
Problem verified by enabling Packet Sniffer and looking at eth2 packets in Wireshark.
Egress packets are VLAN tagged even though Bridge VLANs page shows ether2 as "Currently Untagged".
Bridge VLANs page shows ether2 as "Currently Untagged"
Packets are immediately sent correctly without VLAN tag if I disable hardware offloading.
VLAN tag comes back if I re-enable hardware offloading on ether2
Code: Select all
/interface/bridge/port/
set [find interface=ether2] hw=no
set [find interface=ether3] hw=no
set [find interface=ether4] hw=no
set [find interface=ether5] hw=no
set [find interface=ether6] hw=no
set [find interface=ether7] hw=no
set [find interface=ether8] hw=no