利用序列号修改思科IOS的ACL
在“过去”,你在一个访问控制列表中唯一可以添加一条新条目的位置就是它的底部。在访问控制列表的指定位置添加条目的是不可能实现的工作。如果你想在一个已经存在的访问控制列表的指定位置添加条目,就必须将其所有内容复制到记事本中,进行修改,并删除现有的访问控制列表,将新修改的作为新列表,进行重建和再编译。
通过引入序列号,思科改变了这一切。该功能是从网络操作系统12.2(14)版本开始提供的。通过使用序列号,你可以在希望的位置添加条目,也可以在需要删除的位置进行删除,并对列表进行重新排列。这项新功能让访问控制列表的管理变得非常方便。
你们中的很多人应该已经非常熟悉访问控制列表中序列号的编辑了。如果不了解这样的操作的话,可以看看下面提供的这个例子。
让我们看看这样的操作是多么的简单。在这个例子中,我们将打开一个现有的访问控制列表,在里面添加一条数据,对列表进行重新排列,接着还要删除一条数据。所做的这一切,我们都会在同一个使用界面下进行。在这个例子中,我使用的是一个简单的扩展访问控制列表,但操作也适用于其它类型的访问控制列表。
下面显示的就是show run命令运行后的结果:
interface Ethernet0/0
ip access-group MYTESTACL in
ip access-list extended MYTESTACL
permit ip 10.10.10.0 0.0.0.255 any
permit icmp 10.10.10.0 0.0.0.255 any
deny ip 10.10.20.0 0.0.0.255 any
permit tcp 10.10.30.0 0.0.0.255 host 192.168.87.65 eq www
正如你所看到的,序列号不会显示在路由器运行配置中。只有运行show access-list查看访问列表显示命令才能显示输入的序列号信息。
router#sh access-list
Extended IP access list MYTESTACL
10 permit ip 10.10.10.0 0.0.0.255 any
20 permit icmp 10.10.10.0 0.0.0.255 any
30 deny ip 10.10.20.0 0.0.0.255 any
40 permit tcp 10.10.30.0 0.0.0.255 host 192.168.87.65 eq www
现在在获得了需要的信息后,我们就可以在希望的位置插入一条新数据了,并且不会干扰现有访问控制列表的运行。在这个例子中,我们将在第二十五个序列号的位置插入一条新的许可证声明。请务必注意,在语句的第一部分就是新的序列号。
router#conf t
router(config)#ip access-list extended MYTESTACL
router(config-ext-nacl)#25 permit tcp host 10.10.20.5 host 192.168.87.65 eq www
下面显示的就是调整变化后的结果:
router#sh access-list MYTESTACL
Extended IP access list MYTESTACL
10 permit ip 10.10.10.0 0.0.0.255 any
20 permit icmp 10.10.10.0 0.0.0.255 any
25 permit tcp host 10.10.20.5 host 192.168.87.65 eq www (**note new line)
30 deny ip 10.10.20.0 0.0.0.255 any
40 permit tcp 10.10.30.0 0.0.0.255 host 192.168.87.65 eq www
现在我们对更改后的访问控制列表进行重新编译。访问控制列表将按照我选择的开始序列号以及增加标准对整个内容进行操作。
router(config)#ip access-list resequence MYTESTACL 100 20
下面显示的就是运行show access-list显示访问列表命令后的结果:
router#sh access-lists MYTESTACL
Extended IP access list MYTESTACL
100 permit ip 10.10.10.0 0.0.0.255 any
120 permit icmp 10.10.10.0 0.0.0.255 any
140 permit tcp host 10.10.20.5 host 192.168.87.65 eq www
160 deny ip 10.10.20.0 0.0.0.255 any
180 permit tcp 10.10.30.0 0.0.0.255 host 192.168.87.65 eq www
在例子的最后,我们将删除访问控制列表中的一条信息而不是删除整个列表。
router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
router(config)#ip access-list extended MYTESTACL
router(config-ext-nacl)#no 120 permit icmp 10.10.10.0 0.0.0.255 any
(**note the sequence number)
router#sh access-list MYTESTACL
Extended IP access list MYTESTACL
100 permit ip 10.10.10.0 0.0.0.255 any
140 permit tcp host 10.10.20.5 host 192.168.87.65 eq www
160 deny ip 10.10.20.0 0.0.0.255 any
180 permit tcp 10.10.30.0 0.0.0.255 host 192.168.87.65 eq www
请注意,你不必每次修改访问控制列表后就进行重新排列的操作。