【HCIP學習】BGP對等體組、聚合、路由反射器、聯盟、團體屬性

一、大規模BGP網絡所遇到的問題

BGP對等體眾多,配置繁瑣,維護管理難度大

BGP路由表龐大,對設備性能提出挑戰

IBGP全連接,應用和管理BGP難度增加,鄰居數量過多

路由變化頻繁,導致路由更新頻繁

二、解決大規模BGP網絡所遇到的問題

1、BGP對等體眾多

對等體組(Peer Group)

BGP團體(Community )

2、BGP路由表龐大

BGP路由聚合

3、IBGP全連接(鄰居數量太多)

BGP路由反射(Route Reflection)

BGP聯盟(Confederation)

4、路由變化頻繁(了解)

BGP路由衰減(Route Dampening)

三、對等體組

定義:BGP 對等體組(Peer Group)是一些具有某些相同屬性的對等體的集合。通過對等體組可以簡化配置

特點:根據對等體所在的AS,對等體組可分為IBGP對等體組和EBGP對等體組。

建鄰要求:

EBGP:R1-R2

IBGP:R2分別于R3/R4/R5

注意:配置EBGP對等體組--------一般不常用,因為只有同一個AS中的EBGP鄰居才能加入一個對等體組,如果EBGP鄰居分布在多個AS,則需要給每個AS的EBGP鄰居,配置一個對等體組。比較麻煩

配置IBGP對等體組

[R2-bgp]group in internal

[R2-bgp]peer 3.3.3.3 group in

[R2-bgp]peer 4.4.4.4 group in

[R2-bgp]peer 5.5.5.5 group in

[R2-bgp]peer in connect-interface l0

[R2-bgp]peer in next-hop-local

[R3-bgp]peer 2.2.2.2 as 200

[R3-bgp]peer 2.2.2.2 connect-interface l0

R4和R5上做和R3相同的配置

配置EBGP對等體組

四、BGP路由聚合

作用:減小路由表規模

1、自動聚合:

只能對引入的IGP的路由進行聚合;

只能將明細路由匯總到主類,這會造成路由黑洞;

華為設備默認關閉自動聚合功能;

只能在始發路由器上進行配置;

[r1-bgp]summary automatic 開啟自動聚合

自動聚合后,會出現狀態碼S(suppressed),代表被抑制的路由信息不會再加表和傳遞了

實驗演示1:只針對重發布的路由條目生效,不對自身宣告的路由生效

在R3上加幾個環回口172.16.0.1 24和172.16.1.1 24,并做BGP宣告

[R3-bgp]summary automatic ?開啟自動聚合

實驗演示2:引入直連

[R3-bgp]import-route direct

[R3-bgp]summary automatic

2、手工聚合:

可實現精確匯總:[R1-bgp]aggregate 172.16.0.0 16

可以在任何路由器上對BGP路由進行聚合;

出現問題:明細路由依然被通告,有形成環路的隱患

解決方法:[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed ?//抑制明細路由

此命令不通過明細路由;

實驗演示1:

[R3-bgp]network 172.16.1.1 24

[R3-bgp]network 172.16.0.1 24

[R3-bgp]aggregate 172.16.0.0 23

測試:查看路由表,聚合成功,但明細路由也存在,并沒有達到縮小路由表規模的情況

抑制明細路由。達到了縮小路由表的規模

常見匯總命令:

[R1-bgp]aggregate 172.16.0.0 16 detail-suppressed as-set ?匯總的路由可繼承明細路由的路徑屬性,其中AS_PATH屬性最關鍵。

[R1-bgp]aggregate 172.16.0.0 16 suppress-policy ‘路由策略名字’通告匯總路由,并有選擇性的抑制明細路由

五、路由反射器

1、定義:

BGP反射器能把從IBGP鄰居學習的路由反射給其他IBGP鄰居(打破IBGP水平分割的限制)

2、作用:

用于替代IBGP全連接,減少IBGP鄰居數量;解決BGP路由黑洞問題;

3、角色:

RR(router ?reflect):路由反射器

反射器角色:

? ? ? ? client:RR客戶機

? ? ? ? 非客戶機

注:將一臺BGP路由器指定為RR的同時,還需要指定其Client。至于Client本身,無需做任何配置,它并不知曉網絡中存在RR

思考:為啥不把一個AS內的所有路由器都變成客戶機?還有非客戶機的存在?(RTE\RTF)

答案:因為一個AS就是一個城域網。一個城市的城域網中有好多路由器,一個城域網怎么可能只有一個反射器。比如:高新區選一個反射器,不可能讓他給雁塔區啊、長安區啊提供反射服務。一個反射器給他特定的客戶機提供反射服務。我們可以在 這些區各選一個反射器,讓他們給本區的路由器提供反射服務。也就是說可以在一個AS內建立多個路由器反射群。兩個反射群之間需要建立鄰居關系。它們之間需要傳遞路由。

4、反射規則

從非反射客戶端接受的路由,僅反射給客戶端;

從客戶端接受到的路由,反射給所有客戶端和非客戶端,路由始發者除外;

從EBGP接收的路由,反射給所有的客戶端和非客戶端;

注:一個反射群里的所有反射客戶端只需與反射器建立IBGP鄰居關系

5、反射集群:

由反射器和客戶端組成的網絡范圍;

如果存在多個反射器,配置相同的cluster_id

思考:當RR故障后,會發生啥?怎么解決?

思考:RR之間需要建立鄰居關系?------當然需要

但是這樣的組網容易形成環路。(一條路由從客戶機1傳到RR,RR傳到備用RR,備用RR再反射給客戶機1)

6、路由反射存在問題:使得IBGP水平分割原則失效,會導致環路的產生

7、解決方法:

通過兩個路徑屬性來避免環路

(1)cluster_list(集群列表):

類似AS_PATH,每個RR都有一個Cluster id,默認為路由器的router id,可手工修改;

同一個AS內的Cluster id必須相同,才能有防環作用。

路由傳遞過程中,把經過的反射器的Cluster_id一次記錄在Cluster_list中;

Cluster_list用于反射器防環,當反射器收到BGP路由時,如果本機的Cluster_id出現在Cluster_list中,則丟棄該路由;

(例如:一條路由從客戶機1傳到RR,RR會將Cluster id為1.1.1.1這個屬性寫給這個路由,RR再傳到備用RR,會檢查自身的Cluster id,發現學到的路由Cluster id與自己一樣,就直接丟棄

Cluster-list用于路由優選,短的優先

特殊情況:不受Cluster-list防環機制的約束,依然形成環路

思考:一條路由從客戶機3傳到備用RR,再傳到rr,rr會不會傳給客戶機3?

答案:會,解決方法用originator_ID

(2)originator_ID:起源ID

由路由器反射器反射一條路由時產生,會在反射出去的路由中增加originator_ID,它就是本地AS路由器的BGP路由器的router-id;

即使這條反射路由經過多個RR,當BGP路由器收到一條攜帶Originator_ID屬性的IBGP路由,并且Originator_ID屬性值與自身的Router ID相同,則它會忽略關于該條路由的更新。

originator_ID用于路由優選,短的優先

8、總結BGP的防環機制

(1)AS_PATH:解決AS之間的環路問題

(2)IBGP的水平分割:解決一個AS內部IBGP鄰居之間環路問題

(3)當一個反射群中存在多個反射器時,通過Cluster-list防環,(BGP反射器)

(4)originator_ID:在多個反射群之間,通過originator_ID防環,(BGP反射器)

9、注意事項

反射路由無法使用策略去更改路由屬性

10、實驗配置

[R2-bgp]peer 3.3.3.3 reflect-client ?????//在反射器上配置其反射客戶機

[R2-bgp]reflector cluster-id 2.2.2.2 ???//配置反射器的集群id

11、實驗作業 ----- BGP路由反射器實驗

六、BGP聯盟

1、定義:

處理AS內部的IBGP網絡連接激增的另一種方法,間接避免了IBGP環路問題

2、原理:

聯盟將一個自治系統劃分為若干個子自治系統,每個子自治系統內部的IBGP對等體建立全連接關系,子自治系統之間建立聯盟內部EBGP連接關系。

3、注意點:

子AS使用私有AS編號;

其他真實AS的路由器仍然和聯盟AS建立EBGP鄰居;

跨越子AS的EBGP鄰居仍然需要更改下一跳為本機;

每個聯盟里有一臺路由器和其他聯盟中一個路由器建立鄰居關系就行;

實際場景中一般不用聯盟,因為他會改變鄰居關系

4、配置命令:

[R2]bgp 65001 ???????//進入子AS編號

[R2-bgp]confederation id 200 ???//申明自己的大號

[R2-bgp]confederation peer-as 65002 ?//申明自己的聯盟同伴

[R2-bgp]peer 100.1.1.1 as-number ?100 ??????指定EBGP鄰居

[R2-bgp]peer 3.3.3.3 as-number 65001

[R2-bgp]peer 100.2.2.5 as-number 65002

[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[R2-bgp]peer 3.3.3.3 next-hop-local

[R2-bgp]peer 100.2.2.5 next-hop-local ??//跨越子AS的EBGP鄰居仍然需要更改下一跳為本機;不然從R1傳過去的網段,R5收不到

子AS之間的EBGP環回口建鄰

七、BGP團體屬性(community)

(1)定義:

相當于路由的標記,一組具有相同特征的目的地的集合,可針對特定的路由設置特定的community屬性值

問題:網段不連續,ACL寫起來比較麻煩。

解決方法:在每個分部的市場部路由的出口設備上,打上100:1的團體屬性。

(2)社團屬性表達方法:

本質由32位二進制構成,擁有多種表達格式,

比如:可使用10進制;

或者16位二進制,前16位一般是本地AS的AS號,后16位是自定值;

(3)公認的社團屬性:

Internet:抓取的BGP流量,默認情況下都屬于Internet,可以被通告給所有的BGP對等體;

no-advertise:路由信息無法發送給自己的IBGP對等體或EBGP對等體;

no-export:路由信息可以發給自己的BGP對等體,但對等體不能離開這個AS,無法發給自己的EBGP;但可以發給自己的聯邦EBGP對等體;

no-export-subconfed:路由信息可以發給自己的BGP對等體,但對等體不能離開這個AS,無法發給自己的EBGP;也不可以發給自己的聯邦EBGP對等體;

注:目前大部分廠商默認在傳遞BGP路由信息時是不傳遞社團屬性的,如果需要傳遞社團屬性,則需要通過命令開啟

(4)配置演示

配置步驟:

抓取流量

[R1]acl 2000

[R1-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

配置路由策略,打上團體屬性

[R1]route-policy com permit node 10

[R1-route-policy]if-match acl 2000

[R1-route-policy]apply community no-export

[R1]route-policy com permit node 20

調用路由策略

[R1]bgp 100

[R1-bgp]peer 100.1.1.2 route-policy com export

[R1-bgp]peer 100.1.1.2 advertise-community ?????//通告團體屬性,使其他鄰居學到

[R2]dis bgp routing-table 192.168.1.0 24 ??//查看一條路由的詳細信息

八、聯盟和團體屬性實驗

九、BGP綜合實驗

實驗報告冊見下一篇文章哦~?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11060.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11060.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11060.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用QT-QSqlQuery::value()遇到的問題

在實現客戶端間好友添加功能時&#xff0c;我通過以下函數想實現數據庫對好友信息的保存 bool OpeDB::handleAddFriend_repound(const char *pername, const char *name) { // pername 被添加方 name 申請添加方 qDebug() << pername << " " &l…

Nginx(簡潔版)

基本配置 worker_processes 1; //默認為1&#xff0c;表示開啟一個業務進程 events //事件驅動模塊&#xff08;&#xff09;{worker_connections 1024; //單個業務進程可接受連接數 } http{include mime.types; // 引入http mime類型&#xff08;在外部已經定義好&#xff0c…

Java數組——冒泡排序

冒泡排序是最出名的排序算法之一&#xff0c;總共有八大排序。 冒泡排序代碼并不復雜&#xff0c;共兩層循環&#xff0c;外層冒泡輪數&#xff0c;里層依次比較。 算法步驟&#xff1a; 1. 比較數組中兩個相鄰元素&#xff0c;如果第一個元素比第二個元素大&#xff0c;交換…

如何在huggingface上申請下載使用llama2/3模型

1. 在對應模型的huggingface頁面上提交申請 搜索對應的模型型號 登錄huggingface&#xff0c;在模型詳情頁面上&#xff0c;找到這個表單&#xff0c;填寫內容&#xff0c;提交申請。需要使用梯子&#xff0c;country填寫梯子的位置吧(比如美國&#xff09; 等待一小時左右…

SEMI啟動SiC專有技術項目

公司鄭重聲明&#xff0c;其正致力于篩選那些能夠穩定輸出、且可重復使用的關鍵參數性能。SEMI&#xff0c;這家SiC領域的佼佼者&#xff0c;已經啟動了一項獨具匠心的專有技術&#xff08;KGD&#xff09;篩選程序。該程序旨在為客戶提供高品質的、經過嚴格電氣分類與光學檢驗…

基于python的旅游爬蟲可視化與實現

摘要 本項目為基于python的旅游爬蟲可視化的設計與實現&#xff0c;項目以Web系統形式展示&#xff0c;利用Xpath爬蟲爬取去哪兒網針對旅游業的需求&#xff0c;對國內熱門旅游景點數據可視化系統&#xff0c;將爬取好的數據保存為CSV文件&#xff0c;再通過ORM框架導入MySQL數…

Python圖形界面(GUI)Tkinter筆記(五):控件的定位(3)

Tkinter(GUI)設計圖形界面時有三種控件的包裝方法去定位各控件在窗口(父容器、根窗口)上的位置。 【1】pack()方法:用方位來定位位置,類似于Word文檔中的文字對齊方式。 【2】grid()方法:用二維表格式的坐標值定位,類似于EXCEL單元格坐標。 【3】place()方法:用窗口…

VUE基礎之,ref屬性,props配置項,mixin(混入)

ref屬性 被用來給元素或子組件注冊引用信息&#xff08;id的替代者&#xff09; 應用在html標簽上獲取的是真實DOM元素&#xff0c;應用在組件標簽上是組件實例對象&#xff08;vc&#xff09; 使用方式&#xff1a; 打標識&#xff1a;<h1 ref"xxx">.....&l…

【python量化交易】qteasy使用教程07——創建更加復雜的自定義交易策略

創建更加復雜的自定義交易策略 使用交易策略類&#xff0c;創建更復雜的自定義策略開始前的準備工作本節的目標繼承Strategy類&#xff0c;創建一個復雜的多因子選股策略策略和回測參數配置&#xff0c;并開始回測 本節回顧 使用交易策略類&#xff0c;創建更復雜的自定義策略 …

Mysql 多表查詢,內外連接

內連接&#xff1a; 隱式內連接 使用sql語句直接進行多表查詢 select 字段列表 from 表1 , 表2 where 條件 … ; 顯式內連接 將‘&#xff0c;’改為 inner join 連接兩個表的 on select 字段列表 from 表1 [ inner ] join 表2 on 連接條件 … ; select emp.id, emp.name, …

應急響應篇——加固

Linux 安全配置 1.下載安裝安全軟件 2.取消Telnet登錄采用SSH方式并更改ssh服務端遠程登錄的配置 1)Telnet登錄協議是明文不加密不安全,所以采用更安全的SSH協議。 2)更改ssh服務端遠程登錄相關配置。 3.用戶管理相關 1)刪除不必要的用戶和用戶組。 2)用戶密碼管理…

Selenium 自動化 —— 一篇文章徹底搞懂XPath

更多關于Selenium的知識請訪問“蘭亭序咖啡”的專欄&#xff1a;專欄《Selenium 從入門到精通》 文章目錄 前言 一、什么是xpath&#xff1f; 二、XPath 節點 三. 節點的關系 1. 父&#xff08;Parent&#xff09; 2. 子&#xff08;Children&#xff09; 3. 同胞&#xff08;S…

力扣:48. 旋轉圖像(Java)

目錄 題目描述&#xff1a;輸入&#xff1a;輸出&#xff1a;代碼實現&#xff1a; 題目描述&#xff1a; 給定一個 n n 的二維矩陣 matrix 表示一個圖像。請你將圖像順時針旋轉 90 度。 你必須在 原地 旋轉圖像&#xff0c;這意味著你需要直接修改輸入的二維矩陣。請不要 使…

LangChain:模型 I/O 封裝使用解析和感觸

目錄 模型 API&#xff1a;LLM vs. ChatModel OpenAI 模型封裝 多輪對話 Session 封裝 換個國產模型 模型的輸入與輸出 Prompt 模板封裝 PromptTemplate ChatPromptTemplate MessagesPlaceholder 從文件加載 Prompt 模板 TXT模板 Yaml模板 Json模板 輸出封裝 Out…

mediasoup源碼(一)編譯及部署

基本介紹 mediasoup是一個sfu架構的流媒體服務器&#xff0c;讀者可以根據需要選擇不同的編譯方式。如果只需要學習c流媒體傳輸部分&#xff0c;則選擇mediasoup&#xff0c;如果需要學習mediasoup整個demo&#xff0c;并做演示&#xff0c;則可以選擇mediasoup-demo&#xff…

is和==的關系

Python中is和的關系 is判斷兩個變量是不是指的是同一個內存地址&#xff0c;也就是通過id()函數判斷 判斷兩個變量的值是不是相同 a [1, 2, 3, 4] b [1, 2, 3, 4] print(id(a)) # 2298268712768 print(id(b)) # 2298269716992 print(a is b) # False print(a b) # Tr…

目標檢測標注工具Labelimg安裝與使用

目錄 一、安裝Labelimg與打開 二、使用 1、基本功能介紹 2、快捷鍵 3、狀態欄的工具 三、附錄 1、YOLO模式創建標簽的樣式 2、create ML模式創建標簽的樣式 3、PascalVOC模式創建標簽的樣式 一、安裝Labelimg與打開 labelimg是一款開源的數據標注工具&#xff0c;可以…

51基于單片機的溫室大棚系統設計

設計摘要&#xff1a; 本設計旨在基于51單片機和藍牙技術&#xff0c;實現一個功能完善的溫室大棚系統。該系統具備以下主要功能&#xff1a;首先&#xff0c;通過連接的顯示屏能夠實時地顯示當前的溫度和濕度信息&#xff0c;方便用戶了解溫室內的環境變化。其次&#xff0c;…

ctfshow web271--web273

web271 laravel5.7反序列化漏洞 define(LARAVEL_START, microtime(true));/* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | |…

mysql IF語句,模糊檢索

使用MySQL IF語句完成條件檢索 IF(expr1,expr2,expr3)&#xff0c;expr1如果滿足條件就用expr2&#xff0c;否則用expr3 SELECTa.*,count(*) AS stdSum FROMidb_std_power_engin_v1 a WHERE1 1 AND (IF( KV IS NOT NULL, a.NAME REGEXP KV, 1 1 ) ORIF( KV IS NOT NULL, …