思科CiscoMPLS多协议标签交换原理与配置操作详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思科CiscoMPLS多协议标签交换原理与配置操作详解
本⽂讲述了思科Cisco MPLS多协议标签交换原理与配置操作。
分享给⼤家供⼤家参考,具体如下:
⼀、MPLS:多协议标签交换
1.1 IP数据转发⽅式
1.2 标签交换与传统数据包交换对⽐
1.3 MPLS的主要应⽤场景
1.4 控制层⾯和数据层⾯
1.5 MPLS模式
1.6 MPLS术语
⼆、MPLS的数据包格式
三、标签分发协议
3.1 标签分发时的注意点
四、MPLS的⼯作过程
4.1 倒数第⼆跳弹出(次末跳弹出)
五、MPLS配置
5.1 配置步骤
⼀、MPLS:多协议标签交换
⽀持多种⽹络层协议,协议(3层)⽆关性,也叫2.5层协议
基于标签交换进⾏数据转发
1.1 IP数据转发⽅式
进程转发:每个数据包过来查找路由(与操作--->最长匹配---->递归查找),也叫基于数据包的转发
快速转发:每个流量中的第⼀个数据包进⾏路由查找,后续数据基于第⼀个数据包的缓存转发,⼀次路由、多次交换,也叫基于缓存的转发(区分源IP、⽬的IP、源端⼝、⽬的端⼝、协议号)
CEF:cisco私有,特快交换,所有数据包⽆需查看路由转发,直接查看CEF(FIB)表进⾏转发,该表项是⾃动适应路由表,也叫基于拓扑的转发⽅式;⽆需路由、直接交换,将路由表变为FIB表(递归完成后的表,⽬标对接⼝),ARP表变为ADJ表(接⼝+MAC),这两张表均为⼆进制表,可以被硬件直接编译,基于FIB+ADJ的综合表进⾏转发
1.2 标签交换与传统数据包交换对⽐
标签交换转发效率优于传统数据包交换(已不明显)
MPLS⽀持MPLS VPN,⽀持MPLS TE。
1.3 MPLS的主要应⽤场景
解决BGP的路由⿊洞问题
MPLS VPN
MPLS TE(流量⼯程)
使⽤MPLS的前提是设置均基于CEF⼯作,还要保证IGP收敛。
启动CEF后,表格可以被ASIC(硬件芯⽚)直接调⽤
CEF解决了递归的问题,便于MPLS⽣成标签转发表格
CEF⼯作后⽣成FIB表,只有FIB可以存储标签表
1.4 控制层⾯和数据层⾯
控制层⾯:通过IGP或EGP交互路由条⽬,⽣成路由表,然后CEF基于路由表⽣成FIB表;MPLS使⽤TDP/LDP基于FIB表中的每⼀条信息(本地所有的路由条⽬)⽣成⼀个标签号,然后告知所有邻居;
数据层⾯:普通的数据包将基于FIB表转发,若数据包中存在标签号基于LFIB进⾏转发,标签的impose和pop也是在数据层⾯⽣成
1.5 MPLS模式
Frame:帧模式,电路交换,⼆层协议为Ethernet、HDLC、PPP、FR(⾮ATM)
Cell:信元模式,ATM模式,带有标签的数据信元
1.6 MPLS术语
FEC:转发等价类,具有相同的处理⽅式的⼀类数据称为⼀个转发等价(基于⽬标IP,源IP,VPN地址,QoS⾏为,出接⼝)
LSR:标签交换路由器,标签交换(swap),查看数据包中的标签号然后基于LFIB表进⾏转发
E-LSR:边界标签交换路由器(PE),标签压⼊(impose)和弹出(pop)
LSP:标签交换路径
LIB:标签信息数库,存放本本路由器上针对所有FEC所分配的标签以及所有LDP邻居分配⾃⼰学习到的标签
LFIB:标签转发信息库,真正转发标签,由FIB和LIB共同⽣成,包含⼊标签和出标签
CE:客户端路由器,不⼯作于MPLS域,使⽤FIB表转发流量
⼆、MPLS的数据包格式
Label:20bit,范围(16-2^20),0-15为保留标签
EXP:3bit,⽤于在label中标记标签中优先级,⽤来做QoS
S:1bit,栈底位,代表标签是否到达栈底S=0表⽰未到达栈底;S=1表⽰到达栈底,最多可以存在3层标签
⼀层标签为普通MPLS,主要⽤于解决BGP路由⿊洞
⼆层标签为MPLS VPN使⽤
三层标签为MPLS TE使⽤
TTL:8bit⽣存时间,⽤于MPLS label交换中防环,当标签号被impose时,将复制三层包头的TTL值,然后每经过⼀个路由器减1,当标签号被pop时,复制回IP包头中使⽤MPLS后,⼆层若依然为以太⽹封装,那么类型号将变化
0x8847 MPLS 单播
0x8848 MPLS 多播
三、标签分发协议
1.LDP和TDP
LDP:⼯业标准,基于TCP或UDP封装,使⽤端⼝号646,组播发送224.0.0.2(所有⽀持组播功能的路由器都接收该地址),⽀持认证
LDP邻居发现阶段:使⽤LDP的hello包建⽴邻居,不分配标签使⽤UDP⽅式,进⾏TCP三次握⼿
LDP的会话建⽴阶段:进⾏LDP初始化报⽂的发送,发送keepalive,并发送LDP的标签分发信息
TDP:cisco私有,应⽤层协议,基于TCP或UDP封装,使⽤端⼝号711,⼴播发送255.255.255.255,不⽀持认证
2.MP-BGP
3.RSVP
3.1 标签分发时的注意点
标签分发仅具有本地意义
标签分发是异步的
标签分发只会给本地直连、静态以及IGP路由分发标签,不会为BGP路由分发标签。
BGP不分发标签,只会在数据层⾯为路由条⽬的下⼀跳添加标签。
标签分发、压⼊、弹出和交换通常只发⽣在运营商⽹络,客户端永远不可能收到带标签的报⽂。
四、MPLS的⼯作过程
当控制层⾯使⽤路由协议传递路由条⽬后,路由器上使⽤LDP/TDP为本地FIB表中每⼀条存在的路由条⽬均分配⼀个标签号,装载于LIB表中,同时传递给邻居,LIB中还记录邻居传递到本地标签号;之后路由器基于本地的FIB和LIB表⽣成LFIB(标签号的最佳对应路径)
数据层⾯⼯作时,第⼀跳路由器负责标签的impose,中间路由器基于标签号转发流量,进⾏标签号的替换,最后⼀跳路由器负责标签的pop。
⼊标签号为本地分配的标签号,出标签号为下⼀跳(下游)分配的标签号;存在上下游路由器的概念,基于数据层⾯定义
4.1 倒数第⼆跳弹出(次末跳弹出)
最后⼀跳路由器在默认情况下需要查看LFIB表后在查看FIB表,然后转发数据;PHP可以使倒数第⼆跳在已知出接⼝、下⼀跳等信息时便将标签号pop,然后基于出接⼝转发流量,导致最后⼀跳路由器仅查看FIB表
最后⼀跳路由器,将本地直连路由传递给邻居时使⽤label3来告知对⽅为倒数第⼆跳,⾮直连路由正常分配标签号;针对域外⾮直连路由,域内的最后⼀跳路由器需要查询两张表;建议PE路由器直接连接⽤于,不再连接其他路由器。
对于⼀条路由条⽬,如果该路由器路由表中该路由条⽬的出接⼝是⼀个没有启⽤MPLS的接⼝,则该接⼝就是最后⼀跳;或者该路由条⽬对应的下⼀跳邻居不是本地的TDP/LDP邻居时,该路由器同样为最后⼀跳路由器;只要⼀台路由器收到了关于⼀跳路由条⽬的标签是3,则该路由器就为倒数第⼆跳路由器
pop标签仅弹出最上层标签,仅仅只是倒数第⼆跳;untagged标签弹出所有标签,意味着离开了MPLS域。
倒数第⼀跳路由器向倒数第⼆跳路由器发送⼀个label3空标签,使倒数第⼆跳路由器提前弹出标签
五、MPLS配置
5.1 配置步骤
运⾏IGP
启⽤CEF(cisco设备默认开启CEF)
在接⼝上启⽤MPLS
修改链路MTU
物理接⼝启⽤MPLS,在标签号所有需要经过的接⼝上配置
或
修改接⼝MTU
修改MPLS标签的范围
修改Root ID为接⼝s0/1的地址;回车重启⽣效,force⽴即⽣效
协议开启后,邻居间使⽤hello建邻,⽣成邻居表
存在Root ID,选举同OSPF⼀致。
Root ID同时作为了建⽴TCP会话的源⽬IP,若存在环回,那么默认使⽤环回作为Root ID,此时就必须将环回宣告到路由协议中
当邻居关系建⽴后,邻居间会将基于FIB表⽣成的标签号传递给邻居,保存于LIB表中,之后将LIB表和FIB表进⾏结合,⽣成LFIB表,基于该表进⾏标签流量转发
⽤traceroute测试MPLS
让R2只把某些路由分发的标签传递给邻居,实现标签分发的过滤。