天天看點

BGP的路徑選路

當BGP裝置學習到去往同一個目的網絡的多條BGP路由

(路徑)時,裝置将這些路由都裝載到BGP路由表,并在

這些條目中進行路由優選,最終決策出最優( Best )的路

由,将該BGP路由加載到全局路由表中,作為資料轉發的

依據。

當存在多路徑時, BGP隻會将其選擇出來的最優路由通告

給其他對等體。

BGP定義了一系列路由優選規則,進而使得裝置能夠在了

條路由中選擇出最優的路由。BGP在選擇路由時嚴格按照

先後順序比較路由的屬性,如果通過目前的屬性就可以選

出最優路由, BGP将不再進行後面的比較。

BGP的選路規則與BGP路徑屬性及路由政策息息相關,它

們使得BGP擁有了強大的路由操控能力。

1.優選具有最大Preferred-Value的路由

7.優選EBGP對等體所通告的路由

2.優選具有最大Local Preference的路由

8.優選到Next Hop的IGP路徑成本最小的路由

3.優選起源于本地的路由

BGP路由負載分擔

4.優選AS Path最短的路由

10.優選Cluster List 最短的路由

Origin ( IGP > EGP > Incomplete )

11.優選Router-ID最小的BGP對等體發來的路由

6.優選MED最小的路由

12.優選Peer-IP位址最小的對等體發來的路由

BGP路由優選規則也被稱為BGP選路規則,不同廠商的裝置在BGP選路上存在細微差異,本文

檔以華為VRP V8版本中實作的選路規則(常用規則)進行講解。

路徑屬性: path attributes, 作用類似于metric,用于度量BGP的路由優劣( 用來進行選路)

公認必遵屬性:所有的BGP的update消息都要包含該屬性所有bgp裝置發送的update封包都要攜帶且能夠識别的

●公認自決屬性:該屬性是可選可不選的,但是所有的BGP程序都能識别

bgp裝置發送的update封包可攜帶也可不攜帶,但應該都能夠識别的本地優先級(local preferent )

●可選傳遞屬性:即使BGP程序不能識别該屬性,也會繼續傳遞下去

bgp裝置不能識别,但可以繼續轉發的

團體屬性( community)

●可選非傳遞屬性:如果BGP程序不能識别該屬性,可以忽略這條update,并且不傳遞下去!

bgp裝置不能識别,并且也不能轉發的,也就是丢棄

1.如果此路由的下一-跳不可達,忽略此路由

Preferred-Value值數值越高越優先,華為私有屬性,僅本地有意義

Local- Preference值最高的路由優先

4.聚合路由優先于非聚合路由

5.本地手動聚合路由的優先級高于本地自動聚合的路由

6.本地通過Network指令引入的路由的優先級高于本地通過import-route指令引入的路由

7.As-path的長度最短的路徑優先

8.比較Origin屬性,IGP優于EGP, EGP優于Incomplete

9.選擇MED較小的路由

EBGP路由優于IBGP路由

11.BGP優先選擇到BGP下一-跳的IGP路徑成本最低的路徑

當以上全部相同,則為等價路由,可以負載分擔(注意: AS Path必須一 緻,當負載分擔時,以下3條原則無效)

12.比較Cluster list長度,短者優先

13.比較0riginator ID (如果沒有0riginator ID,則用Router_ ID比較),選擇數值較小的路徑。

14.比較對等體的IP位址,選擇IP位址數值最小的路徑。

●為公認自決屬性,用于告訴AS中的路由器,哪條路徑是離開As的首選路徑

●Local Preference屬性 隻能在IBGP對等體間傳遞(除非做了政策否則Local Preference值 在IBGP對等體間傳遞過程中不會丢失),而不能在EBGP對等體間傳遞

,如果在EBGP對等體間收到的路由的路徑屬性中攜帶了Local Preference, 則會觸發Notifacation封包, 造成會話中斷:

●但是可以在AS邊界路由器上使用Import方向的政策來修改LoCal Preference屬性值。 也就是在收到路由之後,在本地為路由賦子Local_ Preference。

[R3]route-policy lop permit node 10

###建立名為1op的路由政策

[R3- route-policy] apply 1ocal -prefernce 222

###設定本地優先級為222

[R3- route-policy]quit

[R3]bgp 200

[R3-bgp]peer 4.4.4.4 route-policy lop export

##在R3.上對R4執行出站export方向的路由政策,使得其在收到對方通告的路由後,在路由的local-prefernce的屬性值改為222,使得R4優選R3通告的路由;如

果此路由政策在R4配置則方向為入站import

<R3>reset bgp all

###重新開機BGP

<R3>refresh bgp all export

●為公認必遵屬性,是前往目标網絡的路由經過的AS号清單

●作用:確定路由在EBGP對等體之間傳遞無環:另外也作為路由優選的衡量标準之一;

●路由在被通告給EBGP對等體時,路由器會在該路由的AS Path中追加上本地的AS号:路由被通告給IBGP對等體時,AS-path不 會發生改變

●使用route- policy修改BGP路由的AS Path:

apply as-path xxx additive在已有AS Path基 礎上追加xxx

apply as-path xxx overwrite将已有AS Path值替換(覆寫)成xxx

apply as-path none overwrite清空路由的AS Path屬性

●使用route-policy修改BGP路由的AS Path時,可以在EBGP對等體之間改變EBGP路由的AS Path屬性, 進而影響BGP路由的優選。在華為路由器上,在IBGP對等 體

之間,也可以使用route-policy修改BGP路由的AS Path。 無論何種場景,改變BGP路由的AS Path都必須十分謹慎,建議跟上一 個經過的AS号保持

●Bestroute as-path- ignore指令用來配置BGP在選擇最優路由時忽略AS路徑屬性。配置該指令後,BGP将 不比較AS路徑的長度。預設情況下,長度更小者優。

[R2]route-policy as permit node 10

[R2- route -policy]apply as-path 123 123 123 additive

##在已有AS _Path基 礎上追加

[R2- route-policy]quit

[R2-bgp]peer 1.1.1.1 route-policy as export

<R2>reset bgp all

<R2>refresh bgp all export

●為可選非傳遞屬性,是一種路徑成本

●般情況下,BGP裝置貝比較來自向-AS (不同對等體)的路由的MED屬性值。可以通過配置指令來允許BGP比較來自不同AS的路由的MED屬性值。 執行compare-d

ifferent-as-med指令後,系統将比較來自不同AS中的對等體的路由的MED值。

[R2] route-policy med permit node 10

[R2-route -policy]apply cost + 500

[R2- route -policy]quit

[R2]bgp 200

[R2-bgp]peer 1.1.1.1 route-policy med export

<Huawei>refresh bgp all export

display bgp routing-table

###查BGP的路由表

display bgp routing-table 目标網段

###檢視詳細資訊

方案一:建立靜态彙總路由

[R7]ip route-static 192.168.0.0 255.255.252.0 NULLO

[R7-bg

Jherwork

:k 192.168.0.0 255.255.252.0

###将這個聚合的路由通告出去

.#将聚合的路由通告出去,因為在手動彙總的這個192.168.0.0在路由表中是不存在的的,要把它加入到NULL0裡才能在bgp程序裡用上面的network來通告這條

路由.

方案二:

[R7-bgp]aggregate 192.168.0.0 255.255.252.0 detail-suppressed as-set

2.3KIs

并#配置手動路由聚合用aggregate, detail-suppressed是抑制明細路由的通告,增加as-set關鍵字後, 該彙總路由将繼承明細路由的路徑屬性,其中8.6KE

由AS_ Path屬性可以起到彙總路由防環作用