名前付きACL(Named ACL)とは

名前付きACLとは、アクセスコントロールを番号ではなく任意の名前で識別できるようにしているACLです。名前付きACLは、以下のようなメリットがあります。

  • わかりやすい
  • 条件ごとの削除、挿入ができる

ACLを番号で作成すると、その内容がわかりづらくなります。設定した本人なら覚えているかもしれませんが、他人が見るとACL番号だけ見てもその内容はわからないでしょう。設定した本人でも時間が経つうちに忘れてしまいます。番号の代わりにACLを名前で作成すると、その設定内容がわかりやすくなります。

また、番号付きACLは特定の条件だけを削除できません。いったんすべての条件を削除して設定をやり直さなければいけません。名前付きACLなら特定の条件だけを削除できます。そして、あとから条件を挿入することもできます。

名前付きACLの設定

名前付きアクセスコントロールリストの設定は、グローバルコンフィグレーションモードで次のコマンドを入力します。

名前付きACLコマンドフォーマット

(config)#ip access-list {standard|extended} <ACL-name>
(config-std|ext-nacl)# [<seq>] {permit|deny} <criteria>

<seq> : シーケンス番号
<ACL-name> : ACL名
<criteria> : ACLの条件

番号付きACLは番号の範囲で標準か拡張かがわかります。それに対して、名前付きACLでは、standardまたはextendedを指定して標準か拡張かを明示的に決めます。

ACLの条件を設定するときに、<seq>でシーケンス番号を設定できます。シーケンス番号は省略可能で、省略すると10単位で自動的に割り当てられます。シーケンス番号を利用して、あとから条件を挿入することができます。

名前付きアクセスコントロールをインタフェースに適用するときには、インタフェースコンフィグレーションモードで以下のコマンドです。

ACL適用コマンドフォーマット

(config-if)#ip access-group <ACL-name> {in|out}

<ACL-name> : 適用するアクセスコントロールリスト名

インタフェースに適用するときには、ACL名を間違えないように注意してください。

名前付きACLの設定例

名前付きACLの設定例を考えます。以下の条件で名前付きACL「Test」を設定します。

  • 送信元IPアドレス168.1.x(x:任意)のIPパケットをpermit
  • 送信元IPアドレス10.10.x(x:任意)のIPパケットをdeny
  • 送信元IPアドレス16.x.x(x:任意)のIPパケットをpermit
ip access-list standard Test
 permit 192.168.1.0 0.0.0.255
 deny 10.10.10.0 0.0.0.255
 permit 172.16.0.0 0.0.255.255

設定したTestの内容をshow access-listコマンドで見ると、次のようになります。

R1#show access-lists
Standard IP access list Test
    10 permit 192.168.1.0, wildcard bits 0.0.0.255
    20 deny   10.10.10.0, wildcard bits 0.0.0.255
    30 permit 172.16.0.0, wildcard bits 0.0.255.255

各行の先頭の「10」「20」「30」はシーケンス番号です。設定するときに省略しているので10単位で自動的にシーケンス番号が割り当てられています。

名前付きACLなら特定の条件だけを削除できます。「deny 10.10.10.0 0.0.0.255」の条件を削除して、show access-listを見ると、次のようになります。

R1(config)#ip access-list standard Test
R1(config-std-nacl)#no deny 10.10.10.0 0.0.0.255
R1(config-std-nacl)#do show access-list
Standard IP access list Test
    10 permit 192.168.1.0, wildcard bits 0.0.0.255
    30 permit 172.16.0.0, wildcard bits 0.0.255.255

削除した条件をあらためて挿入します。シーケンス番号を「10」と「30」の間の数値にして、条件を設定すると、シーケンス番号「10」と「30」の間に挿入されます。

R1(config)#ip access-list standard Test
R1(config-std-nacl)#20 deny 10.10.10.0 0.0.0.255
R1(config-std-nacl)#do show access-list
Standard IP access list Test
    10 permit 192.168.1.0, wildcard bits 0.0.0.255
    20 deny   10.10.10.0, wildcard bits 0.0.0.255
    30 permit 172.16.0.0, wildcard bits 0.0.255.255