zoukankan      html  css  js  c++  java
  • BGP选路十种方法总结 用实验详细介绍(副实验拓扑)

    BGP选路十种方法总结 <wbr>用实验详细介绍(副实验拓扑)

    以上是BGP路由走向的每种选择方法了。在路由传播时它会从上到下一条一条去匹配。

    今天结合这10条我们来具体分析。上拓扑吧!

    BGP选路十种方法总结 <wbr>用实验详细介绍(副实验拓扑)

     

    OK按照拓扑我们建立互相的BGP邻居。

    建立好之后我们在R2上宣告一条环回口2.2.2.2的路由。我们试分析,在R3上收到此路由是通过R几学到的呢?它会匹配图一的那一项呢?

    先看前四项,我们并没有去改这些属性默认情况下都是一样的所以忽略。

    当然567也都是一样所以我们来看8.它说从最近的IBGP邻居那里学习到。OK那么一眼就能看出R3最近的IBGP邻居只有R4.因为R4这边是以太口所以COST小于串口的。我们拦验证一下。

    R3#sh ip bgp          

    BGP table version is 3, local router ID is 3.3.3.3

    Status codes: suppressed, damped, history, valid, best, internal,

                  RIB-failure, Stale

    Origin codes: IGP, EGP, incomplete

     

       Network          Next Hop            Metric LocPrf Weight Path

      *>i2.2.2.2/32        4.4.4.4                     100      i

                      1.1.1.1                     100      i

     

     

     

     

    还可以在R3上来查看2.2.2.2这条路由的明细:

    R3#sh ip bgp 2.2.2.2/32

    BGP routing table entry for 2.2.2.2/32, version 3

    Paths: (2 available, best #1, table Default-IP-Routing-Table)

      Not advertised to any peer

      2

        4.4.4.4 (metric 11) from 4.4.4.4 (4.4.4.4)

          Origin IGP, metric 0, localpref 100, valid, internal, best

      2

        1.1.1.1 (metric 1563) from 1.1.1.1 (1.1.1.1)

          Origin IGP, metric 0, localpref 100, valid, internal

    好了 这是正常情况下的路由走向,下面我们来通过图一一步一步来更改属性,实现认为选路,我们现在让R32.2.2.2这条路由从R1走。

    一、我们来修改权重即weight值来影响路由

    首先先来看看一些默认值:

    R1#sh ip bgp 

       Network          Next Hop            Metric LocPrf Weight Path

      *> 2.2.2.2/32       12.1.1.2                             i

    R2#sh ip bgp

       Network          Next Hop            Metric LocPrf Weight Path

      *> 2.2.2.2/32       0.0.0.0                          32768  i

    R3#sh ip bgp

       Network          Next Hop            Metric LocPrf Weight Path

      *>i2.2.2.2/32       4.4.4.4                     100    0  i

                      1.1.1.1                     100   0  i

    R4#sh ip bgp

       Network          Next Hop            Metric LocPrf Weight Path

      *> 2.2.2.2/32       24.1.1.2                           0  i

    要想在R3上达到去R2R1走的效果我们只需要将R3R1学到的路由权重调大点就行。

    步骤:

    R3(config-router)#nei 1.1.1.1 weight 1

    R3#sh ip bgp

       Network          Next Hop            Metric LocPrf Weight Path

      i2.2.2.2/32       4.4.4.4                     100       i

      *>i                 1.1.1.1                   100      1  i

    为了能看的更清楚修改每项所影响的效果我们在R2上在启动一个环回口地址为:

    22.22.22.22/32 我们把它也宣告进入BGP中。再来查看R3BGP路由。

    R3#sh ip bgp

     

       Network          Next Hop            Metric LocPrf Weight Path

    i2.2.2.2/32          4.4.4.4                     100     0  i

    *>i                  1.1.1.1                     100     1  i

    i22.22.22.22/32       4.4.4.4                     100     0  i

    *>i                   1.1.1.1                     100     1  i

    我们发现修改权重之后它会影响所有从R1学到的路由。所以一般情况下我们不这么做。

    如果我们现在让2.2.2.2R122.22.22.22R4走。通过修改权重怎么做呢?想想~

    步骤:

    1.先还原到默认情况下。即都是从R4走。

    2.R3ip prefix-list seq permit 2.2.2.2/32

           route-map weight permit 10

           match ip address prefix-list 2

           set weight 1

           route-map weight permit 20

    3.neighbor 1.1.1.1 route-map weight in

    来看看效果:

    R3#clear ip bgp s

    R3#sh ip bgp

       Network          Next Hop            Metric LocPrf Weight Path

       i2.2.2.2/32       4.4.4.4                     100     i

       *>i               1.1.1.1                     100     i

       *>i22.22.22.22/32   4.4.4.4                     100     i

                      1.1.1.1                     100     i

    需要注意的是weightcisco私有的,排在第一位所以要慎用!

     

    二、接下来我们来看看local preference(本地优先级)

    他只能发送给IBGP在同一个AS内 默认值100 越大越好

    我们来做一下,首先将配置恢复初始状态

    为了达到让2.2.2.2R1走我们只需将这条路由的优先级调高点就可以了。

    步骤(在R1上):

    1.ip prefix-list seq permit 2.2.2.2/32

     route-map local permit 10

       match ip address prefix-list 2

       set local-preference 123

       route-map local permit 20

    3.neighbor 3.3.3.3 route-map local out

    我们到R3上来看效果:

    R3#sh ip b

       Network          Next Hop            Metric LocPrf Weight Path

      i2.2.2.2/32       4.4.4.4                     100      i

      *>i               1.1.1.1                     123      i

      *>i22.22.22.22/32   4.4.4.4                     100      i

                     1.1.1.1                     100      i

    三、它说是优先于起源本地的路由

       怎么理解呢?也就是说我们的next-hop

    现在R1通告R3next-hop0.0.0.0(也就是自己)

    如有还有一条路也学到了那么指定next-hop12.1.1.2(假如)那么当然就会选择这条了

    实验就不做了~还得改拓扑!懒嘿嘿!

     

    四、优选于最短的AS path

    有两种做法一种是进方向一种是出方向。基于以上的要求我们分别来做。

    首先是OUT的做法:我们将R4传给R3as-path改的大一点 那么2.2.2.2路由将会从R1走向R3。来看具体步骤:

    R2上:ip prefix-list seq permit 2.2.2.2/32

              route-map AS permit 10

              match ip address prefix-list 2

              set as-path prepend 5

              route-map AS permit 20

    R3上看看BGP路由:

    R3#sh ip bgp

       Network          Next Hop            Metric  LocPrf   Weight  Path

      i2.2.2.2/32         4.4.4.4                     100        i

      *>i                 1.1.1.1                     100        i

      *>i22.22.22.22/32     4.4.4.4                     100        i

                       1.1.1.1                     100        i

    再来做IN方向的

    R4上做:

          ip prefix-list seq permit 2.2.2.2/32

          route-map AS permit 10

          match ip address prefix-list 2

          set as-path prepend 7

          route-map AS permit 20

    R3上看看

    R3#sh ip bgp

       Network          Next Hop            Metric  LocPrf   Weight  Path

      i2.2.2.2/32         4.4.4.4                     100        i

      *>i                 1.1.1.1                     100        i

      *>i22.22.22.22/32     4.4.4.4                     100        i

                       1.1.1.1                     100        

    由以上我们通过修改as-path人为的可以进行选路,但是这样修改会有很多的弊端,如果真实的环境中在R3右边如果恰好有一个AS7,那么R3去往2.2.2.2肯定会先发给AS7但是由于BGP的水平分割AS7中的路由并不会收这条路由直接丢弃。那么R3就永远不能把这条路由送往AS2了。所以为了解决这种问题我们通常都是在修改AS-PATH时多加几个目的区域的区域号。比如上拓扑中我们这样做:set as-path prepend 2

    这样答到的选路效果是一样的。

     

     

     

     

     

     

     

     

    五、通过控制起源地址来实现选路在上篇文章就涉及到了。

    BGP选路十种方法总结 <wbr>用实验详细介绍(副实验拓扑)

    同样我们晴空刚才配置,回复初始状态。

    我们在R2上做:

     ip prefix-list seq permit 2.2.2.2/32

     route-map origin permit 10

     match ip address prefix-list 2

     set origin egp 1

     route-map origin permit 20

    然后去R3上看效果:

    R3#sh ip bgp

       Network          Next Hop            Metric    LocPrf   Weight Path

      i2.2.2.2/32         4.4.4.4                     100        e

      *>i                 1.1.1.1                     100        i

      *>i22.22.22.22/32     4.4.4.4                     100        i

                       1.1.1.1                     100        i

    我们说它的选路依据是:IGP<EBGP<INCOMPLETE

    六、MED

    首先是值越小越好,首先我们在R3上在开启一个环回口33.33.33.33/32并发布到BGP

    R2上去往33.33.33.33肯定是从R1走因为R1route-idR4的小。

    R2#sh ip bgp

       Network          Next Hop            Metric LocPrf   Weight  Path

      *> 2.2.2.2/32         0.0.0.0                          32768    i

      *> 22.22.22.22/32     0.0.0.0                          32768    i

       33.33.33.33/32     24.1.1.4                                 i

      *>                  12.1.1.1                                 i

    我们现在通过修改MED值让他从R4走。

    我们在R1上做:

       ip prefix-list seq permit 33.33.33.33/32

       route-map med permit 10

       match ip address prefix-list 3

       set metric 3

       route-map med permit 20

     

     

    我们去R2上看看效果:

    R2#sh ip bgp 

       Network           Next Hop            Metric  LocPrf  Weight  Path

      *> 2.2.2.2/32         0.0.0.0                           32768    

      *> 22.22.22.22/32     0.0.0.0                           32768    

      *> 33.33.33.33/32     24.1.1.4                                  i

                        12.1.1.1                                  i

     

  • 相关阅读:
    踏个脚印,今天在博客园安了个家!
    微软WebDeployment Project插件发布网站时老是报出"aspnet_merge.exe”已退出,代码为1的错误
    从xap文件中读取文件
    ASP.NET MVC学习笔记二(URL映射规则)
    Siverlight Contrib的alpha版与正式版有很大区别
    带你尝鲜LiteOS 组件EasyFlash
    带你了解几种二进制代码相似度比较技术
    让数据大白于天下:GCC插件实现代码分析和安全审计
    鸿蒙轻内核源码分析:MMU协处理器
    高性能云网关,打通云内外业务互通的任督二脉
  • 原文地址:https://www.cnblogs.com/4geek/p/12685584.html
Copyright © 2011-2022 走看看