ip协议采用何种路由策略实现路由选择_第5期 BGP路由策略(上)

b9312ee0ab99930f8db023d52d9c5d8a.gif 136851ac38605b3c094294d53470d3e7.png

BGP路由策略(上)

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

01

ip-prefix在BGP中的应用

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

4651badbe4653ec222b1179b2eed9ad4.png

图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

02

filter-policy在BGP中的应用

filter-policy这个过滤工具我们前面曾经介绍过,我们知道filter-policy应用在距离矢量路由协议和链路状态路由协议的时候,过滤规则是不一样的,BGP属于一种距离矢量路由协议,具体过滤规则请参见路由策略专题第4期。 filter-policy在BGP中有两种应用方式:
  • 在BGP视图下对全局应用,对所有对等体生效。

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

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

4651badbe4653ec222b1179b2eed9ad4.png

filter-policy在BGP中的应用 需求描述 如图2所示,LSW1、LSW2、LSW3三个交换机分别属于不同的AS,他们之间维持EBGP邻居关系,在LSW1上通过BGP发布两条路由。现在LSW3上由于某种业务需求,要求禁止10.1.2.0/24这条路由,允许其他的路由。 配置方法
  • 方法一:在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 #
  • 方法二:通过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 #

03

route-policy在BGP中的应用

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

01ec36fd50b1a9de7ebfc6287d4723ff.png

图2: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。 配置方法
  • 方法一:通过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  #
  • 方法二:通过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的命令有下面这些:
  • network

  • peer

  • import-route

  • dampening

上面给大家举例看了一下network和peer命令调用route-policy的方法,其他的调用命令我们不再一一举例。 对于BGP路由,更重要的是通过BGP的路由属性对路由进行控制,BGP具有丰富的路由属性可供使用,常用的有AS_Path过滤器和团体属性过滤器,这个我们将会在下一期路由策略专题中详细介绍,请大家持续关注。

THE  END 

往期推荐

只需一文,全面了解Route-Policy

地址前缀列表和ACL有什么区别

10分钟!搞懂filter-policy原理与应用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux内核中实现了多种IP路由协议,包括静态路由、RIP、OSPF、BGP协议。下面简要介绍一下这些协议实现方式: 1. 静态路由:静态路由是通过手动配置路由表项来实现的。可以使用`ip route add`命令来添加路由表项,也可以编辑`/etc/network/interfaces`文件手动配置。静态路由在小型网络中比较常见,但在大型网络中管理成本比较高。 2. RIP:Linux内核中实现了RIP v1和v2协议。RIP协议是基于距离向量的路由协议,每个路由器会定期广播自己的路由表,其他路由器则根据接收到的路由表更新自己的路由表。RIP协议实现可以使用`quagga`软件包,也可以使用内核自带的`net/ipv4/rip.c`代码。 3. OSPF:Linux内核中实现了OSPF v2协议。OSPF协议是基于链状态的路由协议,每个路由器会向相邻路由器发送链状态信息,其他路由器则根据接收到的信息计算出最短径树。OSPF协议实现可以使用`quagga`软件包,也可以使用内核自带的`net/ipv4/ospf.c`代码。 4. BGP:Linux内核中实现BGP v4协议BGP协议是一种自治系统间的路由协议,用于在不同自治系统之间交换路由信息。BGP协议实现可以使用`quagga`软件包,也可以使用内核自带的`net/ipv4/bgp.c`代码。 除了上述协议外,Linux内核还支持一些高级路由功能,如多路由策略路由、源路由等。这些功能可以通过`ip`命令和`netlink`接口进行配置和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值