首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >BGP路由协议之路由反射器

BGP路由协议之路由反射器

作者头像
用户5921339
发布2025-06-19 13:56:52
发布2025-06-19 13:56:52
3590
举报

来自公众号:IT人家  

一、BGP路由反射反射器

        在 AS 内部,由于存在 IBGP 水平分割原则,使得 BGP Router 之间不得不两两建立 IBGP 连接,以求获得完整的 BGP 路由更新,然而这是个扩展性非常低的做法,同时也给网络设备带来了负担,解决 IBGP 扩展性问题的两种有效的办法分别是联邦和路由反射器。

        相比于联邦,路由反射器的优势在于,路由反射器只需要 RR(路由反射器) 理解反射器机制,而联邦中所有路由器都需要支持并理解联邦机制,另外路由反射器的实现机制也相对简单一些。当然如果希望用各种 EBGP 机制来管理大规模 AS,那么联邦将是一个更优的解决方案。思考路由反射器时,将簇当作一个谡辑的整体去考虑即可 ,RR 和 client共同构成反射簇,但是只有 RR 知道(配置只是在 RR 上完成 )注意 RR 只通告或反射它所知道的最佳路径。

        为了维护一致的 BGP 拓扑,RR 在反射路由的时候不修改某些 BGP 路径属性,这些属性包括NHAS_PATHLOCAL_PREFMED,并且增加了ORIGINATORCLUSTER_LIST用于防环。

(1)如果路由学习自非客户端的 IBGP 对等体,则反射给所有客户端及 EBGP 邻居

(2)如果路由学习自客户端,则反射给所有非客户端的 IBGP 邻居和除了该客户端以外的所有客户端

(3)如果路由学习自 EBGP 邻居,则反射给所有客户端和非客户端的 IBGP 邻居

二、实验环境

图片
图片

BGP邻居关系如下:

(1) R1与R2、R4与R5建立EBGP邻居关系;

(2) R2与R3、R3与R4建立IBP邻居关系,R2、R3、R4使用loopback0作为更新源;

(3) R1使用network将lo0地址1.1.1.1/32注入BGP,R5使用network将lo0地址5.5.5.5/32注入BGP;

(4) 将R3配置为RR,R2为R3的client,如此一来,R3作为RR将学习自client R2的路由反射给R4,也会将学习自IBGP邻居R4的路由反射给client R2

R3的BGP配置如下

代码语言:javascript
复制
router bgp 234
 bgp router-id 3.3.3.3
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 2.2.2.2 remote-as 234
 neighbor 2.2.2.2 update-source Loopback0
 neighbor 4.4.4.4 remote-as 234
 neighbor 4.4.4.4 update-source Loopback0
 !
 address-family ipv4
  neighbor 2.2.2.2 activate
  neighbor 2.2.2.2 route-reflector-client
  neighbor 4.4.4.4 activate
exit-address-family
!

验证结果

  • 在R4上查看1.1.1.1/32这条BGP路由
图片
图片
  • 在R4的e0/1口抓包
图片
图片
  • 在R5上trace到1.1.1.1的路由
图片
图片

三、关于路由反射簇

  • 路由反射簇包括反射器及其 Client
  • 每一个簇都有唯一的簇 ID
  • 每当一条路由被反射器反射后,该反射器(该簇)的 Cluster ID 就会被添加至路由的 CLUSTER LIST 属性中
  • 每当反射器收到一条 CLUSTER LIST 属性已经包含该簇的 Cluster ID 的路由时,该路由基于防环的目的将不被反射

        引入 Cluster 是要在 RR 的环境中提供冗余性。在传统的分簇设计中,多个 RR 用来为一个或多个Client服务,这些 RR 都配置相同的 Cluster ID,这个ID 是4 字节的IP 形式的标示符,默认情况下就是 RR 自己的 BGP ROUTER ID,如果两台 RR 拥有相同的 CLUSTER ID,那么他们就属于同一个簇。CLUSTER ID的另一个非常重要的作用是防环,当一台 RR 收到的 BGP 路由更新中携带了与自己 ROUTER ID 相同的Cluster ID,那么就该 RR 将忽略这条路由更新。

        由于 AS_PATH 属性在 AS 内部不会发生变化(仅当路由离开本 AS 才会被更新 ), 因此 AS 内防环才有水平分割的机制,而路由反射器实际上是放宽了水平分割原则,这个就会给环路带来一定的隐患,因此路由反射器需使用以下两个属性防止环路: ORIGINATOR ID 和 Cluster LIST 是路由反射器使用的可选非传递属性,用来防止环路。

  • 可修改 RR 的cluster-id
代码语言:javascript
复制
router bgp 234
bgp cluster-id 33.33.33.33
  • 修改完后,在R4上查看1.1.1.1/32这条BGP路由,Cluster list已经变为33.33.33.33
图片
图片
  • 其他配置命令:
代码语言:javascript
复制
bgp client-to-client reflection

在配置反射器时,client 到 client 间的反射是默认开启的,但如果客户间是全互联的,此命令加 no,则关闭客户间的反射

· · · · · END · · · · ·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT人家 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、BGP路由反射反射器
  • 二、实验环境
  • 验证结果
  • 三、关于路由反射簇
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档