I read that since the CCR2004-16G-2S+ has multiple switch chips, for full hardware offloading, you need to create a separate bridge for each switch chip and then use an ethernet cable to join the bridges, so that’s what I did and things are working and the CPU never goes about 3%. But I have to do everything twice whenever I add a new VLAN and want to ensure it’s available on any port on the router. I wanted to check with the community if I’m making this harder on myself than it needs to be.
Relatedly, I recently tried to setup a firewall rule to isolate one VLAN from the other, and in the interface list, I saw both bridges and wasn’t sure if I needed to create an interface list for them, or if it was just enough to add a single bridge, or if I should just be using the subnet of the VLAN in the rule instead. Since I’m creating two bridges per VLAN, I’m going to end up with a log of bridges and a lot of manual work to keep them in sync. Out of curiosity, I moved one of the bridge ports (ether16 I believe) from bridge2 to bridge1, and saw the moved port kept its H indicator for hardware offloading, which doesn’t make sense since the port isn’t connected to bridge1’s switch chip, and so my understanding must be wrong somewhere.
# 2025-03-14 00:08:41 by RouterOS 7.18.1
# software id = KN49-Z4RX
#
# model = CCR2004-16G-2S+
/interface bridge
add name=bridge1 vlan-filtering=yes
add name=bridge2 vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] comment=U6-Mesh_Garage
set [ find default-name=ether2 ] comment=U6-Mesh_Basement rx-flow-control=on \
tx-flow-control=on
set [ find default-name=ether3 ] comment=U6-Mesh_Backyard
set [ find default-name=ether4 ] comment=Lenovo
set [ find default-name=ether5 ] comment="Work Switch"
set [ find default-name=ether6 ] comment="U6-Enterprise Office"
set [ find default-name=ether7 ] comment="Unfi GCM"
set [ find default-name=ether8 ] comment=bridge1-to-bridge2 rx-flow-control=\
on tx-flow-control=on
set [ find default-name=ether9 ] comment=bridge2-to-bridge1
set [ find default-name=ether10 ] comment="Floodlight Camera"
set [ find default-name=ether11 ] comment="Doorbell Camera"
set [ find default-name=ether13 ] comment=Lutron
set [ find default-name=ether15 ] comment=CCR2004-mgmt
set [ find default-name=sfp-sfpplus1 ] comment="Aggregation Switch"
set [ find default-name=sfp-sfpplus2 ] comment="Comcast Uplink" l2mtu=9192 \
mtu=9192
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard1
/interface vlan
add interface=bridge1 name=vlan-IoT-bridge1 vlan-id=100
add interface=bridge2 name=vlan-IoT-bridge2 vlan-id=100
add interface=bridge1 name=vlan-Mgmt-bridge1 vlan-id=99
add interface=bridge2 name=vlan-Mgmt-bridge2 vlan-id=99
add interface=bridge1 name=vlan-Trusted-bridge1 vlan-id=86
add interface=bridge2 name=vlan-Trusted-bridge2 vlan-id=86
add interface=bridge1 name=vlan-Unifi-bridge1 vlan-id=98
add interface=bridge2 name=vlan-Unifi-bridge2 vlan-id=98
add interface=bridge1 name=vlan-Work-bridge1 vlan-id=200
add interface=bridge2 name=vlan-Work-bridge2 vlan-id=200
add interface=bridge1 name=vlan10-cgm vlan-id=10
/interface list
add name=WAN
add name=LAN
add name=TRUNK
add name=AP
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip dhcp-server option
add code=6 name="Google DNS" value="'8.8.8.8'"
/ip pool
add name=dhcp_pool-Trusted ranges=192.168.86.10-192.168.86.254
add name=dhcp_pool-Work ranges=192.168.200.10-192.168.200.254
add name=dhcp_pool-IoT ranges=172.16.100.10-172.16.100.254
add name=dhcp_pool-Unifi ranges=192.168.98.10-192.168.98.254
add name=dhcp_pool9 ranges=192.168.10.2-192.168.10.254
/ip dhcp-server
add address-pool=dhcp_pool-Trusted interface=vlan-Trusted-bridge1 name=\
dhcp-Trusted
add address-pool=dhcp_pool-Work interface=vlan-Work-bridge1 name=dhcp-Work
add address-pool=dhcp_pool-IoT interface=vlan-IoT-bridge1 name=dhcp-IoT
add address-pool=dhcp_pool-Unifi interface=vlan-Unifi-bridge1 name=dhcp-Unifi
add address-pool=dhcp_pool9 interface=vlan10-cgm name=dhcp1
/port
set 0 name=serial0
/snmp community
add addresses=::/0 name=public_v2
/interface bridge port
add bridge=bridge1 comment="U6-Mesh Garage" interface=ether1 pvid=98
add bridge=bridge1 comment="U6-Mesh Basement" interface=ether2 pvid=98
add bridge=bridge1 comment="U6-Mesh Backyard" interface=ether3 pvid=98
add bridge=bridge1 comment=Lenovo interface=ether4 pvid=86
add bridge=bridge1 comment="Work Switch" frame-types=\
admit-only-untagged-and-priority-tagged interface=ether5 pvid=200
add bridge=bridge1 comment="U6-Enterprise Office" interface=ether6 pvid=99
add bridge=bridge1 comment="Unifi CGM" interface=ether7 pvid=10
add bridge=bridge1 comment="bridge1 to bridge 2" interface=ether8
add bridge=bridge2 comment="bridge2 to bridge 1" interface=ether9
add bridge=bridge2 comment="Floodlight Camera" frame-types=\
admit-only-untagged-and-priority-tagged interface=ether10 pvid=100
add bridge=bridge2 comment="Doorbell Camera" frame-types=\
admit-only-untagged-and-priority-tagged interface=ether11 pvid=100
add bridge=bridge2 frame-types=admit-only-untagged-and-priority-tagged \
interface=ether12
add bridge=bridge2 comment=Lutron frame-types=\
admit-only-untagged-and-priority-tagged interface=ether13 pvid=100
add bridge=bridge2 interface=ether14
add bridge=bridge2 interface=ether16 pvid=86
add bridge=bridge1 interface=sfp-sfpplus1
/ip neighbor discovery-settings
set discover-interface-list=all
/interface bridge vlan
add bridge=bridge1 tagged=bridge1,TRUNK,ether8,AP untagged=ether16 vlan-ids=\
86
add bridge=bridge1 tagged=bridge1,TRUNK,ether8,ether9,AP untagged=\
ether10,ether11 vlan-ids=100
add bridge=bridge1 tagged=ether6,ether1,bridge1 untagged=ether5 vlan-ids=200
add bridge=bridge1 tagged=bridge1,TRUNK,ether6 vlan-ids=99
add bridge=bridge2 tagged=bridge2,ether9 vlan-ids=99
add bridge=bridge2 tagged=bridge2,ether9,AP,ether6 untagged=ether16 vlan-ids=\
86
add bridge=bridge2 tagged=bridge2,ether9,ether16 untagged=ether13 vlan-ids=\
100
add bridge=bridge2 tagged=bridge2 vlan-ids=200
add bridge=bridge1 tagged=bridge1,TRUNK,ether8 untagged=AP,ether6 vlan-ids=98
add bridge=bridge2 tagged=bridge2,TRUNK,ether9 vlan-ids=98
add bridge=bridge1 tagged=bridge1 untagged=ether7 vlan-ids=10
/interface detect-internet
set detect-interface-list=WAN
/interface list member
add interface=bridge1 list=LAN
add interface=wireguard1 list=LAN
add interface=ether8 list=TRUNK
add interface=ether9 list=TRUNK
add interface=sfp-sfpplus1 list=TRUNK
add interface=sfp-sfpplus2 list=WAN
add interface=ether1 list=AP
add interface=ether2 list=AP
add interface=ether3 list=AP
add interface=ether6 list=AP
/ip address
add address=192.168.15.1/24 comment=wireguard interface=wireguard1 network=\
192.168.15.0
add address=10.0.99.1/24 comment=management interface=ether15 network=\
10.0.99.0
add address=192.168.86.1/24 interface=vlan-Trusted-bridge1 network=\
192.168.86.0
add address=172.16.100.1/24 interface=vlan-IoT-bridge1 network=172.16.100.0
add address=192.168.200.1/24 interface=vlan-Work-bridge1 network=\
192.168.200.0
add address=192.168.99.1/24 interface=vlan-Mgmt-bridge1 network=192.168.99.0
add address=192.168.98.1/24 interface=vlan-Unifi-bridge1 network=192.168.98.0
add address=192.168.10.1/24 interface=vlan10-cgm network=192.168.10.0