06-BGP属性详解--Origin属性/MED属性

简介:
Technorati 标签:  , , , ,

在IGP时代我们都知道,比如说ospf,链路状态协议,在进行路由选择的时候,比的是链路的耗费,哪条链路耗费小则会更优先,如果两个链路耗费是一样的,那么就做负载均衡。

实际上就2个原则成就了ospf---最短路径优先的工作原理。

那如果在BGP中,有多条路由可以到达目的的时候,应当如何进行选择呢?哪一条路径是比较优先的呢?

来看看这11个属性的优先级,加深记忆,最好能熟练的背下来:

1 HIGHEST WEIGHT--cisco私有属性

2 HIGHEST LOCAL PRERENCE -----公认可选

3 ROUTE ORIGINATED BY THE ROUTER NEXT HOP=0.0.0.0 * -----公认必尊well-known mandatory

4 SHORTEST AS PATH * -----公认必尊well-known mandatory

5 LOWEST ORIGINATED IGP>EGP>INCOMPLETE * -----公认必尊well-known mandatory

6 LOWEST MED

7 EBGP PATH OVER IBGP PATH

8 PREFER THE PATH THROGH THE CLOSEST IGP NEIGHBOR

9 RREFER OLDEST ROUTER FOR EBGP PATH

10 PREFER THE PATH WITH THE LOWEST NEIGHBOR BGP ROUTER ID

11 BGP LOWEST ROUTER ID

12 MINIMUM CLASTER LIST LENGTH

在bgp中,除了有一大堆原理需要深刻理解以外,选路原则是重中之重。一定需要掌握(要想对bgp有所认识和故障排查,这里一定是要掌握而不是了解)选路原则。

该文档会逐一对每个属性进行验证.力求能达到让我自己在心里有数对这些概念。

Origin属性详解IGP>EGP>Incompelete.

关于这个属性,网络上游很多参考的实例了。

这里我就说一下总结:

IGP>EGP>Incomelete

BGP netowrk宣告过来的路由一定会加上一个i的标记>EGP宣告过来的路由(EGP已经被淘汰了)>重分布到bgp的路由.

验证这个属性不用花过多的时间:

clip_image002

假如R1上面的loopback0 1.1.1.1/32是通过network到BGP,然后再通过BGP宣告给其他AS的BGP邻居的话,那么最后得到的就是IGP的属性:

在R1上面配置为:

clip_image004

最后在R3上面可以看到1.1.1.1网段的属性:

clip_image006

而如果在R1上面是重分发进来的直连,那么最后在R3上面因为没有办法追溯路由的来源,最后会显示为Incompelete:

clip_image008

因为现在已经没有EGP.所以如果都是最优路由在进行比较的时候,IGP(BGP network的路由)>重分发的路由.

clip_image010

最后在R3上面我们可以验证一下结果:

clip_image012

到1.1.1.0/24,下一跳为14.0.0.1, weight=0,LP=100,Next-hop不是全0,AS-Path=200,Origin=IGP.

到1.1.1.0/24,下一跳为13.0.0.1, weight=0,LP=100,Next-hop不是全0,AS-Path=100,Origin=Incomplete.

比较到起源属性的时候,肯定是I>?,最后1.1.1.0/24, next-hop 14.0.0.1为优*>.

MED属性详解-----Multi_Exit_Disc

MED属性的定义:

和Local_pref属性不同的是,Local-pref是本地优先级,只影响AS内的IBGP邻居,而MED是由对端的EBGP邻居传递过来的metric属性,越小越优先。

clip_image014

在R4上面创建一个loopback接口。

loopback0:10.10.10.1/24

然后R4会将该邻居通告给R1和R2,然后R1和R2最后都会通告给R3.

在R3上面我们将会学习到2条路由,一条是下一跳为R1,还有一跳是下一跳R2。

这个时候我们要做MED来进行比较,MED值小的路径优先:

实验:R3学到的10.10.10.0的路由走的路径R3-R2-R4最优。

在R2上设置MED为10.在R1上面设置MED为20.

clip_image016

在R1上面设置MED为20:

clip_image018

最后在R3上面可以看到会选择metric小的为优先:

clip_image020

还是来比较一下:

10.10.10.0->14.0.0.1,weight=0,LP=100,next-hop无全0下一跳,AS-path=200.65500,起源是IGP,MED=10

10.10.10.0->13.0.0.1,weight=0,LP=100,next-hop无全0下一跳,AS-path=100,65500,起源是IGP,MED=20.

