This is the second post in the series, the goal of the series is to provide a guide for the MPLS and BGP Lab I posted awhile back. The labs consists of MPLS VPNs and BGP along with some OSPF, NAT, IPSEC and GRE exposure. I will be posting the files needed for this lab at the bottom. Here’s the topology and the requirements:


(click image for fullsize)

Requirements:
Internet
* The two Internet routers should serve as transit ASes. No other routers should permit transit traffic.
* Internet sites (modeled by loopbacks) should be accessible by all lan IPs.

Clients
* London, Paris, and New York have Internet connections to their respective ISPs. New York is dual-homed.
* London, Paris, New York, and Chicago all have MPLS connections to the same provider. New York and Chicago constitute one company, while London and Paris constitute another. Their routes should not mix over MPLS.
* London, Paris, and New York each have data centers with a DMZ that should be publicly accessible.
* London, Paris, New York, and Chicago each have 2 LANs which should not be accessible from the Internet, though they should be able to access the Internet.
* London and Paris have a GRE over IPSEC connection between them that should take over routing between their LANs in case the MPLS connection fails. Additionally, the MPLS connection should take over for DMZ sites if the Internet connection should fail.

MPLS
* The MPLS-P router should be the only one in area 0. It should be an ABR connection MPLS-PE1 (a stub area 1) and MPLS-PE2 (a stub area 2).
* Area 1 and Area 2 should be summarized to /24′s before being injected into the OSPF backbone.
* The PE routers should communicate via BGP to the CE routers.

Today we’re going to configure the MPLS cloud. These routers are running OSPF, MPLS and BGP. I think today we will just go through the OSPF and MPLS setup. Here’s the config:

MPLS-P

hostname MPLS-P
!
ip cef
!
interface Loopback0
 ip address 172.16.255.0 255.255.255.255
!
interface Serial1/0
 description Connection to MPLS-PE1
 ip address 172.16.0.1 255.255.255.252
 mpls ip
!
interface Serial1/1
 description Connection to MPLS-PE2
 ip address 172.16.0.5 255.255.255.252
 mpls ip
!
!
router ospf 100
 log-adjacency-changes
 area 1 stub
 area 2 stub
 network 172.16.0.0 0.0.0.3 area 1
 network 172.16.0.4 0.0.0.3 area 2
 network 172.16.255.0 0.0.0.0 area 0
 summary-address 172.16.0.0 255.255.255.0
!
mpls ldp router-id Loopback0
!

First we’ve done the MPLS-P router. This is the core of the MPLS cloud. This router does not run BGP like the MPLS-PEs, just OSPF and MPLS. We have assigned IPs to the interfaces, and we have entered the “mpls ip” command. We have statically configured the LDP neighbor ID as well. This command enables LDP on those interfaces. We have also OSPF Areas 1 and 2 as stubs, along with the summary address as the requirements stated.

MPLS-PE1

hostname MPLS-PE1
!
ip cef
!
interface Loopback0
 ip address 172.16.255.1 255.255.255.255
!
interface Serial1/0
 description Connection to MPLS-P
 ip address 172.16.0.2 255.255.255.252
 mpls ip
!
interface Serial1/1
 description Connection to London-M
 ip address 172.16.1.1 255.255.255.252
!
interface Serial1/2
 description Connection to NewYork-M
 ip address 172.16.1.5 255.255.255.252
!
router ospf 100
 log-adjacency-changes
 area 1 stub
 network 172.16.0.0 0.0.0.3 area 1
 network 172.16.255.1 0.0.0.0 area 1
 summary-address 172.16.0.0 255.255.255.0 
!
mpls ldp router-id Loopback0

MPLS-PE2

hostname MPLS-PE2
!
ip cef
!
interface Loopback0
 ip address 172.16.255.2 255.255.255.255
!
interface Serial1/0
 description Connection to MPLS-P
 ip address 172.16.0.6 255.255.255.252
 mpls ip
!
interface Serial1/1
 description Connection to Paris-M
 ip address 172.16.2.1 255.255.255.252
!
interface Serial1/2
 description Connection to Chicago-M
 ip address 172.16.2.5 255.255.255.252
!
router ospf 100
 log-adjacency-changes
 area 2 stub
 network 172.16.0.4 0.0.0.3 area 2
 network 172.16.255.2 0.0.0.0 area 2
 summary-address 172.16.0.0 255.255.255.0
!
mpls ldp router-id Loopback0

The PE routers get mostly the same config (for now). Now we’ll verify that OSPF and MPLS are working:

MPLS-P#sh mpls interfaces
Interface              IP            Tunnel   Operational
Serial1/0              Yes (ldp)     No       Yes
Serial1/1              Yes (ldp)     No       Yes
 
 
MPLS-P#sh mpls ldp neighbor
    Peer LDP Ident: 172.16.255.2:0; Local LDP Ident 172.16.255.0:0
        TCP connection: 172.16.255.2.19843 - 172.16.255.0.646
        State: Oper; Msgs sent/rcvd: 31/32; Downstream
        Up time: 00:21:01
        LDP discovery sources:
          Serial1/1, Src IP addr: 172.16.0.6
        Addresses bound to peer LDP Ident:
          172.16.0.6      172.16.255.2
    Peer LDP Ident: 172.16.255.1:0; Local LDP Ident 172.16.255.0:0
        TCP connection: 172.16.255.1.61758 - 172.16.255.0.646
        State: Oper; Msgs sent/rcvd: 32/32; Downstream
        Up time: 00:20:37
        LDP discovery sources:
          Serial1/0, Src IP addr: 172.16.0.2
        Addresses bound to peer LDP Ident:
          172.16.0.2      172.16.255.1
 
 
MPLS-P#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop
tag    tag or VC   or Tunnel Id      switched   interface
16     Pop tag     172.16.255.1/32   491        Se1/0      point2point
17     Pop tag     172.16.255.2/32   642        Se1/1      point2point

We see that LDP is running on our two interfaces, our LDP neighbors are up and we have two labeled prefixes.

That’s all for this one, part three will be coming soon. Here are the files needed for the lab:
The Dynagen/GNS3 .net file
The IP Address Allocations
The Visio Diagram for the Lab
(You will need to modify the .net file to reflect your own IOS and path values)

Colby

Colby Glass has been in IT since 2002. He is currently a Systems Engineer (presales) with a Cisco Gold partner and holds the CCNP R/S, CCNP DC, CCDP, CCIP, JNCIA-ER.

More Posts