Hi, And what do you see in your bird's console? "show route" etc.
On Fri, Apr 9, 2021 at 7:10 PM Dez C <[email protected]> wrote: > > Hello, > > First message here, although a long-time bird user (not an expert in any > way). We're using bird as a bgp speaker for all our VMs that either need > to announce routes or import routes from VRFs etc. > > The setup is pretty straight forward I'd guess. The VM has 2 IPv6 BGP > sessions with 2 L3 switches (one per switch). The VM announces one /128 > route and imports all routes learned from the BGP sessions. The same > routes are learned from both sessions, so whenever I do a 'ip -6 r' I > see 2 entries for each route (with different next hops) like: > 2a02:xxxx:d00d::/45 via 2a02:xxxx:yyyy:zz::a dev eth2 proto bird metric > 32 pref medium > 2a02:xxxx:d00d::/45 via 2a02:xxxx:yyyy:zz::b dev eth2 proto bird metric > 32 pref medium > > At some point, both BGP sessions went down and one of them did not > recover for an hour. Normally, this should not be a problem but in this > specific case, I could no longer see 2 routes in the kernel table, one > reachable and another unreachable, just an unreachable one, so even > though the anycast route was being announced and traffic was reaching > the VM, it couldn't send the packets to their destination as all routes > were unreachable in the kernel table: > unreachable 2a02:xxxx:d00d::/45 dev lo proto bird metric 32 error -113 > pref medium . > > I'm running 2.0.7 (upgrading soon) on centos7 and here's the relevant > part of my config: > > protocol device { > } > protocol direct direct_v6_lo { > interface "lo*"; # announce loopback > ipv6; > } > protocol direct direct_v6_eth { > interface "eth*"; > ipv6; > } > protocol bgp bgp_v6_a { > local 2a02:xxxx:yyyy:53::37 as 66666 > neighbor 2a02:xxxx:yyyy:53::a as 66666; # switch A > ipv6 { > export where proto = "direct_v6_lo"; > }; > } > protocol bgp bgp_v6_b { > local 2a02:1388:4000:53::37 as 66666; > neighbor 2a02:1388:4000:53::b as 66666; # switch B > ipv6 { > export where proto = "direct_v6_lo"; > }; > } > protocol kernel { > ipv6 { > export filter { > if proto = "direct_v6_eth" then reject; > accept; > }; > }; > merge paths limit 2; > } > > any ideas? > thanks in advance and regards, > Yannis
