LACP btw hEXs & CRS310-8G+2S+

Hi all,

I’m trying to create a bond btw the hEXs router and CRS switch. Followed the instructions on the official documentation page and tried following a bunch of youtube vidoes, but I can’t get the link active. I have tried both giving the bonds their own ip addresses and adding the bonds to the existing bridge with no luck. Both the links remains inactive no matter what i try.

Here are my configs

# RouterOS 7.14.2
# model = hEXs
/interface bridge
add admin-mac=xx:xx:xx:xx:xx:xx auto-mac=no comment=defconf name=bridge port-cost-mode=short
/interface ethernet
set [ find default-name=ether1 ] auto-negotiation=no
set [ find default-name=ether2 ] auto-negotiation=no
/interface bonding
add mode=802.3ad name=bond1 slaves=ether1,ether2 transmit-hash-policy=layer-2-and-3
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp ranges=10.1.0.151-10.1.0.254
/ip dhcp-server
add address-pool=dhcp interface=bridge lease-time=1w name=defconf
/interface bridge port
add bridge=bridge comment=defconf ingress-filtering=no interface=ether3 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf ingress-filtering=no interface=ether4 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf ingress-filtering=no interface=ether5 internal-path-cost=10 path-cost=10
add bridge=bridge interface=bond1
/ip firewall connection tracking
set udp-timeout=10s
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=PPPoE list=WAN
/ip dhcp-server network
add address=10.1.0.0/24 comment=defconf gateway=10.1.0.1 netmask=24
/ip address
add address=10.1.0.1/24 comment=defconf interface=bridge network=10.1.0.0


# RouterOS 7.14.2
# model = CRS310-8G+2S+
/interface bridge
add admin-mac=xx:xx:xx:xx:xx:xx auto-mac=no comment=defconf name=bridge port-cost-mode=short
/interface ethernet
set [ find default-name=ether7 ] auto-negotiation=no speed=1G-baseT-full
set [ find default-name=ether8 ] auto-negotiation=no speed=1G-baseT-full
/interface bonding
add mode=802.3ad name=bond1 slaves=ether7,ether8 transmit-hash-policy=layer-2-and-3
/interface list
add name=WAN
add name=LAN
/interface bridge port
add bridge=bridge comment=defconf interface=ether1 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=ether2 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=ether3 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=ether4 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=ether5 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=ether6 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=sfp-sfpplus1 internal-path-cost=10 path-cost=10
add bridge=bridge comment=defconf interface=sfp-sfpplus2 internal-path-cost=10 path-cost=10
add bridge=bridge interface=bond1
/ip firewall connection tracking
set udp-timeout=10s
/interface list member
add interface=lo list=WAN
add interface=bridge list=LAN
/ip address
add address=10.1.0.2/24 comment=defconf interface=bridge network=10.1.0.0

I would please appreciate if someone can point me in the right directions.

Thanks!

Copper ethernet connections operating at a rate of 1Gb or above will not work without autonegotiation, fixed settings only work for 10Mb or 100Mb with half or full duplex.

If you require a specific rate you can use autonegotiation but only advertise that one rate.

@twd

Thank you so much. You suggestion worked!!!. I’ve been banging my head on this for a week :frowning:

I read somewhere that for LACP, the links must be at the same speed and its recommended to remove auto negotiation. I had no idea that it is required for connections at 1Gb or higher. Because the switch is a 2.5GbE link while the router is a 1GbE link, I thought I had to force them. This is great to know that is not required and the links will negotiate themselves. even if they have different capabilities.

Hopefully another quick question. The quick guide here - https://help.mikrotik.com/docs/display/ROS/Bonding says to set an ip for the bond interface, I just added the interfaces to my existing bridge. When I did it as suggested, the link worked, but the greater network did not work. By adding the bond to the bridge, it worked, but i am not sure if that has any disadvantages.

Thanks in advanced!

In this case leaving all the interfaces set to autonegotiate should be fine. The highest speed of those advertised by both devices is chosen so the 2.5Gb advertisment from the CRS will be ignored.

The example is using a bond in isolation, hence adding the IP address to it. When adding any ethernet-like interfaces (e.g. ethernet, bond, eoip) to a bridge and IP addresses and services should be placed on the bridge, not on any of the child interfaces of the bridge.

You are a godsend!! Thanks again <3