access-list
CiscoルータやCatalystのaccess-listコマンドについて、構文や使い方を設定例交えて説明しています。
説明
access-listコマンドを使うと、アクセスリストの定義が出来ます。
アクセスリストはどの範囲であれば適用するかを明確にするために用いられます。

上記のように、172.16.1.0〜255は許可するがその内の172.16.1.4だけは拒否、172.16.2.0〜255は許可するという設定が可能です。
アクセスリストを作成しただけでは通信に影響はありません。通信をフィルタリングする、QoSで利用する、経路を再配布する時等にアクセスリスト番号を指定して使われます。アクセスリスト番号を指定すると、その番号で定義した通信にだけフィルタリングやQoS等が適用されます。
構文
アクセスリストにはIP標準アクセスリストとIP拡張アクセスリストがあります。IP標準アクセスリストの構文は以下の通りです。
access-list 番号 { permit | deny } 送信元IPアドレス範囲
IP標準アクセスリストでは送信元IPアドレス範囲しか指定出来ません。
IP拡張アクセスリストの構文は以下の通りです。
access-list 番号 { permit | deny } プロトコル 送信元IPアドレス範囲 送信先IPアドレス範囲 [ サービスやICMPコード等 ] [ established ]
IP拡張アクセスリストでは送信先IPアドレス範囲、プロトコルやサービス等も指定出来ます。それぞれの意味は以下の通りです。
- ・番号
- IP標準アクセスリストやIP拡張アクセスリストで使える番号は以下の通りです。
【アクセスリストの番号とタイプ】 番号 タイプ 1〜99 IP標準アクセスリスト 100〜199 IP拡張アクセスリスト 1300〜1999 IP標準アクセスリスト 2000〜2699 IP拡張アクセスリスト - ・permitとdeny
- permitで許可、denyで拒否を示します。
- ・送信元、又は送信先IPアドレス範囲
- 送信元、又は送信先IPアドレス範囲の指定例は以下の通りです。
【アドレス範囲の設定例】 設定 意味 172.16.1.0 0.0.0.255 172.16.1.までが一致するものを示す host 172.16.1.2 172.16.1.2を示す 172.16.1.2 0.0.0.0 172.16.1.2を示す - 表の一番上のように、172.16.1.0 0.0.0.255の場合は緑色で記載した数字で0の部分が赤字で示したIPアドレスと一致する範囲を対象とします。このため、172.16.1までが一致する172.16.1.0〜172.16.1.255が対象になります。この緑色で示した数字をワイルドカードと言います。
- 表の最後のように172.16.1.2 0.0.0.0と記載しているとワイルドカードが全て0のため、全て一致する必要があり、IPアドレス172.16.1.2だけが対象になります。hostはIPアドレス指定でhost 172.16.1.2と指定すると172.16.1.2 0.0.0.0を指定した場合と同じ意味になります。
- IP標準アクセスリストでIPアドレスだけ指定すると、hostやワイルドカード0.0.0.0を指定したのと同じになります。つまり、hostやワイルドカード0.0.0.0を省略可能です。
- ・プロトコル
- プロトコルはip、tcp、udp、icmp等が指定出来ます。
- ・サービスやICMPコード等
- サービスやICMPコード等では、eq telnetと指定するとtelnetが該当します。eq 23とポート番号で指定も可能です。TCPのサービスを指定する場合は、プロトコルでtcpを指定しておく必要があります。サービスやポート番号の詳細は「ポート番号」をご参照下さい。
- ICMPの場合はecho、echo-reply等が指定出来ます。又、0や3等数字でタイプを指定する事も出来、3 3等タイプとコード両方を指定する事も出来ます。詳細は「ICMP」をご参照下さい。
- ・established
- establishedを指定すると応答パケットのみ透過します。これはTCPの時だけ有効です。
IP標準アクセスリストの設定例
IP標準アクセスリストの設定例は以下の通りです。
Cisco(config)# access-list 1 permit 172.16.1.2 Cisco(config)# access-list 1 permit 172.16.1.3 Cisco(config)# access-list 2 permit 172.16.2.2 Cisco(config)# access-list 2 permit 172.16.2.3 Cisco(config)#
アクセスリストは同じ番号のものを複数設定出来ます。その場合、先に記述したもの程優先度が高くなります。又、一番最後には何も設定していなくても全てを拒否する暗黙のdenyが自動的に追加されています。
このため、通信が発生した際は上から順番に判断され、マッチした処理がされます。最後までマッチしなかった場合は暗黙のdenyにより拒否されます。

アクセスリスト番号1をip access-groupでインターフェースに適用すると172.16.1.2と172.16.1.3からの通信を許可し、その他は遮断するパケットフィルタリングが有効になります。
アクセスリスト番号2をclass-mapのクラス分けに利用してpolicy-mapでポリシーを作成し、service-policyでインターフェースに適用すると、172.16.2.2と172.16.2.3だけに有効となるQoSを作成出来ます。
上記は一部のアドレスからの通信だけ許可する設定例でしたが、以下のように定義すると一部のアドレスからの通信だけ拒否出来ます。
Cisco(config)# access-list 1 deny 172.16.1.4 Cisco(config)# access-list 1 permit any Cisco(config)#
2行目のanyが全てのアドレスを示し、それをpermitで許可しているため、1行目で定義した172.16.1.4からの通信だけ拒否します。
IP拡張アクセスリストの設定例
IP拡張アクセスリストの設定例は以下の通りです。
Cisco(config)# access-list 100 deny ip host 172.16.1.2 172.16.2.0 0.0.0.255 Cisco(config)# access-list 100 permit ip any any Cisco(config)#
IP標準アクセスリストと違って赤字部分のように送信先も指定出来ます。
サービスを指定する例は以下の通りです。
Cisco(config)# access-list 100 deny tcp host 172.16.1.2 172.16.2.0 0.0.0.255 eq telnet
Cisco(config)# access-list 100 permit ip any any
Cisco(config)#
応答パケットのみ透過する時の設定例は以下の通りです。
Cisco(config)# access-list 100 permit tcp host 172.16.1.2 172.16.2.0 0.0.0.255 established
Cisco(config)#
上記をip access-groupでインターフェースに適用すると送信元172.16.1.2から送信先172.16.2.0/24に対する応答パケットのみ透過します。172.16.1.2から開始した通信は遮断されます。
利用可能なモード
・グローバルコンフィギュレーションモード
削除
設定を削除するコマンドは以下の通りです。
Cisco(config)# no access-list 番号 Cisco(config)#
上記により、例えばアクセスリスト番号2に複数行の定義をしていた場合でも全て削除されます。もし、1行だけ削除しようとしてno access-list 2 deny 172.16.1.2等と指定しても全て削除されるため、留意が必要です。
関連ページ
・設定編「パケットフィルタリングの設定」
Catalystでパケットフィルタリングを設定する方法や確認方法について説明しています。
・設定編「QoSの設定」
CatalystでQoSを設定する方法や確認方法について説明しています。