bgp选路原则   

1 最高有weight优先,默认为0
2 本地优先级高的优先
3 起源本路由器上的路由
4 as-path最短的优先
5 最小的起源代码
6 最低的med
7 ebgp>ibgp
8 通过最近BGP邻居的路由
 9 如果配置了maixmum-path[IBGP],就负载均衡。
10 最老的EBGP邻居学到的路由,是路由最老.
 11 更低的router-id
12 始发路由器ID相同,那么选择 cluster-list短的,
13 优选来自于最低的邻居地址的路径,是BGP的neigbor配置中地址


一、 weight值
理论简介:
1.优选有最大Weight的路由 (范围0 到 65,535) weight是CISCO私有的参数,路由器配置了Weight在本地有效。

  1. 缺省情况下,通过本路由器宣告、重分布或者汇总的路由的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。
1、 只能在相邻的AS传递,一般在EBGP邻居的OUT方向的做。影响入站的流量。(IBGP之间是可以修改的)
6、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条选路原则。
如果在同一时间学习到多条到同一目的地的路由,优选最小BGP-router-ID的路由,注意,如果一个路径包括路由反射器属性,


十二、cluster list length
多条路径的始发路由器ID相同,那么选择 cluster-list短的,

  因为每经过一个RR, cluster-list会加上这个RR的 cluster-id

十三、lowest neihbor address
BGP优选来自于最低的邻居地址的路径,是BGP的neigbor配置中地址