BGP(Border Gateway Protocol)是一种自治系统间的动态路由发现协议,目前在互联网中使用非常广泛,BGP协议有非常丰富的属性,路由选择的过程也相对复杂。在使用CISCO设备的网络中BGP路由协议按以下的规则进行路由选择。
1、WEIGHT值最高的路径优先。WEIGHT是CISCO专有的参数,且只对配置该参数的本地路由器有效,不能传递。缺省条件下,本地始发的路径具有相同的WEIGHT值(32768),所有其它的路径的WEIGHT值为0。
2、LOCAL-PREF值(本地优先级)。CISCO IOS中,LOCAL-PREF缺省值为100。该属性只能在本AS内传递。
3、基于始发地(origination)评估路由,路由器本地始发的路径优先。依次降低的优先级顺序是:default-originate(针对每个邻居配置), default-information-originate(针对每种地址簇配置),network , redistribute , aggregate-address 。
4、评估AS-PATH的长度,AS-PATH列表最短的路径优先。但可以通过配置 bgp bestpath as-path ignore (隐藏命令)来忽略这一步。
5、评估路由的origin属性,origin属性值最低的路由优先。IGP:origin值=0;EGP:origin值=1;INCOMPLETE:origin值=3
6、评估MED。MED值最小的路径胜出。该属性可以传递出AS。缺省条件下,只有在两条路径的第一个AS相同的情况下才会进行比较。如果配置了:bgp always-compare-med,那么对于所有路径都将比较MED,而不考虑它们是否来自于同一个AS。
7、EBGP路径优先于IBGP路径。
8、BGP优先选择到BGP下一跳的IGP度量最低的路径。
9、如果配置了maximum-paths[ibgp]n, n在2-6之间,并且存在多条等价成本的路径,那么BGP会在IP路由选择表中插入最多n条接收到的路径。这就激活了BGP多路径负载分担特性。如果没有使用可选关键字ibgp,则多路径特性就仅仅应用于ebgp路径。当不激活这一选项时,它的缺省值为1。
10、当两条路径都是外部路径时,BGP将优先选择最先收到的路径(最老的路径)。
11、BGP优先选择来自于最低的路由器ID的BGP路由器的路由。
12、如果多条路径的始发路由器ID或路由器ID相同,那么BGP将优选CLUSTER-LIST长度最短的路径。
13、BGP优选来自于最低的邻居地址的路径。