侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

11、BGP的选路原则七:对于来自同一AS的路由,优选MED值最低的路由。

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 10 阅读 / 0 字
广告 广告

一、BGP的选路原则七:对于来自同一AS的路由,优选MED值最低的路由。

对于MED我们需要考虑如下3点:

1、默认值
  • 缺省情况下是:0,通过network注入的时候值为0,通过import引入的时候分两种情况:如果是IGP,BGP中引入IGP那么BGP条目它的MED值就是IGP的Cost值;如果是RIP,BGP中引入RIP那么BGP条目它的MED值就是RIP的跳数值。
    2、大小(越大越优先、还是越小越优先)
  • MED值越小越优先
    3、传播范围(AS内部还是AS之间)
  • 相邻的两个AS之间

1669947355354

二、实验拓扑

image-1669774825188

三、实验过程

1、R1和R2建立EBGP邻居关系,R2分别和R1、R10 建立EBGP邻居关系,配置省略
2、R2和R4建立IBGP邻居关系,配置省略
3、R4分别和R5、R6建立EBGP邻居关系,配置省略
4、R7分别和R5、R6建立IBGP邻居关系,配置省略
5、保证所有BGP路由下一跳可达、配置省略。
6、在R1上的BGP中创建环回口100和200,分别配置IP地址:100.100.100.100/32、200.200.200.200/32,并通过network命令注入到BGP中,配置省略。
  • 观察1:在R1上查看通过network注入的两条BGP路由的MED值,此时本地的MED值为:0
    image-1669948533679
  • 观察2:在R2上查看通过network注入的两条BGP路由的MED值,此时本地的MED值为:0,因为R1和R2是直接相邻的两个EBGP邻居,所以R1通过network注入的路由携带了MED值为0,会传递给R2,不改变MED值。
    image-1669948590871
  • 操作1:在R2上创建环回口101,地址:101.101.101.101/32,并注入到BGP中,配置省略。
  • 观察3:分别在R4和R5上查看BGP路由信息,此时因为R2和R4同属一个AS内,所以R2注入到BGP中的路由携带MED值会传递给R4,因为R4和R5属于两个AS,R4在传递给R5的时候会剥离所传递路由的MED值。所以在R5上看到BGP路由的MED值为空。
    image-1669948887921

image-1669948922922

  • 思考1:如果在R4上将BGP路由101.101.101.101/32传递给R5的时候设置一个MED值,那个这个BGP路由所携带的MED值就会被R5收到,R5也会传递给本AS内所有的IBGP对等体,但是如果R9后面存在其他的AS,则R9传递BGP路由给其他AS的时候不会携带MED值。
  • 操作2:在R2上引入IGP路由,把OSPF路由引入到BGP中,配置省略。通过直连学习到的路由MED值都为0,通过下一跳学习到的路由的MED值为OSPF的cost值。分别在R4和R5上观察BGP路由的MED值,此时发现,同样R4在传递给R5的时候不会携带MED值。
    image-1669949413575

image-1669949430881

  • 操作3:清除掉R2上BGP中引入的IGP路由,在R4上引入IGP路由,配置省略。此时R4在把BGP路由传递给R5的时候就会携带MED值。
    image-1669949543272

  • 操作4:清除掉上一步的配置,在R2上的BGP中修改引入路由的MED值为100,并引入OSPF,命令如下,

    [~AR2]bgp 200
    [~AR2-bgp]default med 100
    [*AR2-bgp]import-route ospf 100
    [*AR2-bgp]commit
    
  • 观察4:在R1上查看BGP路由表信息,此时发现会携带R2BGP中配置的默认MED值,此时的R2配置的默认MED值只有在传递给EBGP邻居的时候生效,分别观察R4和R5。
    image-1669949877751

image-1669950390743

image-1669950407738

  • 操作5:在R4的BGP中引入OSPF,配置默认MED值为200,配置省略。观察R2和R6的BGP路由表信息,配置的默认MED值只对EBGP邻居生效。
    image-1669950599564

image-1669950618619

  • 观察5:此时R5会将收到的携带MED值的BGP路由传递给本AS内其他的IGBP对等体,分别在R6和R7上查看。当然在传出本AS后,进入其他AS的时候会剥离MED值。
    image-1669950815993

image-1669950827388

  • 操作6:清除掉所以引入操作和默认MED值恢复BGP初始状态,此时观察R7上BGP路由表信息
    image-1669951242109
  • 操作7:通过策略修改R4将BGP路由100.100.100.100/32传递给R6的时候MED值为100,让R7学习到该条目时走下一跳10.1.6.6。
    ip ip-prefix 100 index 10 permit 100.100.100.100 32
    #
    route-policy 100 permit node 1
    if-match ip-prefix 100
    apply cost 100
    route-policy 100 permit node 1000
    #
    bgp 200
    peer 10.0.45.5 route-policy 100 export
    
  • 观察5:在R7上观察BGP路由表信息,此时R7去往100.100.100.100/32就会走下一跳10.1.6.6,选路的原因是因为MED值
    image-1669951841903

image-1669951898751

四、问题

1669952301535

如图:在RTC上为什么不一定会选择通往RTA的链路(MED值较小)作为主链路去往目标网段192.10.0.0/16?

  • 原因:路由器收到两条以上去往同一目携带的有不同的MED值的的路由时候,要想选择MED值较小的作为主链路,必须要求这两条去往同一目的的携带不同MED值的路由来自同一个AS,必须是相邻的AS,不同的AS不计算,忽略MED值。如图所示RTC去往192.10.0.0/16路由来自不同的AS,分别是AS500和AS600,此时选路不依据路由条目的MED值进行选路。
  • 缺省情况下,不允许比较来自不同AS邻居的路由信息的MED值。但是我们可以通过命令compare-different-as-med命令来允许比较来自不同自治系统的另据的路由的MED值。不过,除非能够确认不同自治系统采用了同样的IGP和路由选择方式,否则不要使用此命令。
0
BGP
广告 广告

评论区