”老当益壮“的MPLS缘何纵横江湖二十年

MPLS多协议标签交换技术从1997年被定义并广泛部署,距今已经23年的时间。明明比我还年轻,为什么我要说它“老当益壮”呢?

那是因为IT行业、互联网行业的发展极快,瞬息万变。


二十年,已然沧海桑田。


01

MPLS简介及发展史

早在80年代末期,ITU国际电信联盟定义并开始部署ATM(异步传输模式)作为电信网关键技术的时候,因特网也刚刚开始迈出自己商用的第一步,而后因特网快速发展,作为因特网关键技术的IP也从最初与ATM分庭抗礼,到后来一骑绝尘。

定义TCP/IP的IETF因特网工程任务组,其标准叫RFC(Request For Comments),翻译一下就是“给点意见撒”,而相比于ITU“四年磨一剑”的行事风格,IETF明显自由的多。

如果抛开IP和ATM的渊源、纠葛,单纯谈谈技术的话,我们首先看一下以下两张图:

(1)ATM交换技术

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


注:传统ATM采用信元交换,借助VPI/VCI(虚拟路径标识/虚拟通道标识)建立VC虚电路,此处简化为帧中继网络的DLCI数据连接标识方便观察。

(2)IP路由技术

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


通过上图我们发现两个技术各有千秋,技术优缺点我们简单阐述一下:

ATM技术特点:

1、通过连接标识建立的逻辑虚电路转发固定长度的信元,硬件交换极为高效;

2、虚电路的部署可以灵活的进行流量、带宽规划,端到端的QoS服务;

3、部署复杂、设备价格相对昂贵。

IP技术特点:

1、无连接的方式转发IP报文,路由器逐跳查询软件路由表,对CPU等硬件性能要求较高;

2、无连接的IP协议无法灵活的进行流量、带宽规划,QoS实现复杂;

3、部署相对简单、设备接入便利、价格便宜。

注:关于IP路由基础的知识可以点最后的原文链接,参考我们之前的免费公开课


考虑到最初硬件性能有限,所以很多厂家希望将IP的便利性、ATM的高效转发相结合,所以在1996年年底的时候,有一家名不见经传的小公司IPSilon(后被NOKIA收购,你品,你细品……)开发了自己的协议和设备,将ATM交换机部署IP路由引擎并通过IP Switching的技术实现IP转发。随后思科、IBM等等巨头也开发了Tag Swtiching、ARIS聚合路由IP交换等等技术,大有割据纷争的态势。

1997年,IETF(没错还是他,就是他,都是他)牵头,拉了朗讯、思科等等一票大佬组了个局,MPLS多协议标签交换技术也就这么确定下来并开始广泛部署。所谓以史为鉴可知兴替,咱们学习技术也得跟着潮流,不断进步,接下来就继续探讨MPLS技术细节。


02

MPLS架构及标签格式


”老当益壮“的MPLS缘何纵横江湖二十年

MPLS网络的典型结构如图所示,MPLS域(MPLS Domain)内的设备基于标签进行数据转发,

LSR(Label Switching Router)进行MPLS标签交换和报文转发的网络设备称为标签交换路由器,位于区域内部;

LER(Label Edge Router)位于MPLS域边缘、连接其他网络比如IP网络;

LSP(Label Switched Path)是指IP报文在MPLS网络中经过的路径称为标签交换路径,LSP是一个单向路径,与数据流的方向一致。


当IP报文进入MPLS域时,MPLS入口的LER分析IP报文的内容并且为这些IP报文添加合适的标签(问题1),所有MPLS网络中的LSR根据标签转发数据。当该IP报文离开MPLS网络时,标签由出口LER弹出。

LSP的入口LER称为入节点(Ingress)执行标签的压入PUSH动作;

LSP中间的LSR称为中间节点(Transit)执行标签的交换SWAP动作;

LSP的出口LER称为出节点(Egress)执行标签的弹出POP动作;


问题1:如何分析IP报文的内容并且为这些IP报文添加合适的标签?

比如我们奔着一个特定的目的IP地址或者某个特定的VPN虚拟专用网络,那么我们需要在入口添加合适的标签以进入其对应的LSP隧道,

这就引出来一个特别重要的概念FEC转发等价类(Forwarding Equivalence Class),FEC可以根据源地址、目的地址、源端口、目的端口、VPN等要素进行划分,比如咱们华为设备认为目的地址是同一条32位主机路由,就是一个FEC转发等价类。

