13条BGP选路原则详解:BGP是指边界网关协议( 英文:Border Gateway Protocol),是互联网上一个核心的去中心化自治路由协议。它通过维护IP路由表或前缀表来实现自治系统(AS)之间的可达性,属于矢量路由协议。

13条BGP选路原则详解

由于BGP协议支持在多个AS间连接的互操作性,也就是说集成了多种attitude,一同来完成BGP路由的选路,其中最为大家熟知的就是BGP的十三大选路原则:

第一条:思科私有属性,权重(weight)属性,该属性仅本地有效,不可传递,越大越优,默认为0

第二条:local preference,本地优先级属性,越大越优,默认为100,针对于EBGP仅本地有效,不可传递,IBGP可传递

第三条:local next-hop,本地下一跳属性,BGP路由器永远优选于自己本地宣告的路由条目,next-hop 0.0.0.0表示自己本地通告

第四条:AS-path,路径属性,该属性代表一条路由从始发路由器传递到目标路由器经过的AS数量,每经过一个AS就会记录下该AS的编号,该属性规定,经过的AS越少,代表路由更优(IBGP不适用,因为IBGP发送路由更新时不携带AS)

第五条:origin,起源属性,该属性指定路由的始发源,路由来源包括三种,第一种是通过IGP协议学习到的,以小字母" i "表示;第二种是通过EGP协议学到的,以小字母“ e ”表示;第三种是通过外部重分布/重分发进来的,这一种代表未知的路由来源,以" ? "表示(注:这所指的IGP和EGP协议为内部网关协议和外部网关协议,也就是说,路由始发源是IGP(eigrp ospf rip isis等)或是EGP(External Gateway Protocol-外部网关协议,包含BGP)

第六条:MED属性(也叫做metric属性),越小越优,默认是0;针对IBGP生效,针对EBGP默认不生效,如果要生效,需要使用命令bgp always-compare-med让它总是比较metric

第七条-(Prefer the EBGP path over the IBGP path)EBGP的路由优先于IBGP的路由

第八条-(Prefer the path through the closest IGP neighbor)基于以上条件如果无法进行比较(都是IBGP或者都是EBGP),比较IGP协议的metric,metric通常代表两个方向的带宽情况,越小越优,优先走带宽大的(注,如果使用直连建立EBGP邻居是无法进行比较的)

第九条-如果配置了maximum-path [Ibgp] +number BGP默认是没有开启负载均衡的,如果在BGP路由器上开启了负载均衡,证明此条匹配成功,停止往下匹配(注:BGP最大支持16条线路实现负载均衡,也支持非等价的负载均衡)

第十条-(Prefer the oldest route for EBGP paths) 选择最老的路径(从更老的EBGP邻居学习到的路由),只针对于EBGP。

第十一条-( Prefer the path with the lowest neighbor BGP router ID)基于以上情况,默认对于IBGP是无法进行比较的,那么就需要比较邻居的Router-id,优先选择RID最小的IBGP邻居的路由(注,可以使用命令bgp bestpath compare-routerid强制比较router-id)

第十二条 优选于cluster-list最短的(routing reflector路由反射器),每经过一个RR,cluster-list列表里面就会添加上这个BGP路由器的RID,经过的RR越少越优 第十三条(the lowest neighbor IP address)如果没有RID,比较邻居的ip地址,越小的BGP邻居路由器传过来的路由越优,如果有环回口,则比较环回口的ip地址大小,(这一条一定是可以比较出来的,因为当在BGP进程下指邻居的时候邻居不能相同)

以上就是BGP的十三条选路原则,前七条属性可以使用route-map定义修改,后6条属性趋向于自然属性,由路由器自动选择的,建议结合实验,以有助于BGP十三条选路原则。