首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >我愿意成为你BGP的邻居,为你传递每一条路径,直到永远。基于华为ENSP的BGP的路由聚合深入浅出[新星杯]

我愿意成为你BGP的邻居,为你传递每一条路径,直到永远。基于华为ENSP的BGP的路由聚合深入浅出[新星杯]

作者头像
盛透侧视攻城狮
发布2025-02-02 21:44:42
发布2025-02-02 21:44:42
4410
举报

本篇技术博文摘要 🌟

  • 路由聚合配置命令:介绍了BGP聚合路由的两种方式——自动聚合和手工聚合。自动聚合简化了配置过程,而手工聚合则允许更精细的控制。
  • 过滤和发送特定路由:通过suppress-policy参数,用户可以选择仅发送某些特定的路由(例如172.16.1.0/24),而屏蔽其他不必要的路由。这有助于优化路由表并减少网络流量。
  • AS-Path和AS-Set属性的使用:介绍了AS-Path属性在BGP中的重要作用,特别是在路由汇总时,如何利用AS-SetAS-Path属性来管理和影响路由的选择和传递。
  • 策略配置与流量分析:通过对流量的抓取和策略的配置,用户可以根据需求调整路由的行为,优化路由表中的聚合效果。
  • BGP路由信息的查看与调整:强调了如何通过查看BGP路由信息来诊断和调整路由配置,确保路由汇总能够有效地减少网络中的路由数量,同时保留必要的路由信息。
  • 高级属性配置:通过origin-policyAggregatorAtomic-aggregate等高级属性,用户可以更灵活地控制路由的汇总和传播过程。

引言 📘

  • 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。
  • 我是肾透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员,希望能够与各位在此共同成长。

1.华为ensp——BGP基础配置

image-20240512140434110
image-20240512140434110

使用直连接口IP地址来建立EBGP对等体关系

1、启动BGP协议
代码语言:javascript
复制
[r1]bgp 100   ----启动BGP协议,并且规定其AS号​
2、配置设备的RID数值

  • 一般选择设备的loopback接口的IP地址
代码语言:javascript
复制
[r1-bgp]router-id 1.1.1.1
3、配置BGP对等体信息

  • 含对等体的IP地址以及对等体所在的AS号
代码语言:javascript
复制
[r1-bgp]peer 12.0.0.2 as-number 200   
image-20240512140434110
image-20240512140434110

使用环回接口建立非直连的IBGP对等体关系

1、启动BGP协议
代码语言:javascript
复制
[r2]bgp 200
2、配置设备的RID数值
代码语言:javascript
复制
[r2-bgp]router-id 2.2.2.2​
3、配置BGP对等体信息
代码语言:javascript
复制
[r2-bgp]peer 3.3.3.3 as-number 200
4、修改对等体双方数据包中的源IP

  • 使用环回接口建立EBGP对等体关系
代码语言:javascript
复制
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
image-20240512140434110
image-20240512140434110
注意:

  • 一般在EBGP对等体设备间,会使用多条链路进行连接,起到备份的作用,故可以使用环回接口来建立。
  • 那么此时会产生TCP会话会正常建立,转而建立BGP会话的问题?
  • 但是,对设备而言,此时的对端IP检查会发现是通过静态路由或IGP路由才可实现网络可达。
  • 所以也就意味着此时需要通过多跳才能到达目的地,而数据包中的TTL=1,发现错误,故两端均会发送notification报文进行告警,并断开BGP和TCP会话
修改对等体双方的TTL数值
代码语言:javascript
复制
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2   ---修改TTL=2,如果不加参数,则修改为255
image-20240512140434110
image-20240512140434110
使用display bgp peer 命令查看BGP邻居表
补充一下信息字段

Peer

V

AS

MsgRcvd

MsgSent

Out

up/down

state

prefRcv

对等体IP地址

版本号

对等体所在AS号

已经收到的数据包数量

发送的数据包数量

出站队列

BGP协议的启动时间

状态机

表示收到的路由信息数量

image-20240512141629049
image-20240512141629049

  • 手工建立邻居关系时,所指定的建邻的IP地址必须和收到的数据包中的源IP地址相同才可以正常建立邻居关系。否则,邻居关系将建立失败
  • 所以得修改发送方数据包中的源IP地址

2.BGP的路由聚合

自动聚合

只能针对重发布的路由信息生效且不常用

华为设备默认关闭自动汇总功能

代码语言:javascript
复制
[r1-bgp]summary automatic   ----开启自动聚合功能
R3配置命令
代码语言:javascript
复制
ip route static 10.0.45.0 255.255.255.128 mull0
ip route-static 10.0.45.128 255.255.255.128null0
bgp 200
summary automatic
import-route static

  • R3上配置两条静态路由,将静态路由通过import-route注入到BGP,并开启自动聚合,BGP将按照自然网段聚合路由
  • 例如非自然网段A类地址10.1.1.1/24和10.2.1.1/24将聚合为自然网段A类地址10.0.0.0/8 ,并且BGP只向对等体通告聚合后的路由.
  • 在R3上将会看到路由被聚合为10.0.0.0/8.
  • R5上又注入了路由 10.0.0.0/8,并通告给了R3.

自动汇总

  • 自动汇总仅支持将子网路由汇总到主类,而主类之间的路由信息无法进行汇总
  • 通过自动汇总功能,发布的聚合路由信息,该路由的下一跳在始发路由器显示为127.0.0.1。
  • 主类之间的路由信息无法进行汇总: 是因为自动聚合是进行主类网段的聚合方式,会造成大范围的路由黑洞,为了防止因为路由黑洞所产生的环路问题,所以,BGP设备会自动产生一条指向Null接口的汇总路由信息,进行防环,该路由信息的来源为IBGP
手工聚合

关键字

参数

缺陷

优势

aggregate

/

无法抑制明细路由,导致聚合操作并没有减少路由条目数量,反而增加; 汇总路由丢失了明细路由的路径属性,可能会造成一些环路隐患。

可以灵活指定汇总路由的目的网络掩码长度,且不受网络地址类型的限制。 可以在非直连设备上进行汇总,前提条件是非直连设备上的明细路由可用且优。

detail-suppressed

在某些情况下,可能还需要部分明细路由进行传输,而该命令会抑制所有明细路由

可以抑制所有明细路由信息

suppress-policy

抓取流量时需要选择permit操作,因为抑制策略是取反操作。

可以灵活性的选择明细路由的发送。

as-set

仅继承AS-Path属性

可以继承路径属性

attribute-policy

可以添加其他路径属性内容

配置示例
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r3-bgp]aggregate 172.16.0.0 20  ---手工聚合
配置该命令后,设备之间的路由交互过程剖析如下

  • 1、检测本地BGP路由表中是否有聚合路由的可用子网路由信息。
  • 2、若有则在本地BGP路由表中发布一条指向空接口的防环路由信息。若无,则该命令无效。
  • 3、将这条汇总路由发布到BGP当中。
image-20240514191329645
image-20240514191329645

  • BGP的手工聚合可以在非直连设备上进行,只要本地BGP路由表中存在这些明细路由信息,且明细路由信息可用且优,就可以进行路由聚合操作
