BGP过滤器原理和实验(华为设备)

概述:

过滤器,也就是匹配路由条目的工具。目前提供以下五种过滤器供BGP使用:
• 访问控制列表ACL(Access Control List)
• 地址前缀列表(IP-Prefix List)
• AS路径过滤器(AS-Path-Filter)
• 团体属性过滤器(Community-Filter)
• 扩展团体属性过滤器(Extcommunity-Filter)

在路由控制笔记归纳ACL、前缀列表在BGP中的使用;这里主要归纳新增加的三种过滤器:
• AS路径过滤器:
• 团体属性过滤器:
• 拓展团体属性过滤器:

AS路径过滤器 :

概述:
AS路径过滤器是利用BGP路由携带的AS-Path列表对路由进行过滤,在不希望流量从某些AS穿过,可以利用AS路径过滤器对携带这些AS号的路由进行过滤。另外,利用ACL或者地址前缀列表过滤BGP路由,一方面有可能配置比较繁琐(需要定义多个ACL或者前缀列表),另一方面有新的路由加入不好维护,这时也可以使用AS路径过滤器。

AS路径过滤器使用正则表达式来定义匹配规则。正则表达式由元字符和数值两部分组成:

  1. 元字符定义了匹配的规则。
  2. 数值定义了匹配的对象。

下表是特殊字符的具体功能:
在这里插入图片描述
在同一个过滤器编号下,可以定义多条过滤规则(permit或deny)。在匹配过程中,这些规则之间是“或”的关系,即只要路由信息通过其中一项规则,就认为通过由该过滤器编号标识的这组AS路径过滤器,但是没有匹配到的条目默认是进行拒绝。

华为设备上,执行命令ip as-path-filter { as-path-filter-number | as-path-filter-name } [ index index-number ] { permit | deny } regular-expression,配置AS路径过滤器。

实验:
在这里插入图片描述
1.目的:
使用AS-Path-Filter来过来匹配10AS为开始的路由条目,并过滤。

2.步骤:
R1,R2,R3之间建立EBGP邻居关系,通告自己的回环口进入其中,现在R3上可以学到对应的路由条目:
在这里插入图片描述
然后在R3上配置:
[R3]ip as-path-filter gok deny 10$ //匹配以10AS为开始的路由条目
[R3-bgp]peer 10.1.23.2 as-path-filter huawei improt
然后在R3上:发现所以条目都没有了
在这里插入图片描述
没有匹配到的也不会允许通行,所以需要配置一条允许其他的条目通过,在R3上配置:

[R3]ip as-path-filter gok permit ^20 //允许以20为结尾的通过,然后在R3上查看:再次查看到对应的路由条目
在这里插入图片描述

团体属性过滤器:

概述:
BGP的团体属性是用来标识一组具有共同性质的路由。利用团体属性可以人为的对路由进行分类,方便对路由进行管理。

实际应用中,部分AS内路由可能不需要发布到其他的外部AS,而AS外路由需要发布到其他的外部AS,这些路由前缀不同(不便于使用地址前缀列表),可能来自不同AS(不便于使用AS路径过滤器),这时可以在AS边缘给这些AS内路由设置相同的团体属性值,给AS外路由设置另外一个团体属性值,这样就可以利用团体属性值去控制和过滤路由。

实验:
在这里插入图片描述
1.背景介绍:
这里我们要求R3发给R4的少林路由均打上LP属性值100,而发给R4的武当路由均打上LP属性值200。如何通过团体属性来实现这个目的呢?

一般的做法是,我们先要求R1通过路由策略,将发给R3的少林路由打上团队属性100:1。而发给R3的武当路由打上团队属性200:1。然后在R3上进行跟进相应的属性进行LP值的修改,然后发送给R4。

2.具体配置:

R1上:
配置前缀列表:
在这里插入图片描述
配置相应的路由策略:
在这里插入图片描述
配置BGP:
在这里插入图片描述
注意:advertisement-community需要自己手动配置,否则报文中不会带有对应的团体属性

