一、先總結一下BGP怎麼學(磨刀不誤砍柴工哈):
先看BGP的特性ferture,然後再看這些ferture在數據包傳遞過程中會產生哪些問題,接下來就看怎麼解決這些問題,以實現數據包的正確傳遞!
1:BGP靠TCP進行連接,故第一步要保證三層IP的可達性;
2:BGP以單播建鄰居,故須手工指鄰居;
3:BGP有源檢測特性,故鄰居地址須和發送更新地址保持一致(至少保證一條TCP連接);
4:EBGP鄰居open包的TTL值爲1(其他包呢),如以環回接口建鄰居須將它改大;
5:BGP要關自動彙總吧,這個是因爲什麼?
6:BGP有同步規則,這會導致傳輸AS不傳遞路由條目(從外部AS傳過來的條目不再傳向其他AS)[這個同步關了會造成路由黑洞,不關路由器承受不住,怎麼折衷?傳輸AS的路由器性能應該不錯吧,爲什麼還要關同步?];
7、BGP有水平分割,在同一個AS內路由條目只傳一跳,故要求IBGP全互聯或者是做路由反射;
8、BGP的下一跳是以AS計數,故爲了保證數據包能夠被正確封裝,應該將下一跳改成物理上的下一跳(這個如果BGP和IGP同步了就不用打nexthop-self命令了吧?)
回頭看看,這好像都是從BGP到數據包的思路,那麼還可以從數據包到BGP吧。嗯,兩種思路!回頭再總結一下!
二、next-hop屬性
1、針對EBGP鄰居傳遞過來的條目;
2、非MA網絡上只須在連接外部AS的邊緣路由器上打相應命令;
3、MA網絡上的next-hop,如圖:
(1)A向AS65000傳遞路由時無須更改下一跳
(2)第三方下一跳:
前提:以直連物理口建立鄰居
問題:AS65000在向A傳遞外部AS路由條目時會先經C到B然後到A,並且A上這種條目的下一跳地址會顯示爲B,這在MA網絡中並不是數據包傳遞的最佳路徑(完全可由C直接到A)。BGP解決這種問題的具體方法是怎麼樣的?沒弄明白,還請老師指教!!!
三、peer-group
1、作用:簡化IBGP鄰居配置任務;減少資源消耗(只對peer-group建立緩存)
2、範圍:針對IBGP鄰居
3、命令:
R2(config-router)#neighbor PG peer-group 建立peer-group
R2(config-router)#neighbor PG remote-as 123 設置peer-group所屬AS
R2(config-router)#neighbor PG update-source lo0 指明更新源
R2(config-router)#neighbor PG next-hop-self 修改下一跳
R2(config-router)#neighbor 1.1.1.1 peer-group PG 針對1.1.1.1這個鄰居調用peer-group
R2(config-router)#neighbor 3.3.3.3 peer-group PG 調用
4、不足:一旦所有的IBGP鄰居都用peer-group建立,就不能針對單個IBGP鄰居實施出站策略(入站策略還是可以的)
四、鄰居狀態
1、idle:在這上狀態下BGP會查路由表,看有沒有去往建立鄰居地址的路由,如果有的話則進行TCP的連 接,一直處於此種狀態則表明找不到去住鄰居地址的路由,無法完成數據幀的封裝;
2、Active:有路由了,這時嘗試建立TCP的連接,發出TCP請求;
3、Connect:被請求的一方纔會有這種狀態(端口爲179的一方),出現這種狀態表示TCP連接已經建立;
4、Open sent:發送BGP的路由信息
5、Open confirm:路由信息發送完畢,鄰居關係快要協商成功了
6、Established:鄰居關係建立,開始爲數據包提供正常的路由.
注意:一會顯示idle一會顯示active,則有以下原因:
發出去的包鄰居沒有回包;
指的鄰居地址不對;
AS號碼錯誤.
五、BGP的認證
1、只支持MD5認證
2、非對稱式密鑰,只發消息摘要,不發密碼本身
3、針對每個TCP段、每個路由更新進行認證
4、命令
R3(config-router)#neighbor 1.1.1.1 password 0 cisco
六、查看寫路由表失敗的路由:
show ip bgp rib-failure 可以看到失敗的原因
七、BGP會話的清除方式
作用:讓BGP立刻執行所實施的策略
1、硬清除:直接清除鄰居關係重新建;
(1)R3#clear ip bgp *
清除所有BGP的會話,鄰居關係重新從IDLE狀態開始協商
(2)R3#clear ip bgp 1.1.1.1
清除單個的BGP鄰居
2、軟清除:清除BGP路由重新發或者重新收
(1)R3#clear ip bgp * soft out 只針對out方向清,in方向通常清不了(原因?)
(2)R3#clear ip bgp 1.1.1.1 soft out
(3)清入站路由更新
R3(config-router)#nei 2.2.2.2 soft-reconfiguration inbound
R3#clear ip bgp * soft in
或者到鄰居端清出站更新
這個好像沒多大效果啊,沒看出來
3、等待BGP的刷新,讓它自己清
八、路由黑洞
1、BGP水平分割帶來的黑洞
(1)原因:IBGP的水平分割
(2)解決方法:IBGP全互聯、路由反射器、BGP聯盟
(3)查看向鄰居通告了哪些BGP路由
R2#show ip bgp neighbors 1.1.1.1 advertised-routes
BGP table version is 4, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 4.1.1.0/24 202.100.0.1 0 0 400 i
2、不同步帶來的路由黑洞
(1)原因:沒有路由
(2)解決:同步
九、路由反射器
1、路由反射簇:路由反射器和它的客戶端所在的範圍,可以看作是一個邏輯上的路由器,但這個路由器只有RR知道,非RR只是一個普通的IBGP路由器。
2、工作原理
卷二上是這麼說的
(1)從客戶端發送過來的BGP路由RR會發送給其他客戶端,會反射給其他非客戶端,會反射給EBGP鄰居;
(2)從非客戶端發送過來的BGP路由RR會發送給它的客戶端,會發送給它的EBGP鄰居,但不會發送給其他的非客戶端;
(3)從EBGP鄰居發送過來的BGP路由RR會發送給它的客戶端、非客戶端
但是這很廢話,所以事實上我們可以把路由反射器理解爲遵從BGP規則的一個邏輯路由器。
3、應用:在IBGP之間打破BGP水平分割原則傳遞BGP路由(前提:該路由在RR上能夠被優化--下一跳可達)
4、配置:
R1(config-router)#nei 3.3.3.3 route-reflector-client 指明客戶端
R1(config-router)#bgp cluster-id ? 配置簇ID(可選)
<1-4294967295> Route-Reflector Cluster-id as 32 bit quantity
A.B.C.D Route-Reflector Cluster-id in IP address format
有關簇ID:在BGP選路的時候會用到,經過的簇越多,簇ID越長(?),越不優選。
5、實踐:中間的路由器做雙向的反射,如果存在多臺中間路由器,則這些中間路由器都得做路由反射器,以最終將BGP路由傳遞出去
十、BGP聯盟
1、含義:大AS含小AS
2、聯盟AS號:通常爲私有AS號
3、角色:聯盟IBGP、聯盟EBGP
4、做法:將IBGP域用私有AS號劃成幾個小AS,對外以大AS宣告
5、問題:
(1)一臺路由器上只能起一個BGP進程,私有AS號又不能在公網上識別,如何與外部AS建立EBGP鄰居?
(2)聯盟EBGP之間鄰居關係的建立:須用到EBGP多跳屬性
(3)聯盟EBGP路由器都宣稱自己是大AS,但是又不是屬於同一個AS,怎麼建立鄰居?
(4)下一跳的問題
6、解決:
(1)向外宣告大AS(注意:大AS內所有路由器都得打這條命令);
R3(config-router)#bgp confederation identifier 123
(2)在聯盟EBGP對等體上修改更新源和TTL值;
(3)不向聯盟AS宣告自己的大AS號
R3(config-router)#bgp confederation peers 65100 65200
(4)修改下一跳,聯盟BGP之間也得這樣做
7、變與不變:
(1)變:AS path
路由條目標識
(2)不變:從聯盟EBGP學來的路由條目的管理距離仍爲200
8、應用:打破BGP水平分割傳遞路由
變態了一把:中間的路由器上不宣告自己的大AS號,結果報錯,公網上的BGP路由的AS path中出現了私有AS號!
BGP
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
關於jdbc的模塊化和事務處理
yi_sixian
2019-02-23 14:00:41
自動化安裝Mysql5.6-腳本實現
張斌66
2019-02-23 13:44:28
usb接口發現硬件卻用不了
lzh0601
2019-02-23 13:41:55
讓不同網段之間可以ping通
小紅帽子
2019-02-23 13:37:48
Java 學習筆記(一)
羽化飛仙
2019-02-23 13:31:17
今日奇葩事件,一位不懂技術,卻來管理技術團隊的領導
happlehou
2019-02-23 13:21:00
.NET中結構與類的區別
riran
2019-02-23 12:57:35
單例模式
947154267yjn
2019-02-23 00:37:25
java基礎第五天_靜態代碼塊、類的繼承和接口
TurboL
2019-02-23 00:34:22
全國通用ADSL寬帶賬號快速檢測工具0.2 拽爺 專版
wpawpa2pojie
2019-02-23 13:57:48
Tiled地圖的簡單應用
guoshuang_123
2019-02-23 13:43:55
開放式防尾隨速通門技術探討
ran_sy
2019-02-23 13:41:40
計算數IP據報的校驗和
novlqq
2019-02-23 00:34:27