[j-nsp] labeled-unicast to ldp redistribution ?
Andrey Kostin
ankost at podolsk.ru
Mon Dec 20 16:47:23 EST 2021
Thanks for details, it looks a little illogical though.
I mentioned that the best BGP route is received from the same OSPF/LDP
neighbor in the same island. And it looks like it's using P2P IPs for
BGP session. Is there some reason why it's not run between loopback IPs?
Just shot in the dark, maybe with sessions between loopbacks BGP would
rely on OSPF for next-hop resolution and it can change the behavior?
Kind regards,
Andrey Kostin
Alexandre Snarskii писал(а) 2021-12-20 12:31:
> On Mon, Dec 20, 2021 at 09:08:40AM -0500, Andrey Kostin wrote:
>> Hi Alexandre,
>>
>> Not sure that I completely understood the issue. When connectivity
>> between islands recovers, what is the primary route for regular BGP
>> routes' protocol next-hop?
>
> It's not the connectivity between islands, it's the connectivity
> within IGP island that recovers. Assume the following simple
> topology:
>
> A ========== B
> | |
> C ========== D
>
> Routers A and B form one IGP island, C and D - other, and there are
> two ibgp-lu links between islands with ldp->ibgp-lu->ldp
> redistribution.
>
> In normal situation, route A to B goes via direct link (igp/ldp),
> when link A-B breaks, A switches to ibgp-lu route from C.
> When link A-B recovers, A does not switch back to direct link and
> still uses A->C route (in best case it's just suboptimal, in worst
> case it results in routing loops).
>
>> Looks like it should be OSPF with route
>> preference lower than BGP and in this case it should be labeled by LDP
>> and propagated. Only if OSPF route for a protocol next-hop is not the
>> best, the next-hop from BGP-LU will be used.
>
> Unfortunately, it's expected behaviour, but not what I see in lab.
> Oversimplified: just two routers, one p2p link with all three ospf/ldp/
> ibgp-lu enabled,
>
> show route xx.xxx.xxx.78/32 table inet.0
>
> inet.0:
> xx.xxx.xxx.78/32 *[OSPF/10] 5d 04:58:59, metric 119
> > to xxx.xx.xxx.21 via ae0.6
>
> (so, ospf route is the best one in inet.0)
>
> show ldp database session xx.xxx.xxx.7 | match
> "database|xx.xxx.xxx.78/32"
> Input label database, xxx.xx.xxx.8:0--xx.xxx.xxx.7:0
> 66742 xx.xxx.xxx.78/32
> Output label database, xxx.xx.xxx.8:0--xx.xxx.xxx.7:0
> 5743 xx.xxx.xxx.78/32
>
> so the label is present and not filtered (.7 is the router-id of .21),
>
> show route xx.xxx.xxx.78/32 receive-protocol bgp xxx.xx.xxx.21
>
> inet.3: 467 destinations, 1125 routes (467 active, 0 holddown, 0
> hidden)
> Restart Complete
> Prefix Nexthop MED Lclpref AS path
> * xx.xxx.xxx.78/32 xxx.xx.xxx.21 19 100 I
>
> so, it's received and is the best route in inet.3 (best, because
> there are no ldp route in inet.3 at all:
>
> show route .. table inet.3
>
> xx.xxx.xxx.78/32 *[BGP/10] 02:10:43, MED 19, localpref 100
> AS path: I, validation-state: unverified
> > to xxx.xx.xxx.21 via ae0.6, Push 69954
>
> ), and, finally,
>
> show ldp route extensive xx.xxx.xxx.78/32
> Destination Next-hop intf/lsp/table
> Next-hop address
> xx.xxx.xxx.78/32 ae0.6
> xxx.xx.xxx.21
> Session ID xxx.xx.xxx.8:0--xx.xxx.xxx.7:0
>
> xxx.xx.xxx.21
> Bound to outgoing label 5743, Topology entry: 0x776dd88
> Ingress route status: Inactive
> Route type: Egress route, BGP labeled route
> Route flags: Route deaggregate
>
> suggests that presence of ibgp-lu route prevented ldp route from being
> installed to inet.3 and being used.
>
> PS: idea from KB32600 (copy ibgp-lu route from inet.3 to inet.0 and
> then
> use "from protocol bgp rib inet.0" in ldp egress policy) does not work
> too. Well, in this case presence of ibgp-lu route does not prevent ldp
> route from being installed into inet.3 and used as best route (when
> present, of course), but when ldp/igp route is missed, route received
> with ibgp-lu not gets redistributed into ldp.
>
>>
More information about the juniper-nsp
mailing list