交换机在江湖】路由策略专题-第5期-BGP路由策略(上)

交换机在江湖 官方号 2016-11-28 09:13:44 最新回复:2019-07-04 21:38:28

 8

第5期 BGP路由策略(上)

在前几期的路由策略专题中,我们介绍路由策略的时候,大多是用某种IGP协议进行举例的。实际上,对于BGP路由的控制是路由策略的最大的用武之地,因为我们知道,BGP路由最大的特点就是灵活可控,这主要得益于BGP单独提供了不少工具用于配合执行路由策略。对BGP路由合理使用路由策略,可以做到对路由的精准控制,这也是很多网络工程师追求的一个目标。本期及下期内容内容,我们将会用较大的篇幅讨论BGP路由策略,希望能让大家有所收获。

1      ip-prefix在BGP中的应用

在BGP中,ip-prefix除了可以配合filter-policy或者route-policy使用以外,还可以被peer命令直接调用,这也是BGP不同于其他路由协议的地方。通过peer命令调用的时候,仅对这一个对等体生效,因此BGP对路由的控制能做到更加精准。我们看下面这个举例。

bgp路由汇聚转发 bgp路由发布策略_属性值

图1 ip-prefix在BGP中的应用

需求描述

如图1所示,LSW1、LSW2、LSW3三个交换机分别属于不同的AS,他们之间维持EBGP邻居关系,在LSW1上通过BGP发布两条路由。现在LSW3上由于某种业务需求,要求禁止10.1.2.0/24这条路由,允许其他的路由。

配置方法

上述需求可以在LSW3的BGP进程中,通过peer命令调用ip-prefix进行过滤。

LSW3上的关键配置如下:

#

ip ip-prefix huawei index 10 deny 10.1.2.0 24      //定义ip-prefix,禁止目标路由

ip ip-prefix huawei index 20 permit 0.0.0.0 0 less-equal 32   //允许其他所有路由

#

bgp 300

 router-id 3.3.3.3

 peer 192.168.23.1 as-number 200

 #

 ipv4-family unicast

  undo synchronization

  peer 192.168.23.1 enable

  peer 192.168.23.1 ip-prefix huawei import   //在import方向关联ip-prefix。

#

当然,也可以在LSW2的export方向关联ip-prefix进行路由过滤,效果是一样的,大家可以自行试一下,这里不再赘述。

结果验证

完成上述配置后,查看LSW3的BGP路由表,可以看到,只有10.1.1.0/24这条路由,10.1.2.0/24已经被过滤掉。

[LSW3] display bgp routing-table 

 

 BGP Local router ID is 3.3.3.3

 Status codes: * - valid, > - best, d - damped,

               h - history,  i - internal, s - suppressed, S - Stale

               Origin : i - IGP, e - EGP, ? - incomplete

 

 

 Total Number of Routes: 1

      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 

 *>   10.1.1.0/24        192.168.23.1                          0      200 100i

2      filter-policy在BGP中的应用

filter-policy这个过滤工具我们前面曾经介绍过,我们知道filter-policy应用在距离矢量路由协议和链路状态路由协议的时候,过滤规则是不一样的,BGP属于一种距离矢量路由协议,具体过滤规则请参见路由策略专题第4期。

filter-policy在BGP中有两种应用方式:

l  在BGP视图下对全局应用,对所有对等体生效。

l  通过peer命令应用,仅对这一个对等体生效。

相对于其他路由协议,BGP可以针对某个对等体单独应用filter-policy,这样也保证了BGP对路由的控制更加灵活、精确。下面我们来看一个具体的举例。

bgp路由汇聚转发 bgp路由发布策略_属性值

图2 filter-policy在BGP中的应用

需求描述

如图2所示,LSW1、LSW2、LSW3三个交换机分别属于不同的AS,他们之间维持EBGP邻居关系,在LSW1上通过BGP发布两条路由。现在LSW3上由于某种业务需求,要求禁止10.1.2.0/24这条路由,允许其他的路由。

配置方法

l  方法一:在BGP视图下对全局应用,对所有对等体生效。

LSW3的关键配置如下:

#

acl number 2001              //定义ACL,用于匹配目标路由

 rule 5 deny source 10.1.2.0 0      //拒绝10.1.2.0这条路由

 rule 10 permit source  any          //允许所有

#

bgp 300

 router-id 3.3.3.3

 peer 192.168.23.1 as-number 200

 #

 ipv4-family unicast

  undo synchronization

filter-policy 2001 import  //对所有对等体使用filter-policy过滤路由

  peer 192.168.23.1 enable

#

l  方法二:通过peer命令应用,仅对这一个对等体生效。

LSW3的关键配置如下:

#

acl number 2001              //定义ACL,用于匹配目标路由

 rule 5 deny source 10.1.2.0 0      //拒绝10.1.2.0这条路由

 rule 10 permit source  any          //允许所有

#

bgp 300

 router-id 3.3.3.3

 peer 192.168.23.1 as-number 200

 #

 ipv4-family unicast

  undo synchronization

  peer 192.168.23.1 enable

  peer 192.168.23.1 filter-policy 2001 import  //对单个对等体使用filter-policy

#

3      route-policy在BGP中的应用

route-policy在前面我们也详细介绍过了,在BGP中,route-policy同样是一个非常重要的工具,可以用来设置路由的属性,对路由进行过滤等。

我们再通过一个举例来看一下在BGP中调用route-policy的方法。

bgp路由汇聚转发 bgp路由发布策略_属性值_03

图3 route-policy在BGP中的应用

需求描述

如图2所示,LSW1和LSW2两个交换机分别属于不同的AS,他们之间维持EBGP邻居关系,在LSW1上通过BGP发布两条路由。现在由于某种业务需求,需要对LSW1发布的两条路由分别设置不通的团体属性值,10.1.1.0/24这条路由设置团体属性值为100:1,10.1.2.0/24这条路由设置团体属性值为100:2。

配置方法

l  方法一:通过network命令调用route-policy。

这种配置方法是在通过network命令发布路由的时候直接调用route-policy,设置相应的团体属性值以后再发布给对等体。

LSW1的关键配置如下:

#

ip ip-prefix 1 index 10 permit 10.1.1.0 24   //定义前缀列表,匹配目标路由

ip ip-prefix 2 index 10 permit 10.1.2.0 24

#

route-policy huawei permit node 10   //为不同的路由设置不同的团体属性值

 if-match ip-prefix 1

 apply community 100:1

#

route-policy huawei permit node 20

 if-match ip-prefix 2

 apply community 100:2

#

route-policy huawei permit node 30    //允许剩余所有路由

#

bgp 100

 router-id 1.1.1.1

 peer 192.168.12.2 as-number 200

 #

 ipv4-family unicast

  undo synchronization

  network 10.1.1.0 255.255.255.0 route-policy huawei

  network 10.1.2.0 255.255.255.0 route-policy huawei

  peer 192.168.12.2 enable

  peer 192.168.12.2 advertise-community 

#

l  方法二:通过peer命令调用route-policy。

这种配置方法,在通过network命令发布路由的时候不使用route-policy,但是通过peer命令针对对等体使用route-policy,这样路由在发布之前先通过route-policy的过滤,通过并设置相应的团体属性值以后再发布给对等体。

LSW1的关键配置如下:

#

ip ip-prefix 1 index 10 permit 10.1.1.0 24   //定义前缀列表,匹配目标路由

ip ip-prefix 2 index 10 permit 10.1.2.0 24

#

route-policy huawei permit node 10   //为不同的路由设置不同的团体属性值

 if-match ip-prefix 1

 apply community 100:1

#

route-policy huawei permit node 20

 if-match ip-prefix 2

 apply community 100:2

#

route-policy huawei permit node 30    //允许剩余所有路由

#

bgp 100

 router-id 1.1.1.1

 peer 192.168.12.2 as-number 200

 #

 ipv4-family unicast

  undo synchronization

  network 10.1.1.0 255.255.255.0

  network 10.1.2.0 255.255.255.0

  peer 192.168.12.2 enable

  peer 192.168.12.2 route-policy huawei export

  peer 192.168.12.2 advertise-community

#

结果验证

上述两种配置方法虽然不一样,但是对于这个场景,都可以实现10.1.1.0/24这条路由设置团体属性值为100:1,10.1.2.0/24这条路由设置团体属性值为100:2。完成配置后,在LSW2上查看一下BGP路由表,可以看到已实现上述需求。

[LSW2] display bgp routing-table community  

 

 BGP Local router ID is 2.2.2.2

 Status codes: * - valid, > - best, d - damped,

               h - history,  i - internal, s - suppressed, S - Stale

               Origin : i - IGP, e - EGP, ? - incomplete

 

 

 Total Number of Routes: 2

      Network            NextHop        MED        LocPrf    PrefVal Community

 

 *>   10.1.1.0/24        192.168.12.1    0                     0      <100:1>

 *>   10.1.2.0/24        192.168.12.1    0                     0      <100:2>

相对于其他路由协议,BGP中应用route-policy的命令会更多一点,更具体一点。常见的调用route-policy的命令有下面这些:

l  network

l  peer

l  import-route

l  dampening

上面给大家举例看了一下network和peer命令调用route-policy的方法,其他的调用命令我们不再一一举例。

对于BGP路由,更重要的是通过BGP的路由属性对路由进行控制,BGP具有丰富的路由属性可供使用,常用的有AS_Path过滤器和团体属性过滤器,这个我们将会在下一期路由策略专题中详细介绍,请大家持续关注。