BGP13條選路原則
最高有weight優先,默認為0(思科特有,選大的)
本地優先級高的優先(只可以在IBGP鄰居之間傳遞)
起源本路由器上的路由(network、aggregate-address)
as-path最短的優先
最小的起源代碼 (IGP 優先 EGP 優先 incomplete)
最低的med
ebgp>ibgp
通過最近BGP鄰居的路由
如果配置了maixmum-path[IBGP],就負載均衡
最老的EBGP鄰居學到的路由,是路由最老
更低的router-id
始發路由器ID相同,那麽選擇 cluster-list短的
優選來自於最低的鄰居地址的路徑,是BGP的neigbor配置中地址
一、Weight值
簡介:
1.優選有最大Weight的路由(範圍0到65535),weight是CISCO私有的參數。
2. 缺省情況下,通過本路由器宣告、重分布或者匯總的路由的weight為32768,從BGP鄰居學習到的路由的weight為0。
3:只在本地(影響自己一個路由器)有用,影響本路由的選路。
修改方法:
1、neighbor xxx weight xxx (從此xxx鄰居學到的所有的路由都加)
2、route-map xxx permit 10
set weight xxx
只能在本路由器的入方向上做。
二、local-prefrence
理論簡介:
1.通過第一條選路原則不能選出最優BGP條目的情況下,優選有最大local preference值的BGP條目。
2.local preference值只在IBGP鄰居之間傳遞,在EBGP鄰居之間不能傳遞,也就是說不能在EBGP的出方向上做,因為只在本AS內生效。
3.對於從EBGP鄰居學習到的BGP條目,local preference缺省值為100,這個值可以通過命令bgp default local-preference修改。
修改方法:
(1)bgp default local-preference xxx
修改後,對IBGP學來的路由不起作用,只對EBGP傳來的和自己產生的路由起作用。
(2)route-map xxx permit 10
set local-preference xxx
(3)不能在EBGP鄰居關系的出方向做修改。
3、local-preference的默認值是100
在show ip bgp 中看到是空,其實也是100,show ip bgp xxxx 看明細的時候可看見路由的local-preference。
三:起源本路由器上的路由
優選從本路由器始發的路由(包括本地network配置的重分布,或者在IGP表中已經有一些需要被配置路由聚合的地址,在BGP中用aggregate-address命令配置的路由聚合)。
註意:對於CISCO IOS,如果是從本地往BGP裏註入一條路由,缺省的weight值為32768,由於這個weight值很大,對於該註入路由,會根據第一條選路原則成為最優BGP條目。因此對CISCO IOS來說,第三條選路原則作用不大。然而考慮到第一條選路原則為CISCO私有,不是所有廠家都支持,第三條選路原則的作用就顯現出來了。
四、AS-PATH
在通過前三條選路原則不能選出最優BGP條目的情況下,優選AS path長度短的路由條目。
註意:修改AS path長度只能在EBGP鄰居關系之間進行,IBGP鄰居關系是不可以的
1、as-path只可以在EBGP鄰居關系的out方向和in的方向去修改
(1)out方向做: 加在本來AS號的前面(右邊
(2)in方向做: 加在本來AS號的後面(左邊
2、last-as 表示在離這個路由器最近的AS號,重復加次數
route-map xx permit 10
match ip address 1
set as-path prepend last-as 數字(加多少次)
3、當寫下面兩個命令時,哪個先生效?
set as-path prepend 23
set as-path prepend last-as 數字
入/出方向的時候,as-path prepend與last-as同時使用,都是last-as先生效,然後as-path prepend才生效
(1)、聚合 聚合後的{}內的AS算幾個?一個
(2)、聯邦 聯盟內的()內的AS算幾個?一個也不算
(3)、neighbor xxx remove-private-AS 刪除私有AS號,起源於本AS無效,在出方向做。
5、如何跳過as-path選路原則
bgp bestpath as-path ignore
五、起源代碼origin
在通過前四條選路原則不能選出最優BGP條目的情況下,優選最低起源類型的BGP路由
最低起源類型的順序是 IGP 優先 EGP 優先 incomplete,其中EGP的方式現在已經不用了。
通過Network,aggregate方式產生的BGP路由的起源屬性是i,通過重分布產生的BGP路由的起源屬性是incomplete。
1:
i--------igp network xxxxx
e-------egp (沒有了)
?-------重分發
2、origin在 EBGP/或IBGP的in和out方向都可以做
route-map xxx permit 10
match ip address pre 1
set origin incomplete ?
六、MED
MED值的用途:在兩個相臨AS之間有多個BGP連接的情況下,MED值用於影響從相鄰AS到本AS的路由選擇,即用於影響鄰居AS到本AS的流量從哪個接口進來,這是通過向相鄰AS的EBGP鄰居發送具有不同MED值的路由條目來實現的,但是需要註意選路過程的實現是相鄰AS的路由器自身根據13條選路原則獨立完成,MED值的的比較是前面的五條選路原則都不能選出最優的情況下才起作用。
MED的生成:
1)本地network方式生成的BGP條目,會帶上IGP的metric,(同時也會帶上路由的下一跳,開啟匯總後會被取消)會傳給所有鄰居。
2)如果從EBGP鄰居學習到的BGP條目的metric值傳遞給其他IBGP鄰居,但不傳給EBGP。
-----以上表示MED值只傳遞一次EBGP鄰居-----
3)如果從IBGP鄰居學習到一條BGP條目的metric為0或者其他值,缺省不會傳給給EBGP鄰居,顯示為空。
4)匯總方式生成的BGP條目,metric值為空。
5)重分布方式生成的BGP條目,metric值為IGP的cost、metric、hop,如果開啟自動匯總會被清除。
6)缺省情況下,空的metric當0看待 。
優選最小MED 值的路由(範圍 0到4,294,967,295).
A.只有在通過兩條路徑得到第一個AS(對等體)是同一個AS時才進行MED比較;任何子自治域的聯盟系統都會被忽略。也就是說,只有在AS序列號中第一個AS號碼一致時,才進行MED比較;任何聯盟AS序列號(AS_CONFED_SEQUENCE)都會被忽略,也就是說從不同聯邦AS學到的路由都會比較MED
B.如果路由器上配置了 bgp always-compare-med,在全部的路徑進行MED比較。但是這需要全體AS都同時啟用這個功能,否則有可能發生路由環路
C.如果路由器上配置了bgp bestpath med confed,將對所有包括/.AS_CONFED_SEQUENCE的路徑進行MED比較。默認不比較
D.如果接收到的路徑沒有分配MED值,則將此路徑分配為0,除非路由器上配置了bgp bestpath med missing-as-worst,將被看作MED值為4,294,967,295的路由將在註入到路由選擇表之前被改為4,294,967,294
E. 只能在相鄰的AS傳遞,一般在EBGP鄰居的OUT方向的做。影響入站的流量。(IBGP之間是可以修改的)
F. bgp deterministic-med是指把路由過來的MED值進行分組,同一個AS的分一組,其他的AS的分一組,先比較同一個AS的MED值,在和其他AS的MED值比較路由器那個最小的ROUTE-ID
七、EBGP > IBGP
與EBGP的AD小於IBGP的AD是無關的
EBGP>聯盟EBGP>IBGP
八、最近的BGP鄰居
指的去往BGP鄰居用的IGP路由的metric值,對EBGP,IBGP鄰居都會有效。
r3#sh ip b 22.22.22.0
BGP routing table entry for 22.22.22.0/24, version 4
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Not advertised to any peer
1
1.1.1.1 (metric 1) from 1.1.1.1 (1.1.1.1)
Origin IGP, localpref 100, valid, external, best
九、配置了maixmum-path [IBGP],存在多條等價的路徑,會負載均衡
其實這不算選路的原則,是指當前面的八條選不出最優路由時,在BGP 的進程下配置maximum-paths 命令後,會產生負載均衡
r3(config)#router bgp 3
r3(config-router)#maximum-paths ?
<1-6> Number of paths
ibgp iBGP-multipath
非等價的負載---bgp dmzlink-bw –先進程啟用
Neighbor xxxx dmzlink-bw 再針對鄰居啟用
十、old最長的EBGP路由,存在時間最長的優先
bgp bestpath compare-routerid
這句命令的意思是指,選路是前8條都選不出來時,跳過第十條最老的EBGP鄰居
直接選最小的ROUTE-ID
優選最老的路由(最先被學習到的路由).
A.此步驟可以將路由擺動的影響減到最小,因為新接收到的路徑不會取代老的,即使這條新接收的路徑是通過下面提及到的額外路徑選擇標準來進行選擇的。這使得只在iBGP路徑下應用額外的選擇步驟更有意義。
B.此步驟可以被bgp bestpath compare_routerid命令語句所關閉。
C.如果路由器標誌是一樣的,此步驟可以被屏蔽,因為這說明路由器正在從自己那裏接收路由。
D.如果當前沒有最優路由器,此步驟可以被屏蔽。當提供某個路徑的對等體路由器宏機,就會發生丟失
十一、 lowest router-id
最小的IBGP鄰居route-id
在有RR的情況下不比鄰居的route-ID,比起原ID 起始者標識將代替route-id在路徑選擇過程中起作用。
將不會用到11條選路原則,會用到12或者13條選路原則。
一個路由器從多個RR收到相同路由進行最優路徑選擇時,第11條選路原則用的Router-ID被更改為originator ID(此ID既是在本AS學得路由的第一跳路由器的Router-ID,是RR的一個client),而不是RR的Router-ID,因此如果BGP路由只是從一個ASBR學習到然後傳入AS內部,將不會用到11條選路原則,會用到12或者13條選路原則。
十二、cluster list length
多條路徑的始發路由器ID相同,那麽選擇 cluster-list短的,因為每經過一個RR, cluster-list會加上這個RR的 cluster-id。
十三、lowest neihbor address
BGP優選來自於最低的鄰居地址的路徑,是BGP的neigbor配置中地址。
BGP13條選路原則