Lab Solution – MPLS Lab #2

On September 9, 2010, in CCIE, CCIP, CCNP, Lab Guides, Lab Solutions, ROUTE, by Darren

Sometimes its so hard to simply find the time to do what I promised. I hope this will spur up some conversation. I still stress that you should always try to do the lab without my help first. This will ensure you learn how to do it properly. Also remember that there are always multiple ways to do certain labs, so don’t take my solution as gospel.

This solution is for the lab I posted here: http://mellowd.co.uk/ccie/?p=527

  • CPE1 and CPE5 belong to Customer1
  • CPE2 and CPE6 belong to Customer2
  • Both customers are running OSPF as their IGP’s
  • The loopbacks as shown in the topology must be advertised into OSPF. Cutomer1 should be able to ping all loopbacks in their networks and Customer2 should be able to ping everything in theirs.
  • Both customers are now running a project together, and need 2 of their offices connected. CPE1 from Customer1 should be able to communicate with CPE6 from Customer2 and vice-versa
  • It’s essential that CPE2 and CPE5 are NOT able to get to all loopbacks. ONLY CPE1 and CPE6 should be able to communicate with each other. This new configuration should not break the previous VPN’s in place
  • Do this without using any ACL’s, Prefix-lists, Route-maps or the like

We start by doing a regular MPLS VPN config – The same for which we did for the first MPLS VPN lab. All the MPLS-specific config is here:

CPE1

interface Loopback0
 ip address 192.168.1.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.1.1.1 255.255.255.0
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.1.1.0 0.0.0.255 area 0
 network 192.168.1.0 0.0.0.255 area 0

CPE2:

interface Loopback0
 ip address 172.16.1.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.1.2.1 255.255.255.0
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.1.2.0 0.0.0.255 area 0
 network 172.16.1.0 0.0.0.255 area 0

CPE5:

interface Loopback0
 ip address 192.168.2.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.1.3.1 255.255.255.0
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.1.3.0 0.0.0.255 area 0
 network 192.168.2.0 0.0.0.255 area 0

CPE6:

interface Loopback0
 ip address 172.16.2.1 255.255.255.0
!
interface FastEthernet0/0
 ip address 10.1.4.1 255.255.255.0
 duplex auto
 speed auto
!
router ospf 1
 log-adjacency-changes
 network 10.1.4.0 0.0.0.255 area 0
 network 172.16.2.0 0.0.0.255 area 0

Now for the 2 AR Routers:

ip cef
ip vrf CUS1
 rd 400:1
 route-target export 400:1
 route-target import 400:1

ip vrf CUS2
 rd 400:2
 route-target export 400:2
 route-target import 400:2

interface FastEthernet0/0
 ip vrf forwarding CUS1
 ip address 10.1.1.2 255.255.255.0

interface FastEthernet2/0
 ip vrf forwarding CUS2
 ip address 10.1.2.2 255.255.255.0

router ospf 2 vrf CUS1
redistribute bgp 400 metric 10 subnets
 network 10.1.1.0 0.0.0.255 area 0

router ospf 3 vrf CUS2
 redistribute bgp 400 metric 10 subnets
 network 10.1.2.0 0.0.0.255 area 0

router bgp 400
 bgp log-neighbor-changes
 neighbor 10.255.255.7 remote-as 400
 neighbor 10.255.255.7 update-source Loopback0

 address-family vpnv4
  neighbor 10.255.255.7 activate
  neighbor 10.255.255.7 send-community extended

 address-family ipv4 vrf CUS2
  redistribute ospf 3 vrf CUS2 metric 10
  no synchronization

 address-family ipv4 vrf CUS1
  redistribute ospf 2 vrf CUS1 metric 10
  no synchronization

A similar config is on AR3. (I’m not going to post it here otherwise this post will just get to big)

Let’s now concentrate on CPE1. The initial requirements were to allow CPE1 and CPE5 to speak to each other. Currently CPE1 has the following routing table:

CPE1#sh ip route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
O IA    10.1.3.0 [110/11] via 10.1.1.2, 00:01:20, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Loopback0
     192.168.2.0/32 is subnetted, 1 subnets
O IA    192.168.2.1 [110/11] via 10.1.1.2, 00:01:20, FastEthernet0/0

Can CPE1 ping the loopback subnet on CPE5? It sure can!

CPE1#ping 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 = 80/112/156 ms

Can CPE1 ping CPE6? No it can’t (as expected at this point)

CPE1#ping 172.16.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

We are now told that we need CPE1 and CPE6 to be able to speak to each other for a project. CPE2 and CPE5 need to be left out of this completely. We need to do this without using any ACL’s or the like.

