This post is a continuation of my last three posts covering MPLS:
The most important part of MPLS has been done. We have a MPLS L3VPN running. We’ve seen it work with OSPF and BGP. This post will go into route leaking:
In the previous post we created two separate VRF’s within the MPLS network because we didn’t want the two companies to access each others’ resources. There are situations conceivable where this hard line between the VRF’s is not always required. For example, when a MPLS provider also wants to offer common services to its customers like internet access or something else.
Another scenario could be a company that acquires another company or maybe two companies that work closely together. In that case you might want to be able to access each others’ networks.
This post is a continuation of my last two posts:
MPLS in itself doesn’t give you all that much. It’s the applications running over it and the flexibility of these applications in combination with MPLS is what makes it worthwhile.
This will also be a bigger post, so take about 11 minutes to read this.
The previous posts didn’t show much configuration. That will change in this post. When building MPLS L3VPN’s the following tasks need to be completed to succeed:
- Enable MPLS in the provider backbone
- Create VRF’s
- Enable MP-BGP
- Enable PE-CE routing
This list introduces two new terms, VRF’s and MP-BGP. VRF stands for Virtual Routing and Forwarding (some say VPN Routing and Forwarding). You can view a VRF as a virtual router within a router. In normal operations a network known in VRF A cannot be reached from VRF B, comparable to vlans in a switch. One of the other big benefits of VRF’s is that overlapping IP space is allowed. VRF A can use the 192.168.1.0/24 network while VRF B also uses this subnet, without any issues.
MP-BGP is an extension to BGP which makes it possible to transport multiple protocols (MP stands for Multi-Protocol). I haven’t covered BGP on my website, but I’ll assume some familiarity. MP-BGP is required to do any L3VPN routing since it needs to transport new NLRI’s (Network Layer Reachability Information).
In my last post MPLS basics I covered the basics of MPLS. MPLS is a label switching technology that uses labels to decide where to send packets. These labels need to be assigned and distributed. There are several ways to do this, but the default and industry standard is LDP, Label Distribution Protocol. This post zooms in on LDP. This post is going to be a bit larger and more extensive than my normal posts, so take some time for it. The expected reading time is about 10 minutes
For this post I’ll use the following topology:
Actually, to be honest. LDP does not assign labels, it merely distributes them. The assignment of labels is done on the router itself. When the router has been configured for MPLS it assigns a label for every prefix in the routing table. This includes routes it has received from other routers. Labels are only locally significant. This means that each MPLS router within a topology uses different labels for the same prefix.
Multi Protocol Label Switching is a technology which is used in many service provider networks to simplify their networks.
Several reasons exist to use MPLS:
- It enables transparent tunneling over the Service Provider Network
- It enables the possibility to have a BGP free core, which reduces routing table size in provider routers
- Easy implementation of L2/L3 VPN services
- Possibilities for traffic engineering.
MPLS, as the name implies uses labels to forward packets. A normal router uses the destination IP address to make forwarding decisions, but a MPLS enabled router, unless it’s the MPLS border router, only uses the labels.
Both Spanning-Tree port priority and link cost can be used to influence path selection. To select a path to the root Spanning-Tree uses several different values.
The most important one is the total path cost. When Spanning-Tree has two paths to the root, one costing 100 and the other one costing 1000, STP will choose the path costing 100, because this one should be shorter.
If two paths have the same cost, STP will choose the path from the switch with the lowest bridge id. This can be seen in the following example. I use the same topology as last time: