ACL应用于Filter Policy
关于Filter Policy
Filter-policy也叫过滤器,通过与ACL、IP地址前缀列表或路由策略结合使用,用于接收或发布路由时过滤路由信息。
以OSPF为例,如下图,RTA上有10.1.1.0/24、10.1.2.0/24、10.1.3.0/24三个网段路由,RTB不想把从RTA接收的路由这三个网段路由中的前2个发送给RTC。
[RTB] acl 2000 [RTB-acl2000] rule 5 deny source 10.1.1.0 0.0.0.255 [RTB-acl2000] rule 10 deny source 10.1.2.0 0.0.0.255 [RTB-acl2000] rule 15 permit source any [RTB] ospf 100 [RTB-ospf-100] filter-policy acl 2000 export
Filter-policy只作用于向邻居发送路由信息,或从邻居接收路由信息时的路由过滤,对单台设备上一种路由协议引入到另一种路由协议的情况无效。如果使一种路由协议引入到另一种协议中,使用import-route命令。
Filter Policy引用ACL时的处理
ACL匹配结果 |
Filter-policy的处理 |
---|---|
命中permit规则 |
引入/发布这条路由 |
命中deny规则 |
不引入/不发布这条路由 |
没有命中任何规则(引用的ACL存在规则) |
默认不引入/不发布此条路由 |
引用的ACL不存在 |
引入/发布所有路由 |
引用的ACL存在但没有配置任何规则 |
所有涉及的路由不被引入/不发布 |
如果对Filter-policy应用不支持的过滤选项
Filter-policy目前只支持基本ACL(rule ID范围2000~2999),且只支持2种匹配选项:source-address和time-range,不支持其他选项(目的IP地址,VPN-instance等)。
如果这些不支持的过滤选项应用到Filter-policy中,则该选项的匹配结果默认为“permit”。
例1
如下配置结果是:只有10.1.0.0/24这条静态路由可以被发布给BGP对等体。
acl number 2000 rule 5 permit source 10.1.0.0 0.0.0.255 # bgp 100 ipv4-family unicast filter-policy acl 2000 export #
例2
如下配置结果是:所有前缀是10.1.0.0/24的路由都禁止发布给所有BGP VPNv4邻居,无论这些路由属于哪个L3VPN。过滤选项“vpn-instance vpnb”不起作用,相当于没有配置。
acl number 2000 rule 5 deny source 10.1.0.0 0.0.0.255 vpn-instance vpnb rule 10 permit # route-policy policy1 permit node 10 if-match acl 2000 # bgp 100 ipv4-family vpnv4 filter-policy 2000 export #
Filter-policy中,什么情况算“ACL匹配成功”
路由前缀和规则中定义的源地址范围做AND运算,结果落在源地址范围之内的则匹配成功。
例如,Filter-policy引用基本ACL规则:
acl number 2000 rule 1 permit source 10.1.1.0 0.0.0.255 rule 99 deny any
上述配置,源地址范围是IP地址段10.1.1.0/24,对于10.1.1.0/24、10.1.1.0/25和10.1.1.0/30,均可匹配成功,但10.1.1.0/16则匹配不成功。