Showing posts with label MPLS. Show all posts
Showing posts with label MPLS. Show all posts

Monday, 20 January 2014

Any Transport Over MPLS (AToM)

Any Transport over MPLS (AToM) will transport layer 2 frames over a MPLS (Multiprotocol Label Switching) network. This will allow service providers to connect layer 2 networks of customers transparently by using their MPLS backbone. AToM can transport the following:
  • ATM AAL5
  • ATM Cell Relay
  • Ethernet
  • Frame Relay
  • PPP
  • HDLC
I will give you an example how to configure AToM to transport Ethernet over the MPLS backbone, we will use the following topology to do this:
MPLS Atom Ethernet
Above you see a small MPLS backbone that consists of the PE1, P and PE2 router. This ISP only has one customer that has a HQ and Branch. The customer wants to have the HQ and Branch router to be in the same layer 2 segment.

Configuration

First we will enable OSPF to advertise the loopback interfaces, these will be used as the router ID for MPLS LDP:
PE1(config)#router ospf 1
PE1(config-router)#network 192.168.12.0 0.0.0.255 area 0
PE1(config-router)#network 1.1.1.1 0.0.0.0 area 0
P(config)#router ospf 1
P(config-router)#network 192.168.12.0 0.0.0.255 area 0
P(config-router)#network 192.168.23.0 0.0.0.255 area 0
P(config-router)#network 2.2.2.2 0.0.0.0 area 0
PE2(config)#router ospf 1
PE2(config-router)#network 192.168.23.0 0.0.0.255 area 0
PE2(config-router)#network 3.3.3.3 0.0.0.0 area 0
Now we will enable MPLS LDP on the interfaces connecting the PE1, P and PE2 routers:
PE1(config)#interface fastEthernet 0/1
PE1(config-if)#mpls ip
P(config)#interface fastEthernet 0/0
P(config-if)#mpls ip

P(config)#interface fastEthernet 0/1
P(config-if)#mpls ip
PE2(config)#interface fastEthernet 0/0
PE2(config-if)#mpls ip
Just to be sure let’s verify that we have LDP neighbors:
P#show mpls ldp neighbor | include Peer
Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 2.2.2.2:0
Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 2.2.2.2:0
That seems to be the case! Now we can configure AToM so that the HQ and Branch router are able to reach each other:
PE1(config)#interface fastEthernet 0/0
PE1(config-if)#xconnect 3.3.3.3 13 encapsulation mpls
PE2(config)#interface fastEthernet 0/1
PE2(config-if)#xconnect 1.1.1.1 13 encapsulation mpls
We need to use the xconnect command between PE1 and PE2. The VC ID (13) has to be the same on both routers.

Verification

First we will check our LDP peers:
PE1#show mpls ldp neighbor 3.3.3.3
Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 1.1.1.1:0
TCP connection: 3.3.3.3.64567 - 1.1.1.1.646
State: Oper; Msgs sent/rcvd: 15/15; Downstream
Up time: 00:05:19
LDP discovery sources:
Targeted Hello 1.1.1.1 -> 3.3.3.3, active, passive
Addresses bound to peer LDP Ident:
192.168.23.3 3.3.3.3
PE2#show mpls ldp neighbor 1.1.1.1
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.64567
State: Oper; Msgs sent/rcvd: 15/15; Downstream
Up time: 00:05:38
LDP discovery sources:
Targeted Hello 3.3.3.3 -> 1.1.1.1, active, passive
Addresses bound to peer LDP Ident:
192.168.12.1 1.1.1.1
PE1 and PE2 are LDP neighbors, now we’ll verify that they are transporting our Ethernet traffic:
PE1#show mpls l2transport binding 
Destination Address: 3.3.3.3, VC ID: 13
Local Label: 19
Cbit: 1, VC Type: Ethernet, GroupID: 0
MTU: 1500, Interface Desc: n/a
VCCV: CC Type: CW [1], RA [2]
CV Type: LSPV [2]
Remote Label: 19
Cbit: 1, VC Type: Ethernet, GroupID: 0
MTU: 1500, Interface Desc: n/a
VCCV: CC Type: CW [1], RA [2]
CV Type: LSPV [2]
PE2#show mpls l2transport binding 
Destination Address: 1.1.1.1, VC ID: 13
Local Label: 19
Cbit: 1, VC Type: Ethernet, GroupID: 0
MTU: 1500, Interface Desc: n/a
VCCV: CC Type: CW [1], RA [2]
CV Type: LSPV [2]
Remote Label: 19
Cbit: 1, VC Type: Ethernet, GroupID: 0
MTU: 1500, Interface Desc: n/a
VCCV: CC Type: CW [1], RA [2]
CV Type: LSPV [2]
A label has been assigned to this virtual circuit, you can see it says “Ethernet”. There’s another useful command that lets us check the AToM configuration:
PE1#show mpls l2transport vc 

