ネットワークエンジニアとしては基本中の基本なのでしょうが、ACL素人の私がCiscoのACL編集でハマったことをメモします
show access-listの結果にシーケンス番号が表示されている場合、ip access-list extended ACL-Noコマンドを利用する事で、希望する位置にACLを挿入することができます。しかし、挿入時にRemarkの位置は一切考慮されません。
下記のようなACLが設定されている時に、10.10.10.1のみ10.10.20.0/24への通信を許可したい場合は、1番目のdenyよりも上にACLを追加しないといけません。
ip access-list 100 remark ### deny for 10.10.10.0/24 ###
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.21.0 0.0.0.255
ip access-list 100 permit ip any any
デフォルトでは、各ACLに10ずつインクリでシーケンス番号が振られています。したがって、10未満の値で挿入すれば、1番目のdeny行よりも前にpermitのACLを追加することができます。なお。作業後はresequenceコマンドでシーケンス番号を整列します。
conf t
ip access-list extended 100
1 permit ip host 10.10.10.1 10.10.20.0 0.0.0.255
exit
ip access-list resequence 100 10 10
end
すると、こうなります。作業時にびっくりしました。え、そこに入っちゃうの!?
ip access-list 100 permit ip host 10.10.10.1 10.10.20.0 0.0.0.255
ip access-list 100 remark ### deny for 10.10.10.0/24 ###
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.21.0 0.0.0.255
ip access-list 100 permit ip any any
確かにそうだよなぁ・・・と思いつつも、ぶかっこうなので、ACLを追加したのと同じ方法でremarkをシーケンス番号つきで挿入してみる。
conf t
ip access-list extended 100
1 ?
クエスチョンで以降のコマンドを表示すると、「remark」の文字がない。。。つまり、シーケンス番号を使ってremarkを特定の位置に挿入することはできないわけです。これではremarkが中途半端な位置にあって見にくい。仕方がないので、こうします。
conf t
ip access-list extended 100
no remark ### deny for 10.10.10.0/24 ###
exit
ip access-list 100 remark ### deny for 10.10.10.0/24 ###
end
そのままno ip access-list 100 remark・・・ でやるとACL100そのものが消えそうなので、extendedつきで削除します。その後、remarkをextendedなしで新規追加します。普通に追加すると。自動的に一番下に挿入されますので、上記コマンドの結果は下記の通りになります。
ip access-list 100 permit ip host 10.10.10.1 10.10.20.0
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255
ip access-list 100 deny ip 10.10.10.0 0.0.0.255 10.10.21.0 0.0.0.255
ip access-list 100 permit ip any any
ip access-list 100 remark ### deny for 10.10.10.0/24 ###
ACLの途中にremarkがあるよりは、見やすくなったと思います。ACL全削除からの全入れが許されるのであれば、remarkを最上位に持ってくることが可能ですが、一瞬ACLが外れてフリーダムになってしまうのでなか難しいのかなと思います。何かいい方法はないものか。