ip access-list
CiscoルータやCatalystのip access-listコマンドについて、構文や使い方を設定例交えて説明しています。
説明
ip access-listコマンドを使うと、アクセスリストの定義が出来ます。

上記のように、172.16.1.0〜255は許可するがその内の172.16.1.4だけは拒否、172.16.2.0〜255は許可するという設定が可能です。
アクセスリストを作成しただけでは通信に影響はありません。通信をフィルタリングする、QoSで利用する、経路を再配布する時等にアクセスリストを指定して使われます。アクセスリストを指定すると、そのアクセスリストで定義した通信にだけフィルタリングやQoS等が適用されます。
構文
ip access-listの構文は以下の通りです。
ip access-list { standard | extended } { 名前 | 番号 }
standardはIP標準アクセスリストを示し、extendedはIP拡張アクセスリストを定義する事を示します。
名前はスペースまたは引用符は使えず、英字から始まる必要があります。
IP標準アクセスリストやIP拡張アクセスリストで使える番号は以下の通りです。
番号 | タイプ |
---|---|
1〜99 | IP標準アクセスリスト |
100〜199 | IP拡張アクセスリスト |
1300〜1999 | IP標準アクセスリスト |
2000〜2699 | IP拡張アクセスリスト |
ip access-listコマンドを実行後、ACLのコンフィギュレーションモードに移り、IPアドレスやプロトコルを指定して許可や拒否の設定が行えます。その時、IP標準アクセスリストでは送信元IPアドレス範囲しか指定出来ませんが、IP拡張アクセスリストでは送信先IPアドレス範囲やプロトコル、サービス等も指定出来ます。
IP標準アクセスリストの設定例
IP標準アクセスリストの設定例は以下の通りです。
Cisco(config)# ip access-list standard test1 Cisco(config-std-nacl)# permit 172.16.1.2 Cisco(config-std-nacl)# permit 172.16.1.3 Cisco(config-std-nacl)# exit Cisco(config)# ip access-list standard test2 Cisco(config-std-nacl)# permit 172.16.2.2 Cisco(config-std-nacl)# permit 172.16.2.3 Cisco(config-std-nacl)# exit
アクセスリストのエントリは先に記述したもの程優先度が高くなります。又、一番最後には何も設定していなくても全てを拒否する暗黙のdenyが自動的に追加されています。
このため、通信が発生した際は上から順番に判断され、マッチした処理がされます。最後までマッチしなかった場合は暗黙のdenyにより拒否されます。

アクセスリストtest1をip access-groupでインターフェースに適用すると172.16.1.2と172.16.1.3からの通信を許可し、その他は遮断するパケットフィルタリングが有効になります。
アクセスリストtest2をclass-mapのクラス分けに利用してpolicy-mapでポリシーを作成し、service-policyでインターフェースに適用すると、172.16.2.2と172.16.2.3だけに有効となるQoSを作成出来ます。
上記は一部のアドレスからの通信だけ許可する設定例でしたが、以下のように定義すると一部のアドレスからの通信だけ拒否出来ます。
Cisco(config)# ip access-list standard 10 Cisco(config-std-nacl)# deny 172.16.1.4 Cisco(config-std-nacl)# permit any Cisco(config-std-nacl)# exit
3行目のanyが全てのアドレスを示し、それをpermitで許可しているため、2行目で定義した172.16.1.4からの通信だけ拒否します。
IPアドレス部分の指定方法は「access-list」をご参照下さい。
IP拡張アクセスリストの設定例
IP拡張アクセスリストの設定例は以下の通りです。
Cisco(config)# ip access-list extended test1 Cisco(config-ext-nacl)# deny ip host 172.16.1.2 172.16.2.0 0.0.0.255 Cisco(config-ext-nacl)# permit ip any any Cisco(config-ext-nacl)# exit
IP標準アクセスリストと違って赤字部分のように送信先も指定出来ます。
サービスを指定する例は以下の通りです。
Cisco(config)# ip access-list extended test2
Cisco(config-ext-nacl)# deny tcp host 172.16.1.2 172.16.2.0 0.0.0.255 eq telnet
Cisco(config-ext-nacl)# permit ip any any
Cisco(config-ext-nacl)# exit
応答パケットのみ透過する時の設定例は以下の通りです。
Cisco(config)# ip access-list extended 100
Cisco(config-ext-nacl)# permit tcp host 172.16.1.2 172.16.2.0 0.0.0.255 established
Cisco(config-ext-nacl)# exit
上記をip access-groupでインターフェースに適用すると送信元172.16.1.2から送信先172.16.2.0/24に対する応答パケットのみ透過します。172.16.1.2から開始した通信は遮断されます。
アクセスリストの編集方法
access-listコマンドでは途中にエントリを追加する等の編集が出来ませんが、ip access-listコマンドを利用するとエントリの編集が可能です。
show access-listsコマンドで表示されるエントリには赤字のようにシーケンス番号が付いています。シーケンス番号は自動で順番に割り振られます。
Cisco# show access-lists Extended IP access list 100 10 deny ip any host 172.16.1.1 20 permit ip any any
例えば、シーケンス番号15でftp通信を遮断する設定を追加したい場合は、以下のようにシーケンス番号を指定して定義します。
Cisco# configure terminal
Cisco(config)# ip access-list extended 100
Cisco(config-ext-nacl)# 15 deny tcp any any eq ftp
Cisco(config-ext-nacl)# exit
Cisco(config)#
又、シーケンス番号10を削除する場合は以下になります。
Cisco(config)# ip access-list extended 100 Cisco(config-ext-nacl)# no 10 Cisco(config-ext-nacl)# exit
上記はIP拡張アクセスリストの例を示しましたが、IP標準アクセスリストでも同様の手順で編集可能です。
利用可能なモード
・グローバルコンフィギュレーションモード
削除
設定を削除するコマンドは以下の通りです。
Cisco(config)# no ip access-list { standard | extended } { 名前 | 番号 } Cisco(config)#
上記により、アクセスリスト自体が削除されます。
補足
access-listコマンドでも同様の設定が出来ますが、ip access-listとの違いは以下の通りです。
項目 | access-list | ip access-list |
---|---|---|
プロトコル | IPv4、IPX/SPX、AppleTalk等 | IPv4 |
定義 | 番号 | 番号、又は名前 |
エントリの編集 | 不可 | 可能 |
つまり、ip access-listコマンドはIP専用ですが、定義に名前が使え、エントリの編集も出来ます。
関連ページ
・設定編「パケットフィルタリングの設定」
Catalystでパケットフィルタリングを設定する方法や確認方法について説明しています。
・設定編「QoSの設定」
CatalystでQoSを設定する方法や確認方法について説明しています。