Local intf Local circuit Dest address VC ID Status
------------- -------------------------- --------------- ---------- ----------
Fa0/0 Ethernet 3.3.3.3 13 UP
PE2#show mpls l2transport vc

Local intf Local circuit Dest address VC ID Status
------------- -------------------------- --------------- ---------- ----------
Fa0/1 Ethernet 1.1.1.1 13 UP
Above you have a nice overview with the interfaces, transport type, virtual circuit ID and the status. Everything is looking good to let’s give it a test drive:
HQ#ping 172.16.1.2

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/20/40 ms
Our ping is successful, we can verify the number of packets that have been sent as following:
PE1#show mpls l2transport vc detail            
Local interface: Fa0/0 up, line protocol up, Ethernet up
Destination address: 3.3.3.3, VC ID: 13, VC status: up
Next hop: 192.168.12.2
Output interface: Fa0/1, imposed label stack {17 19}
Create time: 00:09:46, last status change time: 00:09:41
Signaling protocol: LDP, peer 3.3.3.3:0 up
MPLS VC labels: local 19, remote 19
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 84, send 83
byte totals: receive 9445, send 9045
packet drops: receive 0, seq error 0, send 0
That’s how you configure AToM to transport Ethernet. I hope this has been useful to you, if you enjoyed this article please share it with your friends.

Monday, 13 January 2014

Mpls Vpn review

Hi all, 
I'm completely busy on studying CCIE R&S written but I want to share a mpls vpn lab for reviewing mpls arguments.

Here is the topology:



Task list for this lab is:
-R1-R2-R3-R4-R5-R6-R7 (ISP) cannot elect any DR/BDR to speed up convergence
-Any OSPF area 0.0.0.0 neighbor fault must be detected within 1 second or less (NOTE: if you use dynamips, this requirement can be skipped or "relaxed"..., the high cpu % utilization will bring up/down your adjacency when you perform some operations like enable mpls...)

-area 0.0.0.0 must be ready for future traffic engineer configurations
-All ISP loopbacks must be reachable by igp
-R1 act as MpBGP Route Reflector
-CE11, CE12 and CE13 belongs to the same organization named "Customer1", they use EIGRP AS 1 for L3-vpn connections
-CE21, CE22 and CE23 belongs to the same organization named "Customer2", they use BGP as 65222 for L3-vpn connections
-BB1 and BB2 are "the internet", they must declare at least 10.000 prefixes with bgp
-R1 must prefer BB1 for odd networks, BB2 for even networks
-Customers must receive only a default route to reach internet for every customer site

I used gns3 with 7200 for ISP and 3640 for customers.




!-------------------------------
!-- R1 initial config

conf t
hostname R1

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R1 <-> R3
speed 100
duplex full
ip address 172.16.0.4 255.255.255.254
no shut

int fa 1/0
desc R1 <-> R2
speed 100
duplex full
ip address 172.16.0.2 255.255.255.254
no shut

int fa 1/1
desc R1 <-> R4
speed 100
duplex full
ip address 172.16.0.6 255.255.255.254
no shut

int fa 2/0
desc R1 <-> BB1
speed 100
duplex full
ip address 172.31.0.0 255.255.255.254
no shut

int fa 2/1
desc R1 <-> BB2
speed 100
duplex full
ip address 172.31.0.2 255.255.255.254
no shut

int lo 0
ip address 1.1.1.1 255.255.255.255
end

!-- END R1 initial config
!-------------------------------
!-- R2 initial config

conf t
hostname R2

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R2 <-> R5
ip address 172.16.0.0 255.255.255.254
speed 100
dupl full
no shut

int fa 1/0
desc R2 <-> R1
speed 100
dupl full
ip addr 172.16.0.3 255.255.255.254
no shut

int lo 0
ip address 2.2.2.2 255.255.255.255
end

!-- END R2 initial config
!-------------------------------
!-- R3 initial config

conf t
hostname R3

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R3 <-> R1
ip address 172.16.0.5 255.255.255.254
speed 100
dupl full
no shut

int fa 1/0
desc R3 <-> R6
speed 100
dupl full
ip addr 172.16.0.10 255.255.255.254
no shut

int lo 0
ip address 3.3.3.3 255.255.255.255
end

!-- END R3 initial config
!-------------------------------
!-- R4 initial config

conf t
hostname R4

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R4 <-> R7
ip address 172.16.0.8 255.255.255.254
speed 100
dupl full
no shut

int fa 1/0
desc R2 <-> R1
speed 100
dupl full
ip addr 172.16.0.7 255.255.255.254
no shut

int lo 0
ip address 4.4.4.4 255.255.255.255

!-- END R4 initial config
!-------------------------------
!-- R5 initial config

conf t
hostname R5

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R5 <-> R2
speed 100
dupl full
ip addr 172.16.0.1 255.255.255.254
no shut

int fa 1/0
desc R5 <-> CE21
speed 100
dupl full
ip address 10.21.0.0 255.255.255.254
no shut

int fa 1/1
desc R5 <-> CE11
speed 100
dupl full
ip address 10.11.0.0 255.255.255.254
no shut

int lo 0
ip address 5.5.5.5 255.255.255.255
end

!-- END R5 initial config
!-------------------------------
!-- R6 initial config

conf t
hostname R6

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc R6 <-> R3
ip address 172.16.0.11 255.255.255.254
speed 100
dupl full
no shut

int fa 1/0
desc R6 <-> CE12
speed 100
dupl full
ip addr 10.11.0.4 255.255.255.254
no shut

int fa 1/1
desc R6 <-> CE22
speed 100
dupl full
ip address 10.21.0.4 255.255.255.254
no shut

int lo 0
ip address 6.6.6.6 255.255.255.255
end

!-- END R6 initial config
!-------------------------------
!-- CE11 initial config

conf t
hostname CE11

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE11 <-> R5
ip address 10.11.0.1 255.255.255.254
speed 100
dupl full
no shut

int lo 111
ip address 192.168.1.1 255.255.255.0

int lo 112
ip address 172.17.1.1 255.255.255.128
end

!-- END CE11 initial config
!-------------------------------
!-- CE12 initial config

conf t
hostname CE12

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE12 <-> R6
ip address 10.11.0.5 255.255.255.254
speed 100
dupl full
no shut

int lo 121
ip address 192.168.2.1 255.255.255.0

int lo 122
ip address 172.17.1.129 255.255.255.128
end

!-- end CE12 initial config
!-------------------------------
!-- CE13 initial config

conf t
hostname CE13

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE13 <-> R7
ip address 10.11.0.3 255.255.255.254
speed 100
dupl full
no shut

int lo 131
ip address 192.168.3.1 255.255.255.0

int lo 132
ip address 172.17.2.1 255.255.255.0
end

!-- END CE13 initial config
!-------------------------------
!-- CE21 initial config

