There is so much about MPLS and how MPLS works. Here I wrote some simple introductory lines about it but only from one perspective. The costumer side one. There is nothing here about BGP and all the things that need to be done and configured in order for MPLS to function in ISP cloud. As an introductory in MPLS this text will take you to the central office and branch side of the MPLS configuration and in this way it will be simpler to explain and enter in the world of MPLS networking technology.
In MPLS networks, packets are sending with special MPLS prefix before IP packet data. With an MPLS header that is sometimes mentioned as a label stack. In MPLS header there are labels, every label with some value:
- Traffic-class field, important for quality of service – QoS
- Bottom-of-stack flag
- 8-bit time-to-live – TTL field
Only thing that is important for MPLS switches and the only thing that they are examining is the label stack. In MPLS there is no need for IP routing table. MPLS is becoming more and more popular in networking. These days it is very important and used in almost every network that previously used Frame Relay or ATM for connecting remote branches. ATM is a thing of the past, mostly because overhead in the packet headers. Frame Relays Virtual Circuits VCs that can connect only two end point are also become to expensive and consequently not very popular. MPLS in other hand offered simplicity and speed with less in price.
The technology behind MPLS is based on entire packets prefixed with an MPLS header. MPLS network can connect unlimited number of networks as virtual networks in one MPLS cloud. We can also say that there are no virtual circuits in an MPLS network if we look from customer perspective.
MPLS is not only faster than other technologies but is a big improvement over the Frame Relay and ATM in other ways. The bigger improvement is that each remote local network can be directly connected to all other locations without the need for PVCs – Private Virtual Circuits. This means that every branch office connected with MPLS is able to communicate directly with every other branch office without communicating through central office location. If we want to implement VoIP solution this is a big deal. We all know that the biggest VoIP enemy is delay, even more than slow link.
If you take a peek in the ISP (or Internet) cloud, you will see that there are MPLS paths within the cloud, of course. Not only there are, sure that there are there but this communication path in the cloud and the configuration can get pretty complicated, but from the other, customer perspective, there are no virtual circuits to support.
But the branches are communicating and there are no links connecting them, is that normal or we have missed something? If we send something from one place to another one across MPLS network cloud, the IP addressing will tell us next hop for reach the destination. How this possible if is there is a line in this text in the beginning that is telling us that for MPLS there is no need for routing table?
The true is that there is no need for your Routing table to support MPLS communication across the WAN. The WAN technology, BGP routing protocol and all that is provided by the ISP. That is the name standing for, they are providing us virtual network for communication between distant branches. The provider look at labels in order to make MPLS function, and our network has no labels.
The provider simply takes our packet and puts a label to that packet. After that the packet is forwarded through the cloud with help of that label. You private local LAN network can use the same subnet like some other company that uses the same provider and the same cloud for communication (for example 192.168.10.0/24). Customers from that other company that are also using 192.168.10.0/24 subnet are not able to connect to our routers. They are unable to connect to our branch routers because they have they own labels, those labels are different than ours. Is somehow similar to a VPN. Customers can see its own equipment but not anything else; even they are connected to the same Internet. Be careful, MPLS networks are not Virtual Private Networks or VPNs. MPLS has no encryption involved.
The best thing in MPLS beside the transparent functionality and simplicity is the support for QoS. There is the label in the MPLS label stack called traffic-class field, with the use of this label stack MPLS networks are supporting classes of service. The support for priority queue makes MPLS the best choice for companies that use VoIP across their WAN link. The best thing in this part of the story is that you don’t need to configure MPLS in order for him to work. The provider equipment is the place where the magic is done.
There are some things that you will still need to know for most implementations of MPLS. You will need some knowledge about BGP, and QoS. At least you will need to know how to configure them. Here is a sample MPLS router configuration for the router at our branch office that will use MPLS to connect our LAN segment to other LAN segments in other locations:
A little QoS configuration and in which VoIP RTP and call control will get first priority, and other stuff will be in second line, in default queue. In this example the priority queue will be able to use not more than 60 percent of the link, while call control will get 10 percent:
class-map match-any VoIP-RTP match ip dscp ef class-map match-any VoIP-Call-Control match ip dscp cs3 match ip dscp af31 policy-map MPLS-QoS class VoIP-RTP priority percent 60 class VoIP-Call-Control bandwidth percent 5 class class-default fair-queue
Here’s the configuration for the MPLS link. Notice that there’s nothing MPLS-specific in this configuration:
interface Serial0/2/0 description [ Branch 10 MPLS ip address 10.255.10.2 255.255.255.252 encapsulation ppp auto qos voip trust service-policy output MPLS-QoS
Here’s the inside Ethernet interface:
interface FastEthernet0/0 description [ Branch 10 LAN ] ip address 10.10.10.1 255.255.255.128 duplex auto speed auto auto qos voip trust service-policy output MPLS-QoS
Next, I’ll add a loopback address for routing, which will be useful for VPN failover (not shown here):
interface Loopback0 description [ Branch 10 Loopback ] ip address 10.10.10.129 255.255.255.255
Finally, we need some BGP configuration so that we can learn and advertise routes
through the cloud:
router bgp 65035 no synchronization bgp log-neighbor-changes network 10.10.10.0 mask 255.255.255.128 network 10.10.10.129 mask 255.255.255.255 aggregate-address 10.10.10.0 255.255.255.0 summary-only neighbor 10.255.255.1 remote-as 65035 neighbor 10.255.255.1 update-source Serial0/3/0 neighbor 10.255.255.1 version 4 neighbor 10.255.255.1 prefix-list Aggregate out no auto-summary ! ip prefix-list Aggregate seq 5 permit 10.10.10.0/24