Todo #1521
open
Multipath Routing GUI Support
Added by Jim Pingle over 13 years ago.
Updated over 1 year ago.
Due date:
05/23/2019 (over 5 years late)
Description
It would be nice to have multiple gateways for a given route with metrics that get properly respected for route preference, without the need for a dynamic routing protocol.
This would make a lot of things easier:
- Multiple "default" gateways with an order of preference handled purely in the routing table, and the ability to round-robin traffic if two routes have the same metric
- Multiple gateways/paths to a single remote network that can failover gracefully without the need for a dynamic routing protocol
- And many more.
This is mainly a note to check in on this in the future (2.1, 2.2, way beyond). Perhaps involving ECMP as well.
- Subject changed from Investigate FreeBSD route metric support for future versions to Multipath Routing GUI Support
- Target version changed from Future to Plus-Next
As of Plus 23.05.1 and CE 2.7.0, the OS supports multipath routing (i.e. ECMP).
However, outside of FRR, there isn't a way to configure it in the GUI yet.
There are a few hurdles to add this into the GUI and it's not clear what the best way to handle them might be, so it's open for debate:
system_routes_edit.php
disallows multiple entries for the same remote destination network -- would it be better to remove that limitation OR would it be better to allow the user to select multiple gateways on a single entry?
- Each destination+gateway pair can have a unique weight that controls the proportion of traffic which will use each route. The weight is not a property of the gateway but of the destination+gateway combination. This complicates the first point as allowing multi-select would then also need to have a way to set a weight for each gateway in the list. A rowhelper for the gateway+weight may work.
- in
system.inc
, the function delete_static_route()
would need to account for the fact that there may be multiple gateways and delete only the entries which are no longer needed. The exact differences here would vary a bit depending on which method is used for the first point.
- It's not clear if/how the OS would ever take a gateway out of use if it's "down" -- that may mean we need to remove route entries for down gateways in some automated way, so a couple of the points in the original description are not viable.
Note: Even the same gateway used for multiple destination lands in a "nexthop" group based on each destination. The weight of each gateways inside each "group" determine the proportion of traffic that will take the gateway, with higher weights receiving more traffic. Equal weights get equal traffic. These groups and weights are visible in netstat -4OnW
and netstat -6OnW
It's also unclear what effect, if any, this might have on OpenVPN instances with conflicting routing configurations (multiple instances with overlapping remote network lists, for example).
- Due date set to 05/23/2019
- Start date changed from 05/12/2011 to 05/23/2019
- Follows Feature #9545: Enable Multipath Routing in the Kernel added
Also available in: Atom
PDF