MPLS Multi Vendor(6/6): Configuring BGP as PE-CE protocol


In previous articles we configured the MPLS core with IS-IS and LDP, we configured also MP-BGP between the PEs and the VPNv4 Route Reflector, and we have tested that we have reachability PE to PE for each VRF/Routing Instance.

In this article, we are going to configure the EVEN routers with BGP as the routing protocol between PE and CE. Maybe is the easiest protocol to configure between PE-CE for a service provider, but some extra configuration(as-override) will be necessary if the customer uses same AS in different branches.





Configuring BGP as PE-CE protocol:


R6:


router bgp 65000
 bgp log-neighbor-changes
 network 12.12.12.12 mask 255.255.255.255
 network 66.66.66.66 mask 255.255.255.255
 neighbor 192.168.1.1 remote-as 65002

R8:


router bgp 65000
 bgp log-neighbor-changes
 network 44.44.44.44 mask 255.255.255.255
 network 88.88.88.88 mask 255.255.255.255
 neighbor 192.168.2.1 remote-as 65001

CiPE:


IOS PE Configuration is really easy, just configure the peer, I have used a different AS-Number and this is the reason for local-as, by default is not necessary. If we don't use the same AS in both CE AS-Override.

 address-family ipv4 vrf EVEN
  neighbor 192.168.1.2 remote-as 65000
  neighbor 192.168.1.2 local-as 65002
  neighbor 192.168.1.2 activate
  neighbor 192.168.1.2 as-override

JPE:

JunOS configuration is very similar than the cisco for the BGP.

set routing-instances EVEN protocols bgp group R8 peer-as 65000
set routing-instances EVEN protocols bgp group R8 local-as 65001
set routing-instances EVEN protocols bgp group R8 as-override
set routing-instances EVEN protocols bgp group R8 neighbor 192.168.2.2

Reference Link about AS-Override:



Verification:


R6:


The routing table have all the needed routes, ping to the other CE is working, and tracert is also working.

R6#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      12.0.0.0/32 is subnetted, 1 subnets
C        12.12.12.12 is directly connected, Loopback12
      44.0.0.0/32 is subnetted, 1 subnets
B        44.44.44.44 [20/0] via 192.168.1.1, 00:04:51
      66.0.0.0/32 is subnetted, 1 subnets
C        66.66.66.66 is directly connected, Loopback66
      88.0.0.0/32 is subnetted, 1 subnets
B        88.88.88.88 [20/0] via 192.168.1.1, 00:04:51
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.2/32 is directly connected, Ethernet0/0
B     192.168.2.0/24 [20/0] via 192.168.1.1, 00:04:51

R6#ping 44.44.44.44 source loop 66
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 44.44.44.44, timeout is 2 seconds:
Packet sent with a source address of 66.66.66.66
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/3/5 ms

R6#trace 44.44.44.44
Type escape sequence to abort.
Tracing the route to 44.44.44.44
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.1 [AS 100] 0 msec 1 msec 4 msec
  2  *  *  *
  3 10.0.2.2 [MPLS: Labels 16/16 Exp 0] 3 msec 3 msec 4 msec
  4 192.168.2.1 [AS 100] 3 msec 4 msec 3 msec
  5 192.168.2.2 [AS 100] 4 msec 4 msec *
R6#

R8:


R8 have also the right information in the routing table, connectivity was tested previously from R6.

R8#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      12.0.0.0/32 is subnetted, 1 subnets
B        12.12.12.12 [20/0] via 192.168.2.1, 00:00:37
      44.0.0.0/32 is subnetted, 1 subnets
C        44.44.44.44 is directly connected, Loopback44
      66.0.0.0/32 is subnetted, 1 subnets
B        66.66.66.66 [20/0] via 192.168.2.1, 00:00:37
      88.0.0.0/32 is subnetted, 1 subnets
C        88.88.88.88 is directly connected, Loopback88
B     192.168.1.0/24 [20/0] via 192.168.2.1, 00:12:48
      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.2.0/24 is directly connected, Ethernet0/0
L        192.168.2.2/32 is directly connected, Ethernet0/0

CiPE:


All routes seen via BGP, but remotes with the next hop of the LDP router-ID,

CiPE#show ip route vrf EVEN

Routing Table: EVEN
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      12.0.0.0/32 is subnetted, 1 subnets
B        12.12.12.12 [20/0] via 192.168.1.2, 00:15:35
      44.0.0.0/32 is subnetted, 1 subnets
B        44.44.44.44 [200/0] via 5.5.5.5, 00:27:46
      66.0.0.0/32 is subnetted, 1 subnets
B        66.66.66.66 [20/0] via 192.168.1.2, 00:15:35
      88.0.0.0/32 is subnetted, 1 subnets
B        88.88.88.88 [200/0] via 5.5.5.5, 00:27:46
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.1/32 is directly connected, Ethernet0/0
B     192.168.2.0/24 [200/0] via 5.5.5.5, 00:27:46

JPE:


Same information in the routing table of JunOS.

lab@JPE> show route table EVEN.inet.0

EVEN.inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

12.12.12.12/32     *[BGP/170] 00:16:49, MED 0, localpref 100, from 1.1.1.1
                      AS path: 65002 65000 I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 24, Push 21(top)
44.44.44.44/32     *[BGP/170] 00:43:29, MED 0, localpref 100
                      AS path: 65000 I, validation-state: unverified
                    > to 192.168.2.2 via ge-0/0/6.0
66.66.66.66/32     *[BGP/170] 00:16:49, MED 0, localpref 100, from 1.1.1.1
                      AS path: 65002 65000 I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 25, Push 21(top)
88.88.88.88/32     *[BGP/170] 00:43:29, MED 0, localpref 100
                      AS path: 65000 I, validation-state: unverified
                    > to 192.168.2.2 via ge-0/0/6.0
192.168.1.0/24     *[BGP/170] 00:29:00, MED 0, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 35, Push 21(top)
192.168.2.0/24     *[Direct/0] 01:38:23
                    > via ge-0/0/6.0
192.168.2.1/32     *[Local/0] 01:38:24
                      Local via ge-0/0/6.0

MPLS Multi Vendor(5/6): Configuring OSPF as PE-CE protocol


In previous articles we configured the MPLS core with IS-IS and LDP, we configured also MP-BGP between the PEs and the VPNv4 Route Reflector, and we have tested that we have reachability PE to PE for each VRF/Routing Instance.

In this article, we are going to configure the ODD routers with OSPF as the routing protocol between PE and CE.



Configuring OSPF as PE-CE protocol:



R7:


hostname R7
interface Loopback14
 ip address 14.14.14.14 255.255.255.255
interface Loopback77
 ip address 77.77.77.77 255.255.255.255
interface Ethernet0/0
 ip address 172.16.1.2 255.255.255.0

router ospf 1
 network 14.14.14.14 0.0.0.0 area 0
 network 77.77.77.77 0.0.0.0 area 0
 network 172.16.1.2 0.0.0.0 area 0

R9:


hostname R9
interface Loopback18
 ip address 18.18.18.18 255.255.255.255
interface Loopback99
 ip address 99.99.99.99 255.255.255.255
interface Ethernet0/0
 ip address 172.16.2.2 255.255.255.0

router ospf 1
 network 18.18.18.18 0.0.0.0 area 0
 network 99.99.99.99 0.0.0.0 area 0
 network 172.16.2.2 0.0.0.0 area 0

CiPE:


Cisco IOS PE configuration is very similar using OSPF than using RIP, create OSPF process, assign the interface and redistribute in both directions. An important point to remember is, doesn't forget subnets in the redistribution to OSPF, like in any other redistribution to OSPF.

router ospf 1 vrf ODD
 redistribute bgp 100 subnets
 network 172.16.1.1 0.0.0.0 area 0

router bgp 100
 address-family ipv4 vrf ODD
  network 172.16.1.0 mask 255.255.255.0
  redistribute ospf 1
 exit-address-family


JPE:
Junos OSPF PE-CE configuration is also very similar than RIP. But if your customer doesn't want to receive the routes as external routes you need to create sham links.

set policy-options policy-statement to_OSPF from protocol bgp
set policy-options policy-statement to_OSPF then accept
set routing-instances ODD protocols ospf export to_OSPF
set routing-instances ODD protocols ospf area 0.0.0.0 interface ge-0/0/5.0

Reference link:



Verification:



R7:


The routing table have all the needed routes, ping to the other CE is working, and tracert is also working.

R7#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      14.0.0.0/32 is subnetted, 1 subnets
C        14.14.14.14 is directly connected, Loopback14
      18.0.0.0/32 is subnetted, 1 subnets
O E2     18.18.18.18 [110/2] via 172.16.1.1, 00:33:59, Ethernet0/0
      77.0.0.0/32 is subnetted, 1 subnets
C        77.77.77.77 is directly connected, Loopback77
      99.0.0.0/32 is subnetted, 1 subnets
O E2     99.99.99.99 [110/2] via 172.16.1.1, 00:33:59, Ethernet0/0
      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C        172.16.1.0/24 is directly connected, Ethernet0/0
L        172.16.1.2/32 is directly connected, Ethernet0/0
O E2     172.16.2.0/24 [110/1] via 172.16.1.1, 00:33:59, Ethernet0/0
R7#ping 99.99.99.99 source loop 77
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 99.99.99.99, timeout is 2 seconds:
Packet sent with a source address of 77.77.77.77
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/3/4 ms
R7#trace 99.99.99.99
Type escape sequence to abort.
Tracing the route to 99.99.99.99
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.1.1 0 msec 1 msec 4 msec
  2  *  *  *
  3 10.0.2.2 [MPLS: Labels 16/17 Exp 0] 4 msec 4 msec 3 msec
  4 172.16.2.1 10 msec 4 msec 3 msec
  5 172.16.2.2 9 msec 4 msec *

R9:


R9 have also the right information in the routing table, connectivity was tested previously from R7.

R9#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      14.0.0.0/32 is subnetted, 1 subnets
O E1     14.14.14.14 [110/21] via 172.16.2.1, 00:35:00, Ethernet0/0
      18.0.0.0/32 is subnetted, 1 subnets
C        18.18.18.18 is directly connected, Loopback18
      77.0.0.0/32 is subnetted, 1 subnets
O E1     77.77.77.77 [110/21] via 172.16.2.1, 00:35:00, Ethernet0/0
      99.0.0.0/32 is subnetted, 1 subnets
C        99.99.99.99 is directly connected, Loopback99
      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
O E1     172.16.1.0/24 [110/10] via 172.16.2.1, 00:35:00, Ethernet0/0
C        172.16.2.0/24 is directly connected, Ethernet0/0
L        172.16.2.2/32 is directly connected, Ethernet0/0

CiPE:


CiPE shows the local routes via OSPF, and remote routes via BGP as expected.

CiPE#show ip route vrf ODD

Routing Table: ODD
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      14.0.0.0/32 is subnetted, 1 subnets
O        14.14.14.14 [110/11] via 172.16.1.2, 00:42:03, Ethernet0/1
      18.0.0.0/32 is subnetted, 1 subnets
B        18.18.18.18 [200/2] via 5.5.5.5, 00:37:50
      77.0.0.0/32 is subnetted, 1 subnets
O        77.77.77.77 [110/11] via 172.16.1.2, 00:42:03, Ethernet0/1
      99.0.0.0/32 is subnetted, 1 subnets
B        99.99.99.99 [200/2] via 5.5.5.5, 00:37:50
      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C        172.16.1.0/24 is directly connected, Ethernet0/1
L        172.16.1.1/32 is directly connected, Ethernet0/1
B        172.16.2.0/24 [200/0] via 5.5.5.5, 00:37:50

JPE:


Same behaviour for JPE, the final multicast route is the multicast group that uses OSPF DR to communicate with the remaining devices(NonBDR).

lab@JPE> show route table ODD.inet.0

ODD.inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

14.14.14.14/32     *[BGP/170] 00:39:11, MED 11, localpref 100, from 1.1.1.1
                      AS path: ?, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 24, Push 21(top)
18.18.18.18/32     *[OSPF/10] 00:40:28, metric 2
                    > to 172.16.2.2 via ge-0/0/5.0
77.77.77.77/32     *[BGP/170] 00:39:11, MED 11, localpref 100, from 1.1.1.1
                      AS path: ?, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 25, Push 21(top)
99.99.99.99/32     *[OSPF/10] 00:40:28, metric 2
                    > to 172.16.2.2 via ge-0/0/5.0
172.16.1.0/24      *[BGP/170] 00:39:11, MED 0, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 26, Push 21(top)
172.16.2.0/24      *[Direct/0] 00:41:13
                    > via ge-0/0/5.0
172.16.2.1/32      *[Local/0] 00:41:14
                      Local via ge-0/0/5.0
224.0.0.5/32       *[OSPF/10] 00:42:04, metric 1
                      MultiRecv

MPLS Multi Vendor(4/6): Configuring RIP as PE-CE protocol


In previous articles we configured the MPLS core with IS-IS and LDP, we configured also MP-BGP between the PEs and the VPNv4 Route Reflector, and we have tested that we have reachability PE to PE for each VRF/Routing Instance.

In this article we are going to configure the EVEN routers with RIP as the routing protocol between PE and CE.


Configuring RIP as PE-CE protocol:



R6:


hostname R6
interface Loopback12
 ip address 12.12.12.12 255.255.255.255

interface Loopback66
 ip address 66.66.66.66 255.255.255.255

interface Ethernet0/0
 ip address 192.168.1.2 255.255.255.0

router rip
 version 2
 network 12.0.0.0
 network 66.0.0.0
 network 192.168.1.0



R8:


hostname R8
interface Loopback44
 ip address 44.44.44.44 255.255.255.255

interface Loopback88
 ip address 88.88.88.88 255.255.255.255

interface Ethernet0/0
 ip address 192.168.2.2 255.255.255.0

router rip
 version 2
 network 44.0.0.0
 network 88.0.0.0
 network 192.168.2.0


CiPE:


For the IOS router it is needed to create an address family for the vrf inside the rip process and redistribute the BGP(via VPNv4). It is also needed to redistribute in the BGP vrf EVEN address family RIP.

router rip
 address-family ipv4 vrf EVEN
  redistribute bgp 100 metric 3
  network 192.168.1.0
  no auto-summary
  version 2
 exit-address-family

router bgp 100
 address-family ipv4 vrf EVEN
  redistribute rip

An important detail in the BGP to RIP redistributions is that the metric is mandatory, if you don't adjust any metric for the redistribution the routes won't be redistributed.

JPE:


set policy-options policy-statement to_RIP from protocol bgp
set policy-options policy-statement to_RIP then accept
set routing-instances EVEN protocols rip group R8 export to_RIP
set routing-instances EVEN protocols rip group R8 neighbor ge-0/0/6.0


Junos PE-CE Configuration is quite easy, by default Junos inject the routes from the PE-CE protocol to the VPNv4 BGP, but it is needed to create a policy to export the routes from BGP to RIP.




Verification:



R6:


The routing table have all the needed routes, ping to the other CE is working, and tracert is also working.

R6#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      12.0.0.0/32 is subnetted, 1 subnets
C        12.12.12.12 is directly connected, Loopback12
R     44.0.0.0/8 [120/3] via 192.168.1.1, 00:00:14, Ethernet0/0
      66.0.0.0/32 is subnetted, 1 subnets
C        66.66.66.66 is directly connected, Loopback66
R     88.0.0.0/8 [120/3] via 192.168.1.1, 00:00:14, Ethernet0/0
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.2/32 is directly connected, Ethernet0/0
R     192.168.2.0/24 [120/3] via 192.168.1.1, 00:00:14, Ethernet0/0

R6#ping 88.88.88.88 source loopback 12
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 88.88.88.88, timeout is 2 seconds:
Packet sent with a source address of 12.12.12.12
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/3/5 ms

R6#traceroute 88.88.88.88
Type escape sequence to abort.
Tracing the route to 88.88.88.88
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.1 1 msec 0 msec 0 msec
  2  *  *  *
  3 10.0.2.2 [MPLS: Labels 18/16 Exp 0] 3 msec 3 msec 3 msec
  4 192.168.2.1 3 msec 3 msec 3 msec
  5 192.168.2.2 3 msec 5 msec *


R8:


R8 have also the right information in the routing table, connectivity was tested previously from R6.

R8#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

R     12.0.0.0/8 [120/1] via 192.168.2.1, 00:00:25, Ethernet0/0
      44.0.0.0/32 is subnetted, 1 subnets
C        44.44.44.44 is directly connected, Loopback44
R     66.0.0.0/8 [120/1] via 192.168.2.1, 00:00:25, Ethernet0/0
      88.0.0.0/32 is subnetted, 1 subnets
C        88.88.88.88 is directly connected, Loopback88
R     192.168.1.0/24 [120/1] via 192.168.2.1, 00:00:25, Ethernet0/0
      192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.2.0/24 is directly connected, Ethernet0/0
L        192.168.2.2/32 is directly connected, Ethernet0/0

CiPE:


CiPE shows the local routes via RIP, and remote routes via BGP as expected.

CiPE#show ip route vrf EVEN

Routing Table: EVEN
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

R     12.0.0.0/8 [120/1] via 192.168.1.2, 00:00:18, Ethernet0/0
B     44.0.0.0/8 [200/2] via 5.5.5.5, 00:35:11
R     66.0.0.0/8 [120/1] via 192.168.1.2, 00:00:18, Ethernet0/0
B     88.0.0.0/8 [200/2] via 5.5.5.5, 00:35:11
      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.1/32 is directly connected, Ethernet0/0
