- 工作过程
一,控制层面:路由协议工作,生成RIB-FIB,流量的方向即为控制流量;
数据层面:设备基于路由表访问目标,产生数据流量;与控制层面方向相反;
控制层面:(客户之间的路由传递)
控制层面阶段一:在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;在PE于CE之间运行动态路由协议。
2)MPLS协议会启动TDP(cisco私有)或LDP(公有),直连设备间将建立邻居关系;
LDP-- 基于UDP和TCP的646端口工作;先使用udp发送组播hello包发现邻居,获取邻居ip地址,再和该直连邻居建立TCP的会话;邻居关系建立后;为了邻居关系间的稳定,一般使用设备的环回地址来建立tcp会话;建议设置环回地址为mpls协议的route-id,该id值将携带在组播收发的hello报文中,之后自动进行tcp会话建立;
总结:MPLS协议需要在直连邻居间使用router-id地址来进行TCP的会话;故前提条件为,route-id必须为设备真实使用的ip地址,建议为环回地址—稳定; 组播hello包在直连的物理接口上收发,来获取对端的router-id,自然也要求router-id值间路由可达;
因此正常在建立LDP的邻居关系间,路由协议已经收敛完成,RIB和FIB表已经生成;
3)进入LDP会话建立阶段:
1)当发送keep alive时,标志这LDP会话建立完成。
2)使用advertise通告传递lable信息。
MPLS在建立邻居关系后,生成邻居表;LDP协议再基于FIB表中学习到的路由条目生成标签号;
cisco设备默认基于FIB表中所有学习到的路由条目生成标签号,华为设备默认仅基于FIB表中32位掩码的主机路由生成标签号;原因在于正常32位主机路由为ospf学习的环回接口,正常工作中只有BGP和MPLS VPN才会基于环回通讯,使用标签转发;其他普通流量还是基于特快包交换来进行;反观cisco在启动mpls以后,所有流量将基于标签转发,降低了转发效率(前提为默认)
VRF+RD=VPNv4路由(RD只具备本地路由)
RT;路由目标,负责路由的导入和导出。
4)标签号生成后,将存储于本地的LIB表-标签信息数据库;LIB表将在邻居间共享;
LIB表中装载本地及邻居为每条路由分发的标签号;
5)运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)
注:控制层面生成的表格
RIB路由表—》FIB转发信息数据库---》LIB(标签信息数据库)---》LFIB (标签转发数据库) 前两张表为路由协议工作后生成,后两张表为MPLS的LDP(标签分布路由)协议生成;
二、数据层面:在内网全部运行MPLS使用双层的MPLS lable 交换解决路由递归问题以及数据层面的路由黑洞。
- 没有MPLS协议,基于FIB表正常转发即可
- 名词:MPLS domain – MPLS的工作半径
edge LSR(PE)--边界标签交换路由器 工作mpls域的边缘,连接域外设备
LSR (P) -- 标签交换路由器 整体工作MPLS域内
- 当流量进入到第一台pe设备时, 在没有特快交换之前,路由器基于目标IP地址查询本地的RIB;
之后还要在LIB表中对应才能确定流量是否应该压入标签,需要两张表的查询;
在存在特快交换时,流量进入第一PE时,直接查询FIB表,表中关联标签号,将直接确定是否压入标签;
流量再到PE路由器,接收到流量中若存在标签基于LFIB表转发,若没有标签基于FIB表即可;
流量从最后一台边界离开MPLS 域时将弹出标签
存在标签号的流量,进入路由器时,入标签表应该为本地路由器分配的编号,出标签为本地的下游(下一跳)设备分配的标签号; 上下游的概念基于数据层面进行标定;