前提:满足下一跳可达和同步关闭时执行以下优先级。
最高有weight优先(默认为0,本地有效)
1.本地优先级高的优先(本AS )
2.起源本路由器上的路由(下一跳0.0.0.0)
3.as-path最短的优先
4.最小的起源代码(IGP 5.最低的med(交换于相邻AS 之间) 6.ebgp>ibgp 7.选择最近BGP邻居的路由 8.如果配置了maixmum -path[IBGP],会负载均衡 9.对于EBGP ,选择最老的的路由 10.更低的邻居router -id 11.始发路由器ID相同,选择cluster -list短的 12.优选邻居ip 地址最低的路径(BGP的neig h bor配置的地址) 13. 路由优先级: 优选有最大Weight的路由 (范围0 到 65,535) ,路由器配置了Weight在本地有效,影响本地选路。 1.缺省情况下,通过本路由器宣告、重分或者汇总的路由的weight为32768,从BGP邻居学习到的路由的weight为0。 2.理论简介: ?一起使用时,route-map 优先。 Router(config-router)#neighbor xxx weight xxx (从此邻居学到的所有的路由都生效) 或 Router(config)#route-map weight permit 10 Router(config-route-map)#set weight 10000 宣告时可带route-map :neighbor XXX MASK XXX route-map XXX 修改方法(只能在本路由器的入方向上做): ?weight值(cisco 私有) 一.通过第一条选路原则不能选出最优BGP条目的情况下,优选有最大local preference值的BGP条目。 1.local preference值只可以在IBGP邻居之间传递,在EBGP邻居之间不能传递,也就是说不能在EBGP的出方向上做,因为只在本AS内生效。 2.起源本地的和从EBGP 学到的LP 为空。LP 为空=LP 为100 3.从IBGP 学到的默认为100。 4.理论简介: ?一起使用时,route-map 优先。 修改默认值(只针对network 、EBGP 学习、本地聚合、重分布有效、不影响IBGP 学到的): Router(config-router)#bgp default local-preference xxx 或 只针对in 方向生效: Router#(config)#route-map xxx permit 10 Router#(config-route-map)#set local-preference xxx 在show ip bgp中看到是空,其实也是100。 Router#show ip bgp xxxx 看明细的时候可看见路由的local -preference 修改方法: ?local-prefrence 二.起源本路由器上的路由(下一跳0.0.0.0) 三.详解(三个维度:默认值、传递范围、何为最优): BGP 选路原则详解 2015年5月4日19:47 优选从本路由器始发的路由(包括本地network、重分布的本地直连的路由和聚合的路由) 注意:对于CISCO IOS,如果是从本地往BGP里注入一条路由,缺省的weight值为32768,由于这个weight值很大,对于该注入路由,会根据第一条选路原则成为最优BGP条目。因此对CISCO IOS来说,第三条选路原则作用不大。然而考虑到第一条选路原则为CISCO私有,不是所有厂家都支持,第三条选路原则的作用就显现出来了。 在通过前三条选路原则不能选出最优BGP条目的情况下,优选AS path长度短的路由条目 注意:修改AS path长度只能在EBGP邻居之间进行,IBGP邻居是无效的。 as-path只可以在EBGP邻居关系的out方向和in的方向去修改: ?out方向做:加在本来AS号的前面(右边),增加自身的AS in方向做:加在本来AS号的后面(左边),增加邻居的AS 如果在 R3出方向上增加AS100,则 AS100不会接受路由,防环。 不能随便加AS 号,因为不能确定后续是否有其 AS 。 聚合后的{}内的AS 算几个?一个 联盟内的()内的AS 算几个?一个也不算 理论: ?last-as表示在离这个路由器最近的AS号,重复加次数 Router(config)#route-map xx permit 10 Router(config-route-map)#match ip address 1 Router(config-route-map)#set as-path prepend AS 号 Router(config-route-map)#set as-path prepend last-as 次数 删除私有AS号,起源于本AS无效,只能针对EBGP : ?Router(config-router)#neighbor xxx remove-private-AS 跳过as -path选路原则: ?隐藏命令: Router(config-router)#bgp bestpath as-path ignore 配置: ?AS-PATH 四.起源代码origin 五.在通过前四条选路原则不能选出最优BGP条目的情况下,优选最低起源类型的BGP路由。 最低起源类型的顺序是IGP >EGP>incomplete,其中EGP的方式现在已经不用了。 i:network、aggregate e:egp (没有了) ?:重分发的路由 起源属性含义: ?origin在 EBGP/或IBGP的in和out方向都可以做。 R1(config-route)#route-map xxx permit 10 R1(config-route-map)#match ip address prefix-list 1 R1(config-route-map)#set origin [ igp | incomplete ] 更改起源值: ?仅影响邻居AS 到本AS 的选路,在两个相临AS之间有多个BGP连接的情况下,MED值用于影响从相邻AS到本AS的路由选 MED值的用途: ?MED(默认为0、本AS 内传递、越低越优先) 六. 择,即用于影响邻居AS到本AS的流量从哪个接口进来,这是通过向相邻AS的EBGP邻居发送具有不同MED值的路由条目来实现的,MED值的比较是前面的五条选路原则都不能选出最优的情况下才起作用。 从EBGP邻居学到的路由条目的MED 值会传递给其他IBGP邻居,但不会传给EBGP邻居。 ?从IBGP邻居学到的路由条目的MED ,默认不会传给EBGP邻居,显示为空。 ?本地宣告的MED 为0(若宣告的为本地igp 的条目,会携带igp metric )。 ?聚合的bgp 路由MED 为空。 ?从igp 重分布生成的BGP条目,MED 值为IGP的cost、metric、hop。 ?默认情况下空=0(修改为默认最大:R1(config -router)#bgp bestpath med missing-as-worst) ?MED的生成: ?从相同AS (AS 号相同)学到的相同BGP 条目,才会进行MED 比较(配置:bgp always -compare-med,在全部的路径进行MED比较。但是这需要全体AS都同时启用这个功能,否则有可能发生路由环路。) ?只有在通过两条路径得到AS序列号中第一个AS号码一致时才进行MED比较,任何子自治域的联盟系统都不会比较(配置:bgp bestpath med confed,开启强制比较)。 ?MED 比较规则: ?只能在相邻的AS传递,一般在EBGP邻居的OUT方向的做。影响入站的流量。IBGP之间可以修改。 R1(config)#route-map MED permit 10 R1(config-route-map)#match ip address prefix-list 1 R1(config-route-map)#set metric 50 修改MED : ?上一跳同一个AS号的分一组优先比较,其他的AS号的分一组。 先比较同一个AS号的MED值,优胜者在和上一跳为其他AS 号的条目进行比较。 R1(config-router)#bgp deterministic-med 将上一跳相同MED值进行分组: ?EBGP>联盟EBGP>IBGP 与EBGP AD小于IBGP AD无关。 EBGP>IBGP 七.指去往BGP邻居用的IGP路由的metric值。 对EBGP,IBGP邻居都会有效。 最近的BGP邻居 八.不算选路的原则,指当前面的八条选不出最优路由时,在BGP 的进程下配置maximum -paths 命令后,会产生负载均衡。 R1(config)#router bgp 3 R1(config-router)#maximum-paths ? <1-6> Number of paths ibgp iBGP-multipath R1(config-router)#bgp dmzlink-bw先在进程启用 R1(config-router)#neighbor xxxx dmzlink-bw 再针对邻居启用 非等价的负载配置: 配置了maixmum -path [IBGP],存在多条等价的路径,会负载均衡 九.此步骤可以将路由摆动的影响减到最小,因为新接收到的路径不会取代老的,即使这条新接收的路径是通过下面提及到的额外路径选择标准来进行选择的。这使得只在iBGP路径下应用额外的选择步骤更有意义。 ?此步骤可以被bgp bestpath compare -routerid命令跳过,直接选最小的route-id ,敲此命令后第11条也针对EBGP 生效。 ?优选最老的路由(最先被学习到的路由): old最长的EBGP路由(存在时间最长的优先): 十.最小的IBGP邻居route -id。 在有RR的情况下不比邻居的route -id ,比起原ID起始者标识将代替route -id在路径选择过程中起作用。 一个路由器从多个RR收到相同路由进行最优路径选择时,第11条选路原则用的Router -ID被更改为originator ID(此ID既是在本AS学得路由的第一跳路由器的Router -ID,是RR的一个client,而不是RR的Router -ID),因此如果BGP路由只是从 lowest router-id(针对IBGP 生效) 十一. 一个ASBR学习到然后传入AS内部,将不会用到11条选路原则,会用到12或者13条选路原则。 多条路径的始发路由器ID相同,那么选择 cluster -list短的,因为每经过一个RR, cluster -list会加上这个RR的cluster -id。cluster list length(簇list ) 十二.BGP优选来自于最低的邻居地址的路径,是BGP的neig h bor配置中地址。 lowest neihbor address 十三.