六、MPLS:多协议标签交换

目录

一、工作过程

二、标签号

三、MPLS的次末跳

四、MPLS的配置

五、使用MPLS解决BGP的路由黑洞

六、MPLS VPN


MPLS:多协议标签交换

多协议:可以基于多种不同的3层结构来生成2.5层标签信息;

标签交换:数据包进入MPLS的域内后,将在数据包中的二层与三层之间插入标签号,使得后方的路由器仅基于数据包中的标签号和本地的LFIB表来转发数据;

最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势;

当下MPLS存在的意义:

1、解决BGP的路由黑洞

2、MPLS VPN

3、MPLS TE

另外随着包交换的加速,使得今天的MPLS技术也开始基于FIB表工作,来提高MPLS的工作效率;

LFIB:标签号对应的表

包交换:3层的数据通讯;包为网络层的PDU,故包交换是基于IP地址进行数据转发;是路由器的路由行为;

原始交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库)、再基于下一跳或者目标IP查询本地的ARP表(目标IP或下一跳的MAC地址),才能进行数据转发;

快速交换:一次路由,多次交换;每个数据流的第一个包进入路由器后,被执行原始包交换规则转发;之后路由器上生成cache缓存列表,记录该包的源/目标IP、源MAC、进出接口、新封装的源/目MAC;该数据流的第二个包直接基于缓存的记录转发即可;

特快交换:无需路由,直接交换; 路由表 ARP

CEF-Cisco特快交换,为Cisco私有技术;非Cisco厂商设备均存在和CEF转发机制相同的技术;

路由表RIB——FLB转发信息表—递归完成的二进制表格 流量转发过程中仅查询FIB表即可;

ARP——ADJ邻居关系表

FIB特点:再将路由器表转换的过程中,存储递归查询结果;同时将新封装的二层地址进行绑定;

IP                               fast0/0                      172.16.20.115(7)

                               递归后的出接口         0 packets , 0 bytes

                                                                         epoch 0

                                                              sourced in sev-epoch 357

                                                                     Encap length 14

                                               701CE766A9768EFBD1D24C50800 新的二层封装

                                                        目标MAC   源MAC    类型号

一、工作过程

控制层面:路由协议工作,生成RIB,流量的方向即为控制流量;

数据层面:设备基于路由器表访问目标,产生数据流量;与控制层面方向相反;

控制层面:

1)在没有MPLS时控制层面仅生成RIB(路由表)和FIB(转发信息数据库);

FIB是基于RIB生成; FLB装载的是本地为本地FIB所有信息分配的标签,以及邻居为FIB所有信息分配的标签

2)MPLS协议会启动TDP(Cisco私有)或LDP(公有),直连设备间将建立邻居关系;

LDP--基于UDP和TCP的646端口工作;先使用UDP发送组播hello包发现邻居,获取邻居IP地址,再和该直连邻居建立TCP会话;邻居关系建立后,为了邻居关系间的稳定,一般使用设备的环回地址来建立TCP会话;建议设置环回地址为MPLS协议的route-id,该id值将携带在组播收发的hello报文中,之后自动进行TCP会话的建立;

总结:MPLS协议需要在直连邻居间使用route-id地址进行TCP会话;所以前提条件为:route-id必须为设备真实使用的IP地址,建议为环回地址(稳定);组播hello包在直连的物理接口上收发,来获取对端的route-id,自然要求route-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协议生成;

数据层面:

1)没有MPLS协议,基于FIB表正常转发即可;

2)名词:MPLS domain—MPLS的工作半径

edge LSR(PE) --边界标签交换路由器 工作在MPLS域的边缘,连接域外设备

LSR(P) --标签交换路由器 整体工作在MPLS域内

3)当流量进入到第一台pe(第一跳路由器)设备时,在没有特快交换之前,路由器基于目标IP地址查询本地的RIB;之后还要在LIB表中对应才能确定流量是否应该压入标签,需要两张表查询;

在存在特快交换时,流量进入第一pe时,直接查询FIB表,表中关联标签号,将直接确定是否压入标签;

流量再到P(中间)路由器,接收到流量中若存在标签基于LFIB转发,若无标签基于FIB表即可;

流量从最后一台边界离开MPLS域时将弹出标签;

存在标签号的流量进入路由器时,入标签表应该为本地路由器分配的编号,出标签为本地的下游(下一跳)设备分配的标签号;上下游的概念基于数据层进行标定;

二、标签号

标签被压入在2层与3层之间,称为2.5层;标签的格式----32位,4个字节

Label(标签号) 0-20位,2^20个标签号;其中1-15号保留,作为特殊编号;

EXP(策略) 21-23位,3位8个数,为优先级,用于QOS策略使用;

S 第24位,位栈底位,该位为1标识该标签为最后一层标签;MPLS最大可以在一个数据包中封装3次标签;

普通的MPLS 一层标签 MPLS VPN 两层标签 MPLS TE 三层标签

TTL 生存时间 25-31 在第一次压入标签时,将当前数据包中的3层TTL复制到标签中;之后查询一次标签TTL减1,在最后一跳设备弹出标签时将2.5层的TTL复制到3层报头中;

三、MPLS的次末跳

倒数第二跳 默认执行

边界LSR将本地的直连网段传递给MPLS域内邻居后,LDP分配标签号为3,告知倒数第二跳设备它的身份,导致倒数第二跳设备在查询LFIB表后,在已知转发路径的前提下提前弹出标签,使得最后一跳路由器均只需要查询FIB表;否则最后一跳路由器在查询IFIB表后,弹出标签还需要查询FIB;

四、MPLS的配置

1、IP可达 --- 使用路由协议全网可达

2、配置MPLS-LDP

[r2]mpls lsr-2.2.2.2 必须先定义mpls的route-id,要为本地设备的真实IP地址,且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址

[r2]mpls 再开启MPLS协议

[r2]mpls ldp 再激活LDP协议

[r2-mpls-ldp]q

之后需要在所有标签经过的接口上开启协议

[r2]interface GigabitEthernet 0/0/1

[r2- GigabitEthernet 0/0/1]mpls 先开启MPLS协议

[r2-GigabitEthernet 0/0/1]mpls ldp 再激活LDP协议

当启动配置完成后,邻居间使用UDP报文组播收发hello包;之后基于hello包中的route-id地址进行TCP会话的建立

[r3]display tcp status 当TCP会话建立之后,邻居间基于TCP会话再建立邻居关系,生成邻居表:

[r3]display mpls ldp peer

再然后基于本地的FIB表,默认华为仅针对32位的主机路由生成标签号;存储于LIB表中,之后邻居间共享LIB表;

[r3]display fib 查看fib表

[r3]display mpls ldp lsp 查看LIB表,装载本地和邻居各条路由分配的标签号

最后路由器将LIB和FIB集合,生成最佳路径的标签转发规则—LFIB

[r3]display mpls lsp 查看LFIB表

注:默认华为仅针对32位主机路由分配标签

[r3]mpls [r3-mpls]lsp-trigger all 开启功能,将针对FIB表中所有路由进行标签号的分配

[r3 ]tracert -v -a 2.2.2.2 56.1.1.2

五、使用MPLS解决BGP的路由黑洞

MPLS协议并不会为通过BGP协议学习的路由条目分配标签号;

而是再访问这些BGP路由目标网段时,在流量中压入到达这些网段的BGP下一跳设备地址的标签号;

例:R2从BGP邻居5.5.5.5学习到6.6.6.0网段的路由;R2在访问6.6.6.0时,将在数据包中压入到达5.5.5.5IP地址的标签号,来穿越中间没有运行BGP协议的设备;实现打破路由黑洞;

注:华为设备默认不为BGP协议执行下一跳标签机制,Cisco默认;

华为设备需要开启 route recursive-lookup tunnel 路由基于隧道进行递归查找

六、MPLS VPN

1、CE将私有路由传递到PE端

2、PE端在收到不同CE发送过来的相同网段路由时,使用RD值进行区分----格式X:X 32位

3、PE端将附上RD的私有路由不能直接装载于本地公有路由表中,需要放置到对应的VRF(虚拟路由转发)空间内;之后再将路由赋RT值,用于传递到对端PE设备,对端区分信息;

VPN V4路由=普通IPV4路由+RD+RT

4、VPNV4路由需要MP-BGP来进行传递;对端基于RT值,将路由装载到对应的VRF空间内,再共享给对应的CE;

5、控制层面工作完成后,数据层面需要基于MPLS来工作,由于数据层面不能携带RD/RT值,故MPLS将在数据包中压入两层标签,外层标签用于超越中间设备,打破BGP路由黑洞;内层标签用于对应的VRF空间;

CE设备:Customer Edge,客户侧边缘设备,一般用来与PTN网络的边缘设备对接;

PE设备:网络侧边缘设备,通常要求具备封装与解封装能力;

配置:

1、ISP部分

1)IGP部分 2)MPLS部分 3)配置MPLS VPN

[r2]ip vpn-instance a 创建名为a的VRF空间

[r2-vpn-instance-a]ipv4-family 进入IPV4的配置模式下

[r2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 RD值

[r2-vpn-instance-a-af-ipv4]vpn-target 1:1 RT值,必须与对端的PE端一致

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值