B     192.168.2.0/24 [200/0] via 5.5.5.5, 02:31:29

JPE:


Same behaviour for JPE, the final multicast route is due RIP version 2 uses a multicast group to exchange the information with all the routers in the link.

lab@JPE> show route table EVEN.inet.0

EVEN.inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

12.0.0.0/8         *[BGP/170] 01:16:24, MED 1, localpref 100, from 1.1.1.1
                      AS path: ?, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 26, Push 21(top)
44.0.0.0/8         *[RIP/100] 00:37:10, metric 2, tag 0
                    > to 192.168.2.2 via ge-0/0/6.0
66.0.0.0/8         *[BGP/170] 01:16:24, MED 1, localpref 100, from 1.1.1.1
                      AS path: ?, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 27, Push 21(top)
88.0.0.0/8         *[RIP/100] 00:37:10, metric 2, tag 0
                    > to 192.168.2.2 via ge-0/0/6.0
192.168.1.0/24     *[BGP/170] 01:16:24, MED 0, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 25, Push 21(top)
192.168.2.0/24     *[Direct/0] 02:56:27
                    > via ge-0/0/6.0
192.168.2.1/32     *[Local/0] 02:56:28
                      Local via ge-0/0/6.0
224.0.0.9/32       *[RIP/100] 00:28:16, metric 1
                      MultiRecv

MPLS Multi Vendor(3/6): Configuring VPNv4 MBGP


In previous articles we configured IS-IS and LDP between all the core devices, and create two VRF/Routing-Instances in the PEs. In this article we are going to start with the BGP configuration.
  
The IOS-XR device is going to be VPNv4 BGP Route Reflector, and we are going to have one BGP session against the Cisco IOS PE and Junos PE.



XR:


router bgp 100
 bgp router-id 1.1.1.1
 address-family vpnv4 unicast

 neighbor 4.4.4.4
  remote-as 100
  update-source Loopback0
  address-family vpnv4 unicast
   route-reflector-client


 neighbor 5.5.5.5
  remote-as 100
  update-source Loopback0
  address-family vpnv4 unicast
   route-reflector-client

CiPE:


router bgp 100
 bgp router-id 4.4.4.4
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 1.1.1.1 remote-as 100
 neighbor 1.1.1.1 update-source Loopback0

 address-family vpnv4
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community extended
 exit-address-family


JPE:


set protocols bgp group RR type internal
set protocols bgp group RR local-address 5.5.5.5
set protocols bgp group RR family inet-vpn unicast
set protocols bgp group RR neighbor 1.1.1.1
set routing-options router-id 5.5.5.5
set routing-options autonomous-system 100


After the VPNv4 configuration the BGP session will be up, but no prefixes will be received at any peer.

XR:


RP/0/0/CPU0:XR#sh bgp vpnv4 unicast summary
Wed Jun 22 04:41:20.730 UTC
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 1
BGP NSR Initial initsync version 1 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

BGP is operating in STANDALONE mode.


Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer
Speaker               1          1          1          1           1           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
4.4.4.4           0   100      15      13        1    0    0 00:10:28          0
5.5.5.5           0   100      20      18        1    0    0 00:07:36          0

CiPE:


CiPE#show bgp vpnv4 unicast all summary
BGP router identifier 4.4.4.4, local AS number 100
BGP table version is 1, main routing table version 1

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4          100       8       9        1    0    0 00:05:12        0

JPE:


lab@JPE> show bgp summary
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
bgp.l3vpn.0
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
1.1.1.1                 100          3          6       0       0        1:28 Establ
  bgp.l3vpn.0: 0/0/0/0

Advertising the local VRF interfaces:


Now start advertising the local interface of each vrf to the BGP. For junos there are not redistribution or network statement commands, all prefixes need to be announced using a route policy.

CiPE:


router bgp 100
 address-family ipv4 vrf EVEN
  network 192.168.1.0
 exit-address-family

 address-family ipv4 vrf ODD
  network 172.16.1.0 mask 255.255.255.0
 exit-address-family


JPE:


set policy-options policy-statement Export_EVEN term 2 from interface ge-0/0/6.0
set policy-options policy-statement Export_EVEN term 2 then community add rt_222:222
set policy-options policy-statement Export_EVEN term 2 then accept
set policy-options policy-statement Export_ODD term 2 from interface ge-0/0/5.0
set policy-options policy-statement Export_ODD term 2 then community add rt_111:111
set policy-options policy-statement Export_ODD term 2 then accept
set routing-instances ODD vrf-table-label
set routing-instances EVEN vrf-table-label

By default Juniper devices has this behaviour: BGP will not advertise the directly connected network to the remote PE router in L3VPN without vrf-table-label or some other route to advertise.

set routing-instances <Routing_instance> vrf-table-label allow to generate a label for this prefixes.



Now we should be able to ping the remote interfaces in the same routing table, and we should be  learning prefixes using VPNv4 MP-BGP. Your basic MPLS network is already working.

CiPE:
CiPE#show bgp vpnv4 unicast all summary
BGP router identifier 4.4.4.4, local AS number 100
BGP table version is 17, main routing table version 17
4 network entries using 624 bytes of memory
4 path entries using 320 bytes of memory
4/4 BGP path/bestpath attribute entries using 640 bytes of memory
1 BGP rrinfo entries using 24 bytes of memory
2 BGP extended community entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1656 total bytes of memory
BGP activity 5/1 prefixes, 5/1 paths, scan interval 60 secs

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4          100      37      40       17    0    0 00:30:15        2

CiPE#show ip route vrf ODD
Routing Table: ODD
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
C        172.16.1.0/24 is directly connected, Ethernet0/1
L        172.16.1.1/32 is directly connected, Ethernet0/1
B        172.16.2.0/24 [200/0] via 5.5.5.5, 00:19:25

CiPE#show ip route vrf EVEN
Routing Table: EVEN
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, Ethernet0/0
L        192.168.1.1/32 is directly connected, Ethernet0/0
B     192.168.2.0/24 [200/0] via 5.5.5.5, 00:21:03
CiPE#

CiPE#ping vrf EVEN 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 3/5/13 ms


JPE:


lab@JPE> show route table ODD

ODD.inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

172.16.1.0/24      *[BGP/170] 00:28:06, MED 0, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 25, Push 20(top)
172.16.2.0/24      *[Direct/0] 03:02:29
                    > via ge-0/0/5.0
172.16.2.1/32      *[Local/0] 03:02:29
                      Local via ge-0/0/5.0

lab@JPE> show route table EVEN.inet.0

EVEN.inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

192.168.1.0/24     *[BGP/170] 00:28:10, MED 0, localpref 100, from 1.1.1.1
                      AS path: I, validation-state: unverified
                    > to 10.0.4.1 via ge-0/0/7.0, Push 22, Push 20(top)
192.168.2.0/24     *[Direct/0] 03:02:33
                    > via ge-0/0/6.0
192.168.2.1/32     *[Local/0] 03:02:33
                      Local via ge-0/0/6.0

lab@JPE> show bgp summary
Groups: 1 Peers: 1 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending
bgp.l3vpn.0
                       2          2          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
1.1.1.1                 100         65         72       0       6       29:04 Establ
  bgp.l3vpn.0: 2/2/2/0
  ODD.inet.0: 1/1/1/0
  EVEN.inet.0: 1/1/1/0


XR:


RP/0/0/CPU0:XR#show bgp vpnv4 unicast summary
Wed Jun 22 05:54:20.000 UTC
BGP router identifier 1.1.1.1, local AS number 100
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0x0   RD version: 0
BGP main routing table version 14
BGP NSR Initial initsync version 1 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs

BGP is operating in STANDALONE mode.


Process       RcvTblVer   bRIB/RIB   LabelVer  ImportVer  SendTblVer  StandbyVer
Speaker              14         14         14         14          14           0

Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
4.4.4.4           0   100     109     101       14    0    0 00:28:16          2
5.5.5.5           0   100     221     191       14    0    0 00:27:38          2

There are reachability between the PEs in the VRFs, next step is to configure PE-CE routing protocols.


MPLS Multi Vendor(2/6): Basic PE configuration


Continuing with the article of MPLS Multi Vendor, in this article we are going to introduce the basic configuration in the PEs. Including IS-IS and LDP in the core facing interfaces, after this configuration all the PEs should know in their routing table the IP address of the interface loopback 0 of the remaining PEs, and should populate labels using LDP.


Configuration:


IS-IS and LDP is configured in core facing interfaces, and enabling it also in the interfaces of the P routers that connects to the PEs.

CiPE:


hostname CiPE
int e0/2
ip add 10.0.3.2 255.255.255.0
mpls ip
ip router isis
int loo 0
ip add 4.4.4.4 255.255.255.255
ip router isis

  mpls ldp router-id loopback 0


router isis
  net 49.0004.0004.0004.0004.00
  is-type level-2-only


JPE:


set system host-name JPE
set interfaces ge-0/0/7 unit 0 family inet address 10.0.4.2/24
set interfaces ge-0/0/7 unit 0 family iso
set interfaces ge-0/0/7 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 5.5.5.5/32
set interfaces lo0 unit 0 family iso address 49.0005.0005.0005.0005.00
set interfaces lo0 unit 0 family mpls

set protocols isis level 1 disable
set protocols isis interface ge-0/0/7.0
set protocols isis interface lo0.0
set protocols ldp interface ge-0/0/7.0


JP:

set interfaces ge-0/0/7 unit 0 family inet address 10.0.3.1/24
set interfaces ge-0/0/7 unit 0 family iso
set interfaces ge-0/0/7 unit 0 family mpls
set protocols isis interface ge-0/0/7.0
set protocols ldp interface ge-0/0/7.0

CiP:


int e0/2
ip add 10.0.4.1 255.255.255.0
ip router isis
mpls ip
no shut

The configuration in the Junos PE is a little bit different to the IOS and IOS-XR, you need to configure three address families in the interfaces: Inet, ISO, and MPLS. And the CLNS net address need to be configured in an interface, that normally is the loopback address.

Checking Label allocation in the PEs:


We should check that the we have the IS-IS adjacencies between PEs and Ps and LDP neighbours as well. Finally we should check that we are generating labels for any other device in the network, specially for the other PEs.

CiPE:


CiPE#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  2.2.2.2/32       0             Et0/2      10.0.3.1
17         No Label   10.0.2.0/24      0             Et0/2      10.0.3.1
18         No Label   10.0.1.0/24      0             Et0/2      10.0.3.1
19         299776     3.3.3.3/32       0             Et0/2      10.0.3.1
20         299792     1.1.1.1/32       0             Et0/2      10.0.3.1
21         299808     10.0.0.0/24      0             Et0/2      10.0.3.1
23         299840     5.5.5.5/32       0             Et0/2      10.0.3.1
24         299776     10.0.4.0/24      0             Et0/2      10.0.3.1

JPE:


lab@JPE> show route table inet.3

inet.3: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0, Push 16
2.2.2.2/32         *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0, Push 18
3.3.3.3/32         *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0
4.4.4.4/32         *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0, Push 20
10.0.0.0/24        *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0
10.0.1.0/24        *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0, Push 17
10.0.2.0/24        *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0
10.0.3.0/24        *[LDP/9] 00:04:10, metric 1
                    > to 10.0.4.1 via ge-0/0/7.0, Push 19

One big difference between IOS and Junos is how the routers store the MPLS labels, Cisco has a MPLS forwarding table, and Junos uses a routing table named inet.3, the global routing table in a Junos device is the inet.0. 

Creating the VRFs Odd and Even:


Once the MPLS layer is working our next step is to create the VRFs where we are going to place the customers, one of them are going to be for Odd routers and the other is going to be for Even routers.

CiPE:


vrf definition ODD
 rd 100:111
 address-family ipv4
  route-target export 111:111
  route-target import 111:111
 exit-address-family


vrf definition EVEN
 rd 100:222
 address-family ipv4
  route-target export 222:222
  route-target import 222:222
 exit-address-family

 interface Ethernet0/0
 vrf forwarding EVEN
 ip address 192.168.1.1 255.255.255.0
 no shut

 interface Ethernet0/1
 vrf forwarding ODD
 ip address 172.16.1.1 255.255.255.0
 no shut


JPE:


set policy-options community rt_111:111 members target:111:111
set policy-options community rt_222:222 members target:222:222

set policy-options policy-statement Import_ODD term 1 from protocol bgp
set policy-options policy-statement Import_ODD term 1 from community rt_111:111
set policy-options policy-statement Import_ODD term 1 then accept
set policy-options policy-statement Import_EVEN term 1 from protocol bgp
set policy-options policy-statement Import_EVEN term 1 from community rt_222:222
set policy-options policy-statement Import_EVEN term 1 then accept

set policy-options policy-statement Export_ODD term 1 from protocol bgp
set policy-options policy-statement Export_ODD term 1 then community add rt_111:111
set policy-options policy-statement Export_ODD term 1 then accept
set policy-options policy-statement Export_EVEN term 1 from protocol bgp
set policy-options policy-statement Export_EVEN term 1 then community add rt_222:222
set policy-options policy-statement Export_EVEN term 1 then accept

set routing-instances ODD instance-type vrf
set routing-instances ODD interface ge-0/0/5.0
set routing-instances ODD route-distinguisher 100:111
set routing-instances ODD vrf-import Import_ODD
set routing-instances ODD vrf-export Export_ODD

set routing-instances EVEN instance-type vrf
set routing-instances EVEN interface ge-0/0/6.0
set routing-instances EVEN route-distinguisher 100:222
set routing-instances EVEN vrf-import Import_EVEN
set routing-instances EVEN vrf-export Export_EVEN

set interface ge-0/0/5.0 family inet address 172.16.2.1/24
set interface ge-0/0/6.0 family inet address 192.168.2.1/24


Probably Junos configuration for the VPNs is a little bit more extensive because there are some policy filtering that is mandatory in Junos and optional in IOS. Anyway if you use the right RT you are not going to face any issue to import and export routes in the VPNs. If you are a Cisco only engineer another configuration that could be surprising could be that the Route Targets need to be defined.

MPLS Multi Vendor(1/6): Core Layer


This article is to know how to configure and troubleshoot an easy MPLS network using Multi Vendor devices for PE and P routers. In the next topology I am using Cisco IOS routers, Cisco IOS-XR routers, and Juniper Junos routers.


Netmap:

XR is an IOS-XR P.
JP: is a Junos MX P.
CiP: is a Cisco IOS P.
CiPE: is a Cisco IOS PE.
JPE: is a Juniper PE.
R6-R9: Cisco IOS CE Routers.


Core Layer:

Core Layer is quite easy, each device has it's own different configuration but it is only IS-IS Level 2 and LDP.


Configuration:



XR:


hostname XR
interface Loopback0
 ipv4 address 1.1.1.1 255.255.255.255

interface GigabitEthernet0/0/0/7
 ipv4 address 10.0.0.1 255.255.255.0

interface GigabitEthernet0/0/0/8
 ipv4 address 10.0.1.1 255.255.255.0

router isis 1
 is-type level-2-only
 net 49.0001.0001.0001.0001.00
 address-family ipv4 unicast

 interface Loopback0
  address-family ipv4 unicast
 interface GigabitEthernet0/0/0/7
  address-family ipv4 unicast
 interface GigabitEthernet0/0/0/8
  address-family ipv4 unicast
  mpls ldp
 router-id 1.1.1.1
 interface GigabitEthernet0/0/0/7

 interface GigabitEthernet0/0/0/8



JP:


set system host-name JP

set interfaces ge-0/0/5 unit 0 family inet address 10.0.2.1/24
set interfaces ge-0/0/5 unit 0 family iso
set interfaces ge-0/0/5 unit 0 family mpls
set interfaces ge-0/0/6 unit 0 family inet address 10.0.1.2/24
set interfaces ge-0/0/6 unit 0 family iso
set interfaces ge-0/0/6 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 2.2.2.2/32
set interfaces lo0 unit 0 family iso address 49.0002.0002.0002.0002.00

set protocols isis interface ge-0/0/5.0
set protocols isis interface ge-0/0/6.0
set protocols isis interface lo0.0
set protocols isis level 1 disable
set protocols ldp interface ge-0/0/5.0
set protocols ldp interface ge-0/0/6.0



CiP:


hostname CiP

interface Loopback0
 ip address 3.3.3.3 255.255.255.255
 ip router isis
interface Ethernet0/0
 ip address 10.0.0.2 255.255.255.0
 ip router isis
 mpls ip
interface Ethernet0/1
 ip address 10.0.2.2 255.255.255.0
 ip router isis
 mpls ip

router isis
 net 49.0003.0003.0003.0003.00
 is-type level-2-only

mpls ldp router-id Loopback0


Checking ISIS adjacencies:

We need to check that we have l2 isis adjacencies between all the P routers, and check the routing table to show that we have all the loopback address in the routing table.

XR:


RP/0/0/CPU0:XR#  show isis interface brief
Wed Jun 22 00:58:04.707 UTC

IS-IS 1 Interfaces
    Interface      All     Adjs    Adj Topos  Adv Topos  CLNS   MTU    Prio
                   OK    L1   L2    Run/Cfg    Run/Cfg                L1   L2
-----------------  ---  ---------  ---------  ---------  ----  ----  --------
Lo0                Yes    -    0      1/1        1/1     Up    1500    -    -
Gi0/0/0/7          Yes    -    1      1/1        1/1     Up    1497    -   64
Gi0/0/0/8          Yes    -    1*     1/1        1/1     Up    1497    -   64


