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

 

原文地址:https://www.cnblogs.com/4geek/p/12685584.html