L3 HW Offloading RB5009

Just to rehash. The problem (triangular routing) is this:

  • The devices on the 192.168.0.0/23 - when sending to the 10.0.0.0/8 subnet - send it to the Mikrotik at 192.168.1.1 (resolving it via default), because they don’t know where the router for the 10.0.0.0/8 subnet is located.
  • The devices in the 10.0.0.0/8 subbet - when sending to the 192.168.0.0/23 subnet - resolve it to the L3 switch, which in turn sees 192.168.0.0/23 as directly connected.

There are two approaches to solve the situation:

Solution 1

Make the devices on 192.168.0.0/23 aware of the correct (shortest) route to 10.0.0.0/8. There is a dedicated DHCP option (121 - classless route) for just this purpose. From Google:

“The DHCPv4 option Classless Static Route allows a DHCP server to pass a list of static routes to a DHCP client, which then enters those routes into its routing table.”

This is fully supported in the Mikrotik DHCP server.

Please be aware that while most normal (Linux, BSD, Windows, MAC, Android, iOS) systems respect this option, some embedded (IoT, smart whatever) devices sometimes don’t.

Solution 2

This is the one I would encourage. Configure the L3 switch to send traffic to 192.168.0.0/23 through the Mikrotik.

This done by:

  • Allocate a subnet just for routing purposes. Let this be 192.168.111.8/30. This subnet has to be defined both on the Mikrotik and the L3 switch. This subnet is for routing purposes only.
  • Configure addressing: let Mikrotik take 192.168.111.9 and the L3 switch take 192.168.111.10
  • Correct the route on the Mikrotik to 10.0.0.0/8 via 192.168.111.10
  • Correct the route on the L3 switch to 192.168.0.0/23 via 192.168.111.9

Please note that for this to work, on the Mikrotik side:

  • you have to remove the port that connects to the L3 switch from the bridge
  • add the port connecting to the L3 switch to the interface list LAN

Use no. 2. In all larger/well designed networks it is handled this way.