There is a simple way of doing this. It’s called Extranet MPLS VPN. In the configuration above, each customer is given a route target. We can create a third route-target and have both CPE1 and CPE6 join that third route-target. We then simply don’t add CPE2 and CPE6 to that same route-target.

Let’s add it on AR1 and AR3:

AR1(config)#ip vrf CUS1
AR1(config-vrf)#route-target both 400:100
AR3(config)#ip vrf CUS2
AR3(config-vrf)#route-target both 400:100

If I now check the routing table on CPE1 I see the following:

CPE1#sh ip route

Gateway of last resort is not set

     172.16.0.0/32 is subnetted, 1 subnets
O E2    172.16.2.1 [110/10] via 10.1.1.2, 00:00:21, FastEthernet0/0
     10.0.0.0/24 is subnetted, 3 subnets
O IA    10.1.3.0 [110/11] via 10.1.1.2, 00:08:41, FastEthernet0/0
C       10.1.1.0 is directly connected, FastEthernet0/0
O E2    10.1.4.0 [110/10] via 10.1.1.2, 00:00:21, FastEthernet0/0
C    192.168.1.0/24 is directly connected, Loopback0
     192.168.2.0/32 is subnetted, 1 subnets
O IA    192.168.2.1 [110/11] via 10.1.1.2, 00:08:41, FastEthernet0/0

Can CPE1 now ping CPE6′s loopback subnet?

CPE1#ping 172.16.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 44/69/92 ms

It works :) – We now need to be sure that CPE2 and CPE5 still cannot see any of this.

CPE2#sh ip route

Gateway of last resort is not set

     172.16.0.0/16 is variably subnetted, 2 subnets, 2 masks
C       172.16.1.0/24 is directly connected, Loopback0
O IA    172.16.2.1/32 [110/11] via 10.1.2.2, 22:04:42, FastEthernet0/0
     10.0.0.0/24 is subnetted, 2 subnets
C       10.1.2.0 is directly connected, FastEthernet0/0
O IA    10.1.4.0 [110/11] via 10.1.2.2, 22:05:56, FastEthernet0/0

As expected, it cannot ping anywhere in Customer1′s network:

CPE2#ping 192.168.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
CPE2#ping 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 0 percent (0/5)

Job done. :D

Tagged with:  

MPLS VPN lab #2

On February 26, 2010, in BSCI, CCIE, CCIP, CCNP, ROUTE, TSHOOT, by Darren

