6.4.4 反射器场景-OptionC1方案

2024-03-16 10:52

本文主要是介绍6.4.4 反射器场景-OptionC1方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OptionC1方案——反射器场景

场景A-旁挂RR场景

一、配置思路

1、首先跟OptionC1一样,先解决PE之间路由学习需求:

  • 但网络中新增了RR反射器,所有流量都需要先经过RR反射器。
  • 故需要PE、ASBR与RR先建立IBGP邻居,然后ASBR之间建立EBGP发布各自RR环回口地址
  • 为啥发布的是RR的环回口?
    • 因为主要是通过RR之间建立MP-BGP来交互VPNv4路由,非RR场景下则是通过PE。

2、解决路由黑洞:

  • 网络中已经配置了MPLS+LDP协议,与OptionC1一样需要在ASBR上向对端ASBR手动分配标签。
  • ASBR只与RR建立了IBGP邻居,故ASBR只能向RR手动分配标签。(在非RR场景中是向PE分配标签)

3、解决VPNv4路由学习:

  • 非RR场景中PE之间建立MP-BGP,但在RR场景中就是RR之间互相建立MP-BGP
  • 以及PE与RR之间也要建立MP-BGP,才能够通过RR学习到对端PE的VPNv4路由。

4、总结大致操作

  • ASBR之间建立EBGP,发布各自RR环回口。
  • ASBR、PE与RR建立IBGP。
  • ASBR向RR以及对端ASBR分配标签。
  • PE与RR、RR与对端RR建立MP-BGP。

在这里插入图片描述

二、配置过程

  • 目前拓扑中已配置了:
    • IGP使用OSPF并发布各自设备的环回口地址。
    • PE、P、ASBR、RR之间配置了MPLS+LDP实现标签分配与同步。
    • CE与PE的VPN实例建立了EBGP邻居。
    • P设备不做BGP配置。
1、ASBR之间建立EBGP,发布各自RR环回口:
[ASBR1]bgp 100
[ASBR1-bgp]peer 10.1.12.2 as 200
[ASBR1-bgp]network 4.4.4.4 255.255.255.255 [ASBR2]bgp 200
[ASBR2-bgp]peer 10.1.12.1 as 100
[ASBR2-bgp]network 44.44.44.44 255.255.255.255 

查看EBGP邻居是否建立成功

[ASBR1-bgp]dis bgp peer BGP local router ID : 10.1.111.10Local AS number : 100Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv10.1.12.2       4         200        3        4     0 00:00:17 Established      1[ASBR2-bgp]dis bgp peer BGP local router ID : 10.1.211.10Local AS number : 200Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv10.1.12.1       4         100        3        3     0 00:00:40 Established      1
2、ASBR、PE与RR建立IBGP:

为了减少篇幅,只以AS100内设备配置为例:

  • ASBR1与RR1建立IBGP
[ASBR1]bgp 100
[ASBR1-bgp]peer 4.4.4.4 as 100
[ASBR1-bgp]peer 4.4.4.4 con loop 0
  • PE1与RR1建立IBGP
[PE1]bgp 100
[PE1-bgp]peer 4.4.4.4 as 100
[PE1-bgp]peer 4.4.4.4 con loop0
  • RR1与ASBR1、PE1建立IBGP并配置成反射器客户端
[RR1]bgp 100
[RR1-bgp]peer 1.1.1.1 as 100
[RR1-bgp]peer 1.1.1.1 con loop0
[RR1-bgp]peer 3.3.3.3 as 100
[RR1-bgp]peer 3.3.3.3 con loop0
[RR1-bgp]peer 1.1.1.1 reflect-client 
[RR1-bgp]peer 3.3.3.3 reflect-client 

检查AS100的配置结果,于RR上查看是否成功建立IBGP:

<RR1>dis bgp peerBGP local router ID : 10.1.111.13Local AS number : 100Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv1.1.1.1         4         100        2        3     0 00:00:11 Established       03.3.3.3         4         100        4        3     0 00:00:02 Established       2
<RR2>dis bgp peer BGP local router ID : 44.44.44.44Local AS number : 200Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv11.11.11.11     4         200        3        4     0 00:01:07 Established      033.33.33.33     4         200        5        4     0 00:01:07 Established      2
3、ASBR向RR以及对端ASBR分配标签:

为了减少篇幅,只以AS100内设备配置为例:

  • ASBR向对端ASBR直接分配标签
  • ASBR只向RR传递带标签的路由重新分配标签(相当于只对ASBR2传递来的RR环回口路由打上标签)
[ASBR1]route-policy change_mpls permit node 5 
[ASBR1-route-policy] if-match mpls-label 
[ASBR1-route-policy] apply mpls-label[ASBR1-route-policy]route-policy mpls permit node 5 
[ASBR1-route-policy] apply mpls-label[ASBR1]bgp 100
[ASBR1-bgp]peer 10.1.12.2 route-policy mpls export
[ASBR1-bgp]peer 10.1.12.2 label-route-capability
[ASBR1-bgp]peer 4.4.4.4 route-policy change_mpls export 
[ASBR1-bgp]peer 4.4.4.4 label-route-capability 
  • RR与PE设备上只需要使能发送标签路由能力即可
[RR1]bgp 100
[RR1-bgp]peer 1.1.1.1 label-route-capability
[RR1-bgp]peer 3.3.3.3 label-route-capability[RR1]bgp 100
[RR1-bgp]peer 4.4.4.4 label-route-capability

配置完成之后,在RR设备上检查是否收到对端RR的MPLS标签信息,以及是否能够正常访问:

<PE1>dis mpls lsp
-------------------------------------------------------------------------------LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
44.44.44.44/32     NULL/1028     -/-     [PE1-bgp]ping -a 4.4.4.4 44.44.44.44PING 44.44.44.44: 56  data bytes, press CTRL_C to breakReply from 44.44.44.44: bytes=56 Sequence=1 ttl=251 time=100 msReply from 44.44.44.44: bytes=56 Sequence=2 ttl=251 time=40 msReply from 44.44.44.44: bytes=56 Sequence=3 ttl=251 time=40 msReply from 44.44.44.44: bytes=56 Sequence=4 ttl=251 time=60 ms
4、PE与RR、RR与对端RR建立MP-BGP:

为了减少篇幅,只以AS100内设备配置为例:

  • PE与RR建立MP-BGP
[PE1]bgp 100
[PE1-bgp]ipv4 vpnv4
[PE1-bgp-af-vpnv4] peer 4.4.4.4 enable
  • RR与对端RR建立MP-BGP,以及向PE建立MP-BGP。

undo policy vpn-target ,由于RR上并没有创建VPN实例,故需要关闭该过滤功能

[RR1]bgp 100
[RR1-bgp]peer 44.44.44.44 as 200
[RR1-bgp]peer 44.44.44.44 con lo 0
[RR1-bgp]peer 44.44.44.44 eb	
[RR1-bgp]peer 44.44.44.44 ebgp-max-hop 10[RR1-bgp]ipv4 vpnv4
[RR1-bgp-af-vpnv4]undo policy vpn-target 
[RR1-bgp-af-vpnv4]peer 44.44.44.44 enable
[RR1-bgp-af-vpnv4]peer 1.1.1.1 enable

于RR1上检查MP-BGP建立情况:

[RR1-bgp]display bgp vpnv4 all peer BGP local router ID : 10.1.111.13Local AS number : 100Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv1.1.1.1         4         100       19       21     0 00:15:56 Established      144.44.44.44     4         200        3        5     0 00:00:34 Established      0
5、完成所有配置

检查CE设备上是否学习到对端CE的测试路由,以及是否能够互通:

