MPLS(Multi-Protocol Label Switching多协议标签交换)
- ISP使用
- 包交换:依赖报文中的IP地址进行数据转发
- 标签交换:基于2.5层的标签号进行数据转发;
- 无论网络层运行何种协议,2.5层均可运行标签交换;
解决问题:
- 解决BGP的路由黑洞问题
- MPLS VPN
- MPLS TE(流量工程)
包交换的技术
- 原始的路由:流量进入路由器后,路由器基于目标IP地址查询路由表,再基于目标ip或下一跳ip查询ARP来获取对端mac
- natflow:一次路由多次交换-----传统的路由;当流量进入路由器后查询完路由表及ARP后,生成cache;再之后相同IP间的互访仅基于cache查询;
- CEF(思科快速交换):无需路由直接交换,将路由器表和ARP表转换为FIB(路由表)和ADJ(ARP)表,FIB和ADJ均为际二进制表,实使用时被结合,cisco私有
FIB(转发信息数据库):-----目标ip地址及出接口—解决递归
ADJ(邻居表):-----源目MAC
为什么使用MPLS的前提是设备基于CEF工作:
- 启动CEF后,表格可以被ASIC(硬件芯片)直接调用
- CEF解决了递归的问题,便于MPLS生成标签转发表格
- CEF工作后生成FIB表,只有FIB可以存储标签表;
控制层面和数据层面
- 控制层面:交互路由信息;进行标签号的分发;
- 数据层面:根据路由表转发用户数据报文;基于标签号进行数据转发;
控制层面:
通过IGP或EGP交互路由条目,生成路由表和FIB表;
MPLS使用TDP/LDP基于FIB表中的每一条信息(本地所有的路由条目)生成一个标签号,然后告知所有邻居;
该工作完成后路由器上生成:
- 路由表
- FIB表:转信息数据库
- LIB表:标签信息数据库(本地和邻居关于所有学习到的路由条目生成的标签号)
- LFIB表:标签转发信息数据库----将FIB表和LIB进行结合
数据层面:
普通的数据包将基于FIB表转发;若数据包中存在标签号基于LFIB进行转发;
MPLS的数据封装于2层和3层间,故称为2.5层