bgp选路原则【第二部】
面向逻辑谈bgp选路原则(第二部)
终于到了BGP终极解析的第二部曲——BGP选路原则。与题目相呼应,我不会直接介绍选路原则的规则,而是从时间逻辑和空间逻辑上将所有的选路原则分层分类。因为只有从这种角度才能让大家更好的记忆。
IGP的选路原则就是我们都知道的比较metric度量值,包括跳数带宽延迟等等。但是BGP的选路原则总共有13条!其中只有两条是关于传统的跳数和开销!正因如此BGP选路在时间复杂度上要远远高于IGP选路。但这些都是合情合理的,毕竟IGP是给BGP打工的,BGP不得表现的“高级”点怎么镇得住这个位置呢?
官方教材上列出的选路顺序队列是这个样子的:
1 最高有weight优先
2 本地优先级高的优先
3 起源本地的路由优先
4 as-path最短的优先
5 最小的起源代码优先
6 最低的med优先
7 ebgp比ibgp优先
8 最近BGP邻居优先
9 如果配置了maixmum-path,就负载均衡。
10 最老的EBGP路由优先
11 更低的router-id优先
12 cluster-list短的优先
13 最低邻居地址的路径优先
然而这张列表是有瑕疵的,正确的步骤应该是:
1 最高有weight优先,默认为0
2 本地优先级高的优先//与第一条属于同一类
3 起源本路由器上的路由(也叫比较下一跳)
4 as-path最短的优先
5 最小的起源代码
6 最低的med
7 ebgp>ibgp
8 通过最近BGP邻居的路由
9 如果配置了maixmum-path,就负载均衡。
10 最老的EBGP邻居学到的路由,是路由最老.
11 更低的router-id//与13条属于同一类,都是因为BGP默认不负载均衡。
12 始发路由器ID相同,那么选择 cluster-list短的
13 优选来自于最低的邻居地址的路径,是BGP的neigbor配置中地址
第三条应该单独拉出来放一旁,就是AS内路由就从内部走,而不该啊放在13条顺序队列中。正常情况下不会有走其他AS的路径到达内部网络(因为bgp的防环),但是恰恰出现了这条选路原则,这时为什么呢?这里有两个原因,其一,万一网络bug产生了导致环路,其二,程序员逻辑:给bgp表中所有条目都附上一个比如权重值(起源本地的为32768),管他需不需要选路(因为通常本地的路由只有一条路可走)。而这里的第三条原则其实只一种概念,就是内部ip就走内部,别多想了!
一、weight自己影响自己
定义:
1.优选有最大Weight的路由 (范围0-65535) weight是CISCO私有的参数,路由器配置了Weight在本地有效。
2.缺省情况下,通过本路由器宣告、重分布或者汇总的路由的weight为32768,从BGP邻居学习到的路由的weight为0
3:只在本地(影响自己一个路由器)有用,影响本路由的选路.
修改方法:
1、neighbor 对等体地址 weight 值 (从该对等体学到的所有的路由都会加上设定的权重值)
2、route-map 名字 permit 10
Set weight 值
只能在本路由器的入方向上做.
二、local preference本地优先级//被本AS的ibgp peer影响
起源本地的路由没有LP!!!也就是AS内路由跳过这一条原则!!
定义:
1.通过第一条选路原则不能选出最优BGP条目的情况下,优选有最大local preference值的BGP条目。
2.local preference值只可以在IBGP邻居之间传递,在EBGP邻居之间不能传递,也就是说不能在EBGP的出方向上做,因为只在本AS内生效。
3.对于从EBGP邻居学习到的BGP条目,local preference缺省值为100,这个值可以通过命令bgp default local-preference修改
修改方法:
第一种:bgp default local-preference xxx
修改后,对IBGP学来的路由不起作用,只对EBGP传来的和自己产生的路由起作用。
第二种:
route-map xxx permit 10
set local-preference xxx
不能在EBGP邻居关系的出方向做修改。
注:local-preference的默认值是100
在show ip bgp 中看到是空,其实也是100,
show ip bgp xxxx 看明细的时候可看见路由的local-preference
三、起源本路由器上的路由//下一跳是0.0.0.0!!
优选从本路由器始发的路由(包括本地network配置的重分布,或者在IGP表中已经有一些需要被配置路由聚合的地址,在BGP中用aggregate-address命令配置的路由聚合)
注:对于思科设备来说,如果是从本地往BGP里注入一条路由,缺省的weight值为32768,由于这个weight值很大,对于该注入路由,会根据第一条选路原则成为最优BGP条目。因此对于思科设备,第三条选路原则作用不大。然而考虑到第一条选路原则为思科私有,不是所有厂家都支持,第三条选路原则的作用就显现出来了。
四、AS-path属性
在通过!本地优先级!不能选出最优BGP条目的情况下,优选AS path长度短的路由条目
注意:修改AS path长度只能在EBGP邻居关系之间进行,IBGP邻居关系是不可以的
1、as-path只可以在EBGP邻居关系的out方向和in的方向去修改
out方向做:加在本来AS号的前面(右边)
in方向做: 加在本来AS号的后面(左边)
2、last-as 表示在离这个路由器最近的AS号,重复加次数
3、当写下面两个命令时,哪个先生效?
set as-path prepend 数值
set as-path prepend last-as 数字(1-10)
入/出方向的时候,as-path prepend与last-as同时使用,都是last-as先生效,然后as-path prepend才生效
5、如何跳过as-path选路原则
bgp bestpath as-path ignore
五 起源代码(没什么用!!!),还可以修改。。。
在通过前四条选路原则不能选出最优BGP条目的情况下,优选最低起源类型的BGP路由
从同一个peer可以传来同一目标网络的两个不同更新,就是所谓的启源代码不同。。。这时唯一的的特殊情况。,也就是在同一个下一跳上还要进行选择。
最低起源类型的顺序是 IGP 优先 EGP 优先 incomplete,其中EGP的方式现在已经不用了。
通过Network,aggregate方式产生的BGP路由的起源属性是i,通过重分布产生的BGP路由的起源属性是incomplete。
1:
i-------igp network xxxxx
e-------egp (没有了)
?-------重分发
2、origin在 EBGP/或IBGP的in和out方向都可以做!!!
route-map xxx permit 10
match ip address pre 1
set origin 属性
六 MED值//邻居AS上做,影响本AS
MED值的的比较是前面的五条选路原则都不能选出最优的情况下才起作用。
MED值的用途:在两个相临AS之间有多个BGP连接的情况下,MED值用于影响从相邻AS到本AS的路由选择,即用于影响邻居AS到本AS的流量从哪个接口进来,这是通过向相邻AS的EBGP邻居发送具有不同MED值的路由条目来实现的,但是需要注意选路过程的实现是相邻AS的路由器自身根据13条选路原则独立完成。
MED的生成:
1本地network方式生成的BGP条目,会带上IGP的metric,(同时也会带上路由的下一跳,开启汇总后会被取消)会传给所有邻居。
2:如果从EBGP邻居学习到的BGP条目的metric值传递给其他IBGP邻居,但不传给EBGP。
3:如果从IBGP邻居学习到一条BGP条目的metric为0或者其他值,缺省不会传给给EBGP邻居,显示为空
4汇总方式生成的BGP条目,metric值为空
5重分布方式生成的BGP条目,metric值为IGP的cost、metric、hop,如果开启自动汇总会被清除。
6:缺省情况下,空的metric当0看待
优选最小MED 值的路由(范围 0到4294967295).
7只能在相邻的AS传递,一般在EBGP邻居的OUT方向的做。影响入站的流量。(IBGP之间是可以修改的)
七 EBGP优于IBGP//开始瞎比较了。。
与EBGP的AD小于IBGP的AD是无关的
八 通过最近bgp的路由//继续瞎玩。。
指的去往BGP邻居用的IGP路由的metric值最小
对EBGP,IBGP邻居都会有效。
九 配置了maximum-paths命令,会产生负载均衡
其实这不算选路的原则,是指当前面的八条选不出最优路由时,在BGP 的进程下配置maximum-paths 命令后,会产生负载均衡
十 存在时间最长的EBGP路由优先
优选最老的路由(最先被学习到的路由).
可以用bgp bestpath compare_routerid命令语句关闭。
bgp bestpath compare-routerid
这句命令的意思是指,选路是前8条都选不出来时,跳过第十条最老的EBGP邻居,直接选最小的ROUTE-ID
注:如果路由器标志是一样的,此步骤可以忽略,因为这说明路由器正在从自己那里接收路由。
如果当前没有最优路由器,此步骤可以被忽略
十一 最小的IBGP邻居route-id//实在没得比较了比这个
如果在同一时间学习到多条到同一目的地的路由,优选最小BGP-router-ID的路由
注:在有RR的情况下不比邻居的route-ID,起源ID将代替route-id在路径选择过程中起作用。将不会用到第11条选路原则,会用到12或者13条选路原则。
一个路由器从多个RR收到相同路由进行最优路径选择时,第11条选路原则用的Router-ID被更改为originator ID(起源ID就是在本AS学得路由的第一跳路由器的Router-ID,是RR的一个client),而不是RR的Router-ID,因此如果BGP路由只是从一个ASBR学习到然后传入AS内部,将不会用到11条选路原则,会用到12或者13条选路原则。
十二 cluster-id 的长度
多条路径的始发路由器ID相同,那么选择 cluster-list短的,因为每经过一个RR, cluster-list会加上这个RR的 cluster-id
十三 BGP优选来自于最低的邻居地址的路径,是BGP的neigbor配置中地址//实在没得比了比较这个
转载于:https://www.cnblogs.com/jinhengyu/p/7516858.html
bgp选路原则【第二部】相关推荐
- BGP选路原则和选路控制
BGP选路原则 如果收到同一个目的地址的多条BGP路由,将按照以下顺序进行选择比较: 1.最高Weight值优先.Weight值为Cisco私有,并且只有本地有效,不会通过BGP ,传 ...
- 解决IBGP的水平分割和BGP选路原则
解决IBGP的水平分割问题 IBGP水平分割:防止环路的产生 方法1:路由反射器(RR) 路由反射器可以反射所学习到的IBGP路由信息. 指定一台路由器称为路由反射器(RR)的时,必须在他的IBGP对 ...
- Juniper BGP选路原则
路由选路原则 1.查看inet.0路由表中是否存在去往该条BGP路由的下一跳,如果不存在去往BGP下一跳的路由,则这条BGP路由则会被隐藏. 2.优选Local Preference值最大的 3.优选 ...
- BGP选路原则和属性
BGP 属性 公认必遵: origin( 起源属性标识: i > e > ? ) .AS-path . next-hop 公认任意: Local_Pref (本地优先级).Atomic A ...
- 常用的BGP选路原则,最快速的方法实现精准记忆
一.BGP 13条选路原则 1.W ,即属性 Weight( 思科的私有属性,本地有意义,越大越优先,默认情况下从邻居学到的weight值为0,只能用在in方向) A.针对邻居修改来自该邻居的所有路由 ...
- 十三条BGP选路原则(附带实验环境)
BGP选路属性集合,从1开始比较进行选路,若相同则进行下一项 1.不发布不可达的路由信息 2.Preferred-Value值 3.本地Local Preference值高的路由 4.优选本地生成的路 ...
- bgp通告四原则_BGP选路原则详解
<BGP选路原则详解>由会员分享,可在线阅读,更多相关<BGP选路原则详解(112页珍藏版)>请在人人文库网上搜索. 1.BGP选路原则详解,BGP路由选路原则详解,技术培训中 ...
- BGP------BGP工作原理、BGP属性及选路原则
BGP工作原理 一.BGP报文 1.open报文 作用:建立邻居.协商参数 open报文只在邻居建立时发送,不会周期发送 内容: version:BGP版本 My AS:自身的AS号 hold tim ...
- 华为ebgp_BGP选路原则之首选值(华为特性)
网 工 圈 网络工程师阿龙中国圈内最早的公益公众号,本号已认证(关注近5w+)关注今天翻起了BGP学习笔记,于是动手瞧瞧实验,再次与大家分享BGP选路原则第一条:首选值.我本人比较喜欢技术,偶 ...
最新文章
- 800万中文词,腾讯AI Lab开源大规模NLP数据集
- 【BZOJ】1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
- Script:优化crs_stat命令的输出
- 在Qt for Python应用程序中使用Designer UI文件
- 2019.3.23 捕获异常
- 相关系数矩阵计算_corrplot包:相关性矩阵可视化
- Ubuntu下vsftp安装和配置
- 使用加密签名时遇到的一个问题
- 结队编程思路及感悟(python、tkinter、mysql、腾讯云短信等)
- 硬笔行书字帖3500常用字_练字的字帖怎么选择?(硬笔)
- 基于Matlab的自适应低通滤波器设计,基于MATLAB的自适应滤波器的设计
- CVPR2021提出的一些新数据集汇总
- 计算机考研数学考一还是二,考研我不知道自己考数一还是数学二
- Emoji-Chat emoji表情包发送及显示兼容web端、移动端
- 应用及实例,在信用卡业务中的数据挖掘技术分析
- 第十四届蓝桥杯模拟赛c++ 试题 I
- TF-IDF 算法详解及 Python 实现
- linux服务器清除cdn,Linux服务器中查找并删除大文件的五种方法,Linux系统清除文件内容的命令分享...
- 【张小平工作日志】DBCP、c3p0、Druid、Proxool数据库连接池比较
- Linux--Linux服务器空间占满解决办法
热门文章
- springboot数据源不正确_springboot配置多数据源
- mysql:mysql error:Access denied for user 'root'@'localhost' (using password: YES)
- 专属于Java程序员的学习福音
- 【第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛】Simone and Graph Coloring
- 【Java Web开发指南】云服务器部署项目供外网访问(Tomcat)
- linux无法运行病毒,{转}为什么linux系统不容易中病毒?
- 计算机应用基础浙大,2014春浙大远程教育计算机应用基础-3.Word知识题
- 把数据保存到cook_将用户信息保存到Cookie中
- python爬取动态网页图片_python爬虫之爬取动态加载的图片_百度
- python利用什么写模板_Python利用逻辑回归分类实现模板