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の違い】
項目 access-list ip access-list
プロトコル IPv4、IPX/SPX、AppleTalk等 IPv4
定義 番号 番号、又は名前
エントリの編集 不可 可能

 つまり、ip access-listコマンドはIP専用ですが、定義に名前が使え、エントリの編集も出来ます。

関連ページ

・設定編「パケットフィルタリングの設定

 Catalystでパケットフィルタリングを設定する方法や確認方法について説明しています。

・設定編「QoSの設定

 CatalystでQoSを設定する方法や確認方法について説明しています。

  • このエントリーをはてなブックマークに追加