BGP4+ - Using link-local addresses for BGP Peering


Hi,
Well, for IPv6 link state protocols (e.g. OSPFv3, IS-IS) there is no global next hop, thus only the link-local next hop can be shown.
As far as I can see from my Cisco routers the situation is the same here.
For BGP the situation is different since you can have a next hop defined by an IPv6 address (not directly connected, link-local cannot be used, e.g., ebgp.) - and then that next hop needs to be recursively resolved to a directly connected interface and IPv6 address (may be link-local or global).
I would expect to see the next hop not the link-local. That's all. if I go on my other routers (ie Cisco) and do a show ipv6 route I get the global addressed as next hop. I expected to see the same behavior.
The network topology under test:

R1(g0/0:1::1/64)------------------(g0/0:1::2/64)R2-----|loopback0(2::1/64)
1,The output info from cisco:
a, show bgp ipv6 unicast on R1
BGP table version is 2, local router ID is 1.1.1.1  Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,                r RIB-failure, S Stale, m multipath, b backup-path, x best-external, f RT-Filter  Origin codes: i - IGP, e - EGP, ? - incomplete       Network          Next Hop            Metric LocPrf Weight Path  *>i2::/64           1::2                     0    100      0 i  
b,show ipv6 route on R1
IPv6 Routing Table - default - 4 entries  Codes: C - Connected, L - Local, S - Static, U - Per-user Static route         B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP         I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary         D - EIGRP, EX - EIGRP external, NM - NEMO, ND - Neighbor Discovery         l - LISP         O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2         ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2  C   1::/64 [0/0]       via GigabitEthernet0/0, directly connected  L   1::1/128 [0/0]       via GigabitEthernet0/0, receive  B   2::/64 [200/0]       via 1::2  L   FF00::/8 [0/0]       via Null0, receive  
2,The output info from Quagga:
a, show bgp ipv6 unicast on R1
BGP table version is 0, local router ID is 2.2.2.2  Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,                i internal, r RIB-failure, S Stale, R Removed  Origin codes: i - IGP, e - EGP, ? - incomplete       Network          Next Hop            Metric LocPrf Weight Path  *>i2::/64           1::1                     0    100      0 i    Total number of prefixes 1  
b,show ipv6 route on R1
Codes: K - kernel route, C - connected, S - static, R - R.png,         O - OSPFv6, I - IS-IS, B - BGP, A - Babel, T - Table,         > - selected route, * - FIB route    C>* 1::/64 is directly connected, eth0  B>* 2::/64 [200/0] via fe80::d841:71ff:fe7f:16e6, eth0, 00:17:29
To sum it up a little:
What are the pros/cons of using link.local addresses for the BGP Peering?
Any Input or hints to documents are much appreciated.
PS.
How can quagga like CISCO routers use global addresses as the next hop installing in the RIB?
Thanks,

LiHongguang

2 replies

Hi all,

Who can tell me why routers made by vendors, e.g., cisco, juniper and huawei running bgp use the global addresses as the next hop in the RIB?

LiHongguang
Hi LiHongguang,
Can you post the following from quagga on R1:

- show bgp 2::/64
- show run

Are you using the "neighbor swpX interface" feature? That tells bgp to peer to the LL address of the other side. It is nice because you do not have to configure any IPv4 addreses (it is good to have one assigned to your loopback to use as a router-id).

Thanks
Daniel

Reply