文章目錄
複習
IGP協議(內部網關協議)
- RIP(已淘汰)
- OSPF
- IS-IS
EGP協議(外部網關協議)
- BGP
- IGP用來計算和發現路由,BGP路由控制和路由優選(13條選路原則)
- IGP是在自治系統(AS)內部使用,EGP是在自治系統間使用
BGP基本概述
- BGP可以跨越多跳路由建立鄰居關係
- 通過單播發送報文
- 基於TCP,端口號179,爲應用層協議
BGP鄰居關係建立與配置
- BGP基於TCP,所以建立鄰居前會先建立三次握手
- 先啓動BGP的一端先發起TCP連接
BGP鄰居類型
EBGP
- 外部邊界網關協議
- 運行在不同的AS之間的BGP路由器建立的鄰居關係叫EBGP(External BGP)鄰居關係
IBGP
- 內部邊界網關協議
- 運行在相同AS內部的BGP路由器建立的鄰居關係爲IBGP(Internal BGP)鄰居關係
- 在AS內部,不使單獨用BGP協議,通常是IGP+BGP
BGP配置
router-id 1.1.1.1
指定router-idbgp 300
進入到自身的AS區域peer 10.1.1.3 as-number 100
對方的IP和AS區域peer 2.2.2.2 connect-interface loopback 0
指定更新源,更穩定
- BGP是在多個站點之間傳遞路由,並不是爲了在AS內部打通路由
- EBGP之間建鄰居一般使用直連接口
- IBGP之間建鄰居一般使用環回口
BGP鄰居關係建立
- BGP報文格式
- BGP報文頭部
- OPEN報文,建立連接
- UPDATE報文,更新路由
- NOTIFICATION報文,通知錯誤
- KEEPALIVE報文,維護TCP的連接
- REFRESH報文,請求得到路由
- 先建立TCP連接
- TCP連接建立後,發送
Open
報文,另一端接收到報文後,會進行檢驗- 檢驗符合,回覆
Keepalive
,鄰居建立成功Keepalive
60s發送一次,180s收不到就認爲對端down了Update
路由發生變化時,會發送Update
報文
BGP狀態機
IDLE
等待觸發鄰居建立的事件Connect
配置好BGP後,開始建立TCP連接- TCP連接建立成功,進入
Open-sent
狀態 - TCP連接建立失敗,進入
Active
狀態,重新建立TCP連接
- TCP連接建立成功,進入
- open-sent向外發送OPEN報文,收到正確的報文,進入
Open-confirm
狀態 - 接收到Keepalive報文,進入
Established
狀態,鄰居建立成功
BGP路由生成方式
- Network,只能宣告路由表中有的路由,且與路由表中的路由完全相同
- import,根據運行的路由協議,將路由引入到BGP路由表中,還可以引入直連和靜態路由
BGP通告原則和路由處理
- BGP通過Network和import兩種方式生成路由,BGP鄰居關係建立後,開始將路由封裝在Update報文中通告給鄰居
- Update報文主要用來通告可用路由和撤銷路由,Update包含:
- 網絡層可達信息(NLRI):公佈IP前綴和前綴長度,發佈路由
- 路徑屬性:爲BGP提供環路檢測,控制路由優先
- 撤銷路由:描述無法到達且從業務中撤銷的路由前綴和前綴長度
BGP通告原則
- 僅將自己最優的路由發佈給鄰居
- 通過EBGP獲得的最優路由發佈給所有的BGP鄰居
- 通過IBGP獲得的最優路由不會發布給其他的IBGP鄰居(水平分割,防環)
- BGP與IGP同步(默認關閉)
BGP路由信息處理
- 從BGP鄰居收到更新信息後,進行路徑選擇
- 將路由信息,寫入本地的路由表
- 將BGP路由表中最優的路由下發到全局路由表,爲後面的數據轉發做準備
- 把本地的最優路由發佈給其它鄰居
在發佈最優路由之前,如果接口有策略,需要先過策略,再轉發給BGP鄰居
BGP常用屬性介紹
-
公認必遵:公共認可,並且三個屬性必須存放在Update報文中
- Origin(起源,初始):定義路徑信息的來源。
i
是network引入的,?
是import引入的,e
是EGP引入的 - AS_Path(AS路徑):標識AS區域號,每經過一個AS區域,AS號會附加。防止環路
- Next_hop(下一跳):路由傳給IBGP鄰居時下一跳不變,路由傳給EBGP鄰居時,下一跳爲和對方建鄰居的地址
- Origin(起源,初始):定義路徑信息的來源。
-
公認任意:公共認可,可有可無的屬性
- Local_Prefference:本地優先級。在AS內,IBGP之間傳遞路由,默認本地優先級爲100,越大越優,影響本AS出去的流量
- MED:在兩個AS間,EBGP之間傳遞路由,默認值爲0,越小越優,影響本AS進來的流量,且只能傳遞一個AS,用於判斷流量進入AS時的最佳路由
-
可選過渡:無論是否可以識別報文信息,都必須轉發
- Community:團體屬性。表示路由,限定路由的傳播範圍,打標記,便於對符合相同條件的路由進行統一處理
- 公認團體屬性:
Internet
:缺省屬性,此路由可以通告給左右的BGP鄰居No_Export
:不將此路由發佈到其他ASNo_Advertise
:不將此路由通告給其他的BGP鄰居No_Export_Subconfed
:聯盟中使用- 拓展的團體屬性:
- 可選非過渡:不管是否可以識別報文信息,可以轉發也可以不轉發
- BGP防環:
- AS內防環:通過IBGP獲得的最優路由不會發布給其他的IBGP鄰居(水平分割)
- AS間防環:AS_Path增加AS區域號
BGP選路原則
- BGP路由器將路由通告給鄰居後,每個BGP鄰居都會進行路由優選,路由選擇有三種情況:
- 該路由是到達目的地的唯一路由,直接優選
- 對到達同意目的地的多條路由,優選優先級最高的
- 對到達同同一目的地且具有相同優先級的多條路由,必須用更新的原則去選擇一條最優的
BGP13條選路原則
- BGP計算路由優先級的13條規則:
- 丟棄下一跳不可達的路由
- 優選Preference_Value值最高的路由(私有屬性,僅本地有效)---------P
- 優選本地優先級(Local_Preference)最高的路由--------------------L
- 優選手動聚合->自動聚合->network->import->從對等體學到的---------L
- 優選AS_Path短的路由-------------------------------------------A
- 起源類型IGP->EGP->Incomplete----------------------------------O
- 對於來自同一AS的路由,優選MED值小的-----------------------------M
- 優選從EBGP學來的路由(EBGP>IBGP)------------------------------E
- 優選AS內部下一跳的IGP的Metric最小的路由-------------------------N
- 優選Cluster_List最短的路由
- 優選OrGinator_ID最小的路由
- 優選Router_ID最小的路由器發佈的路由
- 優選具有較小IP地址的鄰居學來的路由
PLLAOMEN
漂亮老男人P
Preference_ValueL
Local_Preference,本地優先級L
手動聚合->自動聚合->network->import,爲本地始發A
AS_PathO
Origin,起源M
MEDE
EBGP優於IBGPN
Next-Hop,下一跳
前8條選路原則完全相同,最大負載條目大於等於2,就不會再向後比,直接負載
各種屬性對選路的影響
Preference_Value
- Preference_Value是BGP的私有屬性,Preference_Value相當於BGP選路規則中Weight值,僅在本地路由器生效,Preference_Value值越大,越優先
聚合
- 聚合路由優先級:手動聚合>自動聚合
EBGP鄰居的路由優於IBGP鄰居的路由
- AS內的路由器收到IBGP和EBGP的路由,會優先選擇EBGP學習到的路由
AS內部IGP的Metric
- 調整IGP的Cost,提升帶寬
BGP路由聚合
- BGP在AS之間傳遞路由信息,AS的數量增多,單個AS規模擴大,BGP路由表變大,帶來的問題:
- 存儲路由表佔用大量內存資源,傳輸和處理路由信息消耗大量貸款
- 傳輸的路由條目出現頻繁的更新和撤銷,對網絡的穩定性造成影響
BGP路由聚合的必要性
- 將以下路由聚合
10.1.8.0/24
10.1.9.0/24
10.1.10.0/24
10.1.11.0/24
靜態
- 靜態一般用的較少
ip route-static 10.1.8.0 22 null 0
network 10.1.8.0 22
自動聚合
summary automatic //自動聚合,按主類聚合,掩碼爲8
手動聚合
以上內容均屬原創,如有不詳或錯誤,敬請指出。