MPLS:多协议标签交换—ISP使用
交换方式:
- 包交换:依赖报文中的IP地址进行数据转发
- 标签交换:基于2.5层的标签号进行数据转发
MPLS—多协议—无论网络层运行何种协议,2.5均可运行标签交换
当下的主要应用:
- 解决BGP的路由黑洞问题
- MPLS VPN
- MPLS TE(流量工程)
使用MPLS的前提是设备基于CEF工作:(CEF是cisco全新的路由交换技术)
- 启动CEF后,表格可以被ASIC(硬件芯片)直接调用
- CEF解决了递归的问题,便于MPLS生成标签转发表格
- CEF工作后生成FIB表,只有FIB可以存储标签表
控制层面:交互路由信息(路由协议收敛);进行标签号的分发;
数据层面:根据路由表转发用户数据报文;基于标签号进行数据转发,压入标签、弹出标签;
- 控制层面:通过IGP或EGP交互路由条目,生成路由表,然后CEF基于路由表生成FIB表;MPLS使用TDP/LDP基于FIB表中的每一条信息(本地所有的路由条目)生成一个标签号,然后告知所有邻居;
该工作完成后路由器上生成:
1)路由表
2)FIB表—转信息数据库= CEF基于路由表生成
3)LIB表—标签信息数据库(本地和邻居关于所有学习到的路由条目生成的标签号)
4)LFIB表–标签转发信息数据库----将FIB表和LIB进行结合 - 数据层面:普通的数据包将基于FIB表转发;若数据包中存在标签号基于LFIB进行转发;标签的压入和弹出也是在数据层面完成的;
MPLS的数据封装于2层和3层间,故称为2.5层
MPLS的数据包格式:
前20位为标签号:存在2^20个号码,其中0-15号保留;
21-23位为8个优先级,用于QOS;
25-32位TTL----当标签号被压入时,将复制3层报头的TTL值,然后每经过一个路由器减1,当标签号弹出时,复制回IP报头中;
第24位为栈底位—为1标示本信息为最后一层标签信息;最多可以存在3层标签;
一层标签为普通MPLS,主要用于解决BGP的路由黑洞;
二层标签为MPLS VPN使用;
三层标签为MPLS TE使用;
使用MPLS后,二层若依然为以太网封装,那么类型号将变化:
0x8847 MPLS单播
0x8848 MPLS 多播
名词注解:
- MPLS domain–MPLS工作的范围
- LSR(P路由器):标签交换路由器 查看数据包中的标签号然后基于LFIB表进行转发
- Edge LSR(PE路由器):边界标签路由器;在数据层面时,MPLS 域的第一跳路由器负责标签的压入,最后一跳负载弹出
- CE 客户端路由器,不工作于MPLS域,使用FIB表转发流量