BGP华为、思科选路规则
选路规则 |
华为BGP选路规则 |
思科BGP选路规则 |
第0条 |
下一跳是否可达,如果不可达则不参与选路 BGP 向IBGP对等体发布import引入的IGP路由时, 将下一跳属性改为自身的接口地址,而非IGP中的下一跳地址。 peer next-hop-invariable命令有以下作用: BGP Speaker在向EBGP对等体发布路由时不改变下一跳(该命令配置在EBGP对等体间时,只对***v4和***v6路由生效,对于其他类型的路由都不生效)。 BGP Speaker在向IBGP对等体发布引入的IGP路由时使用IGP路由的下一跳地址。 |
下一跳是否可达,如果不可达则不参与选路 BGP 向IBGP对等体发布引入的IGP路由时, 下一跳仍然保持IGP的下一跳不变 |
第1条 |
比较协议首选值Pref_Val,数值高优选,本地始发和邻居传递过来的都为0。该属性本路由器有效,是华为私有属性 | 比较Weight值,数值高者优选,本地始发为32768。该属性本路由器有效,是思科私有属性 |
第2条 |
local-pref本地首选项(越大越优先),该参数在本AS内传递。 始发路由器的local-pref值为空,传递给AS内IBGP邻居后变为100;本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。 如果路由没有local-pref值,BGP选路时将该路由按缺省的local-pref值100来处理 使用命令为default local-preference本机向所有IBGP邻居发布的所有路由设置一个缺省的Local_Pref 使用命令为apply local-preference为本机向任意IBGP邻居发布的任意路由设置Local_Pref,并且可以为不同的路由设置不同的Local_Pref 当路由同时应用default local-preference和apply local-preference命令时,apply local-preference命令的配置优先生效。 |
local-pref本地首选项(越大越优先),这个参数在本AS内传递。 始发路由器的local-pref值为100 本地优先级(Local_Pref)属性仅在IBGP对等体之间交换,不通告给其他AS。 |
第3条 |
本地始发路由优先,优先顺序如下:手动聚合路由,自动聚合路由,network宣告路由,从import-route命令引入的路由 | 本地始发路由优先,优先顺序如下:network宣告路由,从IGP引入的路由,手动聚合路由,自动聚合路由, |
/ |
AIGP, AIGP(Accumulated Interior Gateway Protocol Metric)属性是一个比较新的BGP属性,用于传递并累加IGP Metric值,该属性是可选非过渡属性,IANA(Internet Assigned Numbers Authority)为AIGP分配的属性类型码是26。 在VRP5的实现中,AIGP属性只能通过路由策略添加,若不设置,则路由缺省不携带AIGP属性。在路由传递中,AIGP属性会根据建立邻居所依赖IGP路由的Metric增加其AIGP值。 在路由选路过程中:携带AIGP属性的路由优于未携带AIGP属性的路由,而如果都存在AIGP属性,则比较AIGP属性与其下一跳的IGP Metric之和,优选该值较小的。 在BGP引入、接收或发送路由时,可以人为通过路由策略里的apply aigp { cost | inherit-cost }命令设置AIGP属性值的大小。 |
思科资料详见链接 |
第4条 |
比较as-path,长度短者优先,AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。 一个as-set被计数为1,而不管“set”中包含多少个as 忽略该条:bestroute as-path-ignore |
比较as-path,长度短者优先,AS_Path属性有四种形式,分别是:AS_Sequence、AS_Set、AS_Confed_Sequence和AS_Confed_Set。 一个as-set被计数为1,而不管“set”中包含多少个as 忽略该条:bgp bestpath as-path ignore |
第5条 |
比较路由起源属性,IGP(0)>EGP(1)>Incomplete(3) 不完全的(Incomplete):路由信息是从其他渠道学习到的。不完全路由并不是说该路由有何缺陷,只是确定该路由来源的信息不完全而已。比如:BGP通过重分发机制学习到的路由将携带不完全路由来源属性,这是因为没有办法确定该路由的来源。 |
比较路由起源属性,IGP(0)>EGP(1)>Incomplete(3) |
第6条 |
比较MED值,越小越优先 一、MED值产生过程如下: 1.通过network和import命令注入到BGP中的路由是直连路由则MED值为0,传递给IBGP和EBGP邻居也为0 2.通过network和import命令注入到BGP中的路由为非直连IGP路由那么MED值为IGP的cost值,传递给IBGP和EBGP邻居也为IGP的cost值(只有在边界路由器上network和import的路由在传递给EBGP邻居时才会携带MED值) 3.通过aggregate命令注入到BGP中的路由的MED值为空,传递给IBGP和EBGP邻居也为空 二、MED值传播范围: 1. 在本AS的边办路由器上宣告路由时传递给其他AS的EBGP邻居后,在下一AS范围内继续传递,但不会再传递给第三个AS。 2. 在AS内BGP Speaker上通告的路由的MED值会在本AS内传递;当边界路由器再通告给EBGP邻居时会清除MED值,如果要强制边界BGP路由器将从IBGP学来的路由通告给EBGP邻居时携带MED值,需要在边界路由器上配置route-policy并apply cost-type internal,然后边界路由器会把本路由器上的BGP路由到下一跳的cost值作为MED值传递给EBGP邻居,(而非当前边界路由器上看到的的MED值) 三、其他: 1.默认情况下BGP路由器只比较来自相同AS的MED值,使用compare-different-as-med命令,BGP将强制比较来自不同AS的路由的MED值。 使用deterministic-med将消除路由接收顺序对选路结果的影响。 2.在接收到的BGP路由没有MED值时按0来处理,执行bestroute med-none-as-maximum命令后,没有MED值时按最大值4294967295来处理,这主要是为了对旧标准的兼容 3.命令default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效 |
比较MED值,越小越优先 一、MED值产生过程如下: 1.通过network和import命令注入到BGP中的路由是直连路由那么MED值为0,传递给IBGP和EBGP邻居也为0 2.通过network和import命令注入到BGP中的路由为非直连IGP路由那么MED值为IGP的cost值,传递给IBGP和EBGP邻居也为IGP的cost值(只有在边界路由器上network和import的路由在传递给EBGP邻居时才会携带MED值) 3.通过aggregate命令注入到BGP中的路由的MED值为空,传递给IBGP和EBGP邻居也为空 二、MED值传播范围: 1. 在本AS的EBGP路由器上宣告路由时传递给其他AS的EBGP邻居后,在下一AS范围内继续传递,但不会再传递给第三个AS。 2. 在AS内BGP Speaker上通告时在本AS内传递;当从IBGP邻居学到的路由通告给EBGP邻居时会清除MED值,如如果要强制边界BGP路由器将从IBGP学来的路由通告给EBGP邻居时携带MED值,需要在边界路由器上配置route-map并set metric-type internal,然后边界路由器会把本路由器上的BGP路由到下一跳的cost值作为MED值传递给EBGP邻居,(而非当前边界路由器上看到的的MED值) 三、其他: 1.默认情况下BGP路由器只比较来自相同AS的MED值,使用bgp always-compare-med命令,BGP将强制比较来自不同AS的路由的MED值。 使用bgp deterministic-med将消除路由接收顺序对选路结果的影响。 2.在接收到的BGP路由没有MED值时按0来处理,执行bgp bestpath missing-as-worst命令后,MED值按最大值4294967294来处理,这主要是为了对旧标准的兼容 3.使用命令default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。 |
第7条 |
邻居类型,EBGP优于IBGP PE上某个***实例的***v4路由的ERT匹配其他***实例的IRT后复制到该***实例,称为LocalCross;从远端PE学习到的***v4路由的ERT匹配某个***实例的IRT后复制到该***实例,称为RemoteCross EBGP优于联邦EBGP(联邦eBGP和联邦iBGP不具有可比性,不比较。因为联邦ebgp和联邦ibgp都被看做内部路径没有差别)。如果都是EBGP对等体收到的路由条目或者都是从IBGP对等体收到的路由条目或者分别从联邦EBGP和联邦IBGP对等体收到的条目则继续向下一步进行。 |
邻居类型, EBGP优于IBGP EBGP优于联邦EBGP(联邦eBGP和联邦iBGP不具有可比性,不比较。因为联邦ebgp和联邦ibgp都被看做内部路径没有差别)。如果都是EBGP对等体收到的条目或者都是从IBGP对等体收到的条目或者分别从联邦EBGP和联邦IBGP对等体收到的条目则继续向下一步进行。 |
第8条 |
比较到下一跳的IGP Cost值,数值小者优选 使用命令bestroute igp-metric-ignore可忽略该选路规则 |
比较IGP Cost值,数值小者优选 |
第9条 |
前面的选路规则都一致时可以手工等价负载均衡,手工负载均衡时as-path要完全相同,不仅是长度相等。 携带标签的BGP路由与不携带标签的BGP路由不能形成负载分担。 1.配置maximum load-balancing ebgp number命令后,仅EBGP路由参与负载分担;配置maximum load-balancing ibgp number命令后,仅IBGP路由参与负载分担。不配置[ ebgp | ibgp ]时,EBGP和IBGP路由都参与负载分担,且参与负载分担的路由条数相同。 2.配置maximum load-balancing number命令后,无论是否形成负载分担,在发布路由时会将下一跳修改为本端地址。但是在路由反射器和BGP联盟场景下,对于非本地路由,不修改下一跳为本端地址。 3.配置maximum load-balancing [ ebgp | ibgp ] number命令后,无论是否形成负载分担,在发布路由时都不会强制将下一跳修改为本端地址。 4.配置maximum load-balancing [ ebgp | ibgp ] number ecmp-nexthop-changed命令后,只有形成负载分担时,才会将发布路由的下一跳修改为本端地址。 5.携带标签的BGP路由与不携带标签的BGP路由即使满足上述条件,也不能形成负载分担。 6.load-balancing as-path-ignore命令用来设置路由在形成负载分担时不比较路由的AS-Path属性 7.在 BGP-***实例IPv4地址族视图、BGP-***实例IPv6地址族视图下执行命令maximum load-balancing eibgp 在BGP-***实例视图下,配置maximum load-balancing eibgp命令后,在判断BGP私网路由是否等价时,路由的EBGP/IBGP类型不作为判断条件,EBGP和IBGP路由都可以形成负载分担。 |
前面的选路规则都一致时可以手工等价负载均衡,手工负载均衡时as-path要完全相同,不仅是长度相同。 1.使用命令maximum-paths [ibgp] number,如果没有使用ibgp参数,那么只对ebgp路由负载分担 |
第10条 |
无 |
当多条都是从EBGP收到的路由时(仅ebgp路由,联邦EBGP对等体不算,因为是内部路径),BGP优先使用最先收到的路由条目(最老的路径),该选路规则一般不使用。 如果以下任一条件为真,该条选中规则将会被忽略: 1.启用了bgp bestpath compare-routerid 2.多条路径具有相同的路由器ID,因为这些路由都是从同一台路由器发过来的 3.当前没有最佳路径。 |
第11条 |
比较Cluster_list长度,越短越优先,该选路规则仅仅出来在BGP RR环境中 缺省情况下,BGP在选择最优路由时Cluster-List优先于Originator-ID,使用命令bestroute routerid-prior-clusterlist后,BGP在选择最优路由时Originator-ID将优先于Cluster-List。 |
比较Router-id的大小,越小越优先 如果路径包含RR属性,那么在路径选择过程中就用originator-id来代替router-id进行比较 |
第12条 |
比较Router-id的大小,越小越优先 如果路径包含RR属性,就用originator-id来代替router-id进行比较 缺省情况下,BGP在选择最优路由时Cluster-List优先于Originator-ID,使用命令bestroute routerid-prior-clusterlist后,BGP在选择最优路由时Originator-ID将优先于Cluster-List。 reflect change-path-attribute命令使能路由反射器通过出口策略修改路由路径属性 |
比较Cluster_list长度,越短越优先,该选路规则仅仅出来在BGP RR环境中 |
第13条 |
比较下一跳对等体的连接地址,这是BGP配置中的peer IP地址,越小越优先 | 比较下一跳对等体的连接地址,这是BGP配置中的neighbor IP地址,越小越优先 |
第14条 |
无 | BGP自定义路径选择过程:BGP Cost Community(BGP成本团体)的扩展团体属性提供了自定义最佳路径选择过程的方式。这个自动路径选择过程插入在BGP选路规则的第8条之后(优先到下一跳IGP-cost最低的路径),或第3条后,首选成本值最低的路径,该条一般不使用,使用时需要再查询详细资料 |
转载:http://blog.51cto.com/wyywei/2085485
BGP华为、思科选路规则的更多相关文章
- STP配置和选路规则
1.用四台S3700交换机,2台PC机,组建网络拓扑 2.对mengyu-S1进行设置 (1)在交换机启用生成树(华为交换机默认启用MSTP),将交换机的STP模式更改为普通生成树STP: (2)配置 ...
- eNSP——STP配置和选路规则
原理: STP是用来避免数据链路层出现逻辑环路的协议,使用BPDU传递网络信息计算出一根无环的树状网络结构,并阻塞特定端口. 在网络出现故障的时候,STP能快速发现链路故障,并尽快找出另外一条路径进行 ...
- 在ensp上STP配置和选路规则
原理概述 这次我们模拟的实验内容 搭建实验拓扑 搭建完拓扑之后,我们在交换机上启动STP服务,将交换机的STP模式改为普通生成树STP 配置完成之后我们来看一下S1生成树的状态(大约30秒之后,因为生 ...
- HCNP Routing&Switching之BGP路由属性和优选规则
前文我们了解了BGP防环机制和路由聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15458110.html:今天我们来聊一聊BGP路由属性和选路规 ...
- BGP路由协议详解(完整篇)
原文链接:http://xuanbo.blog.51cto.com/499334/465596/ 2010-12-27 12:02:45 上个月我写一篇关于BGP协议的博文,曾许诺过要完善这个文档,但 ...
- BGP: 容易实现路由备份,不容易实现等价负载均衡。
一.结论: 1.BGP只能建立备份路由,不能建立等价路由. 2.BGP按照下面的规则进行优选路由. BGP选择路由的策略 当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由: 优选协议首 ...
- 学习网络BGP必备基础知识
外部网关协议,使用TCP作为传输层协议,支持CIDR,增量更新,距离矢量路由协议,无环路,路由策略丰富,可防止路由震荡,易于扩展. BGP概述 #BGP工作原理 之 报文类型 TCP三次握手 open ...
- HCIP --- BGP属性
传播范围 默认值 大优或小优 1. Preference_Value 不传播 0 ...
- BGP( Border Gateway Protocol)---边界网关协议
摘自: https://blog.csdn.net/weixin_43751619/article/details/84954755 一,BGP协议原理与配置 边界网关协议( Border Gatew ...
随机推荐
- 虚拟机极简配置manjaro gnome
一.安装gnome启动到桌面后,卸载所有不必要的软件,减少系统大小 打开[增加/删除软件],找到要删除的软件卸载 ms-office ---微软在线办公软件 Thunderbird ---邮箱 kon ...
- Spring Boot 项目中常见注解
@Autowired 自动导入依赖的 Bean.byType方式.把配置好的 Bean拿来用,完成属性.方法的组装,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作 import org ...
- How to Install LibreOffice 6.0 on Ubuntu 16.04 LTS +
1. Add the LibreOffice 6.0 PPA The LibreOffice Fresh PPA is maintained by LibreOffice. It provides l ...
- P3980 [NOI2008]志愿者招募
思路 巧妙的建图 因为每个志愿者有工作的时段,所以考虑让一个志愿者的流量能够从S流到T产生贡献 所以每个i向i+1连INF-a[x]的边(类似于k可重区间集),每个si向ti连边cap=INF,cos ...
- P3041 [USACO12JAN]视频游戏的连击Video Game Combos
思路 简单的AC自动机上dp,暴力跳fail向子节点直接转移即可 代码 #include <cstdio> #include <algorithm> #include < ...
- Component 初识组件
component组件是Vue学习的重点.重点.重点,重要的事情说三遍.所以你必须学好Vue component.其实组件就是制作自定义的标签,这些标签在HTML中是没有的.比如:<diy> ...
- Spring-MVC依赖
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api& ...
- 【一】php 基础知识
1 php标记,<?php php代码 ?> 2 注释:代码的解释和说明 多行注释 /**/ 单行注释 //.# 3“.”连接符 echo "hello".date(& ...
- dbm.error: need 'c' or 'n' flag to open new db
#coding=utf-8 import shelve with shelve.open("shelve.ini","w") as f: f["k1& ...
- Vue技巧
转载:https://segmentfault.com/a/1190000014085613?utm_source=channel-hottest 对自己有用,做个笔记,有兴趣可以去以上地址去看. 第 ...