博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02-BGP选路原则和属性详解--weight
阅读量:6897 次
发布时间:2019-06-27

本文共 2625 字,大约阅读时间需要 8 分钟。

Technorati 标签:  , , , ,

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

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

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

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

1 HIGHEST WEIGHT--cisco私有属性

2 HIGHEST LOCAL PRERENCE -----公认必尊well-known mandatory

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有所认识和故障排查,这里一定是要掌握而不是了解)选路原则。

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

Weight属性详解:

weight只具有本地意义 他不能被路由器传递只在本路由其上有效,还有他是思科的私有属性!他是一个之影响自己不影响别人属性!!而在cisco中,weight属性的优先级是最高的.在其他厂商中,从Local_pref属性开始。

BGP 的weight属性是一个本地属性。权重这个属性是在路由器本地配置的,不会传播给其他任何路由器.如果有多条前往同一个目的路由器,那么将会选择权重高地路由优先。

如果路由产生的始发路由器,对于weight属性默认会设置为32768.其他路由的权重默认为0.

首先,R1在AS 100中,R2/R3/R4在AS200中,R1到R4的loopback1和loopback2有两条路径可以走,分别是下一跳为R2和下一跳为R3.

现在要求做两个实验,分别是R1到R4的两个loopback下一跳都是R2,还有就是R1到R4的两个loopback下一跳都是R3。通过设置bgp的weight属性来进行路由的选择.

实验一,关于路由器R4的路由10.10.10.10/20.20.20.20是通过R2还有R3同时传递给R1的,需求:R1到R4的两个环回口路径要走红色的路径,下一跳是R2 172.16.1.2的路径。

在R1上配置命令:neighbor x.x.x.x weight xxx

其实这样是最简单的配置,这样就保证了所有从R2学到的路由对于R1来说的权重都是200.从R4学到的路由的权重都是100,200>100,所以要走路径:R1->R2->R4

最后在R1上面clear ip bgp *,等邻居up起来以后,再看一下路径进行验证:

对于走另外一条路径,只需要将配置稍加修改,将邻居R3的weight设置为200,将邻居R2的weight设置为100,那么就可以实现走另外一条路径了。这里就不再赘述了。

命令neighbor x.x.x.x weight xxx配置方法是种最简单的方式,但是它并不能精确地针对某条路由实现weight值的改变,实际上当将某个邻居的weight设置好以后,那么这个邻居通告过来的所有路由都会被本地路由器加上相同的weigh权重,有点一刀切的感觉。不能改变,家长制,一言堂.

而route-map恰恰弥补了这个缺点,它们的灵活性是neighbor weight所远远不及的。

下面还是相同的拓扑图,但是这次的需求是,R1到R4的10.10.10.10,走的路径是R1->R2->R4.

R2到R4的20.20.20.20,走的路径是R1->R3->R4.

完全是针对路由进行设置不同的weight权重。

如果要做到上述要求,需在R1上面做如下配置:

其实这些配置的意思就是:

在R1上从邻居172.16.1.2学到的路由10.10.10.0/24,设置为weight为65535,而其他的路由设置weight为32768.

在R1上从邻居172.16.4.2学到的路由20.20.20.0/24,设置为weight为65535,而其他的路由设置weight为32768.

那么最后在R1上面得到的结果应该是:

10.10.10.10 next-hop 172.16.1.2 weight=65535

20.20.20.20 next-hop 172.16.1.2 weight=32768

20.20.20.20 next-hop 172.16.4.2 weight=65535

10.10.10.10 next-hop 172.16.4.2 weight=32768

下面我们来验证一下是否如上面推测的结果一致:

还有一点是需要注意的,就是weight属性只是本地有效,所以在调用route-map的时候,只能用in的方向,用out方向是无效的,因为这个属性不会传递到邻居去的。

这里已经显示了route-map是多么的灵活了,如果仅仅用命令neighbor x.x.x.x wight的话,根本就做不到对路由的区分.

所以对于不同的环境还需要灵活的运用这些选路的策略。

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

转载地址:http://gacdl.baihongyu.com/

你可能感兴趣的文章
ECSHOP增加自动更新缓存的功能
查看>>
英文Ubantu系统安装中文输入法
查看>>
神医扁鹊
查看>>
SharePoint “File not found” 错误
查看>>
怎样看K线图(实图详解)
查看>>
JSON 转javabean 利器
查看>>
基于W5500+Yeelink的远程灯光控制设计
查看>>
Notes中几个处理多值域的通用函数
查看>>
量化生产力Quantifying Productivity
查看>>
趣文:我是一个线程
查看>>
iOS - UIAlertView
查看>>
【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/06/28
查看>>
短信发送的流程,硬编码在了服务方法里面,优化方案
查看>>
tcpdump
查看>>
maven的pom文件中配置测试用例
查看>>
Swift 方法
查看>>
angularjs等号运算
查看>>
LeetCode: Symmetric Tree 解题报告
查看>>
C# 线程手册 第五章 扩展多线程应用程序 CLR 和 线程
查看>>
html a name href
查看>>