前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的路由全属性深入浅出

就像BGP中的AS_PATH一样,无论路途多远,我愿意陪你一起走——基于华为ENSP的BGP的路由全属性深入浅出

作者头像
盛透侧视攻城狮
发布2025-02-04 09:55:41
发布2025-02-04 09:55:41
7900
代码可运行
举报
运行总次数:0
代码可运行

本篇技术博文摘要 🌟

  • 本文章介绍了BGP的路径属性(包括公认属性和可选属性),以及如何根据这些属性进行BGP路由优选。
  • 通过详细解释如LOCAL_PREFAS_PATHMED等属性的功能和修改方法,并且帮助理解BGP路由选择的优先级评判标准,并展示如何通过命令来调整这些路由策略。

1.BGP的路径属性和选路规则

路径属性[之前简略讲述过]

公认属性

  • 公认属性指所有BGP路由器都要求识别的路径属性,其下分为2类属性
  1. 强制属性------在进行路由更新时,必须携带的属性
  2. 自由决定属性----在进行路由更新时,可以不携带的属性
可选属性
  • 指不要求所有BGP路由器都能够识别的路径属性。其下分为2类可选属性
  1. 传递属性----如果路由器无法识别该属性,也应该接收携带该属性的路由信息,并且在路由更新时,携带该属性。
  2. 非可传递属性----如果路由器无法识别该属性,那么在进行路由更新时,可以忽略该路径属性的传播

属性名及其对应类型一览表

属性名

类型

AS_Path

公认强制

Origin

公认强制

Aggregator

可选传递

Atomic-Aggregate

公认自由决定属性

起源ID

可选非传递

簇列表

可选非传递

Next-hop

公认强制

local-preference

公认自由决定

preferred-value

私有属性

MED

可选非传递

社团属性

可选传递

2.BGP路由优选规则

如图所示

image-20221012212031390
image-20221012212031390

当到达同一个目的网段存在多条路由时,BGP 通过如下的次序进行路由优选:

  1. 丢弃下一跳不可达的路由。
  2. 优选 Preferred - Value 属性值最大的路由。
  3. 优选 Local_Preference 属性值最大的路由。
  4. 本地始发的 BGP 路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合 > 自动聚合 > network>import > 从对等体学到的。
  5. 优选 AS_Path 属性值最短的路由。
  6. 优选 Origin 属性最优的路由。Origin 属性值按优先级从高到低的排列是:IGP、EGP 及 Incomplete。
  7. 优选 MED 属性值最小的路由。
  8. 优选从 EBGP 对等体学来的路由(EBGP 路由优先级高于 IBGP 路由)。
  9. 优选到 Next_Hop 的 IGP 度量值最小的路由。
  10. 优选 Cluster_List 最短的路由。
  11. 优选 Router ID(Originator_ID)最小的设备通告的路由。
  12. 优选具有最小 IP 地址的对等体通告的路由。
补充:
  • 任何一条BGP路由在参与优选之前都必须先经过检查。
  • 设备会检查BGP路由的下一跳属性是否可达,如果不可达,则BGP路由被视为不可用,该路由将无论如何不能被优选,也不会被设备使用或者通告给其他对等体

BGP路由属性优先级评判标准一览表

属性名

传播范围

默认值

评判标准

PV

不传递

0

越大越优

LP

AS内部

100

越大越优

AS_Path

BGP对等体之间

空列表

越少越优

OGN

BGP对等体之间

根据起源类型决定

i>e>?

MED

bgp对等体之间

默认继承全局路由表中的开销值

越小越优

Preferred-Value介绍[PV]

  • PV值是华为的私有属性,默认值为0,可以理解为权重的概念,权重越大,则对应的路由信息的优先度越高。
  • 因为PV值是所有选路原则中的第一条规则,所以,该属性是本设备上选路最方便的属性
  • 该属性只能在本地生效,无法传递给任何BGP对等体
修改PV属性命令示例
全局修改
代码语言:javascript
代码运行次数:0
复制
[r4]bgp 400

[r4-bgp]peer 10.1.34.3 preferred-value 6000
精细化修改
代码语言:javascript
代码运行次数:0
复制
[r4]ip ip-prefix PV permit 10.10.0.0 16

[r4]route-policy PV permit node 10
[r4-route-policy]if-match ip-prefix PV
[r4-route-policy]apply preferred-value 100	
[r4]route-policy PV permit node 20

[r4-bgp]peer 10.1.34.3 route-policy PV import 

Local_Preference介绍[LC]

修改PV属性命令示例
  • LP属性默认为100,该属性只能在IBGP对等体之间传递,而不能在EBGP对等体之间传递,如果路由在传递到本地时不携带LP属性,则BGP在进行路由优选时使用缺省值来计算,数值越大越优
  • 这条选路规则时AS内部优选路由的最佳选择