conf t
hostname CE21

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE21 <-> R5
ip address 10.21.0.1 255.255.255.254
speed 100
dupl full
no shut

int lo 211
ip address 192.168.0.1 255.255.254.0

int lo 212
ip address 172.17.1.1 255.255.252.0
end

!-- END CE21 initial config
!-------------------------------
!-- CE22 initial config

conf t
hostname CE22

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE22 <-> R6
ip address 10.21.0.5 255.255.255.254
speed 100
dupl full
no shut

int lo 221
ip address 192.168.2.1 255.255.254.0

int lo 222
ip address 172.17.4.1 255.255.252.0
end

!-- END CE22 initial config
!-------------------------------
!-- CE23 initial config

conf t
hostname CE23

no ip domain-lookup
line con 0
logging sync
no exec-timeout

int fa 0/0
desc CE23 <-> R7
ip address 10.21.0.3 255.255.255.254
speed 100
dupl full
no shut

int lo 231
ip address 192.168.4.1 255.255.254.0

int lo 232
ip address 172.17.8.1 255.255.252.0
end

!-- END CE23 initial config

Mpls Lab #1 : Basic Mpls configuration

Hi all, after a successful BGP exam, now it's time to start with MPLS... nothing better than a basic lab to practice the configurations and show commands.

Here the topology, most of my lab routers doesn't support mpls (2600 series) that's why I used GNS3 with 3600s...

STEP 1: configure all point to point links and use EIGRP with various AS to route all links and loopbacks. Ensure that you can ping every interface from every router.

STEP 2: basic mpls configuration, for each router you must:
-enable ip cef with:


ip cef
-set some mpls parameters like:
mpls label protocol ldp   !-- optional... by default is ldp
mpls ldp router-id loopback0 !-- optional, but it's not a bad idea use a loopback as router-id
-enable mpls for eache interface
interface Serial0/0
description R0 <-> R1
ip address 172.17.45.5 255.255.255.252
mpls ip
Well done, now our network is using mpls, time to check it with several show commands:
-we must ensure that mpls is enabled for the correct interfaces:
R0#sh mpls interfaces
Interface IP Tunnel Operational
Serial0/0 Yes (ldp) No Yes
Serial0/1 Yes (ldp) No Yes
-then we must check if we have ldp sessions with neighbours:
R0#sh mpls ldp neighbor
Peer LDP Ident: 172.17.50.13:0; Local LDP Ident 10.26.0.1:0
TCP connection: 172.17.50.13.61893 - 10.26.0.1.646
State: Oper; Msgs sent/rcvd: 89/90; Downstream
Up time: 00:55:11
LDP discovery sources:
Serial0/1, Src IP addr: 172.17.45.2
Addresses bound to peer LDP Ident:
172.17.50.2 172.17.50.13 172.17.45.2 172.17.45.9
Peer LDP Ident: 172.17.50.9:0; Local LDP Ident 10.26.0.1:0
TCP connection: 172.17.50.9.45695 - 10.26.0.1.646
State: Oper; Msgs sent/rcvd: 88/87; Downstream
Up time: 00:55:10
LDP discovery sources:
Serial0/0, Src IP addr: 172.17.45.6
Addresses bound to peer LDP Ident:
172.17.50.1 172.17.50.9 172.17.45.6 172.17.45.13
Note that the "Addresses bound to peer ldp ident" are all the ip addresses assigned to the interfaces of the neighbour. This is used to find the next hop for each prefix in the routing table and identify the ldp neighbour for outgoing label selection.
-now we can see the whole LFIB with:
R0#sh mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 172.17.45.6/32 0 Se0/0 point2point
17 Untagged 172.17.45.2/32 0 Se0/1 point2point
18 Pop tag 172.17.50.8/30 0 Se0/0 point2point
19 Pop tag 172.17.50.0/30 0 Se0/0 point2point
Pop tag 172.17.50.0/30 0 Se0/1 point2point
20 17 10.40.0.0/24 0 Se0/0 point2point
21 18 10.40.10.0/24 0 Se0/0 point2point
22 19 172.17.45.18/32 0 Se0/0 point2point
23 20 172.17.45.16/30 0 Se0/0 point2point
24 25 172.17.45.14/32 0 Se0/0 point2point
25 Pop tag 172.17.45.12/30 0 Se0/0 point2point
26 Pop tag 172.17.50.12/30 0 Se0/1 point2point
27 17 172.17.45.10/32 0 Se0/1 point2point
28 Pop tag 172.17.45.8/30 0 Se0/1 point2point
29 31 172.17.50.4/30 0 Se0/1 point2point
30 32 172.17.45.17/32 0 Se0/1 point2point
31 32 172.17.45.9/32 0 Se0/0 point2point
32 29 10.31.0.0/24 0 Se0/1 point2point
33 30 10.32.0.0/24 0 Se0/1 point2point
34 33 172.17.45.13/32 0 Se0/1 point2point

Sunday, 29 December 2013

this is one more video for MPLS tutorials.

Introduction to MPLS .
pls watching to video.

Thursday, 10 January 2013

MPLS Network Configuration on GNS3

What is MPLS (Multi-Protocol Label Switching) ?
MPLS is lable base fast switching, MPLS is a technique which forward the packets in network on bases of labels.

Why MPLS?
Router use the process switching in which whenever router received a packet it checks its IP address match with routing table and forward packet, send ARP request for MAC addres. This Process become a little slow when router dealing with a lot of IP packets, in case of VOIP e.g. a IP-Phone call may using 50packets/second then router have to perform process switching for every packets  


But in MPLS instead of processing above large packet each time route just use a label to forward a packet which saving some processing cycle and made fast forwarding.

MPLS Configuration on GNS3:


Design above lab in gns3 and configure IP address and EIGRP according to EIGRP configuration on GNS3 . In our lab R3 is provider router where as R2, R4 and R5 are the provider edge routers.
On Cisco router to enable the MPLS you required to :
  1. Enable CEF(cisco express forwarding) on router
  2. Change MTU (maximum transmission unit) from 1500 to 1512 on MPLS enabled interfaces, becase MPLS header is of 4 bytes and one interface have maximum of three.
R2 MPLS configuration Commmands:
R2#conf t
R2(config)#ip cef
R2(config)#int s1/1
R2(config-if)#mpls label protocol ldp
R2(config-if)# mpls ip
R2(config-if)# mpls mtu 1512
R2(config-if)#ip route-cache cef

R3 MPLS configuration Commmands:
R3(config)#ip cef
R3(config)#int s1/1
R3(config-if)#ip route-cache cef
R3(config-if)#mpls mtu 1512
R3(config-if)#mpls ip
R3(config-if)#mpls label protocol ldp
R3(config-if)#int s1/2
R3(config-if)#mpls mtu 1512
R3(config-if)#ip route-cache cef
R3(config-if)#mpls ip
R3(config-if)#mpls label protocol ldp
R3(config)#int s1/0
R3(config-if)#mpls mtu 1512
R3(config-if)#ip route-cache cef
R3(config-if)#mpls ip
R3(config-if)#mpls label protocol ldp
R4 MPLS configuration Commmands:
R4(config)#ip cef
R4(config)#int s1/0
R4(config-if)# mpls ip
R4(config-if)#mpls label protocol ldp
R4(config-if)# mpls mtu 1512
R5 MPLS configuration Commmands:
R5(config)#ip cef
R5(config)#int s1/0
R5(config-if)# mpls label protocol ldp
R5(config-if)# mpls ip
R5(config-if)# mpls mtu 1512
R5(config-if)#
R5(config-if)#ip route-cache cef

MPLS Verification Commands:

R3#show mpls ldp neighbor


R3#show mpls forwarding-table


R3#show ip cef



R3#sh mpls ip binding




R3#sh mpls forwarding-table interface serial 1/1