Mushroom Networks Documentation

Adding a Manual Network Route

NOTE:  See also the following FAQ which discusses 1.17 changes in Interface Groups, Manual Network Routes, and VoIP Armor: What changes were made in 1.17 (Interface Groups, Manual Network Routes, VoIP Armor)?

The manual network routes have a re-defined interface, splitting the routes into either “Simple”, “Connection”, or “Advanced” routes. This features give the user added flexibility in identifying the traffic that needs to follow this route.

To add a manual network route, click “Add” next to Manual Network Routes on the “Advanced” tab of the BBNA web interface:

This will bring up the following input screen, which defaults to a “Simple” route:

The simple route as shown above can be specified with Device Type (WAN, LAN, VLL, Bridge, Cellular, Wireless), Device Index, desired Gateway, Destination IP, MTU, and Metric, which defines the priority of this route. The priority is in ascending order, so routes with a higher Metric are given priority over other routes.

For more flexibility in defining the route, switch the Type field from “Simple” to “Connection” and the following input screen will be presented:

The “Connection” route as shown above can be specified with Device Type and Index, Gateway, Source/Destination IP and port, MTU, DSCP, Protocol, Failover Mode, and Priority, with the priority in ascending order (higher value has higher priority).

The Failover Mode is used to configure the failover action in case of primary interface failure. It has 2 modes: “sticky mode” and “available mode”. In case of a primary interface failure, the sticky mode will transfer the traffic onto the secondary interface, and when the primary line comes back up, will transfer the traffic back to the primary interface. With the “available mode”, after the primary interface recovers, the traffic that failed-over earlier will continue to use the failover interface. The newer sessions will be routed over the primary interface as usual.

Connection Routes vs Advanced Routes

There is also an option to use an “Advanced Route” rather than a “Connection route.”  Connection routes are per connection rather than Advanced routes which are per packet.  Connection routes track flows as connections and routes based on those connections.  So changing a Connection route will break existing flows (conntrack data is removed) whereas changing an Advanced route would allow routing packets of existing flows to different destinations.

Advanced routes thus act similar to “normal” manual routes (but with more options) that people are familiar with on any device. 

Connection routes require conntrack and only work on conntrackable flows.  Also, “Sticky” routes
are only possible on Connection routes as they require conntrack.

Under what scenario would I use an “Advanced Route” instead of a “Connection Route”?

  • When the purpose of the route has nothing to do with load-balancing but needs to have more matching power than normal routing provides, like creating a route based on DSCP.
  • Anytime you do not need the functionality of “Connection Routes”, which are limited by conntrack status, and can’t identify various protocols, has table size limits, is more computationally intensive.
  • The rule of thumb is: Use an Advanced route unless you specifically need the connection tracking provided by the Connection routes  If what you’re trying to do works with an Advanced route, use that, otherwise go to Connection routes.


© 2004 – 2024 Mushroom Networks Inc. All rights reserved.

Let’s chat. Call us at +1 (858) 452-1031 or fill the form: