BGP选路原则详解(超详) 第一条: 华为:协议首选值(pref_val) 华为默认均为0,值越大越优先,只有路由器本地意义并不会传递给任何BGP邻居 思科:权重属性(weight) 对本地始发的路由默认为 32768,BGP邻居学到的路由为0.值越大越优先,只有路由器本地意义并不会传递给任何BGP邻居 第二条: 本地优先级:(local-pref) 本地路由器始发的BGP路由,本地优先级为空。通过BGP对等体学到的路由缺省值100,默认值越大优先级越高。 该属性只可以传递给IBGP邻居,但可以从EBGP和IBGP邻居接收的路由修改本地优先级值然后加载到BGP路由表,修改之后该路由的本地优先级值同样只能继续传递给IBGP邻居。 备注:BGP优先级的默认值是可以修改,例如华为使用 default local-preference(并不重要) 第三条: 本地始发路由 即本地生成的BGP路由优于BGP邻居学到的路由,对于思科由于本地始发的路由权重属性为32768,而从邻居学到的路由权重为0,所以该条规则通常不会比较。而对于华为协议首选值由于都默认为0,该条规则通常可以被比较。本地生成的路由下一跳为0.0.0.0(network,import)或者127.0.0.1(聚合生成) 本地始发的路由由 network发布,IGP->BGP注入,聚合汇总路由生成 通常情况下同为本地始发路由 手动聚合生成路由(华为aggregate)>自动聚合路由(华为summary automatic)>network>注入路由(import)。 手动聚合路由:根据本地路由器已经存在的IGP路由,手动强制发布一个较大的网段的BGP路由 自动聚合路由:根据本地路由器已经存在的IGP路由,自动汇聚一个较大的BGP路由发布 但在实现中,如果一条路由已经被network, import引入,如果再手动做大于等于该掩码长度的聚合路由通常不能生效,不会加载到BGP路由表中。 例如:把本地存在IGP的路由10.10.10.0/24在BGP进程中通过NETWORK发布。通过聚合命令只有配置小于/24掩码长度才会生效,若配置10.10.10.0/0-24则无法被加载到BGP进程中。若配置聚合路由为10.10.10.0/16,本地路由BGP仍优选通过NETWORK发布的10.10.10.0/24(最长掩码匹配原则)。故通常只会比较network>注入路由(import),或者手动聚合路由>自动聚合路由。 第四条 AIGP属性 本属性为新属性(RFC 7311)规定,主要用于把自己AS内边界路由器到发起路由器关于某条路由的IGP COST通告给对方AS域的路由器,以便于传递给对方 AS 域后对方可以根据这个属性选择最优出口路由作为自己的下一跳,所选的出口路由器是到这条路由的IGP开销最小的路由器。该属性可以贯穿整个BGP域传递,如果路由器没有配置或者路由器无法识别则忽略该属性不传递给对等体。 细则解析:
如图所示:全网运行了BGP并且相互使能了AIGP能力,R1传递一条BGP路由10.10.10.10并在出方向设置AIGP值7. 1, R1传递给R2 R3时会把AIGP设置为7传递给R2,R3,R2 R3显示去往10.10.10.10的路由AIGP为7.(备注:传递给IBGP邻居时,不会增加到该传递路由的IGP COST值) 2, R2和R3将10.10.10.10路由通过EBGP传递给R4时,因为是EBGP邻居关系。R2传递给R4 10.10.10.10的路由设置AIGP值为7+30=37,R3传递的10.10.10.10设置AIGP值为7+40=47,因此R4选择R2作为访问10.10.10.10的下一跳。 根据这个流程我们可以看出,AIGP可以让对方AS的路由器根据自己AS内部的IGP最优路径来选择出口路由器作为自己的下一跳,从而将IGP COST选路贯穿到整个BGP网络中。 3,任何路由器通过router-policy策略,然后重新设置aigp值传递给对端之后,路由器会以重新设置的值发送给对端路由器,此刻不会加上边界路由器到发起路由器的COST值。例如在R2通告给R4的10.10.10.10路由,重置aigp值为100,那么R4从R2收到关于10.10.10.10的路由的aigp是100而不是100+30+7. 第五条: AS-PATH属性: 比较AS-PATH长度短的优先,每当出一个AS域则在AS列表的左边增加一个AS号。
如图所示:当R4传递BGP路由10.10.10.10给R5时,会在AS-PATH列表中的左边增加一个AS号,此时R5关于10.10.10.10的AS-PATH就有2个 AS号,个数越少长度越短,则越优。 第六条: 起源属性 比较路由起源属性,IGP(0)>EGP(1)>Incomplete(3),即i>e>? 不完全的(Incomplete):路由信息是从其他渠道学习到的。不完全路由并不是说该路由有何缺陷,只是确定该路由来源的信息不完全而已。比如:BGP通过重分发机制学习到的路由将携带不完全路由来源属性,这是因为没有办法确定该路由的来源。 在华为路由器中,通过network发布的表示为 i,通过import注入的表示为?(即Incomplete)。针对EGP这条已经没有任何意义,目前被BGP替代,通常只比较i>?; 第七条 MED属性: 值越小优先级越高 一、MED值传播范围: 1. 通常情况下在本AS的边界路由器上宣告路由给其他AS的EBGP邻居,然后在下一AS范围内继续传递,但不会再传递给第三个AS。(如果要叠加MED给第三个AS会通过命令解决,参考下面描述) 二、MED值产生过程如下: 1,默认情况通过network和import命令注入到BGP中的路由MED值为0,再传递给IBGP和EBGP邻居后也为0。从IBGP学来的路由通告给EBGP邻居时携带MED值会清除(即为 空);如果要设置MED值需做route-policy。(华为可以通过做route-policy并使用apply cost为特定路由设置MED,思科命令参考对应文档,但此命令只对EBGP邻居生效)备注:亦可通过命令(华为apply cost-type internal)(思科set metric-type internal)设置MED值为该路由的下一跳的IGP开销值,仅对EBGP邻居生效。 如果要对IBGP,EBGP邻居都生效使用命令(华为apply cost-type internal-inc-ibgp),思科参考命令文档)。 2, 华为使用(apply cost-type med-plus-igp),传递给EBGP和IBGP对等体的med值为下一跳IGP COST值+本身的MED值,思科参考命令文档。华为可以在使用apply cost-type med-inherit-aigp 后使传递给EBGP和IBGP的MED值和AIGP一样,但仅对私有AS生效(传递给EBGP没有AIGP值默认为空,IBGP为0)思科参考对应命令文档。 3,通过aggregate命令注入到BGP中的路由的MED值为空,传递给IBGP和EBGP邻居也为空 示例详解:
1, 在R3上,因R1传递过来的MED为10,故R3关于10.10.10.10路由的MED属性值为10. 2, 如果R3在传递给R4关于10.10.10.10的路由,使用apply cost-type internal,R4收到10.10.10.10路由的MED值为30. 3, 如果R3在传递给R4关于10.10.10.10的路由,使用apply cost-type med-plus-igp,R4收到10.10.10.10路由的MED值为40. 4, 如果R3在传递给R4关于10.10.10.10的路由,使用apply cost-type med-plus-igp,R5传递给R6的10.10.10.10的BGP再使用apply cost-type med-plus-igp,则R6收到10.10.10.10的BGP路由的MED值为50.(通常不会使用到) 5, 后续的MED值设置可以根据以上结论推测。 MED处理机制: 1.默认情况下BGP路由器只比较来自相同AS的MED值,使用(华为compare-different-as-med)(思科bgp always-compare-med)命令,BGP将强制比较来自不同AS的路由的MED值。 2.在接收到的BGP路由没有MED值时按0来处理,执行(华为bestroute med-none-as-maximum)(思科:bgp bestpath missing-as-worst)命令后,没有MED值时按最大值来处理,这主要是为了对旧标准的兼容 3.命令default med设置默认MED值,只对本设备上用import-route命令引入的路由和BGP的聚合路由生效 第八条: EBGP优于IBGP EBGP优于联邦EBGP(联邦eBGP和联邦iBGP不具有可比性,不比较) 第九条: 比较到BGP下一跳的IGP Cost值,数值小者优选 第十条: 在前9条一致的情况下,可以使用命令开启负载均衡。 华为(maximum load-balancing ebgp[ibgp] number 思科maximum-paths [ibgp] number。 第十一条 如果从多个EBGP邻居收到同样的BGP路由,最优选最先收到的,对IBGP无效同样对联盟EBGP也无效(通常可以忽略),思科忽略方式为 bgp bestpath compare-routerid 第十二条 比较router-id大小,越小越优先 如果配置了RR,则通过比较originator-id来替换router-id进行比较,通常路由器的originator-id=发起者的router-id。 第十三条 比较Cluster_list长度,越短越优先,该选路规则仅仅出来在BGP RR环境中 。每被一个RR反射,则在Cluster_list列表中增加一个值和as-path类似只不过值通常是反射器的router-id。 第十四条 比较下一跳对等体的连接地址,这是BGP配置中的neighbor IP地址,越小越优先 双十一活动攻略推荐,618会更新为618!省时,省钱年度双十一/618超详细攻略
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/25591.html