RP/0/0/CPU0:XR#show isis neighbors
Wed Jun 22 00:54:49.591 UTC

IS-IS 1 neighbors:
System Id      Interface        SNPA           State Holdtime Type IETF-NSF
JP             Gi0/0/0/8        0005.8671.af06 Up    21       L2   Capable
CiP            Gi0/0/0/7        aabb.cc00.0500 Up    9        L2   Capable


RP/0/0/CPU0:XR#show route ipv4
Wed Jun 22 00:55:16.589 UTC

Codes: C - connected, S - static, R - RIP, B - BGP, (>) - Diversion path
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - ISIS, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, su - IS-IS summary null, * - candidate default
       U - per-user static route, o - ODR, L - local, G  - DAGR, l - LISP
       A - access/subscriber, a - Application route
       M - mobile route, r - RPL, (!) - FRR Backup path

Gateway of last resort is not set

L    1.1.1.1/32 is directly connected, 00:16:50, Loopback0
i L2 2.2.2.2/32 [115/10] via 10.0.1.2, 00:16:40, GigabitEthernet0/0/0/8
i L2 3.3.3.3/32 [115/20] via 10.0.0.2, 00:16:44, GigabitEthernet0/0/0/7
C    10.0.0.0/24 is directly connected, 00:16:50, GigabitEthernet0/0/0/7
L    10.0.0.1/32 is directly connected, 00:16:50, GigabitEthernet0/0/0/7
C    10.0.1.0/24 is directly connected, 00:16:50, GigabitEthernet0/0/0/8
L    10.0.1.1/32 is directly connected, 00:16:50, GigabitEthernet0/0/0/8
i L2 10.0.2.0/24 [115/20] via 10.0.0.2, 00:16:40, GigabitEthernet0/0/0/7
                 [115/20] via 10.0.1.2, 00:16:40, GigabitEthernet0/0/0/8


JP:


lab@JP> show isis interface
IS-IS interface database:
Interface             L CirID Level 1 DR        Level 2 DR        L1/L2 Metric
ge-0/0/5.0            2   0x1 Disabled          CiP.02                 10/10
ge-0/0/6.0            2   0x1 Disabled          XR.03                  10/10
lo0.0                 2   0x1 Passive           Passive                 0/0

lab@JP> show isis adjacency
Interface             System         L State        Hold (secs) SNPA
ge-0/0/5.0            CiP            2  Up                    8  aa:bb:cc:0:5:10
ge-0/0/6.0            XR             2  Up                    9  50:0:0:2:0:9

lab@JP> show route table inet.0

inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[IS-IS/18] 00:08:03, metric 20
                    > to 10.0.1.1 via ge-0/0/6.0
2.2.2.2/32         *[Direct/0] 00:23:02
                    > via lo0.0
3.3.3.3/32         *[IS-IS/18] 00:08:03, metric 20
                    > to 10.0.2.2 via ge-0/0/5.0
10.0.0.0/24        *[IS-IS/18] 00:08:03, metric 20
                      to 10.0.2.2 via ge-0/0/5.0
                    > to 10.0.1.1 via ge-0/0/6.0
10.0.1.0/24        *[Direct/0] 00:22:25
                    > via ge-0/0/6.0
10.0.1.2/32        *[Local/0] 00:22:26
                      Local via ge-0/0/6.0
10.0.2.0/24        *[Direct/0] 00:22:25
                    > via ge-0/0/5.0
10.0.2.1/32        *[Local/0] 00:22:26
                      Local via ge-0/0/5.0


CiP:


CiP#show clns interface loopback 0
Loopback0 is up, line protocol is up
  Checksums enabled, MTU 1514, Encapsulation LOOPBACK
  ERPDUs enabled, min. interval 10 msec.
  CLNS fast switching disabled
  CLNS SSE switching disabled
  DEC compatibility mode OFF for this interface
  Next ESH/ISH in 12 seconds
  Routing Protocol: IS-IS
    Circuit Type: level-1-2
    Interface number 0x0, local circuit ID 0x100
    Level-2 Metric: 10, Priority: 64, Circuit ID: CiP.00
    Level-2 IPv6 Metric: 10
    Number of active level-2 adjacencies: 0
    Next IS-IS Hello in 0 seconds
    if state DOWN

CiP#show clns interface ethernet 0/0
Ethernet0/0 is up, line protocol is up
  Checksums enabled, MTU 1497, Encapsulation SAP
  ERPDUs enabled, min. interval 10 msec.
  CLNS fast switching enabled
  CLNS SSE switching disabled
  DEC compatibility mode OFF for this interface
  Next ESH/ISH in 31 seconds
  Routing Protocol: IS-IS
    Circuit Type: level-1-2
    Interface number 0x1, local circuit ID 0x1
    Level-2 Metric: 10, Priority: 64, Circuit ID: CiP.01
    DR ID: CiP.01
    Level-2 IPv6 Metric: 10
    Number of active level-2 adjacencies: 1
    Next IS-IS LAN Level-2 Hello in 1 seconds

CiP#show clns interface ethernet 0/1
Ethernet0/1 is up, line protocol is up
  Checksums enabled, MTU 1497, Encapsulation SAP
  ERPDUs enabled, min. interval 10 msec.
  CLNS fast switching enabled
  CLNS SSE switching disabled
  DEC compatibility mode OFF for this interface
  Next ESH/ISH in 2 seconds
  Routing Protocol: IS-IS
    Circuit Type: level-1-2
    Interface number 0x2, local circuit ID 0x2
    Level-2 Metric: 10, Priority: 64, Circuit ID: CiP.02
    DR ID: CiP.02
    Level-2 IPv6 Metric: 10
    Number of active level-2 adjacencies: 1
    Next IS-IS LAN Level-2 Hello in 2 seconds

CiP#show isis neighbors

System Id      Type Interface   IP Address      State Holdtime Circuit Id
XR             L2   Et0/0       10.0.0.1        UP    29       CiP.01      
JP             L2   Et0/1       10.0.2.1        UP    26       CiP.02

