配置路由策略时会经常需要对路由进行匹配,我们可以使用ACL和前缀列表进行路由的匹配,但ACL不灵活,绝大时候我们使用前缀列表。下面为本人对前缀列表的理解(主要是定义前缀列表),希望可以供大家借鉴参考。
    定义前缀列表的命令cisco:ip prefix-list ip-prefix-name 序号 { permit | deny } network/ len [ge ge-value| le le-value];华为:ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } network len [ greater-equal greater-equal | less-equal less-equal ] 命令基本一样。命令的基本意思是用network/ len 定义了一个前缀(地址的前面部分),用ge或者le来定义掩码长度。当然ge、le为可选,ge和le所跟的值范围要求在len<=ge_value<=le_value<=32。如果只定义了ge,掩码的范围为:ge_value<=掩码<=32;如果只定义了le,掩码的范围为:len<=掩码<=le_value;如果同时定义了ge和le,掩码的范围为:ge_value<=掩码<=le_value;如果既没有定义ge也没有定义le,掩码长度只能是len,也就是精确匹配network/ len 定义的路由。
    比如:ip prefix-list route_filter permit 192.168.0.0/16 le 20,这句话的意思就是:定义了一个名为route-filter的前缀列表,匹配以192.168开头的,掩码长度在16-20之间(包括16和20)的所有路由。192.168.0.0/16、192.168.128.0/17等等都可以匹配,但192.168.128.0/24的路由不能匹配。
    比如:ip prefix-list route_filter permit 192.168.0.0/16 ge 20 ,这句话的意思就是:定义了一个名为route-filter的前缀列表,匹配以192.168开头的,掩码长度在20-32之间(包括20和32)的所有路由。那么192.168.0.0/16、192.168.128.0/17不能匹配,但192.168.128.0/24的路由能匹配。
    比如:ip prefix-list route_filter permit 0.0.0.0/0 ge 32,可以匹配所有主机路由。
    比如:ip prefix-list route_filter permit 0.0.0.0/0 le 32,可以匹配所有路由。
    比如:ip prefix-list route_filter permit 128.0.0.0/2 ge 17,匹配地址前两位以1和0开头的,掩码大于等于17的路由,即所有B类地址路由。

 

重要结论:ip prefix-list route_filter permit 192.168.0.0/16  ge 18 le 24

192.168.8.0/23 匹配 

也就是发布的路由的网络号前面部必须与前缀列表匹配,子网掩码必须是在18到24之间。