Authored by: Support.com Tech Pro Team
How to troubleshoot Asymmetric Routing on Netgate router
Asymmetric routing happens when traffic between two nodes takes a different path in each direction (e.g. A->B->C, C->D->A). This can pose a problem for TCP which has strict state tracking but often does not affect “stateless†protocols such as ICMP or UDP.
Common Scenario
What happens in most cases is this:
Automatic Fix
The Bypass firewall rules for traffic on the same interface option located under System > Advanced on the Firewall & NAT tab activate rules for traffic to/from the static route networks which are much more permissive when it comes to creating states for TCP traffic and allowing it to pass. The rules allow any TCP packets regardless of their flags to create a state, and also utilize “Sloppy†state tracking which performs a less strict state match.
Manual Fix
The same rules may be created manually by adding one on the affected interface tab (e.g. LAN), and a second rule on the Floating tab using the same interface (LAN again) to match the traffic in the out direction. The rule must be set for a protocol of TCP, under TCP flags check Any Flags, and use a State Type of Sloppy.
The options for TCP flags and State Type can be found in the Advanced Options when editing a firewall rule.
Alternate Causes
On occasion, these issues can be caused by other factors that lead to asymmetric routings, such as issues with route-to
or reply-to
, both having to do with gateways on interface settings.
Defining gateways under System > Routing does not cause this, but rather these problems can come up when the gateway is improperly configured on the interface pages, Interfaces > WAN, Interfaces > LAN, and so on.
Gateway set when it should not be set
f a gateway is set on an internal interface, such as LAN, it can cause problematic behavior. Setting a gateway on an internal interface will tag outbound rules on that interface with route-to
and inbound rules with reply-to
which will cause the firewall to forward packets to the defined gateway rather than following their natural path. For WANs, this is typically a good thing! For LANs, it is not. Among other ill effects, it can lead to a loop of sorts where packets bounce between the firewall and the defined gateway, eventually being blocked or dropped when their TTL expires.
Gateway is not set when it should be set
A gateway should usually be set on a WAN or other external-type interface settings (MPLS, IP VPN, etc.) In these cases the reply-to
and route-to
behavior is desired and likely required. If it is missing the packets may be blocked or dropped as they attempt to leave the wrong interface. A packet could enter via the alternate WAN, but the reply would leave by the default gateway. Similar to the effect seen when improperly using an Interface Group for WAN interfaces.