最近在學習BGP協議,在學習過程當中,發現華爲和思科在BGP選路過程當中,兩家廠商略有不一樣,因此作了一個簡單的總結,請各位看官,請你們在看到這篇文章時,若有錯誤,請給於指正,對比內容以下:html
選路規則app |
華爲BGP選路規則負載均衡 |
思科BGP選路規則ide |
第0條學習 |
下一跳是否可達,若是不可達則不參與選路spa BGP 向IBGP對等體發佈import引入的IGP路由時, 將下一跳屬性改成自身的接口地址,而非IGP中的下一跳地址。router peer next-hop-invariable命令有如下做用:htm BGP Speaker在向EBGP對等體發佈路由時不改變下一跳(該命令配置在EBGP對等體間時,只對×××v4和×××v6路由生效,對於其餘類型的路由都不生效)。接口 BGP Speaker在向IBGP對等體發佈引入的IGP路由時使用IGP路由的下一跳地址。ip |
下一跳是否可達,若是不可達則不參與選路 BGP 向IBGP對等體發佈引入的IGP路由時, 下一跳仍然保持IGP的下一跳不變 |
第1條 |
比較協議首選值Pref_Val,數值高優選,本地始發和鄰居傳遞過來的都爲0。該屬性本路由器有效,是華爲私有屬性 | 比較Weight值,數值高者優選,本地始發爲32768。該屬性本路由器有效,是思科私有屬性 |
第2條 |
local-pref本地首選項(越大越優先),該參數在本AS內傳遞。 始發路由器的local-pref值爲空,傳遞給AS內IBGP鄰居後變爲100;本地優先級(Local_Pref)屬性僅在IBGP對等體之間交換,不通告給其餘AS。 若是路由沒有local-pref值,BGP選路時將該路由按缺省的local-pref值100來處理 使用命令爲default local-preference本機向全部IBGP鄰居發佈的全部路由設置一個缺省的Local_Pref 使用命令爲apply local-preference爲本機向任意IBGP鄰居發佈的任意路由設置Local_Pref,而且能夠爲不一樣的路由設置不一樣的Local_Pref 當路由同時應用default local-preference和apply local-preference命令時,apply local-preference命令的配置優先生效。 |
local-pref本地首選項(越大越優先),這個參數在本AS內傳遞。 始發路由器的local-pref值爲100 本地優先級(Local_Pref)屬性僅在IBGP對等體之間交換,不通告給其餘AS。 |
第3條 |
本地始發路由優先,優先順序以下:手動聚合路由,自動聚合路由,network宣告路由,從import-route命令引入的路由 | 本地始發路由優先,優先順序以下:network宣告路由,從IGP引入的路由,手動聚合路由,自動聚合路由, |
/ |
AIGP, AIGP(Accumulated Interior Gateway Protocol Metric)屬性是一個比較新的BGP屬性,用於傳遞並累加IGP Metric值,該屬性是可選非過渡屬性,IANA(Internet Assigned Numbers Authority)爲AIGP分配的屬性類型碼是26。 在VRP5的實現中,AIGP屬性只能經過路由策略添加,若不設置,則路由缺省不攜帶AIGP屬性。在路由傳遞中,AIGP屬性會根據創建鄰居所依賴IGP路由的Metric增長其AIGP值。 在路由選路過程當中:攜帶AIGP屬性的路由優於未攜帶AIGP屬性的路由,而若是都存在AIGP屬性,則比較AIGP屬性與其下一跳的IGP Metric之和,優選該值較小的。 在BGP引入、接收或發送路由時,能夠人爲經過路由策略裏的apply aigp { cost | inherit-cost }命令設置AIGP屬性值的大小。 |
思科資料詳見連接 |
第4條 |
比較as-path,長度短者優先,AS_Path屬性有四種形式,分別是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。 一個as-set被計數爲1,而無論「set」中包含多少個as 忽略該條:bestroute as-path-ignore |
比較as-path,長度短者優先,AS_Path屬性有四種形式,分別是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。 一個as-set被計數爲1,而無論「set」中包含多少個as 忽略該條:bgp bestpath as-path ignore |
第5條 |
比較路由起源屬性,IGP(0)>EGP(1)>Incomplete(3) 不徹底的(Incomplete):路由信息是從其餘渠道學習到的。不徹底路由並非說該路由有何缺陷,只是肯定該路由來源的信息不徹底而已。好比:BGP經過重分發機制學習到的路由將攜帶不徹底路由來源屬性,這是由於沒有辦法肯定該路由的來源。 |
比較路由起源屬性,IGP(0)>EGP(1)>Incomplete(3) |
第6條 |
比較MED值,越小越優先 1、MED值產生過程以下: 1.經過network和import命令注入到BGP中的路由是直連路由則MED值爲0,傳遞給IBGP和EBGP鄰居也爲0 2.經過network和import命令注入到BGP中的路由爲非直連IGP路由那麼MED值爲IGP的cost值,傳遞給IBGP和EBGP鄰居也爲IGP的cost值(只有在邊界路由器上network和import的路由在傳遞給EBGP鄰居時纔會攜帶MED值) 3.經過aggregate命令注入到BGP中的路由的MED值爲空,傳遞給IBGP和EBGP鄰居也爲空 2、MED值傳播範圍: 1. 在本AS的邊辦路由器上宣告路由時傳遞給其餘AS的EBGP鄰居後,在下一AS範圍內繼續傳遞,但不會再傳遞給第三個AS。 2. 在AS內BGP Speaker上通告的路由的MED值會在本AS內傳遞;當邊界路由器再通告給EBGP鄰居時會清除MED值,若是要強制邊界BGP路由器將從IBGP學來的路由通告給EBGP鄰居時攜帶MED值,須要在邊界路由器上配置route-policy並apply cost-type internal,而後邊界路由器會把本路由器上的BGP路由到下一跳的cost值做爲MED值傳遞給EBGP鄰居,(而非當前邊界路由器上看到的的MED值) 3、其餘: 1.默認狀況下BGP路由器只比較來自相同AS的MED值,使用compare-different-as-med命令,BGP將強制比較來自不一樣AS的路由的MED值。 使用deterministic-med將消除路由接收順序對選路結果的影響。 2.在接收到的BGP路由沒有MED值時按0來處理,執行bestroute med-none-as-maximum命令後,沒有MED值時按最大值4294967295來處理,這主要是爲了對舊標準的兼容 3.命令default med命令只對本設備上用import-route命令引入的路由和BGP的聚合路由生效 |
比較MED值,越小越優先 1、MED值產生過程以下: 1.經過network和import命令注入到BGP中的路由是直連路由那麼MED值爲0,傳遞給IBGP和EBGP鄰居也爲0 2.經過network和import命令注入到BGP中的路由爲非直連IGP路由那麼MED值爲IGP的cost值,傳遞給IBGP和EBGP鄰居也爲IGP的cost值(只有在邊界路由器上network和import的路由在傳遞給EBGP鄰居時纔會攜帶MED值) 3.經過aggregate命令注入到BGP中的路由的MED值爲空,傳遞給IBGP和EBGP鄰居也爲空 2、MED值傳播範圍: 1. 在本AS的EBGP路由器上宣告路由時傳遞給其餘AS的EBGP鄰居後,在下一AS範圍內繼續傳遞,但不會再傳遞給第三個AS。 2. 在AS內BGP Speaker上通告時在本AS內傳遞;當從IBGP鄰居學到的路由通告給EBGP鄰居時會清除MED值,如若是要強制邊界BGP路由器將從IBGP學來的路由通告給EBGP鄰居時攜帶MED值,須要在邊界路由器上配置route-map並set metric-type internal,而後邊界路由器會把本路由器上的BGP路由到下一跳的cost值做爲MED值傳遞給EBGP鄰居,(而非當前邊界路由器上看到的的MED值) 3、其餘: 1.默認狀況下BGP路由器只比較來自相同AS的MED值,使用bgp always-compare-med命令,BGP將強制比較來自不一樣AS的路由的MED值。 使用bgp deterministic-med將消除路由接收順序對選路結果的影響。 2.在接收到的BGP路由沒有MED值時按0來處理,執行bgp bestpath missing-as-worst命令後,MED值按最大值4294967294來處理,這主要是爲了對舊標準的兼容 3.使用命令default med命令只對本設備上用import-route命令引入的路由和BGP的聚合路由生效。 |
第7條 |
鄰居類型,EBGP優於IBGP PE上某個×××實例的×××v4路由的ERT匹配其餘×××實例的IRT後複製到該×××實例,稱爲LocalCross;從遠端PE學習到的×××v4路由的ERT匹配某個×××實例的IRT後複製到該×××實例,稱爲RemoteCross EBGP優於聯邦EBGP(聯邦eBGP和聯邦iBGP不具備可比性,不比較。由於聯邦ebgp和聯邦ibgp都被看作內部路徑沒有差異)。若是都是EBGP對等體收到的路由條目或者都是從IBGP對等體收到的路由條目或者分別從聯邦EBGP和聯邦IBGP對等體收到的條目則繼續向下一步進行。 |
鄰居類型, EBGP優於IBGP EBGP優於聯邦EBGP(聯邦eBGP和聯邦iBGP不具備可比性,不比較。由於聯邦ebgp和聯邦ibgp都被看作內部路徑沒有差異)。若是都是EBGP對等體收到的條目或者都是從IBGP對等體收到的條目或者分別從聯邦EBGP和聯邦IBGP對等體收到的條目則繼續向下一步進行。 |
第8條 |
比較到下一跳的IGP Cost值,數值小者優選 使用命令bestroute igp-metric-ignore可忽略該選路規則 |
比較IGP Cost值,數值小者優選 |
第9條 |
前面的選路規則都一致時能夠手工等價負載均衡,手工負載均衡時as-path要徹底相同,不只是長度相等。 攜帶標籤的BGP路由與不攜帶標籤的BGP路由不能造成負載分擔。 1.配置maximum load-balancing ebgp number命令後,僅EBGP路由參與負載分擔;配置maximum load-balancing ibgp number命令後,僅IBGP路由參與負載分擔。不配置[ ebgp | ibgp ]時,EBGP和IBGP路由都參與負載分擔,且參與負載分擔的路由條數相同。 2.配置maximum load-balancing number命令後,不管是否造成負載分擔,在發佈路由時會將下一跳修改成本端地址。可是在路由反射器和BGP聯盟場景下,對於非本地路由,不修改下一跳爲本端地址。 3.配置maximum load-balancing [ ebgp | ibgp ] number命令後,不管是否造成負載分擔,在發佈路由時都不會強制將下一跳修改成本端地址。 4.配置maximum load-balancing [ ebgp | ibgp ] number ecmp-nexthop-changed命令後,只有造成負載分擔時,纔會將發佈路由的下一跳修改成本端地址。 5.攜帶標籤的BGP路由與不攜帶標籤的BGP路由即便知足上述條件,也不能造成負載分擔。 6.load-balancing as-path-ignore命令用來設置路由在造成負載分擔時不比較路由的AS-Path屬性 7.在 BGP-×××實例IPv4地址族視圖、BGP-×××實例IPv6地址族視圖下執行命令maximum load-balancing eibgp 在BGP-×××實例視圖下,配置maximum load-balancing eibgp命令後,在判斷BGP私網路由是否等價時,路由的EBGP/IBGP類型不做爲判斷條件,EBGP和IBGP路由均可以造成負載分擔。 |
前面的選路規則都一致時能夠手工等價負載均衡,手工負載均衡時as-path要徹底相同,不只是長度相同。 1.使用命令maximum-paths [ibgp] number,若是沒有使用ibgp參數,那麼只對ebgp路由負載分擔 |
第10條 |
無 | 當多條都是從EBGP收到的路由時(僅ebgp路由,聯邦EBGP對等體不算,由於是內部路徑),BGP優先使用最早收到的路由條目(最老的路徑),該選路規則通常不使用。 若是如下任一條件爲真,該條選中規則將會被忽略: 1.啓用了bgp bestpath compare-routerid 2.多條路徑具備相同的路由器ID,由於這些路由都是從同一臺路由器發過來的 3.當前沒有最佳路徑。 |
第11條 |
比較Cluster_list長度,越短越優先,該選路規則僅僅出來在BGP RR環境中 缺省狀況下,BGP在選擇最優路由時Cluster-List優先於Originator-ID,使用命令bestroute routerid-prior-clusterlist後,BGP在選擇最優路由時Originator-ID將優先於Cluster-List。 |
比較Router-id的大小,越小越優先 若是路徑包含RR屬性,那麼在路徑選擇過程當中就用originator-id來代替router-id進行比較 |
第12條 |
比較Router-id的大小,越小越優先 若是路徑包含RR屬性,就用originator-id來代替router-id進行比較 缺省狀況下,BGP在選擇最優路由時Cluster-List優先於Originator-ID,使用命令bestroute routerid-prior-clusterlist後,BGP在選擇最優路由時Originator-ID將優先於Cluster-List。 reflect change-path-attribute命令使能路由反射器經過出口策略修改路由路徑屬性 |
比較Cluster_list長度,越短越優先,該選路規則僅僅出來在BGP RR環境中 |
第13條 |
比較下一跳對等體的鏈接地址,這是BGP配置中的peer IP地址,越小越優先 | 比較下一跳對等體的鏈接地址,這是BGP配置中的neighbor IP地址,越小越優先 |
第14條 |
無 | BGP自定義路徑選擇過程:BGP Cost Community(BGP成本團體)的擴展團體屬性提供了自定義最佳路徑選擇過程的方式。這個自動路徑選擇過程插入在BGP選路規則的第8條以後(優先到下一跳IGP-cost最低的路徑),或第3條後,首選成本值最低的路徑,該條通常不使用,使用時須要再查詢詳細資料 |