CISCO路由器配置前缀列表解疑


在BGP路由选择协议中 , 可以对BGP路由选择更新进行过滤 , 要完成这个工作要用到前缀列表 。
一、前缀列表的特点:
(1)、可以增量修改 , 我们知道对于普通访问控制列表 , 我们不能删除该列表中的某个条目 , 假如想删除列表中的某个条目只能将该访问列表全部删除 , 而前缀列表中 , 一个条目可以单独地删除或添加 。
(2)、前缀列表在Cisco IOS 12.0及其以后的版本中可以使用 。
(3)、在大型列表的加载和路由查找方面比访问控制列表有显著的性能改进 。
(4)、前缀列表用于BGP路由 。
二、前缀列表的命令描述
(1)、“ip prefix-list list-name [seq seq-value] {denypermit} network/len [ge ge-value] [le le-value]
list name 代表被创建的前缀列表名(注重该列表名是区分大小写的)
seq-value 代表前缀列表语名的32bit序号 , 用于确定过滤语句被处理的次序 。缺省序号以5递增(5 , 10 , 15等等) 。
denypermit 代表当发现一个匹配条目时所要采取的行动
network/len 代表要进行匹配的前缀和前缀长度 。Network是32位的地址 , 长度是一个十进制的数 。
ge-value 代表比“network/len”更具体的前缀 , 要进行匹配的前缀长度的范围 。假如只规定了“ge”属性 , 该范围被认为是从“ge-value”到32 。
le-vlaue 代表比“network/len”更具体的前缀 , 要进行匹配的前缀长度的范围 。假如只规定了“le”属性 , 该范围被认为是从“le”到“le-value” 。
(2)、“neighbor {ip-addresspeer-group-name} prefix-list prefix-listname {inout}”
ip-address 代表要为之进行路由过滤的BGP邻居的IP地址 。
peer-group-name 代表BGP对等体组的名称 。
prefix-listname 代表要被用来过滤路由的前缀列表的名称 。
in 说明前缀列表要被应用在来自邻居的入路由通告 。
out 说明前缀列表要被应用在发送给邻居的外出的路由通告 。
在“ip prefix-list”命令中“ge”和“le”任选项的使用可能令人迷惑 , 理解起来比较难 , 下面我们做了一个测试 , 以便更好的了解这些选项的含义 。
网络拓朴描述如下:
路由器A属于AS65000 , 路由器B与路由器C是路由器A的邻居 , 路由器A从路由器B学到了 , 172.16.10.0/24, 172.16.11.0这两条路由 , 路由器C接路由器A的端口地址是:10.1.1.1
在这个测试中使用了3台路由器:路由器B , 路由器A和路由器C , 路由器C是路由器A的EBGP邻居 , 路由器C的接口地址为10.1.1.1 , 如上所示 。
假设配置前缀列表之前 , 路由器A学到了下面的路由(从路由器B那里学来的):
172.16.0.0 subnetted:
172.16.10.0/24
172.16.11.0/24
我们测试了如下5种情况:
第一种情况、在这种情况下 , 对路由器A做了如下配置:
router bgp 65000
aggregate-address 171.16.0.0 255.255.0.0
neighbor 10.1.1.1 prefix-list tenonly out
in prefix-list tenonly permit 172.16.10.0/8 le 24
当用“show run”命令查看路由器的配置时 , 我们将看到路由器A自动地将这个配置的最后一行改为下面这样:
ip prefix-fix tenonly permit 172.0.0.0/8 le 24
这时路由器C学到了三个路由器 , 即:
172.16.0.0/16
172.16.10.0/24
172.16.11.0/24
下面就祥细的说明一下路由器C为什么会学到这三条路由:
因为我们在路由器A中用aggregate创建了一条聚合路由器172.16.0.0/16 ,
而且在使用这个命令的时候没有加参数summary-only所以 , 路由器A的EBGP邻居 , 即路由器C有可能学到三条路由 , 即聚合路由172.16.0.0/16 , 具体路由172.16.10.0/24,
具体路由172.16.11.0/24 。

推荐阅读