Ⅰ FAST路由器的BGP的正確應用方法
一、Internet路由表中的BGP路由條目,目前規模已經達到十幾萬。
在面對龐大的Internet路由表時,我們免不了需要進行路由過濾。在處理如此大規模的路由表時,如果利用地址前綴去過濾BGP路由,那麼一來有可能配置比較繁瑣,二來且有新的路由加入不好維護,所以提出了利用AS_PATH進行BGP路由過濾的辦法。
二、由於Internet核心AS的分布都是有記錄的
所以利用AS的過濾更有針對性,例如可以使用AS_PATH作過濾,解決過濾從某個AS_PATH始發的全部路由,只需一個AS_PATH列表即可,當然利用AS_PATH過濾可以解決的問題遠不僅如此,這還需要我們在下文中慢慢體會。
三、AS_PATH與正則表達式介紹,AS_PATH,公認必遵屬性。這個屬性在傳遞UPDATE報文中標識了到達一個目的地所經過的AS信息,AS_PATH有4種類型:
AS_SEQUENCE(用於路由AS路徑記錄);
AS_SET(用於聚合路由的明細路由AS集合);
AS_CONFED_SEQUENCE(用於聯盟路由AS路徑記錄);
AS_CONFED_SET(用於聯盟聚合路由)。
四、從AS_PATH的顯示格式看出,AS_PATH可以看成一個由數字0-9,「()」,「[]」,「{}」和空格組成的字元串。
當然例子中是最復雜的格式,實際應用中並不是所有欄位都有填充的,當我們想利用匹配AS_PATH做路由過濾的時候,怎麼實現對AS_PATH匹配呢?根據之前分析過AS_PATH可以看作是字元串的'這一特點,我們找到了處理字元串的強大工具正則表達式這把利劍來幫我們實現匹配,這樣正則表達式就在BGP的舞台登場了。
五、正則表達式是按照一定的模板來匹配字元串的公式。
在BGP中,正則表達式可以應用於基於AS_PATH的ACL,根據BGP路由的AS_PATH屬性決定路由的接受與拒絕。利用介紹的符號來對AS_PATH進行匹配,看看這些符號能夠給我們帶來多麼奇妙的效果。
1、^$表示匹配的字元串為空,即AS_PATH為空,表示只匹配本地路由。
2、.*表示匹配任意字元串,即AS_PATH為任意,表示匹配所有路由。
3、^100表示匹配字元串開始為100,即AS_PATH最左邊AS前3位(最後一個AS)為100、1001、1002等,表示匹配AS100、1001、1002等鄰居發送的路由。
4、^100_表示匹配字元串開始為100後面為符號,即AS_PATH最左邊AS(最後一個AS)為100,表示匹配AS100鄰居發送的路由,比較前一個表達式,」_」的好處就體現出來了,它可以和用來幫助我們限制匹配單獨的一個AS。
5、_100$表示匹配字元串最後為100,即AS_PATH最右邊AS(起始AS)為100,表示匹配AS100始發的路由。
6、_100_表示字元串中間有100,即AS_PATH中有100,表示匹配經過AS100的路由。
7、(65535_表示匹配字元串為(65535後面為符號,即AS_CONFED_SEQUENCE最左邊AS(最後一個AS)為65535,表示匹配聯盟AS65535鄰居發送的路由,我們知道,AS_CONFED_SEQUENCE是用」(」、「)」表示的,」(」、「)在正則中是特殊字元,有特殊用處,所以對於這種特殊字元,可以使用」」來去除其特殊意義進行匹配,同理AS_CONFED_SET使用的」[「、」]」,AS_SET使用的」{」、」}」都可以使用」」符號來去除這些特殊符號的特殊意義,舉例[65533_,{202_。
8、(.*_205_.*)表示字元串AS_CONFED_SEQUENCE中間有205,即AS_CONFED_SEQUENCE中有205,表示匹配經過聯盟AS205的路由。
9、_207)表示匹配字元串最後為207),即AS_PATH最右邊AS_CONFED_SEQUENCE(起始AS)為207,表示匹配聯盟AS207始發的路由。
Ⅱ 什麼是BGP
BGP主要用於互聯網AS(自治系統)之間的互聯,BGP的最主要功能在於控制路由的傳播和選擇最好的路由。中國聯通 、中國電信、中國鐵通和一些大的民營IDC運營商都具有AS號,全國各大網路運營商多數都是通過BGP協議與自身的AS號來實現多線互聯的。使用此方案來實現多線路互聯,IDC需要在CNNIC(中國互聯網信息中心)或APNIC(亞太網路信息中心)申請自己的IP地址段和AS號,然後通過BGP協議將此段IP地址廣播到其它的網路運營商的網路中。使用BGP協議互聯後,網路運營商的所有骨幹路由設備將會判斷到IDC機房IP段的最佳路由,以保證不同網路運營商用戶的高速訪問。
BGP有動態跟靜態之分,目前市面上大部分是屬於靜態BGP,動態的話目前了解到的只有小鳥雲計算開通了華南BGP機房以及香港BGP機房,採用的動態BGP線路,完美解決了跨網訪問高延遲、南北互聯不互通的問題。隨著雲計算行業的高速發展,BGP線路將會會成為公有雲計算行業標配。
Ⅲ 「RIP、OSPF、BGP」這三個動態路由協議在工作原理上的區別是什麼
「RIP、OSPF、BGP」這三個動態路由協議在工作原理上的區別:BGP是自治系統間相互訪問所使用的,它涉及到ISP運營商;RIP是距離矢量路由協議,它通過交換明確的路由來達到全網互通,即是說他所獲得的路由都是通過鄰居發送過來的;OSPF是鏈路狀態路由協議,他不發送路由信息
RIP、OSPF、BGP」這三個動態路由協議在工作原理上的區別對比:
1、RIP協議
RIP( Routing Information Protocol )路由信息協議:是在一個AS系統中使用地內部路由選擇協議,是基於距離向量路由選擇的協議。RIP有兩個版本:RIPv1和RIPv2,它們均基於經典的距離向量路由演算法,最大跳數為15跳。
RIP的演算法簡單,但在路徑較多時收斂速度慢,廣播路由信息時佔用的帶寬資源較多,它適用於網路拓撲結構相對簡單且數據鏈路故障率極低的小型網路中,在大型網路中,一般不使用RIP。
RIP使用UDP數據包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s內沒有收到相鄰路由器的回應,則認為去往該路由器的路由不可用,該路由器不可到達。如果在240s後仍未收到該路由器的應答,則把有關該路由器的路由信息從路由表中刪除。
2.OSPF協議
OSPF( Open Shortest Path First,開放最短路徑優先)協議:採用鏈路狀態路由選擇技術,開放最短路徑優先演算法。路由器互相發送直接相連的鏈路信息和它擁有的到其它路由器的鏈路信息。每個 OSPF 路由器維護相同自治系統拓撲結構的資料庫。從這個資料庫里,構造出最短路徑樹來計算出路由表。當拓撲結構發生變化時, OSPF 能迅速重新計算出路徑,而只產生少量的路由協議流量。
3、BGP協議
BGP (邊界網關協議,Border Gateway Protocol )是自治系統之間的路由選擇協議。BGP用於連接Internet。作為最新的外部網關協議,現有四個版本。
BGP 是唯一一個用來處理像網際網路大小的網路協議,也是唯一能夠妥善處理好不相關路由域間的多路連接協議。BGPv4是一種外部的路由協議。可認為是一種高級的距離向量路由協議。
Ⅳ 【網路工程師路由篇】BGP 入門實驗
R1、R2、R3屬於AS 123;R4屬於AS 400;
R1、R2、R3運行OSPF,運行OSPF的目的是為了打通AS 123內的路由;
R3-R4之間建立EBGP鄰居關系,R2不運行BGP;
R1-R3之間建立IBGP鄰居關系;
在R4上,將路由4.4.4.0/24發布到BGP。
R1的配置如下(省略介面IP地址的配置):
R2的配置比較簡單,就是運行OSPF而已,這部分配置不再贅述。
R3的配置如下:
R4的配置如下:
完成上述配置後,在R3上查看BGP路由表:
我們看到R3已經學習到了R4通告過來的BGP路由4.4.4.0/24。並且該條BGP路由的NextHop屬性值為10.1.34.4,這個下一跳地址是路由可達的。該條路由在R3的BGP路由表裡有「* >」 標記,其中「*」表示這條路由是可用的(valid),只有當BGP路由的NextHop為路由可達時,該BGP路由才會被視為可用;而「>」則表示這條路由是被優選的路由,或者說是到達該目的網路的最優路由。
BGP路由的NextHop屬性是一個非常重要的屬性,它是所有BGP路由都會攜帶的路徑屬性,它指示了到達目的網路的下一跳地址。
在R3上查看路由表:
R3已經將到達4.4.4.0/24的BGP路由載入到了全局路由表中。
對於R3而言,到達4.4.4.0/24的路由已經被優選,接下來,它會將該路由通告給IBGP鄰居R1。
在R1上查看BGP路由表:
我們看到,R1的BGP路由表中已經出現了4.4.4.0/24路由,而這條路由的NextHop屬性值是10.1.34.4,但是R1在本地路由表中沒有到達10.1.34.4的路由,因此10.1.34.4不可達,如此一來,該BGP路由也就不可用了(在BGP路由表中沒有*號標記),既然不可用,自然就不能裝載進路由表中使用。
那麼怎麼解決這個問題呢?一個最簡單的方法是,為R1配置一條靜態路由:ip route-static 10.1.34.0 24 10.1.23.3,這樣一來R1的路由表裡就有了到達10.1.34.4的路由,那麼BGP路由4.4.4.0/24的下一跳地址就可達了,對應的BGP路由自然也就可用了。但是這種方法太「笨拙」。另一種方法是,在R3的OSPF進程中將10.1.34.0/24網段也注入進去,使得R1能夠通過OSPF學習到10.1.34.0/24路由,這種方法也是可行的。但是由於R3-R4之間的互聯鏈路被視為AS外部鏈路,因此10.1.34.0/24作為外部網段往往不會被宣告進AS內的IGP。那麼還有什麼其他辦法能解決這個問題么?
BGP路由器在向EBGP對等體發布某條路由時,會把該路由信息的下一跳屬性設置為本地與對端建立BGP鄰居關系的介面地址。如下圖所示,R4將4.4.4.0/24通告給R3時,下一跳為10.1.34.4,也就是R4的GE0/0/0介面地址。
BGP路由器將本地始發路由發布給IBGP對等體時,會把該路由信息的下一跳屬性設置為本地與對端建立BGP鄰居關系的介面地址。
BGP路由器在向IBGP對等體發布從EBGP對等體學來的路由時,並不改變該路由信息的下一跳屬性。
例如下圖所示,R3收到R4通告的EBGP路由,該路由的下一跳屬性值為10.1.34.4,它將該條路由通告給IBGP對等體R1的時候,路由的下一跳屬性值不會發生改變,仍然為10.1.34.4。
這就造成了我們上面所述的問題,由於R1沒有到達10.1.34.0/24的路由,因此下一跳地址10.1.34.4不可達,從而導致BGP路由4.4.4.0/24不可用。
還有一個方法可以解決這個問題:在R3上使用next-hop-local命令,可修改BGP路由的下一跳屬性值為自身。在下圖中,我們在R3上增加了peer 10.1.12.1 next-hop-local命令,那麼這樣一來,當R3再將EBGP路由通告給R1的時候,會將這些路由的下一跳屬性值修改為自己的更新源地址(10.1.23.3),而R1已經通過OSPF獲知到達10.1.23.0/24的路由,因此10.1.23.3是可達的。
完成配置後,我們在R1上查看BGP路由表:
可以手工指定用於建立BGP連接的源介面及源IP地址。命令如下:[Router-bgp] peer x.x.x.x connect-interface intf [ ipv4-src-address ]預設情況下,BGP使用報文的出介面作為BGP報文的源介面。當用戶完成peer命令的配置後,設備會在自己的路由表中查詢到達該對等體地址的路由,並從該路由得到出介面信息。如果peer命令中沒有指定介面(connect-interface)和IP地址(ipv4-src-address),那麼設備將會使用前述出介面和該介面的IP地址作為BGP報文的源介面和源地址。
為了使物理介面在出現問題時,設備仍能發送BGP報文,可將發送BGP報文的源介面配置成Loopback介面。在使用Loopback介面作為BGP報文的源介面時,必須確認BGP對等體的Loopback介面的地址是可達的。由於一個AS內往往會運行IGP協議,因此AS內的設備能夠通過該IGP協議獲知到達其他設備的Loopback介面的路由。在AS內部,IBGP鄰居關系通常基於Loopback介面建立。
EBGP鄰居之間通常使用直連介面的IP地址作為BGP報文源地址,如若使用環回介面建立EBGP鄰居關系,要配置peer ebgp-max-hop命令,允許EBGP通過非直連方式建立鄰居關系。
同樣是上面的環境,我們稍作變更,在R1及R3上創建loopback0,地址分別為1.1.1.1/32及3.3.3.3/32,然後設備各自將loopback0宣告進OSPF,使得彼此都能通過OSPF學習到對方的Loopback0路由。
我們修改BGP的配置,使得R1-R3之間的IBGP鄰居關系基於Loopback0來建立。
R1的關鍵配置如下:
R3的關鍵性配置如下:
注意,務必要將R1及R3的Loopback0介面激活OSPF。
經過前面的講解,我們的環境現在是這樣的:R1-R3之間建立了基於Loopback介面的IBGP鄰居關系;R3對R1配置了next-hop-local;R3與R4之間仍然維持基於直連介面的EBGP鄰居關系;R4在BGP中發布路由4.4.4.0/24。
現在R1是能夠學習到BGP路由4.4.4.0/24的,並且該路由也是被優選的,此時這條路由會被R1裝載進全局路由表使用,但是,這是不是意味著R1就能夠ping通4.4.4.4了呢?經過測試你可能會發現:無法ping通?因為數據包在R2這里就被丟棄了,R2並沒有運行BGP,因此它無法學習到BGP路由4.4.4.0/24。
怎麼才能讓R1 ping通4.4.4.4呢?方法之一是在R3上將BGP路由重發布進OSPF,使得R2能夠通過OSPF學習到BGP路由4.4.4.0/24,但是這種方法存在一定的風險,因為我們知道BGP承載的前綴數量往往是非常龐大的;另一種方法是,讓R2也運行BGP,並與R1、R3建立IBGP鄰居關系,這樣一來問題就解決了。那麼BGP鄰居關系就變成了如下圖所示。具體配置此處不再贅述。
通常情況下,EBGP鄰居之間必須具有直連的物理鏈路,EBGP鄰居關系也將基於直連介面來建立,如果不滿足這一要求,則必須使用peer ebgp-max-hop命令允許它們之間經過多跳建立TCP連接。
peer ebgp-max-hop命令用來配置允許BGP同非直連網路上的對等體建立EBGP連接,並同時可以指定允許的最大跳數。命令格式如下:[Router-bgp] peer ipv4-address ebgp-max-hop [ hop-count ]
如上圖所示,R1及R2要基於Loopback口建立EBGP鄰居關系。這種情況也屬於EBGP鄰居之間不基於直連介面建立鄰居關系的場景,必須配置peer ebgp-max-hop命令。圖中R1與R2之間的兩條物理鏈路是為了冗餘性考慮。R1的關鍵配置如下:
R2的關鍵配置如下:
BGP鄰居表
BGP表
查看BGP條目的詳細信息:
路由表,display ip routing-table
Ⅳ BGP是什麼路由
滿意答案流星劃過夜空。ゞ9級2009-04-14BGP(Border Gateway Protocol)是一種自治系統間的動態路由發現協議,它的基本功能是在自治系統間自動交換無環路的路由信息,通過交換帶有自治系統號(AS)序列屬性的路徑可達信息,來構造自治區域的拓撲圖,從而消除路由環路並實施用戶配置的路由策略。與OSPF 和RIP 等在自治區域內部運行的協議對應,BGP 是一類EGP(Exterior Gateway Protocol)協議,而OSPF 和RIP 等為IGP(Interior Gateway Protocol)協議。BGP 協議經常用於ISP 之間。BGP 協議從1989 年以來就已經開始使用。它最早發布的三個版本分別是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),當前使用的是RFC1771(BGP- 4)。 隨著INTERNET 的飛速發展,路由表的體積也迅速增加,自治區域間路由信息的交換量越來越大,影響了網路的性能。BGP 支持無類別域間選路CIDR(Classless Interdomain Routing),可以有效的減少日益增大的路由表。BGP-4 正迅速成為事實上的Internet 邊界路由協議標准。特性描述如下:BGP 是一種外部路由協議,與OSPF、RIP 等的內部路由協議不同,其著眼點不在於發現和計算路由,而在於控制路由的傳播和選擇最好的路由。通過攜帶AS 路徑信息,可以徹底解決路由循環問題。為控制路由的傳播和路由選擇,它為路由附帶屬性信息。是一種在自治系統之間動態交換路由信息的路由協議。BGP是為取代最初的外部網關協議EGP設計的。它也被認為是一個路徑矢量協議。
Ⅵ BGP的路由優選規則和負載分擔
1.Preferred-Value數值
Preference_Value是BGP的私有屬性(華為私有屬性),Preference_Value相當於BGP選路規則中Weight值,僅在本地路由器生效。Preference_Value值越大,越優先,默認預設值為0 只能改變自己的入向選路。
默認情況下,會選擇Router id小的作為自己的最優下一跳
step1:在R1上使用ip-prefix或者acl篩選出路由條目
step2:使用路由策略(由於首選值只在本地路由器生效,所以只能應用在本設備的入方向)
step3:在R1的BGP進程中調用路由策略
step4:驗證現象(R1到達4.4.4.4/32的下一跳指向R3,首選值被修改成100)
小結:Pre-Value最大,Preference_Value值越大,越優先,默認預設值為0,且只在本地路由器有效。
2. Local_Preference
Local_Pref屬性僅在IBGP鄰居之間有效,不通告給其他AS。它表明路由器的BGP優先順序,用於判斷流量離開AS時的最佳路由。一般用來控制本區域流量怎麼出去,默認情況下Local-Pref值為100 該數值越大 優先順序越高
默認情況下,會選擇Router id小的作為自己的最優下一跳(即R2)
step1:在R1上使用ip-prefix後者acl篩選出路由條目
step2:使用路由策略
step3:在BGP進程中調用路由策略
1:R1中BGP進程里指向R3的入方向上(改大)
2:R3中BGP進程里指向R1的出方向上(改大)
3:R3中BGP進程里指向R4的入方向上 (改大)
4:R1中BGP進程里指向R2的入方向上 (改小)
5:R2中BGP進程里指向R1的出方向上 (改小)
6:R2中BGP進程里指向R4的入方向上 (改小)
不能調用在R4的export方向上面(因為Local-preference只能在本AS內進行傳遞的)
step:驗證現象
3.路由生成方式
Aggregate>Summary>Network>import>從鄰居學習的路由
BGP在IPv4網路中支持自動聚合和手動聚合兩種方式,而IPv6網路中僅支持手動聚合方式:
1:自動聚合:對BGP引入的路由進行聚合。配置自動聚合後,BGP將按照自然網段聚合路由(例如非自然網段A類地址10.1.1.1/24和10.2.1.1/24將聚合為自然網段A類地址10.0.0.0/8),並且BGP向對等體只發送聚合後的路由。
2:手動聚合:對BGP本地路由表中存在的路由進行聚合。手動聚合可以控制聚合路由的屬性,以及決定是否發布具體路由。
為了避免路由聚合可能引起的路由環路,BGP設計了AS_Set屬性。AS_Set屬性是一種無序的AS_Path屬性,標明聚合路由所經過的AS號。當聚合路由重新進入AS_Set屬性中列出的任何一個AS時,BGP將會檢測到自己的AS號在聚合路由的AS_Set屬性中,於是會丟棄該聚合路由,從而避免了路由環路的形成。
自動聚合summary
step1:在R4上使用ip-prefix或者acl篩選出目標路由,使用Route policy調用。
step2:在BGP進程中將路由引入,並配置自動聚合命令
step3:在R4上查看BGP路由表,發現明細路由被抑制
step4:在R1上查看BGP路由表,發現路由被聚合成自然網段。
手動聚合
step1:在R4的BGP進程里宣告4.4.4.4/24的路由,並配置手工聚合,並抑制明細路由
step2:在R4上查看BGP路由表,明細路由通過detail-suppressed被抑制。
step3:在R1上查看BGP路由表,發現只收到R1的聚合路由。
手工聚合
1:as-set信息在避免路由環路時很重要,因為它記錄了被聚合路由所經過的AS
2:attribute-policy 設置聚合路由的屬性
3:detail-suppressed參數是把明細給抑制,如果不加的話,會把明細路由和聚合路由都傳過去
4:origin-policy僅選擇符合route-policy的具體路由來生成聚合路由(只要有這條路由信息,我才能產生聚合路由)
5:suppress-policy能產生聚合路由,但抑制指定路由的通告,可以使用route-policy和if-match子句有選擇的抑制一些具體路由,其他具體路由仍被通告(抑制聚合中的某些路由)
路由聚合產生的問題
如果路由聚合後攜帶所有明細路由經過的AS信息,當明細路由發生頻繁震盪時,聚合路由也可能受其影響頻繁刷新。因此,聚合路由是否攜帶丟失的AS_Path信息,需要設計者綜合考慮網路環境
4:AIGP
BGP優選AIGP較小的路由。AIGP屬性是一種新的BGP路由屬性,用於傳遞並累加IGP Cost值,該屬性為可選非過渡屬性。在一個AIGP域內部署AIGP屬性,可以使BGP像IGP那樣基於路由的Cost值優選出最優路由,從而保證一個AIGP域內的設備都按照最優路徑進行數據轉發。AIGP的比較遵循如下規則:
1:有AIGP屬性的路由優先順序高於沒有AIGP屬性的路由。
2:如果路由都存在AIGP屬性,則比較AIGP屬性與其下一跳的IGP Cost之和,優選該值較小的。
AIGP屬性只能通過路由策略添加。在BGP引入、接收或發送路由時,可以人為通過路由策略里的 apply aigp { cost | inherit-cost }命令設置AIGP屬性值的大小。其中,在BGP引入IGP路由時,若不進行設置,BGP路由沒有AIGP屬性值。
bgp 200(R4)
#
ipv4-family unicast
peer 14.1.1.2 aigp //使能與對等體之間的AIGP能力
peer 15.1.1.2 aigp //使能與對等體之間的AIGP能力
peer 14.1.1.2 route-policy 1 export
peer 15.1.1.2 route-policy 1 export
#
route-policy 1 permit node 10 //定義路由策略的第一個節點,設置路由4.4.4.4/32的AIGP為10
if-match ip-prefix prefix1
apply aigp 10
#
route-policy 1 permit node 20 //定義路由策略的第二個節點,不設置匹配條件,允許其他路由通過路由策略
if-match ip-prefix prefix1
apply aigp 5
#
ip ip-prefix prefix1 index 10 permit 4.4.4.4 32 //定義地址前綴列表prefix1,匹配路由
R2:
ipv4-family unicast
peer 14.1.1.1 aigp //使能與對等體之間的AIGP能力
R3:
ipv4-family unicast
peer 15.1.1.2 aigp //使能與對等體之間的AIGP能力
5.AS_Path
AS_Path屬性有四種形式,分別是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。
AS_Sequence:它是到目的地的路徑上所經過的AS號的有序集合,按照順序記錄了路由經過的所有AS。
AS_Set:它是到目的地的路徑上所經過的AS號的無序集合。AS_Set通常用在路由聚合的場景。
AS_Confed_Sequence:是聯盟內子AS的一個有序集合。
AS_Confed_Set:是聯盟內子AS的一個無序集合,主要用在聯盟內路由聚合的場景。
AS號追加
route-policy 1 permit node 10 //定義路由策略add_asn的第一個節點
if-match ip-prefix prefix1 //匹配IP地址前綴列表prefix1
apply as-path 65003 65003 65003 additive
AS號替換
配置 apply as-path 命令時,如果選擇 overwrite 參數,則可以對AS_Path中的編號進行替換。AS編號替換的應用比較靈活,主要有以下幾種情況:
隱藏路由的真實路徑信息。
如果配置了 as-path-limit 命令,接收路由時會檢查AS_Path屬性中的AS號是否超限,如果超限則丟棄路由。這樣對於AS_Path較長的路由,在接收之前,可以把AS_Path替換成較短的AS_Path,防止路由由於AS號超限而被丟棄。
縮短AS_Path長度,使路由被優選。
AS號替換還可以用於形成負載分擔
6.Origin
Origin屬性主要有三種:
IGP:具有最高的優先順序。路由是用 network 命令注入到BGP路由表中的,則Origin屬性為IGP。
EGP:優先順序次之。通過EGP得到的路由信息,其Origin屬性為EGP。
Incomplete:優先順序最低。路由是用 import-route 命令注入到BGP路由表中的,則Origin屬性為Incomplete。
3種Origin屬性的優先順序為:i>e>Incomplete(?)
7.MED(越小越優,默認為0)
特點:僅在AS內部或者相鄰兩個AS之間傳遞,收到此屬性的AS一方不會再將其通告給任何其他第三方AS
MED屬性相當於IGP使用的度量值(Metrics),它用於判斷流量進入AS時的最佳路由(用於比較來自相同AS的路由)
修改方法:
注意要點:
執行 compare-different-as-med 命令後,BGP將強制比較來自不同AS的路由的MED值。除非能夠確認不同的AS採用了同樣的IGP和路由選擇方式,否則不要使用 compare-different-as-med 命令(可能產生環路)。
執行 bestroute med-none-as-maximum 命令後,BGP選路時將該路由的MED值按最大值4294967295來處理,選路結束後,MED值恢復為原始值。
執行 bestroute med-confederation 命令後,只有當AS_Path中不包含外部AS號(不屬於聯盟的子AS),且AS_CONFED_SEQUENCE的第一個AS號相同時,才能比較MED值的大小。
執行 deterministic-med 命令後,將消除路由接收順序對選路結果的影響。
step1:在R4上使用ip-prefix或者acl命令匹配路由
step2:使用Route policy匹配ip-prefix或者acl,apply cost
step3:在R1上驗證
8.鄰居類型(EBGP優於IBGP路由)
在運營商網路存在多個出口設備從Internet獲取路由的場景,出口設備會經常比較鄰居類型。
所有設備處於同一個AS。SwitchA和SwitchB做為運營商網路的出口設備,之間建立IBGP鄰居關系,並且和其他的設備也都建立IBGP鄰居關系。做為運營商網路的出口設備,SwitchA和SwitchB同時從Internet獲取路由,然後將EBGP路由向自己的所有IBGP鄰居發布。在這種情況下,SwitchA和SwitchB上分別有一條IBGP路由和EBGP路由,並且二者的AS_Path屬性相同。通過鄰居類型的比較,SwitchA和SwitchB都選擇EBGP路由做為最優路由。
9.IGP的開銷值
默認情況下:R1會優先選擇R2作為到達4.4.4.4/32的下一跳(router id小)
在R1的G0/0/0介面下使用命令ospf cost 10,使IGP的開銷值大於默認開銷值1.
驗證如下:
10.Cluster_list
step2:RR收到客戶機Client 1的update報文後,RR第一次反射該路由時,會把cluster-ID添加到Cluster_List,如果RR沒有cluster_ID屬性,則自己創建一個再添加。同時也會把Originator_ID添加進去,標識此條路由的發起設備(Router ID值)
11. Router ID (越小越優)
Router ID在自治系統AS中可以標識一台路由器:
如果路由攜帶Originator_ID屬性,選路過程中將比較Originator_ID的大小(不再比較Router ID),並優選Originator_ID最小的路由。預設情況下,BGP在選擇最優路由時在Cluster-List之後比較Originator-ID。配置 bestroute routerid-prior-clusterlist 命令後,BGP在選擇最優路由時在Cluster-List之前比較Originator-ID。
12:對等體地址
多鏈路場景EBGP之間一般用loopback0介面作為更新源地址,也可以使用不同的介面地址作為更新源
負載分擔:
配置BGP負載分擔後,滿足如下所有條件的多條BGP路由會成為等價路由,進行負載分擔:
1:首選值(PrefVal)相同。
2:本地優先順序(Local_Pref)相同。
3:都是聚合路由,或者都不是聚合路由。
4:AIGP值相同。
5:AS_Path屬性完全相同。
6:Origin類型(IGP、EGP、Incomplete)相同。
7:MED(Multi_Exit Discriminator)值相同。
8:都是EBGP路由或都是IBGP路由。配置 maximum load-balancing eibgp 命令後,BGP在選擇最優VPN路由時忽略該條比較。
AS內部IGP的Metric相同。配置 maximum load-balancing eibgp 命令後,BGP在選擇最優VPN路由時忽略該條比較。
此外,需要特別指出的是,攜帶標簽的BGP路由與不攜帶標簽的BGP路由即使滿足上述條件,也不能形成負載分擔。
step1:在R4的BGP進程中network一條路由之後,R1的路由表中存在兩條到達4.4.4.4/32的BGP路由,但是只會優選下一跳為R2作為自己的下一跳,因為router id小,此時查看路由表如下所示:
step2:在R1的BGP進程中使用maximum load-balancing ibgp 2命令(ebgp也可以)實現負載分擔。
Ⅶ BGP對等路由器,主要包含了那些功能
主要是交換路由信息功能。對等路由器互相交換自己的路由信息給對方。
Ⅷ 【網路工程師配置篇】——BGP路由基礎配置(eNSP)
1、BGP(Border Gateway Protocol)是一種不同自治系統的路由設備之間進行通信的外部網關協議(Exterior Gateway Protocol,EGP),其主要功能是在不同的自治系統(Autonomous Systems,AS)之間交換網路可達信息,並通過協議自身機制來消除路由環路。BGP 使用TCP協議作為傳輸協議,通過 TCP 協議的可靠傳輸機制保證 BGP 的傳輸可靠性。運行 BGP 協議的 Router稱為 BGP Speaker,建立了 BGP 會話連接(BGP Session)的 BGP Speakers 之間被稱作對等體(BGP Peers)。
2、BGP Speaker之間建立對等體的模式有兩種:IBGP(Internal BGP)和EBGP(External BGP)。IBGP 是指在相同 AS內建立的 BGP 連接,EBGP是指在不同 AS 之間建立的 BGP連接。二者的作用簡而言之就是:EBGP 是完成不同 AS 之間路由信息的交換,IBGP是完成路由信息在本 AS內的傳遞。
組建BGP網路是為了實現網路中不同AS之間的通信。配置BGP的基本功能是組建BGP網路最基本的配置過程,主要包括三部分:
1、創建BGP進程:只有先創建BGP進程,才能開始配置BGP的所有特性。
2、建立BGP對等體關系:只有成功建立了BGP對等體關系,設備之間才能交換BGP消息。
3、引入路由:BGP協議本身不發現路由,只有引入其他協議的路由才能產生BGP路由。
1.拓撲圖
注意:預設情況下,BGP會自動選取系統視圖下的Router ID作為BGP協議的Router ID。如果選中的Router ID是物理介面的IP地址,當IP地址發生變化時,會引起路由的振盪。為了提高網路的穩定性,可以將Router ID手動配置為Loopback介面地址。
2.實驗目的:
要使AS100網路(R1:1.1.1.1)和AS200(R4:4.4.4.4)網路路由可達。需要在所有router間運行BGP協議,R1和R2、R3之間建立EBGP連接,R2、R3和R4之間建立IBGP全連接。在AS200內,使用IGP協議來計算路由(該例使用OSPF作為IGP協議)。
3.配置思路:
1)搭建好拓撲圖環境,標出規劃好的IP地址
2)修改網路設備默認名稱、配置好IP地址
3)配置基本OSPF(在AR2、AR3、AR4內做IBGP)
4)配置EBGP
4.配置過程:
步驟一:修改網路設備默認名稱、配置好IP地址
1)配置各PC信息 (略)
2)配置路由器AR1默認名稱及介面IP
<Huawei>sys //進入系統視圖模式
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR1 //修改設備名稱
[AR1]int g0/0/0 //進入介面
[AR1-GigabitEthernet0/0/0]ip add 192.168.12.1 24 //給介面配IP
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.13.1 24
[AR1-GigabitEthernet0/0/1]int loopback 0
[AR1-LoopBack0]ip add 192.168.1.1 32
2)配置路由器AR2默認名稱及介面IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR2
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 192.168.12.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 192.168.24.2 24
[AR2-GigabitEthernet0/0/1]int loopback 0
[AR2-LoopBack0]ip add 192.168.2.2 32
3)配置路由器AR3默認名稱及介面IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR3
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 192.168.13.3 24
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 192.168.34.3 24
[AR3-GigabitEthernet0/0/1]int loopback 0
[AR3-LoopBack0]ip add 192.168.3.3 32
4)配置路由器AR4默認名稱及介面IP
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname AR4
[AR4]int g0/0/0
[AR4-GigabitEthernet0/0/0]ip add 192.168.34.4 24
[AR4-GigabitEthernet0/0/0]int g0/0/1
[AR4-GigabitEthernet0/0/1]ip add 192.168.24.4 24
[AR4-GigabitEthernet0/0/1]int loopback 0
[AR4-LoopBack0]ip add 192.168.4.4 32
步驟二、配置基本OSPF(在AR2、AR3、AR4內做IBGP):
[if !supportLists]1) [endif]R2
[AR2]ospf router-id 2.2.2.2 //使能OSPF,並配置router-id
[AR2-ospf-1]area 0 //配置area區域
[AR2-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255 //發布AS內網段
[AR2-ospf-1-area-0.0.0.0]network 192.168.2.2 0.0.0.0
[if !supportLists]2) [endif]R3
[AR3]ospf router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]network 192.168.3.3 0.0.0.0
3)R4
[AR4]ospf router-id 4.4.4.4
[AR4-ospf-1]area 0
[AR4-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network 192.168.4.4 0.0.0.0
4)配置驗證,配置IBGP後,同一個AS內的網段可以互通,不同AS的網段不能互通
步驟三、配置EBGP
[if !supportLists]1) [endif]R1:
[AR1]bgp 100
[AR1-bgp]router-id 1.1.1.1
[AR1-bgp]peer 192.168.12.2 as-number 200
[AR1-bgp]peer 192.168.13.3 as-number 200
[AR1-bgp]network 192.168.1.1 32
[if !supportLists]2) [endif]R2:
[AR2]bgp 200 //創建bgp編號200 (AS200)
[AR2-bgp]router-id 2.2.2.2 //指定router-id
[AR2-bgp]peer 192.168.12.1 as-number 100 //和鄰居網路建立鄰接關系
[AR2-bgp]peer 192.168.24.4 as-number 200 //和鄰居網路建立鄰接關系
[AR2-bgp]peer 192.168.24.4 next-hop-local //要將BGP路由發送給192.168.24.4這個鄰居時,將路由的下一跳設置成自己的地址,這個地址是與192.168.24.4建立鄰居所使用的源地址
該提示信息說明BGP鄰居建立成功
[if !supportLists]3) [endif]R3:
[AR3]bgp 200
[AR3-bgp]router-id 3.3.3.3
[AR3-bgp]peer 192.168.13.1 as-number 100
[AR3-bgp]peer 192.168.34.4 as-number 200
[AR3-bgp]peer 192.168.34.4 next-hop-local
4)R4:
[AR4]bgp 200
[AR4-bgp]router-id 4.4.4.4
[AR4-bgp]peer 192.168.24.2 as-number 200
[AR4-bgp]peer 192.168.34.3 as-number 200
[AR4-bgp]network 192.168.4.4 32
配置EBGP後,我們發現由BGP控制選路後,從AR4到AR1的報文走的是AR2這條路徑
1)查看不同AS之間的連通性:
通過Ping命令結果,我們發現在配置EBGP後,相同AS與不同AS之間都可以互相通信
2)在AR1查看路由表:
在路由表可以發現,EBGP目標地址是192.168.4.4,下一跳是192.168.12.2,說明192.168.1.1與192.168.4.4之間的通信是經過的路由器AR2。
3)查看抓包信息:
在AR1與AR2相連的介面開啟抓包,可以抓到AR4與AR1通信的TCMP報文,同時我們發現BGP的傳輸協議是TCP,埠號為179
在AR1與AR3相連的介面上開啟抓包,發現,在這里沒有AR4與AR1通信的信息,說明,通過BGP選路之後,AR4要到AR1的數據會通過AR2發送。
至此,BGP實驗完成,我們在實驗中講到,BGP自動完成了選路,那麼要怎麼手動控制選路呢?加入交流群696283186獲取更多實驗詳細配置
總結:BGP具有以下幾個特性:
1) 傳輸協議:TCP,埠號179;
2) BGP是外部路由協議,用來在AS之間傳遞路由信息;
3) 是一種增強的路徑矢量路由協議;
4) 擁有可靠的路由更新機制;
5) 具備豐富的Metric度量方法;
6) 無環路協議設計;
7) 為路由條目附帶多種屬性信息;
8) 支持CIDR(無類別域間選路);
9) 豐富的路由過濾和路由策略;
10) 無須周期性更新;
11) 路由更新時只發送增量路由;
12) 周期性發送KeepAlive報文,以保持TCP連通性;