1. 程式人生 > 其它 >BGP的宣告、BGP的屬性詳解、專治各種BGP的屬性選路問題

BGP的宣告、BGP的屬性詳解、專治各種BGP的屬性選路問題

BGP的宣告、BGP的屬性詳解、專治各種BGP的屬性選路問題

南兮雨朦朧 2019-08-02 17:50:45 2456 收藏 18
版權
文章目錄
一、BGP的宣告
二、BGP的屬性
三、屬性詳情
1、Weihgt
2、Origin:標識該路由如何得到的
3、AS path
4、next-hop
5、local-pref
6、MED
7、Atomic_aggregate
8、Aggregator
9、Community
社團屬性的四個子屬性
10、Originator_id
11、Cluster_list
一、BGP的宣告
BGP的最終目標是完成本AS的全部或者某些路由的轉發,而實質就是將原有的路由條目宣告出去,所以應該滿足以下條件:
1、被宣告的路由必須在路由表中;
2、被宣告的路由必須和路由表中的字首和掩碼一致;
3、EBGP鄰居建鄰一般使用直連建鄰,如果使用非直連建鄰需要修改跳數,預設為1(不修改則無法建鄰),直連一般指的是介面兩端,如果採用環回建鄰,必須修改跳數;
正常建鄰:
全域性下:router bgp 1 //啟動BGP協議,加上AS號
neighbor 10.2.2.2 remote-as 2 //指定對方成為鄰居,加上對方AS號;
R1(config)# neighbor 10.1.1.1 ebgp-multihop //修改跳數(不加則為255);

二、BGP的屬性
BGP最重要的是屬性,可以完成選路、防環、標記等工作,IGP協議的度量在AS之間無法選擇正確的最佳路徑;
屬性分為四類:
1.公認必尊 --必須傳遞必須識別
所有 BGP 路由器必須識別遵守的原則有 origin,as_path ,next_hop
2.公認可尊–必須識別
所有路由器都能識別但是不一定要遵守,local_pref,atomic_aggregate
3.可選傳遞–開啟傳遞
不是所有 BGP 路由器都能識別,但是所有 BGP 都能傳遞,aggregator 和 community
4.可選非傳遞–開啟不傳遞
不是所有路由器都被識別,不能識別的 BGP 路由器就丟棄它,MED,originator_id 和 cluster_id,weight

三、屬性詳情
1、Weihgt
cisco 私有屬性,對於離開 AS 的路由在路由器選擇那一條最優,本臺路由器產生為 32768,學習 的為 0,越大越優,適用於一臺路由去 往別的 AS 有多個出口。
Router bgp 1
Neighbor 10.1.1.1 weight 1//修改該鄰居所有傳遞過來的路由weight為1
精確修改用prefix-list和route-map組合:只針對某一條路由條目,只能用in方向呼叫;
Weight值的修改只能影響本路由器,不能影響其他路由器,意味著AS如果只有一個出口weight選路是適用的,但是有多個出口的情況下weight不夠適用;

2、Origin:標識該路由如何得到的
起源屬性,0 表示宣告(i表示),1 表示 EGP 學到(E表示),3 表示其他手段得到(重發布表示?),越低越好 ;
該屬性可以選路但是一般不用於選路;


3、AS path
記錄一條路由在傳輸過程中經歷了那些 AS(不算自己的AS),最近經過的AS排在前面,一個AS路由器拒絕接受攜帶本AS號的路由條目,可用來防環,也可以用來選路,AS-path越短越好;
一般在選路當中新增AS會重複新增已經歷的AS,一般不會新增未經過的AS,適用於任何鄰居之間,in和out都行:
Neighbor x.x.x.x allow as-in 允許和具有自己相同的 AS 的路由進入本 AS,有條件的打破環路,本路由器使用;
Neighbor x.x.x.x as-override 把具有和其他 AS 相同 AS 號的路由放入這個 AS ,鄰居路由器使用;

4、next-hop
到達下一跳路由器的IP地址,IBGP之間不變,EBGP之間傳遞路由next-hop為0.0.0.0的時候會修改為更新源地址,下一跳為0的優於其他路徑;
通告路由器和接受路由器不在一個 AS,next_hop 為通告路由器的更新地址 ;
通告路由器和接受路由器在一個 AS 內,next_hop 為通告鄰居的更新地址 ;
通告路由器和接受路由器在一個 AS 內且為鄰居關係更新地址為不同 AS,則為外部更新地址;
定製也由route-map完成;

5、local-pref
local-pref與weight一樣也是選路屬性;
不能在ebgp鄰居之間傳遞,數值越大越優先(預設100),常用於當本AS有多個路由器出口時,選擇擁有local值大的路由器為出介面路由器,也可以是到達一個網段有多個出口路徑時,選擇local-pref值大的路徑;
1、修改路由器的預設local-pref值,該路由器通告給ibgp鄰居的路由都會攜帶修改後的local-pref值;

2、通過route-map修改某一條路由的local-pref值,EBGP只能在in方向呼叫,ibgp可以是in和out方向;


6、MED
選路屬性,本質就是metric,預設為0,一般只能用於自同一個AS發出的不同路徑MED值比較,兩個不同AS比較MED沒有意義;
用於選擇流入 AS 的入口路由器,只可以在兩個 AS 之間傳遞,不能傳遞給其他AS,越低越好(只能在一個AS內比較) ,一般用於影響對方AS,如果在本AS使用和local-pref等同(注意MED不能再路由器上修改預設值)。
修改:

Bgp always-compare-med //開啟比較不同AS的MED

7、Atomic_aggregate
用來警告下游路由器路由聚合後產生的路由路徑丟失。
BGP 支援向 BGP 鄰居傳遞重疊路由可以選擇多種方式
as-set會使該屬性消失


8、Aggregator
用來通告彙總路由的匯聚路由器 BGP_ID(cisco私有),方便尋找彙總者 ;

9、Community
社團屬性,為了更好的標識bgp路由,標識格式為x:y;
傳遞社團屬性必須開啟傳遞功能:
router bgp 2
neighbor 10.1.1.1 send-community both/standard/extended //開啟團體屬性
團體值的設定不能再EBGP之間(ibgp之間可以),它的傳遞可以在IBGP之間也可以在EBGP之間:
Ip bgp-community new-format //開啟擴充套件格式匹配
Show ip bgp 10.1.1.1 //檢視路由詳情可以檢視到團體值 ;
Show ip bgp community //檢視具所有具有團體值的路由;
Show ip bgp community 111//檢視某團體值的所有路由;
專用community匹配工具:
ip community-list xx
ip community-list expanded k permit 111
之後用route-map呼叫即可;

社團屬性的四個子屬性
1.internet 預設屬性,可以給任何 bgp 傳送//不對攜帶團體值的路由做任何限制。
2.no_export 只能在一個 AS 內傳遞,可以在聯盟內傳遞,該屬性就是限制攜帶團體值的路由傳遞給EBGP鄰居,聯盟的ebgp鄰居除外。
3.no_advertise 不在 IBGP 鄰居間傳遞,禁止傳遞給任何鄰居。
4.local-as 不向任何 EBGP 鄰居傳送包括聯盟的 EBGP 鄰居 。
標準和擴充套件 community
標準是普通路由可以設定的團體公有和私有
擴充套件是 mpls 中的 vrf 路由傳遞定義的

10、Originator_id
用於路由反射使用,是路由發起者產生的一個 32 位元的值,該值是本地路由發起者的 RID,如果路由發起者從屬性上看到 自己的 RID,說明有環路就忽略該跳路由;

11、Cluster_list
路由反射器使用,是路由進過反射器簇 ID 的一個序號。如果反射器在屬性裡看到自己的簇 ID就說明有環路,忽略
簇 ID 列表:記錄了所有反射器的 RID ;
RR反射器:客戶端把路由交給伺服器,伺服器可以反射給所有裝置,可以解決BGP的路由黑洞;
反射器優點:減少建鄰居數量,不必全連;
缺點:因為BGP只傳遞最優路徑,反射器下游路由器喪失了對反射前路由的最優路徑選擇權。

————————————————
版權宣告:本文為CSDN博主「南兮雨朦朧」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_44027899/article/details/98209612