ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MPLS+BGP+静态引入CE路由的双层标签详解

2022-01-30 19:30:40  阅读:295  来源: 互联网

标签:10.1 R2 R3 MPLS CE label BGP vpn


文章目录

参考阅读

实验详解手工指定MPLS的LSP(Huawei设备)
MPLS+BGP产生的数据层面的路由黑洞详解

双层标签含义

在这里插入图片描述

对于MPLS+BGP的组网中,需要将各个CE间的路由打通,这样在公网的内部就回出现两层的label;

  • 由公网内部的mpls ldp分配的 对于公网路由的label
  • 由MP-BGP的vpnv4分配的 对于私网路由的label

实验拓扑

在这里插入图片描述
说明:
1、R2 R4之间建立BGP-vpnv4的邻居,R3不运行BGP进程
2、R2、R3、R4组成一个MPLS-domain
3、R1、R5分别作为独立的客户侧,其路由网段为172.16.1.0/24 172.16.5.0/24
4、CE与PE间采用静态引入的方式打通

配置思路

路由配置
[R1]ip route-static 0.0.0.0 0.0.0.0 172.16.12.2
[R2]ip route-static vpn-instance a 172.16.1.0 255.255.255.0 
[R4]ip route-static vpn-instance b 172.16.5.0 255.255.255.0 
[R5]ip route-static 0.0.0.0 0.0.0.0 172.16.45.4

MPLS配置就是全局、接口使能mpls、mpls ldp即可 参考阅读的实验由配置上说明

vpn-instance配置
[R2-vpn-instance-a]di th
[V200R003C00]
#
ip vpn-instance a
 ipv4-family
  route-distinguisher 12:12
  vpn-target 15:15 export-extcommunity
  vpn-target 15:15 import-extcommunity
#
return
[R4-vpn-instance-b]di th
[V200R003C00]
#
ip vpn-instance b
 ipv4-family
  route-distinguisher 45:45
  vpn-target 15:15 export-extcommunity
  vpn-target 15:15 import-extcommunity
#
return


BGP配置
[R2-bgp]di th
[V200R003C00]
#
bgp 234
 undo default ipv4-unicast
 peer 10.1.4.4 as-number 234 
 peer 10.1.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.4.4 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.4.4 enable
 #
 ipv4-family vpn-instance a 
  import-route direct
  import-route static
#
return

[R4-bgp]di th
[V200R003C00]
#
bgp 234
 peer 10.1.2.2 as-number 234 
 peer 10.1.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.2.2 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.2.2 enable
 #
 ipv4-family vpn-instance b 
  import-route direct
  import-route static
#
return

检查

BGP-vpnv4邻居

在这里插入图片描述

MPLS LDP邻居

在这里插入图片描述
R1的私网路由pingR5在R3的入接口处(S4/0/0)抓包,可以看到是双层的label
在这里插入图片描述

控制+数据层面

下面就对控制和数据层面分别分析路由和label的情况

控制平面

1、私网路由,私网标签
R4将vpn-instance b中的static引入到bgp中
在这里插入图片描述

BGP将RD+ipv4 组成一个96bit的vpnv4路由,且带上export的vpn-target45:45 BGP-vpnv4为这条私网路由分配的私网label
在这里插入图片描述

这条私网路由通过vpnv4的邻居关系传递到R2,R2就收到了这条私网路由,且label为1026,通过10.1.4.4这个vpnv4邻居发来的
在这里插入图片描述

至此,R2收到这个私网路由172.16.5.0/24 下一跳是10.1.4.4 label为1026 是由R4 的bgp vpnv4产生
2、公网路由,公网标签
R4给作为egress给自己的in打上3的label,即告诉R3要进行PHP
在这里插入图片描述

R3打上1025传递给R2
在这里插入图片描述

R2就收到了这个1025的label
在这里插入图片描述

至此,R2收到这个公网路由10.1.4.4/32 下一跳是10.1.23.3 label为1025 是由R3的mpls ldp分配

数据层面

1、R1查询本地FIB,找到下一跳给到R2
在这里插入图片描述

2、R2查询vpn-instance a的FIB,可以看到这IP包要push一个1026的label,变成标签包,这里的BGPNextHop意思是这个label是通过控制平面的BGP-vpnv4传递对于私网传递过来的label
在这里插入图片描述

此时数据包进入到了MPLS-domain中(可以理解为进入公网的范畴),要经过BGP来进行传递,这时就会再次push一个公网的标签,在R2上查看LFIB可以看到对于10.1.4.4有两种操作,分别是Ingress、Transit;看哪个取决于Token,上一步中的tunnel-id对应这里的Fec和Token;继续查询tunnel-id 0x3可以看出对于公网10.1.4.4就要封装1025这个label,至此这个数据包就有了两层label,且下一跳是10.1.23.3 即R3
在这里插入图片描述

此时这个数据包就变成了

Sip 172.16.1.1 dip 172.16.5.5 | 私网label 1026 |公网label 1025 | ppp

如下是对R3的入接口进行抓包(serial 4/0/0)
在这里插入图片描述

此时数据包来到R3后,R3收到一个label的包,肯定查询LFIB,R3对于公网的label做了一个POP操作,此LFIB中存在出接口与下一条,将label包扔给R4
在这里插入图片描述

在这里插入图片描述

如下是对R3的出接口进行抓包,可以看到公网的label被POP了,只留下了私网的label
在这里插入图片描述

数据包来到R4后,查询in-label为1026的LFIB,做的是POP操作,但是没有出接口与下一跳,就要继续查询FIB,注意查找的是vpn-instance b(根据的是VrfIndex)

在这里插入图片描述
在这里插入图片描述

然后数据包扔给R5,路由就通了

总结

  • 对于数据包来到路由器上首先要从宏观上分析控制层面的表项信息是如何学习生成的
  • 查询什么表取决于这个数据是IP还是label
  • 对于双层标签要明确每层是如何封装且数据包转发时,什么时候做POP操作

后面还会继续更新BGP+MPLS+OSPF的CE联动


标签:10.1,R2,R3,MPLS,CE,label,BGP,vpn
来源: https://blog.csdn.net/qq_41959899/article/details/122754665

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有