前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >跨域MPLS VPN OptionC实验01(实验分析案例)

跨域MPLS VPN OptionC实验01(实验分析案例)

作者头像
Ponnie
发布2021-08-25 18:36:21
1.7K0
发布2021-08-25 18:36:21
举报
文章被收录于专栏:玉龙小栈玉龙小栈

很多兄弟想看实验文章,今天就跨域MPLS VPN OptionC实验(带RR场景,VPNv4路由下一跳为RR)进行分析。

【实验基础命令可以在群里看手册自行配置,本次作为实验分析。根据实验拓扑配置进行现象分析】

实验拓扑:

第一步:

配置ISP 100和ISP 200的IGP/LDP/MPLS协议,R3和R4之间使能MPLS

第二步:

在PE(R1、R6)上配置VPN实例

第三步:

  • 在PE-CE之间配置IGP并引入MP-BGP的VPN实例中
  • R1和R6引入PE-CE的IGP到MP-BGP的VPN实例中

第四步:

  • R1-R2、R2-R3、R3-R4、R4-R5、R5-R6配置IPv4-BGP邻居
  • R3宣告10.1.1.1,并针对R2配置下一跳本地
  • R4宣告10.1.6.6,并针对R5配置下一跳本地
  • R2和R5为RR反射器
  • R1和R6上查看BGP路由,都能学习到对端的环回口路由,并且在当前情况下,R1和R6的环回口通信完全依靠BGP,因为R1-R6之间所有的路由都有R1和R6的环回口路由信息

第五步:

  • R1-R2和R5-R6建立MP-IBGP,R2和R5建立MP-EBGP
  • 首先是R1-R2和R5-R6要建立MP-IBGP,由于R1-R2,R5-R6各自都有对端的环回口路由,所以可以直接建立MP-IBGP
  • 接着是R2和R5建立MP-EBGP,但是R2和R5都没有对方的环回口路由,所以需要在R3上宣告R2的环回口路由到BGP,R4上宣告R5的环回口路由到BGP
  • R2和R5既是IPv4-BGP的RR,也是VPNv4-BGP的RR,当前环境中AS内部只有一个PE,如果有多个PE则R2和R5必须是VPNv4-BGP的RR
  • 在第三步的时候R1和R6已经将PE-CE的OSPF路由引入了MP-BGP对应的VPN实例内,但是虽然R1和R2建立了VPNv4-BGP邻居关系,由于R2没有配置VPN实例,导致无法接收VPN路由,所以在R2上要关闭RT过滤。R5上同理
  • 如此,在R2和R5上就能收到关于PE-CE侧的VPN路由

在MP-BGP中,从EBGP邻居学习到的路由,传递给IBGP邻居时,下一跳会自动更改

第五步续:

测试R6-PE2与SiteA的CE(1.1.1.1)能否正常通信

假设此时R6-PE2收到来自SiteB的CE(2.2.2.1)的数据包后,查找目标IP地址是1.1.1.1,于是查找FIB表,发现去往1.1.1.0网段的Tunnel ID非0,于是为数据包打上私网内层标签1028(R5将VPNv4路由传递给R6时下一跳变为R5,所以R5在传递VPNv4路由给R6时为该路由重新分配私网内层标签1028)

接着R6-PE2递归查询去往VPNv4路由下一跳R5(10.1.5.5)的标签是3(由R5通过LDP协议为自己环回口分配标签3给R6,因为对于R5来讲,10.1.5.5就是R5自身的环回口,那么R6就是倒数第二跳),由于R6是倒数第二跳且去往VPNv4路由下一跳10.1.5.5的出标签为3,那么就是不打外层标签,直接将打了私网标签1028的数据发给下一跳R5

R5收到带标签1028的数据包,并且发现1028这个标签就是自己为1.1.1.0/24路由分配的。于是查找BGP路由表发现1.1.1.0/24这条VPNv4路由下一跳时10.1.2.2

由于下一跳R2(10.1.2.2)并不是R5的直连邻居,于是R5递归查找去往下一跳10.1.2.2的LSP,但是R5查找LFIB表没有学习到去往10.1.2.2的外层标签信息,接着查找BGP路由表也没有去往关于10.1.2.2的标签,于是直接将私网标签1028替换成1026传递给了去往10.1.2.2的下一跳R4(10.1.4.4)

结果就是数据包在SiteB访问SiteA的数据包在R4被丢包,因为无法识别私网标签,原因是在R4上并没有参与MP-BGP。此时就会出现有路由但是不通的情况

所以问题就是需要建立R2和R5这两个RR的外层LSP隧道,也就是还得采用IPv4-BGP分配标签

第六步:

R3和R4、R4和R5互相使能IPv4-BGP通告标签的能力,通过这种方式将关于R2环回口的LSP隧道延伸到R5,使得R5能够为10.1.2.2分配外层标签

关于R2会为自己环回口10.1.2.2通过LDP协议分配标签给R3,R3收到后通过LDP协议也为R2的环回口分配了标签1024,由于R3是倒数第二跳,所以出标签为3

但是在R4上没有关于R2环回口的标签,因为缺省LDP协议不会为IPv4-BGP的路由分配标签

解决办法:

在R3上配置针对R2的环回口路由在传递给IPv4-BGP邻居R4时分配标签

首先在R3上通过路由策略匹配R2的环回口为其应用标签

注意:

放行其他的路由信息

接着将其调用在R3的BGP进程视图下,针对IPv4-EBGP邻居R4,同时R3和R4互相针对对方使能分配标签路由的能力

那么在R4上就可以学习到由R3为其分配的关于10.1.2.2这条IPv4路由的标签信息

但是对于R4来讲,缺省也不会为R5分配关于IPv4-BGP路由的标签,所以R4和R5也要互相使能分配标签路由的能力,且由R4通过路由策略将10.1.2.2分配标签并传递给R5

那么在R5上就能学习到关于10.1.2.2的标签信息,由R4将关于10.1.2.2的IPv4-BGP路由传递给R5时为其分配

那么到这一步为止,数据包已经单向打通了,SiteB访问SiteA的数据能够到达S1-CE1

延续上面实验五续:

此时R5有了去往R2的外层标签,当收到R6传递给其带有1037的私网标签数据包时,R5通过对照VPNv4-BGP标签路由表将私网标签替换为1026(R2将VPNv4路由传递给R5时下一跳变为了R2,由于下一跳改变,所以需要更换私网内层标签)

与此同时,R5去往1.1.1.0/24这条VPNv4路由的下一跳为R2(10.1.2.2),于是迭代查找去往10.1.2.2路由的外层标签为1026,(该标签由R4通过IPv4-BGP分配给R5),最后R5给数据包打上内层标签1026,外层标签1026后传递给R4

R4收到带标签的报文后查找LFIB表进行标签替换,将外层标签1026替换为1026(由R3通过IPv4-BGP为10.1.2.2分配外层标签后传递给R4)

R3收到带标签的报文后查找LFIB表,发现去往10.1.2.2的LSP出标签为Null空,于是剥离外层1026标签并重新查找LFIB表,发现去往10.1.2.2的LSP出标签为3(针对R2环回口LSP来讲,R3是倒数第二跳),于是弹出外层标签

所以R3传递给R2的数据包只有内层标签1026

R2收到数据包查找LFIB表进行标签替换,将内层标签1026替换为1026(R1将VPNv4路由通过MP-BGP传递给R2,并且VPNv4路由的下一跳变为了R1,所以内层标签也要改变)并传递给R1

R1收到后根据内层标签判断出该报文属于哪个VPN实例以及下一跳,并去掉私网内层标签,将报文(普通IP报文)转发给S1-CE1

当S1-CE1给S2-CE2回包时,纯IP报文到达R1-PE1,R1收到后根据目的地查找FIB表,发现Tunnel ID非0,于是打上对应的私网标签1033

接着通过递归查询LFIB表去往VPNv4路由下一跳10.1.2.2这条LSP的标签信息为3,由于对于R2(10.1.2.2)的环回口来讲,R1是倒数第二跳,于是弹出标签,R1将携带私网标签1033的数据包传递给了R2

R2收到数据包后查找LFIB表,将私网内层标签1033替换为1026(R5通过MP-BGP将VPNv4路由传递给R2时下一跳变为了R5)

接着查询VPNv4-BGP路由表发现去往2.2.2.1的下一跳为10.1.5.5,但是R2与R5(10.1.5.5)不是直连邻居,于是递归查找去往10.1.5.5 的LSP没有找到,于是进行IP转发,将携带私网标签1026的数据包交给了R3

数据包到达R3,R3查找LFIB表由于没有无法识别私网内层标签,于是数据包被丢包

问题原因:

在于R2没有形成去往VPNv4路由下一跳R5(10.1.5.5)的标签,导致R2无法完成对VPNv4路由下一跳R5外层标签的封装

第七步:

建立R2去往VPNv4路由下一跳R5的LSP

  • R3和R4也使能IPv4-BGP互相发送标签路由的能力,并由R4分配10.1.5.5的标签R3
  • 由于R4通过LDP协议学习到了关于R5环回口10.1.5.5的路由标签,所以需要开启R4主动朝着IPv4-BGP邻居R3分配10.1.5.5的标签的能力
  • R2和R3也使能IPv4-BGP互相发送标签路由的能力,并由R3分配10.1.5.5的标签R3
  • R3通过IPv4-BGP学习到由R4通告的关于10.1.5.5路由的标签,在R3上开启主动朝着IPv4-BGP邻居R2分配10.1.5.5的标签的能力
  • 那么就可以建立起来R2关于VPNv4路由下一跳10.1.5.5的LSP

继续延续实验五续的转发

  • 此时R2收到带有私网标签1036的数据包后查找VPNv4-BGP标签路由表,由于此时VPNv4的路由下一跳变为了R5(101.5.5),所以私网内层标签也要变为由R5通告VPNv4路由的标签1038
  • 接着通过递归查询IPv4-BGP标签路由表去往VPNv4路由下一跳10.1.5.5的标签信息,于是打上外层标签1027,并转发给下一跳R3
  • R3收到数据包后查找IPv4-BGP标签路由表,将外层标签1027替换成1028转发给下一跳R4
  • R4收到数据包后查找IPv4-BGP标签路由表,发现去往10.1.5.5路由的出标签为空,于是弹出外层标签1028
  • 接着递归查询LFIB表发现去往10.1.5.5的出标签为3(R5通过LDP协议为自己的环回口分配标签给R4),由于R4是倒数第二跳,于是弹出外层标签,将携带私网标签1038的数据包转发给了R5
  • R5收到带有内层标签1038的数据包后查找VPNv4-BGP标签转发表,由于此时在R5上看到去往VPNv4路由的下一跳为R6,于是将内层标签1038替换为1026(R6通过MP-BGP为VPNv4路由分配标签1026给R5)转发给R6
  • R6收到后根据内层标签判断出该报文属于哪个VPN实例以及下一跳,并去掉私网内层标签,将报文(普通IP报文)转发给S2-CE2
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-09,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 玉龙网络新知社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com