Monday, February 11, 2013

Introduction to MPLS World

Many of us may hear this kind of term in the Networking Technology, but what is exactly the Multi-Protocol Label Switching or MPLS technology is?

in this blog, I want to write about an overview about the MPLS Technology.

first thing first, let's discuss about why MPLS? In the Past, Service Provider (SP) have to deal with a lot of Technology to deliver their services to the customer. One Customer may need to use the TDM technology, in this case the SP have to invest the TDM Technology, while other customer may need to use the Frame-Relay Technology, the SP should provide the Frame-Relay Technology. the more the technology, such as X.25, ISDN, ATM, and so on....., they should investing a ton of US$ to deal with all of those thing, including the device, technology, and people to operate it.

from the simple illustration above, we can determine, how complex, technically and Financially, to provide lots of services to the customer. Then, in the early 2000, Cisco start to develop a Technology called 'Tag-Switching', where the router will create an additional Tag tabel, that is derived from the Routing table,  for example, in the Routing Table (RIB), the router may have route to the 192.168.1.0/24 via F0/0, and then an additional tag table will be created by the router, and the router will say, If I want to get to the 192.168.1.0/24, I will add Tag "102", so other router in the path can only see the Tag, which is embedded to the Packet, without having to see All the Layer 3 information within the packet. In this case, guess what, now the forwarding dependencies is moving from the L3 RIB into the TAG Information basis.

And this TAG technology become more and more standard, so the IETF make the standard version of the Cisco Proprietary Tag-Switching into the LDP.

Ok, let's take a look the the following example and Scenario in order to get better understanding:

Topology


·         R1-R6 is being configured as MPLS CORE
·         R3 & R6  will have iBGP neighborship and use ‘bgp redistribute-internal’, so that R3 can advertise iBGP prefix to the RIP and R6 can advertise iBGP prefizes to the EIGRP.


Configuration
R1-R6 (LSR)
!
Interface
 Mpls ip
!
End

R3(PE/Edge LSR)
!
router bgp 36
 no synchronization
 bgp router-id 3.3.3.3
 bgp log-neighbor-changes
 bgp redistribute-internal
 redistribute rip
 neighbor 6.6.6.6 remote-as 36
 neighbor 6.6.6.6 update-source Loopback0
 neighbor 6.6.6.6 next-hop-self
 no auto-summary
!
router rip
 version 2
 redistribute bgp 36 metric 3
 network 10.0.0.0
 no auto-summary
!
end

R6 (PE/Edge LSR)
!
router eigrp 68
 network 10.14.68.0 0.0.0.255
 redistribute bgp 36 metric 1 1 1 1 1
!
router bgp 36
 no synchronization
 bgp router-id 6.6.6.6
 bgp log-neighbor-changes
 bgp redistribute-internal
 redistribute eigrp 68
 neighbor 3.3.3.3 remote-as 36
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 3.3.3.3 next-hop-self
 no auto-summary
!
end



Verification
R3

Rack14R3#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.40991
        State: Oper; Msgs sent/rcvd: 89/87; Downstream
        Up time: 01:02:21
        LDP discovery sources:
          FastEthernet0/0, Src IP addr: 150.14.13.1
        Addresses bound to peer LDP Ident:
          150.14.12.1     150.14.13.1     150.14.15.1     1.1.1.1

Rack14R3#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
300        Pop Label  1.1.1.1/32       0             Fa0/0      150.14.13.1
301        Pop Label  150.14.12.0/24   0             Fa0/0      150.14.13.1
302        101        2.2.2.2/32       0             Fa0/0      150.14.13.1
303        102        4.4.4.4/32       0             Fa0/0      150.14.13.1
304        103        5.5.5.5/32       0             Fa0/0      150.14.13.1
305        104        6.6.6.6/32       0             Fa0/0      150.14.13.1
306        105        150.14.24.0/24   0             Fa0/0      150.14.13.1
307        106        150.14.45.0/24   0             Fa0/0      150.14.13.1
308        107        150.14.56.0/24   0             Fa0/0      150.14.13.1
309        No Label   10.7.7.0/24      0             Fa0/1      10.14.37.7

Rack14R3#show ip route 10.8.8.8
Routing entry for 10.8.8.0/24
  Known via "bgp 36", distance 200, metric 156160, type internal
  Redistributing via rip
  Advertised by rip metric 3
  Last update from 6.6.6.6 00:36:37 ago
  Routing Descriptor Blocks:
  * 6.6.6.6, from 6.6.6.6, 00:36:37 ago
      Route metric is 156160, traffic share count is 1
      AS Hops 0
      MPLS label: none

Rack14R3#show mpls forwarding-table 6.6.6.6
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
305        104        6.6.6.6/32       0             Fa0/0      150.14.13.1



R2

So every single MPLS Router, P Router in this case will not know the customer prefixes (10.x.x.x/24) but they know how to route it to the both PEs, which are R3 and R6 in this case

Rack14R2#show ip route 10.8.8.8
% Network not in table

Rack14R2#show mpls forwarding-table 10.8.8.8
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface

Rack14R2#show mpls for
Rack14R2#show mpls forwarding-table 6.6.6.6
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
204        404        6.6.6.6/32       22098         Fa0/1      150.14.24.4

Let’s create traffic from the R7 to the R8, then we will use debug on the R4 in this case to prove that the traffic will be encapsulated with mpls label ;)

Rack14R7#ping 10.8.8.8 sou lo1 rep 10000

Type escape sequence to abort.
Sending 10000, 100-byte ICMP Echos to 10.8.8.8, timeout is 2 seconds:
Packet sent with a source address of 10.7.7.7
!!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!.!!!!!!!!!!!!!!!!!!!!.
Success rate is 98 percent (169/172), round-trip min/avg/max = 120/150/188 ms

The traffic from R7 to the R8 is reachable, eventhough all the P routers don’t have the prefix in their CEF, but this scenario took advantage of the MPLS where P Routers don’t need to know the Customer Prefix, but still, they can route them ;)

Rack14R4#show mpls forwarding-table 6.6.6.6
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
404        504        6.6.6.6/32       32662         Fa0/0      150.14.45.5

Rack14R4#show mpls forwarding-table 6.6.6.6
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
404        504        6.6.6.6/32       34904         Fa0/0      150.14.45.5

noted that form the above configuration, we can see that the MPLS Core will not know about the  detail information about the Customer prefix, R7&R8.

R3 & R6 are the router that directly facing to the customer, this router will called as Provider Edge (PE) in the Cisco term or Edge LSP in the standarization term

R1-R4 are the router within MPLS Domain, where they will send the Data, based on Label/TAG instead of L3 information, in our example :)

I hope this little explanation can help you to get the understanding of the MPLS technology ;)

No comments: