老规矩,先做个小回顾,汇总一下,目前龙哥都与大家分享了哪些BGP选路原则:

1、首选值(华为特性)。默认为0,值越高越优选。2、Local-preference。默认为100,值越高越优选。3、优选本地生成路由(0.0.0.0)。手工聚合>自动聚合>network>import4、优选最短的AS路径(AS_Path)。

5、优选Origin类型(i>e>?)


本期与大家分享的是第6条BGP路由优选原则:MED值



阅读完本篇,您将收益如下1、MED默认值为0;2、本地产生的MED,仅在本AS内传递;3、针对不同相邻的AS设置的MED,仅在两个相邻的AS之间传递MED,收到MED的AS一方,不会再传给任何其他的AS。
4、掌握compare-different-as-med命令的含义、场景。




思路1、搭好拓扑图,连接好线;2、标注IP信息、router id;3、启动设备,配置好设备名、router-id,每个设备直连IP信息。4、配置IGP路由,这里我配OSPF,AS之间理论上使用静态路由也可以,这里我统一都跑OSPF,都在area 0,不影响本次实验。5、配置BGP,使得:

  1. R1、R2分别于R3形成ebgp邻居关系;
  2. R3与R4形成ibgp邻居关系;
  3. R4分别与R5、R6形成ebgp邻居关系;
  4. R7分别与R5、R6、R8形成ibgp邻居关系。

6、验证
7、得出结论。


拓扑图


    

基础配置基础配置主要是:根据思路进行配置,设备名、router-id、直连接口ip、loopbackip、IGP路由协议(OSPF),如果还有不会的同学,可以参考往期的,也可以点击阅读原文,下载我配置文件。配置完后,建议检查路由协议的邻居关系是否ok?



关键配置



1MED的默认值


这里,我以R7路由器为例,我们先看看R7的bgp路由信息:


为空,正常,因为我们还没宣告任何bgp路由。

然后我在R7创建loopback 70,ip地址为70.70.70.70/24 ,然后network到bgp中,再来查看一下R7的bgp路由信息:



我们可以看到bgp路由信息了,同时也看到了MED=0;


由此,我们明白了:


MED默认值为0



2本地生成的MED




我们分别先看一下R4、R5的bgp路由信息:(目的是与待会进行对比)





均没有bgp路由,毕竟我们都没有宣告任何路由信息,当然肯定没有了,是吧!
现在,我打算在R7引入OSPF路由:



我们在R7查看bgp路由,会有一列MED的信息,这些数值是怎么来的?
这些就是OSPF路由协议的cost值,不信?我们可以看看OSPF的路由信息,以3.3.3.3为例,看看OSPF的cost是否为3?



现在,我们在R4、R5看看bgp路由信息,看看是否有携带MED?



由图可知,R4收到R5、R6发过来的BGP路由是没有携带MED值的,为空。
R5上查看,收到本AS内R7过来的bgp路由是有携带MED值的。我们可以顺便在查看一下R6、R8的bgp路由信息:



同样,R6、R8收到本AS内R7发过来的bgp路由,也是有携带MED值的。

由此,我们明白了:

本地生成的MED,仅在本AS内传播。




3相邻AS之间的MED


在AS 200内的R4查看 AS300发过来的BGP路由信息:



由此可知,R4收到两条bgp路由,分别是R5、R6发送过来的,优选R5。因为是R5的router id比R6小。

现在我们可以通过MED值来改变R4优选R6了。要让R4使用MED值来选路,前提是前面5条都无法pk出来,才可以,是吧!
关于MED值,其实我个人理解,就是Cost值的意思,换了个名字而已。你可以理解:你在深圳,去往北京,可通过先去上海再转机到北京,费用2500元;也可以先去武汉再转机到北京,费用1500元。这是你当然会选择费用1500元的这个方案了是吧!所以,MED值越小越优选。
现在我们把R5的MED值改大,改为100,R6的MED值设置50,这样就可以优选R6了。




现在,我们在R4可以看到优选R6了:


R4没有选R5发过来的bgp路由原因是:没有更优的MED值。


我们在R4的G0/0/1抓包一下:


开启抓包后,可以在R4刷新一下BGP路由信息,这样R5就会立即发送一份bgp路由信息,这样我们才可以抓到相关信息:




现在,我们在R3、R1上看看关于70.70.70.0/24的bgp路由信息:





从上图可知,AS 200内的R3收到R4的bgp路由携带了MED值,而AS 100的R1、R2没有携带MED值了。


由此,我们明白了:

针对不同相邻的AS设置的MED,仅在两个相邻的AS之间传递MED,收到MED的AS一方,不会再传给任何其他的AS。





4来自不同AS间的MED值



现在,我们来把拓扑图变形一下,把R2归属到AS 400中




然后我们分部在R1、R2创建相同的20.20.20.20/24的loopback接口,然后也宣告到bgp中。


在R1传给R3 BGP路由 设置MED 值100,R2传给R3 BGP路由  设置MED值 50。

现在,我们来R3查看一下关于20.20.20.0的bgp路由:


我们会很奇怪发现,R3居然优选MED值大的。我们来看看优选原因:

原因竟然是没有更优的Router id!!!!!
这说明跳过了MED值的比较了。
那么有没有办法呢?
肯定有的!

在R3执行如下命令:


现在就优选med值较小的了。
说明:缺省情况下,不允许比较来自不同AS邻居 相同路由信息的MED值。
但可以使用命令:compare-different-as-med 来允许比较来自不同的AS邻居路由的MED值。但注意了,除非能够确认不同AS采用了同样的IGP和路由选择方式,否则不要使用此命令。


©著作权归作者所有:来自51CTO博客作者mob604756ef35df的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. 在eve-ng模拟器上进行Cisco单臂路由配置,图文实例详解
  2. BGP路由优选原则:优选下一跳IGP metric较小路由
  3. Forefront TMG+路由器后Internet不能正常访问内网的Web服务器和
  4. BGP路由优选原则之优选Origin类型(i>e>?)
  5. OSPF邻居都Full,为啥还不通呢?
  6. Spring Cloud 网关 Gateway 配置使用 springcloud alibaba
  7. 华为防火墙配置IPsec***详解
  8. 前端基础设施-封装项目路由模块
  9. 多区域 OSPF 综合实验

随机推荐

  1. JAVA环境下创建JSP文件报错: The supercla
  2. Java设计模式之策略模式
  3. Java23种设计模式
  4. 【JavaScript&JQuery】原生API实现li标签
  5. 从JDK源码角度看并发竞争的超时
  6. APNS开源包的内存泄露问题
  7. 编写自己的代码库(javascript常用实例的实
  8. 【9.0】对于java集合的迭代器的底层分析
  9. GenericObjectPool对象池异常排查
  10. Java的HelloWorld程序的真正用法