Understanding IPv6 next hops

Ondrej Zajicek santiago at crfreenet.org
Thu Feb 6 16:22:45 CET 2020


On Thu, Feb 06, 2020 at 12:34:00PM +0000, Neil Jerram wrote:
> Good morning all!
> 
> I'm debugging a situation where I'm seeing different IPv6 next hop
> behaviour in two setups with different versions of my team's software.
> 
> In both setups:
> There are 3 routers A, B and C, all peered with another router X.
> They are all on the same L2 bridge, and have global IPv6 addresses in the
> 2001:20::/64 subnet.
> A, B and C all export a route for fd00:10:96::/112
> ...
> Any ideas?  Can you advise where I should look or check next, to try to
> understand why the UPDATE message has two next hop addresses in one setup,
> but only one in the other?

Hi

Check code in IPv6 version of bgp_create_update(). It depends on how
sender get the routes (local or received, were they received alredy with
link-local next hop, were the next hop modified) and whether it is IBGP or
EBGP and whether next hop is the same as sender.

> Also, does the passing of two next hop addresses in setup #1 fully explain
> why the ECMP routes programmed into the kernel use link-local gateway
> addresses?

Yes, link-local next hop is preferered as direct gateway.

> Also, are the routes with global next hops more correct in some sense than
> those with link-local next hops; or vice versa?  Would you expect them both
> to forward data correctly?

Well, it is a bit strange quirk of IPv6 BGP. In general, both global and
link-local next hops should be sent when sender, receiver and global next
hop are on the same subnet. Global next hop is used for recursive next
hop evalulation, while link-local is used for forwarding.

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."


More information about the Bird-users mailing list