首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一文吃透 BGP 三大核心:路径属性|路由反射器|路由优选

一文吃透 BGP 三大核心:路径属性|路由反射器|路由优选

作者头像
ICT系统集成阿祥
发布2026-06-08 13:44:03
发布2026-06-08 13:44:03
00
举报
文章被收录于专栏:数通数通

BGP 作为互联网骨干域核心路由协议,路径属性管控路由传递、RR 解决 IBGP 全互联痛点、选路规则决定流量走向,三者是日常组网、故障排查、路由引流的重中之重。本文结合华为设备实操,通俗拆解知识点,告别死记硬背。

一、BGP 八大主流路径属性:分类 + 作用 + 修改方式

BGP 路径属性按规范分为公认必遵、公认任意、可选过渡、可选非过渡四大类,是 BGP 控制路由传递、选路的核心抓手。

1. 属性分类速览

2. 核心属性详解(实战高频)

✅ Next_Hop(公认必遵,下一跳)

默认规则

  • EBGP 邻居:发送路由时下一跳改为本地互联接口 IP;
  • IBGP 传递 EBGP 路由:默认下一跳保持原值不变,需peer x.x.x.x next-hop-local修改为自身地址;
  • 本地 Network 引入路由,发给任意邻居,下一跳为建邻源 IP。
  • 路由下一跳 IGP 不可达,路由无效。

配置示例(修改指定路由下一跳)

代码语言:javascript
复制
ip ip-prefix 1 index 10 permit 1.1.1.1 32
route-policy hop permit node 10
 if-match ip-prefix 1
 apply ip-address next-hop 4.4.4.4
route-policy hop permit node 20
bgp 123
 peer 10.1.45.5 as-number 5
 peer 10.1.45.5 enable
 peer 10.1.45.5 route-policy hop export  //出方向改下一跳
 peer 2.2.2.2 as-number 123
 peer 2.2.2.2 connect LoopBack0
 peer 2.2.2.2 next-hop-local //IBGP统一下一跳
✅ AS_Path(公认必遵,AS 路径)
  • 两大核心作用
  • EBGP 防环:收到路由 AS 列表含自身 AS 号,直接拒收;IBGP 间转发不追加 AS 号;
  • 路由优选:同等条件下,AS 列表越短路由越优。
  • 两种格式:
  • AS_SEQUENCE:有序 AS 列表(默认);
  • AS_SET:聚合路由专用{AS1,AS2},选路只算 1 个 AS 长度

三种修改配置示例

代码语言:javascript
复制
route-policy aspath permit node 10
 apply as-path 100 200 additive  //左侧追加
route-policy aspath permit node 20
 apply as-path 300 overwrite     //全覆盖
route-policy aspath permit node 30
 apply as-path none overwrite    //清空
bgp 1
 peer 10.1.12.2 as-number 123
 peer 10.1.12.2 route-policy as export

✅ Origin(公认必遵,起源属性)

该属性为公认必遵属性,它标识了BGP路由的起源。

  • i(IGP):network 宣告路由(最优);
  • e(EGP):老旧 EGP 协议引入(次优);
  • ?(Incomplete):import-route 重分布引入(最差);
  • 选路优先级:i>e>?。

配置:network 自动 i,import 默认?,无法直接改 Origin,只能改引入方式。

✅ Local_Preference(公认任意,本地优先级)

  • 默认 100,数值越大越优,仅 IBGP 间传递、EBGP 不带该属性;
  • EBGP 入向可通过 route-policy 修改,IBGP 进出方向均可修改;
  • 全局默认:bgp default local-preference xx,route-policy 优先级高于全局默认配置;
  • EBGP 只能 import 方向改,IBGP 进出双向均可修改。

用途:AS 内多出口场景,指定优选出口设备。

配置示例

代码语言:javascript
复制
ip ip-prefix lp index 10 permit 10.0.45.0 24
route-policy lp permit node 10
 if-match ip-prefix 10
 apply local-preference 200
route-policy lp permit node 20
//方式1:单邻居策略修改
bgp 200
 peer 10.0.1.1 as-number 300
 peer 10.0.1.1 route-policy lp export
//方式2:全局默认值
bgp 200
 default local-preference 150

✅ Preferred-Value(华为私有,协议首选值)

  • 默认 0,仅本地路由器生效,不传给任何 BGP 邻居,越大越优
  • 只能在peer import方向配置,单设备精准选路,不影响全网其他路由器。

配置示例

代码语言:javascript
复制
bgp 1
 peer 21.1.1.1 as-number 2
 peer 21.1.1.1 preferred-value 100 //全局配置该邻居所有路由权重
//精准匹配修改
ip ip-prefix pre index10 permit 45.1.1.0 24
route-policy pre permit node 10
 if-match ip-prefix 10
 apply preferred-value 200
bgp 1
 peer 23.1.1.3 route-policy pre import  //只能入方向

✅ MED(可选非过渡,多出口度量)

  • 默认 0,数值越小越优,用于引导其他 AS 优选入站链路
  • MED属性在IBGP和EBGP邻居(包括成员EBGP)in和out方向都可以修改。
  • 默认仅对比同源 AS 路由,跨 AS 比较开启:compare-different-as-med(整 AS 设备统一配置)。
  • 传递规则
  1. 本地始发的路由MED值传递给所有邻居。
  2. 从EBGP邻居得到的路由的MED不会传递给EBGP邻居,影响邻居AS的选路。
  3. 从EBGP邻居得到的路由的MED可以传递给IBGP邻居。
  4. 从IBGP邻居得到的路由传递给EBGP邻居不携带MED。
  5. 从联盟EBGP邻居或联盟内始发的的路由的MED值在整个联盟保持传递。

配置示例

代码语言:javascript
复制
ip ip-prefix med index 10 permit 10.0.23.0 24
route-policy med permit node 10
 if-match ip-prefix 10
 apply cost 10
route-policy med permit node 20
bgp 200
 default med 100 //重分布路由默认MED
 peer 10.0.1.1 route-policy med export
 compare-different-as-med //跨AS对比MED,整AS统一配置

✅ Community(可选过渡,团体属性)

  • 标准格式 AA:NN(AS 号:自定义编号) Community属性值长度为32bit,也就是4Byte。可使用两种形式呈现: 十进制整数格式。 AA:NN格式,其中AA表示AS号,NN是自定义的编号。
  • 4 种公认团体 Internet:默认所有路由,可发给全部邻居; No_Advertise:收到路由不发给任何对等体; No_Export:不传出本 AS; No_Export_Subconfed:不传出 AS + 联盟子 AS;
  • 实战价值:批量标记路由,不用逐条匹配前缀做策略,简化路由策略的执行。

配置出方向 export 给 EBGP 邻居打自定义团体(AS123:100)

代码语言:javascript
复制
#自定义格式:AS号:自定义编号 123:100
ip ip-prefix com2 index10 permit 5.5.5.5 32
route-policy com-custom node 10
 if-match ip-prefix com2
 apply community 123:100 additive #additive追加多个团体标签
route-policy com-custom node 20
bgp123
 peer 10.1.45.5 route-policy com-custom export
 peer 10.1.45.5 advertise-community #必开,否则不带community

✅ Atomic_Aggregate+Aggregator(聚合专属)

  • Atomic_Aggregate:公认任意,提示下游路由为聚合路由,丢失明细属性;
  • Aggregator:可选过渡,标记聚合 AS + 聚合设备 Router-ID,用于路由溯源。

配置示例

代码语言:javascript
复制
bgp 300
 aggregate 10.0.0.0 16 detail-suppressed as-set //as-set汇总防环

3. 华为修改属性 4 种方法

  1. network/import 绑定 route-policy:修改本地始发路由;
  2. peer import:修改入方向接收路由;
  3. peer export:修改出方向发送路由;
  4. aggregate attribute-policy:修改手动聚合路由属性。

二、路由反射器 RR:告别 IBGP 全互联

1. 诞生背景

默认 IBGP 水平分割:从 IBGP 邻居学到的路由不能再发给其他 IBGP,传统组网需要IBGP 全互联,设备越多邻居量爆炸,RR(路由反射器)完美解决。

2. RR 三种角色

  • RR 反射器:配置peer xx reflect-client,负责转发路由;
  • Client 客户端:RR 指定的反射邻居,无需任何额外配置;
  • Non-Client 非客户端:未配置 client 的 IBGP 邻居,RR、非客户端之间仍需全互联。

3. RR 路由反射三大原则

  • 从Client 收到路由→反射给所有其他 Client + 全部 Non-Client;
  • 从Non-Client 收到路由→仅反射给所有 Client;
  • 从EBGP 收到路由→反射所有 Client+Non-Client。

4. RR 防环双属性(可选过渡)

Originator-ID(起源 ID)

  • 路由首次被反射时添加:始发路由的路由器 Router-ID;
  • 收路由时若 Originator-ID = 自身 RID,直接丢弃防环。

Cluster-List(簇列表)

  • 一个RR + 所有 Client=1个 Cluster,默认 Cluster-ID=RR 的 Router-ID;
  • 路由每经过一个 RR,把本簇 ID 加入 Cluster-List;收到路由列表含本簇 ID,拒收防环;
  • 同集群多备份 RR:reflector cluster-id x.x.x.x统一簇 ID,实现冗余。

配置示例

代码语言:javascript
复制
//RR设备配置
bgp 1
 peer 2.2.2.2 as-number 1
 peer 2.2.2.2 connect LoopBack0
 peer 2.2.2.2 enable
 peer 2.2.2.2 reflect-client //指定为客户端
 peer 3.3.3.3 as-number 1
 peer 3.3.3.3 connect LoopBack0
 peer 3.3.3.3 reflect-client
 reflector cluster-id 10.0.0.1 //多备份RR统一簇ID
 peer 10.1.45.5 as-number 5 //EBGP邻居
//Client无需额外reflect配置
bgp1
peer 1.1.1.1 as-number1
peer 1.1.1.1 connect LoopBack0

三、BGP 路由优选 11 条规则(优先级从高→低)

优选前提:先剔除下一跳 IGP 不可达的路由,再依次匹配下述规则

  1. ✅ Preferred-Value(华为私有):数值越大越优(本地有效)
  2. ✅ Local_Preference:本地优先级越大越优(AS 内全局生效)
  3. ✅ 本地始发路由优先:手动聚合>自动聚合>Network 引入>Import 引入>从邻居学习
  4. ✅ AS_Path:AS 列表长度越短越优(SET 集合只算 1)
  5. ✅ Origin:i(IGP)>e(EGP)>?(Incomplete)
  6. ✅ MED:同 AS 来源路由越小越优(跨 AS 需开启 compare-different-as-med)
  7. ✅ 路由来源:EBGP 路由>IBGP 路由
  8. ✅ IGP 开销:去往路由下一跳的 IGP Metric 越小越优
  9. ✅ Cluster_List:经过的簇列表越短越优(RR 场景专用)
  10. ✅ Originator-ID:反射路由,起源 RID 越小越优;普通路由对比发布方 RID
  11. ✅ 邻居 IP:对等体互联 IP 越小越优

BGP 负载分担(等价路由)

默认负载分担硬性条件:前 8 条选路属性全部一致 + AS-PATH 完全相同(AS 号、长度一模一样)

  • 开启命令:maximum load-balancing ebgp/ibgp N(指定条数);
  • 打破 AS-PATH 限制:搭配load-balancing as-path-ignore,选路仍看 AS-PATH,负载分担忽略 AS-PATH 校验。

配置示例

代码语言:javascript
复制
bgp123
 maximum load-balancing ebgp 2 #EBGP最多2条负载
 maximum load-balancing ibgp 3 #IBGP最多3条
 load-balancing as-path-ignore #负载分担忽略AS-PATH校验,选路仍校验AS-PATH

四、实战排错 & 配置小技巧

  1. 下一跳故障:IBGP 路由不通优先查 Next_Hop,要么 IGP 可达原下一跳,要么next-hop-local改下一跳;
  2. 引流优化出口:AS 多出口,在边界 EBGP 入向 route-policy 改 Local_Pref;
  3. 多链路入站优化:运营商互联,出口设备配置 MED,引导对端优选低成本链路;
  4. RR 环路排查:查看路由Originator-ID/Cluster-List,出现自身 ID 即环路。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ✅ AS_Path(公认必遵,AS 路径)
  • 1. 诞生背景
  • BGP 负载分担(等价路由)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档