因为MED实际上是一种metric那么肯定是越小越优先。

所以最后bgp选择了10.10.10.0-->14.0.0.1 with MED=10.

最后再用一个实验来验证一下基本上最常用的几类比较原则:

clip_image014[1]

还是这个拓扑图,不过在这里不会设置任何MED或者local-pref等等属性,这次要让BGP完全进行自己选择.

R4上面配置loopback0 10.10.10.1,然后将该地址networkbgp 65500中去。R1R2分别从R4学习到该路由条目然后传递给R3.

思考:根据bgp的选路原则,请问R310.10.10.0到底是从R1走优呢?还是从R2走优呢?

再来看看BGP的选路原则:

1、 优先选取具有最大权重(weight)值的路径,权重是Cisco专有属性。

2、 如果权重值相同,优先选取具有最高本地优先级的路由。

3、 如果本地优先级相同,优先选取本地路由(下一跳为0.0.0.0)上的BGP路由。

4、 如果本地优先级相同,并且没有源自本路由器的路由,优先选取具有最短AS路径的路由。

5、 如果具有相同的AS路径长度,优先选取具有最低源代码(IBGP<EBGP&lt;INCOMPLETE)的路由。

6、 如果起源代码相同,优先选取具有最低MED值的路径。

7、 如果MED都相同,在EBGP路由和联盟EBGP路由中,首选EBGP路由,在联盟EBGP路由和IBGP路由中,首选联盟EBGP路由。

8、 如果前面所有属性都相同,优先选取离IGP邻居最近的路径。

9、 如果内部路径也相同,优先选取最低BGP路由器ID的路径。

实际上真的是要用到这9条,一条一条的比较。

clip_image022

10.10.10.0->R1,weight=0,LP=100,next-hop非全0,AS-path=100.65500,origin=IGP,MED=默认,EBGP学习到的external,没有离IGP邻居最近,最后route ID为15.1.1.1.

10.10.10.0-&gt;R2,weight=0,LP=100,next-hop非全0,AS-path=100.65500,origin=IGP,MED=默认,EBGP学习到的external,没有离IGP邻居最近,最后route ID为16.1.1.1.

route-ID比较小的是15.1.1.1,所以该路由最优.为*&gt;,会写入核心路由表。

clip_image024



本文转自 hny2000 51CTO博客,原文链接:http://blog.51cto.com/361531/706957


相关文章
|
分布式计算 流计算 Spark
Flink - CountTrigger && ProcessingTimeTriger 详解
Flink 针对 window 提供了多种自定义 trigger,其中常见的有 CountTrigger 和 ProcessingTimeTrigger,下面通过两个 demo 了解一下两个 Trigger 的内部实现原理与窗口触发的相关知识。
1415 0
Flink - CountTrigger && ProcessingTimeTriger 详解
|
5月前
|
搜索推荐 应用服务中间件 数据安全/隐私保护
【Docker项目实战】使用Docker部署Organizr个人导航页
【Docker项目实战】使用Docker部署Organizr个人导航页
609 76
【Docker项目实战】使用Docker部署Organizr个人导航页
|
安全 Java 应用服务中间件
【服务器知识】Tomcat简单入门
【服务器知识】Tomcat简单入门
|
4月前
|
存储 Prometheus 运维
【云故事探索 | No.8】:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践
【云故事探索 | No.8】:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践
如何修改NFS分享的目录?
如何修改NFS分享的目录?
434 2
|
消息中间件 数据采集 运维
一份运维监控的终极秘籍!监控不到位,宕机两行泪
【10月更文挑战第25天】监控指标的采集分为基础监控和业务监控。基础监控涉及CPU、内存、磁盘等硬件和网络信息,而业务监控则关注服务运行状态。常见的监控数据采集方法包括日志、JMX、REST、OpenMetrics等。Google SRE提出的四个黄金指标——错误、延迟、流量和饱和度,为监控提供了重要指导。错误监控关注系统和业务错误;延迟监控关注服务响应时间;流量监控关注系统和服务的访问量;饱和度监控关注服务利用率。这些指标有助于及时发现和定位故障。
913 1
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
461 3
|
存储 监控 网络协议
在Linux中,如何进行邮件服务器配置?
在Linux中,如何进行邮件服务器配置?
|
XML 存储 安全
探索 doc 和 docx 文件格式的区别
探索 doc 和 docx 文件格式的区别
953 3