其实通过上图我们已经可以发现路由器如何为一个报文打上标签的,而标签格式细节可以参照下图:

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


路由器直接在报文的二层头部和三层头部之间增加一个32bit的MPLS标签头,所以我们也经常称MPLS为2.5层协议。无论数据链路层采用以太网、PPP点到点还是Frame-Relay帧中继等协议、网络层采用IP还是IPX等协议,统统可以通过查看2.5层标签实现数据转发,这也体现了多协议的特性,其对应字段作用如下:

LABEL:该标签用于报文转发,长度为20bits,路由器根据自身标签空间分配并告知给自己的上游路由器

EXP:通常用来承载IP报文中的优先级,长度为3bits,用于实现QoS

S:标识栈底用来表明是否是最后一个标签(MPLS标签可以多层嵌套---后续MPLS-VPN详细探讨),长度为1bit;

TTL:类似IP头部的TTL,用来防止报文环路等,长度为8bits;

其实当今网络设备性能已经足够强大,硬件转发、报文交换已经不是部署MPLS等技术的唯一理由,那么我们当今骨干网络广泛部署MPLS的原因究竟为何?接下来我们分析一个场景。


03

BGP路由黑洞问题及MPLS转发


”老当益壮“的MPLS缘何纵横江湖二十年


如图所示,这是一个典型的BGP路由黑洞问题的场景。

控制层面:

AS65001将100.1.1.1路由借助EBGP传递给AR4,AR4借助IBGP直接将路由传递给AR1,AR1继续将路由传递给AS65000。

转发层面:

AR65000将目标地址为100.1.1.1的IP数据报文发送给下一跳也就是AR1,而AR1如何处理呢?我们来查看一下AR1的路由表:


”老当益壮“的MPLS缘何纵横江湖二十年


”老当益壮“的MPLS缘何纵横江湖二十年

AR1目标地址为100.1.1.1的路由表,其下一跳为4.4.4.4(控制层面AR4借助IBGP将路由通过TCP会话传递过来),

AR1发现路由下一跳为非直连下一跳4.4.4.4,继而进行路由迭代查表,去往4.4.4.4需要将报文转发给AR2,


”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


而AR2收到IP报文继续查询IP路由表,发现根本不存在100.1.1.1对应的路由条目,则丢弃报文

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


而如果AR1上存在去往4.4.4.4的LSP,AR1压入标签进入到对应的LSP隧道,AR2、AR3、AR4直接通过标签转发,是不是问题就解决啦?

没错!我们看下配置了MPLS之后的转发信息表(通过路由表、标签信息表整合的指导数据转发的表项)

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年

注:[R1]route recursive-lookup tunnel--------AR1需要配置路由迭代查表优选隧道(MPLS-VPN默认开启该命令)


接下来我要表演一名灵魂画手的功底,是时候展现真正的技术了!


前方高能!


”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年

怎么样?有没有被我的画工折服?


设想在电信的骨干网络中已经部署了MPLS,那么我们直接借助BGP传递客户的私网路由实现VPN业务,然后沿途设备都可以通过标签转发,是不是可以顺利达到你快乐的彼岸?这也就是为什么我们上文说的“比快我们不落下风,比稳我们更胜一筹“…(说过吗?)


04

MPLS控制层面建立LSP过程


有一个重要的点我们必须交代清楚,运行MPLS不代表路由器上可以没有路由表,我们本质上是为了特定的目标路由去手拉手、心连心的建立一条LSP,所以IGP内部网络协议诸如OSPF、IS-IS还是必须运行!路由表还是得存在!MPLS是对转发方式的优化,更像叠加的隧道技术!

而部署MPLS LDP标签分发协议等协议就可以为特定的目标路由分配标签并且通过相应的消息把标签和目标路由的映射关系发送给自己上游的设备,这个过程从下游出口设备逐段的进行,一直到LSP的入口设备。

控制层面铺路:


”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年

转发层面上路:

”老当益壮“的MPLS缘何纵横江湖二十年

”老当益壮“的MPLS缘何纵横江湖二十年


篇幅有限,我没有办法通过一篇文章把MPLS控制层面、转发层面的所有问题一一解释清楚,如果需要了解上述实验的配置、具体的技术原理以及后续高级技术诸如VPN、SR等,可以关注我们后续的公开课。


”老当益壮“的MPLS缘何纵横江湖二十年


分享到:


相關文章: