Hi everyone.
I have a quite simple setup: router CCR1016-12G and a switch. Router is connected to switch via 2xEthernet bonding interface.
Until yesterday I used CRS125-24G-1S as a switch with following configuration
CRS125, configured the “old way”:
/interface ethernet switch trunk
add member-ports=ether12-link1-to-ccr,ether13-link2-to-ccr name=\
trunk1-link-to-ccr
...
/interface ethernet switch egress-vlan-tag
add tagged-ports=trunk1-link-to-ccr,ether19,switch1-cpu \
vlan-id=102
add tagged-ports=trunk1-link-to-ccr,ether19,switch1-cpu \
vlan-id=101
add tagged-ports=trunk1-link-to-ccr,switch1-cpu vlan-id=100
add tagged-ports=trunk1-link-to-ccr,ether19,switch1-cpu \
vlan-id=103
...
/interface ethernet switch vlan
add ports="trunk1-link-to-ccr,ether19,switch1-cpu" vlan-id=101
add ports="trunk1-link-to-ccr,ether19,switch1-cpu" vlan-id=102
add ports="trunk1-link-to-ccr,ether24,switch1-cpu" vlan-id=100
add ports="trunk1-link-to-ccr,ether19,ether24,switch1-cpu" vlan-id=103
CCR1016:
/interface bridge
add fast-forward=no name=bridge-trunk vlan-filtering=yes
...
/interface bonding
add mode=balance-xor name=bonding1 slaves=ether1,ether2 transmit-hash-policy=\
layer-2-and-3
...
/interface bridge port
add bridge=bridge-trunk hw=no interface=bonding1
...
/interface vlan
add interface=bridge-trunk name=vlan100 vlan-id=100
add interface=bridge-trunk name=vlan101 vlan-id=101
add interface=bridge-trunk name=vlan102 vlan-id=102
add interface=bridge-trunk name=vlan103 vlan-id=103
Everything worked perfectly.
Yesterday CRS125 died, so I repaced it with CRS354-48G-4S+2Q+.
So, 3xx series switches have to have VLANs configured the “new way”, so I changed my config accordingly:
CRS354:
/interface bridge
add fast-forward=no name=bridge1 vlan-filtering=yes
...
/interface bridge port
add bridge=bridge1 interface=bonding1
add bridge=bridge1 interface=ether1
...
add bridge=bridge1 interface=ether11
add bridge=bridge1 interface=ether14
add bridge=bridge1 interface=ether15
...
/interface bonding
add mode=balance-xor name=bonding1 slaves=ether12,ether13 transmit-hash-policy=\
layer-2-and-3
...
/interface bridge vlan
add bridge=bridge1 tagged="bonding1,bridge1" untagged=ether6 vlan-ids=10
add bridge=bridge1 tagged="bonding1,ether19,bridge1" vlan-ids=101-103
add bridge=bridge1 tagged="bonding1,bridge1" untagged=ether24 vlan-ids=100
No changes were made to CCR1016 configuration.
So, here is the problem: if I have it set up like this, the switch cannot access internet via router, though default gateway is set and switch receives ARP replies from router. All devices, connected to the switch, have internet access no problem, but! ICMP requests sent from those devices recieve duplicated replies:
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=250 time=18.3 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=250 time=18.4 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=1 ttl=250 time=18.4 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=1 ttl=250 time=18.4 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=2 ttl=250 time=18.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=2 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=2 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=3 ttl=250 time=18.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=3 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=3 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=4 ttl=250 time=18.3 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=4 ttl=250 time=18.3 ms (DUP!)
64 bytes from 8.8.8.8: icmp_seq=4 ttl=250 time=18.3 ms (DUP!)
If I replace bonding with just ethernet interface — everything works perfectly, like it should.
So, my question is — is that a bug in RouterOS or I cannot have VLANs over bonding interfaces by design?
Thanks in advance.