<CE1>display bgp routing-tableBGP Local router ID is 10.1.111.1 Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   192.168.10.0       0.0.0.0         0                     0      i*>   192.168.20.0       10.1.111.2                            0      100 200 20i<CE1>ping -a 192.168.10.254 192.168.20.254PING 192.168.20.254: 56  data bytes, press CTRL_C to breakReply from 192.168.20.254: bytes=56 Sequence=1 ttl=245 time=270 msReply from 192.168.20.254: bytes=56 Sequence=2 ttl=245 time=100 msReply from 192.168.20.254: bytes=56 Sequence=3 ttl=245 time=80 ms

三、扩展

1、并于CE1与CE2之间互访时,数据包的变化情况简述:

  • CE1访问CE2的报文到达PE1的实例路由表,得知需要访问CE2,故封装上私网标签1028:
<PE1>dis bgp vpnv4 all routing-table label Network           NextHop           In/Out Label
*>i    192.168.20.0      4.4.4.4           NULL/1028
  • 同时PE1得知下一跳为4.4.4.4(RR1反射器),故查找FIB转发表:
<PE1>dis fib
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
4.4.4.4/32         10.1.111.6      DGHU  t[381]        GE0/0/1        0x5
  • 从FIB表发现TunnelID非0x0,故查找标签转发表,得知需要封装上公网标签1026并从G0/0/1口发出。
<PE1>dis mpls lsp
FEC                In/Out Label  In/Out IF  
4.4.4.4/32         NULL/1026     -/GE0/0/1
  • 报文封装情况:【公网标签1026】【私网标签1028】【数据】
  • 报文达到P1,P1进行标签转发,将公网标签1026替换3成之后从G0/0/2口发出。
<P1>dis mpls lsp
FEC                In/Out Label  In/Out IF 
4.4.4.4/32         1026/3        -/GE0/0/2
  • 报文封装情况:【公网标签3(弹出)】【私网标签1028】【数据】

  • 报文达到RR1,查看路由表得知下一跳

<RR1>dis bgp vpnv4 all routing-table Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   192.168.20.0       44.44.44.44                           0      200 20i
  • 查看FIB表要继续打上标签(中间层标签1030)
  • 报文封装情况:【中间层标签1030】【私网标签1028】【数据】
<RR1>dis fib
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
44.44.44.44/32     10.1.111.14     DGHU  t[2173]       GE0/0/0        0x5<RR1>dis mpls lsp
-------------------------------------------------------------------------------LSP Information: BGP  LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name 
44.44.44.44/32     NULL/1030     -/-   
  • 继续迭代查询,得知去往44.44.44.44的下一跳为3.3.3.3(ASBR1),即需要继续封装公网标签1024
  • 报文封装情况:【公网标签1024】【中间层标签1030】【私网标签1028】【数据】
<RR1>dis tunnel-info tunnel-id 0x5
Tunnel ID:                    0x5
Tunnel Token:                 5
Type:                         lsp
Destination:                  3.3.3.3<RR1>dis mpls lsp
-------------------------------------------------------------------------------LSP Information: LDP LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name
3.3.3.3/32         NULL/1024     -/GE0/0/0
  • 后继部分的标签操作,亦是如此查找,替换。

在这里插入图片描述

这篇关于6.4.4 反射器场景-OptionC1方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815249

相关文章

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

Python Flask 库及应用场景

《PythonFlask库及应用场景》Flask是Python生态中​轻量级且高度灵活的Web开发框架,基于WerkzeugWSGI工具库和Jinja2模板引擎构建,下面给大家介绍PythonFl... 目录一、Flask 库简介二、核心组件与架构三、常用函数与核心操作 ​1. 基础应用搭建​2. 路由与参

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

Python解决雅努斯问题实例方案详解

《Python解决雅努斯问题实例方案详解》:本文主要介绍Python解决雅努斯问题实例方案,雅努斯问题是指AI生成的3D对象在不同视角下出现不一致性的问题,即从不同角度看物体时,物体的形状会出现不... 目录一、雅努斯简介二、雅努斯问题三、示例代码四、解决方案五、完整解决方案一、雅努斯简介雅努斯(Janu

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与