设为首页收藏本站language 语言切换
查看: 3195|回复: 7
收起左侧

【武汉引航】 老李上课的BGP选路之weight 实验(不是基本再现)

[复制链接]
发表于 2011-11-10 10:57:11 | 显示全部楼层 |阅读模式
1、在实验之前,不得不说一下老李上课说的几句精华:
I:一条链路要当成两条来看,其一是in,其二是out。
II:出向业务量(Out-Traffic)由收到的路由影响,而进向业务量(In-Traffic)应由发出去的路由影响。


2、在做影响出向业务量(Out-Traffic):就要对你收到别人给你的路由进行设置,而能干这活的有两个BGP的属性:weightlocal preference

说明: weight在BGP的选路条件中位居首位,也就说它的影响力度是很大的,但是weight是cisco的私有属性,在非cisco的设备上就不要指望它了,并且,weight是本地属性,只具有本地意义。
       local preference 在BGP选路条件中位居第二,但它只能在iBGP内传递,然而凡是weight能干的活,Loc_prf 都干的了。

3、在做进向业务量(In-Traffic):就要影响你自己发出去的路由,在多数情况下要影响发出去的路由就不得不影响其他的路由起,在实际中,别人是不会让你这么干的,所以你就要花点钱找他人协商。
      影响自己的路由如何出的BGP的属性有两种:AS-path和MED(Multi-Exit-Disciminate    多出口识别)
   
说明:对于MED来说,如果一台路由器收到一条eBGP的路由,它只会在iBGP内进行MED传递比较,而不会再给它的eBGP邻居,所以MED的能力有点弱,按老李的说法就是weak,而在BGP的选路条件中,它也是被排在了第六位。
      相比AS-pathd的能力就很强了,凡是MED能干的活AS-path都能干,MED不能干的活,他也能干,很大的原因是AS-path是周知必遵属性,在整个网络都要传输。
------------------------------------------------------------------------------------------------------------------------------------------------------
接下来做实验,废话不多说,先上图:



老规矩,基本配置按图上来配置。

       BGP都起来后,对于客户R1来说,我接了两条链路到不同的ISP AS-2 和AS-3,但是现在就出现了一个很严重的问题,如果在AS-2和AS-3上有N台路由器,那么对于R2来说,它要到R3的话,是不是很有可能走R1呢,对于R3来说也是同样的问题。对于R1来说,我是客户,AS-2和AS-3你们是应该为我提供服务的,但现在却反过来了,我成了转接的AS了,这是对客户我的利益的侵犯啊,怎么来解决转接AS的问题呢。解决的办法就是在客户的路由器做相应的配置,是自己不成为转接AS:

R1:  
    ip as-path access-list 1 permit ^$                    (定义出AS-path)
       neighbor 192.168.12.2 filter-list 1 out             (在相应的链路上应用)
       neighbor 192.168.13.3 filter-list 1 out
     
       其实这就是对AS-path的一种很好的利用,这几条命令的意思是对与R2和R3来说,我只发送我自己产生的路由,也就是说你R2或R3发送给我的路由我不会在发给R3或R2。
     这样转接AS的问题就解决了。

     结下来show ip bgp 看一下:

你会发现对于192.168.1.4和192.168.1.44的下一跳的描述是192.168.12.2,这里就有问题了,为什么下一跳是R2而不是R3呢,问的好,在BGP的选路原则中规定,先收到的路由优于后收到的路由(这里的路由是eBGP的路由),也就是说谁的time大就选谁,而我是先起的R1<-->R2之间的eBGP,所以说是优选R2作为下一跳;即使是time一样,那么也会优选R2,大家想一下为什么(其实这个问题很简单,大家的笔记上都应该有的,老李上课说了的!)

    对于客户R1来说,我在开始部署链路的时候,我是想把R1-->R3的链路当作主链路,R1-->R2当作备份链路的,现在你把主链路指到了R2上,肯定是不行的,对于这个问题,BGP的属性weight是可以把它轻松解决的,如何做呢。现在来看,就是要影响自己的Out-Traffic了,而对于weight的做法又有两种,一种是per neighbor weight 和 基于条件两种做法。

    先用地一种方法:per neighbor weight
R1:
             neighbor 192.168.12.2 weight 100
                 neighbor 192.168.13.3 weight 10

       这种做法的意思是从R2过来的路由weight设置为50,从R3过来的weight设置为100,(weight大者优)

再看一下:


但是对于R1来说,到R2却走R3,一看这就是不明智的,他应该走R1-->R2这条链路。所以per neighbor weight这种做法是不完美的。
   
有不完美的就应该有完美的做法,这种做法就是基于条件的做法,而基于条件的做法又有两种,一种是基于AS条件的,另一种就是基于prefix条件的。
     先说基于prefix的:(将刚才的配置删掉)
