BGP知識(shí)點(diǎn):
BGP基礎(chǔ)配置,BGP 5種報(bào)文,6種鄰居狀態(tài),4大類細(xì)分10種屬性,IBGP EBGP(環(huán)回口 物理接口)建立鄰居,BGP認(rèn)證,fake-as,路由傳遞原則,IBGP防環(huán),EBGP防環(huán),RR防環(huán),BGP路由自動(dòng)聚合,手工聚合(detail-suppressed,supress-policy,attribute-policy,origin-policy),BGP 5種 community屬性,BGP選錄,BGP聯(lián)盟,路由反射器,BGP路由過(guò)濾,引入,下放默認(rèn)路由
邊界網(wǎng)關(guān)協(xié)議BGP(Border Gateway Protocol)是一種實(shí)現(xiàn)自治系統(tǒng)AS之間的路由可達(dá),并選擇最佳路由的 高級(jí)路徑矢量路由協(xié)議
AS,自治系統(tǒng)是指同一個(gè)技術(shù)管理機(jī)構(gòu)管理,使用統(tǒng)一選路策略的一些路由器的集合。
AS的內(nèi)部使用IGP來(lái)計(jì)算和發(fā)現(xiàn)路由,同一個(gè)AS內(nèi)部的路由器之間是相互信任的,因此IGP的路由計(jì)算和信息泛洪完全處于開放狀態(tài),人工干預(yù)很少。
不同AS之間的連接需求推動(dòng)了外部網(wǎng)關(guān)協(xié)議的發(fā)展,BGP作為一種外部網(wǎng)關(guān)協(xié)議,用于在AS之間進(jìn)行路由控制和優(yōu)選。
總結(jié):AS內(nèi)部使用IGP來(lái)計(jì)算和發(fā)現(xiàn)路由;AS之間使用BGP來(lái)傳遞和控制路由
BGP不支持多進(jìn)程,因?yàn)檎_(tái)路由器只能屬于一個(gè)AS
BGP特點(diǎn):非直連建立鄰居關(guān)系 (BGP可以跨越多跳路由器建立鄰居關(guān)系)
這種特點(diǎn)會(huì)產(chǎn)生 BGP路由黑洞 (雙方路由表都看得到,但是ping不通,中間被吸走了)
TCP的三次握手。先啟動(dòng)BGP的一端先發(fā)起TCP連接。如圖所示,RTB先啟動(dòng)BGP協(xié)議,RTB隨機(jī)端口號(hào)向RTA的179端口發(fā)起TCP連接
BGP 鄰居類型
EBGP(External BGP)、IBGP(Internal BGP)
通過(guò)AS number比較
運(yùn)行在不同AS之間的BGP路由器建立的鄰居關(guān)系為EBGP鄰居關(guān)系
運(yùn)行在相同AS內(nèi)的BGP路由器建立的鄰居關(guān)系為IBGP鄰居關(guān)系
OSPF的network有兩個(gè)作用:①建立鄰居 ②宣告網(wǎng)段
OSPF的Hello包:①建立鄰居 ②維護(hù)鄰居
對(duì)于BGP是細(xì)化了,鄰居歸鄰居,路由歸路由
BGP建立鄰居是peer,宣告是network
BGP建立鄰居報(bào)文是open,BGP維護(hù)報(bào)文是keepalive
BGP 5種包
BGP 共有 Open、Update、Notification、Keepalive 和 Route-refresh 等 5種報(bào)文類型。
Open 報(bào)文:是 TCP 連接建立后發(fā)送的第一個(gè)報(bào)文,用于建立 BGP 鄰居之間的連接關(guān)系。
BGP 鄰居在接收到 Open 報(bào)文并協(xié)商成功后,將發(fā)送 Keepalive 報(bào)文確認(rèn)并保持連接的有效性。確認(rèn)后,BGP 鄰居間可以進(jìn)行 Update、Notification、Keepalive 和 Route-refresh 報(bào)文的交換
1、Open 報(bào)文:
用于建立 BGP 對(duì)等體連接,創(chuàng)建時(shí)或重置時(shí)能看到, reset bgp all all
2、Update 報(bào)文:
用于在對(duì)等體之間交換路由信息。需要在BGP中network才會(huì)有Update報(bào)文
3、Notification(通告)報(bào)文:
用于中斷 BGP 連接。
4、Keepalive 報(bào)文:
用于保持 BGP 連接。 周期性發(fā)送。
5、Route-refresh(刷新)報(bào)文:
用于在改變路由策略后請(qǐng)求對(duì)等體重新發(fā)送路由信息。只有支持路由刷新(Route-refresh)能力的 BGP 設(shè)備會(huì)發(fā)送和響應(yīng)此報(bào)文。
refresh bgp all import
BGP 6種鄰居狀態(tài)
Idle:初始狀態(tài) 。reset bgp all才能看到
connection:BGP等待TCP連接的簡(jiǎn)歷
active:TCP連接失敗,重新建立TCP連接
opensent:TCP建立成功,發(fā)送open報(bào)文
openconfirm:收到正確的OPEN報(bào)文 。如果收到Keepalive報(bào)文,則轉(zhuǎn)至Established狀態(tài)。如果收到Notification報(bào)文,則轉(zhuǎn)至Idle狀態(tài)。
established:BGP鄰居建立成功
Idle狀態(tài)是BGP初始狀態(tài)
任何狀態(tài)中收到Notification(通告)報(bào)文或TCP拆鏈通知等Error事件后,BGP都會(huì)轉(zhuǎn)至Idle狀態(tài)
Connect狀態(tài)
BGP啟動(dòng)連接重傳定時(shí)器,等待TCP完成連接
如果TCP連接成功,那么BGP向?qū)Φ润w發(fā)送Open報(bào)文,并轉(zhuǎn)至OpenSent狀態(tài)。
如果TCP連接失敗,那么BGP轉(zhuǎn)至Active(活躍)狀態(tài)。
如果連接重傳定時(shí)器超時(shí),BGP仍沒有收到BGP對(duì)等體的響應(yīng),那么BGP繼續(xù)嘗試和其他BGP對(duì)等體進(jìn)行TCP連接,停留在Connect狀態(tài)。
Active狀態(tài)
BGP總是在試圖建立TCP連接
如果TCP連接成功,那么BGP向?qū)Φ润w發(fā)送Open報(bào)文,關(guān)閉連接重傳定時(shí)器,并轉(zhuǎn)至OpenSent狀態(tài)。
如果TCP連接失敗,那么BGP停留在Acitive狀態(tài)
如果連接重傳定時(shí)器超時(shí),BGP仍沒有收到BGP對(duì)等體的響應(yīng),那么BGP轉(zhuǎn)至Connect狀態(tài)。
OpenSnet狀態(tài)
如果收到的Open報(bào)文正確,那么BGP發(fā)送Keepalive報(bào)文,并轉(zhuǎn)至OpenConfirm狀態(tài)
如果發(fā)現(xiàn)收到的Open報(bào)文有錯(cuò)誤,那么BGP發(fā)送Notification報(bào)文給對(duì)等體,并轉(zhuǎn)至Idle狀態(tài)
OpenConfirm狀態(tài)
BGP等待Keepalive或Notification報(bào)文。如果收到Keepalive報(bào)文,則轉(zhuǎn)至Established狀態(tài),如果收到Notification報(bào)文,則轉(zhuǎn)至Idle狀態(tài)
Established狀態(tài)
BGP可以和對(duì)等體交換Update、Keepalive、Route-refresh報(bào)文和Notification報(bào)文。
如果收到正確的Update或Keepalive報(bào)文,那么BGP就認(rèn)為對(duì)端處于正常運(yùn)行狀態(tài),將保持BGP連接
如果收到錯(cuò)誤的Update或Keepalive報(bào)文,那么BGP就發(fā)送Notification報(bào)文通知對(duì)端,并轉(zhuǎn)至Idle狀態(tài)。
鄰居關(guān)系配置的優(yōu)化
物理口和環(huán)回口配置
IBGP 常規(guī)用環(huán)回口建立
EBGP 常規(guī)用物理接口建立
環(huán)回口建立 IBGP鄰居
環(huán)回口 要加 connect-interface loo0 才能發(fā)送
[R1]bgp 100
[R1-bgp]peer 2.2.2.2 as-n 100 先要有鄰居
[R1-bgp]peer 2.2.2.2 connect-interface loo0 再 指定更新源
環(huán)回口建立 EBGP鄰居
[R2-bgp]peer 3.3.3.3 connect-interface loo0
[R2-bgp]peer 3.3.3.3 ebgp-max-hop 120 讓傳播的足夠遠(yuǎn)。 如果是物理接口 1跳就足夠了。
但環(huán)回口1跳是不夠的, 要修改環(huán)回口 ebgp-max-hop。 即修改TTL值
[R3-bgp]peer 2.2.2.2 ebgp-max-hop
通過(guò)非直連(邏輯接口)建立IBGP鄰居要指定更新源
更新源:BGP通告默認(rèn)是以出接口發(fā)送更新
因?yàn)锽GP默認(rèn)情況下,鄰居建立是通過(guò)本地設(shè)備的出接口向?qū)Χ税l(fā)起TCP連接。指定更新源,實(shí)際就是指定發(fā)出oepn包的源地址,也就是tcp連接的本端地址。因此當(dāng)使用非直連建立IBGP/EBGP 鄰居時(shí)需要指定更新源
BGP 鄰居建立
建立鄰居的前提條件:建立鄰居的地址必須是可達(dá)的
IBGP鄰居建立
1.通過(guò)直連接口建立IBGP鄰居
2.通過(guò)非直連(邏輯接口)建立IBGP鄰居
1.非直連地址必須可達(dá)
2.指定更新源
更新源:BGP默認(rèn)使用設(shè)備出接口發(fā)送報(bào)文和更新路由
因?yàn)锽GP默認(rèn)情況下,鄰居建立是通過(guò)本地設(shè)備的出接口向?qū)Χ税l(fā)起TCP連接,對(duì)端收到TCP報(bào)文會(huì)檢查源目地址,不匹配則建立失敗,指定更新源,實(shí)際就是指定發(fā)出oepn包的源地址,也就是tcp連接的本段地址。因此當(dāng)使用非直連建立IBGP/EBGP 鄰居時(shí)需要指定更新源
EBGP鄰居建立
1 通過(guò)直連接口建立IBGP鄰居
2.非直連建立EBGP
1.地址可達(dá)
2.指定更新源
3.指定最大跳數(shù):使非直連能建立EBGP鄰居 命令:peer 10.1.2.2 ebgp-max-hop
bgp?100??進(jìn)入BGP進(jìn)程,每臺(tái)只能配置一個(gè)進(jìn)程號(hào) router-id?1.1.1.1??配置router??ID peer?2.2.2.2?as-number?100??指定10.1.12.2為對(duì)等體?AS是對(duì)端的AS號(hào) peer?2.2.2.2?connect-interface?LoopBack?0 peer?2.2.2.2?ebgp-max-hop?255 peer?192.168.12.2?as-number?100
如果沒有配置 Router ID,BGP 路由器會(huì)按一定規(guī)則自動(dòng)選舉 Router ID,選舉
規(guī)則如下:
路由器在它的所有 LoopBack 接口上選擇數(shù)值最高的 IP 地址;
如果沒有 LoopBack 接口,路由器會(huì)在它的所有物理接口上選擇數(shù)值最高的 IP
地址。
?
1、基本配置 R1: sys sysname?R1 int?loop?0 ip?add?10.0.1.1?32 int?g0/0/0 ip?add?10.0.12.1?24 int?g0/0/1 ip?add?10.0.21.1?24 q R2: sys? sysname?R2 int?loop?0 ip?add?10.0.2.2?32 int?g0/0/0 ip?add?10.0.12.2?24 int?g0/0/2 ip?add?10.0.21.2?24 int?g0/0/1 ip?add?10.0.23.2?24 int?g0/0/3 ip?add?10.0.32.2?24 q R3: sys sysname?R3 int?loop?0 ip?add?10.0.3.3?32 int?g0/0/0 ip?add?10.0.23.3?24 int?g0/0/1 ip?add?10.0.32.3?24 q 2、配置IBGP鄰居 先保證IBGP內(nèi)互通: R1: ip?route-static?10.0.2.2?32?10.0.12.2 ip?route-static?10.0.2.2?32?10.0.21.2 R2: ip?route-static?10.0.1.1?32?10.0.12.1 ip?route-static?10.0.1.1?32?10.0.21.1 第一種方式:物理口建立IBGP鄰居 R1: bgp?100 router-id?10.0.1.1 peer?10.0.12.2?as-number?100 peer?10.0.21.2?as-number?100 q R2: bgp?100 router-id?10.0.2.2 peer?10.0.12.1?as-number?100 peer?10.0.21.1?as-number?100 q R2: dis?bgp?peer??查看鄰居狀態(tài) dis?bgp?routing-table?? ———————————————————————————————————————————————————————————— 第二種方式:環(huán)回口建立IBGP鄰居 環(huán)回口?要加?connect-interface?loo0?才能發(fā)送 R1: undo?peer?10.0.12.2? undo?peer?10.0.21.2 peer?10.0.2.2?as-number?100 peer?10.0.2.2?connect-interface?loop?0 q R2: ip?route-static?10.0.1.1?32?10.0.12.1 ip?route-static?10.0.1.1?32?10.0.21.1 bgp?100 undo?peer?10.0.12.1 undo?peer?10.0.21.1 peer?10.0.1.1?as-number?100 peer?10.0.1.1?connect-interface?loop?0 q R2: dis?bgp?peer??查看鄰居狀態(tài) dis?ip?routing-table??查看路由表 3.配置EBGP鄰居 第一種方式:環(huán)回接口建立BGP R2: bgp?100 peer?10.0.23.3?as-number?200 peer?10.0.32.3?as-number?200 peer?10.0.3.3?as-number?200 peer?10.0.3.3?connect-interface?loop?0 peer?10.0.3.3?ebgp-max-hop?2 q ip?route-static?10.0.3.3?32?10.0.23.3 ip?route-static?10.0.3.3?32?10.0.32.3 R3: bgp?200 router-id?10.0.3.3 peer?10.0.23.2?as-number?100 peer?10.0.32.2?as-number?100 peer?10.0.2.2?as-number?100 peer?10.0.2.2?connect-interface?loop?0 peer?10.0.2.2?ebgp-max-hop?2 q ip?route-static?10.0.2.2?32?10.0.23.2 ip?route-static?10.0.2.2?32?10.0.32.2 這里重點(diǎn)掌握怎么配置BGP鄰居就行。 4.傳遞路由(后面補(bǔ)充,暫時(shí)不理) R1: bgp?100 ?network?10.0.1.0?255.255.255.0??宣告網(wǎng)段,企圖想讓BGP路由學(xué)習(xí)到。 這個(gè)通過(guò)靜態(tài)學(xué)習(xí)到,又通過(guò)BGP學(xué)習(xí)到,靜態(tài)優(yōu)先級(jí)比較高。dis?bgp?routing-table?會(huì)發(fā)覺這個(gè)不是最優(yōu)的。?因此傳遞不過(guò)去給R3 [R1]int?LoopBack?1 [R1-LoopBack1]ip?add?6.6.6.6?24 [R1-LoopBack1]bgp?100 [R1-bgp]network?6.6.6.0?24 然后在R2?和?R3?dis?bgp?routing-table,發(fā)現(xiàn)學(xué)習(xí)到了? R2: ??????Network????????????NextHop????????MED????????LocPrf????PrefVal?Path/Ogn ?*>i??6.6.6.0/24?????????10.0.1.1????????0??????????100????????0??????i ?R3: ??????Network????????????NextHop????????MED????????LocPrf????PrefVal?Path/Ogn ?*>???6.6.6.0/24?????????10.0.2.2??????????????????????????????0??????100i 在R3上,創(chuàng)建looback2接口,宣告出去,?看看R1和R2的路由表 [R3]int?loo2 [R3-LoopBack2]ip?add?9.9.9.9?24 [R3-LoopBack2]bgp?200 [R3-bgp]net?9.9.9.0 R1: ?Total?Number?of?Routes:?2 ??????Network????????????NextHop????????MED????????LocPrf????PrefVal?Path/Ogn ?*>???6.6.6.0/24?????????0.0.0.0?????????0?????????????????????0??????i ???i??9.9.9.0/24?????????10.0.3.3????????0??????????100????????0??????200i 不是可用的,最優(yōu)的路由條目。這種情況怎么解決?在R2上,設(shè)置next-hop-local?這個(gè)后面會(huì)講到 [R2]bgp?100 [R2-bgp]peer?10.0.3.3?next-hop-local
?
?
peer 關(guān)鍵字后面是對(duì)端鄰居的接口 IP 地址,也可以是環(huán)回口地址
as-number 后面是鄰居路由器所在的 AS 號(hào),
建立 EBGP 鄰居關(guān)系時(shí),一般使用直連接口的 IP 地址;建立 IBGP 鄰居關(guān)系時(shí),一般使用 Loopback 接口的 IP 地址。
BGP 路由的生成方式
BGP路由的生成方式 - Network(1)
Network命令是逐跳將IP路由表中已經(jīng)存在的路由引入到BGP路由表中,宣告出去,其他BGP路由器才能學(xué)到,不可以network一個(gè)不存在的路由條目
BGP路由的生成方式 - Import(1)
Import: 根據(jù)運(yùn)行的路由協(xié)議(RIP,OSPF,ISIS等)將路由引入到BGP路由表中,同時(shí)import命令還可以引入直連和靜態(tài)路由。
但不建議EBGP的路由 引入到IBGP。 承載不了
dis bgp routing-table 查看是否學(xué)習(xí)到BGP路由條目
BGP 通告原則與路由處理
BGP通告原則之一:僅將自己最優(yōu)的路由發(fā)布給鄰居
BGP通告原則之二:通過(guò)EBGP獲得的最優(yōu)路由發(fā)布給所有BGP鄰居
BGP通告原則之三:通過(guò)IBGP獲得的最優(yōu)路由不會(huì)發(fā)布給其他的IBGP鄰居(防環(huán))
BGP通告原則之四:BGP與IGP同步
配置案例:
BGP路由信息處理
bgp路由表,會(huì)提交到本地IP路由表。 路由轉(zhuǎn)發(fā)的時(shí)候看的就是本地IP路由表
BGP 認(rèn)證
認(rèn)證是指路由器對(duì)路由信息來(lái)源的可靠性及路由信息本身的完整性進(jìn)行檢測(cè)的機(jī)制。
修改計(jì)時(shí)器
默認(rèn) BGP 的 keepalive 時(shí)間為 60s, holdtime 為 180s
如果 BGP 對(duì)待體兩端的時(shí)間不同,以時(shí)間小的為準(zhǔn)
修改hold time和keepalive 可以更快驗(yàn)證實(shí)驗(yàn)
[R2-bgp]timer keepalive 20 hold 60 整個(gè)BGP進(jìn)程
簡(jiǎn)單認(rèn)證 方式
[R1-bgp]peer 192.168.12.2 password simple huawei
[R2-bgp]peer 192.168.12.1 password simple huawei
密鑰鏈 方式
[R2]keychain key mode periodic daily
[R2-keychain]key-id 1
[R2-keychain-keyid-1]key-string huawei
[R2-keychain-keyid-1]algorithm md5
[R2-keychain-keyid-1]send daily 09:00 to 17:00
[R2-keychain-keyid-1]receive-time daily 09:00 to 17:00
[R2-keychain-keyid-1]bgp 100
[R2-bgp]peer 192.168.23.3 keychain key
了解:fake-as —— 特殊場(chǎng)景
概念:使用fake-as可以將本地真實(shí)的AS編號(hào)隱藏,其他AS內(nèi)的對(duì)等體在指定本段對(duì)鍛體所在的AS編號(hào)時(shí),應(yīng)該設(shè)置成這個(gè)偽AS編號(hào)。
某臺(tái)A設(shè)備升級(jí)了,然后AS號(hào)改了,等于 鄰居指了不存在的AS號(hào),然后鄰居又不愿意改。
這就有個(gè) fake-as 偽裝。 把某臺(tái)A設(shè)備真實(shí)的AS偽裝,欺騙。
[R2]bgp 2000
[R2-bgp]peer 192.168.12.1 fake-as 200
BGP 對(duì)等體之間的交互原則
BGP 設(shè)備將最優(yōu)路由加入 BGP 路由表,形成 BGP 路由。BGP 設(shè)備與對(duì)等體建立鄰居關(guān)系后,采取以下交互原則:
1、從 IBGP 對(duì)等體獲得的 BGP 路由,BGP 設(shè)備只發(fā)布給它的 EBGP 對(duì)等體。
2、從 EBGP 對(duì)等體獲得的 BGP 路由,BGP 設(shè)備發(fā)布給它所有 EBGP 和 IBGP 對(duì) 9
等體。
3、當(dāng)存在多條到達(dá)同一目的地址的有效路由時(shí),BGP 設(shè)備只將最優(yōu)路由發(fā)布給
對(duì)等體。
4、路由更新時(shí),BGP 設(shè)備只發(fā)送更新的 BGP 路由。
5、所有對(duì)等體發(fā)送的路由,BGP 設(shè)備都會(huì)接收。
BGP 鄰居學(xué)習(xí)next-hop-local補(bǔ)充
BGP無(wú)效路由的原因:下一跳不可達(dá)
下一跳地址為0.0.0.0表示本地產(chǎn)生的BGP路由。
這臺(tái)路由器既連接外部又連接內(nèi)部,當(dāng)路由器由外部路由發(fā)送到內(nèi)部路由的時(shí),改變下一跳為自己
[R3-bgp]peer 1.1.1.1 next-hop-local
[R3-bgp]peer 2.2.2.2 next-hop-local 告訴R2路由器,你去往一臺(tái)路由器的時(shí)候,找我R3就行。
從EBGP鄰居收到的路由,發(fā)給IBGP鄰居的時(shí)候,改變下一跳
但從IBGP鄰居收到的路由,發(fā)給EBGP鄰居的時(shí)候,不需要使用
具體配置:
?
?
1.基本配置 R1: interface?GigabitEthernet0/0/0 ?ip?address?192.168.12.1?255.255.255.0? interface?LoopBack0 ?ip?address?1.1.1.1?255.255.255.0? R2: interface?GigabitEthernet0/0/0 ?ip?address?192.168.12.2?255.255.255.0? interface?GigabitEthernet0/0/1 ?ip?address?192.168.23.2?255.255.255.0? interface?LoopBack0 ?ip?address?2.2.2.2?255.255.255.0? R3: interface?GigabitEthernet0/0/0 ?ip?address?192.168.34.3?255.255.255.0? interface?GigabitEthernet0/0/1 ?ip?address?192.168.23.3?255.255.255.0? interface?LoopBack0 ?ip?address?3.3.3.3?255.255.255.0? R4: interface?GigabitEthernet0/0/0 ?ip?address?192.168.34.4?255.255.255.0? interface?LoopBack0 ?ip?address?4.4.4.4?255.255.255.0? 2.內(nèi)部OSPF配置 R1: ?area?0.0.0.0? ??network?1.1.1.1?0.0.0.0? ??network?192.168.12.1?0.0.0.0? R2: ?area?0.0.0.0? ??network?2.2.2.2?0.0.0.0? ??network?192.168.12.2?0.0.0.0? ??network?192.168.23.2?0.0.0.0? R3: ?area?0.0.0.0? ??network?3.3.3.3?0.0.0.0? ??network?192.168.23.3?0.0.0.0? 3.環(huán)回口建立IBGP鄰居?? R1: [R1]bgp?100 [R1-bgp]router-id?1.1.1.1 [R1-bgp]peer?2.2.2.2?as-n?100 [R1-bgp]peer?2.2.2.2?con?loo0 [R1-bgp]peer?3.3.3.3?as-n?100 [R1-bgp]peer?3.3.3.3?con?loo0 [R1-bgp]net?1.1.1.0?24 R2: [R2]bgp?100 [R2-bgp]router-id?2.2.2.2 [R2-bgp]peer?1.1.1.1?as-n?100 [R2-bgp]peer?1.1.1.1?con?loo0 [R2-bgp]peer?3.3.3.3?as-n?100 [R2-bgp]peer?3.3.3.3?con?loo0 [R2-bgp]net?2.2.2.0?24 R3: [R3]bgp?100 [R3-bgp]router-id?3.3.3.3 [R3-bgp]peer?2.2.2.2?as-n?100 [R3-bgp]peer?2.2.2.2?con?loo0 [R3-bgp]peer?1.1.1.1?as-n?100 [R3-bgp]peer?1.1.1.1?con?loo0 [R3-bgp]net?3.3.3.0?24 4.物理口建立EBGP鄰居 R3: [R3]bgp?100 [R3-bgp]peer?192.168.34.4?as-n?200 R4: [R4]bgp?200 [R4-bgp]router-id?4.4.4.4 [R4-bgp]peer?192.168.34.3?as-n?100 [R4-bgp]net?4.4.4.0?24 不需要改變鄰接接口,也不需要多跳。因?yàn)槭俏锢斫涌? 5.測(cè)試驗(yàn)證,發(fā)現(xiàn)問(wèn)題,解決next-hop-local [R2]dis?bgp?routing-table?發(fā)覺??? 4.4.4.0?不是最優(yōu)的,可用的,不會(huì)放到自己的路由表(ip?routing-table),原因是下一跳不可達(dá)。?直接跨了網(wǎng)段的下一跳是不OK的。 Total?Number?of?Routes:?4 ??????Network????????????NextHop????????MED????????LocPrf????PrefVal?Path/Ogn ?*>i??1.1.1.0/24?????????1.1.1.1?????????0??????????100????????0??????i ?*>???2.2.2.0/24?????????0.0.0.0?????????0?????????????????????0??????i ?*>i??3.3.3.0/24?????????3.3.3.3?????????0??????????100????????0??????i ???i??4.4.4.0/24?????????192.168.34.4????0??????????100????????0??????200i 解決:next-hop-local [R3]bgp?100 [R3-bgp]peer?2.2.2.2?next-hop-local [R3-bgp]peer?1.1.1.1?next-hop-local??? 內(nèi)部?jī)蓚€(gè)都要配next-hop-local,告訴R2,R1?路由器,你去的時(shí)候找我就行了 再次驗(yàn)證: [R2]dis?bgp?routing-table ?Total?Number?of?Routes:?4 ??????Network????????????NextHop????????MED????????LocPrf????PrefVal?Path/Ogn ?*>i??1.1.1.0/24?????????1.1.1.1?????????0??????????100????????0??????i ?*>???2.2.2.0/24?????????0.0.0.0?????????0?????????????????????0??????i ?*>i??3.3.3.0/24?????????3.3.3.3?????????0??????????100????????0??????i ?*>i??4.4.4.0/24?????????3.3.3.3?????????0??????????100????????0??????200iping?-a?1.1.1.1?3.3.3.3 ??PING?3.3.3.3:?56??data?bytes,?press?CTRL_C?to?break ????Reply?from?3.3.3.3:?bytes=56?Sequence=1?ttl=254?time=50?ms
?
?
BGP 常用屬性
4大類細(xì)分10種屬性
4大分類:公認(rèn)必遵、公認(rèn)任意、可選過(guò)渡、可選非過(guò)渡
公認(rèn)必遵(所有路由器,只要運(yùn)行BGP都可以識(shí)別到,Update報(bào)文發(fā)送路由條目的時(shí)候必須攜帶這三個(gè)):Origin(起源)、AS_Path(AS路徑)、Next_hop(下一跳)
公認(rèn)任意:Local_pref、Atomic_aggregate原子聚合(它相當(dāng)于一種預(yù)警標(biāo)識(shí),并不承載任何信息。當(dāng)路由器收到一條BGP路由更新中發(fā)現(xiàn)該條路由攜帶Atomic_aggregate屬性時(shí),它就知道這條路由可能出現(xiàn)了路徑屬性的丟失。)
可選過(guò)渡(可有可無(wú),不知道就傳遞給下一個(gè)對(duì)等體):Aggregator聚合者(用于標(biāo)記路由匯總行為發(fā)生在哪個(gè)AS及哪臺(tái)BGP路由器上)、Community(多個(gè)路由條目放一起)
可選非過(guò)渡(可有可無(wú),不知道就丟棄):MED、ORIGINATOR_ID、CLUSTER_LIST
BGP屬性 —— Origin
Origin屬性定義路徑信息的來(lái)源,標(biāo)記一條路由是怎么成為BGP路由的
IGP(network)>EGP>Incomplete(import)
i -?IGP,?e -?EGP,?? -?incomplete
BGP屬性 —— AS_Path
AS-Path 是 記錄經(jīng)過(guò)的AS-hop 。 默認(rèn)會(huì)選AS-Path短
BGP屬性 —— Next_hop
什么時(shí)候要加 next-hop-local
從EBGP鄰居收到的路由,發(fā)給IBGP鄰居的時(shí)候,改變下一跳
但從IBGP鄰居收到的路由,發(fā)給EBGP鄰居的時(shí)候,不需要使用
BGP屬性 —— Local_Preference
Local_Pref屬性僅在IBGP鄰居之間有效,不通告給其他AS。它表明路由器的BGP優(yōu)先級(jí),用于判斷流量離開AS時(shí)的最佳路由。默認(rèn)為100,值越大越優(yōu)
BGP屬性 —— MED
MED屬性僅在相連兩個(gè)AS(在EBGP傳遞)之間傳遞,收到此屬性的AS不會(huì)再將其通告給任何其他第三方AS,用于判斷流量進(jìn)入AS時(shí)的最佳路由。默認(rèn)為0,越小越優(yōu)
BGP屬性 —— Community
·限定路由的傳播范圍
·打標(biāo)機(jī),便于對(duì)符合相同條件的路由進(jìn)行統(tǒng)一處理
BGP 防環(huán)
IBGP的防環(huán):水平分割,路由器從它的一個(gè)BGP對(duì)等體那里接收到的路由條目不會(huì)將該路由器再傳遞給其他IBGP對(duì)等體。
EBGP的防環(huán):當(dāng)路由器從EBGP鄰居收到BGP路由時(shí),如果該路由的AS_Path中包含了自己的AS編號(hào),則該路由將會(huì)直接丟棄
R2從EBGP鄰居R1 收到R1的路由條目,會(huì)發(fā)送給R3。
如果R3后還有R4,觀察點(diǎn)要轉(zhuǎn)移到R3,R3是通過(guò)IBGP鄰居R2收到的路由條目,是不會(huì)發(fā)給R4的。
如果R4想接收到,R2和R4要建立一個(gè)BGP連接,雖然沒有物理上的直連,但可以建立邏輯相連 —— TCP可達(dá)
路由反射器的防環(huán):Originator_id,Cluster_list
BGP 選路規(guī)則
BGP路由器將路由通告給鄰居后,每個(gè)BGP鄰居都會(huì)進(jìn)行路由優(yōu)選,路由選擇有三種情況:
·該路由是到達(dá)目的地唯一路由,直接優(yōu)選。
·對(duì)到達(dá)同一目的地的多條路由,優(yōu)選優(yōu)先級(jí)最高的。
·對(duì)到達(dá)同一目的地且具有相同優(yōu)先級(jí)的多條路由,必須用更細(xì)的原則去選擇一條最優(yōu)的。
一般來(lái)說(shuō),BGP計(jì)算路由優(yōu)先級(jí)的規(guī)則: 要記住這8條及順序
當(dāng)?shù)竭_(dá)同一目的地存在多條路由且下一跳可達(dá)
1.優(yōu)選協(xié)議首選值(Preference_Value)最高的路由。(私有屬性,僅本地有效)
2.優(yōu)選本地優(yōu)先級(jí)(Local_Preference)最高的路由。 (100,IBGP,越大越優(yōu))
3.優(yōu)選本地生成的路由。手動(dòng)聚合>自動(dòng)聚合>network>import>從對(duì)等體學(xué)到的。
4.優(yōu)選 AS_Path 短的路由。
5.比較 Origin 屬性,起源類型 IGP>EGP>Incomplete。 i>e>?
6.優(yōu)選 MED(Multi Exit Discriminator)值最低的路由。 (0,EBGP,越小越優(yōu))
7.優(yōu)選從 EBGP 學(xué)來(lái)的路由(EBGP>IBGP)。
8.優(yōu)選 AS 內(nèi)部 IGP 的 Metric 最小的路由。
bgp 100
max load-balancing 2
9.優(yōu)選 Cluster_List 最短的路由。 (有做路由反射器RR才考慮)
10.優(yōu)選 Router_ID 最小的路由器發(fā)布的路由。
11.優(yōu)選具有較小 IP 地址的鄰居學(xué)來(lái)的路由。
如果配置了負(fù)載分擔(dān),當(dāng)前8個(gè)規(guī)則相同,且存在多條AS_Path完全相同的外部路由,則根據(jù)配置的路由條數(shù)選擇多條路由進(jìn)行負(fù)載分擔(dān)
BGP 路由聚合
BGP在AS之間傳遞路由信息,隨著AS數(shù)量的增多,單個(gè)AS規(guī)模的擴(kuò)大,BGP路由表將變得十分龐大,因此帶來(lái)如下兩類問(wèn)題:
·存儲(chǔ)路由表將占用大量的內(nèi)存資源,傳輸和處理路由信息需要消耗大量的帶寬資源;
·如果傳輸?shù)穆酚蓷l目出現(xiàn)頻繁的更新和撤銷,對(duì)網(wǎng)絡(luò)的穩(wěn)定性會(huì)造成影響
BGP路由聚合的必要性,AS內(nèi)的路由器比較低端,處理能力較低,希望訪問(wèn),又不希望接收過(guò)多的路由條目
聚合方法 —— 靜態(tài)
null 0 表示不存在的接口,起到防環(huán)作用
聚合方法 —— 自動(dòng)聚合
undo synchronization 關(guān)閉同步
自動(dòng)聚合是針對(duì) 引入來(lái)的路由有效,對(duì)network無(wú)效
聚合方法 —— 手動(dòng)聚合 (靜態(tài)和aggravate)
BGP路由聚合 會(huì)有明細(xì)和聚合后的。 因此要通過(guò)路由聚合屏蔽明細(xì)路由,只將一條聚合后的路由發(fā)出去 detail-suppressed
審核編輯:黃飛
評(píng)論