目錄
一.AS號
二.BGP路由生成
1.network
2.import-route引入
三.BGP通告原則
1.只發布最優且有效的路由
2.從EBGP獲取的路由,會發布給所有對等體
3.水平分割原則
4.IBGP學習BGP默認不發送給EBGP,但如果也從IGP學習到了這條路由,就發給EGP
四.BGP路徑屬性
(1).公認屬性
1.公認必遵
1.AS_Path
2.Origin
3.Next_Hop
2.公認任意
1.local preference
2.Atomic_aggregate
(2).可選屬性
1.可選過渡
1.community
2.可選非過渡
1.MED
.local preference(本地優先級)是如何離開
五.BGP路由反射器
(1).路由反射器的角色
1.RR
2.client
(2)反射規則
(3)水平分割防反射可能出現的環路
1.originator_ID
2.cluster_list
一.AS號
AS長度是16bit,范圍是0-65535
分為公有和私有
公有:1-64511
私有:64512-65534
二.BGP路由生成
BGP是無法發現和計算路由的,他只能從IGP引入路由,有兩種方式
1.network
宣告網段,一條一條來,但可靠性高,沒有這個網段就無法宣告
2.import-route引入
批量引入IGP的路由,生成聚合
三.BGP通告原則
1.只發布最優且有效的路由
*——有效
>——最優
有效路由是說下一跳必須可達
2.從EBGP獲取的路由,會發布給所有對等體
包括IBGP/EBGP,但下一跳不改變直接發
3.水平分割原則
從IBGP獲取的路由,不會再發送給其他IBGP對等體
就是說只傳一跳,防止形成路由環路
4.IBGP學習BGP默認不發送給EBGP,但如果也從IGP學習到了這條路由,就發給EGP
如果沒有原則4,會產生路由黑洞
當R5向10.0.12.1發消息,可以找到R3,但R3和R2建立的是IBGP,沒有物理鏈路,就只能通過R4發送,但此時IGP沒有這條路由,R4在路由表查找不到這條路由,只能丟棄,發一個吞一個,就叫路由黑洞。
那么如果有了原則4,只有IGP有這條路由,也就意味著R4有這條路由,才發給另一個EBGP——R5,就不會出現路由黑洞問題。
但這個原則用的不多,華為一般認為IBGP全互聯解決路由黑洞比較好。
四.BGP路徑屬性
我們上一篇了解到,BGP可以根據不同網絡需求選擇不同路徑,選取最優路徑,現在我們一起學習有效BGP的路徑屬性
(1).公認屬性
所有BGP可識別
1.公認必遵
每個路由器必識別,在每一個Update信息里
1.AS_Path
前往目標路由器經過的AS列表
作用是防環和路由優選
防環
路由器在學習到一條路由后,在自己的AS_path左側添加學到路由的AS號,當路由器學到一條路由,在這條路由的AS_path中看到自己的AS號,就不再學習。起到防環作用。
路徑優選
AS_Path列表AS數量少(AS_Path短)的路徑更優,經過的路由器少
AS——Seqence
有序AS號,默認情況下,就是我們防環和路徑優選這種例子
AS_set
無序AS列表,在做鏈路聚合時,不再加上聚合前的AS號,因為要是想要訪問這個網段,就直接找R3就可以了
修改AS_path
Additive:直接在左側追加AS號
Overwrite:替換AS號
None?Overwrite:清空AS列表
2.Origin
標記路由器起源
關于起源名稱很容易與路由協議按區域分類搞混,所以這里我們不要管這個起源名稱
直接看標識和學習方式。
如果是BGP network方式學習到的,那么這個路由一定在路由表里,不然沒有辦法宣告,所以他的受信任度是最高的,標識為i
如果是 BGP學習到的,那么標識為e
如果是路由引入學習來的,那么他最不可信,受信任度最低,標識為?
3.Next_Hop
下一跳可不可達
下一跳設置規則
1)設置為BGP鄰接關系接口
2)設置為環回地址
3)設置為本地,peer 3.3.3.3 next_hop_local,會自動把下一跳改為自己的本地地址
4)Next_Hop與EBGP是一個網段,不改變下一跳
2.公認任意
有需求則帶
1.local preference
本地優先級越高,路徑越優
local preference注意事項
1)只在IBGP內有效
2)重新打上本地優先級,發到不同BGP
3)默認為100
local preferenceAS內如何離開AS
2.Atomic_aggregate
原子聚合
聚合后丟失路徑屬性,需要給下游的對等體警告,并提示聚合點已經聚合設備的AS號
(2).可選屬性
不需要被所有了路由器識別
1.可選過渡
BGP不識別但發給其他路由器
1.community
我們一般使用ACL或IP Prefix-list來進行攔截或讓通行不同的業務流量,但這樣非常麻煩,要一條一條的設置
那么我們使用.community就會快很多
community可以看作是一個標簽/標記,TAG,來簡化路由策略
2.可選非過渡
BGP不識別就不發給其他路由器
1.MED
可以看作是開銷值,默認不攜帶,并且默認為0
告知其他路由器如何進入本區域
.local preference(本地優先級)是如何離開
MED注意事項
1)缺省情況下,只比較來自同一個相鄰AS時比較,不同相鄰AS不比較
2)EGP對等體情況下
是network,import_routez學到的,MED就是他的cost
不跨區域傳播
五.BGP路由反射器
水平分割使IGBP獲取的路由只能發一跳,避免產生路由環路,但這樣可能會有路由黑洞,華為一般認為IBGP全互聯解決這個問題,但這樣會維持太大的路由表項,就有了路由反射器來解決這個問題。
(1).路由反射器的角色
1.RR
路由反射器
2.client
RR客戶端
(2)反射規則
1.RR從非客戶端學習到一條IBGP,反射給所有的客戶端
2.RR從客戶端學習到一條IBGP,反射給除此客戶端的所有的客戶端,以及所有非客戶端
3.從EBGP學習到,反射給所有BGP鄰居
(3)水平分割防反射可能出現的環路
RR可以說是打破了水平分割原則,那么就有可能出現環路
那么我們又要打破RR的環路
1.originator_ID
通告該路由的BGP路由器Router ID
如果AS內有多個RR,originator_ID由第一個RR創建
如果一條路由器收到的路由信息中originator_ID與自己的Router ID相同,那么他就忽視這條路由更新,上圖第4步,R1就直接不接收這條BGP路由和更新,就不會有環路
2.cluster_list
反射簇列表:一個 RR和他的所有client
.cluster_ID默認是這個RR的Router ID
當一個路由信息被反射后,他就把發射他的RR的cluster_ID加到cluster_list中。當一個RR收到帶
.cluster_list的路由信息時,有他自己的cluster_ID,就忽視這條路由更新。