例如:
代码语言:javascript
复制
[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed   ---在发布汇总路由的前提下,抑制所有明细路由
需求:只发送聚合路由和172.16.1.0/24路由,其他路由信息被抑制。
补充suppress-policy参数

suppress-policy参数意味“抑制策略”,因为该参数所指定的route-policy中,被允许的路由信息会被抑制

代码语言:javascript
复制
[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed as-set  
代码语言:javascript
复制
as-set --->该参数会让聚合路由继承明细路由的AS-path属性
1、抓流量
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r1]ip ip-prefix aa deny 172.16.1.0 24
[r1]ip ip-prefix aa permit 172.16.0.0 20 greater-equal 24 less-equal 24
2、做策略
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa 
3、调用
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r1-bgp]aggregate 172.16.0.0 20 suppress-policy aa
as-set属性详解

  • 会继承所有明细路由信息的AS-Path属性值。
  • 如果设备的明细路由来源比较杂乱,那么会将所有的明细路由属性均继承到聚合路由中。
  • 但是这样会导致聚合路由的AS_Path属性过程,不利于进行路由优选。故聚合路由在继承多个明细路由属性时,会将多个属性使用{}括起来
AS_Path属性有两个用途

  1. 用于EBGP之间防环
  2. 用于路由优选规则,其中该属性包含的内容越少,这条路由越优
  3. 在聚合路由中,如果用于防环,则每一个数值都会读取。而如果用于选路,则会将{}中的内容当做是一个整体来看待
基于AS_Path属性在华为ensp上配置示例:
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r1-route-policy]apply local-preference 10
[r1-route-policy]apply cost 200
[r1-route-policy]apply preferred-value 20
[r1-route-policy]apply as-path 1 2 3 additive 
​[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed attribute-policy bb
需求:在某些场景中,我们可能希望汇总路由的产生,只以某条或某些特定的明细路由作为触发条件。
image-20240514191329645
image-20240514191329645
例如:

  • 只有172.16.1.0/24路由在本地可用且优时,才会通告汇总路由信息。
origin-policy参数补充

  • origin-policy参数是设定某种明细路由与汇总路由的强关联性
  • 在缺省情况下,所有的明细路由与聚合路由都是强关联的。
  • 而设定后,在去添加某些参数效果时,也只会对强关联的明细路由产生影响,而其他明细路由不关注
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
[r1]ip ip-prefix cc permit 172.16.1.0 24

[r1]route-policy cc permit node 10
[r1-route-policy]if-match ip-prefix cc

[r1-bgp]aggregate 172.16.0.0 20 origin-policy cc  ----将172.16.1.0/24与172.16.0.0/20进行强关联。

  • BGP的汇总路由在产生时,默认情况下会存在属性丢失的问题,所以BGP在设计时,专门为聚合路由添加了两个独立的路径属性。用来警示路由环路的问题。
查看BGP路由信息详情
image-20240514191329645
image-20240514191329645
代码语言:javascript
复制
dis bgp routing-table 172.16.0.0 20
BGP路由字段信息补充:
Aggregator属性----聚合者

  • 携带汇总路由的始发路由器所在的AS号以及RID
  • 功能:用于标记聚合行为发生的位置
Atomic-aggregate

  • 预警属性,不携带任何信息
  • 只有这条路由信息的所有强关联的明细路由均被抑制时,才会携带
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇技术博文摘要 🌟
  • 引言 📘
  • 1.华为ensp——BGP基础配置
    • 使用直连接口IP地址来建立EBGP对等体关系
      • 1、启动BGP协议
      • 2、配置设备的RID数值
      • 3、配置BGP对等体信息
    • 使用环回接口建立非直连的IBGP对等体关系
      • 1、启动BGP协议
      • 2、配置设备的RID数值
      • 3、配置BGP对等体信息
      • 4、修改对等体双方数据包中的源IP
      • 修改对等体双方的TTL数值
      • 使用display bgp peer 命令查看BGP邻居表
  • 2.BGP的路由聚合
    • 自动聚合
    • 自动汇总
      • 手工聚合
      • 配置示例
      • 需求:只发送聚合路由和172.16.1.0/24路由,其他路由信息被抑制。
      • as-set属性详解
      • AS_Path属性有两个用途
      • 基于AS_Path属性在华为ensp上配置示例:
      • 需求:在某些场景中,我们可能希望汇总路由的产生,只以某条或某些特定的明细路由作为触发条件。
      • 查看BGP路由信息详情
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档