bgp的13条选路原则(代码片段)

author author     2023-03-17     359

关键词:

BGP的13条选路原则

? BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况
① 该路由是到达目的地的唯一路由,直接优选
② 对到达同一目的地的多条路由,优选优先级最高的
③ 对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的
? 一般来说,BGP计算路由优先级的规则如下
① 丢弃下一跳不可达的路由
② 优选Preference_Value值最高的路由(私有属性,仅本地有效)
③ 优选本地优先级(Local_Preference)最高的路由
④ 优选手动聚合>自动聚合>network>import>从对等体学到的
⑤ 优选AS_Path短的路由
⑥ 起源类型IGP>EGP>Incomplete
⑦ 对于来自同一AS的路由,优选MED值小的
⑧ 优选从EBGP学来的路由(EBGP>IBGP)
⑨ 优选AS内部IGP的Metric最小的路由
⑩ 优选Cluster_List最短的路由
? 优选Orginator_ID最小的路由
? 优选Router_ID最小的路由器发布的路由
? 优选具有较小IP地址的邻居学来的路由

1.Preferred-Value数值

Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大,越优先,默认缺省值为0 只能改变自己的入向选路
技术图片
默认情况下华为这边会选择router ID小的作为自己的最优下一跳

<R1>display bgp routing-table 
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 8
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
*>i  44.44.44.44/32     2.2.2.2         0          100        0      200i
  * i                     3.3.3.3         0          100        0      200i

① 匹配44.44.44.44的条目 ---方法就是acl或者前缀列表(建议用它)

[R1]display ip ip-prefix 44
Prefix-list 44
Permitted 0
Denied 0
index: 10               permit  44.44.44.44/32
[R1]

② 创建路由策略

#
route-policy 44 permit node 10  ---这个就是我们需要进行关联的方式
if-match ip-prefix 44       ---这个就是我们的条件
apply preferred-value 200       ---这个就是我们动作
#

③ 在BGP视图下面进行调用

[R1-bgp]peer 3.3.3.3 route-policy 44 import     只能调用在入方向

④ 验证(现象就是R1到达我们44.44.44.44的路由下一跳指向的就是R3)

[R1]display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 7
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>i  44.44.44.44/32     3.3.3.3         0          100        200    200i
  * i                     2.2.2.2         0          100        0      200i
[R1]

小结:Pre-Value最大,Preference_Value值越大,越优先,默认缺省值为0

2. Local_Preference

Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。一般用来控制我本区域流量怎么出去,默认情况下Local-Pref值为100 该数值越大 优先级越高
技术图片
① 匹配44.44.44.44的条目 ---方法就是acl或者前缀列表(建议用它)

[R3]display ip ip-prefix 44
Prefix-list 44
Permitted 0
Denied 0
index: 10               permit  44.44.44.44/32
[R1]

② 创建路由策略

#
route-policy 44 permit node 10  ---这个就是我们需要进行关联的方式
if-match ip-prefix 44       ---这个就是我们的条件
apply local-preference 200      ---这个就是我们动作
#

③ 在BGP视图下面进行调用

[R3-bgp]peer 1.1.1.1 route-policy 44 export

此时在BGP里面调用的时候,可以调用在我们3个方向上面
? 第一个方向:在R3的G0/0/0接口上进行调用,但这个调用的话,只能在G0/0/0的import方向
? 第二个方向:在R3的G0/0/1接口的进行调用,但这个调用的话,只能在G0/0/1的export方向
? 第三个方向:在R1的G0/0/1接口的进行调用,但这个调用的话,只能在G0/0/1的import方向
? 不能调用在R4的export方向上面(因为Local-preference只能在本AS内进行传递的)

3.路由聚合

? 聚合路由的优先级:手动聚合>自动聚合
? 自动聚合
只能对引入import-route的BGP路由进行聚合 如果说通过import-route到BGP的话,此时它的属性是 ?
? 手动聚合
手动聚合可以在BGP路由表中的路由进行聚合 如果说通过我们network宣告到我们BGP当中的话 此时它的属性是 i(可以对引入路由和network宣告路由都生效)
? 如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合实现
? 验证手动聚合大于自动聚合
R4上面的44.44.44.44的路由条目他是network宣告的 此时自动聚合识别不了,我可以在R4上面进行修改我们44网段的起源属性,通过我们前缀列表和router-policy,应用在我们R4的一个出方向上面 R2就可以对44.44.44.44路由进行自动聚合 R3上面开启的是手动聚合(手动聚合可以对network宣告的路由和通过路由引入宣告的路由进行聚合)因为R1这边收到从R2这边自动聚合的条目和R3这边手动聚合条目,所以说 R1这边到达这条聚合路由的下一跳就是R3
技术图片

自动聚合

① 默认情况下,BGP是没有开启自动聚合的
② 自动聚合只对引入的路由生效,对network路由不生效
③ 配置自动聚合后,成员明细路由将被抑制掉
④ 发现这些明细前面打了一个S(Suppressed)
⑤ 其他路由器学习到的就是自动聚合的路由
技术图片
① 在R1设备上创建loopback接口,用前缀列表匹配R1的loopback接口,将其引入到BGP协议中

[R1]display ip ip-prefix 1
Prefix-list 1
Permitted 3
Denied 10
        index: 10               permit  100.100.2.0/24          
        index: 20               permit  100.100.3.0/24          
        index: 30               permit  100.100.4.0/24  

② 创建路由策略

[R1]display route-policy 1
Route-policy : 1
  permit : 10 (matched counts: 16)
    Match clauses : 
      if-match ip-prefix 1

③ 在BGP视图下面进行调用

#
bgp 100
import-route direct route-policy 1
  summary automatic    开启我们自动聚合(注意啊,一定是对引入的路由进行聚合,network进来的路由是不生效的)
# 
return

④ 在R1查看实验现象

[R1]display bgp routing-table 
 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 9
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

  *>   100.0.0.0          127.0.0.1                             0      ?
  s>   100.100.2.0/24     0.0.0.0         0                     0      ?
  s>   100.100.3.0/24     0.0.0.0         0                     0      ?
  s>   100.100.4.0/24     0.0.0.0         0                     0      ?
 [R1]

所以R2这边学习到的路由就是我们聚合的路由

<R2>display bgp routing-table 

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 5
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>i  100.0.0.0          1.1.1.1                    100        0      ?
<R2>

手动聚合

在R1设备在自动手动聚合路由 删除自动聚合的命令
技术图片
技术图片
① detail-suppressed
注意:后面的detail-suppressed参数是把明细给抑制,如果不加的话,会把明细路由和聚合路由都传过去

[R1-bgp]aggregate 100.100.0.0 16 detail-suppressed

② as-set
as-set信息在避免路由环路时很重要,因为它记录了被聚合路由所经过的AS

[R1-bgp]aggregate 100.100.0.0 16 as-set 

③ Suppress-policy
关键字suppress-policy能产生聚合路由,但抑制指定路由的通告,可以使用route-policy和if-match子句有选择的抑制一些具体路由,其他具体路由仍被通告(抑制聚合中的某些路由)
④ Origin-policy
使用关键字origin-policy仅选择符合route-policy的具体路由来生成聚合路由(只要有这条路由信息,我才能产生聚合路由)

路由聚合产生的问题

如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境
技术图片

4.Network大于import引入

把4.4.4.4的路由在RT4发布给RT2的时候,把属性更改为incomplete(也就是引入的方式)看下RT1到达4.4.4.4的路径选择
R1默认情况下根据13条选路原则,会选择router id较小的进行选路,我们让前3条选路原则不变,我可以改变第四条选路原则,因为默认情况下,R4的44.44.44.44/32通过network方式发布到我们的BGP里面的,它的默认起源属性是network(也就是我们的i) 我可以改变R2发往R1的起源属性 那R1变成通过import学习到的路由
技术图片
1.匹配44.44.44.44的条目 ---方法就是acl或者前缀列表(建议用它)

[R2]display ip ip-prefix 44
Prefix-list 44
Permitted 2
Denied 1
        index: 10               permit  44.44.44.44/32   

2.创建路由策略

[R2]display  route-policy
Route-policy : 44
  permit : 10 (matched counts: 1)
    Match clauses : 
      if-match ip-prefix 44
    Apply clauses : 
      apply origin incomplete 

3.在BGP视图下面进行调用

#
bgp 100
 router-id 2.2.2.2
 peer 1.1.1.1 as-number 100 
 peer 1.1.1.1 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  peer 1.1.1.1 enable
  peer 1.1.1.1 route-policy 44 export
#
return
[R2-bgp]

? 注意:
① 可以调用在R2的export出方向(G0/0/0)
② 可以调用在R2的import方向(G0/0/1)
③ 可以调用在R1的import方向(G0/0/0)
④ 可以调用在R4的export方向上(G0/0/1)

5.AS_Path

? 收到同一条路由里面AS路径最短的优先
RTA从RTB收到100.0.0.0/24的路由时,AS_Path为(2,4),RTA从RTC收到100.0.0.0/24的路由时,AS_Path为(3,5,4)。规定AS_Path越短(记录的AS编号越少),路径越优,因此RTA会优选从RTB收到的100.0.0.0/24的路由
? AS路径属性可以防止BGP环路
以RTE为例,通过BGP发布100.0.0.0/24的路由,路由可能通过RTE->RTB->RTC->RTD->RTE形成环路。为了防止环路的产生,RTE在收到RTD发来的路由时会检查AS_Path(该路由携带的)属性,如果发现该路由的AS_Path中包含自己的AS号,则丢弃该路由
技术图片
? R1这边默认情况下根据13条选路原则,会选择router id较小的进行选路,我们让前4条选路原则不变,改变第5条选路原则,在R2发往R1的44.44.44.44网段路由的时候 我可以增加一些AS-path属性进来,可以通过一下两种方式进行增加
① Additive:Append to original As Number追加as-path属性 在原有的基础上进行增加
② Overwrite:Overwrite original As Number覆盖as-path属性 把原有的AS-path给直接弄没
技术图片

  1. 匹配44.44.44.44的条目 ---方法就是acl或者前缀列表(建议用它)
    [R2]display ip ip-prefix 44
    Prefix-list 44
    Permitted 4
    Denied 2
        index: 10               permit  44.44.44.44/32    

    2.创建路由策略

    [R2]display route-policy 44
    Route-policy : 44
    permit : 10 (matched counts: 2)
    Match clauses : 
      if-match ip-prefix 44
    Apply clauses : 
      apply as-path 1000 2000 3000 additive

    3.在BGP视图下面进行调用

    #
    bgp 100
    router-id 2.2.2.2
    peer 1.1.1.1 as-number 100 
    peer 1.1.1.1 connect-interface LoopBack0
    peer 3.3.3.3 as-number 100 
    peer 3.3.3.3 connect-interface LoopBack0
    peer 24.1.1.4 as-number 200 
    #
    ipv4-family unicast
    undo synchronization
    network 22.22.22.22 255.255.255.255 
    peer 1.1.1.1 enable
    peer 1.1.1.1 route-policy 44 export
    peer 1.1.1.1 next-hop-local 
    peer 3.3.3.3 enable
    peer 3.3.3.3 next-hop-local 
    peer 24.1.1.4 enable
    #
    return
    [R2-bgp]

    ? 注意:
    ① 可以调用在R2的export出方向(G0/0/0)
    ② 可以调用在R2的import方向(G0/0/1)
    ③ 可以调用在R1的import方向(G0/0/0)
    ④ 可以调用在R4的export方向上(G0/0/1)

    6.Origin

    ? Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的
    ? Origin的3种属性
    ① i 表明BGP路由通过network命令注入
    ② e 表明BGP路由是从EGP学来的,EGP协议在现网中很难见到,但可以通过路由策略将路由的Origin属性修改为e
    ③ ? 即Incomplete表明BGP路由通过其它方式学到路由信息,如使用import命令引入的路由
    ? 3种Origin属性的优先级为:i>e>Incomplete(?)所以network宣告的路由大于通过import-router引入的路由
    技术图片

    7.MED

    MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由
    当一个运行BGP的路由器通过不同的EBGP邻居获得目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由,其默认值为0。 MED值较小者作为最佳路由,其默认值为0
    技术图片

  2. 匹配44.44.44.44的条目 ---方法就是acl或者前缀列表(建议用它)
    [R2]display ip ip-prefix 44
    Prefix-list 44
    Permitted 5
    Denied 2
        index: 10               permit  44.44.44.44/32     

    2.创建路由策略

    [R2]display  route-policy 44
    Route-policy : 44
    permit : 10 (matched counts: 3)
    Match clauses : 
      if-match ip-prefix 44
    Apply clauses : 
      apply cost 1000 
    #

    3.在BGP视图下面进行调用

    bgp 100
    router-id 2.2.2.2
    peer 1.1.1.1 as-number 100 
    peer 1.1.1.1 connect-interface LoopBack0
    peer 3.3.3.3 as-number 100 
    peer 3.3.3.3 connect-interface LoopBack0
    peer 24.1.1.4 as-number 200 
    #
    ipv4-family unicast
    undo synchronization
    network 22.22.22.22 255.255.255.255 
    peer 1.1.1.1 enable
    peer 1.1.1.1 next-hop-local 
    peer 3.3.3.3 enable
    peer 3.3.3.3 next-hop-local 
    peer 24.1.1.4 enable
    peer 24.1.1.4 route-policy 44 import
    #
    return
    [R2-bgp]

    ? 注意:
    ① 可以调用在R2的export方向(G0/0/0)
    ② 可以调用在R2的import方向(G0/0/1)
    ③ 可以调用在R1的import方向(G0/0/0)
    ④ 可以调用在R4的export方向(G0/0/1)

    8.EBGP优于IBGP路由

    根据选路原则,RTA会优选从EBGP邻居学来的路由
    技术图片
    因为R2可以从R4收到44网段ebgp的路由条目 R2也可以从R3收到IBGP的条目(因为我R2和R3建立的是IBGP的BGP关系)如果说前面7条选路原则是一样的话 会比较我们的第8条选择的原则 所以R2到达44网段的路由要的是EBGP传递过来的
    技术图片

[R2]display bgp routing-table 

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

  *>   44.44.44.44/32     24.1.1.4        0                     0      200i
    * i                     3.3.3.3         0          100        0      200i
 [R2]

9.IGP的开销值

通过调整OSPF Cost,使RTA选择R3路径访问44.44.44.44/32
技术图片
将R1的G0/0/0接口的ospf开销修改为2

#
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
#
return
[R1-GigabitEthernet0/0/0]ospf cost 2
[R1]display ip routing-table 44.44.44.44
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    44.44.44.44/32  IBGP    255  0          RD   3.3.3.3         GigabitEthernet
0/0/1

查看R1得BGP路由表

[R1]display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>i  44.44.44.44/32     3.3.3.3         0          100        0      200i
  * i                     2.2.2.2         0          100        0      200i

[R1]

10.Router-ID值

默认情况下 如果前面所有的选路原则都不变的话 那么会选择一个router ID较小的作为自己的选路方式
技术图片

<R1>display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

*>i  44.44.44.44/32     2.2.2.2         0          100        0      200i
  * i                     3.3.3.3         0          100        0      200i
<R1>

bgp的13条选路原则(代码片段)

BGP的13条选路原则?BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况①该路由是到达目的地的唯一路由,直接优选②对到达同一目的地的多条路由,优选优先级最高的③对到达同一目的地且具有... 查看详情

bgp十一条选路原则与bgp路由传递的注意事项介绍(代码片段)

十一条选路规则1.优选Preferred-Value属性值最大的路由。2.优选Local_Preference属性值最大的路由。3.本地始发的BGP路由优于从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从... 查看详情

bgp选路13条原则全实战,一条条帮你梳理支撑整个互联网的选路原则

BGP选路原则实验11.7.1BGP选路原则理论BGP不是简单的通过metric来选路最优的路由所有的路径属性归为一下四类:?周知强制属性?周知自选属性?可选传递性属性?可选非传递属性以上属性分为两类,首先,周知属性,即所有BGP实现都... 查看详情

bgp选路由原则(代码片段)

BGP的选路由原则 13条1、Weight权重越大越优  思科私有2、local-prefence 本地优先级默认100越大越优3、本地优先任何条目都没有本地优先4、As-path越短越优,5、origin起源6、med7、ebgp优于ibgp8、优选next-hop最近的路由9、BGP... 查看详情

bgp选路原则

