

HCIE Routing&Switching之MPLS基础理论 - Linux-1874
source link: https://www.cnblogs.com/qiuhom-1874/p/16928096.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HCIE Routing&Switching之MPLS基础理论
90年代初期,互联网流量快速增长,而由于当时硬件技术的限制,路由器采用最长匹配算法逐跳转发数据包,成为网络数据转发的瓶颈;于是快速路由技术成为当时研究的一个热点;在各种方案中,IETF确定了MPLS协议作为标准的协议;MPLS采用短而定长的标签进行数据转发,大大提高了硬件限制下的转发能力(当然现在硬件已经没有限制,MPLS更多用于营运商做MPLS VPN,流量工程和服务质量);而且MPLS可以扩展到多种网络协议;
传统IP转发示意图

提示:如上图所示,用户A想要和用户B通信,首先数据包发送R1以后,路由器会根据数据包的目标ip地址进行路由查找,从而实现将数据包最终转发到用户B;这种ip转发采用最长匹配原则,需要多次查表,算法效率不高;况且当时路由器多采用CPU进行转发处理,这意味着来一个数据包都会上交给cpu处理,很显然这会额外带来性能上的开销;从而影响路由器性能;
ATM转发示意图

提示:如上图所示,用户A想要和用户B通信,首先用户A将数据包发送给R1,R1收到用户数据包,通过查看数据包携带的标签,从而在ATM转发表里查找对应标签表项,然后将对应数据包,从对应接口转发出去并打上对应标签;这种ATM转发采用唯一匹配,一次查表,很显然比上述的ip转发效率要高;但是ATM控制指令复杂,成本高昂,难以普及;所以ATM技术没能成功得到推广;
ATM技术虽然没能成功,但其中的心法口诀却属创新;首先ATM摒弃了繁琐的路由查找,改为简单快速的标签交换;即通过标签交换来实现数据包的转发;其次ATM将具有全局意义的路由表改为只有本地意义的标签表;
MPLS简介
MPLS借鉴了ATM的思想,用标签交换来实现快速路由;MPLS是Multi-Protocol Label Switching的首字母缩写,翻译成中文就是多协议标签交换;该协议是一种根据标签转发的技术;可承载在各种链路层协议之上(如,ppp、ATM、帧中继、以太网);同时它还能承载各种网络层报文,如ipv4、ipv6;采用无连接的控制平面,实现路由信息的传递和标签的分发,采用面向连接的数据平面,实现报文在建立的标签转发路径上传送;所以MPLS定义为2.5层,又称2.5层技术;如下图所示

提示:MPLS协议工作在二层之上三层之下的中间层,主要可以起到承上启下的作用;即它能够工作在很多二层协议之上,同时承载三层网络协议;
MPLS数据转发过程

提示:如上图所示,用户A和用户B通信,首先用户A发送IP数据报文给用户端的网关,用户端网关收到数据报文以后,根据路由将对应数据包转发给营运商的边界网关,营运商的边界路由器收到对应数据包会根据规则(lsp)给对应数据打上对应的标签;随后从对应的接口发送给下一个路由器;在营运商的内部路由器中传输用户A的数据,路由器不再根据目标ip地址来查找路由表项进行数据转发,而是根据数据包的标签和LSP(标签路径)来进行转发;最终数据包在来到营运商靠近B用户侧的边界网关,此时边界网关会根据标签路径表将对应数据中的标签剥离,然后发送给用户;从而实现用户A和用户B的数据通信;从上述过程来看,MPLS协议只关心对应数据包的标签,根据标签和结合标签路径表来转发对应数据包;并不会关心对应目标ip地址是多少,是否有路由等;所以标签的分发和lsp的建立就显得尤为重要;
MPLS实际应用场景
随着硬件技术的发展,ip转发性能也大大提高,MPLS在这方面并未发挥优势,但由于MPLS结合了IP网络强大的三层路由功能和二层网络高效的转发机制,所以目前MPLS主要应用于VPN技术,TE(Traffic Engineering,流量工程)以及QOS(Quality of Service,服务质量);
MPLS VPN应用

提示:基于MPLS的VPN通过LSP将私有网络的不同分支连接起来,形成一个统一的网络,用户设备无需为VPN配置GRE、L2TP等隧道;网络延时也会被降至最低;
MPLS TE应用

