BGP的13條選路原則

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地址的鄰居學來的路由node

1.Preferred-Value數值

Preference_Value是BGP的私有屬性(華爲私有屬性),Preference_Value至關於BGP選路規則中Weight值,僅在本地路由器生效。Preference_Value值越大,越優先,默認缺省值爲0 只能改變本身的入向選路
BGP的13條選路原則
默認狀況下華爲這邊會選擇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或者前綴列表(建議用它)app

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

② 建立路由策略ide

#
route-policy 44 permit node 10  ---這個就是咱們須要進行關聯的方式
if-match ip-prefix 44       ---這個就是咱們的條件
apply preferred-value 200       ---這個就是咱們動做
#

③ 在BGP視圖下面進行調用oop

[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 該數值越大 優先級越高
BGP的13條選路原則
① 匹配44.44.44.44的條目 ---方法就是acl或者前綴列表(建議用它)3d

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

② 建立路由策略code

#
route-policy 44 permit node 10  ---這個就是咱們須要進行關聯的方式
if-match ip-prefix 44       ---這個就是咱們的條件
apply local-preference 200      ---這個就是咱們動做
#

③ 在BGP視圖下面進行調用router

[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的13條選路原則

自動聚合

① 默認狀況下,BGP是沒有開啓自動聚合的
② 自動聚合只對引入的路由生效,對network路由不生效
③ 配置自動聚合後,成員明細路由將被抑制掉
④ 發現這些明細前面打了一個S(Suppressed)
⑤ 其餘路由器學習到的就是自動聚合的路由
BGP的13條選路原則
① 在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設備在自動手動聚合路由 刪除自動聚合的命令
BGP的13條選路原則
BGP的13條選路原則
① 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信息,須要設計者綜合考慮網絡環境
BGP的13條選路原則

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學習到的路由
BGP的13條選路原則
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號,則丟棄該路由
BGP的13條選路原則
 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給直接弄沒
BGP的13條選路原則

  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引入的路由
    BGP的13條選路原則

    7.MED

    MED(Multi-Exit-Discriminator)屬性僅在相鄰兩個AS之間傳遞,收到此屬性的AS不會再將其通告給任何其餘第三方AS,用於判斷流量進入AS時的最佳路由
    當一個運行BGP的路由器經過不一樣的EBGP鄰居得到目的地址相同但下一跳不一樣的多條路由時,在其它條件相同的狀況下,將優先選擇MED值較小者做爲最佳路由,其默認值爲0。 MED值較小者做爲最佳路由,其默認值爲0
    BGP的13條選路原則

  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鄰居學來的路由
    BGP的13條選路原則
    由於R2能夠從R4收到44網段ebgp的路由條目 R2也能夠從R3收到IBGP的條目(由於我R2和R3創建的是IBGP的BGP關係)若是說前面7條選路原則是同樣的話 會比較咱們的第8條選擇的原則 因此R2到達44網段的路由要的是EBGP傳遞過來的
    BGP的13條選路原則

[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
BGP的13條選路原則
將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較小的做爲本身的選路方式
BGP的13條選路原則

<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>
相關文章
相關標籤/搜索