拓撲
基礎配置
1、IGP
(1)AR-1,AR-2,AR-3運行OSPF協議
AR-1,AR-2的環回口宣告進OSPF協議,AR-3環回口不要宣告進OSPF
(2)AR-4與AR-5運行IS-IS協議,將各自環回口宣告進IS-IS協議
2、靜態路由
在AR3與AR5互相配置指向對方環回接口的靜態路由
3、BGP
IBGP: AR-1與AR-3通過環回口建立IBGP鄰居(AS 100)
EBGP:AR-3與AR-4通過直連物理接口建立EBGP鄰居
AR-3與AR-5通過環回接口建立EBGP鄰居
[AR-5]bgp 200
[AR-5-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[AR-5-bgp]peer 3.3.3.3 next-hop-local
[AR-5-bgp]peer 3.3.3.3 ebgp-max-hop
其他設備配置類似
dis bgp peer
BGP狀態停留測試
1、Idel空閒狀態(不進行TCP連接也不發送任何BGP報文)
本BGP設備的IP路由表內不存在去往鄰居的路由信息
(1)只在設備AR1配置了以下命令,其他設備沒有配置BGP的相關信息
[AR-1]bgp 100
[AR-1-bgp]router-id 1.1.1.1
[AR-1-bgp]peer 3.3.3.3 connect-interface l0
[AR-1-bgp]peer 3.3.3.3 next-hop-local
dis bgp peer
(2)在IBGP全互聯的情況下,執行以下命令
[AR-1-bgp]undo peer 12.1.1.2
[AR-2-bgp]undo peer 23.1.1.3
[AR-2-bgp]undo peer 12.1.1.1
[AR-3-bgp]undo peer 23.1.1.2
dis bgp peer
2、Connect連接狀態
嘗試TCP連接狀態
(1)本地設備存在去往指定鄰居的路由,但是中間設備不存在去往指定鄰居的路由
[AR-1-bgp]undo peer 12.1.1.2
[AR-2-bgp]undo peer 23.1.1.3
[AR-2-bgp]undo peer 12.1.1.1
[AR-3-bgp]undo peer 23.1.1.2
dis bgp peer
(2)EBGP建立鄰居數據包的TTL值消耗殆盡
AR6
isis 1
auto-cost enable
network-entity 49.0001.0000.0000.0006.00
#
interface GigabitEthernet0/0/0
ip address 56.1.1.6 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 6.6.6.6 255.255.255.255
isis enable 1
#
bgp 200
peer 3.3.3.3 as-number 100
peer 3.3.3.3 ebgp-max-hop 255
peer 3.3.3.3 connect-interface LoopBack0
peer 5.5.5.5 as-number 200
peer 5.5.5.5 connect-interface LoopBack0
#
ipv4-family unicast
undo synchronization
peer 3.3.3.3 enable
peer 5.5.5.5 enable
#
ip route-static 0.0.0.0 0.0.0.0 56.1.1.5
#
[AR-3-bgp]peer 6.6.6.6 ebgp-max-hop
[AR-6-bgp]peer 3.3.3.3 ebgp-max-hop
dis bgp peer
修改EBGP數據包中的TTL值爲1
[AR-6-bgp]peer 3.3.3.3 ebgp-max-hop 1
[AR-3-bgp]peer 6.6.6.6 ebgp-max-hop 1
dis bgp peer
3、Active:活躍狀態
TCP連接失敗,完成重傳計時器後重新發起新一輪TCP連接
dis bgp peer
(1)指定鄰居地址錯誤
[AR-2-bgp]peer 12.1.1.3 as 100
[AR-2-bgp]undo peer 12.1.1.1
dis bgp peer
(2)與鄰居R-ID重複(短暫出現在Active狀態)
[AR-1-bgp]router-id 3.3.3.3
AR3的g0/0/1接口,開啓抓包;(重新啓動鄰居狀態)
總結
BGP5種報文類型
Open:協商鄰居
TCP 會話建立起來自以後,兩個鄰居都要發送一個 Open 報文,每個鄰居都使用該報文標識自己,並且規定自己的 BGP 運行參數。如果 open 消息被接受,則回送一條 keepalive 消息進行確認,確認後就能發送 update
Update:更新路由/撤銷路由
Update報文進行路由信息的交換;Update報文既用來通告可用路由信息,也可以通告不可達需要撤銷的路由信息
Notification:錯誤通告
當BGP檢測到錯誤狀態時,就會向對等體發出Notification通知報文,之後BGP連接會立即中斷
Keeplive:保持鄰居關係
如果路由器接受了鄰居在 OPEN 消息中的參數,就會應答一個 keeplive 消息,並且在此後 1/3 的 holdtime(但不小於 1S)爲週期發送該消息,華爲設備默認 60S一發,保持時間默認180S。如果協商後保持時間爲 0,標識此鄰居永遠UP,則不發送 keepalive 保活消息
Route-refresh:用來刷新路由
路由刷新報文用來要求對等體重新發送指定地址族的路由信息
BGP狀態機
1、Idle狀態
Ide-----空閒狀態
(1)BGP空閒狀態,在Idle狀態下BGP拒絕鄰居發送的連接請求,此時等待由BGP系統發出的Start事件
(2)Start(管理員配置鄰居)事件發生後,BGP會對自己的資源進行初始化,重置連接計時器(Connect Retry 默認32S)發起TCP連接請求,並開始偵聽遠端對等體發起的連接端口,並轉至Connect狀態
2、Connect狀態
Connect-----連接狀態-----發起TCP的三次握手
在Connect狀態下,BGP啓動連接重傳定時器,等待TCP完成連接。
(1)如果TCP連接成功,那麼BGP會向對等體發送Open報文,並轉至OpenSent狀態
(2)如果TCP連接失敗,那麼BGP轉至Active狀態
(3)如果連接重傳定時器超時,BGP任沒有收到BGP對等體的響應,那麼BGP繼續嘗試TCP連接,停留在Connect狀態。
3、Active狀態
Actieve-----活躍狀態-----不斷重新發起TCP的三次握手
在Active狀態下,BGP總是試圖建立TCP連接
(1)如果TCP連接成功,那麼BGP向對等體發送Open報文,關閉連接重傳定時器,並轉至OpenSent
(2)如果TCP連接失敗,停留在Active狀態
(3)如果連接重傳定時器超時,任沒有收到BGP對等體的響應,那麼BGP轉至Connect狀態
4、OpenSent狀態
openset-----發送open報文協商部居關係
在OpenSent狀態,BGP等對等體的Open報文,並對收到的Open報文中的AS號,版本號,認證信息等進行檢查
(1)如果收到的Open報文正確,那麼BGP發送Keepalive報文,且重置Keepalive定時器,並轉至OpenConfirm狀態。
(2)如果發現收到的Open報文有錯誤,那麼BGP發送Notification報文給對等體。並轉至Idle狀態。
5、OpenConfirm狀態
Openconfim-----自己發送Keeplive-----等待對方的Keeplieve
在OpenConfirm狀態下,BGP等待Keepalive或Notification報文。
(1)如果收到Keepalive報文,則轉至Established狀態(BGP鄰居的最終狀態)
(2)如果收到Notification報文,則轉至Idle狀態
6、Established狀態
Established-----最終狀態----接下來就可以發送UPdate
在Established狀態下,BGP對等體之間交互Update,Keepalive,Route-refresh報文和Notification報文。
BGP鄰居的建立
1、通用事項
(1)建立鄰居之前請先檢查本設備BGP的更新源地址與對端更新源地址網絡互通。
(2)確保本設備爲任何針對BGP鄰居地址的TCP-179的限制或者策略
2、EBGP鄰居建立
(1)不同AS號的BGP設備建立EBGP鄰居,用於不同AS之間路由信息的傳遞
(2)EBGP建立鄰居建議採用直連物理接口
(3)如果EBGP鄰居之間存在多條直連路徑,需要指定建立BGP鄰居的更新源地址(connect-interface 接口編號)
(4)如果採用環回口建立EBGP鄰居,必須補充以下兩步
必須指定對等體的更新源地址
[AR-3-bgp]peer 12.1.1.1 connect-interface LoopBack 0 //指定與12.1.1.1建立鄰居時更新源地址爲本設備的環回口0必須更改建立鄰居數據包的TTL值參數(EBGP的數據包,TTL默認爲1)
[AR-3-bgp]peer 34.1.1.4 ebgp-max-hop //修改與34.1.1.4建立EBGP鄰居的數據包TTL值爲X,如果不明寫則修改爲255
(5)如果採用物理接口建立鄰居,存在多條路徑,且屬於非直連狀態時,需要指定更新源
3、IBGP鄰居建立
(1)同AS號的BGP設備建立IBGP鄰居,用來傳遞本AS內路由信息的傳遞
(2)IBGP建立鄰居建議採用設備環回口,如果採用環回口建立鄰居,必須執行以下動作
必須指定對等體的更新源地址
[AR-3-bgp]peer 12.1.1.1 connect-interface LoopBack 0 //指定與12.1.1.1建立鄰居時更新源地址爲本設備的環回口0(建立IBGP鄰居建議採用環回口)
(3)如果採用物理接口建立鄰居,存在多條路徑,且屬於非直連狀態時,需要指定更新源
BGP鄰居關係建立
BGP路由屬性及所屬類型
類型 | 屬性類型代碼 | 屬性類型 |
---|---|---|
公認必須遵循 | 1 | Origin(源) |
公認必須遵循 | 2 | AS-Path(AS路徑) |
公認必須遵循 | 3 | Next_Hope(下一跳) |
可選非過渡/可選非傳遞 | 4 | Multi_Exit_Dise(多出口區分) |
公認任意 | 5 | Local_Pref(本地優先級) |
公認任意 | 6 | Atomic_Aggregate |
公認任意 | 7 | Aggregator |
可選過渡/可選傳遞 | 8 | Community(團體) |
可選非過渡/可選非傳遞 | 9 | Originator_ID |
可選非過渡/可選非傳遞 | 10 | Cluster_List |
本人所有文章都受版權保護,著作權歸藝博東所有!未經授權,轉載必究或附上其原創鏈接。