BGP本地始发的路由下一跳为0.0.0.0,选路时优先于从对等体学到的路由,bgp默认选路不做负载均衡来自IBGP的路由不会发给其他IBGP邻居权重(preferencevalue)是一个本地有效的属性,不可能是往外发路由有效,(所以只能是外面路由进... 查看详情

bgp选路原则

查看详情

华为bgp选路原则

...可达,同步关闭。如果不满足此两条件,则路由不优。BGP选路原则:如果此路由的下一跳不可达,忽略此路由Preferred-Valnue值数值越高越优先,华为私有属性,仅本地有意义Local-Preference值最高的路由优先聚合路由优先于非聚合路... 查看详情

bgp的选路和属性(代码片段)

目录一、BGP的选路二、属性1、Preference_Value2、本地优先级3、as-path 4、起源属性---条目的产生方式 5、MED---多出口的鉴别属性 三、BGP的社团属性–BGP的扩展属性  一、BGP的选路1、比较前提,多条BGP路由目标相同,且均... 查看详情

bgp选路原则

目录BGP的选路原则1,优选PV值最大的路由修改PV影响选路的配置:方法一:全局修改方法二:精细化控制2,优选LP属性值最大的路由方法一:全局修改方法二:精细化控制3,自己始发的路由优先级... 查看详情

华为路由器之bgp路由技术总结及配置命令(代码片段)

...的协议。BGP属于外部网关路由协议,它解决的是AS之间的选路问题,也正是这样,它更适合用于互联网。BGP的关键在于理解BGP的报文,邻居的建立、BGP路由属性、选路原则等。.1、自治系统是什么?自治系统(autonomoussystem,简称... 查看详情

bgp边界网关协议(代码片段)

...过程:1、建立邻居表;2、同步数据库;3、计算路由表BGP选路原则:1.preference-value,华为私有属性,仅仅在设备本地起作用。值越大越好;不会随着更新报文,传递给其他的路由器的;2.local-preference,本地优先级,值越大越好;... 查看详情

使用本地优先级影响选路(代码片段)

配置不同本地优先级会影响BGP的路由选择,当一个运行BGP的路由器有多条路由到达同一目的地址时,会优选本地优先级最高的路由。缺省情况下,BGP本地优先级的值为100。本地优先级属性仅在IBGP对等体之间交换,不通告给其他AS... 查看详情

bgp的选举原则:十三军规

BGP的选路原则:前提(路由的下一跳可达、关闭同步、路由没有被惩罚、前缀没有被入境路由策略拒绝),具体原则如下:1:weight先比较管理权重(越大越优先),这个参数本地有效。虽然Weight属性是Cisco私有的,但是很多厂商也是内置... 查看详情

bgp基础(代码片段)

...它的作用不是用来学习路由,而是用来控制路由的传播和选路的。它是一种边界网关协议和IGP不同。一、数据包open:用于建立邻居关系,并交换基本参数。包括:AS号、Router-ID以及Holdtimekeepalive:用于维护邻居关系,如果在协商好... 查看详情

bgp的选路

...去AS3走R64、AS2去AS3走R65、AS3去AS2走R56、AS3去AS1走R57、每个选路规则只能使用一次解决以上步骤的选路方法(事先没有规划):1、local-preference2、MED3、Weight4、Origin5、AS-path6、next-hop二、BGP的选路规则:1、weight,范围0-65535 查看详情

bgp选路之as-path

1、概述:AS号可以用于选路也可以用于BGP防环2、解释 AS号用于选路:R6访问200.1.1.0,先比较权重值,若权重值相同再去比较本地优先级,本地优先级也一样再看谁的下一跳为0.0.0.0,都不是0.0.0.0再比较AS-PAT... 查看详情

bgp选路之as-path

1、概述:AS号可以用于选路也可以用于BGP防环2、解释 AS号用于选路:R6访问200.1.1.0,先比较权重值,若权重值相同再去比较本地优先级,本地优先级也一样再看谁的下一跳为0.0.0.0,都不是0.0.0.0再比较AS-PAT... 查看详情

华为网络配置(bgp)

...性(4)Local_Pref属性(5)MED属性13、BGP的选路规则14、路由环路二、BGP配置1、案例2、配置过程(1)AR1(2)AR2(3)AR3(4)AR4(5ÿ 查看详情