全局修改
  • 该属性在IBGP对等体之间存在传递性,故想要影响R4,就必须在R2或者R3上进行修改,后续传递的就是修改后的数值。
代码语言:javascript
代码运行次数:0
复制
[r3]bgp 234
[r3-bgp]default local-preference 200  ---该命令只会影响本地向外发布的路由,而不会影响本地收到的路由
精细化修改
代码语言:javascript
代码运行次数:0
复制
[r4]ip ip-prefix LP permit 10.11.0.0 16​

[r4]route-policy LP permit node 10

[r4-route-policy]if-match ip-prefix LP

[r4-route-policy]apply local-preference 200 

[r4]route-policy LP permit node 20​

[r4-bgp]peer 3.3.3.3 route-policy LP import 

AS_Path属性介绍

  • 一台路由器将BGP路由通告给自己的EBGP对等体时,会将本地的AS号插入到该路由原有AS_Path属性之前
  • 实现EBGP路由的环路避免
  • 用于BGP路由优选决策
    • 该属性越短,该路由越优
何时产生:
  • 在路由被创建时,该属性也会被创建,仅仅为一个空的列表。
  • 在路由聚合时产生
    1. 从防环--->{}中的每一个AS号都需要查看
    1. 从选路--->不管{}中存在多少AS号,仅当做一个来进行计算
  • 联邦
    • 选路
修改AS属性命令示例
  • 在R1的出方向修改
代码语言:javascript
代码运行次数:0
复制
[r1]ip ip-prefix AS permit 10.13.0.0 16​

[r1]route-policy AS permit node 10

[r1-route-policy]if-match ip-prefix AS

[r1-route-policy]apply as-path 11 22 33 overwrite 

[r1]route-policy AS permit node 20​

[r1-bgp]peer 10.1.13.3 route-policy AS export

apply as-path none overwrite   ----代表将该属性变为空列表
参数说明:
  • additive
    • 在原AS_Path属性的基础上添加配置的AS号
  • overwrite
    • 直接覆盖原有AS_Path属性
AS属性的意义:
  • 该属性是BGP重要的工作组成,EBGP防环依赖于该属性,故一般不建议修改改属性
  • 如果一定要修改,则建议添加或覆盖的AS号为曾经出现过的AS号,这样即加长了该属性,同时对网络的影响最小

MED 属性介绍

  • MED的数值是由始发路由器继承IGP协议的Cost值而定的。该属性可以被传递给自己的EBGP对等体,也可以被传递给自己的IBGP对等体。
  • MED属性可以干扰其他人访问本地AS的流量走向。--->MED属性时BGP选路中唯一一个可以影响到其他AS的属性。---->传播范围:本地以及相邻的AS内部。
  • BGP规定,非本地始发的BGP路由信息,在传递给自己的EBGP对等体时,将MED值修改为0
  • 所有的AS边界设备均需要进行路由信息的发布
MED总结:
  • MED数值默认不为0,而是继承了路由表中该路由条目的开销值,所以,MED参数可以反映到达目标网段在本AS内部的开销大小,通过这个参数,别的AS的流量再进入本AS时可以选择开销较小的入口进入。通过修改改属性,可以影响其他AS的流量流入本AS的路径。
  • 本地通过EBGP或者IBGP邻居学习到MED内容,之后将其传递给自己的EBGP对等体时,不再携带MED参数。因为可能会造成选路不佳。
注意
  • MED值影响的事别的AS的流量通过多个出口进入到本AS内部,如果流入的不是同一个AS,即收到的路由条目中的AS_Path属性最左边的AS号不同,则将不比较第六条选路规则,直接比较第七条选路规则
  • 如果想通过MED进行干涉选路,需要保证前五条规则内容全相同(AS_Path属性的长度和内容和顺序也相同)
修改MED命令配置实例
代码语言:javascript
代码运行次数:0
复制
[r4-bgp]default med 100  ---全局修改方式
	只能针对本地聚合路由或者重发布引入的路由信息生效,并且是传递给EBGP对等体时才会携带,不会影响本地MED数值
  • 第十条优选规则中,有起源者ID,则比较起源者ID。若无,则比较RID数值
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本篇技术博文摘要 🌟
  • 1.BGP的路径属性和选路规则
    • 路径属性[之前简略讲述过]
      • 公认属性
      • 可选属性
    • 属性名及其对应类型一览表
  • 2.BGP路由优选规则
    • 如图所示
      • 补充:
    • BGP路由属性优先级评判标准一览表
    • Preferred-Value介绍[PV]
      • 修改PV属性命令示例
    • Local_Preference介绍[LC]
      • 修改PV属性命令示例
    • AS_Path属性介绍
      • 何时产生:
      • 修改AS属性命令示例
      • AS属性的意义:
    • MED 属性介绍
      • MED总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档