cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1107
Views
0
Helpful
4
Replies

IOS XRv 6.0.0 does not allocate label for eBGP neighbor prefix

Denis Mulyalin
Level 1
Level 1

Hi,

I am testing XRv in my lab environment and I have this topology:

CSR1<-gi2.112->---eBGP---<-gi0.112->XR2<------iBGP----->XR1

There is Lo0 adresses:

CSR1 - 10.0.0.11

XR2 - 10.0.0.2

XR1 - 10.0.0.1

I have established eBGP session between CSR1 and XR2, there CSR1's AS is 65100, and XR2's AS is 100. I use BGP LU (AFI 1 SAFI 4) and advertise Lo0 addresses into BGP via network statement.

XR2 config:

router bgp 100
bgp unsafe-ebgp-policy
  address-family ipv4 unicast
   network 10.0.0.2/32
   allocate-label all
!
 neighbor 10.0.0.11
  remote-as 65100
  ignore-connected-check
  update-source Loopback0
  address-family ipv4 labeled-unicast
   send-community-ebgp
   send-extended-community-ebgp
!
 neighbor 10.0.0.1
  remote-as 100
  update-source Loopback0
  address-family ipv4 labeled-unicast
   next-hop-self
  !
interface Loopback0
 ipv4 address 10.0.0.2 255.255.255.255
!
router static
 address-family ipv4 unicast
  10.0.0.11/32 GigabitEthernet0/0/0/0.112 10.1.112.11

CSR1 config:

ip route 10.0.0.2 255.255.255.255 GigabitEthernet2.112 10.1.112.2
!
router bgp 65100
 template peer-policy core_transport
  send-community both
  send-label
 exit-peer-policy
 !
 bgp log-neighbor-changes
 neighbor 10.0.0.2 remote-as 100
 neighbor 10.0.0.2 disable-connected-check
 neighbor 10.0.0.2 update-source Loopback0
 !
 address-family ipv4
  network 10.0.0.11 mask 255.255.255.255
  network 10.0.1.11 mask 255.255.255.255
  neighbor 10.0.0.2 activate
  neighbor 10.0.0.2 inherit peer-policy core_transport
!
interface Loopback0
 ip address 10.0.0.11 255.255.255.255
!
interface GigabitEthernet2.112
 description "to_XR2_Gi0/0/0/0.112"
 encapsulation dot1Q 112
 ip address 10.1.112.11 255.255.255.0
 mpls bgp forwarding

everything is working fine except the fact that XR2 does not allocate local label for 10.0.0.11 and does not advertise prefix 10.0.0.11 to XR1:

RP/0/0/CPU0:XRv2#show bgp ipv4 labeled-unicast labels 
   Network            Next Hop        Rcvd Label      Local Label
*>i10.0.0.1/32        10.0.0.1        3               24018           
*> 10.0.0.2/32        0.0.0.0         nolabel         3                 
*> 10.0.0.11/32       10.0.0.11       3               nolabel              
*> 10.0.1.11/32       10.0.0.11       3               24031      

RP/0/0/CPU0:XRv2#show bgp ipv4 labeled-unicast 10.0.0.11
BGP routing table entry for 10.0.0.11/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                114         114
Last Modified: Aug  2 19:29:18.158 for 00:14:21
Paths: (1 available, best #1)
  Not advertised to any peer
  Path #1: Received by speaker 0
  Not advertised to any peer
  65100
    10.0.0.11 from 10.0.0.11 (10.0.1.11)
      Received Label 3
      Origin IGP, metric 0, localpref 100, valid, external, best, group-best
      Received Path ID 0, Local Path ID 1, version 114
      Origin-AS validity: not-found 
RP/0/0/CPU0:XRv2# show bgp ipv4 labeled-unicast summary
Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
10.0.0.1          0   100    3583    3455      120    0    0 06:09:36          2
10.0.0.11         0 65100     112     117      120    0    0 00:38:40          3

During debug I have observed this output:

RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr] (ip4lu): Received UPDATE from 10.0.0.11 with attributes: 
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr] (ip4lu): nexthop 10.0.0.11/32, origin i, metric 0, path 65100
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr] (ip4lu): Received prefix 10.0.0.11/32 (path ID: none) with MPLS label 3 from neighbor 10.0.0.11
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: Received UPDATE from 10.0.0.11 (length incl. header = 63)
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: Receive message dump for 10.0.0.11:
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: 003f 0200 0000 2880 0e11 0001 0404 0a00
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: 000b 0038 0000 310a 0000 0b40 0101 0040
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: 0206 0201 0000 fe4c 8004 0400 0000 00
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: Received UPDATE from 10.0.0.11 (length incl. header = 23)
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: Receive message dump for 10.0.0.11:
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: ffff ffff ffff ffff ffff ffff ffff ffff
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr]: 0017 0200 0000 00
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-rtr] (l2vpls): Wake up sync/rib thread ( afi 10), label version 1, rib version 1, bgp table version 1, standby ver 0
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-lbl] (ip4u): Label update triggered: current version 23, target version 24, mpls component is up  
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-impt] (ip4u): START import walk from 23 to 24 skip_walk 1
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-upd] (l2vpls): Started updgrp timer for updgrp 0.1:: delay=0.010, delaytype=0
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-upd] VRF PAG (ip4u): Started updgrp timer for updgrp 0.1:: delay=0.010, delaytype=0
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-upd] (vpn4u): Started updgrp timer for updgrp 0.1:: delay=0.010, delaytype=0
RP/0/0/CPU0:Aug  2 13:47:46.806 : bgp[1052]: [default-upd] (vpn6u): Started updgrp timer for updgrp 0.2:: delay=0.010, delaytype=0
RP/0/0/CPU0:Aug  2 13:47:46.816 : bgp[1052]: [default-lbl] (ip4u): Label computation done: table=TBL:default (1/1), net=10.0.0.11/32: netfl=0x04002001, path=0x10fa5ef4(10.0.0.11/32,10.0.0.11,0,0x4000000001060001), pathrcvdlabel=3: asbr=1, rr=0/0, nhselfcount=1: result="label not required"

So far I have tryed:

-mpls activate for gi0/0/0/0.112 on XR2 - no help

-ignore-connected-check change to ebgp-multihop 2 - no help

-use different variations of static routes toward 10.0.0.11 on XR2 - no help

-use LDP to exchange label bindings for CSR1' and XR2' loopback on eBGP link - no help

-create another one ebgp neighbor on XR2 toward another one node - no help

-create peering using IP addresse of physical interfaces - works fine

-If I change the AS of CSR1 to AS100 and build iBGP session between CR1 and XR2 then XR2 starts to allocate the label for 10.0.0.11. But for eBGP no label allocation happens on XR2

-redistribute static route toward 10.0.0.11 on XR2 into BGP - works strange, look below:

XR2config:

router bgp 100
 address-family ipv4 unicast
  redistribute static
!
RP/0/0/CPU0:XRv2#show bgp ipv4 labeled-unicast labels
   Network            Next Hop        Rcvd Label      Local Label
*>i10.0.0.1/32        10.0.0.1        3               24018           
*> 10.0.0.2/32        0.0.0.0         nolabel         3               
*>i10.0.0.3/32        10.0.0.3        3               24019           
*> 10.0.0.11/32       10.1.112.11     nolabel         24004           
*                     10.0.0.11       3               24004 
RP/0/0/CPU0:XRv2#show mpls forwarding labels 24004            detail
Tue Aug  2 19:53:38.083 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
24004  Pop         10.0.0.11/32       Gi0/0/0/0.112 10.1.112.11     25446       
     Updated: Aug  2 17:29:00.868
     Version: 752, Priority: 4
     Label Stack (Top -> Bottom): { Imp-Null }
     NHID: 0x0, Encap-ID: N/A, Path idx: 0, Backup path idx: 0, Weight: 0
     MAC/Encaps: 18/18, MTU: 1500
     Packets Switched: 479
RP/0/0/CPU0:XRv2#show bgp ipv4 labeled-unicast 10.0.0.11
BGP routing table entry for 10.0.0.11/32
Versions:
  Process           bRIB/RIB  SendTblVer
  Speaker                119         119
    Local Label: 24004
Last Modified: Aug  2 19:51:16.158 for 00:02:51
Paths: (2 available, best #1)
  Advertised to update-groups (with more than one peer):
    0.2
  Advertised to peers (in unique update groups):
    10.0.0.1        
  Path #1: Received by speaker 0
  Advertised to update-groups (with more than one peer):
    0.2
  Advertised to peers (in unique update groups):
    10.0.0.1        
  Local
    10.1.112.11 from 0.0.0.0 (10.0.0.2)
      Origin incomplete, metric 0, localpref 100, weight 32768, valid, redistributed, best, group-best
      Received Path ID 0, Local Path ID 1, version 119
  Path #2: Received by speaker 0
  Not advertised to any peer
  65100
    10.0.0.11 from 10.0.0.11 (10.0.1.11)
      Received Label 3
      Origin IGP, metric 0, localpref 100, valid, external, group-best
      Received Path ID 0, Local Path ID 0, version 0
      Origin-AS validity: not-found
RP/0/0/CPU0:XRv2#

Is there any ideas to explain such a behavior (I have not found anything about this on CCO) and any workaround except of static route redistributin. Redistribution is not a good option for me as the locally originated route suppresses the eBGP route from CSR1 and if CSR1 assign some community to its route, this communities will not be propagated further by XR2 as it is reoreginates the route by itself.

         
4 Replies 4

Olev Vallaste
Level 1
Level 1

Hi Denis,

Glad to see you )

What differences on CSR1`s side and XR2`s side between prefixes 10.0.0.11/32 and 10.0.1.11/32 while first one have no local label on XR2 and second one - have?

And why you want to have eBGP LU-session right between Loopbacks while over the physical interfaces all works fine?

Hi Olev,

The difference between the 10.0.0.11 and 10.0.1.11 is the fact that the first one is used as the source address for BGP session on CSR1 and as a BGP peer address on XR1, otherwise there is no difference.

Regarding second question - There is actually redundant path between loopbacks (not shown in the topology) and I want to use this path to preserve BGP session state  between loopbaacks while the main path will fail. Also, I want to use this redundant path fow load sharing.

Hi Denis,

Sorry for off topic. I can see that you are using XRv. I am trying to deploy XRv 9k as well. I followed Cisco's "how to access console" no luck so far. Would you mind to take a look at here?

https://supportforums.cisco.com/discussion/13204506/console-connection-xrv-9k

Thanks in advance!

kingjin
Cisco Employee
Cisco Employee

Did you try to change the AD of static route to 250?

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: