Server bonding on 2 Different Mikrotik Switches

hi,

Good day.

Need help with this setup. I know this isnt a purely mikrotik related topic, anyways..

Ill be connecting a Linux Server with 2 NICs bonded to 2 Different Mikrotik CRS125.
The 2 Mikrotiks were configure with a vlan interface both with the same IP address.
bond setup.png

Will this setup work? Any users here using this setup?

First of all, your switches are going to need different IP addresses. Second, you need to put a bridge containing the two router interfaces that act as up/downlinks to the switches, and enable spanning-tree on that bridge. What you’re doing is setting up a redundant switching fabric. If your link fails to one switch, the server becomes accessible via the same IP address on the other switch. Without the bridged interfaces at the router, devices on the first switch won’t be able to talk to anything on the second switch.

Another option would be to use a single switch fabric…in other words, create a trunk between the two switches. If STP is enabled on the bridged router interfaces, only one of those uplinks to the router will be active at a time, preventing a routing loop. This way, you don’t have to rely on the CPU of the router to bridge traffic between the switches…it will all run at wire speed across the switch-to-switch trunk.

You can’t do bonding like this. Bonding connections must be between the same two devices (stacked switches count as a single device in this case) - even if it happens to work, things could be strange… suppose the linux-switch1 link fails, and then router-switch2 link fails. In your proposed configuration, this would completely break the connection between the router and the linux box.

The only option for you is to use a bridged interface with (R)STP between the Linux box and the switches / between the router and the switches.
As was pointed out in the thread, you should also make a link directly between the two switches.

This STP solution gives high-availability (fault tolerance), but not improved bandwidth.

And yes, you should use a different IP for each switch.

I think when he’s talking about bonding, he’s referring to Active/Backup NIC teaming. A lot of Linux/UNIX systems handle this using the bonding kernel driver. This is great for organizations running fully redundant switching fabrics (I’ve seen many that do this). A dual-point failure like you described is possible, but highly unlikely, and would be mitigated if you used two routers in an Active/Backup configuration (VRRP).

Redundant switch fabrics are used most often where mission-critical services cannot tolerate any downtime whatsoever. If every endpoint uses Active/Backup NIC teaming and runs one interface to each switch fabric, you maintain availability of all devices even if an entire switch dies. The bridge interface on the router would not see two paths to each endpoint, because only half of the NIC team is actually active at any given time. STP would not be needed in this scenario.

If we create a link between the switches, we increase the size of the switch fabric, and allow wire-speed communication between switch1 devices and switch2 devices without taxing the router’s CPU for bridging. STP is required in this scenario, as the router can see two paths to each device. Despite this, the endpoints can still use Active/Backup NIC teaming to separate switches, as only one link from the switch stack to the endpoint will be active at any time.

None of these configurations increase overall potential throughput to the server.

NIC teaming, yeah - My concern was just that OP was expecting to have LACP between the router and the switches, or between the router and host via the switches, or something strange like that.

Redundant fabrics makes sense in the “nic teaming” sense.