當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屬性可以起到彙總路由防環作用