Mostrando entradas con la etiqueta LDP. Mostrar todas las entradas
Mostrando entradas con la etiqueta LDP. Mostrar todas las entradas

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