ACL について
アクセス コントロール リスト(ACL)とは、トラフィックのフィルタリングに使用する順序付きのルール セットのことです。各ルールには、パケットがルールに一致するために満たさなければならない条件のセットが規定されています。スイッチは、あるパケットに対してある ACL を適用するかどうかを判断するとき、そのパケットを ACL 内のすべてのルールの条件に対してテストします。一致する条件が最初に見つかった時点で、パケットを許可するか拒否するかが決まります。一致する条件が見つからないと、スイッチは適用可能なデフォルトのルールを適用します。許可されたパケットについては処理が続行され、拒否されたパケットはドロップされます。
ACL を使用すると、ネットワークおよび特定のホストを、不要なトラフィックや望ましくないトラフィックから保護できます。たとえば、ACL を使用して、厳重にセキュリティ保護されたネットワークからインターネットに HTTP トラフィックが流入するのを禁止できます。また、特定のサイトへの HTTP トラフィックだけを許可することもできます。その場合は、サイトの IP アドレスが、IP ACL に指定されているかどうかによって判定します。
IP ACL のタイプと適用
Cisco Nexus デバイスは、セキュリティ トラフィック フィルタリング用に、IPv4 をサポートしています。スイッチでは、次の表に示すように、ポートの ACL、VLAN ACL、およびルータの ACL として、IP アクセス コントロール リスト(ACL)を使用できます。
適用 |
サポートするインターフェイス |
サポートする ACL のタイプ |
||
---|---|---|---|---|
ポート ACL |
ACL は、次のいずれかに適用した場合、ポート ACL と見なされます。
ポート ACL をトランク ポートに適用すると、その ACL は、当該トランク ポート上のすべての VLAN 上のトラフィックをフィルタリングします。 |
IPv4 ACL |
||
ルータ ACL |
|
IPv4 ACL |
||
VLAN ACL(VACL) |
アクセス マップを使用して ACL をアクションにアソシエートし、そのアクセス マップを VLAN に適用する場合、その ACL は VACL と見なされます。 |
IPv4 ACL |
||
VTY ACL |
VTY |
IPv4 ACL |
適用順序
-
ポート ACL
-
入力 VACL
-
入力ルータ ACL
-
出力ルータ ACL
-
出力 VACL
ルール
ACL によるネットワーク トラフィックのフィルタリング方法を設定する際に、何を作成、変更、削除するかを決めるのがルールです。ルールは実行コンフィギュレーション内に表示されます。ACL をインターフェイスに適用するか、またはインターフェイスにすでに適用されている ACL 内のルールを変更すると、スーパーバイザ モジュールは実行コンフィギュレーション内のルールから ACL のエントリを作成し、それらの ACL エントリを適用可能な I/O モジュールに送信します。ACL の設定によっては、ルールよりも ACL エントリの方が数が多くなることがあります。特に、ルールを設定するときにオブジェクト グループを使用してポリシーベース ACL を実装する場合などです。
ルールは ACL で作成できます。ルールは、permit または deny コマンドを使用してアクセス リスト コンフィギュレーション モードで作成できます。これにより、デバイスは許可ルール内の基準と一致するトラフィックを許可し、拒否ルール内の基準と一致するトラフィックをブロックします。ルールに一致するためにトラフィックが満たさなければならない基準を設定するためのオプションが多数用意されています。
ここでは、ルールを設定する際に使用できるオプションをいくつか紹介します。
送信元と宛先
各ルールには、ルールに一致するトラフィックの送信元と宛先を指定します。指定する送信元および宛先には、特定のホスト、ホストのネットワークまたはグループ、あるいは任意のホストを使用できます。
プロトコル
IPv4 ACL および MAC ACL では、トラフィックをプロトコルで識別できます。指定の際の手間を省くために、一部のプロトコルは名前で指定できます。たとえば、IPv4 ACL では、ICMP を名前で指定できます。
インターネット プロトコル番号を表す整数でプロトコルを指定できます。
暗黙のルール
IP ACL および MAC ACL には暗黙ルールがあります。暗黙ルールは、実行コンフィギュレーションには設定されていませんが、ACL 内の他のルールと一致しない場合にスイッチがトラフィックに適用するルールです。
すべての IPv4 ACL には、次の暗黙のルールがあります。
deny ip any any
この暗黙のルールによって、どの条件にも一致しない IP トラフィックは拒否されます。
permit icmp any any nd-na
permit icmp any any nd-ns
permit icmp any any router-advertisement
permit icmp any any router-solicitation
すべての MAC ACL には、次の暗黙のルールがあります。
deny any any protocol
この暗黙ルールによって、デバイスは、トラフィックのレイヤ 2 ヘッダーに指定されているプロトコルに関係なく、不一致トラフィックを確実に拒否します。
その他のフィルタリング オプション
追加のオプションを使用してトラフィックを識別できます。IPv4 ACL には、次の追加フィルタリング オプションが用意されています。
-
レイヤ 4 プロトコル
-
TCP/UDP ポート
-
ICMP タイプおよびコード
-
IGMP タイプ
-
優先レベル
-
DiffServ コード ポイント(DSCP)値
-
ACK、FIN、PSH、RST、SYN、または URG ビットがセットされた TCP パケット
-
確立済み TCP 接続
シーケンス番号
Cisco Nexus デバイスはルールのシーケンス番号をサポートします。入力するすべてのルールにシーケンス番号が割り当てられます(ユーザによる割り当てまたはデバイスによる自動割り当て)。シーケンス番号によって、次の 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 つ以上のルールを挿入する必要があるときに便利です。
論理演算子と論理演算ユニット
TCP および UDP トラフィックの IP ACL ルールでは、論理演算子を使用して、ポート番号に基づきトラフィックをフィルタリングできます。
Cisco Nexus デバイスは、演算子とオペランドの組み合わせを論理演算ユニット(LOU)というレジスタ内に格納し、IP ACL で指定された TCP および UDP ポート上で演算(より大きい、より小さい、等しくない、包含範囲)を行います。
Note |
range 演算子は境界値も含みます。 |
これらの LOU は、これらの演算を行うために必要な Ternary Content Addressable Memory(TCAM)エントリ数を最小限に抑えます。最大で 2 つの LOU を、インターフェイスの各機能で使用できます。たとえば入力 RACL で 2 つの LOU を使用し、QoS 機能で 2 つの LOU を使用できます。ACL 機能で 2 つより多くの算術演算が必要な場合、最初の 2 つの演算が LOU を使用し、残りのアクセス コントロール エントリ(ACE)は展開されます。
デバイスが演算子とオペランドの組み合わせを LOU に格納するかどうかの判断基準を次に示します。
-
演算子またはオペランドが、他のルールで使用されている演算子とオペランドの組み合わせと異なる場合、この組み合わせは LOU に格納されます。
たとえば、演算子とオペランドの組み合わせ「gt 10」と「gt 11」は、別々に LOU の半分に格納されます。「gt 10」と「lt 10」も別々に格納されます。
-
演算子とオペランドの組み合わせがルール内の送信元ポートと宛先ポートのうちどちらに適用されるかは、LOU の使用方法に影響を与えます。同じ組み合わせの一方が送信元ポートに、他方が宛先ポートに別々に適用される場合は、2 つの同じ組み合わせが別々に格納されます。
たとえば、あるルールによって、演算子とオペランドの組み合わせ「gt 10」が送信元ポートに、別のルールによって同じ組み合わせ「gt 10」が宛先ポートに適用される場合、両方の組み合わせが LOU の半分に格納され、結果として 1 つの LOU 全体が使用されることになります。このため、「gt 10」を使用するルールが追加されても、これ以上 LOU は使用されません。
ACL TCAM リージョン
ハードウェアの ACL Ternary Content Addressable Memory(TCAM)リージョンのサイズを変更できます。
IPv4 TCAM はシングル幅です。
TCAM リージョン サイズには、次の注意事項と制約事項があります。
-
デフォルトの ACL TCAM サイズに戻すには、no hardware profile tcam region コマンドを使用します。write erase コマンドを使用してからスイッチをリロードする必要はなくなりました。
-
Cisco Nexus デバイスによっては、各 TCAM リージョンが異なる最小/最大/集約サイズ制限を持つ可能性があります。
-
ARPACL TCAM のデフォルト サイズはゼロです。コントロール プレーン ポリシング(CoPP)ポリシーで ARP ACL を使用する前に、この TCAM のサイズをゼロ以外のサイズに設定する必要があります。
-
また、VACL および出力 VLAN ACL(E-VACL)を同じ値に設定する必要があります。
-
全体の TCAM の深さは、出力と入力の場合は 4000 エントリで共有されています。これは、16 のエントリ ブロックに切り分けることができます。
-
TCAM は、ACL 機能ごとに 256 の統計エントリをサポートします。
-
各方向に 32 の 64 の ACL L4OP がサポートされます。
-
各方向のラベルごとに 2 つの L4OP がサポートされます。各ラベルは、同じ ACL の複数のインターフェイスで共有できます。
-
TCAM の切り分け後には、スイッチをリロードする必要があります。
-
すべての既存の TCAM のサイズを 0 に設定することはできません。
-
デフォルトでは、すべての IPv6 TCAM はディセーブルです(TCAM サイズは 0 に設定されます)。
TCAM ACL リージョン |
デフォルト サイズ |
最小サイズ |
インクリメンタル サイズ |
---|---|---|---|
SUP(入力) |
112 |
48 |
16 |
PACL(入力) |
400 |
0 |
16 |
VACL(入力)、VACL(出力) |
640(入力)、640(出力) |
0(入力)、0(出力) |
16 |
RACL(入力) |
1536 |
0 |
16 |
QOS(入力)、QOS(出力) |
192(入力)、64(出力) |
16(入力)、64(出力) |
16 |
E-VACL(出力) |
640 |
0 |
16 |
E-RACL(出力) |
256 |
0 |
16 |
NAT |
256 |
0 |
16 |
ACL のライセンス要件
Cisco NX-OS ライセンス方式の推奨の詳細と、ライセンスの取得および適用の方法については、『Cisco NX-OS Licensing Guide』を参照してください。
ACL の前提条件
IP ACL の前提条件は次のとおりです。
-
IP ACL を設定するためには、IP アドレッシングおよびプロトコルに関する知識が必要です。
-
ACL を設定するインターフェイス タイプについての知識が必要です。
VACL の前提条件は次のとおりです。
-
VACL に使用する IP ACL が存在し、必要な方法でトラフィックをフィルタリングするように設定されていることを確認します。
ACL の注意事項と制約事項
IP ACL の設定に関する注意事項と制約事項は次のとおりです。
-
ACL の設定には Session Manager を使用することを推奨します。この機能によって、ACL の設定を確認し、設定を実行コンフィギュレーションにコミットする前に、その設定が必要とするリソースが利用可能かどうかを確認できます。この機能は、約 1,000 以上のルールが含まれている ACL に対して特に有効です。
-
レイヤ 3 最大伝送単位チェックに失敗し、そのためにフラグメント化を要求しているパケット
-
IP オプションがある IPv4 パケット(追加された IP パケット ヘッダーのフィールドは、宛先アドレス フィールドの後)
-
IP ACL を VLAN インターフェイスに適用するためには、VLAN インターフェイスをグローバルにイネーブル化する必要があります。
-
1 つの VLAN アクセス マップでは、1 つの IP ACL だけを照合できます。
-
1 つの IP ACL に、複数の許可/拒否 ACE を設定することができます。
-
1 つの VLAN に適用できるアクセス マップは 1 つだけです。
-
ワープ モードでの出力 RACL および VACL はサポートされていないため、適用しないでください。
-
出力 ACL は、マルチキャスト トラフィックには適用できません。
-
マルチキャスト トラフィックでは SVI での入力 RACL がサポートされていますが、トラフィックに必ず送信先または送信元となるマルチキャスト グループを定義する ACL に log キーワードが含まれている場合は、SVI での入力 RACL の適用はサポートされません。
-
SVI のマルチキャスト トラフィックの入力 RACL ACE を照合するには、ACE にマルチキャスト DIP の照合を含める必要があります。また、これらの ACE をインストールする前に、RACL - ハードウェア プロファイル tcam mcast racl-bridge を使用してブリッジング コマンドを有効にする必要があります。
-
PACL はワープ モードでは適用できません。
-
SVI とレイヤ 3 インターフェイスの同じ入力 RACL では TCAM リソースを共有できないため、それぞれが個別に TCAM リソースを使用します。ただし、ACL 統計情報リソースは共有されます。アップグレード前に RACL TCAM をほとんど使い切っている場合、アップグレード後に RACL アプリケーションで障害が発生する可能性があります。その場合は、RACL TCAM を切り分けることができます。
-
ARP ACL は Nexus 3500 プラットフォームではサポートされません。
-
物理または論理レイヤ 3 インターフェイスに適用される入力 RACL がサポートされています。入力 RACL をレイヤ 3 SVI に適用するには、ハードウェア プロファイル tcam mcast racl-bridge 構成を、マルチキャスト トラフィックを一致させるための回避策として使用できます。
-
Cisco NX-OS リリース 7.0(3)I7(6) 以前から、Cisco NX-OS リリース 9.3(1) から 9.3(2) 以降にアップグレードし、デフォルトの lou しきい値構成を使用するとlou しきい値が 1 に設定されます。
デフォルトの ACL 設定
次の表は、IP ACL パラメータのデフォルト設定をリスト表示しています。
パラメータ |
デフォルト |
---|---|
IP ACL |
デフォルトの IP ACL は存在しません。 |
ACL ルール |
すべての ACL に暗黙のルールが適用されます。 |
オブジェクト グループ |
デフォルトではオブジェクト グループは存在しません。 |
次の表に、VACL パラメータのデフォルト設定を示します。
パラメータ |
デフォルト |
---|---|
VACL |
デフォルトの IP ACL は存在しません。 |
ACL ルール |
すべての ACL に暗黙のルールが適用されます。 |