BGP的屬性和選路原則

1、BGP 的路由優先問題
BGP同步問題:
經過IBGP學習路由必須經過IGP學習,不然路由不優;爲了解決技術層面的路由黑洞問題,通常創建關閉,使用MPLS標籤轉換技術解決。
下一條問題:next-hop下一跳屬性在路由傳遞時,是否改變規則:
一、將IBGP鄰居學習到的路由傳遞給EBGP時,next-hop爲創建EBGP鄰居的更新源地址。
特例:若邊界設備與EBGP鄰居使用MA網絡並直連創建鄰居,而且邊界設備學習到達該路由的路由下一跳(遞歸後的)接口也爲該MA網絡接口,則使用EBGP學習的下一跳爲IBGP鄰居的MA接口地址(ICMP重定向),注意該特性也使用與EBGP學習路由傳遞給其餘EBGP鄰居時。
二、將EBGP鄰居學習的路由傳遞給IBGP鄰居時,next-hop不發生改變;傳遞個其餘EBGP鄰居時下一跳爲創建EGBP鄰居的更新源地址。正則表達式

2、BGP路由導入和導出redis

BGP 路由引入:
一、Network
二、重發布
三、聚合產生網絡

一、network引入時,若爲直連路由、靜態出接口寫法路由(包含出接口爲null 0),next-hop爲0.0.0.0;若爲IGP路由,本路由器中IGP路由的下一跳地址爲next-hop地址。
當接收到的next-hop爲本身直鏈接口BGP路由條目,不學習,直接忽略,防止出環。負載均衡

二、重發布引入時,與next-hop一致。(必須關閉自動彙總,若開啓,則next-hop爲0.0.0.0)
注意:將OSPF路由重發布引入BGP時,默認不會將OSPF中的5類和7類LSA引入, 若要引入,則重發布過程當中增長match匹配5類和7類LSA.ide

三、聚合產生的路由條目,next-hop爲0.0.0.0。學習

BGP路由導出:
將BGP重發布進入IGP中,默認僅將EBGP鄰居學習到的路由和本路由network引入的路由重發布引入。若要將IBGP鄰居學習到的路由重發布引入BGP,則使用命令:
R(config)#router bgp 1
R(config-router)#bgp redistribute-internal優化

3、BGP後門路由
一、Backdoor屬性是使router優選從IGP學習到的路由,而不是優選從IBGP鄰居學習到的路由,由於缺省狀況下,EBGP鄰居AD爲20,會始終優先選擇,而不會選擇其餘AD的IGP路由協議傳遞過來的路由。
二、後門路由用於一些特殊的狀況,將IGP路由的優先級調高於EBGP。code

4、BGP路由懲罰
目的:抑制路由擺動
被懲罰的路由不能參與選路,不能傳遞,懲罰是針對該路由的路徑。router

懲罰值:路由每翻滾一次,懲罰值增長1000,路由屬性每改變一次,懲罰值增長500
懲罰門限:開始進行懲罰的懲罰值,默認2000
重用門限:當懲罰值下降到該值是,恢復路由,默認750
半衰期:每通過一個半衰期,懲罰值減半,默認15分鐘
最大懲罰時間:最大懲罰路由時間,默認60分鐘
最大懲罰值:重用門限*2^(最大懲罰時間/半衰期),默認12000遞歸

5、BGP的屬性
一共10條,Cisco有11條,weight是Cisco私有屬性
一、公認必遵:Origin,AS-path,Next-hop
二、公承認遵:local-pref,auto-aggregate
三、可選傳遞:aggregator,community
四、可選非傳遞:MED,Originator-ID,cluster-list,weight
(1)Origin屬性:記錄了路由是如何進入路由表的。
Origin code:i--IGP,e--EGP,?--incomplete
使用i標示——管理員使用network宣告引入
使用e標記——經過EGP協議學習後,重發布到BGP協議中的路由
使用?標記——經過IGP協議學習後,重發布進入BGP協議中的路由
優先級:i > e > ?
(2)AS-path屬性:指出包含在update報文中的路由信息所通過的自治系統號。
一、路由條目在一個AS內部傳遞時,不會添加該AS的編號,而是在傳遞給其餘EBGP鄰居時,才添加該參數;而且優選通過的AS數量少的路徑。
二、管理員能夠經過添加AS來干涉選路,添加後便可干涉EBGP鄰居關係選路,也可干涉IGBP鄰居關係選路,但只能在EBGP鄰居修改該參數。
(3)Next-hop屬性:
一、將IBGP鄰居學習到的路由傳遞給EBGP鄰居時,next-hop爲創建EBGP鄰居的更新源地址。
二、將EBGP鄰居學習到的路由傳遞給IBGP鄰居時,next-hop不發生改變;傳遞個其餘EBGP鄰居時下一跳爲創建EGBP鄰居的更新源地址。
(4)Local-pref屬性:
一、local-pref稱爲本地優先級,其中的(local)本地就是指AS,local-pref屬性的傳遞範圍只能在同一個AS內部有效,出了本AS就會被還原成默認值100.
二、local-pref屬性在BGP鄰居之間自動傳遞時,只有將路由發給IBGP時纔會傳遞,而發給EBGP時,沒有local-pref值。一條路由在AS內全部路由器上的默認local-pref值是100。
三、local-pref的值越高,路由的優先級就越高。
(5)auto-aggregate屬性:
用來警告下游路由器路由聚合後產生的路由路徑丟失。
BGP支持向BGP鄰居傳遞重疊路由,能夠選擇多種方式:
一、明細和粗略的都公佈
二、只公佈明細
三、只公佈沒有重疊的
四、公佈聚合後的路由
五、明細和粗略都不公佈
(6)Aggregator屬性:
用來通告彙總路由的匯聚路由器BGP_ID(Cisco)和聚合路由的路由器的AS號。
(7)community屬性:
標準community (Standard community)作路由標示
擴展community(extended community)用於MPLS ×××
(8)MED多出口鑑別屬性:
MED就是BGP中的metric,在不一樣AS間傳遞。在有多個下一跳EBGP鄰居時,會優先選擇MED值最小的路徑;在同一個AS內部不傳遞該屬性,同一AS內的MED的默認值爲0,這是爲了在同一個AS內的路由器擁有等同的選路結果。
(9)Originator-ID屬性:
路由反射器使用該屬性,不接收與本身相同的起源者ID的路由,防止環路。
(10)Cluster-list屬性:
路由反射器使用該屬性,不接收與本身相同的簇列表的路由,防止環路。
(11)Weight屬性:
Weight屬性是Cisco私有屬性,只有Cisco的路由器才能識別weight。
一、路由的weight屬性只在本地路由器起做用,BGP將路由傳遞給鄰居時,並不保留weight。Weight值的範圍0~65535,默認爲0,若是是BGP本地發起路由,weight值32768。
二、當到達同一目的地存在多條路徑時,優選weight值大的。在Cisco路由器中,比較最優路徑的第一條規則就是比較weight值,因此只要改動weight值,就能控制Cisco路由器的BGP選路。

6、BGP的選路原則(13條)
BGP選路:a、無環(AS轉發環路)
b、路由優化(IBGP同步已解決;下一跳可達)
c、路由不能是被懲罰狀態

一、最高weight值 (選最高weight值的路由,Cisco私有,默認爲0,若是是BGP本地發起路由,weight值32768)
二、最高Local-pref值(若weight值相同,則選擇擁有最高local-pref值的路由,默認100)
三、本地發起(起源)路由(若local-pref值相同,則選擇BGP本地發起的路由:也就是下一跳爲0.0.0.0的路由。本地發起的路由有多種方式:network命令引入,重發布,彙總。)
四、最短AS-path(若本地發起路由沒法比出最有路徑,則選擇擁有最短AS-path的路由。可使用bgp bestpath as-path ignore 命令來忽略對AS-path的比較,而直接比較下一屬性。)
五、最低origin類型(若AS-path沒法比較出最優路徑,則選擇擁有最低origin類型的路由。origin記錄了路由是如何進入路由表的,有三種方法:從IGP導入,從EGP導入,以及重發布。優先級:IGP > EGP > Incomplete)
六、最小MED值(若origin類型沒法比較出最優路徑,則選擇擁有最小MED值的路由,而且只有當多個下一跳鄰居在同一個AS時,才能比較MED值。若是在多個不一樣AS的下一跳中比較MED,可以使用命令bgp always-compare-med,需注意此命令在整個AS的路由器上配置,不然可能產生環路。MED默認值爲0,若是收到一條沒有MED值的路由,也認爲是0)
七、EBGP優於IBGP(若MED沒法比較出最優路徑,則選擇下一跳爲EBGP的鄰居。EBGP的路由AD爲20,而IBGP的路由AD爲200,但BGP並不在EBGP與IBGP間比較AD值,比到此步時,是鄰居類型影響了最優路徑的選擇,而不是AD值的影響。注意:BGP聯邦內部沒有改規則)
八、在下一跳地址中,選擇擁有IGP metric最小的路由
九、若是配置了maximum-path,若存在多條等價路徑,會同時進路由表,即負載均衡
十、若下一跳都爲EBGP,則選擇最先學習到的路由,即時間最長的路由。(前提必須是external路由,聯邦內的EBGP路由當作IBGP處理)
十一、選擇擁有最低router-id的下一跳路由
十二、選擇擁有最短cluster-list的路由
1三、選擇下一跳鄰居擁有最小IP地址的路由

7、BGP路由過濾一、route-map二、Prefix-list三、Distribute-list四、As-path ACL(基於正則表達式)能夠將ip as-path access-list 命令中的正則表達式用於BGP關於正則表達式,下篇講解

相關文章
相關標籤/搜索