CISCO路由器配置前缀列表解疑在BGP路由选择协议中,可以对BGP路由选择更新进行过滤,要完成这个工作要用到前缀列表。
一、前缀列表的特点: ( 1)、可以增量修改,我们知道对于普通访问控制列表,我们不能删除该列表中的某个条目,如果想删除列表中的某个条目只能将该访问列表全部删除,而前缀列表中,一个条目可以单独地删除或添加。
( 2)、前缀列表在 Cisco IOS 12.0及其以后的版本中可以使用。
( 3)、在大型列表的加载和路由查找方面比访问控制列表有显著的性能改进。
( 4)、前缀列表用于 BGP路由。
二、前缀列表的命令描述
( 1)、 “ip prefix-list list-name [seq seq-value] {deny|permit} network/len [ge ge-value] [le le-value]
list name 代表被创建的前缀列表名(注意该列表名是区分大小写的)
seq-value 代表前缀列表语名的 32bit序号,用于确定过滤语句被处理的次序。缺省序号以 5递增( 5, 10, 15等等)。
deny|permit 代表当发现一个匹配条目时所要采取的行动
network/len 代表要进行匹配的前缀和前缀长度。 Network是 32位的地址,长度是一个十进制的数。
ge-value 代表比 “network/len”更具体的前缀,要进行匹配的前缀长度的范围。如果只规定了 “ge”属性,该范围被认为是从 “ge-value”到 32。
le-vlaue 代表比 “network/len”更具体的前缀,要进行匹配的前缀长度的范围。如果只规定了 “le”属性,该范围被认为是从 “le”到 “le-value”。
( 2)、 “neighbor {ip-address | peer-group-name} prefix-list prefix-listname {in|out}”
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。
在命令 “in prefix-list tenonly permit 172.16.10.0/8 le 24”中, len等于 8, len-value等 24,。前面我们说过对于比 “network/len”更具体的前缀,要加上参数 len-value,如果只规定了 “le”属性,该范围被认为是从 “le”到 “le-value”,这里的 8和 24是长度的概念,即可以精确匹配前 8位,前 9位,前 11位, …….一直到可以精确匹配前 24位。 172.16.0.0/16被认为是精确匹配了前 16位,而 172.16.10.0/24和 172.16.11.0/24则被认为是精确匹配了前 24位,如果是 172.0.0.0/8则被认为是精确匹配了前 8位,即这里的 8至 24可是掩码位的概念,就是说从路由器 C的角度上来说,我可以学到路由器 A的 BGP路由表中的掩码为 /8, /9, /10, /11, /12, /13, /14, /15, /16, /17, /18, /19, /20, /21, /22, /23, /24的路由器,所以在这种情况下路由器 C学到了三条路由即:
172.16.0.0/16
172.16.10.0/24
172.16.11.0/24
第二种情况、在这种情况中,对路由器 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 16
在这里从路由器 C的角度来说,我有可能学到的路由是 172.16.0.0/16 , 172.16.11.0/24, 172.16.10.0/24,但实际我只学到 172.16.0.0/16这一条路由器,原因是, len-value的值已经改为 16,即我只能学到掩码为 /8, /9, /10, /11, /12, /13, /14, /15, /16的路由,在上面的三条路由中,符合条件的只有 172.16.0.0/16,所以路由器 C只学到 172.16.0.0/16这一条路由。
第三种情况、在这个情况中,对路由器 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 ge 17
在这里从路由器 C的角度来说,我有可能学到的路由是 172.16.0.0/16 , 172.16.11.0/24, 172.16.10.0/24,但路由器 C只学到 172.16.11.0/24, 172.16.10.0/24这两条路由,为什么呢,这是因为这里 ge-value 的值为 17,它精确匹配前 17位,前 19位,前 20位,一直可以精确匹配前 32位,即从路由器 C的角度上来看,我能说到路由器 A中的 BGP路由表中的掩码为 /17, /18, /19, /20, /21, /22, /23, /24, /25, /26, /27, /28, /29, /30, /31, /32的路由,所以路由器 C学到了两条路由: 172.16.11.0/24, 172.16.10.0/24。
第四种情况、在这个情况中,对路由器 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 ge 16 le24
在这里从路由器 C的角度来说,我有可能学到的路由是 172.16.0.0/16 , 172.16.11.0/24, 172.16.10.0/24,路由器 C能从路由器 A的 BGP路由表中学到掩码为 /16, /17, /18, /19, /20, /21, /22, /23, /24的路由,以上三条路由都符合条件,所以都被路由器 C学到了。
第五种情况、在这个情况中,对路由器 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 ge 17 le24
在这里从路由器 C的角度来说,我有可能学到的路由是 172.16.0.0/16 , 172.16.11.0/24, 172.16.10.0/24,路由器 C能从路由器 A的 BGP路由表中学到掩码为 /17, /18, /19, /20, /21, /22, /23, /24的路由,以上三条路由中只有 172.16.11.0/24, 172.16.10.0/24符合条件,所以路由器 C学到了 172.16.11.0/24, 172.16.10.0/24这两条路由。
该贴已经同步到 fulltimes的微博 |