MPLS基础都有哪些需要了解的?
发布时间:2021-10-17 13:00:59作者:Sun阅读:0
MPLS是什么?
从发展历史来看,MPLS并非是一个非常新的技术,最早可以追溯在1997年,相应的IETF工作组就成立。在2001年,相应的RFC3031就发布了。从字面意思来看,MPLS全称是Multi-ProtocolLabel Switching,直译过来就是多协议标签交换技术。维基百科是这么定义MPLS的:一种在通讯网络上的高性能数据传输技术。信息太少,没法理解,不要着急,往下看。
MPLS解决了什么问题?
传统的路由网络里面,当一个(无状态的)网络层协议数据包(例如IP协议报文)在路由器之间游荡时,每个路由器都是独立的对这个数据包做出路由决策。路由决策就是路由器决定数据包如何路由转发的过程。路由决策在后面会多次提到,在这里指,每个路由器都需要分析包头,根据网络协议层的数据进行运算,再基于这些分析和运算,独立的为数据包选择下一跳(next hop),最后通过next hop将数据包发送出去。以IP协议报文为例,路由决策是基于目的IP地址,路由器根据目的IP地址,选择路由条目,再做转发。路由决策可以认为是由两部分组成:
分类,将特定的数据包归属为一个等价转发类(Forwarding Equivalence Classes,FECs)查找,查找FEC对应的next hop对于同一个路由器来说,同一个FEC必然对应同一个next hop,那么属于同一个FEC的所有网络数据包必然会走同一条路径转发出去。(注,在多链路负载均衡的情况下,一个FEC也可能对应一组next hop,但是逻辑上还是能看成是一个next hop,因为殊途同归!)具体到IP协议报文,当多个IP协议报文的目的地址都对应路由器的一条路由,且这条路由是所有路由里面最长匹配(longest match)的路由,那么对于这个路由器来说,就会认为这两个IP协议报文属于一个FEC。因此,这两个数据包就会走同一条路径出这个路由器。这就是我们最常见到的路由转发。
需要注意的是,这里的FEC是针对路由器的,而不是全局的。举个例子,目的地址为192.168.31.1和192.168.31.100的两个IP协议报文,第一个路由器具有192.168.31.0/24这条路由,那么在第一个路由器它们属于同一个FEC,都会被转发到第二个路由器。第二个路由器具有192.168.31.0/26和192.168.31.0/24两条路由,并且两条路由的next hop不一样。因为192.168.31.0/26能更精确的匹配192.168.31.1,所以192.168.31.1匹配第一条路由,而192.168.31.100匹配第二条路由,最终,这两个IP协议报文在第二个路由器被认为是不同的FEC,从不同的路径出去。这就是每个路由器都需要独立的做路由决策的原因之一。
路由器的工作原理如下图所示:
由于每个路由器都需要独立的路由决策(虽然会有这样那样的缓存机制加速决策),而路由器的收发队列一旦满了,就会丢包。所以在一个高流量,高容量的网络里面,无疑对每个路由器的要求都很高(否则就会丢包了!)针对这个问题,MPLS提出了类似的,但是更简单的另外一种路由决策的方法。
传统的路由决策,路由器需要对网络数据包进行解包,再根据目的IP地址计算归属的FEC。而MPLS提出,当网络数据包进入MPLS网络时,对网络数据包进行解包,计算归属的FEC,生成标签(Label)。当网络数据包在MPLS网络中传输时,路由决策都是基于Label,路由器不再需要对网络数据包进行解包。并且Label是个整数,以整数作为key,可以达到O(1)的查找时间。大大减少了路由决策的时间。这里的Label就是MPLS里面的L。需要注意的是Label在MPLS网络里面,是作为网络数据包的一部分,随着网络数据包传输的。
也就是说,在MPLS网络里面,数据被封装在了盒子里,上面贴了标签,每个经手的人只需要读标签就知道盒子该送到哪。而传统的路由网络里面,每个经手的人都需要打开盒子,看看里面的内容,再决定送往哪。
这里提到了MPLS网络,这是一个由相连的,支持MPLS的设备组成的网络。打上MPLS标签的数据可以在这个网络里面传输。MPLS的核心就是,一旦进入了MPLS网络,那么网络数据包的内容就不再重要,路由决策(包括FEC归属的计算,next hop的查找)都是基于Label来进行的。
从目前看,MPLS带来的好处是,在MPLS网络里面,除了边界路由器,其他路由器可以由一些支持Label查找替换的低性能的交换机,或者路由器来完成。这一方面降低了组网的成本,另一方面提升了同样性能设备的转发效率。不过,随着路由器的发展,这方面的优势弱化了,而且,类似的问题,也不一定需要MPLS来解决。MPLS的价值更多的在于其他方面。不过初步理解MPLS,就先说这些。到目前为止,MPLS里面的M,P,L都介绍过,S其实也隐含的介绍过,S是Switching的意思,即基于Label做路由决策的意思,或者说标签交换里面的交换。相信大家也明白了为什么说MPLS是一种高效的数据传输的技术。
MPLS术语
相较于传统的路由交换技术,MPLS是一个全新的世界,因此有必要对MPLS中的一些术语和角色做一些解释。同时,为了表述简单,后面都用IP协议报文代替网络数据包来进行描述。
FEC(Forwarding Equivalence Class):交换等价类,前面描述过,同样的转发路径的网络数据包的集合。
MPLS网络:由支持MPLS的,相连的设备的构成。
LSH(Label Switching hop):IP协议报文从一个MPLS设备发送到另一个MPLS设备,区别于传统的路由交换,LSH是基于Label的转发。
NHLFE(Next Hop Label Forwarding Entry):LSR中用来转发条目,相当于路由表之于路由器。包含了:
下一跳:nexthop
对数据包的当前label需要做的操作,包括了:
替换(SWAP)
LER(Label Edge Router):有的地方也叫做 MPLS edge node。顾名思义,MPLS网络的边缘设备。
MPLS ingress node:进入MPLS网络的节点,也就是MPLS网络的入口路由器。该设备计算出IP协议报文归属的FEC,并把相应的Label放入IP协议报文。
MPLS egress node:出MPLS网络的节点,也就是MPLS的出口路由器。IP协议报文在这里回到传统的路由系统中。
LSR(Label Switching Router):支持MPLS转发的路由器。如果一个LSR有一个邻接的节点在MPLS网络之外,那么这个LSR就是LER。注意,这里的MPLS网络之外可以是:1.传统路由网络,2.另一个MPLS网络。
LSP(Label Switching Path):特定的FEC中的IP协议报文所经过的LSR的集合。LSP通常也被称为MPLS tunnel。
Vecloud提供全球主机托管、服务器租用、mpls专线接入、SD-WAN组网等方面的专业服务,资源覆盖全球。欢迎咨询。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
标题:MPLS基础都有哪些需要了解的?
TAG标签:MPLS
地址:http://www.vecloud.com.cn/article/369.html