[j-nsp] labeled-unicast to ldp redistribution ?

Alexandre Snarskii snar at snar.spb.ru
Mon Dec 20 12:31:34 EST 2021


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.

> 
> Kind regards,
> Andrey Kostin
> 
> Alexandre Snarskii via juniper-nsp писал(а) 2021-12-17 12:29:
> > Hi!
> > 
> > Scenario: router is a part of ospf/ldp island and also have ibgp
> > labeled-unicast rib inet.3 link to other ospf/ldp island. In normal
> > situations, some routes are known through ospf/ldp, however, during
> > failures they may appear from ibgp-lu and redistributed to ldp just
> > fine. However, when failure ends and route is known via ospf/ldp again,
> > it's NOT actually in use. Instead, 'show ldp route extensive' shows
> > this route as:
> > 
> >    Ingress route status: Inactive
> >    Route type: Egress route, BGP labeled route
> >    Route flags: Route deaggregate
> > 
> > and there are only ibgp route[s] in inet.3 table.
> > 
> > Are there any way to make ldp ignore 'BGP labeled' flag and install
> > route to inet.3 ? (other than making all routes be known not only
> > via ospf/ldp but also via ibgp-lu too).
> > 
> > _______________________________________________
> > juniper-nsp mailing list juniper-nsp at puck.nether.net
> > https://puck.nether.net/mailman/listinfo/juniper-nsp
> 


More information about the juniper-nsp mailing list