IP前缀列表,所匹配的对象是IP地址前缀,也就是路由条目。
一个路由条目由目的网络地址(也被称为IP前缀)及掩码长度(也被称为前缀长度)共同标识。
使用ACL从一批路由中筛选出感兴趣的路由时,是无法指定被匹配对象的目的网络掩码长度的,但是IP前缀列表可以做到,它除了能够指定被匹配对象的目的网络地址,还能指定目的网络掩码长度,从而实现对路由的精确匹配。
IP前缀列表可以包含一条或多条语句,每条语句都使用一个十进制的序号(Index)进行标识。
ip ip-prefix XA-LAN-1 index 5 permit 10.180.108.0 26
ip ip-prefix XA-LAN-1 index 10 permit 10.180.108.64 26
ip ip-prefix XA-LAN-1 index 15 permit 10.180.108.128 26
ip ip-prefix XA-LAN-1 index 20 permit 10.180.108.192 26
上面四条语句,就是给XA-LAN-1的前缀列表中加入四条语句,分别匹配10.180.108.0/26、10.180.108.64/26、10.180.108.128/26、10.180.108.192/26的路由条目
当一个IP前缀列表开始进行路由匹配时,将从序号最小的语句开始依次匹配,如果路由不满足该语句中的条件,则继续匹配下一个语句。只要满足当前语句,则不再继续匹配后续的局域,被当前语句匹配住的路由,将根据该语句所定义的匹配模式(permit或deny)判断是否被允许通过,permit为允许,deny为拒绝。
另外,在IP前缀列表的末尾隐含着一条拒绝所有的语句,因此一个对象若不满足任何一个语句,则该对象被视为不被该IP前缀列表允许通过。
IP前缀列表是一个重要的路由工具,能够作为路由过滤器被应用于各种场景,例如可以被Route-Policy调用,或者Filter-Policy调用等等,另外,也在BGP路由协议中被直接用于路由过滤。
如图,处于AS100的R1在BGP中发布了四条路由,缺省情况下,R2及R3都将学习到这四条BGP路由。现在要求R2将BGP路由通告给R3时,过滤掉172.16.3.0/24及172.16.4.0/24这两条路由,而放行其他路由。
可以在R2上配置:
ip ip-prefix a deny 172.16.3.0 24
ip ip-prefix a deny 172.16.4.0 24
ip ip-prefix a permit 172.16.1.0 24
ip ip-prefix a permit 172.16.2.0 24bgp 200
router-id 2.2.2.2
peer 10.1.12.1 as-number 100
peer 10.1.23.3 as-number 300
peer 10.1.23.3 ip-prefix a export