MPLS:多协议标签交换
原始的包交换:
快速的包交换:
特快的包交换:
标签交换:
当下MPLS存在的意义:
工作过程
控制层面:
数据层面:
实验拓扑如下
实验要求
实验思路:
实验过程;
完成实验
多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;
包交换—包为网络层的PDU,故包交换是基于IP地址进行数据转发;就是路由器的路由行为;
数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的ARP表,才能进行数据的转发;
一次路由多次交换;每个数据流中的第一个包将被基于原始包交换规则转发;过程中生成缓存列表,记录整个通讯过程,该数据流量剩余数据包仅查询缓存记录即可;
无需路由,直接交换; CEF-cisco特快交换,为cisco私有技术;非cisco厂商设备均存在和cef转发机制相同的技术;
路由表、ARP –转换为 FIB(转发信息数据库)表 流量转发过程中仅查询FIB表即可;
FIB的特点:在将路由器表转换过程中,存储递归查询结果;同时将新封装的二层地址进行绑定;
IP fast0/0 172.16.20.115(7)
(递归后的出接口) 0 packets, 0 bytes
epoch 0
sourced in sev-epoch 357
Encap length 14
701CE7662A9768EFBD1D24C50800 新的二层封装
目标MAC 源MAC 类型号
数据包在进入到的MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查询本地的一张LFIB表(标签转发信息数据库)
最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势;
1、解决BGP的路由黑洞 2、MPLS VPN 3、MPLS TE 流量工程
另外:随着包交换的加速,使得今天的MPLS技术也开始基于FIB表工作;来提高MPLS的工作效率;
控制层面:路由协议工作,生成RIB,流量的方向即为控制流量;
数据层面:设备基于路由表访问目标,产生数据流量;与控制层面方向相反;
1)在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;
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)MPLS在建立邻居关系后,生成邻居表;LDP协议再基于FIB表中学习到的路由条目生成标签号;
cisco设备默认基于FIB表中所有学习到的路由条目生成标签号,华为设备默认仅基于FIB表中32位掩码的主机路由生成标签号;原因在于正常32位主机路由为ospf学习的环回接口,正常工程中只有BGP和MPLS VPN才会基于环回通讯,使用标签转发;其他普通流量还是基于特快包交换来进行;反观cisco在启动mpls以后,所有流量将基于标签转发,降低了转发效率(前提为默认)
4)标签号生成后,将存储于本地的LIB表-标签信息数据库;LIB表将在邻居间共享;
LIB表中装载本地及邻居为每条路由分发的标签号;
5)运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)
注:控制层面生成的表格
RIB—》FIB---》LIB---》LFIB 前两张表为路由协议工作后生成,后两张表为MPLS的LDP协议生成;
edge LSR(PE)--边界标签交换路由器 工作mpls域的边缘,连接域外设备
LSR (P) -- 标签交换路由器 整体工作MPLS域内
当流量进入到第一台pe设备时, 在没有特快交换之前,路由器基于目标IP地址查询本地的RIB;之后还要在LIB表中对应才能确定流量是否应该压入标签,需要两张表的查询;在存在特快交换时,流量进入第一pe时,直接查询FIB表,表中关联标签号,将直接确定是否压入标签;流量再到P路由器,接收到流量中若存在标签基于LFIB表转发,若没有标签基于FIB表即可;流量从最后一台边界离开MPLS 域时将弹出标签;
存在标签号的流量,进入路由器时,入标签表应该为本地路由器分配的编号,出标签为本地的下游(下一跳)设备分配的标签号; 上下游的概念基于数据层面进行标定;
1.R2-7每台路由器均存在一个环回接口用于建立邻居; 同时还存在一个环回来代表连接用户的接口;
设备234基于r5访问
设备567基于r2访问
最终这些连接用户的接口网络需要可以和R1/8的环回通讯
2、AS2网段地址17216.0.0/16减少路由条目数量
1.对AS2网段的规划(规划ip如上拓扑)
2.进行ip配置
3.对AS2区域进行ospf路由宣告
4.对AS2进行MPLS标签配置
5.全网BGP邻居关系的建立(宣告路由)
6.测试内外环回的ping通
7.减少路由 路由选路策略
1.ip 配置如上拓扑
2.IP 配置如下
r1到r8ip配置如下
3.对AS2区域进行ospf路由宣告
AS2区域ospf启动与宣告与下图类似
4.IBGP进行配置
5.全网BGP邻居关系的建立(宣告路由)
建立邻居结果
在r1宣告10.1.1.1 路由
环回访问
ICMP 标签配置(划分mpls区域,进行配置,注意配置端口范围)
[r4]mpls lsr-id 172.16.0.4
[r4]mpls
Info: Mpls starting, please wait... OK!
[r4-mpls]mpls ldp
[r4-mpls-ldp]quit
[r4]int g0/0/1
[r4-GigabitEthernet0/0/1]mpls
[r4-GigabitEthernet0/0/1]mpls ldp
[r4]int g0/0/1
[r4-GigabitEthernet0/0/1]mpls
[r4-GigabitEthernet0/0/1]mpls ldp
端口标签状态(当tcp会话建立后,邻居间基于TCP会话再建立邻居关系,生成邻居表:)
AS1 AS2 AS3 配置
AS2
邻居结果如下
AS3
在R1宣告路由(在R8查看)
华为设备需要开启 route recursive-lookup tunnel 路由基于隧道进行递归查找
[r7]route recursive-lookup tunnel
在所有AS2 bgp设备都配置这条命令
结果如图
IBGP路由宣告
[r2]ip route-static 172.16.0.0 21 n
[r2]ip route-static 172.16.0.0 21 NULL 0
[r2]bgp 2
[r2-bgp]net
[r2-bgp]network 172.16.0.0 21
[r5]ip route-static 172.16.0.0 21 NULL 0
[r5]bgp 2
[r5-bgp]network 172.16.0.0 21
[r5-bgp]
[r7]ip route-static 172.16.0.0 21 NULL 0
[r7]bgp 2
[r7-bgp]net
[r7-bgp]network 172.16.0.0 21
宣告结果
设备2.3.4 的用户网段在r5访问(选路r5)先再R2宣告 抓流量 写策略 调运
路由的宣告后,选路如下
172.16.2.0 选路不符合要求
抓取流量
在AS1 中调运(选路结果如下)