一.什么是MPLS
MPLS(Multi-Protocol Label Switching,多协议标签交换),位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。
多协议:可以基于多种不同的3层协议来生成2.5层的标签信息
标签交换:数据包在进入到的MPLS的域内后,将在第2层和3层中间压入标签号;使得域内的路由器在转发该数据包时,基于2.5层的标签号仅需要查询本地的一张LFIB表(标签转发信息数据库)
注:最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势
因此当下MPLS存在的意义:
1、解决BGP的路由黑洞
2、应用于MPLS VPM技术
3、MPLS TE 流量工程
同时:随着包交换的加速使得今天的MPLS技术也基于FIB表工作来提高MPLS的工作效率
MPLS域(MPLS Domain):指的是一系列连续运行MPLS的网络设备构成的一个MPLS域。
二、LSR和MPLS域
LSR(Label Switching Router,标签交换路由器):指的是支持MPLS的路由器、交换机或者其他的网络设备。
LER(Label Edge Router,标签边缘路由器):指的是位于MPLS域的边缘、连接其他网络的LSR被称为边沿路由器LER。
Core LSR(核心LSR):区域内部的LSR被称为核心LSR。
三、工作过程
我们通过控制层面和数据层面来分析:
控制层面:
1)在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);FIB是基于RIB生成;
2)MPLS协议会启动TDP(cisco私有)或LDP(公有),直连设备间将建立邻居关系;
3)MPLS在建立邻居关系后,生成邻居表;LDP协议再基于FIB表中学习到的路由条目生成标签号;
4)标签号生成后,将存储于本地的LIB表-标签信息数据库;LIB表将在邻居间共享;
LIB表中装载本地及邻居为每条路由分发的标签号;
5)运行MPLS协议的设备,将LIB和FIB进行结合,将标签号和最佳路径的关系映射生成LFIB表(标签转发信息数据库)
数据层面:
- 没有MPLS协议,基于FIB表正常转发即可
- 之后还要在LIB表中对应才能确定流量是否应该压入标签,需要两张表的查询;在存在特快交换时,流量进入第一pe时,直接查询FIB表,表中关联标签号,将直接确定是否压入标签;流量再到P路由器,接收到流量中若存在标签基于LFIB表转发,若没有标签基于FIB表即可;流量从最后一台边界离开MPLS 域时将弹出标签;
当流量进入到第一台pe设备时, 在没有特快交换之前,路由器基于目标IP地址查询本地的RIB;
接下来我们可以开始做实验练习
要求:
首先我们先将(B1、B2)B公司连通:
1.配置公网
我们先将中间的ISP连通(通过ospf):
然后相互ping一下检测是否配置有问题;
将R2R4之间的bgp开启以及相互建邻:
配置MPLS环境
[r2]mpls lsr-id 2.2.2.2 必须先定义mpls的router-id,要为本地设备的真实ip地址,且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址
[r2]mpls 再开启mpls协议
[r2-mpls]mpls ldp 再激活LDP协议
[r2-mpls-ldp]q
之后需要在所有标签经过的接口上开启协议
[r2]interface GigabitEthernet 0/0/2
[r2-GigabitEthernet0/0/2]mpls 先开启MPLS
[r2-GigabitEthernet0/0/2]mpls ldp 再激活LDP协议
注:R2R4之间有路由黑洞:我们也需要用MPLS来解决:
route recursive-lookup tunnel
2.配置私网;连通公司
①配置B1B2(B公司):
R1R5分别写到公网的静态路由;然后公网上需要在vrf空间里配置私有ip地址以及通过重发布将静态和直连路由到vrf中
最终我们可以检测一下B公司是否连通:
②配置A1A2(A公司):
R6:
R7
R6同上
R2
R4同上
最后我们检测一下: