0x16 HCNP-R&S BGP原理詳解(一)
自治系統(AS):由同一個技術管理機構管理、使用統一選路策略的一些路由器的集合。
IGP |
內部閘道器協議 |
運行於AS內部 |
著重於發現和計算路由 |
主要有:RIP、OSPF、ISIS |
EGP |
外部閘道器協議 |
運行於AS之間 |
著重於控制路由的傳播和選擇最優的路由 |
主要有:BGP |
BGP邊界閘道器協議 距離向量演算法 EGP
BGP是外部路由協議,用來在AS之間傳遞路由資訊
是一種增強的距離向量路由協議
可靠的路由更新機制
豐富的Metric度量方法
從設計上避免了環路的發生
為路由附帶屬性資訊
支援CIDR(無類別域間選路)
豐富的路由過濾和路由策略
BGP可靠的路由更新,採用TCP179埠,無需週期性更新,路由更新只發送增量路由,週期性傳送keepalive報文檢測TCP的連通性
執行BGP協議的路由器稱為BGP發言者 BGP speaker
相互之間存在TCP連線、相互交換路由資訊的BGP發言者之間胡成為BGP對等體(BGP Peer)
BGP兩種鄰居關係
IBGP:兩個BGP speak位於同一個AS內
EBGP:兩個BGP speak位於不同一個AS內
BGP如何方式環路
1、AS內防止環路 從IBGP鄰居獲得的路由不會向其他IBGP鄰居傳送
2、AS間如何防止 通過AS_PATH屬性
BGP基本作用:AS之間使用BGP來傳遞和控制路由。
執行在不同AS之間的BGP路由器建立的鄰居關係為EBGP(External BGP)鄰居關係。
執行在相同AS內的BGP路由器建立的鄰居關係為IBGP(Internal BGP)鄰居關係。
BGP路由生成方式
BGP路由生成方式--network
Network命令是逐條將IP路由表中已經存在的路由引入到BGP路由表中。
BGP路由生成方式--import
Import命令是根據執行的路由協議(RIP,OSPF,ISIS等)將路由引入到BGP路由表中,同時import命令還可以引入直連和靜態路由。
BGP通告原則:
1,BGP通告原則之一:僅將自己的最優的路由釋出給鄰居
2,BGP通告原則之二:通過EBGP獲得最優路由釋出給所有BGP鄰居(包括IBGP鄰居和EBGP鄰居)
3,BGP通告原則之三:通過IBGP獲得的最優路由不會發布給其他的IBGP鄰居(防止環路)
在AS要求所有BGP路由器全互聯
4、BGP通告原則之四:BGP與IGP同步
BGP五種報文型別:
Open:負責和對等體建立鄰居關係
KeepAlive:該訊息在對等體之間週期性地傳送,用以維護連線
Update:該訊息被用來在BGP對等體之間傳遞路由資訊
Notification:當BGP Speaker檢測到錯誤的時候,就傳送該訊息給對等體
Route-refresh:用來通知對等體自己支援的路由重新整理能力
BGP屬性
公認屬性是所有BGP路由器都必須識別的屬性
公認必遵(Well-known Mandatory)所有BGP路由器都可以識別,且必須存在於Update訊息中。如果缺少這種屬性,路由資訊就會報錯。
公認任意(Well-known Discretionary)所有BGP路由器都可以識別,但不要求必須存在於Update訊息中,可以根據具體情況來決定是否新增到Update訊息中。
可選屬性不需要都被BGP路由器所識別
可選過渡(Optional Transitive)BGP路由器可以選擇是否在Update訊息中攜帶這種屬性。接受的路由器如果不識別這種屬性,可以轉發給鄰居路由器,鄰居路由器可能會識別並使用到這種屬性。
可選非過渡(Optional Non-Transitive)BGP路由器可以選擇是否在Update訊息中攜帶這種屬性。在整個路由釋出的路徑上,如果部分路由器不能識別這種屬性,可能會導致該屬性無法發揮效用。因此接收的路由器如果不識別這種屬性,將丟棄這種屬性,不必再轉發給鄰居路由器。
屬性功能
起點
通過network命令注入BGP的路由 |
IGP |
通過EGP(RFC904)學到的路由 |
EGP |
通過import命令注入BGP的路由 |
Incomplete |
AS路徑(AS_PATH)屬性
記錄途徑過之後的AS編號,對於含有自己AS編號的路由進行丟棄,防止環路
Next_hop下一跳屬性
向內網BGP通告時,不會更改下一跳
本地優先順序屬性 (Local-Preference)
用以出去進行選路 優先順序來比較 預設是100 該值越大越優先
MED (Multi-Exit-DISC) 屬性
用以進入進行選路 預設是0 該值越小越優先
Community團體屬性
限定路由的傳播範圍,打標記,便於對符合相同條件的路由進行統一處理
Preference Value是BGP的私有屬性(華為私有屬性),Preference Value相當於選路規則中Weight值,僅在本地路由器生效。Preference Value值越大,越優先。
BGP路由優選原則
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地址的鄰居學來的路由。
路由聚合:減少路由條目
RIP支援自動聚合和手動聚合
OSPF只支援手動聚合(必須是ABR或者ASBR)
BGP支援自動聚合和手工聚合
BGP路由聚合方法
1、靜態
2、自動聚合
3、手動聚合
BGP路由聚合帶來的問題--潛在的環路
解決方法:路由聚合帶AS_SET(記錄了被聚合路由所經過的AS)