Cisco – MPLS lable generation – PE-P-PE routing

bgpciscompls

I'm doing some tests in my lab preparing for CCIE R&S and I'm diving into how MPLS works and I ran into a issue with getting traceroute to display the label path in it's output. I have not found out why this is not working.

I can ping fine between the CE's.

this is the setup.

CE1 – PE1 – P1 – P2 – PE2 – CE2

P1/P2 only have OSPF enabled with OSPF mpls autoconfig for area 0

CE-PE protocol is BGP

here is the PE2 BGP config:

router bgp 100
 bgp router-id 80.2.2.2
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 80.1.1.1 remote-as 100
 neighbor 80.1.1.1 update-source Loopback0
 !
 address-family ipv4
  redistribute ospf 1
  neighbor 80.1.1.1 activate
  neighbor 80.1.1.1 send-community
 exit-address-family
 !
 address-family vpnv4
  neighbor 80.1.1.1 activate
  neighbor 80.1.1.1 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf CPE2
  redistribute connected
  redistribute ospf 1010
  neighbor 192.168.99.20 remote-as 20
  neighbor 192.168.99.20 activate
  neighbor 192.168.99.20 next-hop-self
 exit-address-family

IP VRF:

ip vrf CPE2
 rd 20:20
 route-target export 200:200
 route-target export 700:700
 route-target import 100:100
 route-target import 700:700

and here are show commands

PE2#show ip bgp vpnv4 vrf CPE2 
BGP table version is 31, local router ID is 80.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 20:20 (default for vrf CPE2)
 *>i 192.168.1.0      80.1.1.1                 0    100      0 ?
 *>i 192.168.10.0     80.1.1.1                 0    100      0 10 ?
 *>  192.168.20.0     192.168.99.20            0             0 20 ?
 *>  192.168.99.0     0.0.0.0                  0         32768 ?
 *                    192.168.99.20            0             0 20 ?
 *>i 192.168.100.1/32 80.1.1.1                 0    100      0 10 ?
 *>  192.168.100.2/32 192.168.99.20            0             0 20 ?

and here is the mpls forwarding table

PE2# show mpls forwarding-table 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
1200       Pop Label  10.1.2.2/32      0             Et0/0      10.50.1.2   
1201       Pop Label  10.10.10.0/24    0             Et0/0      10.50.1.2   
1202       Pop Label  10.10.8.0/24     0             Et0/0      10.50.1.2   
1203       Pop Label  10.10.7.0/24     0             Et0/0      10.50.1.2   
1204       Pop Label  10.10.2.0/24     0             Et0/0      10.50.1.2   
1205       Pop Label  10.10.1.0/24     0             Et0/0      10.50.1.2   
1206       202        80.1.1.1/32      0             Et0/0      10.50.1.2   
1207       203        10.1.1.1/32      0             Et0/0      10.50.1.2   
1208       204        10.40.2.0/24     0             Et0/0      10.50.1.2   
1209       205        10.10.9.0/24     0             Et0/0      10.50.1.2   
1210       206        10.10.6.0/24     0             Et0/0      10.50.1.2   
1211       207        10.10.5.0/24     0             Et0/0      10.50.1.2   
1212       208        10.40.1.0/24     0             Et0/0      10.50.1.2   
1213       No Label   192.168.20.0/24[V]   \
                                       0             Et1/0      192.168.99.20
1214       No Label   192.168.99.0/24[V]   \
                                       3420          aggregate/CPE2 
1215       No Label   192.168.100.2/32[V]   \
                                       696           Et1/0      192.168.99.20

PE2# show ip bgp vpnv4 vrf CPE2 192.168.100.2
BGP routing table entry for 20:20:192.168.100.2/32, version 12
Paths: (1 available, best #1, table CPE2)
  Advertised to update-groups:
     3         
  Refresh Epoch 2
  20
    192.168.99.20 from 192.168.99.20 (192.168.100.2)
      Origin incomplete, metric 0, localpref 100, valid, external, best
      Extended Community: RT:200:200 RT:700:700
      mpls labels in/out 1215/nolabel
      rx pathid: 0, tx pathid: 0x0

CPE2#traceroute 192.168.100.1 source lo0
Type escape sequence to abort.
Tracing the route to 192.168.100.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.99.2 1 msec 0 msec 0 msec
  2  *  *  * 
  3  *  *  * 
  4  *  *  * 
  5 192.168.1.111 [AS 100] 1 msec *  0 msec

the Loopbacks of CE1 / CE2 are 192.168.100.1 and 192.168.100.2
So you see that I have the local lable for 192.168.100.2 – that is going from PE2->CE2 non mpls – but what I don't see are labels for the 192.168.100.1 that is going to go over the P routers. the BGP points to 8.1.1.1 and that has a label.

so is this normal – or do I have to make some changes to get the router to create labels for every route – perhaps I'm missing some point here.

  • benni

Best Answer

but what I don't see are labels for the 192.168.100.1 that is going to go over the P routers. the BGP points to 8.1.1.1 and that has a label - If you have configured PE1 as 8.1.1.1 with next-hop-self then that is how the routes should look.

I suggesst you read more about BGP behaviour for MPBGP sessions and sending labeled updates for IPV4 unicast and VPNV4 etc.

Related Topic