R1:
     ip prefix-list 1 seq 5 permit 192.168.1.4/32
         ip prefix-list 1 seq 5 permit 192.168.1.44/32
         route-map set_weight permit 10
          match ip address prefix-list 1
          set weight 100
         route-map set_weight permit 20
         neighbor 192.168.13.3 route-map set_weight in

         (注意:这里只能in ,因为你在做出向业务量,要影响进来的流量,而且weight这个属性你是传不出去的!)

   clear ip bgp * soft 一下(在不断开BGP邻居的条件下,加快BGP的收敛速度)  



这样一切正常了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一种基于条件的办法,下面说基于AS的方法(上面的配置同样删掉):

R1:
     ip as-path access-list 2 permit ^2$    (定义AS-path 2和AS-path 3)
         ip as-path access-list 3 permit ^3$
       (出于演示,这里我就把主改成了R2,备改成R3)
   
     route-map 2 permit 10     (对于来自AS-2的路由weight设置为100,否则设置为90)                       
      match as-path 2
          set weight 100
          route-map 2 permit 20
           set weight 90

          route-map 3 permit 10   (对于来自AS-2的路由weight设置为100,否则设置为50)
          match as-path 3
          set weight 100
          route-map 3 permit 20
           set weight 50
     
           neighbor 192.168.13.3 route-map 3 in   (在相应的链路上应用route-map)
       neighbor 192.168.12.2 route-map 2 in     

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
再看一下:
     

大家可以看到,对于R1到R2和R3的正常,到R4的下一跳为R2。

分析:  对于192.168.1.2 来说 ,它有两个下一跳  192.168.12.2 和192.168.13.3 ,12.2的weight为100 ,而13.3的weight为50 ,所以选择了192.168.12.2 为下一跳,对于R3来说同理(100 VS90   100 胜利!)。
        对于192.168.1.4和 192.168.1.44 的下一跳都样有两个,192.168.12.2 和 192.168.13.3  但是R4的那两条路由经过AS-2到AS1后weight被设置为90 ,经过AS3到AS1的weight设置为50 ,90>50,所以优选了192.168.12.2 作为下一跳了。


现在对于客户R1来说又有一个需求,就是对于192.168.1.4 来说我要走R2,对于192.168.1.44来说我要走R3,该怎么做呢?   根据上面的一些方法,可以很简单的就实现这个需求:(同样将上面的配置删掉

R1:
      ip prefix-list 1 seq 5 permit 192.168.1.4/32       (定义192.168.1.4 和192.168.1.44)
           ip prefix-list 2 seq 5 permit 192.168.1.44/32
      
      route-map 1 permit 10                            (对于192.168.1.4 的weight设置为100)
           match ip address prefix-list 1
            set weight 100
           route-map 1 permit 20

          route-map 2 permit 10                               (对于192.168.1.44 的weight设置为100)
            match ip address prefix-list 2
            set weight 100
          route-map 2 permit 20
      
     neighbor 192.168.12.2 route-map 1 in     (route-map 1应用到R1-->R2l链路上)
     neighbor 192.168.13.3 route-map 2 in   (route-map 1应用到R1-->R23链路上)

   
     show ip bgp 看一下 :

  
对于来自从R2-->R1链路上来的192.168.1.4 的weight设置为100 192.168.1.44 默认为0(对于自己直连的路由weight设置为32768,为防止产生环路,外部来的设置为0),另一端同理,这样就需求了。

ping 一下:


OK!  

traceroute 验证一下:



192.168.1.4 走R2,192.168.1.44 走R3,其余走该走的!

试验完成

------------------------------------------------------------------------------------------------------------------------------------------------------

在客户只有一台路由器的情况下,weight的功能很给力,但是对于下图:



对与客户AS-123 来说,weight实现Out-Traffic是不是就很不给力了,所以对于像上图的情况,就要请Loc prf 出山了

对于Loc prf 的实验   敬请期待吧~~~~~~
点击进入下载-BGP_Weight.rar
本帖摘自http://www.netconfed.com
武汉引航思科培训中心,CCIE通过人数位居华中地区首位!
咨询QQ:1092858161
电  话:4006-5566-56   027-87597437
网  址:www.enhan.com.cn

地  址:武汉市洪山区鲁磨路207号洪山科技创业大厦5F



发表于 2012-1-7 14:57:40 | 显示全部楼层
影响自己的路由如何出的BGP的属性有两种:AS-path和MED(Multi-Exit-Disciminate    多出口识别)
   
沙发 2012-1-7 14:57:40 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-1-8 14:59:50 | 显示全部楼层
板凳 2012-1-8 14:59:50 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-3-14 12:17:05 | 显示全部楼层
讲解很详细~
地板 2012-3-14 12:17:05 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-3-16 17:13:47 | 显示全部楼层
貌似很牛逼呀,学习学习!
5# 2012-3-16 17:13:47 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-4-27 13:28:22 | 显示全部楼层
6# 2012-4-27 13:28:22 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2012-6-27 17:53:37 | 显示全部楼层
图片挂了
7# 2012-6-27 17:53:37 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2013-2-22 06:11:01 | 显示全部楼层
好贴,绝对要支持下!!~~
8# 2013-2-22 06:11:01 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-8 20:01 , Processed in 0.112303 second(s), 21 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表