一.前缀列表其实是访问列表的一个升级版本,主要是为了解决访问控制列表的子网难以准确的匹配,造成的难以准确地定位要控制的数据包。和其修改起来的非常的麻烦。但是prefix-list一般不用于对数据流的过滤,而用于对其他高级列表和bgp的支持。
 
二.匹配原则:(其本质上和acl的是否匹配原则的相似)
1.     从序列号较小的开始匹配到序列号比较大的。如果匹配则进行下一步的处理,
2.     若不匹配这丢弃。因此最精确的条件应该放到前面。
3.     因为prefix-list也有一条默认的deny any,所以若没有符合条件的prefix-list语句,则直接丢弃。
4.     其网段的匹配有点特殊,因为下面会加以解释所以在这里就不做解释。
 
三.前缀列表的配置
Routeconfig#ip prefix-list{list-name|list-number}[seq seq-value]{deny|permit}network/length[eg ge-value][le le-value]
1.list-name|list-number
前缀列表的名字或者前缀列表的表号
2. seq seq-value(可选)
前缀列表的序列号,若不加序列号则默认序列号为5倍数,而且序列号会以5的倍数递增,即第一个为5接下来以5的倍数递增。
3. deny|permit
允许或者拒绝,默认情况下有一deny any
4. network/length[eg ge-value](可选),[le le-value](可选)
15.5.0.0/A ge B le C
(make sure:len < ge-value <= le-value)
            A      B           C
记得清路由表clear ip route
例子1
如果A/B/C
15.5.0.0/16 ge 20 le 30
表示15.5.*.*(16位相同
而且满足路由掩码长度是大于等于/20,小于等于/30的所有路由
 
例子2
如果只有A/B,没有C
15.5.0.0/16 ge 20 (le 32)默认的
表示:15.5.*.*16位相同,而且满足路由掩码长度是大于等于/20,小于等于/32的所有路由
 
例子3
如果只有A/C
15.5.0.0/16 (ge 16) le 30
表示:15.5.*.*16位相同,而且满足路由掩码长度大于等于16,小于等于30的所有路由
 
例子4
如果只有A
15.5.0.0/16 (ge 16)(le 16)
表示:15.5.*.*相同,满足路由掩码长度是16位的路由
 
例子5
0.0.0.0/0 le 32=any
 
例子6
0.0.0.0/0 =默认路由0.0.0.0
 
 
四.前缀列表的修改
 1.要删除整个前缀列表,可用命令no ip prefix-list list-name
2.若要删除相应条目的前缀列表则可用no ip prefix-list list-name seq seq-value
3.no ip prefix-list sequence-number此条命令书本上说可以用来关闭自动编号功能,但是本人试过并不能达到这个目的)
4,Clear ip prefix-list
重置前缀列表命中的次数。
五.前缀列表的查看
1.show ip prefix-list[detail|summary]
显示所有的前缀了表,指定关键字detail可以输出完整的prefix-list信息。
2.show ip prefix-list prefix list-name
只显示相应名称的前缀列表。
3.show ip prefix-list prefix-list-name [seq number]
显示相应名称的相应序列号的前缀列表。
     show ip prefix-list prefix-list-name [network/length]
显示前缀列表中完全符合指定网络和长度或更具体的所有条目
6.show ip prefix-list prefix-list-name [network/length] first-match 显示前缀列表中完全符合指定网络和长度的路由条目。