一、BGP的宣告問題:
1、若通過BGP協(xié)議傳遞的路由條目與本地通過其他協(xié)議學習到的條目目標一致,將出現(xiàn):
(1)該路由同時作為與其他BGP鄰居建立鄰居關系時的底層路由,那么這條BGP路由將不優(yōu),不能傳遞也不能加表
(2)該路由不作為建立其他BGP鄰居的路由,將在本地不加表,但可以傳遞,屬于優(yōu)的路由;
例:
(1)R2與R3運行了OSPF,之后R2學習到的R3的32位環(huán)回主機路由,再將R2與R3建立BGP的鄰居關系;
(2)之后R3在BGP協(xié)議中宣告了32位的環(huán)回路由,那么該條目到達R2后,將不優(yōu); --BGP的建鄰路由與BGP的傳遞路由相同;
(3)在R2與R3建立鄰居關系時,ospf將R3環(huán)回以32位傳遞,但BGP使用24位來傳遞該環(huán)回路由的話,那么等于BGP建鄰為32位,bgp傳遞為24位,不是同一條路由,可以優(yōu),可以傳遞,也可以加表。
注:以上問題在華為設備將出現(xiàn),但cisco中若bgp傳遞路由在本地路由表中已經(jīng)通過其他IGP擁有,將被標記為r-RIB 不裝載—本地不加表,但可以傳遞;
2、在BGP協(xié)議中進行宣告時,是宣告本地路由表中任意路由,不關注這些條目的產(chǎn)生方式;
默認將攜帶這些路由的cost值到BGP的路由條目中去;若本地將本地宣告的BGP路由傳遞給本地的EBGP鄰居,將攜帶這些cost,便于本地的EBGP鄰居所在AS內(nèi)部設備選路,當然該路由在進入其他AS時不會修改度量;
若本地通過IBGP鄰居學習到了BGP路由,優(yōu)且存在cost值,在本地將這些路由傳遞給本地的EBGP鄰居時,將cost值歸0,因為這些度量不是本地產(chǎn)生的。
例:
(1)R2與R1為EBGP鄰居,那么R2宣告本地通過OSPF協(xié)議學習到的路由4.4.4.4/32度量為2,那么這條路由在進入BGP表時攜帶度量值2,傳遞給R1,R1在路由表中顯示該度量,同時傳遞給R1內(nèi)部AS時度量不變;
(2)該拓撲中R2與R4為IBGP鄰居,這條BGP路由也會被R2傳遞給R4,但R4 再將該路由傳遞給R4的EBGP鄰居關系R5時,將度量歸0;
(3)若R4也宣告4.4.4.4/32這條路由,那么傳遞給R5時將攜帶R4到達該網(wǎng)段的cost值,因為只有本地最優(yōu)路由可以傳遞,本地宣告優(yōu)于其他鄰居傳遞過來的BGP路由。
總結:
存在EBGP鄰居關系(連接其他的AS)的所有BGP設備均建議宣告內(nèi)部AS的路由;
二、重發(fā)布
BGP協(xié)議宣告的路由,基本是本地通過IGP學習到的本as路由;數(shù)量較大,若逐條宣告,配置量很大,但可控性強; 也可以在同時運行BGP和igp的設備,將IGP協(xié)議重發(fā)布到BGP協(xié)議中,來實現(xiàn)批量的路由宣告效果;
宣告相當于逐條的重發(fā)布,重發(fā)布相當于批量的宣告;兩者產(chǎn)生的路由條目,起源屬性不同,其他屬性默認完全一致;
總結:
存在EBGP鄰居關系(連接其他的AS)的所有BGP設備均建議重發(fā)布IGP到BGP;
三、自動匯總
默認cisco和華為設備均關閉了自動匯總
自動匯總對于BGP正常通過network宣告產(chǎn)生的路由沒有影響;
僅針對從IGP重發(fā)布到BGP的路由條目產(chǎn)生影響;--- 路由條目以主類長度發(fā)送,不攜帶cost值;
[r1]bgp1 [r1-bgp]summaryautomatic開啟自動匯總,建議維持默認關閉狀態(tài)
四、手工匯總—聚合
1、 利用了BGP的宣告的特點,本地路由表中任意路由,不關注來源均可以宣告到BGP中;
不用逐一宣告明細路由,先本地手工靜態(tài)一條指向匯總網(wǎng)段的空接口防環(huán)路由,然后再將其宣告到BGP協(xié)議中來;從IGP表中宣告到BGP協(xié)議中的條目,僅攜帶目標網(wǎng)絡號和度量值;
例:先在R1上手寫兩條環(huán)回路由分別為 99.1.1.1/24 和 99.1.2.1/24,再將兩條路由匯總網(wǎng)段指向空接口,然后將網(wǎng)段宣告到BGP協(xié)議中。
在R2上查看:
聚合的缺點是將多個網(wǎng)絡號合成一個,導致訪問整個聚合網(wǎng)段時,僅存在唯一的路徑;
若在多路徑建鄰的前提下,將無法精確的選路;故在大型的多鏈路的網(wǎng)絡中為了更好控制選路,必然在傳遞聚合條目的同時,再在最佳路徑處傳遞部分的明細路由。
若需要在傳遞聚合條目的同時,傳遞部分明細路由,只需要在宣告的空接口路由后,逐一宣告需要的明細路由即可。
以上做法的缺點是:不能攜帶原有明細路由的cost值,因為宣告的是本地路由表中人為添加那條靜態(tài)空接口路由。
2、 標準的BGP路由聚合—先逐一手工宣告明細,或批量重發(fā)布路由;再進行聚合配置,默認在本地生成空接口防環(huán)路由
[r1-bgp]aggregate99.1.0.022聚合和所有明細路由均發(fā)送 [r1-bgp]aggregate99.1.0.022detail-suppressed抑制所有的明細路由,僅發(fā)送聚合條目
如果直接配置聚合和所有明細路由,在R2上查看:
會發(fā)現(xiàn)聚合和所有明細路由均會被傳遞,也意味著所有明細路由會被加表
如果在聚合路由后邊加上抑制明細:
然后查看R1的BGP表,發(fā)現(xiàn)所有明細均被抑制
查看R2的BGP表:往下只發(fā)送聚合路由
使用該方法配置聚合會在該路由器R1上自動生成一條匯總網(wǎng)段指向空接口的放環(huán)路由
以上操作方法:若需要在發(fā)送聚合條目的同時攜帶部分的明細路由,需要使用策略
五、路由控制
1、 抑制列表
抑制列表——默認傳遞所有明細和聚合條目,通過抑制列表,限制不需要傳遞的明細路由。
如果只抑制 99.1.2.1/24 這條路由,首先抓取路由
[r1]ipip-prefixapermit99.1.2.124 [r1]route-policyaapermitnode10 [r1-route-policy]if-matchip-prefixa
進入BGP協(xié)議并做策略抑制該路由
[r1]bgp1 [r1-bgp]aggregate99.1.0.022suppress-policyaa在傳遞聚合條目的同時,抑制99.1.2.1/24這一條明細,其他明細正常轉發(fā)
在BGP協(xié)議中進行匹配抑制目標路由
查看R1的BGP表:只有目標路由被抑制
查看 R2的BGP表:被抑制的路由并沒有往下傳遞
2、使用路由策略在鄰居間直接進行收發(fā)路由的管理
[r1]ipip-prefixwpermit99.1.2.124 [r1]route-policywwdenynode10 [r1-route-policy]if-matchip-prefixw [r1-route-policy]q [r1]route-policywwpermitnode20 [r1]bgp1 [r1-bgp]aggregate99.1.0.022 [r1-bgp]peer12.1.1.2route-policyqqexport
抓取目標路由并在路由策略中進行抑制
然后做一個空表放過所有:
進入BGP中宣告聚合條目并在鄰居出口的方向執(zhí)行該路由策略:
R2上查看BGP表:目標路由被抑制
3、 直接使用前綴列表來實現(xiàn)方法的功能
[r1]ipip-prefixedeny99.1.2.124 [r1]ipip-prefixepermit0.0.0.00le32 [r1]bgp1 [r1-bgp]peer12.1.1.2ip-prefixeexport
使用前綴列表拒絕目標路由并允許所有路由:
在BGP協(xié)議中的鄰居出口的方向執(zhí)行該前綴列表策略
在R2上查看BGP表
六、有條件的打破IBGP水平分割
IBGP水平分割,用于避免在一個AS內(nèi)部由IBGP鄰居間產(chǎn)生的環(huán)路;
規(guī)則:從一個iBGP鄰居處學習到的BGP路由不能傳遞給下一個IBGP鄰居;因為BGP的非直連建鄰能力,因此可以在一個AS內(nèi)部建立多個鄰居來實現(xiàn)連接關系備份的作用;故正常一臺設備只要運行bgp,那么應該處于AS的邊界,存在ebgp鄰居;
所有運行bgp協(xié)議的設備正常都會從其他AS學習到路由條目,然后共享到本地所在的AS,由于IBGP水平分割,導致本地需要和所有AS內(nèi)部的BGP設備建立IBGP鄰居關系;
IBGP鄰居關系的數(shù)量成指數(shù)上升;
所謂有條件的打破是指在打破IBGP水平分割的時候,不能產(chǎn)生環(huán)路;--AS-BY-AS
1. 路由反射器 -- RR(反射器)、客戶端、非客戶端;
客戶端、非客戶端必須分別為RR的IBGP鄰居關系;三種角色構建為一個簇(組);
一個簇內(nèi)可以存在多臺設備,但至少一個簇內(nèi)存在一個RR和一個客戶端;
規(guī)則:
1)RR從一臺EBGP鄰居處學習到的路由可以共享給本地的其他客戶端、非客戶端、EBGP鄰居;
2)RR從一臺客戶端鄰居處學習到的路由可以共享給本地的其他客戶端、非客戶端、EBGP鄰居;
3)RR從一臺非客戶端鄰居處學習到的路由可以共享給本地的其他客戶端、EBGP;不能共享給其他的非客戶端;
注: 被反射路由,在反射過程中,其屬性不發(fā)生任何變化;若RR接收的條目不優(yōu),不具備傳遞性,將不被反射;
在上邊拓撲圖中,將R3作為反射器,R2作為它的客戶,再R3上配置下邊一條命令即可
[r3-bgp]peer 2.2.2.2 reflect-client ibgp鄰居2.2.2.2成為本地的客戶端,同時本地成為RR
然后將R1環(huán)回路由宣告,查看路由的傳遞:
可以看到R3作為RR可以將IBGP學到的路由傳給R4和R5
在拓撲圖中,R4和R5均為非客戶,如果將R4環(huán)回宣告看一下效果:
可以看到只有R5不能學到R4宣告的路由,因為非客戶之間是不能傳遞路由的
2. 聯(lián)邦---將一個大as邏輯分為多個小as;小AS使用私有AS號,小AS間為聯(lián)邦內(nèi)的ebpg鄰居關系,可以像EBGP一樣傳遞路由,但不能修改屬性; 對于聯(lián)邦外的AS,只能看到大AS號;
所有的啟動,建鄰、管理均基于小AS號進行
聯(lián)邦內(nèi)所有設備需要聲明自己所在的大AS號
小AS間的ebgp鄰居需要互指對端的小as號
[r3]bgp64512 [r3-bgp]router-id3.3.3.3 [r3-bgp]confederationid2聲明本地的大AS號 [r3-bgp]confederationpeer-as64513對端小AS號 [r3-bgp]pe2.2.2.2as-number64512 [r3-bgp]pe2.2.2.2connect-interfaceLoopBack0 [r3-bgp]pe4.4.4.4as-number64513 [r3-bgp]pe4.4.4.4connect-interfaceLoopBack0 [r3-bgp]pe4.4.4.4ebgp-max-hop2
查看配置(R2-R5):
R2:
R3:
R4:
R5:
注: 在實際工程中,路由器反射器與聯(lián)邦技術是結合在一個拓撲中共同使用的。
審核編輯:劉清
-
路由器
+關注
關注
22文章
3640瀏覽量
112795 -
OSPF協(xié)議
+關注
關注
0文章
17瀏覽量
9368 -
BGP
+關注
關注
0文章
83瀏覽量
15289 -
反射器
+關注
關注
0文章
47瀏覽量
12208
原文標題:BGP 知識點總結,網(wǎng)絡工程師收藏!
文章出處:【微信號:網(wǎng)絡技術干貨圈,微信公眾號:網(wǎng)絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論