CiP#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      1.0.0.0/32 is subnetted, 1 subnets
i L2     1.1.1.1 [115/20] via 10.0.0.1, 00:26:52, Ethernet0/0
      2.0.0.0/32 is subnetted, 1 subnets
i L2     2.2.2.2 [115/10] via 10.0.2.1, 00:26:19, Ethernet0/1
      3.0.0.0/32 is subnetted, 1 subnets
C        3.3.3.3 is directly connected, Loopback0
      10.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
C        10.0.0.0/24 is directly connected, Ethernet0/0
L        10.0.0.2/32 is directly connected, Ethernet0/0
i L2     10.0.1.0/24 [115/20] via 10.0.2.1, 00:26:19, Ethernet0/1
                     [115/20] via 10.0.0.1, 00:26:19, Ethernet0/0
C        10.0.2.0/24 is directly connected, Ethernet0/1
L        10.0.2.2/32 is directly connected, Ethernet0/1




Checking LDP neighbours:


Next step is to check that all the LDP neighbours are up and allocating labels.

XR:


RP/0/0/CPU0:XR#show mpls ldp neighbor brief
Wed Jun 22 01:09:20.081 UTC

Peer               GR  NSR  Up Time     Discovery   Addresses     Labels
                                        ipv4  ipv6  ipv4  ipv6  ipv4   ipv6
-----------------  --  ---  ----------  ----------  ----------  ------------
3.3.3.3:0          N   N    00:30:45    1     0     3     0     6      0
2.2.2.2:0          N   N    00:30:36    1     0     2     0     4      0

RP/0/0/CPU0:XR#show mpls interfaces
Wed Jun 22 01:09:49.969 UTC
Interface                  LDP      Tunnel   Static   Enabled
-------------------------- -------- -------- -------- --------
GigabitEthernet0/0/0/7     Yes      No       No       Yes
GigabitEthernet0/0/0/8     Yes      No       No       Yes

RP/0/0/CPU0:XR#show mpls forwarding
Wed Jun 22 01:10:14.047 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes
Label  Label       or ID              Interface                    Switched
------ ----------- ------------------ ------------ --------------- ------------
24000  Pop         3.3.3.3/32         Gi0/0/0/7    10.0.0.2        3559
24001  Pop         2.2.2.2/32         Gi0/0/0/8    10.0.1.2        19259
24002  Pop         10.0.2.0/24        Gi0/0/0/7    10.0.0.2        0
       Unlabelled  10.0.2.0/24        Gi0/0/0/8    10.0.1.2        0


JP:


lab@JP> show ldp neighborAddress            Interface          Label space ID         Hold time
10.0.2.2           ge-0/0/5.0         3.3.3.3:0                13
10.0.1.1           ge-0/0/6.0         1.1.1.1:0                12

lab@JP> show ldp interface
Interface            Label space ID        Nbr count   Next hello
ge-0/0/5.0           2.2.2.2:0                1           3
ge-0/0/6.0           2.2.2.2:0                1           0

lab@JP> show route table inet.3

inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1.1.1.1/32         *[LDP/9] 00:28:03, metric 1
                    > to 10.0.1.1 via ge-0/0/6.0
3.3.3.3/32         *[LDP/9] 00:28:03, metric 1
                    > to 10.0.2.2 via ge-0/0/5.0
10.0.0.0/24        *[LDP/9] 00:28:03, metric 1
                    > to 10.0.2.2 via ge-0/0/5.0
                      to 10.0.1.1 via ge-0/0/6.0

lab@JP> show route table mpls.0

mpls.0: 6 destinations, 6 routes (6 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

299776             *[LDP/9] 00:28:22, metric 1
                    > to 10.0.2.2 via ge-0/0/5.0, Pop
299776(S=0)        *[LDP/9] 00:28:22, metric 1
                    > to 10.0.2.2 via ge-0/0/5.0, Pop
299792             *[LDP/9] 00:28:22, metric 1
                    > to 10.0.1.1 via ge-0/0/6.0, Pop
299792(S=0)        *[LDP/9] 00:28:22, metric 1
                    > to 10.0.1.1 via ge-0/0/6.0, Pop
299808             *[LDP/9] 00:28:22, metric 1
                      to 10.0.2.2 via ge-0/0/5.0, Pop
                    > to 10.0.1.1 via ge-0/0/6.0, Pop
299808(S=0)        *[LDP/9] 00:28:22, metric 1
                    > to 10.0.2.2 via ge-0/0/5.0, Pop
                      to 10.0.1.1 via ge-0/0/6.0, Pop



CiP:


CiP#show mpls ldp neighbor
    Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 3.3.3.3:0
        TCP connection: 1.1.1.1.646 - 3.3.3.3.44872
        State: Oper; Msgs sent/rcvd: 58/59; Downstream
        Up time: 00:43:31
        LDP discovery sources:
          Ethernet0/0, Src IP addr: 10.0.0.1
        Addresses bound to peer LDP Ident:
          10.0.0.1        10.0.1.1        1.1.1.1
    Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 3.3.3.3:0
        TCP connection: 2.2.2.2.646 - 3.3.3.3.36549
        State: Oper; Msgs sent/rcvd: 308/272; Downstream
        Up time: 00:43:21
        LDP discovery sources:
          Ethernet0/1, Src IP addr: 10.0.2.1
        Addresses bound to peer LDP Ident:
          10.0.1.2        10.0.2.1

CiP#show mpls interfaces
Interface              IP            Tunnel   BGP Static Operational
Ethernet0/0            Yes (ldp)     No       No  No     Yes
Ethernet0/1            Yes (ldp)     No       No  No     Yes

CiP#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  1.1.1.1/32       0             Et0/0      10.0.0.1
17         Pop Label  10.0.1.0/24      0             Et0/0      10.0.0.1
           No Label   10.0.1.0/24      0             Et0/1      10.0.2.1
18         Pop Label  2.2.2.2/32       0             Et0/1      10.0.2.1