この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、Cisco NX-OS デバイスの IP アクセス コントロール リスト(ACL)を設定する方法について説明します。
アクセス コントロール リスト(ACL)とは、トラフィックのフィルタリングに使用する順序付きのルール セットのことです。各ルールには、パケットがルールに一致するために満たさなければならない条件のセットが規定されています。デバイスは、ある ACL がパケットに適用されると判断すると、そのすべてのルールの条件にパケットを照合し、テストします。ルールは、そのパケットが許可されるか拒否されるかを決定します。指定されたルールのいずれにも一致しなければ、デバイスはパケットを拒否します。デバイスは、許可されたパケットの処理を続行し、拒否されたパケットはドロップします。
ACL を使用すると、ネットワークおよび特定のホストを、不要なトラフィックや望ましくないトラフィックから保護できます。たとえば、ACL を使用して、厳重にセキュリティ保護されたネットワークからインターネットにハイパー テキスト トランスファ プロトコル(HTTP)トラフィックが流入するのを禁止できます。また、ACL を使用して特定のサイトへの HTTP トラフィックを許可することもできます。その場合は、サイトの IP アドレスが、IP ACL に指定されているかどうかによって判定します。
ACL は、次のいずれかに適用した場合、ポート ACL と見なされます。
ポート ACL をトランク ポートに適用すると、その ACL は、当該トランク ポート上のすべての VLAN 上のトラフィックをフィルタリングします。
デバイスは、パケットを処理する際に、そのパケットの転送パスを決定します。デバイスは、次の順序で ACL を適用します。
アクセス コントロール リスト(ACL)によるネットワーク トラフィックのフィルタリング方法を設定する際に、何を作成、変更、削除するかを決めるのがルールです。ルールは実行コンフィギュレーション内に表示されます。ACL をインターフェイスに適用するか、またはインターフェイスにすでに適用されている ACL 内のルールを変更すると、スーパーバイザ モジュールは実行コンフィギュレーション内のルールから ACL のエントリを作成し、それらの ACL エントリをすべての VEMに送信します。
アクセスリスト コンフィギュレーション モードで ACL でルールを作成するには、permit または deny コマンドを使用します。デバイスは、許可ルール内の基準と一致するトラフィックを許可し、拒否ルール内の基準と一致するトラフィックをブロックします。ルールに一致するためにトラフィックが満たさなければならない基準の設定には、多数のオプションが用意されています。
各ルールには、ルールに一致するトラフィックの送信元と宛先を指定します。指定する送信元および宛先には、特定のホスト、ホストのネットワークまたはグループ、あるいは任意のホストを使用できます。
送信元と宛先の指定方法は、IP ACL と MAC ACL のどちらを設定するかによって異なります。送信元と宛先の指定方法については、『Cisco Nexus 1000V for Hyper-V Command Reference』の該当する permit および deny コマンドを参照してください。
ACL では、プロトコルによってトラフィックを識別できます。一部のプロトコルは名前で指定できます。たとえば、IP ACL では、ICMP を名前で指定できます。
IP ACL では、インターネット プロトコル番号を表す整数でプロトコルを指定できます。たとえば、レイヤ 2 トンネリング プロトコル(L2TP)を指定するには、115 を使用します。
プロトコルはすべて番号で指定できます。MAC ACL では、プロトコルをそのプロトコルの EtherType 番号(16 進数)で指定できます。たとえば、MAC ACL ルールの IP トラフィックの指定に 0x0800 を使用できます。
各タイプの ACL に名前で指定できるプロトコルのリストについては、『Cisco Nexus 1000V for Hyper-V Command Reference』の該当する permit および deny コマンドを参照してください
ACL には暗黙のルールがあります。暗黙のルールとは、実行コンフィギュレーションには出現しないものの、ACL の他のルールが一致しないときにデバイスがトラフィックに適用するルールのことです。ACL のルール単位の統計情報を維持するようにデバイスを設定した場合、暗黙ルールの統計情報はデバイスに維持されません。暗黙のルールによって、トラフィックのレイヤ 2 ヘッダーに指定されているプロトコルに関係なく、不一致トラフィックが確実に拒否されます。
すべての IPv4 ACL には、不一致の IP トラフィックを拒否する次の暗黙のルールがあります。
deny ip any any
すべての MAC ACL には、次の暗黙のルールがあります。
deny any any
追加のオプションを使用してトラフィックを識別できます。これらのオプションは、ACL のタイプによって異なります。次のリストには、ほとんどの追加フィルタリング オプションが含まれていますが、すべてを網羅しているわけではありません。
該当する permit および deny コマンドの使用時に使用可能なフィルタ オプションについては、『Cisco Nexus 1000V for Hyper-V Command Reference』ガイドを参照してください。
デバイスはルールのシーケンス番号をサポートしています。入力するすべてのルールにシーケンス番号が割り当てられます(ユーザによる割り当てまたはデバイスによる自動割り当て)。シーケンス番号によって、次の ACL 設定作業が容易になります。
既存のルールの間に新規のルールを追加する:シーケンス番号を指定することによって、ACL 内での新規ルールの挿入場所を指定します。たとえば、ルール番号 100 と 110 の間に新しいルールを挿入する必要がある場合は、シーケンス番号 105 を新しいルールに割り当てます。
ルールを削除する:シーケンス番号を使用しない場合は、ルールを削除するのに、次のようにルール全体を入力する必要があります。
switch(config-acl)# no permit tcp 10.0.0.0/8 any
このルールに 101 番のシーケンス番号が付いていれば、次コマンドだけでルールを削除できます。
switch(config-acl)# no 101
ルールを移動する:シーケンス番号を使用すれば、同じ ACL 内の異なる場所にルールを移動する必要がある場合に、そのルールのコピーをシーケンス番号で正しい位置に挿入してから、元のルールを削除できます。この方法により、トラフィックを中断せずにルールを移動できます。
シーケンス番号を使用せずにルールを入力すると、デバイスはそのルールを ACL の最後に追加し、そのルールの直前のルールのシーケンス番号よりも 10 大きい番号を割り当てます。たとえば、ACL 内の最後のルールのシーケンス番号が 225 で、シーケンス番号を指定せずにルールを追加した場合、デバイスはその新しいルールにシーケンス番号 235 を割り当てます。
さらに、ACL 内のルールにシーケンス番号を再割り当てすることも可能です。シーケンス番号の再割り当ては、ACL 内に、100、101 のように連続するシーケンス番号のルールがある場合、それらのルールの間に 1 つ以上のルールを挿入する必要があるときに便利です。
設定した各ルールのグローバル統計をデバイスで維持できます。1 つの ACL が複数のインターフェイスに適用される場合、ルール統計には、その ACL が適用されるすべてのインターフェイスと一致する(ヒットする)パケットの合計数が維持されます。
![]() (注) |
インターフェイスレベルの ACL 統計はサポートされていません。 |
設定する ACL ごとに、その ACL の統計情報をデバイスが維持するかどうかを指定できます。これにより、ACL によるトラフィック フィルタリングが必要かどうかに応じて ACL 統計のオン、オフを指定できます。また、ACL 設定のトラブルシューティングにも役立ちます。
デバイスには ACL の暗黙ルールの統計情報は維持されません。たとえば、すべての IPv4 ACL の末尾にある暗黙の deny ip any any ルールと一致するパケットのカウントはデバイスに維持されません。暗黙ルールの統計情報を維持する場合は、暗黙ルールと同じルールを指定した ACL を明示的に設定する必要があります。
ACL は、ポート チャネルではサポートされていません。
パラメータ |
デフォルト |
---|---|
IP ACL |
デフォルトの IP ACL は存在しません。 |
ACL ルール |
すべての ACL に暗黙のルールが適用されます。 |
デバイスに IPv4 ACL を作成し、これにルールを追加できます。
この手順を開始する前に、EXEC モードで CLI にログインする必要があります。
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# ip access-list acl-01 switch(config-acl)# permit ip 192.168.2.0/24 any switch(config-acl)# statistics per-entry switch(config-acl)# show ip access-lists acl-01 IPV4 ACL acl-01 statistics per-entry 10 permit ip 192.168.2.0/24 any switch(config-acl)# copy running-config startup-config
既存の IPv4 ACL に対してルールの追加または削除を行うことができます。既存のルールは変更できません。ルールを変更するには、そのルールを削除してから、変更を加えたルールを再作成します。
既存のルールの間に新しいルールを挿入する必要がある場合で、現在のシーケンス番号の空き状況ではすべてを挿入できないときは、resequence コマンドを使用してシーケンス番号を再割り当てします。
この手順を開始する前に、EXEC モードで CLI にログインする必要があります。
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config-acl)# ip access-list acl-01 switch(config-acl)# permit ip 192.168.2.0/24 any switch(config-acl)# statistics per-entry switch(config-acl)# show ip access-lists acl-01 IPV4 ACL acl-01 statistics per-entry 10 permit ip 192.168.2.0/24 any switch(config-acl)# ip access-list acl-01 switch(config-acl)# no 10 switch(config-acl)# no statistics per-entry switch(config-acl)# show ip access-lists acl-01 IPV4 ACL acl-01 switch(config-acl)# copy running-config startup-config
スイッチから IP ACL を削除する前に、ACL がインターフェイスに適用されているかどうかを確認してください。削除できるのは、現在適用されている ACL だけです。ACL を削除しても、その ACL が適用されていたインターフェイスの設定は影響を受けません。代わりに、スイッチは削除された ACL が空である(暗黙のルールが「deny ip any any」の空の ACL)と見なします。IP ACL が設定されているインターフェイスを探すには、summary キーワードを指定して show ip access-lists コマンドを使用します。
この手順を開始する前に、次のことを確認してください。
switch# configure terminal switch(config)# no ip access-list acl-01 switch(config)# show ip access-lists acl-01 summary switch(config)# copy running-config startup-config
IP ACL 内のルールに付けられたすべてのシーケンス番号を変更できます。
この手順を開始する前に、EXEC モードで CLI にログインする必要があります。
switch# configure terminal Enter configuration commands one command per line. End with CNTL/Z. switch(config)# show ip access-list acl-01 IPV4 ACL acl-01 statistics per-entry 10 permit ip 192.168.2.0/24 any 20 permit ip 192.168.5.0/24 any switch(config)# resequence ip access-list acl- 01 100 10 switch(config)# show ip access-lists acl-01 IPV4 ACL acl-01 statistics per-entry 100 permit ip 192.168.2.0/24 any 110 permit ip 192.168.5.0/24 any switch# copy running-config startup-config
IPv4 ACL は、物理イーサネット インターフェイスまたは仮想イーサネット インターフェイスに適用できます。これらのインターフェイス タイプに適用された ACL は、ポート ACL と見なされます。物理イーサネット インターフェイスまたは仮想イーサネット インターフェイスに対応付けられたポート プロファイルに IP ACL を適用することもできます。
注:ACL はポート チャネル インターフェイスには適用できません。ただし、ポート チャネルに属していない物理イーサネット インターフェイスには適用できます。
この手順を開始する前に、次のことを確認してください。
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# interface vethernet 1 switch(config-if)# ip port access-group acl-01 in switch(config-if)# show running-config aclmgr !Command: show running-config aclmgr !Time: Wed Mar 13 02:19:05 2013 version 5.2(1)SM1(5.1) ip access-list acl-01 statistics per-entry 100 permit ip 192.168.2.0/24 any 110 permit ip 192.168.5.0/24 any interface Vethernet1 ip port access-group acl-01 in switch# copy running-config startup-config version 5.2(1)SM1(5.1)
IP ACL をポート プロファイルに追加するには、次の手順を実行します。
次の情報を知っている必要があります。
この手順を開始する前に、次のことを確認してください。
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# port-profile vm_eth1 switch(config-port-prof)# ip port access-group acl-01 out switch(config-port-prof)# end switch# show port-profile name vm_eth1 port-profile vm_eth1 type: Vethernet description: status: enabled max-ports: 32 min-ports: 1 inherit: config attributes: ip port access-group acl-01 out no shutdown evaluated config attributes: ip port access-group acl-01 out no shutdown assigned interfaces: port-group: vm_eth1 system vlans: none capability l3control: no capability iscsi-multipath: no capability vxlan: no capability l3-vn-service: no port-profile role: none port-binding: static switch# copy running-config startup-config
管理インターフェイス mgmt0 に IPv4 ACL を適用するには、次の手順を実行します。
適用する ACL が存在し、目的に応じたトラフィック フィルタリングが設定されていることを確認します。
この手順を開始する前に、EXEC モードで CLI にログインする必要があります。
switch# configure terminal Enter configuration commands, one per line. End with CNTL/Z. switch(config)# ip access-list acl-01 switch(config-acl)# permit tcp any any switch(config-acl)# show ip access-lists acl-01 IPV4 ACL acl-01 10 permit tcp any any switch(config-acl)# interface mgmt 0 switch(config-if)# ip access-group acl-01 out switch(config-if)# show ip access-lists acl-01 summary IPV4 ACL acl-01 Total ACEs Configured:1 Configured on interfaces: mgmt0 - egress (Router ACL) Active on interfaces: mgmt0 - egress (Router ACL) switch(config-if)# ip access-list match-local-traffic switch(config)# switch(config)# copy running-config startup-config ACL)
次のいずれかのコマンドを使用して、設定を確認します。
コマンド |
目的 |
---|---|
show running-config aclmgr |
IP ACL の設定および IP ACL が適用されているインターフェイスを含めて、ACL の設定を表示します。 |
show ip access-lists [name] |
すべての IPv4 アクセス コントロール リスト(ACL)または特定の IPv4 ACL を表示します。 |
show ip access-list [name] summary |
設定済みのすべての IPv4 ACL または名前付き IPv4 ACL の要約を表示します。 |
show running-config interface |
ACL が適用されたインターフェイスの設定を表示します。 |
IP ACL のモニタリングには、次のいずれかのコマンドを使用します。
コマンド |
目的 |
---|---|
show ip access-lists |
IPv4 ACL の設定を表示します。IPv4 ACL に statistics per-entry コマンドが含まれている場合は、show ip access-lists コマンドの出力に、各ルールと一致したパケットの数が含まれます。 |
clear ip access-list counters |
すべての IPv4 ACL または特定の IPv4 ACL の統計情報をクリアします。 |
次に、acl-01 という名前の IPv4 ACL を作成して、ポート チャネルのメンバーではない物理 Ethernet インターフェイスにポート ACL として適用し、一致カウンタで設定を確認する例を示します。
switch# configure terminal Enter configuration commands one per line. End with CNTL/Z. switch(config)# ip access-list acl-01 switch(config-acl)# permit ip 192.168.2.0/24 any switch(config-acl)# permit ip 192.168.5.0/24 any switch(config-acl)# permit 22 any 10.105.225.225/27 switch(config-acl)# permit ip any 10.105.225.225/27 switch(config-acl)# statistics per-entry switch(config-acl)# interface ethernet 3/5 switch(config-acl# ip port access-group acl-01 in switch(config-acl)# show ip access-lists acl-01 summary IPV4 ACL acl-01 statistics per-entry Total ACEs Configured:4 Configured on interfaces: Ethernet3/5 - ingress (Port ACL) Active on interfaces: Ethernet3/5 - ingress (Port ACL) switch(config-if)# show ip access-lists acl-01 IPV4 ACL acl-01 statistics per-entry 100 permit ip 192.168.2.0/24 any [match=0] 110 permit ip 192.168.5.0/24 any [match=0] 120 permit 22 any 10.105.225.225/27 [match=0] 130 permit ip any 10.105.225.225/27 [match=44] switch(config-if)# clear ip access-list counters acl-01 switch(config-if)# show ip access-lists acl-01 IPV4 ACL acl-01 statistics per-entry 100 permit ip 192.168.2.0/24 any [match=0] 110 permit ip 192.168.5.0/24 any [match=0] 120 permit 22 any 10.105.225.225/27 [match=0] 130 permit ip any 10.105.225.225/27 [match=0] switch(config-if)#
この表には、機能の追加によるリリースの更新内容のみが記載されています。
機能の履歴 |
リリース |
機能情報 |
---|---|---|
IP ACL |
5.2(1)SM1(5.1) |
この機能が導入されました。 |