提示:所谓流量工程是通过动态监控网络的流量和网络单元的负载,实时调整流量管理参数、路由参数和资源约束参数等;使网络运行状态迁移到理想状态,优化网络资源的使用,避免负载不均衡导致的拥塞;
MPLS报文结构

提示:Label字段主要用于报文转发,占20bits;exp(experimental Use)字段主要用于承载IP报文中的优先级,占3位二进制,即有8个优先级别,0-7;S字段表示栈底标志,占1位,即表明是否是最后一个标签(MPLS标签可以多层嵌套),如果是最后一个标签,对应s字段会置为1,否则为0;TTL字段类似ip头部的TTL字段,用来防止报文环路,占8位二进制;
MPLS标签
MPLS标签有较短,定长,自由本地意义的特点,主要用于唯一标识去往同一目的地址的报文分组,标签控件如下;
所谓标签空间就是指标签的取值范围,不同取值范围,对应作用不同;
0-15是特殊保留标签
0:IPv4 Explicit NULL Label(显示空标签),表示该标签必须被弹出(即标签被剥掉),且报文的转发必须基于IPv4。如果出节点分配给倒数第二跳节点的标签值为0,则倒数第二跳LSR需要将值为0的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为0,则将标签弹出;
1:Router Alert Label 路由告警标签,只有出现在非栈底时才有效。类似于IP报文的“Router Alert Option”字段,节点收到Router Alert Label时,需要将其送往本地软件模块进一步处理。实际报文转发由下一层标签决定。如果报文需要继续转发,则节点需要将Router Alert Label压回标签栈顶;
2:IPv6 Explicit NULL Label,表示该标签必须被弹出,且报文的转发必须基于IPv6。如果出节点分配给倒数第二跳节点的标签值为2,则倒数第二跳节点需要将值为2的标签正常压入报文标签值顶部,转发给最后一跳。最后一跳发现报文携带的标签值为2,则直接将标签弹出。
3:Implicit NULL Label(隐式空标签),倒数第二跳LSR进行标签交换时,如果发现交换后的标签值为3,则将标签弹出,并将报文发给最后一跳。最后一跳收到该报文直接进行IP转发或下一层标签转发;
14:OAM Router Alert Label,MPLS OAM(Operation Administration & Maintenance)通过发送OAM报文检测和通告LSP故障。OAM报文使用MPLS承载。OAM报文对于Transit LSR和倒数第二跳LSR(penultimate LSR)是透明的;
4-13、15:保留;
16~1023:静态LSP和静态CR-LSP(Constraint-based Routed Label Switched Path)共享的标签空间;
1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering)、MP-BGP(MultiProtocol Border Gateway Protocol)等动态信令协议的标签空间;
MPLS标签多层嵌套

提示:对于一个LSR(标签路由器)来说,只处理第一个(最顶层)标签;多层标签主要应用于MPLS VPN、MPLS TE;

提示:MPLS在二层以太网网络协议号中使用8847或8848,IP协议号为0800;
MPLS标签转发行为

提示:报文进入MPLS网络,Ingress LSR设备(LSR1)发现报文的目标ip地址与其关联的标签转发表项,遂进行标签压入(push)操作,即打标签;报文在MPLS网络中间进行转发时,在LSR2上进行标签交换(SWAP),设备只需要查询标签转发表项即可完成报文转发;报文在转出MPLS网络时,LSR3发现自己为该LSP的最下游设备,完成弹出标签(POP)操作,即剥离标签,还原为最初数据包的结构;随后通过ip路由转发数据包到达用户主机,完成数据通信;简单讲就是靠近发送端用户的MPLS路由器为ingress,做标签压入操作,中间路由器做标签交换操作,靠近接收端的MPLS路由器做标签剥离操作;通过上述的压入,交换,弹出标签的操作来达到数据包的转发;
LSP的建立

提示:LSP是Label Switched Path的缩写,标签交换路径;即MPLS标签路径;作用类似ip路由表;LSP的建立有两种方式,一种是静态LSP,即通过手动方式为各个FEC分配标签建立转发隧道,类似静态路由;一种是动态LSP,即通过标签发布协议动态建立转发隧道;动态标签发布协议类似动态路由协议;

提示:标签分配的方向和数据流的方向相反;
静态LSP

提示:所谓静态LSP是指不使用标签发布协议,不需要交互控制报文,资源消耗较小;通过静态方式建立的LSP不能根据网络拓扑变化动态调整,需要管理员手动调整;这种方式适用于拓扑结构简单且稳定的小型网络;配置静态LSP原则是上游节点出标签等于下游节点入标签;配置之前应提前规划好,避免出错;
动态LSP

提示:动态LSP是指通过标签发布协议(LDP、MP-BGP、RSVP-TE)动态建立,类似动态路由协议;管理员只需要配置好标签发布协议即可实现对FEC的分类、标签的分配以及LSP的建立和维护;这种方式组网配置简单,易于管理和维护,能够根据网络拓扑变化而即时做出对应的调整;标签由下游LSR分配,按从下游到上游的方向分发;
MPLS转发过程


提示:Tunnel ID是为了给使用隧道的上层协议(如VPN、路由管理)提供统一的接口;系统自动为隧道分配一个ID,也称为Tunnel ID;该Tunnel ID的长度为32比特,只是本地有效;NHLFE是下一跳标签转发表项;主要用于指导MPLS报文的转发;该表项包括Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息;FEC到一组NHLFE的映射成为FTN(FEC-To-NHLFE);FIB表中的Tunnel ID值不为0x0的表项,能够获取FTN的详细信息;FTN只在ingress存在;ILM,Incoming Label Map,入标签映射;入标签到一组下一跳标签转发表项的映射;包括Tunnel ID、入标签、入接口、标签操作类型等信息;ILM在Transit节点的作用是将标签和NHLFE做绑定;通过标签索引ILM表,就相当于使用目标ip地址查询FIB,能够得到所有的标签转发信息;MPLS转发就是通过上述三张表项进行数据转发;
MPLS环路检测机制
MPLS环路检测可以通过IGP环路检测机制,如RIP,OSPF等各自的防环机制;除此之外也可以通过TTL环路检测,其中帧模式的MPLS中使用TTL,信元模式的MPLS中没有TTL,使用LDP环路检测机制;而LDP环路检测机制中有两种方式,一种是距离向量法,一种最大跳数法;
MPLS对TTL的处理模式
Uniform模式

提示:这种模式MPLS TTL和IP TTL相互同步,中间节点只处理MPLS TTL;这种模式不能隐藏MPLS网络真实网络节点数量;
Pipe模式

提示:这种模式MPLS TTL设置为固定值,IP TTL只在入和出节点分别减1;这种模式可以有效隐藏MPLS网络真实节点数量;
TTL环路检测

提示:TTL环路检测和IP环路检测一样,只要TTL值为0以后,对应数据包就被丢弃,从而有效阻断环路继续发生;
LDP环路检测
距离向量法

提示:距离向量法,类似RIP里的水平分割,LSR发送标签请求时,添加自己的LSR ID,如果收到的LSR发现了自己的LSR ID,对应数据包就直接丢弃;
最大跳数法

提示:最大跳数法是LSR发送标签请求时,更新Hop Conut ,如果到达预定的最大值,对应数据包被丢弃;类似TTL,不同于TTL的是TTL是每经过一个路由器就减1,直到TTL值为0时对应数据包才被丢弃;而Hop Count是每经过一个路由器就加1,直到到达预定的最大值,对应数据包才会被丢弃;
Recommend
-
3
HCNP Routing&Switching之代理ARP 前文我们了解了端口隔离相关话题,回顾...
-
10
HCNP Routing&Switching之MUX VLAN 前文我们了解了代理ARP相关话题,回顾...
-
12
HCNP Routing&Switching之RSTP保护 前文...
-
6
HCNP Routing&Switching之MSTP 前文我们...
-
6
HCNP Routing&Switching之VRRP基础 前文...
-
12
HCNP Routing&Switching之DHCP中继 前文...
-
6
HCNP Routing&Switching之MAC安全 前文我...
-
7
HCNP Routing&Switching之MAC地址防漂移 ...
-
5
HCNP Routing&Switching之IP安全 前文我...
-
6
HCNP Routing&Switching之ARP安全 前文...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK