On Tue, Aug 03, 2021 at 10:13:09AM +0300, Alexander Shikov wrote: > Hello! > > Yesterday we noticed a strange behavior of Bird 1.6.8 with handling > one IPv6 BGP route: > > >birdc6 show route for 2a09:8387:ffff:: all > BIRD 1.6.8 ready. > 2a09:8387:ffff::/48 via 2001:7f8:63::f2 on bge0 [SIMTELECOM 2021-08-03 > 00:07:16] * (100) [AS51972i] > Type: BGP unicast univ > BGP.origin: IGP > BGP.as_path: 51972 > BGP.next_hop: :: > BGP.med: 0 > BGP.local_pref: 100 > BGP.community: (31210,31210) > BGP.ext_community: (rt, 31210, 31210) > > The first (best) route has next-hop '::' and routers of some of our customers > started dropping BGP sessions with 'Invalid next-hop' cause. > > I dumped packets coming from customer 2001:7f8:63::f2 and it is really > sending next-hop > as '::'. > > I enabled logging of 'gw' and 'from' route attributes for net > 2a09:8387:ffff::/48, > and I got the following: > > Aug 3 09:57:10 <daemon.info> rs1 bird6: DEBUG: gw:2001:7f8:63::f4 ---- > from:2001:7f8:63::f4 > Aug 3 09:57:10 <daemon.info> rs1 bird6: DEBUG: gw:2001:7f8:63::69 ---- > from:2001:7f8:63::69 > > Thus 'gw' and 'from' variables both contain IPv6 address of the peer. > But shouldn't 'gw' contain '::'?
Hello The bgp_next_hop is ::, 'gw' a is different attribute - immediate next hop computed from bgp_next_hop, local routing table and other factors. That is shown after 'via' in 'show route' output. When a route is propagated on a route server or a route reflector, original bgp_next_hop is kept. BTW, bgp_next_hop :: is clearly invalid (without attached link-local bgp_next_hop). -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: [email protected]) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
