ACL について
ここでは、次の内容について説明します。
• 「概要」
• 「ACL を使用するサポート対象機能」
• 「ルータ ACL」
• 「ポート ACL」
• 「ダイナミック ACL」
• 「VLAN マップ」
概要
ACL は、パケットに適用される許可条件および拒否条件を集めて順番に並べたものです。パケットがインターフェイスに着信すると、スイッチはパケットのフィールドと適用される ACL を比較し、アクセス リストに指定されている条件に基づいて、転送に必要な許可がパケットに与えられているかどうかを調べます。スイッチはパケットをアクセス リストの条件と 1 つ 1 つ突き合わせます。最初に一致した条件によって、スイッチがパケットを許可するかまたは拒否するかが決まります。スイッチは、最初に一致した時点で条件のテストを中止するため、リストに条件を指定する順序が重要です。いずれの条件とも一致しなかった場合、スイッチはパケットを拒否します。スイッチは、制限条件がない場合はパケットを転送し、制限条件がある場合はパケットをドロップします。
従来、スイッチは、VLAN 内でトラフィックを切り替えるレイヤ 2 で動作します。ルータは、レイヤ 3 の VLAN 間でトラフィックをルーティングします。Catalyst 4500 シリーズ スイッチは、レイヤ 3 スイッチングを使用して、VLAN 間のパケット ルーティングの速度を向上させます。レイヤ 3 スイッチでブリッジングされたパケットは、外部ルータに送信されずに内部でルーティングされます。そのあと、再度ブリッジングされて宛先に送信されます。スイッチはこのプロセス中に、VLAN 内でブリッジングされるパケットを含めて、すべてのパケットを制御します。
トラフィックをフィルタリングし、ネットワークに基本的なセキュリティを導入するには、ルータまたはスイッチにアクセス リストを設定します。ACL を設定しないと、スイッチを通過するすべてのパケットが、ネットワーク内のすべての場所に転送されることがあります。ACL を使用すると、ネットワークの場所ごとにアクセス可能なホストを制御したり、ルータ インターフェイスで転送またはブロックされるトラフィックの種類を決定したりできます。たとえば、電子メール トラフィックの転送を許可し、Telnet トラフィックの転送を拒否することもできます。ACL を着信トラフィック、発信トラフィック、またはその両方をブロックするように設定することもできます。ただし、レイヤ 2 インターフェイスでは、ACL を適用できるのは着信方向だけです。
ACL には、Access Control Entry(ACE; アクセス コントロール エントリ)の順序付けられたリストが含まれています。各 ACE には、permit または deny と、パケットが ACE と一致するために満たす必要のある一連の条件を指定します。permit または deny の意味は、ACL が使用されるコンテキストによって変わります。
Catalyst 4500 シリーズ スイッチでは、次の 3 つの ACL タイプがサポートされています。
• TCP、User Datagram Protocol(UDP)、Internet Group Management Protocol(IGMP)、Internet Control Message Protocol(ICMP)などの IP トラフィックをフィルタリングする IP ACL
• IPv6 ACL
• イーサネット アドレスおよび EtherType に基づいて一致する MAC ACL
ACL を使用するサポート対象機能
トラフィックをフィルタリングするため、次に示す 3 種類の ACL がサポートされています。
• ルータ ACL は、レイヤ 3 インターフェイスに適用されます。この ACL は、VLAN 間でルーティングされたトラフィックのアクセスを制御します。すべての Catalyst 4500 スイッチでルータ ACL を作成できますが、レイヤ 3 インターフェイスに ACL を適用して、VLAN 間でルーティングされたパケットをフィルタリングするには、スイッチに Cisco IOS ソフトウェア イメージをインストールする必要があります。
• Port ACL(PACL; ポート ACL)は、レイヤ 2 インターフェイスに入るトラフィックのアクセスをコントロールします。ハードウェアの CAM(連想メモリ)エントリが十分でない場合、出力 PACL がポートに適用されず、警告メッセージがユーザに送られます (この制限は、出力 PACL のすべてのアクセス グループ モードに適用されます)。CAM エントリが十分な場合、出力ポート ACL は再適用されます。
レイヤ 2 ポートに出力 PACL が設定されている場合、レイヤ 2 ポートが属する VLAN に VACL またはルータ ACL を設定できません。その逆の場合も同じです。つまり、PACL および VLAN ベースの ACL(VACL およびルータ ACL)は、レイヤ 2 ポート上では相互に排他的です。この制限はすべてのアクセス グループ モードに適用されます。入力方向では、ポート ACL、VLAN ベース ACL、およびルータ ACL が共存できます。
レイヤ 2 インターフェイスには、IPv4 アクセス リスト、IPv6 アクセス リスト、および MAC アクセス リストをそれぞれ 1 つずつ適用できます。
• VLAN マップを使用すると、同じ VLAN 内のデバイス間で転送されるトラフィックをフィルタリングできます。VLAN マップを作成または適用するために、拡張イメージをインストールする必要はありません。VLAN マップは、IP のレイヤ 3 アドレスに基づいてアクセス コントロールするように設定されています。イーサネット ACE を使用する MAC アドレスにより、サポートされていないプロトコルがアクセス コントロールされます。VLAN マップを VLAN に適用すると、VLAN に入るすべてのパケット(ルーテッド パケットまたはブリッジド パケット)が VLAN マップと照合されます。パケットは、スイッチ ポートを介して、または、ルーティングされたパケットの場合、ルーテッド ポートを介して、VLAN に入ることができます。
同じスイッチ上でルータ ACL と VLAN マップを両方使用できます。
ルータ ACL
サポートされる各タイプのアクセス リスト 1 つをインターフェイスに適用できます。
(注) Cisco IOS Release 12.2(40)SG を実行している Catalyst 4500 シリーズ スイッチは、IPv6 Port ACL(PACL)をサポートしません。
1 つの ACL を特定のインターフェイスの複数の機能に使用できます。また、1 つの機能に複数の ACL を使用することもできます。1 つのルータ ACL を複数の機能で使用する場合、そのルータ ACL は複数回、照合されます。アクセス リストのタイプによって、一致処理に対する入力が決まります。
• 標準 IP アクセス リストでは、照合操作に送信元アドレスを使用します。
• 拡張 IP アクセス リストは、送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用して一致処理を行います。
スイッチは、特定のインターフェイスおよび方向に対する設定機能に関連付けられている ACL をテストします。パケットがスイッチのインターフェイスに着信すると、そのインターフェイスに設定されているすべての着信機能に対応する ACL が照合されます。パケットがルーティングされてからネクスト ホップに転送されるまでの間に、出力インターフェイスに設定された発信機能に対応するすべての ACL が照合されます。
ACL は、パケットが ACL 内のエントリとどのように一致したかに基づいてパケットの転送を許可または拒否します。たとえば、アクセス リストを使用すると、ネットワークの特定の場所へのアクセスを特定のホストに許可し、別のホストに対しては禁止できます。図 52-1 では、ルータへの入力に適用されている ACL により、ホスト A は人事部ネットワークへのアクセスが許可されますが、ホスト B は拒否されます。
図 52-1 ACL によるネットワークへのトラフィックの制御
ポート ACL
スイッチ上のレイヤ 2 インターフェイスにも ACL を適用できます。PACL は、物理インターフェイスおよび EtherChannel インターフェイス上でサポートされています。
レイヤ 2 インターフェイス上では、次のアクセス リストがサポートされています。
• 送信元アドレスを使用する IP アクセス リスト
• 送信元および宛先のアドレスと任意でプロトコル タイプ情報を使用できる拡張 IP アクセス リスト
• 送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用する拡張 IPv6 アクセス リスト
• 送信元および宛先の MAC アドレスと任意でプロトコル タイプ情報を使用できる MAC 拡張アクセス リスト
ルータ ACL と同様、スイッチは所定のインターフェイスに設定されている機能に関連付けられている ACL をテストし、パケットが ACL 内のエントリと一致するかどうかによって、パケットの転送を許可または拒否します。図 52-1 の例では、すべてのワークステーションが同じ VLAN 内にある場合、レイヤ 2 の入力に適用されている ACL によって、ホスト A は人事部ネットワークへのアクセスが許可されますが、ホスト B は同じネットワークへのアクセスを拒否されます。
ポート ACL をトランク ポートに適用すると、ACL はそのトランク ポート上のすべての VLAN でトラフィックをフィルタリングします。音声 VLAN があるポートに PACL を適用すると、データ VLAN と音声 VLAN の両方でその ACL によるトラフィックのフィルタリングが行われます。
ポート ACL では、IP アクセス リストを使用して IP トラフィックをフィルタリングでき、MAC アドレスを使用して非 IP トラフィックをフィルタリングできます。同じレイヤ 2 インターフェイス上で IP トラフィックと非 IP トラフィックの両方をフィルタリングするには、そのインターフェイスに IP アクセス リストと MAC アクセス リストの両方を適用します。
ポート ACL では、IPv4 アクセス リストで IP トラフィックを、IPv6 アクセス リストで IPv6 トラフィックを、MAC アクセス リストで非 IPv4 トラフィックをフィルタすることができます。レイヤ 2 インターフェイスに適切なタイプの ACL を同時に適用することによって、複数のタイプのトラフィックを同時にフィルタリングできます。
(注) 同じタイプの複数のアクセス リストをレイヤ 2 インターフェイスに同時に適用することはできません。すでに IPv4、IPv6、または MAC アクセス リスト設定されているレイヤ 2 インターフェイスに新しい IPv4、IPv6、または MAC アクセス リストを適用すると、同じタイプの設定済み ACL が新しい ACL に置き換えられます。
ダイナミック ACL
802.1X、NAC、Web 認証などのさまざまなセキュリティ機能は、中央サーバから ACL をダウンロードし、インターフェイスに適用することができます。Cisco IOS Release 12.2(54) SG 以前では、これらの機能には標準ポート ACL の明示的な設定が必要した。
Cisco IOS Release 12.2(54) SG 以降、ポート ACL の設定は必須ではありません。詳細については、「ポート ACL の要件の削除」を参照してください。
VLAN マップ
VLAN マップを使用すると、VLAN のすべてのトラフィックのアクセスを制御できます。VLAN の内外でルーティングされる、または VLAN 内でブリッジングされる すべてのパケット に対して、スイッチの VLAN マップを適用できます。VLAN マップで方向(着信または発信)は定義されません。
VLAN マップを設定すると、IP トラフィックのレイヤ 3 アドレスと照合することができます。すべての IP 以外のプロトコルは、VLAN マップの MAC ACL を使用して、MAC アドレスおよび EtherType によってアクセス コントロールされます。(IP トラフィックには、VLAN マップの MAC ACL によるアクセス コントロールが行われません)。VLAN マップはスイッチに向かうパケットにだけ適用できます。ハブのホスト間、またはこのスイッチに接続された別のスイッチのホスト間を通過するトラフィックには、VLAN マップを適用できません。
VLAN マップを使用すると、パケットの転送は、マップに指定されたアクションに基づいて許可または拒否されます。図 52-2 に、VLAN マップを適用して、特定タイプのトラフィックを VLAN 10 のホスト A から転送できないように設定する例を示します。
図 52-2 VLAN マップによるトラフィックの制御
ハードウェアおよびソフトウェア ACL のサポート
ここでは、ACL をハードウェア、ソフトウェアのどちらで処理するかを決定する方法について説明します。
• 標準および拡張 ACL の deny 文と一致するフローは、ICMP 到達不能メッセージがディセーブルの場合、ハードウェアでドロップされます。
• 標準 ACL の permit 文に一致するフローは、ハードウェアで処理されます。
• ソフトウェアでは、次の ACL タイプはサポートされていません。
– 標準 Xerox Network Systems(XNS)プロトコル アクセス リスト
– 拡張 XNS アクセス リスト
– DECnet アクセス リスト
– プロトコル タイプコード アクセス リスト
– 標準 Internet Packet Exchange(IPX)アクセス リスト
– 拡張 IPX アクセス リスト
(注) ロギングが必要なパケットは、ソフトウェアで処理されます。ロギング用にパケットのコピーが CPU に送信され、実際のパケットはハードウェアで転送されるので、ロギング対象外のパケットの処理は影響を受けません。
デフォルトでは、アクセス リストによりパケットが拒否されると、ICMP 到達不能メッセージがCatalyst 4500 シリーズ スイッチによって送信されます。
入力インターフェイス上でハードウェア内のアクセス リスト拒否パケットをドロップするには、 no ip unreachables インターフェイス コンフィギュレーション コマンドを使用して ICMP 到達不能メッセージをディセーブルにする必要があります。
ip unreachables コマンドは、デフォルトでイネーブルになっています。
(注) Cisco IOS Release 12.2(40)SG は、IPv6 トラフィックをルーティングするインターフェイス上での ip unreachables のディセーブル化をサポートしません。
(注) すべてのレイヤ 3 インターフェイスで no ip unreachable コマンドを設定する場合、出力 ACL 拒否パケットは、CPU に届きません。
ACL による高 CPU のトラブルシューティング
完全にプログラムされた ACL のエントリに一致するパケットは、ハードウェアで処理されます。
(注) 大規模な ACL および IPSG の設定は、ACL がすべてプログラムされる前に、Catalyst 4948E イーサネット スイッチの TCAM マスクを使い果たすことがあります。
部分的にプログラムされた ACL のエントリに一致するパケットは、CPU を使用してソフトウェアで処理されます。これにより、CPU 使用率が高くなったりパケットがドロップされることがあります。パケットが高 CPU 使用率のためにドロップされているかどうかを判別するには、次の URL を参照してください。
http://www.cisco.com/en/US/products/hw/switches/ps663/products_tech_note09186a00804cef15.shtml
ACL または IPSG 設定がハードウェアで部分的にプログラミングされている場合、Cisco IOS Release 12.2(31) SGA 以降にアップグレードし、TCAM リージョンのサイズを変更すると、ACL の完全なプログラミングが可能になることがあります。
(注) 使用されていない TCAM エントリの削除を完了するには、何回かの CPU プロセス レビュー サイクルがかかります。このプロセスにより、TCAM エントリまたはマスク利用率が 100% かそれに近い場合、一部のパケットがソフトウェアで切り替えられます。
制御パケットのキャプチャのモード選択
展開によっては、(CPU を犠牲にして)制御パケットをグローバルにキャプチャしてソフトウェアで転送するのではなく、ハードウェアでブリッジします。VLAN 単位のキャプチャ モード機能により、Catalyst 4500 シリーズ スイッチは、選択した VLAN でだけ制御パケットをキャプチャし、他のすべての VLAN についてはハードウェアでトラフィックをブリッジできます。
スイッチで VLAN 単位キャプチャ モードを採用すると、内部でグローバル TCAM キャプチャ エントリを部分的にディセーブルにし、スヌーピング機能のためにイネーブルになっている VLAN 上の機能固有キャプチャ ACL を付加します (すべての IP キャプチャ エントリおよびその他の非 IP エントリも、グローバルな TCAM を介してキャプチャされます)。
この機能は、特定の制御パケットを制御するため、内部 ACL がインストールされている VLAN だけでキャプチャされます。他のすべての VLAN では、制御トラフィックは CPU に転送されるのではなく、ハードウェアでブリッジされます。
VLAN 単位のキャプチャ モードにより、制御パケットにユーザ定義 ACL および QoS ポリサー(ハードウェア内)を適用できます。また、CPU に入力する集約制御トラフィックをコントロール プレーン ポリシングの対象にできます。
VLAN 単位キャプチャ モードを使用するとき、次の 4 つのプロトコル グループを VLAN 単位で選択できます。各グループで代行受信されたプロトコルの内訳は、次のとおりです。
• IGMP スヌーピング:CGMP、OSPF、IGMP、RIPv2、PIM、224.0.0.1、224.0.0.2、224.0.0.*
• DHCP スヌーピング:クライアントからサーバ、サーバからクライアント、サーバからサーバ
グループの一部には複数の重複 ACE があるため(たとえば、224.0.0.* は、DHCP スヌーピング以外のすべてのグループに存在します)、特定のグループをオンにすると、他のグループからの一部のプロトコルの代行受信もトリガーされます。
VLAN 単位の 4 つのプロトコル グループのプログラミング トリガーは、次のとおりです。
• IGMP スヌーピングは、指定 VLAN でグローバルにイネーブルにする必要があります。
• DHCP スヌーピングは、指定 VLAN でグローバルにイネーブルにする必要があります。
注意事項および制約事項
(注) VLAN 単位キャプチャ モードを設定する前に設定を調べ、目的の VLAN で必要な機能だけがイネーブルになっていることを確認する必要があります。
VLAN 単位キャプチャ モードには、次の注意事項および制限事項が適用されます。
• Cisco IOS Release 15.0(2)SG 以降、Supervisor Engine 6-E および Supervisor Engine 6L-E では(Supervisor Engine 7-E の場合は Cisco IOS XE Release 3.2.0、Supervisor Engine 7L-E の場合は Cisco IOS XE Release 3.2.0XO)、レイヤ 3 制御パケット用の TCAM リージョンでグローバルに予約されたスタティック ACL エントリは削除されます。VLAN 単位の CTI のコマンドは不要であり、レイヤ 3 制御パケットには適用されません。これは、デフォルトで、これらのパケットは VLAN 単位の方法でキャプチャされるためです。
以下は引き続き機能します。
– IGMP または PIM パケットのグローバル スタティック キャプチャおよび CTI コマンド(いずれも MAC アドレス 224.0.0.1 および 224.0.0.2 を使用します)
– DHCP パケットのグローバルな VLAN 単位 CTI
Cisco IOS Release 15.0(2) SG で、レイヤ 3 制御パケットの VLAN 単位キャプチャは SVI の設定により異なります。IGMP、PIM、または DHCP を除き、特別な設定は必要ありません。
• VLAN 単位キャプチャ モードをイネーブルにすると、ACL/機能 TCAM のエントリがさらに消費されます。
使用可能な TCAM エントリ数は、スーパーバイザ エンジンの種類によって変わります。エントリ数とマスク数により、ACL/機能 TCAM の利用率はさらに制限されます。
• ある種の設定では、グローバル キャプチャ モードよりも早く VLAN 単位キャプチャ モードで TCAM リソースを消費することがあります(IP ソース ガードがいくつかのインターフェイス上、またはユーザ設定 PACL 上でイネーブルにされるなど)。
TCAM リージョンのサイズを変更し、設定に基づいて PortAndVlan または PortOrVlan リージョンに対してより多くのエントリを使用可能にできます。これにより、エントリが上限に達する前にハードウェアでエントリをプログラミングできるようになります。TCAM リソースが消費されると、パケットがソフトウェアで転送されます。
• VLAN 単位キャプチャ モードでは、ACL が VLAN またはポート上で制御トラフィックを許可または拒否するように設定できます。
セキュリティ ACL は暗黙の拒否で終了されるため、機能(プロトコル)が動作するために必要な制御パケットを許可するように ACL が設定されていることを確認する必要があります。ただし、この規則はデフォルトの動作と同じです。
制御パケット キャプチャの選択
制御パケットのキャプチャ モードを選択するには、次の作業を実行します。
|
|
|
ステップ 1 |
Switch# conf terminal |
コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# [no] access-list hardware capture mode [vlan | global] |
制御パケットのキャプチャ モードを選択します。 access-list hardware capture mode コマンドの no 形式は、キャプチャ モードをデフォルトのグローバルに戻します。 |
ステップ 3 |
Switch(config)# end |
イネーブル モードに戻ります。 |
次に、Catalyst 4500 シリーズ スイッチが、機能がイネーブルになっている VLAN でだけ制御パケットをキャプチャするように設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line.End with CNTL/Z.
Switch(config)# access-list hardware capture mode vlan
次に、Catalyst 4500 シリーズ スイッチが、すべての VLAN で(デフォルト モードのスタティック ACL を使用して)制御パケットをグローバルにキャプチャするように設定する例を示します。
Switch# configure terminal
Enter configuration commands, one per line.End with CNTL/Z.
Switch(config)# access-list hardware capture mode global
キャプチャ モードがグローバルから VLAN に変更されると、スタティック CAM エントリは無効になります。これにより、制御パケットが代行受信されずに Catalyst 4500 シリーズ スイッチを通過して CPU に達するウィンドウ(時間)が作成されます。この一時的な状況は、新しい VLAN 単位のキャプチャ エントリがハードウェアでプログラムされたときに復元されます。
VLAN キャプチャ モードを設定する場合は、個々の機能の show コマンドを調べ、適切な動作になっていることを確認する必要があります。VLAN 単位キャプチャ モードでは、無効になったスタティック CAM エントリは、show platform hardware acl input entries static コマンドの出力で非アクティブ(inactive)として表示されます。たとえば、非アクティブ エントリのヒット数は、無効になって機能がイネーブルになっている VLAN ごとに適用されているので、凍結されたままになります。次の表に、CamIndex エントリ タイプおよび CAM リージョンを示します。
|
|
|
|
50 PermitSharedStp |
Y |
3344 |
ControlPktsTwo |
51 PermitLoopbackTest |
Y |
0 |
ControlPktsTwo |
52 PermitProtTunnel |
Y |
0 |
ControlPktsTwo |
53 CaptureCgmp |
N |
440 |
ControlPktsTwo |
55 CaptureIgmp |
N |
0 |
ControlPktsTwo |
0 IgmpPimv1ToCpu |
N |
N/A |
0(予想値) |
0 IgmpGeneralQueryToCpu |
N |
N/A |
0(予想値) |
2 IgmpToCpu |
N |
N/A |
0(予想値) |
3 IgmpPimv2ToCpu |
N |
N/A |
0(予想値) |
2048 Ipv6MldGeneralQueryCopyToCpu |
N |
N/A |
0(予想値) |
2050 Ipv6MldGeneralQueryCopyToCpu |
N |
N/A |
0(予想値) |
2052 Ipv6MldQueryOrReportV1ToCpu |
N |
N/A |
0(予想値) |
2054 Ipv6MldQueryOrReportV1ToCpu |
N |
N/A |
0(予想値) |
2056 Ipv6MldReportV2ToCpu |
N |
N/A |
0(予想値) |
2058 Ipv6MldReportV2ToCpu |
N |
N/A |
0(予想値) |
2060 Ipv6MldDoneToCpu |
N |
N/A |
0(予想値) |
2064 Ipv6MldPimv2ToCpu |
N |
N/A |
0(予想値) |
TCAM プログラミングと ACL
ACL と ACL ベースの機能をプログラムするときは、Mapping Table Entry(MTE)、プロファイル、および TCAM 値/マスク エントリの 3 種類のハードウェア リソースを適用します。これらのリソースのいずれかが使い果たされた場合は、パケットが CPU に送信され、ソフトウェア ベース処理が実行されます。
(注) Supervisor Engine 6-E、Supervisor Engine 6L-E、Supervisor Engine 7-E、および Supervisor Engine 7L-E は、自動的に使用可能なリソースを管理します。マスクがスーパーバイザ エンジンで共有されていないため、1 つのプログラミング アルゴリズムだけがあります。リージョンは存在しないため、リージョンのサイズ変更は必要ありません。
スーパーバイザー エンジン上のリソースを使い果たした場合は、設定の複雑さの軽減を検討してください。
(注) インターフェイスがダウン ステートになっている場合は、TCAM が RACL ではなく、PACL に使用されます。
ACL のレイヤ 4 演算
ここでは、レイヤ 4 ポート演算を含む ACL を設定する場合の注意事項および制約事項について説明します。
• 「レイヤ 4 演算の制約事項」
• 「レイヤ 4 演算設定時の注意事項」
• 「ACL 処理が CPU に与える影響」
レイヤ 4 演算の制約事項
次のタイプの演算子を指定できます。いずれも、ハードウェアのレイヤ 4 演算が 1 つ使用されます。
• gt(geater than:より大きい)
• lt(less than:より小さい)
• neq(not equal:等しくない)
• range(inclusive range:包含範囲)
レイヤ 4 演算数の制限は、ACL の種類ごとに異なるうえ、他の要素によっても変わることがあります。該当する要素としては、ACL が着信または発信トラフィックに適用されているかどうか、ACL がセキュリティ ACL なのかそれとも QoS ポリシーの一致条件として使用されているのか、IPv6 ACL が圧縮フロー ラベル形式を使用してプログラムされているかどうか、などがあります。
(注) IPv6 圧縮フロー ラベル形式では、レイヤ 2 アドレス テーブルを使用して、ACL の各 ACE の IPv6 送信元アドレス部分を圧縮します。フロー ラベルで解放された余分なスペースは、さらに多くのレイヤ 4 演算をサポートするために使用可能です。この圧縮を使用する場合、IPv6 ACL に、送信元 IPv6 アドレスの下位 48 ビットの一部だけをマスクする ACE を含めることはできません。
一般的に、同じ ACL に含めることができるレイヤ 4 演算の最大数は次のようになります。
Direction Protocol Type Operations
------------------------------------------------
Input IPv6 Compressed Security 16
Input IPv6 Uncompressed Security 7
Input IPv6 Compressed QoS 12
Input IPv6 Uncompressed QoS 8
Output IPv6 Compressed Security 17
Output IPv6 Uncompressed Security 8
Output IPv6 Compressed QoS 12
Output IPv6 Uncompressed QoS 8
(注) 16 の演算がサポートされる場合、17 番めの演算によって、拡張がトリガーされます。
使用可能なレイヤ 4 演算数を超えた場合、超過した各演算により、影響を受ける ACE がハードウェアで複数 ACE に変換されることがあります。このような変換ミスにより、パケットはソフトウェアの処理のために、CPU に送信されます。
レイヤ 4 演算設定時の注意事項
レイヤ 4 演算子を使用する場合は、次の注意事項を考慮してください。
• レイヤ 4 演算は、演算子またはオペランドが異なっていると、異なる演算であると見なされます。たとえば、次の ACL には 3 つの異なるレイヤ 4 演算が定義されています。 gt 10 と gt 11 は 2 つの異なるレイヤ 4 演算と見なされるためです。
(注) eq 演算子は、ハードウェアのレイヤ 4 演算を使用しないので、何回でも無制限に使用できます。
• 次の例のように、レイヤ 4 演算は、同じ演算子またはオペランドの組み合わせでも、送信元ポートに適用するか宛先ポートに適用するかによって異なる演算になります。
以下は、より詳細な例です。
... (dst port) gt 10 permit
... (dst port) gt 11 deny
... (dst port) neq 6 permit
... (src port) neq 6 deny
... (dst port) gt 10 deny
... (dst port) gt 20 deny
... (src port) range 11 13 deny
... (dst port) neq 6 permit
アクセス リスト 101 および 102 で使用しているレイヤ 4 演算は、次のとおりです。
• アクセス リスト 101 のレイヤ 4 演算:5
– gt 10 permit および gt 10 deny は、どちらも同じ演算です。まったく同じで、どちらも宛先ポートに適用されます。
• アクセス リスト 102 のレイヤ 4 演算:4
• レイヤ 4 演算の合計:8(2 つのアクセス リスト間で共有されるため)
– neq6 permit は 2 つの ACL 間で共有されます。まったく同じで、どちらも同じ宛先ポートに適用されます。
• 使用しているレイヤ 4 演算について説明します。
– レイヤ 4 演算 1 は、ACL101 から gt 10 permit および gt 10 deny を格納します。
– レイヤ 4 演算 2 は、ACL101 から lt 9 deny を格納します。
– レイヤ 4 演算 3 は、ACL101 から gt 11 deny を格納します。
– レイヤ 4 演算 4 は、ACL101 および 102 から neq 6 permit を格納します。
– レイヤ 4 演算 5 は、ACL101 から neq 6 deny を格納します。
– レイヤ 4 演算 6 は、ACL102 から gt 20 deny を格納します。
– レイヤ 4 演算 7 は、ACL102 から lt 9 deny を格納します。
– レイヤ 4 演算 8 は、ACL102 から range 11 13 deny を格納します。
ACL 処理が CPU に与える影響
ACL 処理は、次の 2 つの形で CPU に影響を与える可能性があります。
• 一部のパケットで、ハードウェア リソースを使い果たした場合、ACL との照合をソフトウェアで実行する必要があります。
– TCP フラグの組み合わせの rst ack、syn fin rst、urg および psh は、ハードウェアで処理されます。rst ack は、キーワード established と同等です。他の TCP フラグの組み合わせは、ソフトウェアでサポートされます。
– ACL 内のレイヤ 4 演算の合計数が 6 に満たない場合、任意の形で処理を分散させることができます。
例
次のアクセス リストは、すべてハードウェアで処理されます。
access-list 104 permit tcp any any established
access-list 105 permit tcp any any rst ack
access-list 107 permit tcp any synfin rst
アクセス リスト 104 および 105 は同じです。 established は rst および ack の省略形です。
アクセス リスト 101 は、すべてソフトウェアで処理されます。
access-list 101 permit tcp any any syn
アクセス リスト 106 は、送信元演算が 4、宛先演算が 2 なので、ハードウェアで処理されます。
access-list 106 permit tcp any range 100 120 any range 120 140
access-list 106 permit tcp any range 140 160 any range 180 200
access-list 106 permit tcp any range 200 220
access-list 106 deny tcp any range 220 240
次のコードの場合、送信元演算と宛先演算が 3 つずつあるので、3 番めの ACE に対するレイヤ 4 演算は dst lt 1023 をハードウェアで複数の ACE に変換しようとします。変換できなかった場合、3 番めの ACE はソフトウェアで処理されます。
access-list 102 permit tcp any lt 80 any gt 100
access-list 102 permit tcp any range 100 120 any range 120 1024
access-list 102 permit tcp any gt 1024 any lt 1023
アクセス リスト 103 の場合も同様に、3 番めの ACE は dst gt 1023 をハードウェアで複数の ACE に変換しようとします。変換できなかった場合、3 番めの ACE はソフトウェアで処理されます。送信元ポートおよび宛先ポートの演算は同じように見えますが、異なるレイヤ 4 演算と見なされます。
access-list 103 permit tcp any lt 80 any lt 80
access-list 103 permit tcp any range 100 120 any range 100 120
access-list 103 permit tcp any gt 1024 any gt 1023
(注) source port lt 80 と destination port lt 80 は、異なる演算と見なされるので注意してください。
• 一部のパケットはアカウンティング目的で CPU に送信する必要がありますが、アクションはそのままハードウェアで実行されます。たとえば、パケットのログが必要な場合、ログ収集のためにコピーが CPU に送信されますが、転送(またはドロップ)はハードウェアで実行されます。ロギングによって CPU の処理速度が低下しますが、転送速度は影響を受けません。この状況が発生するのは、次のような場合です。
– log キーワードが使用されている場合
– 出力 ACL でパケットが拒否された場合
– 入力 ACL がパケットを拒否した場合、および ACL が適用されるインターフェイス上で、
ip unreachable がイネーブルになっている場合( ip unreachable は、すべてのインターフェイスでデフォルトでイネーブルです)
ユニキャスト MAC アドレス フィルタリングの設定
特定の VLAN にある MAC アドレスのユニキャスト トラフィックをすべてブロックするには、次の作業を行います。
|
|
Switch(config)#
mac-address-table static
mac_address
vlan
vlan_ID
drop
|
特定の VLAN にある MAC アドレスのユニキャスト トラフィックをすべてブロックします。 MAC アドレスベースのブロッキングをクリアするには、このコマンドの no 形式を drop キーワードなしで使用します。 |
次に、VLAN 12 にある MAC アドレス 0050.3e8d.6400 のユニキャスト トラフィックをすべてブロックする例を示します。
Switch# configure terminal
Switch(config)# mac-address-table static 0050.3e8d.6400 vlan 12 drop
名前付き MAC 拡張 ACL の設定
VLAN および物理レイヤ 2 ポートで IPv4、IPv6 以外のトラフィックをフィルタリングするには、MAC アドレスおよび名前付き MAC 拡張 ACL を使用します。その手順は、他の名前付き拡張 ACL を設定する場合と同様です。アクセス リストの名前として番号を使用することもできますが、700 ~ 799 の MAC アクセス リスト番号はサポートされません。
(注) 名前付き MAC 拡張 ACL は、レイヤ 3 インターフェイスに適用できません。
mac access-list extended コマンドでサポートされている IP 以外のプロトコルの詳細については、『 Catalyst 4500 Series Switch Cisco IOS Command Reference 』を参照してください。
名前付きの MAC 拡張 ACL を作成するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# [no]
mac access-list extended
name
|
名前を使用して MAC 拡張アクセス リストを定義します。 ACL 全体を削除するには、 no mac access-list extended name グローバル コンフィギュレーション コマンドを使用します。名前付き MAC 拡張 ACL から ACE を個別に削除することもできます。 |
ステップ 3 |
Switch(config-ext-
macl)# {
deny |
permit } {
any |
host
source MAC address |
source MAC address mask } {
any |
host
destination MAC address |
destination MAC address mask } [
protocol-family {
appletalk |
arp-non-ipv4 |
decnet |
ipx | ipv6 (not supported on Sup 6-E and 6L-E)|
rarp-ipv4 |
rarp-non-ipv4 |
vines |
xns]
|
拡張 MAC アクセス リスト コンフィギュレーション モードでは、すべての( any )送信元 MAC アドレス、マスク付き送信元 MAC アドレス、または特定のホスト( host )送信元 MAC アドレス、およびすべての( any )宛先 MAC アドレス、マスク付き宛先 MAC アドレス、または特定の宛先 MAC アドレスに、 permit または deny を指定します。 (注) IPv6 パケットはレイヤ 2 ACL 検索キーを生成しません。 |
ステップ 4 |
Switch(config-ext-macl)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 5 |
Switch# show access-lists [number | name]
|
アクセス リストの設定を表示します。 |
ステップ 6 |
Switch(config)#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次に、DECnet Phase IV という EtherType のトラフィックだけを拒否し、その他のすべてのタイプのトラフィックを許可する、 mac1 という名前のアクセス リストを作成、表示する例を示します。
Switch(config)# mac access-list extended mac1
Switch(config-ext-macl)# deny any any decnet-iv (old) protocol-family decnet (new)
Switch(config-ext-macl)# permit any any
Switch(config-ext-macl)# end
Switch # show access-lists
Extended MAC access list mac1
deny any any decnet-iv (old) protocol-family decnet (new)
次に、アクセス リストの ACE を設定する際にハードウェア統計をイネーブルまたはディセーブルにする例を示します。
Enter configuration commands, one per line.End with CNTL/Z.
Switch(config)# mac access-list extended mac1
Switch(config-ext-nacl)# hardware statistics
Switch(config-ext-nacl)# end
Switch# show access-lists
Extended MAC access list macl
deny any any decnet-iv (old) protocol-family decnet (new)
EtherType マッチングの設定
IP 以外のトラフィックは、既存の MAC アクセス リスト コマンドを使用して、EtherType 値に基づいて分類できます。IP 以外のトラフィックを EtherType で分類する場合は、同じ EtherType を伝送するトラフィックに対してセキュリティ ACL および QoS ポリシーを適用できます。
EtherType マッチングは、タグ付き IP パケットとタグなし IP パケットを EtherType 値に基づいて分類することを可能にします。タグ付きパケットは、次のように動作上の潜在的な問題を示します。
• 一重タグ付きパケットはアクセス ポートとトランク ポートでサポートされますが、二重タグ付きパケットはサポートされません。
• ポート モードが dot1qtunnel の場合は、一重タグ付きパケットも二重タグ付きパケットもサポートされません。
mac access-list extended コマンドの詳細については、『 Catalyst 4500 Series Switch Cisco IOS Command Reference 』を参照してください。
名前付きの MAC 拡張 ACL を作成するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)# [no]
mac access-list extended
name
|
名前を使用して MAC 拡張アクセス リストを定義します。 ACL 全体を削除するには、 no mac access-list extended name グローバル コンフィギュレーション コマンドを使用します。名前付き MAC 拡張 ACL から ACE を個別に削除することもできます。 |
ステップ 3 |
Switch(config-ext-macl)# {
deny |
permit } {
any |
host
source MAC address |
source MAC address mask } {
any |
host
destination MAC address |
destination MAC address mask } [
protocol-family {
appletalk |
arp-non-ipv4 |
decnet |
ipx | ipv6 (not supported on Sup 6-E and 6L-E)|
rarp-ipv4 |
rarp-non-ipv4 |
vines |
xns } |
ethertype ]
|
拡張 MAC アクセス リスト コンフィギュレーション モードで、EtherTypes 値(有効な値は 15636 ~ 65535)に基づいて permit または deny any に指定します。 (注) EtherType またはプロトコル ファミリのいずれかで一致を指定できます。 |
ステップ 4 |
Switch(config-ext-macl)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 5 |
Switch# show access-lists [number | name]
|
アクセス リストの設定を表示します。 |
ステップ 6 |
Switch(config)#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次に、0x8863 と 0x8040 の EtherType 値を許可する matching という名前のアクセス リストを作成し、それを表示する例を示します。
Switch(config)# mac access-list extended matching
Switch(config-ext-macl)# permit any any 0x8863
Switch(config-ext-macl)# permit any any 0x8040
Switch(config-ext-macl)# end
Switch # show access-lists matching
Extended MAC access list matching
名前付き IPv6 ACL の設定
Supervisor Engine 6-E、Supervisor Engine 6L-E、Supervisor Engine 7-E、および Supervisor Engine 7L-E は、レイヤ 2 およびレイヤ 3 インターフェイスでユニキャスト、マルチキャスト、およびブロードキャスト IPv6 トラフィックをフィルタリングするために、ハードウェアベース IPv6 ACL もサポートしています。レイヤ 3 インターフェイス上ではこのように IPv6 アドレスで設定されるアクセス リストしか設定できません。
(注) IPv6 ACL の routing-type/mobility-type 拡張ヘッダー オプションはサポートされたことはありませんが、以前に設定可能でした。リリース IOS XE 3.4.0SG および IOS 15.1(2)SG の時点で、これらのオプションの設定は削除されました。
名前付き IPv6 ACL を作成するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
ipv6 access-list name
|
名前を使用して IPv6 アクセス リストを定義します。 IPv6 ACL を削除するには、このコマンドの no 形式を使用します。IPv6 アクセス リストから個々の ACE を削除することもできます。 |
ステップ 3 |
Switch(config-ipv6-acl)# {deny | permit} {any | proto} {host ipv6-addr | ipv6-prefix} host ipv6-addr | ipv6-prefix}
|
各 IPv6 ACE を指定します。 (注) ACL の複数の ACE を定義するには、この手順を繰り返します。 |
ステップ 4 |
Switch(config-ipv6-acl)#
hardware statistics
|
(任意)IPv6 ACL のハードウェア統計をイネーブルにします。 |
ステップ 5 |
Switch(config-ipv6-acl)#
end
|
特権 EXEC モードに戻ります。 |
ステップ 6 |
Switch# show ipv6 access-list
|
IPv6 アクセス リストの設定を表示します。 |
次に、1 つの特定の送信元と宛先アドレスを持つ 1 つの IPv6 トラフィックだけを拒否するが、他のすべての種類の IPv6 トラフィックは許可する v6test という名前の IPv6 アクセス リストを作成および表示する例を示します。
Switch(config)# ipv6 access-list v6test
Switch(config-ipv6-acl)# deny ipv6 host 2020::10 host 2040::10
Switch(config-ipv6-acl)# permit any any
Switch(config-ipv6-acl)# end
Switch# show ipv6 access-list
deny ipv6 host 2020::10 host 2040::10 sequence 10
permit ipv6 any any sequence 20
ハードウェア統計をイネーブルにするには、アクセス リストの ACE を設定する際に次のコマンドを入力します。
Switch(config)# ipv6 access-list v6test
Switch(config-ipv6-acl)# hardware statistics
Switch(config-ipv6-acl)# end
(注) ハードウェア統計は、デフォルトではディセーブルです。
レイヤ 2 およびレイヤ 3 インターフェイスに対する IPv6 ACL の適用
IPv6 ACL をレイヤ 3 インターフェイスに適用するには、次の作業を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
interface interface-type
slot/interface
|
設定するインターフェイスを指定します。 (注) interface-type は、レイヤ 3 インターフェイスである必要があります。 |
ステップ 3 |
Switch(config-if)#
ipv6 traffic-filter ipv6-acl {in|out}
|
IPv6 ACL をレイヤ 3 インターフェイスに適用します。 |
(注) IPv6 ACL は、レイヤ 3 インターフェイスおよびレイヤ 2 ポートでは ipv6 traffic-filter コマンドを使用してサポートされます。
次の例は、拡張名前付き IPv6 ACL simple-ipv6-acl を SVI 300 ルーテッド入力トラフィックに適用します。
Switch# configure terminal
Switch(config)# interface vlan 300
Switch(config-if)# ipv6 traffic-filter simple-ipv6-acl in
(注) ICMP オプションで一致する ACE を持つ出力 IPv6 ACL は、スイッチ上で失敗します。
次の条件では、RACL が正しく機能しなくなる可能性があります(回避策はありません)。
• ACLs は、インターフェイスの出力方向に適用されます。
• IPv6 ACL には、ICMP オプション フィールドで一致する Ace が含まれています(ICMP タイプまたは ICMP コード)。
次に、機能しない RACL の例を示します。
permit icmp any any nd-ns sequence 10
deny ipv6 any any sequence 20
permit icmp 2020::/96 any nd-ns sequence 10
deny ipv6 any any sequence 20
VLAN マップの設定
ここでは、次の内容について説明します。
• 「VLAN マップの設定時の注意事項」
• 「VLAN マップの作成および削除」
• 「VLAN への VLAN マップの適用」
• 「ネットワークでの VLAN マップの使用法」
ここでは、VLAN マップを設定する方法について説明します。この方法は、VLAN 内でフィルタリングを制御する唯一の方法です。VLAN マップには方向の指定がありません。VLAN マップを使用して、特定の方向のトラフィックをフィルタリングするには、特定の送信元または宛先アドレスが指定された ACL を追加する必要があります。VLAN マップ内に該当パケット タイプ(IP または MAC)に対する match 句がある場合、デフォルトでは、マップ内のどのエントリにも一致しないパケットはドロップされます。該当パケット タイプに対する match コマンドがない場合、デフォルトでは、パケットが転送されます。
VLAN マップを作成して、1 つまたは複数の VLAN に適用するには、次のステップを実行します。
ステップ 1 VLAN に適用する標準 IP ACL または拡張 IP ACL、または名前付き MAC 拡張 ACL を作成します。
ステップ 2 VLAN ACL マップ エントリを作成するには、 vlan access-map グローバル コンフィギュレーション コマンドを入力します。
アクセス マップ コンフィギュレーション モードでは、 action として、 forward (デフォルト)または drop を任意で入力できます。また、 match コマンドを入力して、既知の MAC アドレスだけが格納された IP パケットまたは IP 以外のパケットを指定したり、1 つまたは複数の ACL(標準または拡張)とパケットを照合することもできます。match コマンドが指定されていない場合は、すべてのパケットにアクションが適用されます。match コマンドを使用すると、パケットを複数の ACL と照合できます。指定された ACL のいずれかにパケットが一致すると、アクションが適用されます。
(注) 該当パケット タイプ(IP または MAC)に対する match 句が VLAN マップにある場合でも、パケットがそのタイプに一致しない場合、デフォルトではパケットがドロップされます。該当タイプのパケットに対する match コマンドが VLAN マップ内になく、それに対するアクションが指定されていない場合、パケットは転送されます。
ステップ 3 VLAN マップを 1 つまたは複数の VLAN に適用するには、 vlan filter インターフェイス コンフィギュレーション コマンドを使用します。
(注) レイヤ 2 インターフェイスに ACL(PACL)が適用されているスイッチ上の VLAN には、VLAN マップを適用できません。
VLAN マップの設定時の注意事項
VLAN マップを設定する場合は、次の注意事項に従ってください。
• VLAN マップは IPv4 アドレス解決プロトコル(ARP)パケットをフィルタリングしません。
• ルーテッド VLAN インターフェイス(入力または出力)でトラフィックを拒否するように設定されたルータ ACL が存在せず、VLAN マップが設定されていない場合は、すべてのトラフィックが許可されます。
• 各 VLAN マップは一連のエントリで構成されます。VLAN マップのエントリの順序は重要です。スイッチに着信したパケットは、VLAN マップの最初のエントリに対してテストされます。一致した場合は、VLAN マップのその部分に指定されたアクションが実行されます。一致しなかった場合、パケットはマップ内の次のエントリに対してテストされます。
• 該当パケット タイプ(IP または MAC)に対する match 句が VLAN マップに 1 つまたは複数ある場合でも、パケットがそれらの match 句に一致しない場合、デフォルトではパケットがドロップされます。該当パケット タイプに対する match 句が VLAN マップ内にない場合、デフォルトではパケットが転送されます。
• 多数の ACL が設定されている場合は、システムの起動に時間がかかることがあります。
VLAN マップの作成および削除
各 VLAN マップは順番に並べられた一連のエントリで構成されます。VLAN マップ エントリを作成、追加、または削除するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
vlan access-map
name [
number ]
|
VLAN マップを作成し、名前と、任意で番号を付けます。番号は、マップ内のエントリのシーケンス番号です。 同じ名前の VLAN マップを作成すると、10 ずつ増加する番号が順に割り当てられます。マップを変更または削除するときは、該当するマップ エントリの番号を入力できます。 このコマンドを入力すると、アクセスマップ コンフィギュレーション モードに変わります。 |
ステップ 3 |
Switch(config-access-map)#
action
{
drop
|
forward }
|
(任意)マップ エントリに対するアクションを設定します。デフォルトは転送(forward)です。 |
ステップ 4 |
Switch(config-access-map)#
match
{
ip | ipv6 |
mac }
address
{
name |
number }
[
name |
number ]
|
1 つまたは複数の標準または拡張アクセス リストとパケット(IP、IPv6、または MAC アドレスを使用)を照合します。パケットの比較は、対応するプロトコル タイプのアクセス リストに対してだけ行われます。IP パケットは、標準または拡張 IP アクセス リストに対して比較されます。IP 以外のパケットは、名前付き MAC 拡張アクセス リストに対してだけ比較されます。match コマンドが指定されていない場合は、すべてのパケットにアクションが実行されます。 |
ステップ 5 |
Switch(config-access-map)#
end
|
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
Switch(config)#
show running-config
|
アクセス リストの設定を表示します。 |
ステップ 7 |
Switch(config)#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
マップを削除するには、 no vlan access-map name グローバル コンフィギュレーション コマンドを使用します。マップ内の単一のシーケンス エントリを削除するには、 no vlan access-map name number グローバル コンフィギュレーション コマンドを使用します。デフォルトのアクションである転送を行うには、 no action アクセスマップ コンフィギュレーション コマンドを使用します。
VLAN マップでは、特定の permit または deny キーワードは使用されません。VLAN マップを使用してパケットを拒否するには、パケットと比較する ACL を作成して、アクションをドロップに設定します。ACL に permit を指定すると、一致と見なされます。ACL 内の deny は、一致しないという意味です。
ACL および VLAN マップの例
次に、特定の目的のための ACL および VLAN マップを作成する例を示します。
例 1
ここでは、パケットを拒否する ACL および VLAN マップを作成する例を示します。最初のマップでは、ip1 ACL(TCP パケット)に一致するすべてのパケットがドロップされます。最初に、すべての TCP パケットを許可し、それ以外のパケットをすべて拒否する ip1 ACL を作成します。VLAN マップには IP パケットに対する match 句が存在するため、デフォルトのアクションでは、どの match 句とも一致しない IP パケットがすべてドロップされます。
Switch(config)# ip access-list extended ip1
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 10
Switch(config-access-map)# match ip address ip1
Switch(config-access-map)# action drop
次に、パケットを許可する VLAN マップを作成する例を示します。ACL ip2 は UDP パケットを許可します。ip2 ACL と一致するすべてのパケットが転送されます。
Switch(config)# ip access-list extended ip2
Switch(config-ext-nacl)# permit udp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 20
Switch(config-access-map)# match ip address ip2
Switch(config-access-map)# action forward
このマップでは、これ以前のどの ACL とも一致しないすべての IP パケット(TCP でも UDP でもないパケット)がドロップされます。
例 2
次の例の VLAN マップでは、デフォルトで IP パケットがドロップされ、MAC パケットが転送されるように設定されています。標準の ACL 101、名前付き拡張アクセス リスト igmp-match および tcp-match を適用して、次のように VLAN マップを設定します。
• すべての UDP パケットが転送されます。
• すべての IGMP パケットがドロップされます。
• すべての TCP パケットが転送されます。
• その他のすべての IP パケットがドロップされます。
• すべての非 IP パケットが転送されます。
Switch(config)# access-list 101 permit udp any any
Switch(config)# ip access-list extended igmp-match
Switch(config-ext-nacl)# permit igmp any any
Switch(config)# ip access-list extended tcp-match
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-ip-default 10
Switch(config-access-map)# match ip address 101
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 20
Switch(config-access-map)# match ip address igmp-match
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 30
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
例 3
次の例の VLAN マップでは、デフォルトで MAC パケットがドロップされ、IP パケットが転送されるように設定されています。MAC 拡張アクセス リスト good-hosts および good-protocols を適用して、次のように VLAN マップを設定します。
• ホスト 0000.0c00.0111 および 0000.0c00.0211 からの MAC パケットが転送されます。
• DECnet または Virtual Integrated Network Service(VINES)プロトコル ファミリーの MAC パケットが転送されます。
• その他のすべての非 IP パケットがドロップされます。
• すべての IP パケットが転送されます。
Switch(config)# mac access-list extended good-hosts
Switch(config-ext-macl)# permit host 000.0c00.0111 any
Switch(config-ext-macl)# permit host 000.0c00.0211 any
Switch(config-ext-nacl)# exit
Switch(config)# mac access-list extended good-protocols
Switch(config-ext-macl)# permit any any protocol-family decnet
Switch(config-ext-macl)# permit any any protocol-family vines
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-mac-default 10
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-mac-default 20
Switch(config-access-map)# match mac address good-protocols
Switch(config-access-map)# action forward
例 4
次の例の VLAN マップでは、すべてのパケット(IP および IP 以外)がドロップされるように設定されています。アクセス リスト tcp-match および good-hosts を適用して、次のように VLAN マップを設定します。
• すべての TCP パケットが転送されます。
• ホスト 0000.0c00.0111 および 0000.0c00.0211 からの MAC パケットが転送されます。
• その他のすべての IP パケットがドロップされます。
• その他のすべての MAC パケットがドロップされます。
Switch(config)# vlan access-map drop-all-default 10
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-all-default 20
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
VLAN への VLAN マップの適用
1 つの VLAN マップを 1 つまたは複数の VLAN に適用するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
vlan filter
mapname
vlan-list
list
|
VLAN マップを 1 つまたは複数の VLAN に適用します。 list には単一の VLAN ID(22)、連続した範囲(10 ~ 22)、または VLAN ID のストリング(12、22、30)を指定できます。カンマやハイフンの前後にスペースを挿入することもできます。 |
ステップ 3 |
Switch(config)#
show running-config
|
アクセス リストの設定を表示します。 |
ステップ 4 |
Switch(config)#
copy running-config startup-config
|
(任意)コンフィギュレーション ファイルに設定を保存します。 |
(注) レイヤ 2 インターフェイスに ACL(PACL)が適用されているスイッチ上の VLAN には、VLAN マップを適用できません。
次に、VLAN マップ 1 を VLAN 20 ~ 22 に適用する例を示します。
Switch(config)# vlan filter map 1 vlan-list 20-22
ネットワークでの VLAN マップの使用法
図 52-3 に、一般的なワイヤリングクローゼットの構成を示します。ホスト X およびホスト Y は異なる VLAN 内にあり、ワイヤリング クローゼット スイッチ A およびスイッチ C に接続されています。ホスト X からホスト Y へのトラフィックは、スイッチ B によってルーティングされます。ホスト X からホスト Y へのトラフィックは、トラフィックのエントリ ポイントであるスイッチ A でアクセス コントロールできます。次の構成では、スイッチは VLAN マップと QoS 分類 ACL をサポートします。
図 52-3 ワイヤリング クローゼットの設定
たとえば、HTTP トラフィックをホスト X からホスト Y へスイッチングしない場合は、スイッチ A に VLAN マップを適用し、ホスト X(IP アドレス 10.1.1.32)からホスト Y(IP アドレス 10.1.1.34)への HTTP トラフィックがスイッチ B にブリッジングされずに、すべてスイッチ A でドロップされるようにすることもできます。このように設定するには、次の手順を実行します。
最初に、HTTP ポートですべての TCP トラフィックを許可(一致)する IP アクセス リスト http を定義します。
Switch(config)# ip access-list extended http
Switch(config-ext-nacl)# permit tcp host 10.1.1.32 host 10.1.1.34 eq www
Switch(config-ext-nacl)# exit
次に、VLAN アクセス マップ map2 を作成し、http アクセス リストと一致するトラフィックがドロップされ、その他すべての IP トラフィックが転送されるようにします。
Switch(config)# vlan access-map map2 10
Switch(config-access-map)# match ip address http
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# ip access-list extended match_all
Switch(config-ext-nacl)# permit ip any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map2 20
Switch(config-access-map)# match ip address match_all
Switch(config-access-map)# action forward
次に、VLAN アクセス マップ map2 を VLAN 1 に適用します。
Switch(config)# vlan filter map2 vlan 1
別の VLAN にあるサーバへのアクセスの拒否
図 52-4 に、別の VLAN にあるサーバへのアクセスを制限する方法を示します。この例では、VLAN 10 内のサーバ 10.1.1.100 に対しては、次のようにアクセスが制限されています。
• VLAN 20 内のサブネット 10.1.2.0/8 にあるホストのアクセスを禁止します。
• VLAN 10 内のホスト 10.1.1.4 および 10.1.1.8 のアクセスを禁止します。
図 52-4 他の VLAN 上のサーバへのアクセス拒否
この手順では、別の VLAN にあるサーバへのアクセスを拒否するように VLAN マップを使用して ACL を設定します。VLAN マップ SERVER 1_ACL は、サブネット 10.1.2.0/8 内のホスト、ホスト 10.1.1.4、およびホスト 10.1.1.8 のアクセスを拒否します。一方、その他すべての IP トラフィックを許可します。ステップ 3 では、VLAN 10 に VLAN マップ SERVER1 を適用します。
このように設定するには、次の手順を実行します。
ステップ 1 対応するパケットと照合し、許可する IP ACL を定義します。
Switch(config)# ip access-list extended SERVER1_ACL
Switch(config-ext-nacl))# permit ip 10.1.2.0 0.0.0.255 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.4 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.8 host 10.1.1.100
Switch(config-ext-nacl))# exit
ステップ 2 SERVER1_ACL と一致する IP パケットをドロップして、一致しない IP パケットを転送するこの ACL を使用して、VLAN マップを定義します。
Switch(config)# vlan access-map SERVER1_MAP
Switch(config-access-map)# match ip address SERVER1_ACL
Switch(config-access-map)# action drop
Switch(config)# vlan access-map SERVER1_MAP 20
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
ステップ 3 VLAN 10 に VLAN マップを適用します。
Switch(config)# vlan filter SERVER1_MAP vlan-list 10.
VLAN アクセス マップ情報の表示
VLAN アクセス マップまたは VLAN フィルタに関する情報を表示するには、次のいずれかの作業を行います。
|
|
Switch#
show vlan access-map [
mapname ]
|
すべての VLAN アクセス マップまたは指定されたアクセス マップに関する情報を表示します。 |
Switch#
show vlan filter [
access-map
name |
vlan
vlan-id ]
|
すべての VLAN フィルタ、または指定された VLAN や VLAN アクセス マップに関する情報を表示します。 |
次に、 show vlan access-map コマンドの出力例を示します。
Switch# show vlan access-map
Vlan access-map "map_1" 10
Vlan access-map "map_1" 20
Vlan access-map "map_1" 30
(注) シーケンス 30 には match コマンドがありません。すべてのパケット(IP および IP 以外)はこれと照合されてドロップされます。
次に、 show vlan filter コマンドの出力例を示します。
VLAN Map map_1 is filtering VLANs:
ルータ ACL を VLAN マップと組み合わせて使用する方法
該当タイプ(IP または MAC)のパケットに対する match コマンドが VLAN マップにある場合でも、パケットがそのタイプに一致しない場合、デフォルトでは、パケットがドロップされます。VLAN マップ内に match コマンドがなく、アクションが指定されていない場合、どの VLAN マップ エントリとも一致しないパケットは転送されます。
(注) 1 つのスイッチ上で、VLAN マップまたは入力ルータ ACL を組み合わせて使用することはできません。
次の内容について説明します。
• 「ルータ ACL と VLAN マップを同一 VLAN 上で使用する場合の注意事項」
• 「VLAN に適用されるルータ ACL と VLAN マップの例」
ルータ ACL と VLAN マップを同一 VLAN 上で使用する場合の注意事項
スイッチ ハードウェアは、方向(入力および出力)ごとに、1 回の検索を実行するので、ルータ ACL および VLAN マップを同じ VLAN に設定する場合は、これらを統合する必要があります。ルータ ACL を VLAN マップと統合すると、ACE の数が急激に増加することがあります。
できるだけ末尾のデフォルト アクションを除くすべてのエントリのアクションが同一となるように、ACL を記述します。次のいずれかの形式を使用して ACL を記述します。
permit...
permit...
permit...
deny ip any any
または
deny...
deny...
deny...
permit ip any any
ACL 内で複数の許可または拒否アクションを定義する場合は、それぞれのアクション タイプをまとめて、エントリ数を削減します。
IP ACE とレイヤ 4 情報を含む TCP/UDP/ICMP ACE が両方とも ACL 内に存在し、full-flow モードを指定する必要があるときは、レイヤ 4 ACE をリストの末尾に配置します。この結果、IP アドレスに基づくトラフィックのフィルタリングが優先されます。
VLAN に適用されるルータ ACL と VLAN マップの例
以下の例では、ルータ ACL および VLAN マップを VLAN に適用して、スイッチド パケット、ブリッジド パケット、ルーテッド パケット、およびマルチキャスト パケットへのアクセスを制御します。次の図では、それぞれの宛先に転送されるパケットを示します。ただし、パケットのパスが VLAN マップや ACL を示す回線と交差するポイントごとで、パケットを転送しないでドロップすることもできます。
ACL およびスイッチド パケット
図 52-5 に、VLAN 内でスイッチングされるパケットを ACL が処理する方法を示します。VLAN 内でスイッチングされるパケットは、ルータ ACL では処理されません。
図 52-5 スイッチド パケットへの ACL の適用
ACL およびルーテッド パケット
図 52-6 に、ルーテッド パケットに ACL を適用する方法を示します。ルーテッド パケットの場合、ACL は次の順番で適用されます。
1. 入力 VLAN の VLAN マップ
2. 入力ルータ ACL
3. 出力ルータ ACL
4. 出力 VLAN の VLAN マップ
図 52-6 ルーテッド パケットへの ACL の適用
PACL の設定
ここでは、PACL を設定する方法について説明します。PACL は、レイヤ 2 インターフェイス上のフィルタリングを制御するのに使用されます。PACL は、レイヤ 3 情報、レイヤ 4 ヘッダー情報または IP 以外のレイヤ 2 情報に基づいて、レイヤ 2 インターフェイスのトラフィックをフィルタリングできます。
ここでは、次の内容について説明します。
• 「PACL の作成」
• 「PACL 設定時の注意事項」
• 「ポート ACL の要件の削除」
• 「Webauth フォールバック」
• 「レイヤ 2 インターフェイス上での IPv4、IPv6、および MAC の ACL の設定」
• 「アクセス グループ モードを PACL と併用する方法」
• 「レイヤ 2 インターフェイス上でのアクセス グループ モードの設定」
• 「レイヤ 2 インターフェイスへの ACL の適用」
• 「レイヤ 2 インターフェイス上の ACL 設定の表示」
PACL の作成
PACL を作成し、1 つ以上のインターフェイスに適用するには、次の手順を実行します。
ステップ 1 インターフェイスに適用する標準 IPv4 ACL または拡張 IPv4 ACL、IPv6 ACL、または名前付き MAC 拡張 ACL を作成します。
ステップ 2 1 つまたは複数のレイヤ 2 インターフェイスに、IPv4、IPv6、または MAC ACL を適用するには、IP access-group、ipv6 traffic-filter、または mac access-group interface コマンドを使用します。
PACL 設定時の注意事項
PACL を設定する場合、次の注意事項を考慮してください。
• 方向単位で同じレイヤ 2 インターフェイスに適用可能な IPv4、IPv6、および MAC アクセス リストは、それぞれ、最大 1 つです。
• IPv4 アクセス リストは IPv4 パケットだけ、IPv6 アクセス リストは IPv6 パケットだけ、MAC アクセス リストは非 IP パケットだけをフィルタリングします。
• PACL の一部として設定できる ACL と ACE の数は、スイッチのハードウェア リソースにより制限されます。これらのハードウェア リソースは、システムに設定された各 ACL 機能(RACL、VACL など)で共有されます。ハードウェアに PACL をプログラミングするのに十分なハードウェア リソースがない場合、入力 PACL と出力 PACL のアクションが異なります。
– 入力 PACL では、一部のパケットがソフトウェア転送のために CPU に転送されます。
– 出力 PACL では、PACL がポート上でディセーブルに設定されます。
• ハードウェアに PACL をプログラミングするのに十分なハードウェア リソースがない場合、出力 PACL はポートに適用されず、警告メッセージが表示されます。
• ロギングは出力 ACL ではサポートされませんが、入力 ACL のロギング オプションはサポートされます。
• アクセス グループ モードを使用して、その他の ACL との PACL の対話形式を変更できます。シスコのプラットフォームにおいて動作の一貫性を保つためには、デフォルトのアクセス グループ モードを使用します。
• ポートにアクティブなセッションがあるときに PACL を取り外すと、ポートにホール(すべての IP を許可します)が生じます。
ポート ACL の要件の削除
Cisco IOS Release 12.2(54) SG よりも前に、AAA サーバから ACL をダウンロードする場合は標準ポート ACL が必要でした。これは、ポートと ACL を関連付けずに、アクセス コントロール エントリを動的に作成するために、ACL のインフラストラクチャが不十分であったためです。
Cisco IOS Release 12.2(54) SG から、ポート ACL の設定は必須ではなくなりました。ポート ACL がポートで(ip access-group number in コマンドを入力して)設定されていない場合、ACL をダウンロードしたときに、デフォルト ACL(認証デフォルト ACL)はそのポートに自動的に対応付けられます。これは、DHCP のトラフィックだけを許可し、次の ACE で構成されます。
permit udp any range bootps 65347 any range bootpc 65348
permit udp any any range bootps 65347
認証デフォルト ACL は、自動的に作成されます。これを変更するには、次のコマンドを入力します。
ip access-list extended AUTH-DEFAULT-ACL
この ACL は、Nonvolatile Generation(NVGEN)されません。ダイナミック ACL(ユーザ単位/フィルタ ID/DACL)を適用するセッションがあることを条件として、認証デフォルト ACL が対応付けられます。認証デフォルト ACL は、ポリシーの最後の認証セッションがクリアされると削除されます。少なくとも 1 セッションがダイナミック ポリシーを適用していることを条件として、ポートに対応付けられたままになります。
設定の制約事項
次の制約事項が適用されます。
• Cisco IOS Release 12.2(54) SG 以降、ポート ACL の設定は必須ではありません。デフォルト ACL が自動的に作成されます。
• 認証デフォルト ACL が変更されても、Nonvolatile Generation(NVGEN)の対象とはなりません。
デバッグに関する考慮事項
コンフィギュレーション モードで epm logging コマンドを入力した場合、認証デフォルト ACL をインターフェイスに対応付けるか、インターフェイスから取り外したときに、syslog メッセージが表示されます。
次の syslog は、デフォルトの ACL を対応付けると表示されます。
%EPM-6-AUTH_ACL: POLICY Auth-Default-ACL| EVENT CREATE-ATTACH-SUCCESS
次の Syslog は、ACL の対応付けが解除されると表示されます。
%EPM-6-AUTH_ACL: POLICY Auth-Default-ACL| EVENT DETACH-SUCCESS
%EPM-6-AUTH_ACL: POLICY Auth-Default-ACL| EVENT DELETE-SUCCESS
Webauth フォールバック
多くの認証方式では、エンド ポイント デバイスの特定の機能がアイデンティティまたはクレデンシャルを使用して、ネットワーク認証デバイスに応答する必要があります。エンド ポイントに必要な機能がない場合は、オーセンティケータは、代替手段にフォールバックして、ホストまたはユーザのクレデンシャルを収集する必要があります。802.1X/MAB 認証メカニズムに障害が発生すると、WebAuth へのフォールバックが発生する可能性があります。
Cisco IOS Release 12.2(54) SG よりも前に、Webauth フォールバックの実装では、認証デバイスで設定されたフォールバック プロファイルが必要でした。このプロファイルの一部として、アドミッション ルールは、アクセス ポリシー(フォールバック ACL)とともに設定する必要があります。
ポート ACL がポートで設定されていない場合を考えてみます。802.1X/MAB を通じて最初に認証された少数のホストは、ACL をダウンロードしません。これらのホストからのトラフィックはすべて許可されます。ここで、ホストがポートに接続し、ホストを認証するために WebAuth へのフォールバックが発生すると仮定します。フォールバック ACL がポートにインストールされ、以前に認証されたホストからのトラフィックも、このフォールバック ACL によって制限されます。
Cisco IOS Release 12.2(54) SG 以降では、別の方法を使用して、この問題に対処します。ホストが認証のために WebAuth にフォールバックする場合、フォールバック ACL の ACE エントリは、フォールバックしたホストのホスト IP を挿入したエントリに変換され、ホストが認証されるまで適用されます。ホストが認証に成功すると、フォールバック ACL は削除されます。その結果、生成されるホスト ACL は、ダイナミック ACL およびポート ACL/認証デフォルト ACL になります。認証デフォルト ACL の詳細については、前の項を参照してください。
レイヤ 2 インターフェイス上での IPv4、IPv6、および MAC の ACL の設定
(注) レイヤ 2 物理インターフェイスに適用できるのは、IPv4、IPv6、および MAC の ACL だけです。
(番号付き、名前付き)標準 IP ACL、(番号付き、名前付き)拡張 IP ACL、および名前付き拡張 MAC ACL もサポートされています。
レイヤ 2 インターフェイス上に IPv4 ACL または MAC ACL を適用するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
interface interface
|
インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Switch(config-if)#
[no] {ip | mac} access-group {name | number} {in | out}
|
レイヤ 2 インターフェイス上にアクセス グループ モードを設定します。no 形式は、レイヤ 2 インターフェイスから IP ACL または MAC ACL を削除します。 |
ステップ 4 |
Switch(config)#
show running-config
|
アクセス リストの設定を表示します。 |
レイヤ 2 インターフェイス上に IPv6 ACL を適用するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
interface interface
|
インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Switch(config-if)#
[no] ipv6 traffic-filter name {in | out}
|
レイヤ 2 インターフェイスに、指定した IPv6 ACL が適用されます。no 形式は、レイヤ 2 インターフェイスから IPv6 ACL を削除します。 |
ステップ 4 |
Switch(config)#
show running-config
|
アクセス リストの設定を表示します。 |
次に、すべての TCP トラフィックを許可し、暗黙的にその他すべての IP トラフィックを拒否する名前付き拡張 IP ACL simple-ip-acl を設定する例を示します。
Switch(config)# interface Gi3/1
Switch(config-if)# ip access-list extended simple-ip-acl
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# end
次に、送信元ホスト 000.000.011 をすべての宛先ホストで許可する、名前付き拡張 MACL simple-mac-acl を設定する例を示します。
Switch(config)# interface Gi3/1
Switch(config-if)# mac access-list extended simple-mac-acl
Switch(config-ext-macl)# permit host 000.000.011 any
Switch(config-ext-macl)# end
アクセス グループ モードを PACL と併用する方法
アクセス グループ モードを使用して、その他の ACL との PACL の対話形式を変更できます。たとえば、レイヤ 2 インターフェイスが VLAN 100 に属する場合、VACL(VLAN フィルタ)V1 は VLAN 100 上に適用され、PACL P1 がレイヤ 2 インターフェイス上に適用されます。この状況では、VLAN 100 上のレイヤ 2 インターフェイスのトラフィックに P1 と V1 がどのように影響するかを指定する必要があります。インターフェイス単位の方式では、access-group mode コマンドを使用して、次の望ましいモードのいずれかを指定します。
• prefer port モード:PACL がレイヤ 2 インターフェイス上に設定されている場合、PACL が有効になり、その他の ACL(ルータ ACL と VACL)を無効にします。レイヤ 2 インターフェイス上に PACL 機能が設定されていない場合、その他の適用可能な機能がこのインターフェイスに統合され、インターフェイス上に適用されます。これがデフォルトのアクセス グループ モードです。
• prefer VLAN モード:ポートに VLAN ベースの ACL 機能が適用され、PACL が無効の場合は、VLAN ベースの ACL 機能が有効になります。レイヤ 2 インターフェイスに VLAN ベースの ACL 機能が適用できない場合、インターフェイス上の既存の PACL 機能が適用されます。
• merge モード:ハードウェアにプログラミングされる前に、適用可能な ACL 機能を統合します。
レイヤ 2 インターフェイス上でのアクセス グループ モードの設定
レイヤ 2 インターフェイス上にアクセス モードを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
interface interface
|
インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Switch(config-if)#
[no] access-group mode {prefer {port | vlan} | merge}
|
レイヤ 2 インターフェイス上にアクセス グループ モードを設定します。no 形式は、レイヤ 2 インターフェイスから IP ACL または MAC ACL を削除します。 |
ステップ 4 |
Switch(config)#
show running-config
|
アクセス リストの設定を表示します。 |
次に、PACL 以外の機能を統合して、インターフェイス上に適用する例を示します。
Switch# configure terminal
Switch(config)# interface fast 6/1
Switch(config-if)# access-group mode prefer port
次に、ハードウェアにプログラミングされる前に、適用可能な ACL 機能を統合する例を示します。
Switch# configure terminal
Switch(config)# interface fast 6/1
Switch(config-if)# access-group mode merge
レイヤ 2 インターフェイスへの ACL の適用
レイヤ 2 インターフェイスに IPv4、IPv6、および MAC の ACL を適用するには、次の作業のいずれかを行います。
|
|
Switch(config-if)# ip access-group ip-acl {in | out}
|
IPv4 ACL をレイヤ 2 インターフェイスに適用します。 |
Switch(config-if)# ipv6 traffic-filter ipv6-acl {in | out}
|
IPv6 ACL をレイヤ 2 インターフェイスに適用します。 |
Switch(config-if)# mac access-group mac-acl {in | out}
|
レイヤ 2 インターフェイスに MAC ACL を適用します。 |
次に、名前付き拡張 IP ACL simple-ip-acl をファスト イーサネット インターフェイス 6/1 の入力トラフィックに適用する例を示します。
Switch# configure terminal
Switch(config)# interface fast 6/1
Switch(config-if)# ip access-group simple-ip-acl in
次に、IPv6 ACL simple-ipv6-acl をファスト イーサネット インターフェイス 6/1 の入力トラフィックに適用する例を示します。
Switch# configure terminal
Switch(config)# interface fast 6/1
Switch(config-if)# ipv6 traffic-filter simple-ipv6-acl in
次に、名前付き拡張 MAC ACL simple-mac-acl をファスト イーサネット インターフェイス 6/1 の出力トラフィックに適用する例を示します。
Switch# configure terminal
Switch(config)# interface fast 6/1
Switch(config-if)# mac access-group simple-mac-acl out
レイヤ 2 インターフェイス上の ACL 設定の表示
レイヤ 2 インターフェイス上の ACL 設定に関する情報を表示するには、次のいずれかの作業を行います。
|
|
Switch# show ip interface [interface-name]
|
インターフェイス上の IP アクセス グループ設定を表示します。 |
Switch# show mac access-group interface [interface-name]
|
インターフェイス上の MAC アクセス グループ設定を表示します。 |
Switch# show access-group mode interface [interface-name]
|
インターフェイス上のアクセス グループ モード設定を表示します。 |
次に、IP アクセス グループ simple-ip-acl がインターフェイス fa6/1 の着信方向に設定されている例を示します。
Switch# show ip interface fast 6/1
FastEthernet6/1 is up, line protocol is up
Inbound access list is simple-ip-acl
Outgoing access list is not set
次に、MAC アクセス グループ simple-mac-acl がインターフェイス fa6/1 の着信方向に設定されている例を示します。
Switch# show mac access-group interface fast 6/1
Interface FastEthernet6/1:
Inbound access-list is simple-mac-acl
Outbound access-list is not set
次に、アクセス グループ統合がインターフェイス fa6/1 に設定されている例を示します。
Switch# show access-group mode interface fast 6/1
Interface FastEthernet6/1:
Access group mode is: merge
VLAN マップおよびルータを PACL と併用する方法
PACL で、ルータ ACL および VACL との相互作用は、 表 52-1 に示すインターフェイス アクセス グループ モードによって異なります。
表 52-1 PACL、VACL、およびルータ ACL の相互作用
|
|
|
prefer port モード |
prefer vlan モード |
merge モード |
1. 入力ルータ ACL |
PACL が適用される |
入力ルータ ACL が適用される |
PACL、入力ルータ ACL(統合)の順で適用される(入力側) |
2. VACL |
PACL が適用される |
VACL が適用される |
PACL、VACL(統合)の順で適用される(入力側) |
3. VACL と入力ルータ ACL |
PACL が適用される |
VACL+ 入力ルータ ACL が適用される |
PACL、VACL、入力ルータ ACL(統合)の順で適用される(入力側) |
表 52-1 に表示される各 ACL のタイプは、次のシナリオに対応します。
シナリオ 1:ホスト A は、SVI が設定された VLAN 20 のインターフェイスに接続されています。図 52-7 で示すように、インターフェイスには入力 PACL が設定され、SVI には入力ルータ ACL が設定されています。
図 52-7 シナリオ 1:入力ルータ ACL との PACL の相互作用
インターフェイス アクセス グループ モードが prefer port の場合、ホスト A からの入力トラフィックに適用されるのは入力 PACL だけです。モードが prefer VLAN の場合、ルーティングを必要とするホスト A からの入力トラフィックに適用されるのは入力ルータ ACL だけです。モードが merge である場合、入力 PACL が最初にホスト A からの入力トラフィックに適用され、次に入力ルータ ACL がルーティングを必要とするトラフィックに適用されます。
シナリオ 2:ホスト A は、VLAN 10 のインターフェイスに接続されています。図 52-8 で示すように、VLAN 10 には、VACL(VLAN マップ)と入力 PACL が設定されています。
図 52-8 シナリオ 2:PACL の VACL との相互作用
インターフェイス アクセス グループ モードが prefer port の場合、ホスト A からの入力トラフィックに適用されるのは入力 PACL だけです。モードが prefer VLAN の場合、VACL だけがホスト A からの入力トラフィックに適用されます。モードが merge の場合、最初に入力 PACL がホスト A からの入力トラフィックに適用され、その後 VACL がそのトラフィックに適用されます。
シナリオ 3:ホスト A は、VACL と SVI が設定された VLAN 10 のインターフェイスに接続されています。図 52-9 で示すように、SVI には入力ルータ ACL が設定されていて、インターフェイスには入力 PACL が設定されています。
図 52-9 シナリオ 3:VACL と入力ルータ ACL
インターフェイス アクセス グループ モードが prefer port の場合、ホスト A からの入力トラフィックに適用されるのは入力 PACL だけです。モードが prefer VLAN の場合、VACL と入力ルータ ACL の統合結果がホスト A からの入力トラフィックに適用されます。モードが merge の場合は、入力 PACL が、最初に、ホスト A からの入力トラフィックに適用され、次に、VACL がトラフィックに適用され、最後に、入力ルータ ACL がルーティングを必要とするトラフィックに適用されます (つまり、入力 PACL、VACL、および入力ルータ ACL の統合結果がトラフィックに適用されます)。
RA ガードの設定
ここでは、次の内容について説明します。
• 「概要」
• 「配備」
• 「RA ガードの設定」
• 「例」
• 「使用上のガイドライン」
概要
IPv6 ネットワークを配備する場合、ルータは、IPv6 ルータ アドバタイズメントを使用して、オンリンクのホストに設定情報を伝送するように設定されます。ルータ アドバタイズメントは、自動設定プロセスの重要な部分です。伝送される情報には、ルータ アドバタイズメント(RA)メッセージの観察対象の送信元アドレスから取得された暗黙デフォルト ルータ アドレスが含まれます。ただし、一部のネットワークでは、無効な RA が観察されます。これは、設定ミス、またはネットワーク上の悪意のある攻撃によって、発生することがあります。
不正なルータとして動作しているデバイスが、不正な RA を送信することがあります。単一のレイヤ 2 ネットワーク セグメント内で IPv6 を使用している場合、エンドノードに到達する前に不正な RAS をドロップできるようにレイヤ 2 デバイスを設定できます。
Supervisor Engine 6-E(および 6L-E)を搭載した Cisco IOS Release 54(SG)SG、Supervisor Engine 7-E を搭載した Cisco IOS XE Release 3.3.0SG、Supervisor Engine 7L-E を搭載した Cisco IOS XE Release 3.2.0XO 以降、Catalyst 4500 シリーズ スイッチは、RA ガードをサポートします。この機能は、着信ルータ アドバタイズメントとルータ リダイレクト パケットを検査し、メッセージとレイヤ 2 デバイス設定で検出された情報だけに基づいて、これらをスイッチングするか、またはブロックするかを決定します。
ポートに接続されているデバイスに基づいて、2 つのモードの RA ガード(ホストおよびルータ)を設定できます。
• ホスト モード:すべてのルータ アドバタイズメントとルータ リダイレクト メッセージがポートで拒否されます。
• ルータ モード:すべてのメッセージ(RA/RS/Redirect)がポートで許可されます。ホスト モードだけがサポートされます。
RA メッセージを許可または拒否するように Catalyst 4500 ホスト ポートを設定できます。ルータ アドバタイズメントとルータ リダイレクト パケットを拒否するようにポートを設定した場合、ポートは、受信したフレームの内容をフィルタリングし、ルータ アドバタイズメントまたはルータ リダイレクト フレームをブロックします。
RA ガードがポートで設定されている場合、次のパケットがハードウェアでドロップされます。
• ルータ アドバタイズメント パケット:ICMP タイプ = 134 の IPv6 ICMP パケット
• ルータ リダイレクト パケット:ICMP タイプ = 137 の IPv6 ICMP パケット
ポート単位 RA ガード ACL の統計情報がサポートされ、show ipv6 snooping counters インターフェイス コマンドを入力すると表示されます。統計情報の出力では、RA ガードによってポートごとにドロップされたパケット数が表示されます。
(注) Cisco IOS Release 15.0(2)SG 以降、ポート単位 RA ガード ACL の統計情報がサポートされ、show ipv6 snooping counters インターフェイス コマンドを入力すると表示されます。(このリリースよりも前では、show ipv6 first-hop counters インターフェイス コマンドを入力します)。
配備
図 52-10 には、RA ガードのための配備シナリオを示します。ホストに接続されているポートからの RA パケットをドロップし、ルータに接続されているポートからの RA パケットを許可します。
図 52-10 一般的な RA ガードの配備
RA ガードの設定
RA ガードを設定するには、次の手順を実行します。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 1 |
Switch(config)#
interface interface
|
インターフェイス モードを開始します。 |
ステップ 2 |
Switch(config-if)#
[no] ipv6 nd raguard
|
スイッチで、RA ガードをイネーブルにします。 |
ステップ 3 |
|
特権 EXEC モードに戻ります。 |
ステップ 4 |
Switch#
show ipv6 nd raguard policy policy_name
|
RA ガードがイネーブルにされたポリシーを表示します。 (注) Cisco IOS XE リリース 3.4.0SG および IOS 15.1(2)SG では、show ipv6 nd raguard policy コマンドは、show ipv6 first-hop policies コマンドを置き換えるものです。 |
ステップ 5 |
Switch#
show ipv6 first-hop counters interface
|
RA ガードによって、ポートごとにドロップされたパケット数を表示します。カウンタは、特定のインターフェイスに対して interface オプションを使用して表示できます。 (注) カウンタがポートでイネーブルになっていない場合、カウンタの値はゼロです。 |
ステップ 6 |
Switch#
clear ipv6 snooping counters interface
|
特定のインターフェイスで RA ガード カウンタをクリアします。 interface オプションが指定されていない場合、すべてのインターフェイスのカウンタはクリアされます。 |
例
次に、スイッチの RA ガードをイネーブルにする例を示します。
Switch(config)# int gi1/1
Switch(config-if)# ipv6 nd raguard
Switch# show running-configuration interface gi1/1
Building configuration...
Current configuration : 53 bytes
interface GigabitEthernet1/1
次に、show ipv6 コマンドの出力例を示します。
Switch# show ipv6 snooping counters int gi 2/48
Received messages on gi 2/48 :
Protocol Protocol message
NDP RS[9] RA[131] NS[7] NA[2]
DHCPv6 SOL[24] ADV[2] REQ[1] REP[1]
Bridged messages from gi 2/48 :
Protocol Protocol message
DHCPv6 SOL[24] ADV[1] REQ[1] REP[1]
Dropped messages on gi 2/48 :
Feature Protocol Msg [Total dropped]
reason: Packet not authorized on port [131]
reason: Packet accepted but not forwarded [2]
(注) Cisco IOS Release 15.0(2)SG 以降、ポート単位 RA ガード ACL の統計情報がサポートされ、show ipv6 snooping counters インターフェイス コマンドを入力すると表示されます。(このリリースよりも前では、show ipv6 first-hop counters インターフェイス コマンドを入力します)。
(注) RA(ルータ アドバタイズメント)カウンタと REDIR(ルータ リダイレクト パケット)カウンタだけが 12.2(54) SG でサポートされていることに注意してください。
Switch# show ipv6 nd raguard policy RA_GUARD
Policy RA_GUARD configuration:
Policy RA_GUARD is applied on the following targets:
Target Type Policy Feature Target range
Gi 1/1 PORT RA_GUARD RA guard vlan all
(注) Cisco IOS XE リリース 3.4.0SG および IOS 15.1(2)SG では、show ipv6 nd raguard policy コマンドは、show ipv6 first-hop policies コマンドを置き換えるものです。
使用上のガイドライン
次の制約事項に従ってください。
• これは、入力機能です。ポートを通じて受信した IPv6 ルータ アドバタイズメントとルータ リダイレクト パケットだけをフィルタリングします。
• RA ガードは、IPv6 トラフィックがトンネリングされる環境では保護を行いません。
• IOS XE 3.4.0SG/15.1(2)SG 以降では、RA ガードはソフトウェアでサポートされます。以前のリリースでは、この機能は、ハードウェアだけでサポートされます。パケットはリソース不足(たとえば、TCAM メモリ不足など)の場合を除いて、ソフトウェアにパントされません。
• RA ガードは純粋なレイヤ 2 ポート ベース機能で、スイッチポートだけで設定できます。これは、IPv6 ルーティングがイネーブルかどうかに関係なく、動作します。スイッチポートと VLAN でサポートされます。
• RA ガードは、トランク ポートと VLAN でサポートされます。フィルタリングは、許可されるすべての VLAN から着信したパケットで実行されます。
• IOS XE 3.4.0SG/15.1(2)SG 以降では、RA ガードは EtherChannel ではサポートされません。以前のリリースでは、RA ガードは、EtherChannel でサポートされます。EtherChannel の RA ガード設定は(存在するかどうかにかかわらず)、メンバ ポートの RA ガード設定を上書きします。
• RA ガードは、PVLAN に属するポートでサポートされます(たとえば、独立セカンダリ ホスト ポート、コミュニティ セカンダリ ホスト ポート、無差別プライマリ ホスト ポート、(プライマリ/セカンダリ)トランク ポートなど)。プライマリ VLAN 機能は継承され、ポート機能とマージされます。
• IOS XE 3.4.0SG/15.1(2)SG 以降では、RA ガードは SUP-6、SUP6L-E、4948E、SUP-7E、SUP7L-E、4500X-32 および 4500X-16 プラットフォームでサポートされます。以前のリリースでは、ハードウェアの制限により、Catalyst 4900M、Catalyst 4948E、Catalyst 4948L-E、Supervisor Engine 6-E、Supervisor Engine 6L-E、Supervisor Engine 7-E、および Supervisor Engine 7L-E では、RA ガードの統計情報をハードウェアで収集できないことがあります。その場合は、エラー メッセージが表示されます。
show ipv6 snooping counters インターフェイス コマンドは、推定カウンタを表示します。
(注) Cisco IOS Release 15.0(2)SG 以降、ポート単位 RA ガード ACL の統計情報がサポートされ、show ipv6 snooping counters インターフェイス コマンドを入力すると表示されます。(このリリースよりも前では、show ipv6 first-hop counters インターフェイス コマンドを入力します)。