R2上:
配置前缀列表:
在这里插入图片描述
配置路由策略:
在这里插入图片描述
配置BGP:
在这里插入图片描述
R3上:
配置团体属性过滤器,匹配对应的团体属性:
在这里插入图片描述
配置路由策略,对于匹配到的不同团体属性设置优先级:
在这里插入图片描述
配置BGP:
在这里插入图片描述
R4上:
配置BGP:
在这里插入图片描述
可以在R4上查看到对应的条目:可以看到收到了LP值修改了相应的路由条目:
在这里插入图片描述
我们在R3上通过命令display bgp routing-table community 100:1和命令display bgp routing-table community 200:1查看团队属性100:1和200:1对应的BGP路由。可以看到,所有发来的少林路由都被打上了团队属性100:1,而武当路由被打上了200:1。

在这里插入图片描述
在这里插入图片描述
假设上例中,AS1不希望AS2能够访问本AS中的少林网段和武当网段,这时就可以利用No_Export来实现。这时,R2上是有AS1的路由的。我们在R1上修改如下配置:

route-policy R1 permit node 5
if-match ip-prefix shaolin
apply community 100:1 no-export

route-policy R1 permit node 10
if-match ip-prefix wudang
apply community 200:1 no-export

然后我们可以在R2上看到已经没有R1上的路由条目了:
在这里插入图片描述
BGP路由经常数以万计,如果有大量不同但是又非常相似的,团队属性需要实施同样的路由策略(比如:需要对携带团队属性“100:1、200:1、300:1、400:1、500:1…”的路由实施相同的策略),该如何简化配置呢?

参照之前所说,如果需要对携带团队属性“100:1、200:1、300:1、400:1、500:1…”的路由实施相同的策略,我们必须配置多条团队属性过滤器:
ip community-filter 1 permit 100:1
ip community-filter 2 permit 200:1
ip community-filter 3 permit 300:1
ip community-filter 4 permit 400:1
ip community-filter 5 permit 500:1
这样不免非常麻烦,这时我们可以用到高级团队属性过滤器。高级团队属性过滤器作用和普通团队属性过滤器一致,不同点就在于其过滤器的编号为100~199。
高级团队属性过滤器可以使用正则表达式来制定团体,这一点在使用AA:NN格式的团队属性时非常有用。
如上面这个例子,如果我们使用高级团队属性过滤器,则只需要配置一条命令即可:
ip community-filter 101 permit .*:1

相关配置总结:
执行命令ip community-filter,配置团体属性过滤器,并通过router-policy进行相应的调用。华为设备命令如下:

配置标准团体属性过滤器:执行命令ip community-filter basic comm-filter-name [ index index-number ] { permit | deny } [ community-number | aa:nn | internet [ strict-match ] | no-export-subconfed | no-advertise | no-export ] ,或执行命令ip community-filter basic-comm-filter-num [ index index-number ] { permit | deny } [ community-number | aa:nn | internet | no-export-subconfed | no-advertise | no-export ] 。

配置高级团体属性过滤器:执行命令ip community-filter { advanced comm-filter-name | adv-comm-filter-num } [ index index-number ] { permit | deny } regular-expression。

注意区分:
apply community 100 团体名更改为100。
apply community 100 150 团体名更改为100或150,即BGP路由属于两个团体。
apply community 100 150 additive 在原来基础上追加100和150两个团体属性。即BGP路由属于三个团体。
apply community none 删除BGP路由的团体属性。

扩展团体属性过滤器:

BGP的扩展团体属性过滤器类似于团体属性过滤器,主要用于对私网路由的过滤,通过router-policy进行相应的调用。

配置VPN-Target扩展团体属性:

配置基本VPN-Target扩展团体属性过滤器:执行命令ip extcommunity-filter { basic-extcomm-filter-num | basic basic-extcomm-filter-name }[ index index-number ] { deny | permit } { rt { as-number:nn | 4as-number:nn | ipv4-address:nn } } &<1-16>。

配置高级VPN-Target扩展团体属性过滤器:执行命令ip extcommunity-filter { advanced-extcomm-filter-num | advanced advanced-extcomm-filter-name }[ index index-number ] { deny | permit } regular-expression。

例如:
在这里插入图片描述

参考资料:《华为hedex文档》、《交换机在江湖》

猜你喜欢

转载自blog.csdn.net/tushanpeipei/article/details/112794595