In some publications it is mentioned that a link local next-hop can’t be used when redistributing routes into BGP because routers receiving the route will not know what to do with the next-hop. That is one of the reason why HSRPv2 got support for global IPv6 addresses. One such scenario is described in this link.

The topology used for this post is the following.


I have just setup enough of the topology to prove that it works with the next-hop, so I won’t be running any pings and so on. The routers R1 and R2 have a static route for the network behind R3 and R4.

When routing towards a link local address, the exit interface must be specified. R1 then runs BGP towards R5, notice that I’m not using next-hop-self.

If we look in the BGP RIB, we can see that the route is installed with a link local next-hop.

What next-hop do we have at R5 though?

We see the next-hop of R1 and not the link local address. How did this happen? We aren’t using next-hop-self. If we debug at R1, we will see what happens.

We can see that BGP was going to advertise it with the link local next-hop but then realized that this would not work. It then replaced the link local next-hop with a global next-hop.

While it may have been true at some point that routes must point to a global next-hop, this does not hold true in modern code. BGP will automatically advertise its updates with a global next-hop.

Busting Myths – IPv6 Link Local Next Hop into BGP
Tagged on:             

3 thoughts on “Busting Myths – IPv6 Link Local Next Hop into BGP

  • August 30, 2015 at 11:44 am

    Thanks Daniels for this nice article !.
    I have one query pls

    Is it because of link local address can be used as a next-hop in a single subnet only, R1 advertise it’s global unicast address as a next-hop to it’s peer ?

    if yes then why don’t R1 advertise it’s link local address as a next hop when advertising these redistributed route to R5 ?

    Is this specific to BGP or IGP will also work like this

  • August 31, 2015 at 8:05 am

    Thanks a lot, Daniel. Up to now I used ‘next-hop-self’ by default to overwrite link-local addresses. I didn’t know this useful change in modern code. Thank you very much.

  • September 29, 2015 at 9:57 am

    the fact that new ios magically change NH if its link local doesnt change the fact that BGP cant use a link-local NH
    people should really think about what they are doing instead of relying of such fragile IOS behavior
    so i fail to see how its myth busting…


Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: