I’m running a small IPv6 network using VyOS with BGP multihoming, and I’m stuck with an asymmetric routing issue that I can’t get working.
Topology (logical)
-
AS65000: my own AS
-
Two edge routers at different locations
-
edge-A -
edge-B
-
-
-
AS65003: upstream connected to
edge-A -
AS65002: upstream connected to
edge-B -
A WireGuard mesh interconnects (iBGP):
-
edge-A -
edge-B
-
-
AS65001: Multiple Locations with Wirguard (iBGP)
I announce the same IPv6 /48 PI prefix from both edge routers to different upstreams for redundancy/backup and I’m currently not prioritizing via communities or local-preferences specific edge routers.
Routing behavior
-
Traffic from my PC exits via
edge-A -
Some return traffic from the Internet enters via
edge-B -
These return packets:
-
arrive on
edge-B’s external interface -
but are not forwarded back over WireGuard (AS65001) to the PC
-
no packets are seen on the WireGuard interface for those flows and also not on the
edge-Bexternal interface (but I know it must arrive, because I can trigger from the remote side the same request and then it’s arriving/working)
-
What I’ve tried
-
Disabled source-validation (
looseanddisable) -
Disabled firewall zones and forward rules
-
Tested
conntrack ignore / notrackin raw/prerouting -
Traced packets with
tcpdump
Observations:
-
The same hosts are reachable when the remote side initiates traffic
-
Failures only happen for asymmetric return paths
-
Even with firewalling disabled, forwarding still seems blocked
I’m pretty sure it’s related to asymmetric routing, but I don’t know how I can fix this.
Because when I’m not announcing via eBGP from one location, all my packets are arriving correctly again.