This VPN lab will test intranet and extranet MPLS VPN’s.

    The diagram is the same as my last VPN Lab. Also it uses my MPLs topology found over here: http://mellowd.co.uk/ccie/?p=522

    This is the lab topology again:

    MPLS1

    • CPE1 and CPE5 belong to Customer1
    • CPE2 and CPE6 belong to Customer2
    • Both customers are running OSPF as their IGP’s
    • The loopbacks as shown in the topology must be advertised into OSPF. Cutomer1 should be able to ping all loopbacks in their networks and Customer2 should be able to ping everything in theirs.
    • Both customers are now running a project together, and need 2 of their offices connected. CPE1 from Customer1 should be able to communicate with CPE6 from Customer2 and vice-versa
    • It’s essential that CPE2 and CPE5 are NOT able to get to all loopbacks. ONLY CPE1 and CPE6 should be able to communicate with each other. This new configuration should not break the previous VPN’s in place
    • Do this without using any ACL’s, Prefix-lists, Route-maps or the like
    Tagged with:  

    MPLS VPN lab #1

    On February 23, 2010, in CCIE, CCIP, CCNP, Lab Guides, ROUTE, TSHOOT, by Darren

    This is my first lab to use my MPLS topology found over here: http://mellowd.co.uk/ccie/?p=522 (Click the link as you’ll need the core ISP set up to run this lab)

    This is the lab topology – click for a larger image:
    MPLS1

    • Use RIP as the routing protocol on CPE devices
    • CPE1 and CPE5 belong to Company_A
    • CPE2 and CPE6 belong to Company_B
    • Each site has a /24 that is advertised via the loopback
    • CPE1 should be able to ping CPE5′s loopback and vice-versa
    • CPE2 should be able to ping CPE6′s loopback and vice-versa
    • Different companies should NOT be able to ping each other. They must stay completely separate
    • Now remove RIP and configure it so that both companies are using OSPF
    • Once complete, remove the OSPF config and use EIGRP

    Solution is now here: http://mellowd.co.uk/ccie/?p=570

    Tagged with:  

    MPLS Topology 1.1

    On February 23, 2010, in BSCI, CCIE, CCIP, CCNP, Dynamips, ROUTE, TSHOOT, by Darren

    There was a big error in the topology I put up yesterday. Even though it looked like ldp was running, the actual ldp neighbour relationships were not up. This is why when I later tested, no customer traffic went across the core.

    I’ve now given each of the core routers and the access routers a loopback address in the 10.255.255.0/24 range (Each has a /32 in this range) This is advertised into OSPF. This ensures all routers have a route to all loopbacks. I then forced MPLS to use the loopback address for the ldp neighbour relationship.

    Image-wise, it’s the same. Click for the larger image:

    MPLS_Backbone_small

    This is the.net file contents:

    #MPLS 1.0 Topology created by Darren O'Connor 22/02/10
    #MPLS 1.1 Topology created by Darren O'Connor 23/02/10
    #www.mellowd.co.uk/ccie
    #Feel free to use and change as you see fit. However if you do use please leave my details here at the top
    
    [localhost:7200]
    
    workingdir = /data/dynamips/working
    
    [[3640]]
     image = /data/dynamips/IOS_Images/3640/c3640-jk9o3s-mz.124-5a.UNCOMPRESSED.bin
     ram = 128
     disk0 = 0
     disk1 = 0
     mmap = true
     ghostios = true
    
    ###########################
    #                         #
    # Mpls Topology           #
    #                         #
    ###########################
    
     [[Router CR1]]
      model = 3640
      console = 2001
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      s1/0 = AR1 s1/0
      s1/2 = AR3 s1/2
      Fa0/0 = CR3 Fa0/0
      Fa2/0 = CR2 Fa2/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/CR1.cfg
    
     [[Router CR2]]
      model = 3640
      console = 2002
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      s1/0 = AR2 s1/0
      s1/2 = AR1 s1/2
      Fa0/0 = CR4 Fa0/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/CR2.cfg
    
     [[Router CR3]]
      model = 3640
      console = 2003
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      Fa2/0 = CR4 Fa2/0
      s1/0 = AR3 s1/0
      s1/1 = GR1 s1/1
      s1/2 = AR4 s1/2
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/CR3.cfg
    
     [[Router CR4]]
      model = 3640
      console = 2004
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      s1/0 = AR4 s1/0
      s1/2 = AR2 s1/2
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/CR4.cfg
    
     [[Router AR1]]
      model = 3640
      console = 2005
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      Fa0/0 = CPE1 Fa0/0
      Fa2/0 = CPE2 Fa0/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/AR1.cfg
    
     [[Router AR2]]
      model = 3640
      console = 2006
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      Fa0/0 = CPE4 Fa0/0
      Fa2/0 = CPE3 Fa0/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/AR2.cfg
    
     [[Router AR3]]
      model = 3640
      console = 2007
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      Fa0/0 = CPE5 Fa0/0
      Fa2/0 = CPE6 Fa0/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/AR3.cfg
    
     [[Router AR4]]
      model = 3640
      console = 2008
      autostart = true
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
      slot1 = NM-4T
      slot2 = NM-1FE-TX
      Fa0/0 = CPE8 Fa0/0
      Fa2/0 = CPE7 Fa0/0
      cnfg = /data/dynamips/Topology/Topology_Config/mpls/AR4.cfg
    
     [[Router CPE1]]
      model = 3640
      console = 2009
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE2]]
      model = 3640
      console = 2010
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE3]]
      model = 3640
      console = 2011
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE4]]
      model = 3640
      console = 2012
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE5]]
      model = 3640
      console = 2013
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE6]]
      model = 3640
      console = 2014
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE7]]
      model = 3640
      console = 2021
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router CPE8]]
      model = 3640
      console = 2022
      autostart = false
      idlepc = 0x60610428
      slot0 = NM-1FE-TX
    
     [[Router GR1]]
       model = 3640
       console = 2023
       autostart = true
       idlepc = 0x60610428
       slot0 = NM-1FE-TX
       slot1 = NM-4T
       Fa0/0 = ISP2 Fa0/0
       cnfg = /data/dynamips/Topology/Topology_Config/mpls/GR1.cfg
    
     [[Router ISP2]]
       model = 3640
       console = 2024
       autostart = true
       idlepc = 0x60610428
       slot0 = NM-1FE-TX
       cnfg = /data/dynamips/Topology/Topology_Config/mpls/ISP2.cfg
    And most importantly, this is the updated configuration files:
    Tagged with:  

    © 2009-2010 Darren O'Connor All Rights Reserved