Dynamic ACL
当一台连接了内、外网的路由器上设置内网对外网的访问,如果内网用户想获得访问外网的权限,必须通过认证。路由器最初拒绝所有的内网用户访问外网,如果有内网用户通过了认证,则可以获得访问外网的权限,当内网用户的连接断开时,路由器则恢复当初拒绝所有的访问外网的ACL。要实现上述功能,可以通过dynamic acl来实现
上述的认证方式是内网用户telnet路由器来实现的,如果telnet成功,则说明通过认证。在telnet时需要输入特定的用户名和密码,这个用户名必须要有访问的权限,如果只是输入普通的用户名,则按照正常的telnet对待;要想让一个用户拥有访问权限,需要通过autocommand access-enable或者autocommand access-enable host命令来实现。
Autocommand access-enable:如果一个用户通过认证,所有内网用户均可以访问外网
Autocommand access-enable host:仅限特定通过认证的用户可以访问外网
要定义dynamic acl什么时候恢复到最初配置,可以通过配置超时时间来配置,也可以通过绝对时间来配置。
超时时间:会话多久没有传数据,则断开会话
绝对时间:无论会话有没有数据传输,到了配置的绝对时间范围,就断开会话
Dynamic ACL仅支持扩展ACL
Dynamic ACL最多只能写一条。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

配置:
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
在上述拓扑中,R2R3模拟内网用户,R4模拟外网,R1为连接内、外网的路由器;在R1上配置dynamic acl实现只有当R2R3通过认证时,才可以访问R4,并配置会话超时时间为2分钟。在这里我们配置telnet服务可以不通过认证就可以建立会话,ICMP服务只有在通过认证时才可以建立会话。
1、  R1上配置扩展ACL100,指定telnet服务不需要认证建立,ICMP服务需要通过认证才可以建立,并配置其超时时间为2分钟,将其应用到f0/0接口下
R1(config)#access-list 100 permit tcp any any eq telnet
R1(config)#access-list 100 dynamic dy-acl timeout 2 permit icmp any any
R1(config)#interface f0/0
R1(config-if)#ip access-group 100 in
R1(config-if)#exit
2、  R1上开启telnet服务,因为内网用户要用telnet进行认证;建立本地用户,并赋予用户访问权限
R1(config)#username cisco password cisco
R1(config)#line vty  0 5
R1(config-line)#login local
R1(config-line)#autocommand access-enable
3、  验证效果
因为我们允许telnet服务不需要认证就可以通过,ICMP服务必须需要认证通过才可以建立会话,通过以下输出可以看到效果
R2#telnet 14.1.1.4
Trying 14.1.1.4 ... Open
User Access Verification
Username: cisco
Password:
R4>
R4>
R4>exit
[Connection to 14.1.1.4 closed by foreign host]

 

R2#ping 14.1.1.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.1.1.4, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

 

R2进行认证,认证的方式就是telnet R1路由器,并输入正确的具有访问权限的用户名和密码,认证通过后ICMP流量也可以通过R2#telnet
R2#telnet 10.1.1.1
Trying 10.1.1.1 ... Open
User Access Verification
Username: cisco
Password:
[Connection to 10.1.1.1 closed by foreign host]

 

R2#ping 14.1.1.4
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 14.1.1.4, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/45/64 ms
R2#
这里我们配置的是autocommand access-enable方式,即R2通过认证后,R3同样也可以ping R4路由器。
如果我们配置的是autocommand access-enable host方式,R2通过认证后,只有R2才可以ping R4路由器。

 

认证通过后还可以在R1上查看ACL
R1#sh ip access-lists
Extended IP access list 100
    10 permit tcp any any eq telnet (293 matches)
    20 Dynamic dy-acl permit icmp any any
       permit icmp host 10.1.1.2 any (10 matches)
R1#
可以看到认证通过后,允许ICMP 10.1.1.2访问的条目会出现在ACL

 

当认证的超时时间或者绝对时间到时后,该条目会自动消失           
R1#sh ip access-lists
Extended IP access list 100
    10 permit tcp any any eq telnet (293 matches)
    20 Dynamic dy-acl permit icmp any any
R1#