這種ACL是基于lock-and-key的,動態acl平時是不生效的,只用當條件觸發時才生效。例如;
在某臺路由器上我進行了如下配置:
username netdigedu password 123
username netdigedu autocommand access-enable host time 5
line vty 0 4
login local
同時配置一個動態ACL:
access-list 100 permit tcp 192.168.1.1 0.0.0.0 192.168.1.2 0.0.0.0 eq telnet
access-list 101 dynamic abc timeout 60 permit icmp host 5.5.123.1 host 5.5.12.3
int e0/0
ip access-group 100 in
exit
在配置完成以后,我們在路由器1上ping 192.168.1.2 得到的結果是timeout。
當我們從路由器1上telnet到路由器2上以后,發現以下提示
[Connection to 192.168.1.2 closed by foreign host]
當我們看到這個提示以后,我們在路由器1上去ping路由器2的時候,我們發現可以ping通了。
line vty 0 4
autocommand access-enable host timeout 5 "設置觸發激活動態ACL
也就是說,當192.168.1.1 telnet到 192.168.1.2 并通過驗證的話,則放置在e0/0接口上的動態ACL生效,這時192.168.1.可以ping通192.168.1.2。
關于兩個timeout,access-list里的timeout是該條目的絕對超時時間,也就是該條目只能存在60分鐘,autocommand中的timeout是空閑超時時間,也就說如果2分鐘內如果沒有匹配該條目的流量出現,則條目失效。默認值忘了,謝謝!
關于host參數我說一下,加上host參數的話,假設動態acl是這樣寫的;
access-list 101 dynamic abc timeout 60 permit icmp 192.168.1.0 0.0.0.255 host 192.168.1.2
那么最終生成的條目是permit icmp 5.5.123.1 0.0.0.0 host 5.5.12.3,也就是只為激活該條目的單個主機生成動態條目。不加host參數會為整個網段生成允許條目。
在這個例子里我做的實驗的show ip acce的結果如下
r2#show ip acce
Extended IP access list 100
10 permit tcp host 192.168.1.1 host 192.168.1.2 eq telnet (807 matches)
20 Dynamic abc permit icmp host 192.168.1.1 host 192.168.1.2
permit icmp host 192.168.1.1 host 192.168.1.2
我們發現,路由器自動創建了一個動態的訪問控制列表的條目。
上面那個完整的例子里,加不加host都一樣,因為動態ACL本身是就是host的。
注意事項:
1、autocommand 整個命令必須打全!用?也看不到!而且打錯了不提示!
2、在每個訪問控制列表中只能創建一個動態的訪問控制列表