サポートされるACL
ここでは、Catalyst 6500シリーズ スイッチがサポートしているACLについて説明します。
• 「QoS ACL」
• 「Cisco IOS ACL」
• 「VACL」
QoS ACL
QoS ACLはスイッチ上で設定することができます。「QoSの設定」を参照してください。
Cisco IOS ACL
Cisco IOS ACLは、MSFC VLANインターフェイス上で設定します。ACLは、一連の順序に基づくAccess Control Entries(ACE;アクセス制御エントリ)によって、アクセス制御を行います。他の多くの機能もまた、フロー指定のためにACLを使用します。たとえば、(Web Cache Coordination Protocol[WCCP]に基づく)Webキャッシュ リダイレクト機能では、ACLを使用して、Webキャッシュ エンジンにリダイレクトするHTTPフローを指定します。
ほとんどのCisco IOS機能は、特定の方向(着信または発信)でインターフェイスに適用されます。ただし、機能によってはグローバルなACLを使用します。このような機能では、指定した方向のすべてのインターフェイス上にACLが適用されます。たとえば、TCPインターセプトは、発信方向のすべてのインターフェイス上に適用されるグローバルACLを使用します。
1つのCisco IOS ACLを、特定のインターフェイスの複数の機能と併用できます。また、1つの機能で複数のACLを使用することもできます。複数の機能で1つのACLを共有する場合、Cisco IOSソフトウェアは同じACLを何度も検証します。
Cisco IOSソフトウェアは、特定のインターフェイスおよび方向に設定された各機能について、関連ACLを検証します。ルータの特定のインターフェイス上にパケットが送信されると、Cisco IOSソフトウェアは、そのインターフェイス上に設定されているすべての着信機能について、次のような関連ACLを検証します。
• 着信ACL(標準、拡張、および再帰、またはそのいずれか)
• 暗号化ACL(MSFC上では非サポート)
• ポリシー ルーティングACL
• 外部から内部へのアドレス変換を指定するNetwork Address Translation(NAT;ネットワーク アドレス変換)
パケットがルーティングされると、次のホップに転送される前に、Cisco IOSソフトウェアは出力インターフェイスに設定された発信機能について、次のすべての関連ACLを検証します。
• 発信ACL(標準、拡張、および再帰、またはそのいずれか)
• 暗号化ACL(MSFC上では非サポート)
• NAT ACL(内部から外部へのアドレス変換)
• WCCP ACL
• TCPインターセプトACL
VACLの概要
VACLでは、 すべての トラフィックのアクセスを制御できます。スイッチ上でVACLを設定し、VLANが着信/発信するようルーティングされる、またはVLAN内でブリッジングされる 全パケット にVACLを適用できます。VACLは、セキュリティ パケット フィルタリングを完全に実行し、トラフィックを特定の物理スイッチ ポートに転送します。Cisco IOS ACLと異なり、VACLには方向(入力または出力)を定義しません。
VACLは、IPおよびIPXのレイヤ3アドレスに基づいて設定します。他のプロトコルはすべて、MACアドレスおよびMAC VACLを使用するEthertypeによってアクセス制御されます。
注意 IPトラフィックおよびIPXトラフィックは、MAC VACLではアクセス制御されません。その他のトラフィック タイプ(AppleTalk、DECnetなど)はすべてMACトラフィックとして分類され、MAC VACLによってアクセス制御されます。
VACLを適用できるのは、Catalyst 6500シリーズ スイッチ経由で転送されるパケットだけです。ハブ上のホスト間またはCatalyst 6500シリーズ スイッチに接続している他のスイッチを経由するトラフィックに対して、VACLを適用することはできません。
VACLでサポートされるACE
VACLには、ACEの順序リストが設定されています。各VACLに設定できるのは、1タイプのACEだけです。各ACEには、パケットの内容に対応する多数のフィールドがあります。各フィールドに、関連するビットを示す関連ビット マスクを指定します。各ACEには、条件に一致したパケットをどのように処置するかを指定する1つの動作が関連づけられます。この動作は、機能によって異なります。Catalyst 6500シリーズ スイッチは、ハードウェアで次の3タイプのACEをサポートしています。
• IP ACE
• IPX ACE
• Ethernet ACE
表 16-1 に、各ACEタイプの関連パラメータを示します。
表 16-1 ACEのタイプおよびパラメータ
|
|
|
|
|
|
レイヤ4 パラメータ |
送信元ポート |
|
|
|
|
送信元ポート演算子 |
|
|
|
|
宛先ポート |
|
|
|
|
宛先ポート演算子 |
ICMPコード1 |
|
|
|
該当せず |
ICMPタイプ |
該当せず |
|
|
レイヤ3 パラメータ |
IP ToSバイト |
IP ToSバイト |
IP ToSバイト |
|
|
IP送信元アドレス |
IP送信元アドレス |
IP送信元アドレス |
IPX送信元ネットワーク |
|
IP宛先アドレス |
IP宛先アドレス |
IP宛先アドレス |
IPX宛先ネットワーク |
|
|
|
|
IPX宛先ノード |
|
TCPまたはUDP |
ICMP |
その他のプロトコル |
IPXパケット タイプ |
|
レイヤ2 パラメータ |
|
|
|
|
Ethertype |
|
|
|
|
イーサネット送信元アドレス |
|
|
|
|
イーサネット宛先アドレス |
分割/非分割トラフィックの処理
TCP/UDPまたは任意のレイヤ 4プロトコル トラフィックは、分割されると、レイヤ4情報(レイヤ4送信元/宛先ポート)が失われます。この場合、アプリケーションに基づくセキュリティを適用するのは困難です。ただし、分割トラフィックかどうかを識別して、他のTCP/UDPトラフィックと区別することができます。
ACEのレイヤ4パラメータは、オフセット0のフラグメントを持つ非分割トラフィックおよび分割トラフィックをフィルタリングします。オフセットが0以外のIPフラグメントは、レイヤ4ポート情報が失われているので、フィルタリングすることはできません。パケット分割に対応するACEの例を示します。
この例では、1.1.1.1ポート68からのトラフィックが分割されていた場合、最初のフラグメントだけをポート4/3に転送します。ポート68からの他のトラフィックはこのエントリの条件とは一致しません。
Console> (enable) redirect 4/3 tcp host 1.1.1.1 eq 68 host 255.255.255.255
次の例では、1.1.1.1ポート68から発信され、2.2.2.2ポート34を宛先とするトラフィックを許可しています。パケットが分割されている場合、最初のフラグメントはこのエントリの条件と一致するので、許可されます。ただし、オフセットが0以外のフラグメントも、デフォルトの分割結果として許可されます。
Console> (enable) permit tcp host 1.1.1.1 eq 68 host 2.2.2.2 eq 34
次の例では、1.1.1.1ポート68から発信され、2.2.2.2ポート34を宛先とするトラフィックのうち、オフセットが0のフラグメントを拒否しています。オフセットが0以外のフラグメントは、デフォルトにより許可されます。
Console> (enable) deny tcp host 1.1.1.1 eq 68 host 2.2.2.2 eq 34
リリース6.1(1)より前のソフトウェア リリースでは、フラグメント フィルタリングは完全にトランスペアレントです。 permit tcp .... port eq port_number などのACEを入力すると、このACLの先頭にpermit tcp any any fragments というACEが自動的に付加されます。
リリース6.1(1)以降のソフトウェア リリースでは、 fragment オプションが設定されています。 fragment キーワードを指定しない場合は、前リリースと同じ結果になります。 fragment キーワードを指定すると、フラグメントのグローバルな許可ステートメントは自動的には付加されません。このキーワードにより、フラグメントの処理方法を、より詳細に制御できます。
次の例では、サーバHTTP接続用として10.1.1.2 が設定されています。フラグメントACEを使用しない場合、ACLの先頭に permit tcp any any fragments のACEが自動的に付加されるので、TCPトラフィックのすべてのフラグメントが許可されます。
permit tcp any any fragments
1. permit tcp any host 10.1.1.2 eq www
2. deny ip any host 10.1.1.2
3. permit ip any any
上の例でエントリ1を次のように変更すると、
1. deny tcp any host 10.1.1.2 eq www
permit tcp any any fragment s ACEがACLの先頭に追加されません。エントリがdenyステートメントの場合は、次のアクセスリスト エントリが処理されます。
(注) denyステートメントは、非初期フラグメント対非フラグメント化または初期フラグメントとは別の方法で処理されます。
fragment キーワードを指定すると、グローバルなTCP/UDPフラグメント許可ステートメントは付加されません。最低1つのACEに fragment キーワードが指定されていると、指定した特定のIPアドレス(またはサブネット)宛てのフローを許可するACEが自動的に付加されます。
次のACLの例では、 deny tcp any host 10.1.1.2 fragment エントリにより、ホスト10.1.1.2上のすべてのTCPポートへの分割トラフィックの転送を拒否しています。また、 permit udp any host 10.1.1.2 eq 69 エントリにより、Trivial File Transfer Protocol(TFTP;簡易ファイル転送プロトコル)サーバ10.1.1.2への接続を許可されています。この場合、 permit for all fragments of udp traffic to host 10.1.1.2 のACEが自動的に付加されます。このACEが付加されない場合、フラグメントは deny ip any host 10.1.1.2 エントリによって拒否されます。
1. deny tcp any host 10.1.1.2 fragment
2. permit tcp any host 10.1.1.2 eq www
3. permit udp any host 10.1.1.2 eq 69
4. permit udp any gt 1023 10.1.1.2 gt 1023
5. deny ip any host 10.1.1.2
6. permit ip any any
ホスト10.1.1.2への分割UDPトラフィックを明示的に停止したい場合には、次の例のように、3番目のエントリの前に deny udp any host 10.1.1.2 fragment を入力します。
[...]
3. deny udp any host 10.1.1.2 fragment
4. permit udp any host 10.1.1.2 eq 69
5. permit udp any gt 1023 10.1.1.2 gt 1023
[...]
ネットワークにおけるCisco IOS ACLの使用方法
(注) Catalyst 6500シリーズ スイッチのルーテッドVLANインターフェイス上でのCisco IOS ACLの設定は、他のシスコ ルータ上でのACLの設定と同じです。Cisco IOS ACLを設定する場合は、「サポートされない機能」および「VACL設定時の注意事項」を参照してください。また、Cisco IOSのコンフィギュレーション ガイドおよびコマンド リファレンスも参照してください。たとえば、IPのACLを設定する場合には、『Network Protocols Configuration Guide』Part 1の「Configuring IP Services」の章を参照します。
ルータ上にトラフィックを処理する機能(NATなど)を設定すると、その機能に関連づけられているCisco IOS ACLによって、レイヤ3スイッチングではなくルータにブリッジングされる特定のトラフィックが判別されます。その後、ルータは機能を実行し、通常どおりパケットをルーティングします。このプロセスには、いくつかの例外があることに注意してください。詳細は、「PFCでのハードウェアおよびソフトウェアによるCisco IOS ACLの処理」を参照してください。
(注) 冗長MSFCを搭載したシステムでは、両方のMSFCに、Cisco IOS ACLおよびVACLの同じACL設定を適用する必要があります。
注意
PFCの場合:デフォルトでは、パケットがアクセス グループによって拒否されると、MSFCによりInternet Control Message Protocol(ICMP)unreachables(到達不能)メッセージが送信されます。アクセス グループによって拒否されたパケットはハードウェアでは廃棄されず、MSFCがICMP到達不能メッセージを生成できるように、MSFCにブリッジングされます。アクセス グループによって拒否されたパケットをハードウェアで廃棄するには、
no ip unreachablesインターフェイス コンフィギュレーション コマンドを使用して、ICMP unreachablesをディセーブルにする必要があります。
ip unreachablesコマンドは、デフォルトでイネーブルに設定されています。
PFC2の場合:インターフェイス上でIP unreachablesまたはIP redirectがイネーブルに設定されていると、ハードウェア上で拒否が実行されます。ただし、適切なICMP到達不能メッセージを生成するため、少数のパケットがMSFC2に送信されます。
ここでは、PFCおよびPFC2でのハードウェアおよびソフトウェアによるIOS ACLの処理について説明します。
• 「PFCでのハードウェアおよびソフトウェアによるCisco IOS ACLの処理」
• 「PFC2でのハードウェアおよびソフトウェアによるCisco IOS ACLの処理」
PFCでのハードウェアおよびソフトウェアによるCisco IOS ACLの処理
ここでは、PFCでのハードウェアおよびソフトウェアによるCisco IOS ACLの処理について説明します。
(注) PFC2でのCisco IOS ACLの情報については、「PFC2でのハードウェアおよびソフトウェアによるCisco IOS ACLの処理」を参照してください。
ACL機能の処理では、ソフトウェアによっていくつかのフローを転送する必要があります。ソフトウェア転送フローの割合は、ハードウェア転送フローに比べると、かなり少ないものです。ACLによりロギングが要求されているフローはソフトウェアに渡されますが、ハードウェアによる非ログ フローの転送には影響しません。
(注) show ip access-listコマンドの出力に表示されるマッチ カウントは、ハードウェアでアクセス制御されたパケット数ではありません。
(注) 送信元ホストのノード番号を指定したIPX Cisco IOS ACLを、ハードウェアのスイッチ上で実行することはできません。そのため、MSFCがソフトウェアでACLを処理することになります。この処理は、システムのパフォーマンスを著しく低下させます。
ここでは、各種ACLとトラフィック フローがハードウェアおよびソフトウェアによってどのように処理されるかについて説明します。
• 「セキュリティCisco IOS ACL」
• 「再帰ACL」
• 「TCPインターセプト」
• 「ポリシー ルーティング」
• 「WCCP」
• 「NAT」
• 「ユニキャストRPFチェック」
• 「ブリッジ グループ」
セキュリティCisco IOS ACL
PFCでは、IPおよびIPXのセキュリティCisco IOS ACLは次のように処理されます。
• セキュリティACLの[deny](拒否)ステートメントと一致するフローは、[ip unreachables](IP到達不能)をディセーブルに設定しておくと、ハードウェアによって廃棄されます。[permit](許可)ステートメントと一致するフローは、ハードウェアによりスイッチングされます。
• セキュリティ アクセス制御用の標準/拡張ACL(入力および出力)の許可/拒否は、ハードウェアによって処理されます。
• 特定のインターフェイス上のACLアクセス違反のIPアカウントは、そのインターフェイス上で拒否された全パケットをソフトウェアに転送することによってサポートされます。この動作は他のフローには影響しません。
• ダイナミック(ロックおよび鍵)ACLフローはハードウェアでサポートされますが、アイドル タイムアウトはサポートされません。
• IPX標準入力/出力ACLは、ACLパラメータがIPX送信元ネットワーク、宛先ネットワーク、および宛先ノードの場合(またはそのいずれかの場合)、ハードウェアによってサポートされます。ACLに他のパラメータが含まれている場合には、ソフトウェアによって処理されます。
• IPX拡張入力/出力ACLは、ACLパラメータがIPX送信元ネットワーク、宛先ネットワーク、宛先ノード、および/またはプロトコル タイプの場合、ハードウェアによってサポートされます。
• ロギングが必要なACLフローはソフトウェアによって処理されますが、ハードウェアによる非ログ フローの転送には影響しません。
再帰ACL
ハードウェアにより、最大512の同時再帰セッションがサポートされます。再帰ACLが適用されている際は、フロー マスクがVLAN-full flowに変更されていることに注意してください。
TCPインターセプト
TCPインターセプト機能は、DoS攻撃の一種であるTCP SYNフラッディング攻撃からTCPサーバを保護するソフトウェアを実装します。TCPインターセプトは、TCP接続要求を代行受信して検証することにより、SYNフラッディング攻撃を防止できるようにします。インターセプト モードの場合、TCPインターセプト ソフトウェアはクライアントからサーバに送られる、拡張アクセス リストと一致するTCP SYN(同期)パケットを代行受信します。ソフトウェアは宛先サーバの代わりにクライアントとの接続を確立します。接続が正常に確立されると、クライアントの代わりにサーバとの接続を確立して、2つの半接続をトランスペアレントに結合します。このプロセスにより、到達不可能なホストからの接続要求がサーバに到達しないようになります。ソフトウェアは接続されている間、代行受信を継続してパケットを転送します。
ポリシー ルーティング
ポリシー ルーティングが必要なフローは、ソフトウェアによって処理されますが、ハードウェアによる非ポリシー ルーティング フローの転送には影響しません。ルート マップに複数の[match](一致)コマンドが含まれている場合、すべての一致条件を満たしているパケットだけが、ポリシー ルーティングされます。ただし、ルート マップに[match ip address]および[match length]の両方が含まれている場合には、[match ip address]コマンドのACLに一致する全トラフィックが、[match length]の条件を満たしているかどうかに関係なく、ソフトウェアに転送されます。ルート マップに[match length]コマンドだけが含まれている場合は、インターフェイスが受信した全パケットがソフトウェアに転送されます。
mls ip pbr グローバル コマンドを使用してハードウェアのポリシー ルーティングをイネーブルにすると、すべてのポリシー ルーティングがハードウェアで実行されます。
注意
mls ip pbrコマンドを使用してポリシー ルーティングをイネーブルにした場合、各インターフェイスにポリシー ルーティングが設定されているかどうかに関係なく、ハードウェアの
すべてのインターフェイスにポリシー ルーティングが適用されます。
WCCP
Web Cache Coordination Protocol(WCCP)リダイレクトの対象になるHTTP要求は、ソフトウェアによって処理されます。サーバおよびキャッシュ エンジンからのHTTP応答は、ハードウェアで処理されます。
NAT
NATが必要なフローは、ソフトウェアによって処理されますが、ハードウェアによる非NATフローの転送には影響しません。
ユニキャストRPFチェック
ユニキャストRPF機能は、PFC上のハードウェアでサポートされています。ACLベースのRPFチェックの場合、ユニキャストRPF ACLによって拒否されたトラフィックは、RPF検証のためMSFCに転送されます。
注意 ACLベースのユニキャストRPFでは、ACLによって拒否されたパケットは、CPUにRPF検証のため送信されます。DoS攻撃の場合には、このようなパケットは拒否ACEにほぼマッチするので、CPUに転送されます。トラフィックが多い状況では、これによってCPUの利用率が高くなります。
(注) ACLに基づくRPFチェックでは、廃棄抑制統計はサポートされません。
ブリッジ グループ
Cisco IOSブリッジ グループACLは、ソフトウェアによって処理されます。
PFC2でのハードウェアおよびソフトウェアによるCisco IOS ACLの処理
ここでは、PFC2でのハードウェアおよびソフトウェアによるCisco IOS ACLの処理について説明します。
ACL機能の処理では、いくつかのフローをソフトウェアに転送する必要があります。ソフトウェア転送フローの割合は、ハードウェア転送フローに比べると、かなり少ないものです。ACLによりロギングが要求されているフローはソフトウェアに渡されますが、ハードウェアによる非ログ フローの転送には影響しません。
(注) show ip access-listコマンドの出力に表示されるマッチ カウントは、ハードウェアでアクセス制御されたパケット数ではありません。
(注) 送信元ホストのノード番号を指定したIPX Cisco IOS ACLを、ハードウェアのスイッチ上で実行することはできません。そのため、MSFCがソフトウェアでACLを処理することになります。この処理は、システムのパフォーマンスを著しく低下させます。
ここでは、各種ACLとトラフィック フローがPFC2搭載システムのハードウェア/ソフトウェアによってどのように処理されるかについて説明します。
• 「セキュリティCisco IOS ACL」
• 「Cisco IOS ACLロギングのレート制限」
• 「再帰ACL」
• 「TCPインターセプト」
• 「ポリシー ルーティング」
• 「WCCP」
• 「NAT」
• 「ユニキャストRPFチェック」
• 「ブリッジ グループ」
セキュリティCisco IOS ACL
PFC2では、IPおよびIPXのセキュリティCisco IOS ACLは次のように処理されます。
• [ip unreachables]または[ip redirect]オプションがイネーブルの場合、ACLの[deny](拒否)ステートメントと一致するフローのパケットの大半がハードウェアで廃棄されます。少数のパケットだけは、ルータから適切なICMP到達不能メッセージを送信するためにソフトウェアに渡されます。
• セキュリティ アクセス制御用の標準/拡張ACL(入力および出力)の許可/拒否は、ハードウェアによって処理されます。
• 特定のインターフェイス上のACLアクセス違反のIPアカウントは、そのインターフェイス上で拒否された全パケットをソフトウェアに転送することによってサポートされます。この動作は他のフローには影響しません。
• ダイナミック(ロックおよび鍵)ACLフローはハードウェアでサポートされますが、アイドル タイムアウトはサポートされません。
• IPX標準入力/出力ACLは、ACLパラメータがIPX送信元ネットワーク、宛先ネットワーク、および宛先ノードの場合(またはそのいずれかの場合)、ハードウェアによってサポートされます。ACLに他のパラメータが含まれている場合には、ソフトウェアによって処理されます。
• IPX拡張入力/出力ACLは、ACLパラメータがIPX送信元ネットワーク、宛先ネットワーク、宛先ノード、および/またはプロトコル タイプの場合、ハードウェアによってサポートされます。
• ロギングが必要なACLフローはソフトウェアによって処理されますが、ハードウェアによる非ログ フローの転送には影響しません。
Cisco IOS ACLロギングのレート制限
Cisco IOS ACLロギングのレート制限によって、ブリッジドACEのMSFC CPUに送信されるパケット数が制限されます。Cisco IOS ACLの結果が指定されたログ オプションで拒否/許可されると、ACEがブリッジされます。このブリッジ動作の結果、Cisco IOS ACLロギングはMSFC CPUの過負荷をもたらします。Cisco IOS ACLロギングのレート制限を設定すると、ブリッジされたACEはレート制限付きでMSFCにリダイレクトされます。
Cisco IOS ACLロギングのレート制限設定時の注意事項
ここでは、Cisco IOS ACLロギングのレート制限設定時の注意事項について説明します。
• set acllog ratelimit rate コマンドまたは clear acllog コマンドを使用したあとで、MSFCをリセットするか、 log キーワードが適用されたACEを備えたMSFCインターフェイスに対してshut/no shutを実行する必要があります。
set acllog ratelimit rate コマンドを入力すると、リセットまたはshut/no shut動作によってブリッジされたACEはレート制限付きでMSFCにリダイレクトされます。
clear acllog コマンドを入力すると、リセットまたはshut/no shut動作によってシステムは元の動作に戻り、ブリッジ動作は元のままです。
• set acllog ratelimit rate コマンドで指定する rate には、1~1000の値を使用できます。 rate は、リダイレクトACEをヒットし、MSFCに送信される1秒当たりのパケット数です。実際の1秒当たりのパケット数が指定した rate より大きい場合は、指定した rate を超えるパケットは廃棄されます。 rate には、500パケット/秒を指定することをお勧めします。
Cisco IOS ACLロギングのレート制限の設定
Cisco IOS ACLロギングのレート制限を設定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ACLロギングをイネーブルにして、Cisco IOS ACLロギング レート制限のレートを指定します。 |
set acllog ratelimit rate |
ステップ 2 |
ACLロギング ステータスを表示します。 |
show acllog |
ACLロギングをイネーブルにして、Cisco IOS ACLロギング レート制限のレートを500に指定する例を示します。
Console> (enable) set acllog ratelimit 500
If the ACLs-LOG were already applied, the rate limit mechanism will be effective on system restart, or after shut/no shut the interface.
Console> (enable) show acllog
ACL log rate limit enabled, rate = 500 pps.
次に、ACLロギングをクリアする(ディセーブルにする)例を示します。ACLロギングをクリアすると、ブリッジ動作は元通りになり、システムの動作は set acllog ratelimit コマンドを発行する以前と同じになります。
Console> (enable) clear acllog
ACL log rate limit is cleared.
If the ACLs-LOG were already applied, the rate limit mechanism will be disabled on system restart, or after shut/no shut the interface.
再帰ACL
ICMPパケットは、ソフトウェアによって処理されます。TCP/UDPフローは、フローが確立されれば、ハードウェアによって処理されます。再帰ACLが適用されている際は、フロー マスクがVLAN-full flowに変更されています。
TCPインターセプト
TCPインターセプト機能は、DoS攻撃の一種であるTCP SYNフラッディング攻撃からTCPサーバを保護するソフトウェアを実装します。TCPインターセプトは、TCP接続要求を代行受信して検証することにより、SYNフラッディング攻撃を防止できるようにします。インターセプト モードの場合、TCPインターセプト ソフトウェアはクライアントからサーバに送られる、拡張アクセス リストと一致するTCP SYN(同期)パケットを代行受信します。ソフトウェアは宛先サーバの代わりにクライアントとの接続を確立します。接続が正常に確立されると、クライアントの代わりにサーバとの接続を確立して、2つの半接続をトランスペアレントに結合します。このプロセスにより、到達不可能なホストからの接続要求がサーバに到達しないようになります。ソフトウェアは接続されている間、代行受信を継続してパケットを転送します。
PFC2では、TCPインターセプトが次のようにハードウェアによってサポートされます。
1. TCPインターセプト機能が設定されている場合、TCPインターセプトACL内のpermit句を含むACEと一致し、 かつ セキュリティACLによって許可されているすべてのTCP SYNパケットは、TCPインターセプト機能を適用するソフトウェアに送信されます。このプロセスは、セキュリティACLにSYNフラグが指定されていない場合でも発生します。
2. 接続が正常に確立されると、次の処理が適用されます。
a. TCPインターセプトで使用されているインターセプト モードにタイムアウトが指定されている場合は、所定の接続/フローに属するすべてのトラフィックがソフトウェアで処理されます。
b. TCPインターセプトがそれ以外のモードを使用している場合、接続が正常に確立されると、ソフトウェアはハードウェア ショートカットをインストールして、残りのフローをハードウェアでスイッチングします。
3. 接続が正常に確立されない場合は、他のトラフィックはそのフローに属することができません。
ポリシー ルーティング
ポリシー ルーティングが必要なフローは、ルート マップに応じて、ハードウェアまたはソフトウェアによって処理されます。ルート マップに[match ip address]だけが設定され、[set]コマンドに[next hop]が含まれている場合、その次のホップが到達可能であれば、パケットはハードウェアに転送されます。ルート マップに複数の[match](一致)コマンドが含まれている場合、すべての一致条件を満たしているパケットだけが、ポリシー ルーティングされます。ただし、ルート マップに[match ip address]および[match length]の両方が含まれている場合には、[match ip address]コマンドのACLに一致する全トラフィックが、[match length]の条件を満たしているかどうかに関係なく、ソフトウェアに転送されます。ルート マップに[match length]コマンドだけが含まれている場合は、インターフェイスが受信した全パケットがソフトウェアに転送されます。
(注) PFC2では、mls ip pbrコマンドは不要です(サポートされません)。
WCCP
WCCPリダイレクトの対象になるHTTP要求は、ソフトウェアによって処理されます。サーバおよびキャッシュ エンジンからのHTTP応答は、ハードウェアで処理されます。
NAT
NATが必要なフローは、ソフトウェアによって処理されますが、ハードウェアによる非NATフローの転送には影響しません。
ユニキャストRPFチェック
ユニキャストRPF機能は、PFC2上のハードウェアでサポートされています。ACLベースのRPFチェックの場合、ユニキャストRPF ACLによって拒否されたトラフィックは、RPF検証のためMSFC2に転送されます。
注意 ACLベースのユニキャストRPFでは、ACLによって拒否されたパケットは、CPUにRPF検証のため送信されます。DoS攻撃の場合には、このようなパケットは拒否ACEにほぼマッチするので、CPUに転送されます。トラフィックが多い状況では、これによってCPUの利用率が高くなります。
(注) ACLに基づくRPFチェックでは、廃棄抑制統計はサポートされません。
ブリッジ グループ
Cisco IOSブリッジ グループACLは、ソフトウェアによって処理されます。
VACLとCisco IOS ACLの併用
ブリッジド トラフィックおよびルーテッド トラフィックの両方のアクセス制御を実行するには、VACLだけを使用するか、Cisco IOS ACLとVACLを組み合わせて使用します。Cisco IOS ACLは、入力用および出力用の両方のルーテッドVLANインターフェイスに定義することができます。VACLは、ブリッジド トラフィックのアクセスを制御するために定義します。
ACLのVACL拒否/リダイレクト ステートメントの条件に一致したフローは、Cisco IOS ACLの設定に関係なく、拒否またはリダイレクトされます。Cisco IOS ACLをVACLと併用する場合は、次の事項に注意してください。
• 発信ACLに設定したロギングを必要とするパケットは、VACLによって拒否された場合、ロギングされません。
• NAT ― VACLは、NATを変換する前のパケットに適用されます。また、変換後のフローのアクセス制御を実行すべきでない場合でも、VACLの設定によっては、変換後のフローがアクセス制御されることがあります。
(注) VACLは、リストの最後に暗黙の拒否ステートメントが付加されます。どのVACL ACEにも一致しないパケットは拒否されます。
ここでは、Cisco IOS ACLの設定、VACLの設定、およびレイヤ4演算の注意事項について説明します。
• 「同一VLANインターフェイス上にCisco IOS ACLおよびVACLを設定する場合の注意事項」
• 「レイヤ4演算設定時の注意事項」
暗黙の拒否ステートメント
できるだけ、ACLの最後に付加される暗黙の拒否ステートメント( deny any any )を使用し、許可するトラフィックだけをACEに定義してください。すべての拒否エントリを定義して、最後に許可ステートメント( permit ip any any )を指定しても、同じ結果になります(例1を参照)。
動作のグループ化
ACLに複数の動作(許可、拒否、リダイレクト)を定義する場合には、各動作をタイプ別にグループ化します。「例3」は、各タイプをグループ化しなかった場合の例を示しています。この例では、6行目の拒否ステートメントが、許可ステートメントと同じグループに入っています。この拒否ステートメントを削除すると、合成後のエントリ数を329から53に減らすことができます。
動作数の制限
許可ACEのみで構成されるACLでは、許可と拒否という2つの動作を含んでいます(リストの最後の暗黙の拒否のため)。許可とリダイレクトが設定されているACLでは、許可、リダイレクト、拒否という3つの動作を含んでいます(リストの最後の暗黙の拒否のため)。
ACLの設定時、2種類の動作だけを指定すると、最良のマージ結果が得られます(許可と拒否、リダイレクトと許可、リダイレクトと拒否のマージ)。
(注) スーパバイザ エンジン ソフトウェア リリース 7.1(1)以降のリリースでは、ACLマージのアルゴリズムが改善されているので、ACLの設定時に動作数を制限する必要はありません。
リダイレクトおよび拒否のACLを定義するには、許可ACEを使用しません。リダイレクトおよび許可のACLを定義するには、許可ACEおよびリダイレクトACEだけを定義し、最後に permit ip any any ステートメントを指定します。 permit ip any any を指定すると、リストの最後に付加される暗黙の拒否(deny ip any)が無効になります(例4を参照)。
レイヤ4ポート情報の回避
マージ プロセスが複雑になるので、ACLにはレイヤ4情報を入れないでください。full flow(送信元IPアドレス、宛先IPアドレス、プロトコル、およびプロトコル ポート)ではなく、IPアドレス(送信元および宛先)だけに基づいてフィルタリングするACLを定義すると、最良のマージ結果が得られます。
full flowを指定する必要がある場合には、「暗黙の拒否ステートメント」および「動作のグループ化」を参照してください。ACLに、IPおよびレイヤ4情報を含むTCP/UDP/ICMP ACEを指定しなければならない場合には、IPアドレスに基づくトラフィック フィルタリングを優先させ、レイヤ4のACEはリストの最後に指定してください。
スーパバイザ エンジン ソフトウェア リリース7.1(1)以降の場合のマージ結果の推定
(注) スーパバイザ エンジン ソフトウェア リリース7.1(1)より前のリリースと、7.1(1)以降のリリースで、マージ結果を比較する場合は、「スーパバイザ エンジン ソフトウェア リリース7.1(1)以降のリリース場合のマージ結果の推定」を参照してください。
上記の注意事項に基づいてACLを設定した場合、ACLのマージ結果をおおまかに推測することができます。
たとえば、ACL A、ACL B、およびACL Cがあるとします。ACL Cを、ACL A とACL Bのマージ結果とした場合、ACL AとACL Bのサイズがわかっていれば、ACL Cの上限サイズを次の公式によって概算することができます。ただし、ACL AとACL Bにレイヤ4ポート情報が含まれていないことが前提です。
ACL Cのサイズ =(ACL Aのサイズ)×(ACL Bのサイズ)×(2)
(注) 7.1(1)より前のソフトウェア リリースでは、この公式を目安として使用できますが、エントリ数は予想範囲を大幅に上回ることがあります。ソフトウェア リリース7.1(1)以降のリリースでは、新しいACLマージ アルゴリズムなので、この公式で正確な値を知ることができます。レイヤ4ポート情報が含まれている場合は、新しいアルゴリズムでも上限サイズはさらに大きくなります。詳細は、「レイヤ4演算設定時の注意事項」を参照してください。
ACLマージ アルゴリズムには、BDDとODMの2種類があります。ODMは、ソフトウェア リリース7.1(1)で採用された拡張アルゴリズムです。BDDアルゴリズムは、7.1(1)より前のソフトウェア リリースで使用されています。設定の詳細は、「ACLマージ アルゴリズムの指定」を参照してください。
以下の例は、さまざまなCisco IOS ACLおよびVACL設定によるマージ結果を示しています。これらの例では、同じVLAN上に、VACLおよびCisco IOS ACLが1つずつ設定されていることに注意してください。
例1
推奨事項に反したVACL(ACLの最後に暗黙の拒否動作を指定する代わりに、9行目に拒否動作を指定)では、マージの結果、ACE数が増える例を示します。
******** VACL ***********
1 permit udp host 194.72.72.33 194.72.6.160 0.0.0.15
2 permit udp host 147.150.213.94 194.72.6.64 0.0.0.15 eq bootps
3 permit udp 194.73.74.0 0.0.0.255 host 194.72.6.205 eq syslog
4 permit udp host 167.221.23.1 host 194.72.6.198 eq tacacs
5 permit udp 194.72.136.1 0.0.3.128 194.72.6.64 0.0.0.15 eq tftp
6 permit udp host 193.6.65.17 host 194.72.6.205 gt 1023
7 permit tcp any host 194.72.6.52
8 permit tcp any host 194.72.6.52 eq 113
9 deny tcp any host 194.72.6.51 eq ftp
10 permit tcp any host 194.72.6.51 eq ftp-data
11 permit tcp any host 194.72.6.51
12 permit tcp any eq domain host 194.72.6.51
13 permit tcp any host 194.72.6.51 gt 1023
14 permit ip any host 1.1.1.1
******** Cisco IOS ACL ************
1 deny ip any host 239.255.255.255
******** MERGE **********
例2
例1の場合、推奨事項に従って、9行目を削除し(代わりに、ACLの最後で暗黙の拒否を使用)、9行目で廃棄されたトラフィックが許可されることがないように、11行目および12行目を変更すると、次のようなACLになり、マージ結果が改善されます。
1 permit udp host 194.72.72.33 194.72.6.160 0.0.0.15
2 permit udp host 147.150.213.94 194.72.6.64 0.0.0.15 eq bootps
3 permit udp 194.73.74.0 0.0.0.255 host 194.72.6.205 eq syslog
4 permit udp host 167.221.23.1 host 194.72.6.198 eq tacacs
5 permit udp 194.72.136.1 0.0.3.128 194.72.6.64 0.0.0.15 eq tftp
6 permit udp host 193.6.65.17 host 194.72.6.205 gt 1023
7 permit tcp any host 194.72.6.52
8 permit tcp any host 194.72.6.52 eq 113
9 permit tcp any host 194.72.6.51 eq ftp-data
10 permit tcp any host 194.72.6.51 neq ftp
11 permit tcp any eq domain host 194.72.6.51 neq ftp
12 permit tcp any host 194.72.6.51 gt 1023
13 permit ip any host 1.1.1.1
******** Cisco IOS ACL ************
1 deny ip any host 239.255.255.255
******** MERGE ***********
例3
次の例では、VACLの設定が推奨事項に従っていない(すべての動作タイプがひとまとめにされていない)ので、マージの結果、ACE数が 著しく 増えています。
******** VACL ***********
1 deny ip 0.0.0.0 255.255.255.0 any
2 deny ip 0.0.0.255 255.255.255.0 any
3 deny ip any 0.0.0.0 255.255.255.0
4 permit ip any host 239.255.255.255
5 permit ip any host 255.255.255.255
6 deny ip any 0.0.0.255 255.255.255.0
7 permit tcp any range 0 65534 any range 0 65534
8 permit udp any range 0 65534 any range 0 65534
******** Cisco IOS ACL **********
1 deny ip any host 239.255.255.255
******** MERGE **********
例4
次の例では、VACLの設定が推奨事項に従っていない(3種類の動作が指定されている)ので、マージの結果、ACE数が 著しく 増えています。
******** VACL ***********
1 redirect 4/25 tcp host 192.168.1.67 host 255.255.255.255
2 redirect 4/25 udp host 192.168.1.67 host 255.255.255.255
******* Cisco IOS ACL ***********
1 deny ip any host 239.255.255.255
例5
次の例では、例4のVACLを変更し、2種類の動作だけを指定したことによって、マージ結果が大幅に改善しています。
******** VACL ***********
1 redirect 4/25 tcp host 192.168.1.67 host 255.255.255.255
2 redirect 4/25 udp host 192.168.1.67 host 255.255.255.255
******* Cisco IOS ACL ***********
1 deny ip any host 239.255.255.255
スーパバイザ エンジン ソフトウェア リリース7.1(1)以降のリリース場合のマージ結果の推定
ソフトウェア リリース7.1(1)より前のスーパバイザ エンジン ソフトウェア リリースの場合と同様、7.1(1)以降のリリースでも次の公式が成り立ちます。ACL Cのサイズ =(ACL Aのサイズ)×(ACL Bのサイズ)×(2)。
(注) 7.1(1)より前のソフトウェア リリースでは、この公式を目安として使用できますが、エントリ数は予想範囲を大幅に上回ることがあります。ソフトウェア リリース7.1(1)以降のリリースでは、新しいACLマージ アルゴリズムなので、この公式で正確な値を知ることができます。レイヤ4ポート情報が含まれている場合は、新しいアルゴリズムでも上限サイズはさらに大きくなります。詳細は、「レイヤ4演算設定時の注意事項」を参照してください。
ACLマージ アルゴリズムには、BDDとODMの2種類があります。ODMは、ソフトウェア リリース7.1(1)で採用された拡張アルゴリズムです。BDDアルゴリズムは、リリース7.1(1)より前のソフトウェア リリースで使用されています。詳細については、「ACLマージ アルゴリズムの指定」を参照してください。
例
以下の例は、さまざまなCisco IOS ACLおよびVACL設定によるマージ結果を示しています。これらの例では、同じVLAN上に、VACLおよびCisco IOS ACLが1つずつ設定されていることに注意してください。
例1
******** VACL ***********
1 permit udp host 194.72.72.33 194.72.6.160 0.0.0.15
2 permit udp host 147.150.213.94 194.72.6.64 0.0.0.15 eq bootps
3 permit udp 194.73.74.0 0.0.0.255 host 194.72.6.205 eq syslog
4 permit udp host 167.221.23.1 host 194.72.6.198 eq tacacs
5 permit udp 194.72.136.1 0.0.3.128 194.72.6.64 0.0.0.15 eq tftp
6 permit udp host 193.6.65.17 host 194.72.6.205 gt 1023
7 permit tcp any host 194.72.6.52
8 permit tcp any host 194.72.6.52 eq 113
9 deny tcp any host 194.72.6.51 eq ftp
10 permit tcp any host 194.72.6.51 eq ftp-data
11 permit tcp any host 194.72.6.51
12 permit tcp any eq domain host 194.72.6.51
13 permit tcp any host 194.72.6.51 gt 1023
14 permit ip any host 1.1.1.1
******** Cisco IOS ACL ************
1 deny ip any host 239.255.255.255
Using the new algorithm - 17 entries
Using the old algorighm - 91 entries
例2
1 permit udp host 194.72.72.33 194.72.6.160 0.0.0.15
2 permit udp host 147.150.213.94 194.72.6.64 0.0.0.15 eq bootps
3 permit udp 194.73.74.0 0.0.0.255 host 194.72.6.205 eq syslog
4 permit udp host 167.221.23.1 host 194.72.6.198 eq tacacs
5 permit udp 194.72.136.1 0.0.3.128 194.72.6.64 0.0.0.15 eq tftp
6 permit udp host 193.6.65.17 host 194.72.6.205 gt 1023
7 permit tcp any host 194.72.6.52
8 permit tcp any host 194.72.6.52 eq 113
9 permit tcp any host 194.72.6.51 eq ftp-data
10 permit tcp any host 194.72.6.51 neq ftp
11 permit tcp any eq domain host 194.72.6.51 neq ftp
12 permit tcp any host 194.72.6.51 gt 1023
13 permit ip any host 1.1.1.1
******** Cisco IOS ACL ************
1 deny ip any host 239.255.255.255
******** MERGE ***********
Using the new algorithm - 16 entries
Using the old algorithm - 78 entries
例3
******** VACL ***********
1 deny ip 0.0.0.0 255.255.255.0 any
2 deny ip 0.0.0.255 255.255.255.0 any
3 deny ip any 0.0.0.0 255.255.255.0
4 permit ip any host 239.255.255.255
5 permit ip any host 255.255.255.255
6 deny ip any 0.0.0.255 255.255.255.0
7 permit tcp any range 0 65534 any range 0 65534
8 permit udp any range 0 65534 any range 0 65534
******** Cisco IOS ACL **********
1 deny ip any host 239.255.255.255
******** MERGE **********
Using the new algorithm - 12 entries
Using the old algorithm - 303 entries
例4
******** VACL ***********
1 redirect 4/25 tcp host 192.168.1.67 host 255.255.255.255
2 redirect 4/25 udp host 192.168.1.67 host 255.255.255.255
******* Cisco IOS ACL ***********
1 deny ip any host 239.255.255.255
Using the new algorithm - 6 entries
Using the old algorithm - 142 entries
例5
******** VACL ***********
1 redirect 4/25 tcp host 192.168.1.67 host 255.255.255.255
2 redirect 4/25 udp host 192.168.1.67 host 255.255.255.255
******* Cisco IOS ACL ***********
1 deny ip any host 239.255.255.255
Using the new algorithm - 4 entries
Using the old algorithm - 4 entries
レイヤ4演算の使用方法
スイッチ ハードウェアには、次のタイプの演算子を指定することができます。
• gt(geater than:より大きい)
• lt(less than:未満)
• neq(not equal:不一致)
• eq(equal:一致)
• range(inclusive range:包含範囲)
1つのACLに指定する演算は、9つまでにしてください。 この数を超えると、新しい演算によって影響されるACEが、複数のACEに分割されることがあります。
(注) 同じVLANインターフェイス上にCisco IOS ACLおよびVACLの両方を設定する場合も、レイヤ4演算の数は合計で9以下にすることを推奨します。
レイヤ4演算を定義するときは、次の2つの注意事項に従ってください。
1. レイヤ4演算は、演算子またはオペランドが異なっていると、異なる演算であるとみなされます。たとえば、次のACLには4つの異なるレイヤ4演算が定義されています([gt 10]と[gt 11]は2つの異なるレイヤ4演算です)。
(注) [eq]演算子の使用に制限はありません。[eq]演算子はLogical Operator Unit(LOU;論理演算ユニット)またはレイヤ4演算ビットを使用しないためです。LOUについては、「LOUの使用」を参照してください。
2. レイヤ4演算は、同じ演算子/オペランドの組み合わせでも、送信元ポートに適用するか宛先ポートに適用するかによって異なる演算になります。たとえば次のACLでは、1つのACEには送信元ポート、もう1つのACEには宛先ポートが指定されているので、2つの異なるレイヤ4演算が定義されていることになります。
(注) ACLのレイヤ4ポート演算リソースの使用状況を調べるには、show security acl resource-usageコマンドを使用します。
LOUの使用
LOUは、演算子/オペランドの組み合わせを保管するレジスタです。ACLはすべて、LOUを使用します。最大32のLOUがあります。各LOUには、2つの異なる演算子/オペランドの組み合わせを保管できますが、range演算子だけは例外です。レイヤ4演算は、次のようにLOUを使用します。
• gt は、1/2 LOUを使用します。
• lt は、1/2 LOUを使用します。
• neq は、1/2 LOUを使用します。
• range は、1 LOUを使用します。
• eq は、LOUを使用しません。
たとえば、次のACLでは、1つのLOUに2つの異なる演算子/オペランドが保管されます。
以下は、より詳細な例です。
... (dst port) gt 10 permit
... (dst port) gt 11 deny
... (dst port) neq 6 redirect
... (src port) neq 6 redirect
... (dst port) gt 10 deny
... (dst port) gt 20 deny
... (src port) range 11 13 permit
... (dst port) neq 6 redirect
レイヤ4演算数とLOUの使用数は、次のとおりです。
• ACL1のレイヤ4演算: 5
• ACL2のレイヤ4演算: 4
• LOU: 4
LOUは、次のように使用されています。
• LOU 1に、[gt 10]および[lt 9]が保管されます。
• LOU 2に、[gt 11]および[neq 6]が保管されます。
• LOU 3 に、[gt 20]が保管されます(半分は空き)。
• LOU 4 に、[range 11 13]が保管されます(rangeはすべてのLOUを使用)。
ネットワークでのVACLの使用
ここでは、VACLの一般的な使用例について説明します。次の内容が含まれています。
• 「配線クローゼットの設定」
• 「特定のサーバ ポートへのブロードキャスト トラフィックのリダイレクト」
• 「DHCP応答を特定サーバに制限する」
• 「他のVLAN上のサーバからのアクセス拒否」
• 「ARPトラフィックの制限」
• 「ARPトラフィックの検査」
• 「プライベートVLAN上でのACLの設定」
• 「トラフィック フローのキャプチャ」
配線クローゼットの設定
配線クローゼットの設定では、Catalyst 6500シリーズ スイッチにMSFC(ルータ)が搭載されていないことがあります。この設定では、スイッチによりVACLおよびQoS ACLがサポートされます。ホストXおよびホストYは異なるVLAN上にあり、配線クローゼットのスイッチAおよびスイッチCに接続しています(図 16-4を参照)。ホストXからホストYへのトラフィックは、最終的に、MSFC搭載スイッチによってルーティングされます。ホストXからホストYへのトラフィックは、トラフィックの入口であるスイッチAでアクセス制御することができます。
ホストXからホストYへのHTTPトラフィックをスイッチングしない場合は、スイッチAにVACLを設定します。この場合、ホストXからホストYへのHTTPトラフィックはすべてスイッチAで廃棄され、MSFC搭載スイッチにはブリッジングされません。
図 16-4 配線クローゼットの設定
特定のサーバ ポートへのブロードキャスト トラフィックのリダイレクト
一部のアプリケーション トラフィックは、VLAN内のすべてのホストに到達するブロードキャスト パケットを使用します。VACLにより、これらのブロードキャスト パケットを特定のアプリケーション サーバ ポートにリダイレクトすることができます。
図 16-5では、ホストAからのアプリケーション ブロードキャスト パケットがターゲットのアプリケーション サーバ ポートにリダイレクトされ、他のポートにはパケットは送信されません。
ブロードキャスト トラフィックを特定のサーバ ポートにリダイレクトするには、イネーブル モードで次の作業を行います(宛先サーバ アプリケーション ポートは、TCPポート5000です)。
|
|
|
ステップ 1 |
ブロードキャスト パケットをリダイレクトします。 |
set security acl ip SERVER redirect 4/1 tcp any host 255.255.255.255 eq 5000 |
ステップ 2 |
他のすべてのトラフィックを許可します。 |
set security acl ip SERVER permit ip any any |
ステップ 3 |
VACLをコミットします。 |
commit security acl SERVER |
ステップ 4 |
VACLをVLAN 10にマッピングします。 |
set security acl map SERVER 10 |
(注) トラフィックをポート グループにリダイレクトすることによって、ブロードキャスト トラフィックをマルチキャストの宛先に送信することができます(図 16-5を参照)。
図 16-5 特定のサーバ ポートへのブロードキャスト トラフィックのリダイレクト
DHCP応答を特定サーバに制限する
Dynamic Host Configuration Protocol(DHCP)要求がブロードキャストされると、VLAN内のすべてのDHCPサーバに送信されるので、複数の応答が戻されます。VACLによって、 特定の DHCPサーバからの応答だけを受けるようにし、他の応答を廃棄することができます。
DHCP応答を特定サーバに制限するには、イネーブル モードで次の作業を行います(宛先DHCPサーバのIPアドレスは、1.2.3.4です)。
|
|
|
ステップ 1 |
ホスト1.2.3.4からのDHCP応答を許可します。 |
set security acl ip SERVER permit udp host 1.2.3.4 any eq 68 |
ステップ 2 |
他のホストからのDHCP応答を拒否します。 |
set security acl ip SERVER deny udp any any eq 68 |
ステップ 3 |
他のIPトラフィックを許可します。 |
set security acl ip SERVER permit any |
ステップ 4 |
VACLをコミットします。 |
commit security acl SERVER |
ステップ 5 |
VACLをVLAN 10にマッピングします。 |
set security acl map SERVER 10 |
図 16-6では、DHCP要求に対して、ターゲット サーバのDHCP応答だけが戻されています。
図 16-6 特定サーバのDHCP応答のリダイレクト
他のVLAN上のサーバからのアクセス拒否
他のVLAN上のサーバからのアクセスを制限することができます。たとえば、VLAN 10のサーバ10.1.1.100で、次のようなアクセス制限をする必要があります(図 16-7を参照)。
• VLAN 20のサブネット10.1.2.0/24のホストからのアクセスを拒否する
• VLAN 10のホスト10.1.1.4および10.1.1.8からのアクセスを拒否する
他のVLAN上のサーバからのアクセスを拒否するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
サブネット10.1.2.0/8のホストからのトラフィックを拒否します。 |
set security acl ip SERVER deny ip 10.1.2.0 0.0.0.255 host 10.1.1.100 |
ステップ 2 |
ホスト10.1.1.4からのトラフィックを拒否します。 |
set security acl ip SERVER deny ip host 10.1.1.4 host 10.1.1.100 |
ステップ 3 |
ホスト10.1.1.8からのトラフィックを拒否します。 |
set security acl ip SERVER deny ip host 10.1.1.8 host 10.1.1.100 |
ステップ 4 |
他のIPトラフィックを許可します。 |
set security acl ip SERVER permit ip any any |
ステップ 5 |
VACLをコミットします。 |
commit security acl SERVER |
ステップ 6 |
VACLをVLAN 10にマッピングします。 |
set security acl map SERVER 10 |
図 16-7 他のVLAN上のサーバからのアクセスを拒否
ARPトラフィックの制限
(注) この機能を使用できるのは、PFC2搭載のSupervisor Engine 2だけです。
ARPトラフィックは、デフォルトでは各VLAN上で許可されます。 set security acl ip acl_name deny arp コマンドを使用して、VLAN単位でARPトラフィックを拒否することができます。このコマンドを入力すると、ACLをマッピングしたVLAN上でARPトラフィックが拒否されます。ARPトラフィックを拒否したVLAN上で、ARPトラフィックを再び許可するには、 set security acl ip acl_name permit arp コマンドを入力します。
概要
ARPは認証メカニズムを備えていない簡易プロトコルなので、ARP要求および応答が真かどうかを確認する方法がありません。認証メカニズムがなければ、悪意のあるユーザ/ホストによってレイヤ2ネットワークまたはブリッジ ドメインにある同じVLAN上の他のホストのARPテーブルが破壊される可能性があります。
たとえば、ユーザ/ホストA(悪意のあるユーザ)が、デフォルト ルータのIPアドレスとホストAのMACアドレスで、非送信請求ARP応答(いわれのないARPパケット)をサブネット上の他のホストに送信することがあります。従来のオペレーティング システムでは、デフォルト ルータのスタティックARPエントリがホストにすでにある場合でも、ホストAからの新たにアドバタイズされたバインディングが学習されます。ホストAがIP転送をイネーブルにし、「スプーフィングされた」ホストとルータ間ですべてのパケットをやり取りする場合、ホストAは(たとえばdsniffプログラムを使用した)仲介者攻撃を実行します。このスプーフィングされたホストでは、そのトラフィックのすべてにスニファが行われていることを認識しません。
ARP検査機能によって、セキュリティACL(VACL)フレームワーク内に順序依存型の一連のルールを設定してARPテーブルの攻撃を防止できます。
実装
VLAN上のVACLにARPトラフィック検査の具体的なルールが存在する場合は、すべてのARPパケットはVACLのACEを介してインデックスによる指定でCPUに送られます。パケットは、ARP検査タスクによって指定されたルールへの適合が検査されます。適合パケットは転送されますが、一方非適合パケットは廃棄されてログが取られます(ロギングがイネーブルの場合)。
ARPトラフィック検査のルールは、あとの例に示すように指定されたIPアドレスに対してARPバインディングを指定します。
permit arp-inspection host 10.0.0.1 00-00-00-01-00-02
permit arp-inspection host 20.0.0.1 00-00-00-02-00-03
deny arp-inspection host 10.0.0.1 any
deny arp-inspection host 20.0.0.1 any
permit arp-inspection any any
上記の一連のルールによって、00-00-00-01-00-02だけがIPアドレス10.0.0.1のMACアドレスとしてアドバタイズされます。同様に、MACアドレス00-00-00-02-00-03はIPアドレス20.0.0.1にバインドされます。10.0.0.1および20.0.0.1のその他のMACアドレスをアドバタイズするARPパケットは廃棄されます(3および4行目の deny 動作によって達成)。残りのARPパケットは通過が許可されます(5行目の permit 動作によって達成)。
ARPトラフィック検査設定時の注意事項
ここでは、ARPトラフィック検査設定時の注意事項について説明します。
• ARP検査句をVACLの先頭に表示します。
• VACLに設定できるARP検査句の上限は32です。
• ARP検査句を含んだACLの最大文字数は29文字です。
• ARP検査ACEは、IP ACEになるように変更できません。その逆も同様です。
• ARP検査ACEは、IP ACEの前に挿入できません。その逆も同様です。
• 同じVACLで汎用deny/permit句をARP検査句と一緒に使用しないでください。汎用deny/permit句は、set security acl ip acl_name {deny | permit} arpコマンドを使用してインストールします。
• MSFCがホストのゲートウェイである場合は、MSFC IP/MACのバインディングを可能にする必要があります。ARP検査機能を使用する場合は、ゲートウェイIP/MACバインディングを可能にすることをお勧めします。
• ARP検査は、VACLの既存のロギング機能を使用します。パケットがARP検査ルールを経たあと、結果が[permit]の場合、パケットは宛先MACアドレス(またはブロードキャスト アドレス)に転送されます。結果が[deny]の場合は、パケットは廃棄され、VACLロギング プロセスに送信されます(ロギングがイネーブルの場合)。
VACLロギングは送信元MACアドレスとARPヘッダーの後続のフィールドを使用して、送信元IPアドレス、送信元MACアドレス、およびARP演算コード(要求、応答)のロギング フローを定義します。
set security acl log maxflow max_flows コマンドを使用すると、ログ済みフローの数を制限できます。ただし、 set security acl log ratelimit max_rate コマンドはARP検査ログ済みフローに適用されません。
• RARPパケットはホスト上のARPエントリの学習に使用されず、ARPを破壊するような害をおよぼすことはありません。PFC2では、ARPおよびRARPパケットの区別が行われません。CPUへのARPパケットのリダイレクトに使用されるACEも、RARPパケットをリダイレクトします。グローバル レート制限とは、結合ARPおよびRARPパケットに対するレート制限のことです。ARPトラフィック検査ルールはRARPパケットには適用されないので、RARPパケットはそのまま転送されます。汎用ARP deny句もRARPパケットを拒否します。転送されるRARPパケットの数は、 show security acl arp-inspection statistics コマンドを実行すると表示できます。
• ARPトラフィック検査句を伴うVACLを管理VLAN(sco/sc1インターフェイス)にマッピングするのは、サポートされていません。
• ポートがEtherChannelに組み込まれていたとしても、廃棄とシャットダウンのスレッシュホールドはポートベースのままです。スレッシュホールドは、EtherChannelの形成に必要な 一致 の構成要素ではありません(PagPは、 一致した EtherChannelリンクを特定すると、そのポートをEtherChannelにまとめます)。
• ハードウェアによるARPパケットの認識方法が原因で、送信元アドレスが0.0.0.0、宛先アドレスが0.0.0.0のIPパケットと、IPプロトコルICMPもARP検査タスクにリダイレクトされます。これらのパケットは無効なパケットなので廃棄されます。このようなパケットのカウントは、show security acl arp-inspection statisticsコマンドの一部として表示されます。
• ARPトラフィック検査タスクによって廃棄された全パケットについてSyslogが生成されると、コンソールはメッセージでいっぱいになります。このような状況を避けるため、分当たりの許容Syslogを40に制限します。
• 一般的な設定エラーを回避する例を示します。以下は一般的なARP検査ACLです。
------------------------------
set security acl ip my_arp
---------------------------------------------------
1. permit arp-inspection host 10.6.62.86 00-b0-c2-3b-db-fd
2. deny arp-inspection host 10.6.62.86 any
3. permit arp-inspection any any
---------------------------
このACLによって、MACアドレス00-b0-c2-3b-db-fdだけがIPアドレス10.6.62.86のMACアドレスとしてアドバタイズされます。このACLでの問題は、IP ACLに暗黙のip deny any anyがあるので、 すべての IPパケットを拒否するということです。
したがって、すべてのIPトラフィックを通過させるには、次のようにACLの終わりに明示的なpermit ip any anyがなければなりません。
set security acl ip my_arp
---------------------------------------------------
1. permit arp-inspection host 10.6.62.86 00-b0-c2-3b-db-fd
2. deny arp-inspection host 10.6.62.86 any
3. permit arp-inspection any any
• 次の例はARPトラフィック検査を使用した一般的な設定です。次のACLを使用して指定された2つのIPアドレスを保護し、指定されたもの以外のMACアドレスでのARP検査を実行しません。
set security acl ip ACL_VLAN951 permit arp-inspection host 132.216.251.129 00-d0-b7-11-13-14
set security acl ip ACL_VLAN951 deny arp-inspection host 132.216.251.129 any log
set security acl ip ACL_VLAN951 permit arp-inspection host 132.216.251.250 00-d0-00-ea-43-fc
set security acl ip ACL_VLAN951 deny arp-inspection host 132.216.251.250 any log
set security acl ip ACL_VLAN951 permit arp-inspection any any
set security acl ip ACL_VLAN951 permit ip any any
特定のIPアドレスとMACアドレスのバインディングをアドバタイズするARPパケットの許可/拒否
特定のIPアドレスとMACアドレスのバインディングをアドバタイズするARPパケットを許可/拒否するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
特定のIPアドレスとMACアドレスのバインディングをアドバタイズするARPパケットを許可/拒否します。 |
set security acl ip acl_name { permit | deny } arp-inspection host ip_address mac_address |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
IPアドレス172.20.52.54とMACアドレス00-01-64-61-39-c2のバインディングをアドバタイズするARPパケットを許可する例を示します。
Console> (enable) set security acl ip ACL1 permit arp-inspection host 172.20.52.54 00-01-64-61-39-c2
Console> (enable) commit security acl ACL1
Console> (enable) ACL commit in progress.
ACL 'ACL1' successfully committed.
特定のIPアドレスのバインディングをアドバタイズするARPの許可/拒否
指定したIPアドレスのバインディングをアドバタイズするARPパケットを許可/拒否するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
指定したIPアドレスのバインディングをアドバタイズするARPパケットを許可/拒否します。 |
set security acl ip acl_name {permit | deny} arp-inspection host ip_address any |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
IPアドレスのバインディングをアドバタイズするARPパケットを許可する例を示します。
Console> (enable) set security acl ip ACL2 permit arp-inspection host 172.20.52.19 any
Console> (enable) commit security acl ACL2
Console> (enable) ACL commit in progress.
ACL 'ACL2' successfully committed.
すべてのARPパケットの許可/拒否
すべてのARPパケットを許可/拒否するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
すべてのARPパケットを許可します。 |
set security acl ip acl_name {permit | deny} arp-inspection any any |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
すべてのARPパケットを許可する例を示します。
Console> (enable) set security acl ip ACL3 permit arp-inspection any any
Console> (enable) commit security acl ACL3
Console> (enable) ACL commit in progress.
ACL 'ACL3' successfully committed.
特定ネットワーク上のIPアドレスのバインディングをアドバタイズするARPパケットの許可/拒否
特定ネットワーク上のIPアドレスのバインディングをアドバタイズするARPパケットを許可/拒否するには、イネーブル モードで次の作業を行います。
(注) ip_maskは逆マスクです。[0]ビットは「一致」を意味し、[1]ビットは「無視」を意味します。たとえば、10.3.5.6と0.0.0.255は10.3.5/24と等価です。
|
|
|
ステップ 1 |
特定ネットワーク上のIPアドレスのバインディングをアドバタイズするARPパケットを許可/拒否します。 |
set security acl ip acl_name {permit | deny} arp-inspection ip_address ip_mask any |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
サブネット10.3.5.0/24上のIPアドレスのバインディングをアドバタイズするARPパケットを許可します。
Console> (enable) set security acl ip ACL4 permit arp-inspection 10.3.5.6 0.0.0.255 any
Console> (enable) commit security acl ACL4
Console> (enable) ACL commit in progress.
ACL 'ACL4' successfully committed.
MACアドレスが一致しないパケットの廃棄
(イーサネット ヘッダーの)送信元イーサネットMACアドレスがARPヘッダーの送信元MACアドレスと異なるパケットを廃棄するには、イネーブル モードで次の作業を行います。 drop オプションを指定しないと、パケットは廃棄されませんが、Syslogメッセージが表示されます。VACLロギング機能にパケットを送信するには、 log オプションを使用します。
ヒント 通常、match-mac 句を使用してARPスプーフィングを防止しても、各VLANの特定ARP検査ACLを作成する必要はなくなりません。match-mac 句は、より洗練されたARPテーブル攻撃を受けません。大部分のARPスプーファは、イーサネット ヘッダーの送信元MACアドレスを変更してARPペイロードのアドレスを一致させます。
|
|
|
ステップ 1 |
MACアドレスの一致しないパケットを特定または廃棄します。 |
set security acl arp-inspection match-mac { enable [drop [log]] | disable } |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
ステップ 3 |
設定を表示します。 |
show security acl arp-inspection config |
送信元イーサネットMACアドレスがARPヘッダーの送信元MACアドレスと異なるパケットを廃棄する例を示します。
Console> (enable) set security acl arp-inspection match-mac enable drop
ARP Inspection match-mac feature enabled with drop option.
Console> (enable) show security acl arp-inspection config
Match-mac feature is enabled with drop option.
MACまたはIPアドレスが無効なパケットの廃棄
次のMACアドレスは無効です。
• 00-00-00-00-00-00
• マルチキャストMACアドレス(48番目のビットを設定)
• ff-ff-ff-ff-ff-ff(これは特殊なケースのマルチキャストMACアドレスです)
次のIPアドレスは無効です。
• 0.0.0.0
• 255.255.255.255
• クラスD(マルチキャスト)IPアドレス
MACまたはIPアドレスが無効なパケットを廃棄するには、イネーブル モードで次の作業を行います( drop オプションを指定しないと、パケットは廃棄されませんが、Syslogメッセージが表示されます)。
|
|
|
ステップ 1 |
MACまたはIPアドレスが無効なパケットを廃棄します。 |
set security acl arp-inspection address-validation { enable [drop [log]] | disable } |
ステップ 2 |
VACLをコミットします。 |
commit security acl { acl_name | all | adjacency } |
ステップ 3 |
設定を表示します。 |
show security acl arp-inspection config |
MACまたはIPアドレスが無効なパケットを廃棄する例を示します。
Console> (enable) set security acl arp-inspection address-validation enable drop
ARP Inspection address-validation feature enabled with drop option.
Console> (enable) show security acl arp-inspection config
Address-validation feature is enabled with drop option.
ARP検査統計情報の表示
ARP検査タスクによって許可および拒否されたパケットの数を表示するには、イネーブル モードで次の作業を行います。
|
|
ARP検査タスクによって許可および拒否されたパケットの数を表示します。 |
show security acl arp-inspection statistics [acl_name] |
(注) show security aclコマンドを使用すると、特定のARP検査設定情報を表示します。
ARP検査タスクによって許可および拒否されたパケットの数を表示する例を示します。
Console> (enable) show security acl arp-inspection statistics
ARP Inspection statistics
RARP packets (forwarded) = 0
Packets for which Match-mac failed = 0
Packets for which Address Validation failed = 0
ARP検査統計情報の消去
ARP検査統計情報を消去するには、イネーブル モードで次の作業を行います。
|
|
ARP検査統計情報を消去します。 |
clear security acl arp-inspection statistics [acl_name] |
オプションの引数なしでコマンドを入力すると、すべてのACLでARP検査グローバル統計情報カウンタおよびARP検査統計情報カウンタがクリアされます。オプションの引数acl_nameを指定すると、特定ACLのARP検査統計情報だけが消去されます。
(注) clear security aclコマンドを使用すると、特定のARP検査設定の設定値が消去されます。
グローバル ベースのレート制限の設定
グローバル ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行えます。デフォルトでは、ARP検査トラフィックは500パケット/秒にレート制限されます。最小値は0パケット/秒、最大値は1000パケット/秒です。
(注) レート制限オプションは、複数の機能で共用できます。レート制限共用機能を表示するには、show security acl feature ratelimitコマンドを実行します。
グローバル ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行うには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
グローバル ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行います。 |
set security acl feature ratelimit rate |
ステップ 2 |
グローバル レート制限値を表示します。 |
show security acl feature ratelimit |
CPUに送信されるARP検査パケットの数を1000にレート制限する例を示します。
Console> (enable) set security acl feature ratelimit 1000
Dot1x DHCP and ARP Inspection global rate limit set to 1000 pps.
Console> (enable) show security acl feature ratelimit
Rate limit value in packets per second = 1000
Protocols set for rate limiting = Dot1x DHCP, ARP Inspection
ポート単位ベースのレート制限の設定
ポート単位ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行えます。レートがdrop-thresholdを超える場合、超過パケットは廃棄されます(さらにshutdown-threshold制限に対してカウントされます)。レートが shutdown-threshold を超える場合は、mod/portによって指定されたポートはシャットダウンされます。デフォルトでは、両方のスレッシュホールド値が0です(ポート単位のレート制限は適用されません)。両方のスレッシュホールドの最大値は1000パケット/秒(pps)です。
ポート単位ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行うには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ポート単位ベースでスーパバイザ エンジンCPUに送信されるARP検査パケットの数に対してレート制限を行います。 |
set port arp-inspection mod / port drop-threshold packets_per_second shutdown-threshold packets_per_second set port arp-inspection mod / port drop-threshold packets_per_second set port arp-inspection mod / port shutdown-threshold packets_per_second |
ステップ 2 |
廃棄およびシャットダウンのスレッシュホールドを表示します。 |
show port arp-inspection {[mod/port] | [mod]} |
ポート単位ベースでCPUに送信されるARP検査パケットの数をレート制限する例を示します。ポート3/1に対して廃棄スレッシュホールドを700、シャットダウン スレッシュホールドを800に設定します。
Console> (enable) set port arp-inspection 3/1 drop-threshold 700 shutdown-threshold 800
Drop Threshold=700, Shutdown Threshold=800 set on port 3/1.
Console> (enable) show port arp-inspection 3/1
Port Drop Threshold Shutdown Threshold
------------------------ -------------- ------------------
ARP検査のためのerrdisable-timeoutオプションの設定
set errdisable-timeout { enable | disable } arp-inspection コマンドを使用して、ARP検査のためにerrdisable-timeoutオプションを設定できます。errdisable-timeoutオプションの詳細については、「ポートのerrdisableステートにおけるタイムアウト設定」 を参照してください。
ARP検査のロギングの設定
ロギング オプションを設定して廃棄されるARP検査パケットのログを取るには、イネーブル モードで次の作業を行います。
|
|
廃棄されるARP検査パケットのログを取ります。 |
set security acl ip acl_name deny arp-inspection {host ip_address {any | mac_address } | ip_address ip_mask any | any any} [log] |
VACLロギング オプションの詳細については、「VACLロギングの設定」を参照してください。ここでは、set security acl log maxflow max_number コマンドによるログ フローの数の制限についても説明します。
ログARP検査パケットを表示するには、ユーザ モードで次の作業を行います。
|
|
ログARP検査パケットを表示します。 |
show security acl log flow arp [ host ip_address [ vlan vlan ]] |
オプションの host IP address を指定すると、指定したホストのIPアドレスのバインディングをアドバタイズするARPパケットだけが表示されます。オプションの vlan vlan を指定した場合は、検索が指定したVLANに限定されます。
プライベートVLAN上でのACLの設定
プライベートVLANにより、プライマリVLANをサブVLAN(セカンダリVLAN)に分割し、コミュニティVLANまたは独立VLANとして設定できます。リリース6.1(1)より前のソフトウェア リリースでは、ACLを設定できるのはプライマリVLANだけなので、ACLはすべてのセカンダリVLANに適用されます。ソフトウェア リリース6.1(1)以降のリリースでは、ACLの適用は次のようになります。
• VACLを、セカンダリVLANまたはプライマリVLANにマッピングできます。
• プライマリVLANにマッピングしたCisco IOS ACLが、関連するセカンダリVLANにマッピングされます。
• Cisco IOS ACLを、セカンダリVLANにマッピングすることはできません。
• ダイナミックACEを、プライベートVLANにマッピングすることはできません。
• QoS ACLを、セカンダリVLANまたはプライマリVLANにマッピングできます。
VACLをプライマリVLANにマッピングした場合、ルータからホストへのトラフィックがフィルタリングされます。また、セカンダリVLANにマッピングした場合は、ホストからルータへのトラフィックがフィルタリングされます。
(注) ソフトウェア リリース6.2(1)以降のリリースでは、MSFC混合ポートを通ってトラフィックがプライベートVLANの境界を越えるとき、双方向コミュニティVLANを使用してプライマリVLANからセカンダリVLANへの逆マッピングを実行できます。発信と着信の両方のトラフィックは、VLANベースのVACLをコミュニティ(または顧客)単位で両方向に適用できる同一のVLANで搬送できます。
(注) プライベートVLANの詳細については、「スイッチ上のプライベートVLANの設定」を参照してください。
スイッチ上でのVACLの設定
ここでは、VACLの設定方法について説明します。設定の作業を行う前に、「VACL設定時の注意事項」を参照してください。
ここでは、VACL設定時の注意事項と要約について説明します。
• 「VACL設定時の注意事項」
• 「VACL設定の要約」
• 「CLIからのVACLの設定」
VACL設定時の注意事項
ここでは、VACL設定時の注意事項について説明します。
注意 ACLの変更はすべて、編集バッファに一時的に保存されます。すべてのACEをNVRAM(不揮発性RAM)にコミットするには、
commit
コマンドを入力する必要があります。ACEを指定せずにコミットしたACLは、削除されます。ACEをまとめて入力し、
commitコマンドを使用してすべての変更をNVRAMに保存することを推奨します。
(注) Cisco IOS ACLとVACLは、NVRAMではなくフラッシュ メモリから設定できます。詳細は、「VACLおよびQoS ACLの設定およびフラッシュ メモリへの保存」を参照してください。
• 「同一VLANインターフェイス上にCisco IOS ACLおよびVACLを設定する場合の注意事項」を参照してください。
• 設定例は、「ネットワークでのVACLの使用」を参照してください。
• 「サポートされない機能」を参照してください。
• 「ACLマージ アルゴリズムの指定」を参照してください。
• VLANにマッピングするには、まずVACLをコミットする必要があります。デフォルトのVACLはありません。また、VACL-VLANのデフォルト マッピングもありません。
• ルーテッドVLANインターフェイス(入力または出力)上のトラフィックを拒否するCisco IOS ACLが設定されておらず、かつVACLが設定 されていない 場合、すべてのトラフィックが許可されます。
• ACLでは、ACEの入力順序が重要になります。スイッチに入ってくるパケットは、まずACLの最初のACEと照合されます。一致しない場合、パケットはリストの次のACEと照合されます。どのACEとも一致しない場合、パケットは拒否(廃棄)されます。
• 編集バッファの内容を変更する前に、必ずshow security acl info acl_name editbufferコマンドを使用して、 現在の ACEリストを確認してください。
• 冗長MSFCを搭載したシステムでは、両方のMSFCに、Cisco IOS ACLおよびVACLの同じACL設定を適用する必要があります。
• ACLをコミットしないで削除した場合、システムのACLの最大数が誤って算出されることがあります。
• show security acl resource-usage および show qos acl resource-usage コマンドの出力では、ハードウェアにACLを保管できるスペースがなくなっても、使用率が100 %にならないことがあります。ACL管理者が必要に応じてクリーンアップおよびマッピングを実行できるよう、予備のACLスペースが確保されているためです。
• 非常に多数のACLを設定すると、システムの起動時間が通常より長くなることがあります。
• リダイレクト オプションを使用する場合、次の注意事項に留意してください。
–リダイレクト パケットを送出できるのは、そのトラフィックが属しているVLANをサポートしているポートだけです。
–また、リダイレクト オプションの動作は、パケットを受信してリダイレクト ポートに送信するだけで、ルーティングは実行しません。
–パケットが多数のVLANから送信される場合、リダイレクト ポートはこれらのVLANをフォワーディング ステートにする必要があります。ポートで複数のVLANをサポートするには、リダイレクト ポートをトランクとして設定しなければならないことがあります。
–ルーティングされていないトラフィックを受信できるように、キャッシュは混合(promiscuous)モードに設定します。
–複数のポートにトラフィックを転送して基本的なVLANベースの負荷分散を実行するには、リダイレクト オプションを使用します。各ポートは、そのポートでフォワーディング ステートになっているVLANのパケットだけを転送します。
VACL設定の要約
VACLを作成して、VLANにマッピングする手順は、次のとおりです。
ステップ 1 set security acl ip コマンドを入力してVACLを作成し、ACEを追加します。
ステップ 2 commit コマンドを入力して、VACLおよび関連ACEをNVRAMにコミットします。
ステップ 3 set security acl map コマンドを入力して、VACLをVLANにマッピングします。
(注) この説明ではIP VACLを使用していますが、同じ手順でIPXおよびnon-IP version 4/non-IPX VACLを設定することもできます。
(注) VACLは、リストの最後に暗黙の拒否ステートメントが付加されます。どのVACL ACEにも一致しないパケットは拒否されます。
ACLマージ アルゴリズムの指定
ACLマージ アルゴリズムには、BDDとODMの2種類があります。ODMは、ソフトウェア リリース7.1(1)で採用された拡張アルゴリズムです。BDDアルゴリズムは、7.1(1)より前のソフトウェア リリースで使用されています。ODMを使用した場合、マージ後のACEは順序に従います。BDDを使用した場合、マージ後のACEは順序に従いません。
(注) ODMアルゴリズムの例については、「スーパバイザ エンジン ソフトウェア リリース7.1(1)以降のリリース場合のマージ結果の推定」を参照してください。
デフォルトのアルゴリズムはODMです。BDDをディセーブルにした場合、マージ アルゴリズムはODMだけになります。BDDがイネーブルの場合、BDDアルゴリズムまたはODMアルゴリズムのどちらか一方を選択できます。ACLマージ アルゴリズムを変更するには、BDDがイネーブルでなければなりません。BDDのイネーブル/ディセーブルには、 set aclmerge bdd コマンドを使用します。BDDをイネーブルまたはディセーブルにした場合、その変更が有効になるのは、システムの再起動後です。
注意 64 MB DRAMが搭載されたスーパバイザ エンジンでBDDをイネーブルにすると、メモリが不足する可能性があります。これを防ぐためには、メモリを128 MBにアップグレードするか、BDDをディセーブルにする必要があります。
選択したACLマージ アルゴリズムは、すべての新規ACLマージで有効です。設定済みのACLが変更されることはなく、ACLのマージ時に有効だったACLマージ アルゴリズムが使用されます。
BDDをイネーブルまたはディセーブルにするには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
BDDをイネーブルまたはディセーブルにします。 |
set aclmerge bdd { enable | disable } |
ステップ 2 |
現在のBDDステータスおよび次回のシステム再起動時にBDDがイネーブルまたはディセーブルになるのかを表示します。 |
show aclmerge { bdd | algo } |
BDDをディセーブルにする例を示します。
Console> (enable) set aclmerge bdd disable
Bdd will be disabled on system restart.
次の例では、現在のBDDステータスおよび次回のシステム再起動時にBDDがイネーブルまたはディセーブルになるのかを示します。
Console> (enable) show aclmerge bdd
On system restart bdd will be disabled.
ACLマージ アルゴリズムを指定するには、イネーブル モードで次の作業を行います。
|
|
|
ステップ 1 |
ACLマージ アルゴリズムを指定します。 |
set aclmerge algo { bdd | odm } |
ステップ 2 |
現在使用中のACLマージ アルゴリズムを表示します。 |
show aclmerge { bdd | algo } |
ODMアルゴリズムを指定する例を示します。
Console> (enable) set aclmerge algo odm
Acl merge algorithm set to odm.
現在使用中のACLマージ アルゴリズムを表示する例を示します。
Console> (enable) show aclmerge algo
Current acl merge algorithm is odm.
IP VACLの作成およびACEの追加
新しいIP VACLを作成してACEを追加したり、既存のIP VACLにACEを追加するには、イネーブル モードで次の作業を行います。
|
|
IPプロトコルを指定する必要がない場合は、この構文を使用します。 IPプロトコルを指定する場合は、この構文を使用します。 |
set security acl ip { acl_name } { permit | deny } { src_ip_spec } [ capture ] [ before editbuffer_index | modify editbuffer_index ] [ log ] set security acl ip { acl_name } { permit | deny | redirect mod_num/ port_num } { protocol } { src_ip_spec } { dest_ip_spec } [ precedence precedence ] [ tos tos ] [ capture ] [ before editbuffer_index | modify editbuffer_index ] [ log 1] |
IPACL1に1つのACEを作成し、送信元アドレス172.20.53.4からのトラフィックを許可する例を示します。
Console> (enable)
set security acl ip IPACL1 permit host 172.20.53.4 0.0.0.0
IPACL1 editbuffer modified. Use ‘commit’ command to apply changes.
(注) VACLはリストの最後に暗黙の拒否ステートメントが付加されるので、他のトラフィックはすべて拒否されます。
次に、IPACL1に1つのACEを作成して、すべての送信元アドレスからのトラフィックを許可する例を示します。
Console> (enable)
set security acl ip IPACL1 permit any
IPACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、IPACL1に1つのACEを作成して、送信元アドレス171.3.8.2からのトラフィックを阻止する例を示します。
Console> (enable)
set security acl ip IPACL1 deny host 171.3.8.2
IPACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、編集バッファの内容を表示する例を示します。
Console> (enable)
show security acl info IPACL1 editbuffer
set security acl ip IPACL1
-----------------------------------------------------------------
1. permit ip host 172.20.53.4 any
3. deny ip host 171.3.8.2 any
次に、ACEをNVRAMにコミットする例を示します。
Console> (enable)
commit security acl all
ACL IPACL1 is committed to hardware.
(注) commit security acl allコマンドの詳細については、「ACLのコミット」を参照してください。
変更がコミットされたかどうかを確認するには、 show security acl info IPACL1 コマンドを入力します。このVACLがVLANにマッピングされていない場合には、 set security acl map コマンドを使用してVLANにマッピングします。
次に、IPACL2に1つのACEを作成して送信元アドレス172.20.3.2からのトラフィックを阻止し、このACEをVACLのACE No.2の前に挿入する例を示します。任意で、modifyキーワードを使用して、既存のACEを新しいACEに置換することができます。NVRAMに保存されている現在のACEリストを表示するには、 show security acl info acl_name [ editbuffer ]コマンドを使用します(編集バッファの内容を表示する場合、 editbuffer キーワードを指定します)。
Console> (enable)
set security acl ip IPACL2 deny host 172.20.3.2 before 2
IPACL2 editbuffer modified. Use ‘commit’ command to apply changes.
次に、IPACL2に1つのACEを作成して、送信元アドレスが1.2.3.4で宛先アドレスが255.255.255.255からのIPトラフィックを、ポート3/1にリダイレクトする例を示します。送信元および送信元ワイルドカード0.0.0.0の省略形としてhostを使用できることに注意してください。また、このACEは、次の内容も指定しています。
• precedence ― IP precedence値です。優先度は、0(ゼロ)が最も低く、7が最も高くなります。
• tos ― サービス タイプのレベルで、0~15を指定します。
Console> (enable)
set security acl ip IPACL2 redirect 3/1 ip 1.2.3.4 0.0.0.255 host 255.255.255.255 precedence 1 tos min-delay
IPACL2 editbuffer modified. Use ‘commit’ command to apply changes.
次に、編集バッファの内容を表示する例を示します。
Console> (enable)
show security acl info IPACL2 editbuffer
set security acl ip IPACL2
-----------------------------------------------------------------
(注) show security acl infoコマンドの詳細については、「VACLの内容の表示」を参照してください。
次に、ACEをNVRAMにコミットする例を示します。
Console> (enable)
commit security acl all
ACL IPACL2 is committed to hardware.
(注) commit security acl allコマンドの詳細については、「ACLのコミット」を参照してください。
変更がコミットされたかどうかを確認するには、 show security acl info IPACL2 コマンドを入力します。このVACLがVLANにマッピングされていない場合には、 set security acl map コマンドを使用してVLANにマッピングします。
IPX VACLの作成およびACEの追加
新しいIPX VACLを作成してACEを追加したり、既存のIPX VACLにACEを追加するには、イネーブル モードで次の作業を行います。
|
|
新しいIPX VACLを作成してACEを追加するか、既存のIPX VACLにACEを追加します。 |
set security acl ipx { acl_name } { permit | deny | redirect mod_num/port_num } { protocol } { src_net } [ dest_net. [ dest_node ] [[ dest_net_mask. ] dest_node_mask ]] [ capture ] [ before editbuffer_index modify editbuffer_index ] |
IPXACL1に1つのACEを作成して、送信元ネットワーク1234からのすべてのトラフィックを阻止する例を示します。
Console> (enable)
set security acl ipx IPXACL1 deny any 1234
IPXACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、IPXACL1に1つのACEを作成して、宛先アドレスが1.A.3.4のすべてのトラフィックを阻止する例を示します。
Console> (enable)
set security acl ipx IPXACL1 deny any any 1.A.3.4
IPXACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、IPXACL1に1つのACEを作成して、送信元ネットワーク3456からのブロードキャスト トラフィックをポート4/1にリダイレクトする例を示します。
Console> (enable)
set security acl ipx IPXACL1 redirect 4/1 any 3456
IPXACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、編集バッファの内容を表示する例を示します。
Console> (enable)
show security acl info IPXACL1 editbuffer
set security acl ipx IPXACL1
-----------------------------------------------------------------
(注) show security acl infoコマンドの詳細については、「VACLの内容の表示」を参照してください。
次に、ACEをNVRAMにコミットする例を示します。
Console> (enable)
commit security acl all
ACL IPXACL1 is committed to hardware.
変更がコミットされたかどうかを確認するには、 show security acl info IPXACL1 コマンドを入力します。このVACLがVLANにマッピングされていない場合には、 set security acl map コマンドを使用してVLANにマッピングします。
次に、IPXACL1に1つのACEを作成して送信元ネットワーク1からのすべてのトラフィックを許可し、このACEをACE No.2の前に挿入する例を示します。
Console> (enable)
set security acl ipx IPXACL1 permit any 1 before 2
IPXACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、IPXACL1に1つのACEを作成し、すべての送信元アドレスからのトラフィックを許可する例を示します。
Console> (enable)
set security acl ipx IPXACL1 permit any any
IPXACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、編集バッファの内容を表示する例を示します。
Console> (enable)
show security acl info IPXACL1 editbuffer
set security acl ipx IPXACL1
-----------------------------------------------------------------
ACL IPXACL1 Status: Not Committed
次に、ACEをNVRAMにコミットする例を示します。
Console> (enable)
commit security acl all
ACL IPXACL1 is committed to hardware.
(注) commit security acl allコマンドの詳細については、「ACLのコミット」を参照してください。
変更がコミットされたかどうかを確認するには、 show security acl info IPXACL1 コマンドを入力します。このVACLがVLANにマッピングされていない場合には、 set security acl map コマンドを使用してVLANにマッピングします。
non-IP version 4/non-IPX VACL(MAC VACL)の作成およびACEの追加
注意 IPトラフィックおよびIPXトラフィックは、MAC VACLではアクセス制御されません。その他のトラフィック タイプ(AppleTalk、DECnetなど)はすべてMACトラフィックとして分類され、MAC VACLによってアクセス制御されます。
新しいnon-IP version 4/non-IPX VACLを作成してACEを追加したり、既存のnon-IP version 4/non-IPX VACLにACEを追加したりするには、イネーブル モードで次の作業を行います。
|
|
新しいnon-IP version 4/non-IPX VACLを作成してACEを追加するか、既存のnon-IP version 4/non-IPX VACLにACEを追加します。 |
set security acl mac { acl_name } { permit | deny } { src_mac_addr_spec } { dest_mac_addr_spec } [ ether-type ] [ capture ] [ before editbuffer_index | modify editbuffer_index ] |
MACACL1に1つのACEを作成して、8-2-3-4-7-Aからのすべてのトラフィックを阻止する例を示します。
Console> (enable)
set security acl mac MACACL1 deny host 8-2-3-4-7-A any
MACACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、MACACL1に1つのACEを作成して、A-B-C-D-1-2を宛先とするすべてのトラフィックを阻止する例を示します。
Console> (enable)
set security acl mac MACACL1 deny any host A-B-C-D-1-2
MACACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、MACACL1に1つのACEを作成して、すべての送信元からのトラフィックを許可する例を示します。
Console> (enable)
set security acl mac MACACL1 permit any any
MACACL1 editbuffer modified. Use ‘commit’ command to apply changes.
次に、編集バッファの内容を表示する例を示します。
Console> (enable)
show security acl info MACACL1 editbuffer
set security acl mac MACACL1
-----------------------------------------------------------------
(注) show security acl infoコマンドの詳細については、「VACLの内容の表示」を参照してください。
次に、ACEをNVRAMにコミットする例を示します。
Console> (enable)
commit security acl all
ACL MACACL1 is committed to hardware.
(注) commit security acl allコマンドの詳細については、「ACLのコミット」を参照してください。
変更がコミットされたかどうかを確認するには、 show security acl info MACACL1 コマンドを入力します。このVACLがVLANにマッピングされていない場合には、 set security acl map コマンドを使用してVLANにマッピングします。
ACLのコミット
すべてのACLまたは指定したACLをNVRAMにコミットするには、 commit コマンドを使用します。ACEが設定されていないACLは、コミットしても削除されます。
ACLをNVRAMにコミットするには、イネーブル モードで次の作業を行います。
|
|
ACLをNVRAMにコミットします。 |
commit security acl acl_name | all |
セキュリティACLを指定して、NVRAMにコミットする例を示します。
Console> (enable)
commit security acl IPACL2
ACL IPACL2 is committed to hardware.
VACLのVLANへのマッピング
VACLをVLANにマッピングするには、 set security acl map コマンドを使用します。デフォルトのACL-VLANマッピングは設定されていないことに注意してください。すべてのVACLをVLANにマッピングする必要があります。
VACLをVLANにマッピングするには、イネーブル モードで次の作業を行います。
|
|
VACLをVLANにマッピングします。 |
set security acl map acl_name vlans |
IPACL1をVLAN 10にマッピングする例を示します。
Console> (enable)
set security acl map IPACL1 10
ACL IPACL1 mapped to vlan 10
次に、コミットしていないACLをマッピングしようとした場合の出力例を示します。
Console> (enable)
set security acl map IPACL1 10
Commit ACL IPACL1 before mapping.
VACLの内容の表示
VACLの内容を表示するには、 show security acl info コマンドを使用します。
VACLの内容を表示するには、イネーブル モードで次の作業を行います。
|
|
VACLの内容を表示します。 |
show security acl info { acl_name | all } [ editbuffer [ editbuffer _ index ]] |
NVRAMに保存したVACLの内容を表示する例を示します。
Console> (enable)
show security acl info IPACL1
set security acl ip IPACL1
------------------------------------------------------------------
次に、編集バッファ内にあるVACLの内容を表示する例を示します。
Console> (enable)
show security acl info IPACL1 editbuffer
set security acl ip IPACL1
-----------------------------------------------------------------
VACL-VLANのマッピングの表示
show security acl map コマンドを使用して、特定のACLまたはVLANのVACL-VLANマッピングを表示することができます。
VACL-VLANマッピングを表示するには、イネーブル モードで次の作業を行います。
|
|
VACL-VLANマッピングを表示します。 |
show security acl map { acl_name | vlan | all } |
特定のVACLのマッピングを表示する例を示します。
Console> (enable)
show security acl map IPACL1
ACL IPACL1 is mapped to VLANs:
次に、特定のVLANのマッピングを表示する例を示します。
Console> (enable)
show security acl map 1
VLAN 1 is mapped to IP ACL IPACL1.
VLAN 1 is mapped to IPX ACL IPXACL1.
VLAN 1 is mapped to MAC ACL MACACL1.
編集バッファの消去
rollback コマンドを使用して、最後に保存した後に行ったACL編集バッファの変更を消去することができます。ACLは、最後の commit コマンド実行時の内容に戻ります。
ACL編集バッファの内容を消去するには、イネーブル モードで次の作業を行います。
|
|
ACL編集バッファの内容を消去します。 |
rollback security acl { acl_name | all | adjacency } |
特定のセキュリティACLについて、編集バッファの内容を消去する例を示します。
Console> (enable)
rollback security acl IPACL1
Editbuffer for ‘IPACL1’ rolled back to last commit state.
セキュリティACLからのACEの削除
ACLから特定のACE、またはすべてのACEを削除するには、 clear security acl コマンドを使用します。このコマンドは、編集バッファからACEを削除します。
セキュリティACLからACEを削除するには、イネーブル モードで次の作業を行います。
|
|
セキュリティACLからACEを削除します。 |
clear security acl all clear security acl acl_name clear security acl acl_name editbuffer_index |
すべてのACLからACEを削除する例を示します。
Console> (enable)
clear security acl all
All editbuffers modified. Use ‘commit’ command to apply changes.
次に、特定のACLから特定のACEを削除する例を示します。
Console> (enable)
clear security acl IPACL1 2
IPACL1 editbuffer modified. Use ‘commit’ command to apply changes.
セキュリティACLマップの消去
VACL-VLANマッピングを削除するには、 clear security acl map コマンドを使用します。
セキュリティACLマップを消去するには、イネーブル モードで次の作業を行います。
|
|
セキュリティACLマップを消去します。 |
clear security acl map all clear security acl map acl_name clear security acl map vlan clear security acl map acl_name vlan |
すべてのVACL-VLANマッピングを消去する例を示します。
Console> (enable)
clear security acl map all
Map deletion in progress.
Successfully cleared mapping between ACL ip1 and VLAN 10.
Successfully cleared mapping between ACL ipx1 and VLAN 10.
次に、特定のVLAN上の特定のVACLのマッピングを消去する例を示します。
Console> (enable)
clear security acl map IPACL1 50
Map deletion in progress.
Successfully cleared mapping between ACL ipacl1 and VLAN 50.
VACL管理情報の表示
VACL管理情報を表示するには、 show security acl resource-usage コマンドを使用します。
VACL管理情報を表示するには、イネーブル モードで次の作業を行います。
|
|
VACL管理情報を表示します。 |
show security acl resource-usage |
VACL管理情報を表示する例を示します。
Console> (enable)
show security acl resource-usage
ACL storage (mask/value): 0.29%/0.10%
ACL to switch interface mapping table: 0.39%
ACL layer 4 port operators: 0.0%
特定ポート上でのトラフィック フローのキャプチャ
set security acl ( ip 、 ipx 、および mac )コマンドの capture option を使用して、指定したフローと一致するパケットをキャプチャして、キャプチャ ポートから送出することができます。キャプチャ ポートは、 set security acl capture-ports mod/ports... コマンドを使用して指定します。 capture オプションを使用すると、指定したフローと一致するパケットが、通常どおりスイッチングされるほか、キャプチャされ、キャプチャ ポートから送出されます。キャプチャ ポートはキャプチャしたすべてのトラフィックを送出するわけではありません。キャプチャ ポートのVLANに属すトラフィックだけを送出します。
設定時の注意事項
ここでは、キャプチャ ポート設定時の注意事項について説明します。
• キャプチャ ポートは、EtherChannelの一部にすることはできません。
• キャプチャ ポートは、ATMポートとして使用することはできません。
• キャプチャ ポートは、VLANのスパニングツリー フォワーディング ステートに設定する必要があります。
• 任意の数のスイッチ ポートをキャプチャ ポートとして指定することができます。キャプチャ ポートは、キャプチャ ポート リストに追加され、その設定がNVRAMに保存されます。
• 許可トラフィックだけがキャプチャされます。ACLにより破棄されたパケットはキャプチャできません。
• キャプチャ ポートは、キャプチャしたすべてのトラフィックを送出するわけではありません。キャプチャ ポートのVLANに属すトラフィックだけが送出されます。多数のVLANに宛てられたトラフィックをキャプチャするには、キャプチャ ポートを、必要なVLANをサポートするトランクとして設定する必要があります。
キャプチャ ポートは、レイヤ3でスイッチングされたパケットだけを送信します。したがって、レイヤ3でスイッチングされたフローの出力VLANがキャプチャ ポートのVLANと一致する場合に限り、パケットがポートから送出されます。たとえば、VLAN 10からVLAN 20へのフローがある場合、(VLANの1つに)これらのフローを許可するVACLを追加し、キャプチャ ポートを指定したと想定します。この場合、トラフィックがキャプチャ ポートから送出されるのは、トラフィックがVLAN 20に属しているか、またはポートがVLAN 20をサポートするトランクの場合だけです。キャプチャ ポートがVLAN 10の場合には、トラフィックは送出されません。キャプチャ ポートがトラフィックを送出するかどうかは、VLANにVACLが設定されていることとは無関係です。
1つのVLANから多数のVLANに宛てられるトラフィックをキャプチャしたい場合には、キャプチャ ポートを、すべての出力VLANをサポートするトランクとして設定する必要があります。
ブリッジド トラフィックの場合、すべてのトラフィックは同じVLAN内にとどまるため、キャプチャ ポートはブリッジド トラフィックと同じVLAN内に存在します。
• トラフィックをキャプチャするには、1つのACLを設定してVLANグループにマッピングするか、複数のACLを設定して各ACLを1つのVLANにマッピングします。1つのACLに必要なACEを設定して、トラフィックをキャプチャすることができます。
トラフィック フローをキャプチャする手順は、次のとおりです。
(注) この説明ではIP VACLを使用していますが、同じ手順でIPXおよびnon-IP version 4/non-IPX VACLを設定することもできます。
ステップ 1 set security acl ip コマンドを入力してVACLを作成し、ACEを追加します。 capture オプションを指定します。
ステップ 2 commit コマンドを入力して、VACLおよび関連ACEをNVRAMにコミットします。
ステップ 3 set security acl map コマンドを入力して、VACLをVLANにマッピングします。
ステップ 4 キャプチャ ポートは、 set security acl capture-ports mod/ports... コマンドを使用して指定します。
設定例
my_capに1つのACEを作成し、許可トラフィックをキャプチャするよう指定する例を示します。
Console> (enable) set security acl ip my_cap permit ip host 60.1.1.1 host 60.1.1.98 capture
my_cap editbuffer modified. Use ’commit’ command to apply changes.
次に、my_cap ACLをNVRAMにコミットする例を示します。
Console> (enable) commit security acl my_cap
ACL my_cap successfully committed.
次に、my_capをVLAN 10にマッピングする例を示します。
Console> (enable) set security acl map my_cap 10
VLAN 10 successfully mapped to ACL my_cap.
The old mapping with ACL captest was replaced with the new one.
次に、キャプチャ ポートを指定する例を示します。
Console> (enable) set security acl capture-ports 1/1-2,2/1-2
Successfully set the following ports to capture ACL traffic:
次に、キャプチャ ポートとして指定したポートを表示する例を示します。
Console> (enable) show security acl capture-ports
ACL Capture Ports: 1/1-2,2/1-2
次に、キャプチャ ポートを削除する例を示します。
Console> (enable) clear security acl capture-ports 1/1,2/1
Successfully cleared the following ports:
次の例は、ポート1/1および2/1が削除されたことを示しています。
Console> (enable) show security acl capture-ports
ACL Capture Ports:1/2,2/2
VACLロギングの設定
(注) この機能を使用できるのは、Layer 3 Switching Engine 2(PFC2)搭載のSupervisor Engine 2だけです。
拒否VACLに対して log キーワードを使用すると、標準IPアクセス リストについて、拒否されたパケットのメッセージを記録できます。アクセス リストに一致するパケットによって、コンソールに送信されるパケットに関する情報ロギング メッセージが生成されます。コンソールに記録されるメッセージのレベルは、 set logging level acl severity コマンドによって制御されます。
最初のパケットはアクセス リストをトリガし、それによってただちにロギング メッセージが生成されます。それ以降のパケットは、5分を超える間隔で収集されてから、表示または記録されます。ロギング メッセージには、過去5分間に受信したパケットのフロー パターンと数が含まれています。
デフォルトでは、システム ロギング メッセージがコンソールに送信されます。Syslogサーバにシステム ロギング メッセージを送信するように、スイッチを設定することができます。システム メッセージ ロギング設定の詳細については、「システム メッセージ ロギングの設定」を参照してください。
設定時の注意事項
ここでは、VACLロギング設定時の注意事項について説明します。
• IP VACLからの拒否トラフィックのみを記録します。
• ロギング レベルは6(情報)または7(デバッグ)に設定します。
VACLのロギングをイネーブルにするには、次のステップを実行します。
ステップ 1 set logging level acl severity コマンドを使用して、ロギング レベルを6(情報)または7(デバッグ)に設定します。
ステップ 2 (任意) set security acl log maxflow max_number コマンドを使用して、最大フロー パターン数に基づいて新しいログ テーブルを割り当て、記録されたパケット情報を保管します。正常に実行されると、新しいバッファが古いものと置き換わり、古いテーブルのフローがすべて消去されます。メモリが不足しているか、最大数が限度を超えている場合は、エラー メッセージが表示され、コマンドは廃棄されます。有効な値は、256~2048で、デフォルト値は500です。
(注) 最大フロー パターンがmax_numの限度を超えている場合は、エラー メッセージが表示され、コマンドは廃棄されます。このようなパケットのメッセージは記録されません。
ステップ 3 (任意) set security acl log ratelimit pps を使用して、pps(パケット/秒)単位でリダイレクト レートを設定します。設定が範囲を超える場合は、コマンドは廃棄され、範囲がコンソールに表示されます。有効な値は、500~5000で、デフォルト値は2500です。
(注) リダイレクト レートがppsの範囲を超える場合は、コマンドは廃棄され、範囲がコンソールに表示されます。このようなパケットのメッセージは記録されません。
ステップ 4 set security acl ip acl_name deny log コマンドを使用してIP VACLを作成し、ロギングをイネーブルにします。
ステップ 5 commit security acl acl_name コマンドを使用して、NVRAMにVACLをコミットします。
ステップ 6 set security acl map acl_name vlan コマンドを使用して、VACLをVLANにマッピングします。
設定例
ロギング レベルを設定する例を示します。
Console> (enable) set logging level acl 6
System logging facility <acl> for this session set to severity 6(information)
次に、最大フローに基づく新しいログ テーブルを割り当てる例を示します。
Console> (enable) set security acl log maxflow 512
Set VACL Log table to 512 flow patterns.
次に、リダイレクト レートを設定する例を示します。
Console> (enable) set security acl log ratelimit 1000
Set Redirect Rate to 1000 pps.
次に、VACLログの設定を表示する例を示します。
Console> (enable) show security acl log config
-------------------------------------------------------------
Redirect Rate (pps) : 1000
次に、my_capにACEを1つ作成し、拒否されたトラフィックを記録するように指定する例を示します。
Console> (enable) set security acl ip my_cap deny ip host 21.0.0.1 log
my_cap editbuffer modified. Use ’commit’ command to apply changes.
次に、my_cap ACLをNVRAMにコミットする例を示します。
Console> (enable) commit security acl my_cap
ACL my_cap successfully committed.
次に、VACLをVLANにマッピングする例を示します。
Console> (enable) set security acl map my_cap 1
ACL my_cap successfully mapped to VLAN 1.
2000 Jul 19 01:14:06 %ACL-6-VACLLOG:VLAN 1(Port 2/1) denied ip tcp 21.0.0.1(2000) -> 255.255.255.255(3000), 1 packet
2000 Jul 19 01:19:06 %ACL-6-VACLLOG:VLAN 1(Port 2/1) denied ip tcp 21.0.0.1(2000) -> 255.255.255.255(3000), 7 packets
2000 Jul 19 01:25:06 %ACL-6-VACLLOG:VLAN 1(Port 2/2) denied ip tcp 21.0.0.1(2000) -> 255.255.255.255(3000), 1 packets
次の例では、ログ テーブルのフロー情報を表示する方法を示します。
Console> (enable) show security acl log flow ip any any
Total matched entry number = 1
----------------------------------------
Source IP address : 21.0.0.1
Destination IP address : 255.255.255.255
TCP Destination port : 3000
Received Packet Number : 10
次は、ログ テーブルの削除方法です。
Console> (enable) clear security acl log flow
VACLおよびQoS ACLの設定およびフラッシュ メモリへの保存
ここでは、VACLおよびQoS ACLを設定し、NVRAMではなくフラッシュ メモリに保存する手順について説明します。これまでの作業では、設定情報はすべてNVRAMに保存されます。QoSおよびセキュリティACL(VACL)を追加すると、NVRAMの空き容量がなくなることがあります。NVRAMの空き容量がなくなると、ACL設定が制限されるほか、ソフトウェア バージョンのアップグレード時にも支障があります。
(注) ほとんどの場合、VACLおよびQoS ACLを保存するには512 KBのNVRAMで十分です。そのため、デフォルトでは、すべてのACL設定がNVRAMに保存されます。
ここで説明する作業は、次のとおりです。
• 「VACLおよびQoS ACL設定のフラッシュ メモリへの自動的な移動」
• 「VACLおよびQoS ACL設定のフラッシュ メモリへの手動での移動」
• 「VACLおよびQoS ACL設定のフラッシュ メモリからの実行」
• 「VACLおよびQoS ACL設定をNVRAMに戻す」
• 「冗長構成の同期化サポート」
• 「ハイ アベイラビリティの保証」
(注) ここで使用するコマンドの詳細については、「スイッチの起動設定の変更」を参照してください。
VACLおよびQoS ACL設定のフラッシュ メモリへの自動的な移動
VACLおよびQoS ACL設定がフラッシュ メモリに自動的に移動するのは、システム ソフトウェアのアップグレード時に、アップグレードに必要なNVRAM容量が不足している場合だけです。ソフトウェア アップグレードの実行に必要なNVRAM容量が不足している場合、 NVRAMからQoS ACLおよびVACLの設定が削除され、ACL設定が 自動的にフラッシュ メモリに移されます。この場合、次のSyslogメッセージが表示されます。
1999 Sep 01 17:00:00 %SYS-1-CFG_FLASH:ACL configuration moved to bootflash:switchapp.cfg
1999 Sep 01 17:00:00 %SYS-1-CFG_ACL_DEALLOC:NVRAM full. Qos/Security ACL configuration deleted from NVRAM.
これで、VACLおよびQoS ACL設定がフラッシュ メモリに正常に移動したことが確認できます。この間システムは、同時に次の処理も実行します。
• CONFIG_FILE変数をbootflash:switchapp.cfgに設定します。
• set boot config-register auto-config コマンドの recurring 、 append 、および sync オプションをイネーブルにします。
アップグレード中にエラーが発生すると、次のSyslogメッセージが表示されます。
1999 Sep 01 17:00:00 %SYS-1-CFG_FLASH_ERR:Failed to write ACL configuration to bootflash:switchapp.cfg
1999 Sep 01 17:00:00 %SYS-1-CFG_ACL_DEALLOC:NVRAM full. Qos/Security ACL configuration deleted from NVRAM.
これらのエラー メッセージが表示された場合、VACLおよびQoS ACL設定はDRAMだけに保存されています。フラッシュ メモリ内に空き容量を確保して設定をフラッシュ メモリに保存する必要があります(VACLおよびQoS ACL設定をNVRAMに戻すを参照)。または、不要なVACLおよびQoS ACLを削除して、 set config acl nvram コマンドでACL設定をNVRAMに保存することもできます。
VACLおよびQoS ACL設定のフラッシュ メモリへの手動での移動
VACLおよびQoS ACL設定が、512 KB NVRAMの容量を超える場合には、次の手順で、VACLおよびQoS ACLの設定を手動でフラッシュ メモリに移動することができます。
ステップ 1 起動時のスイッチ設定に使用するVACLおよびQoS ACL auto-configファイルを指定します。
Console> (enable) set boot auto-config bootflash:switchapp.cfg
CONFIG_FILE variable = bootflash:switchapp.cfg
ステップ 2 スイッチのリセットまたは電源を切断してから再投入する際に、CONFIG_FILE環境変数の値を保持する( recurring キーワード)かまたは消去する( non-recurring キーワード)かを指定します。
Console> (enable) set boot config-register auto-config recurring
Configuration register is 0x12F
auto-config: recurring, overwrite, sync disabled
boot: image specified by the boot system commands
ステップ 3 auto-configファイルにより、NVRAMの設定を上書きするか、または現在のNVRAMの内容に追加するかを指定します。
Console> (enable) set boot config-register auto-config append
Configuration register is 0x12F
auto-config: recurring, append, sync disabled
boot: image specified by the boot system commands
ステップ 4 同期化をイネーブルにするか、ディセーブルにするかを指定します。同期化をイネーブルにすると、auto-configファイルにより、スタンバイ スーパバイザ エンジンが自動的に同期化されます。
Console> (enable) set boot config-register auto-config sync enable
Configuration register is 0x12F
auto-config: recurring, append, sync enabled
boot: image specified by the boot system commands
ステップ 5 コミットしたVACLおよびQoS ACL設定の変更を、auto-configファイルに保存します。
Console> (enable) copy acl-config bootflash:switchapp.cfg
Upload ACL configuration to bootflash:switchapp.cfg
2843644 bytes available on device bootflash, proceed (y/n) [n]? y
ACL configuration has been copied successfully.
ステップ 6 NVRAMから、VACLおよびQoS ACLの設定を削除します。
Console> (enable) clear config acl nvram
ACL configuration has been deleted from NVRAM.
Warning: Use the copy commands to save the ACL configuration to a file and
the ’set boot config-register auto-config’ commands to configure the
(注) auto-configファイルには、VACLおよび QoS ACLのマッピング コマンド(set qos acl mapおよびset security acl map)も保存されます。VACLおよびQoS ACLの設定をフラッシュ メモリに保存するとき、マッピング コマンドを使用している場合には、copyコマンドを使用して設定をフラッシュ メモリに保存する必要があります。
この時点では、VACLおよびQoS ACL設定は、NVRAMから削除されています。設定はauto-configファイルのbootflash:switchapp.cfgに保存されており、システムの起動時にNVRAM設定に付加されます。
VACLおよびQoS ACL設定に変更を加え、変更をコミットした場合には、 copy acl-config
bootflash:switchapp.cfg コマンドを使用して、設定をauto-configファイルに保存する必要があります。
同期化をイネーブルに設定したので、auto-configファイルの内容はスタンバイ スーパバイザ エンジンに自動的に反映されます。
VACLおよびQoS ACL設定をフラッシュ メモリに書き込めない場合、設定はすでにNVRAMから削除されています。この場合、VACLおよびQoS ACL設定はDRAMだけに保存されています。何らかの理由でシステムがリセットされると、VACLおよびQoS ACL設定はデフォルト設定に戻ります。
(注) 設定をフラッシュ メモリに書き込めない場合には、設定をファイルにコピーし、フラッシュ メモリの空き容量を増やしてから、VACLおよびQoS ACL設定を再びフラッシュ メモリに書き込んでください。
システムの起動時に、VACLおよびQoS ACL設定の保存場所がフラッシュ メモリに設定されている場合、CONFIG_FILE 変数が設定されていないか、指定したファイルが存在しないと、次のSyslogメッセージが表示されます。
1999 Sep 01 17:00:00 %SYS-0-CFG_FLASH_ERR:ACL configuration set to flash but no ACL configuration file found.
VACLおよびQoS ACL設定のフラッシュ メモリからの実行
VACLおよびQoS ACL設定をフラッシュ メモリに移動した後は、QoS ACLおよびVACLのコミット動作はNVRAMに書き込まれません。次のように、設定を手動でフラッシュ ファイルにコピーする必要があります。
• set boot config-register auto-config append オプション を使用すると、auto-configファイルの設定がNVRAM設定に追加されます。コミットした後、VACLおよびQoS ACLの設定を再びファイルにコピーします。
• set boot config-register auto-config append オプションを使用しないと、システムの起動時に、NVRAMの設定が消去されてから、auto-configファイルが実行されます。この場合、NVRAMに保存した変更は失われます。保存する場合には、(VACLおよびQoS ACL設定だけでなく)設定全体をauto-configファイルにコピーしておく必要があります。
VACLおよびQoS ACL設定をNVRAMに戻す
VACLおよびQoS ACLの設定をNVRAMに戻す例を示します。
Console> (enable) set config acl nvram
ACL configuration copied to NVRAM.
Console> (enable) clear boot auto-config
冗長構成の同期化サポート
set boot コマンドには、auto-configファイルを自動的に同期化するオプションがあります。
auto-config オプションをイネーブルにして、VACLとQoS ACLの設定がフラッシュ メモリにある場合、アクティブ スーパバイザ エンジン上のauto-configファイルの変更は常に、スタンバイ スーパバイザ エンジンに同期化されます。たとえば、アクティブ スーパバイザ エンジン上のauto-configファイルを削除すると、スタンバイ スーパバイザ エンジン上でもそのファイルが削除されます。同様に、新しいスタンバイ スーパバイザ エンジンを搭載すると、アクティブ スーパバイザ エンジンにより、auto-configファイルが自動的に同期化されます。
ハイ アベイラビリティの保証
スーパバイザ エンジンがスイッチオーバーしても、スタンバイ スーパバイザ エンジンのVACLおよびQoS ACL設定は、アクティブ スーパバイザ エンジンの内容、すなわちNVRAMに保存されているVACLおよびQoS ACL設定とまったく同じです。唯一の違いは、スタンバイ スーパバイザ エンジンではデータはDRAMに保存されますが、スイッチオーバーの機能的な動作の変更がないことです。
ポリシー ベース転送の設定
Policy-Based Forwarding(PBF;ポリシー ベース転送)機能は、PFC2によってサポートされるVACLリダイレクションの拡張機能です。PBFが特に有効なのは、トランスペアレント ブリッジングに使用され、必要なVLAN間通信の量が限られているフラットなレイヤ2ネットワークや、ブリッジング デバイス(サーバの負荷分散装置など)が含まれていたり、ファイアウォールの負荷分散が実行されていたりするサーバ ファームまたはDemilitarized Zone(DMZ;非武装ゾーン)です。
(注) ソフトウェア リリース7.5(1)以降のリリースではPBF機能が拡張され、セキュリティACLと隣接情報の設定およびコミットのプロセスが簡素化されています。詳細は、「PBF設定の拡張機能」を参照してください。
(注) PBFはIPXおよびマルチキャスト トラフィックをサポートしません。
(注) PBFは、802.1Qトンネル トラフィックでは機能しません。PBFはレイヤ3 IPユニキャスト トラフィックではサポートされていますが、レイヤ2トラフィックには適用されません。中間(PBF)スイッチでは、802.1Qトンネル トラフィックはすべてレイヤ2トラフィックと見なします。
(注) PBFは、接続したホスト上で設定が必要になる場合があります。ネットワークにルータが存在しない場合は、PBFに関連する各ホストに対してARPテーブル エントリを静的に追加する必要があります。
ここでは、PBFについて説明します。
• 「PBFの機能」
• 「PBFのハードウェアおよびソフトウェア要件」
• 「PBFの設定」
• 「PBFの設定例」
• 「PBF設定の拡張機能」
PBFの機能
PBFの設定には、次のステップが必要です。
• PBFのイネーブル化とPFC2用MACアドレスの指定
• PBFのためのVACLの設定
• PBFのための接続ホストの設定
PFC2用MACアドレスを指定することでPBFをイネーブルにできます。MACアドレスは、デフォルト設定のものでもユーザ側で指定するMACアドレスでもかまいません。パケットを送信する場合は、宛先MACアドレスはPFC2 MACアドレスと同じでなければなりません。 PFC2は、パケットがレイヤ3のパケットであると認識する必要があります。認識しない場合は書き換え処理が行われません。PFC2 MACアドレスでパケットが送信されなかった場合は、 PFC2はパケットをレイヤ2パケットとして処理します。
PBF VACLは、セキュリティACL(VACL)コマンド( set security acl コマンド)を使用して作成されます。PBF VACLは、PFC2の隣接テーブル エントリとリダイレクトACEを含みます。PBFに関与している両方のVLANに対してVACLを設定する必要があります。送信元VLANからのパケットがPFC2に着信し、PBF VACLにヒットします。隣接テーブルに記入されている情報に基づいてパケット ヘッダーが書き換えられ(宛先VLANおよび送信元/宛先MACアドレス)、パケットは宛先VLANに転送されます。パケットは、隣接情報に対応づけられたVACLエントリにヒットした場合にだけ、VLAN間で転送されます。
(注) VACLは着信/発信トラフィックに適用されるので、PBFを使用する際はすべてのVACLを慎重に設定する必要があります。VACLが明確でない場合は、書き換えられたパケットが発信VACLのdeny(拒否)ステートメントにヒットし、廃棄される可能性があります。
ネットワークにルータが存在しないときは、関与しているホスト上でスタティックARPエントリを指定する必要があります。
PBFのハードウェアおよびソフトウェア要件
PBFのハードウェアおよびソフトウェアの要件は、次のとおりです。
• PBFは、PFC2搭載のSupervisor Engine 2(WS-X6K-S2-PFC2)が必要です。
• PBFは、PBF用に使用されているCatalyst 6500シリーズ スイッチで動作する(起動済み)MSFC2ではサポート されていません。
MSFC2が存在して起動した状態でPBFを設定しようとすると、システムはその機能がMSFC2でサポートされていないことを示すメッセージを返します。
MSFC2が存在していても起動していない場合は、PBFを設定できます。
• PBFは、スーパバイザ エンジン ソフトウェア リリース6.3(1)以降のリリースを必要とします。
PBFのイネーブル化とPFC2用MACアドレスの指定
(注) MACアドレスは、デフォルト設定のものでもユーザ側で指定するMACアドレスでもかまいません。デフォルトのMACアドレスは、Catalyst 6500シリーズ スイッチ シャーシのMACアドレスPROMから取得します。set pbf macコマンドでMACアドレスを指定する場合は、必ずMACアドレスは一意のもので、どのインターフェイスでも未使用であることを確認してください。
MACアドレスPROMから取得するデフォルトのMACアドレスを使用することを推奨します。set pbf macコマンドで独自のMACアドレスを指定する場合、そのMACアドレスが使用中のものと重複すると、パケットが廃棄されることがあります。
PBFのステータスとMACアドレスを表示するには、イネーブル モードで次の作業を行います。
|
|
PBFのステータスとMACアドレスを表示します。 |
show pbf |
PBFをイネーブルにするには、イネーブル モードで次のいずれかの作業を行います。
|
|
デフォルトのMACアドレスでPBFをイネーブルにします。 |
set pbf |
特定のMACアドレスでPBFをイネーブルにします。 |
set pbf [ mac mac_address ] |
PBFのステータスとMACアドレスをチェックし、デフォルトのMACアドレスでPBFをイネーブルにし、設定を確認する例を示します。
Console> (enable) show pbf
----------- ------------------
not set 00-00-00-00-00-00
Console> (enable) set pbf
PBF committed successfully.
Console> (enable) show pbf
----------- ------------------
次に、特定のMACアドレスでPBFをイネーブルにする例を示します。
Console> (enable) set pbf mac 00-11-11-11-11-11
PBF committed successfully.
Console> (enable) show pbf
----------- ------------------
PBFをディセーブルにしてPBF MACアドレスを削除するには、イネーブル モードで次の作業を行います。
|
|
PBFをディセーブルにしてPBF MACアドレスを削除します。 |
clear pbf |
PBF MACアドレスを削除する例を示します。
Console> (enable) clear pbf
Console> (enable) show pbf
----------- ------------------
not set 00-00-00-00-00-00
PBFのためのVACLの設定
(注) set security acl adjacencyコマンドを使用して隣接テーブルの書き換え情報を指定します。この情報により、パケット ヘッダーが書き換えられ(宛先VLANおよび送信元/宛先MACアドレス)、宛先VLANに転送されます。
送信元MACアドレスの指定は任意です。送信元MACアドレスを指定しなかった場合は、システムによりデフォルトでPBF MACアドレスに設定されます。
(注) VLANには最大256の隣接テーブル エントリを設定できます。隣接テーブル エントリの最大数は1023です。
(注) PBFを使用してジャンボ フレーム転送をイネーブルにするには、set security acl adjacencyコマンドでmtuキーワードを使用します。
PBF VACLでのエントリの順序は重要です。隣接テーブル エントリは、リダイレクトACEによりトラフィックのリダイレクトに使用されるので、リダイレクトACEより先に定義する必要があります。PBF VACLのエントリは、次の順序で作成してください。
1. 隣接テーブル エントリを指定します。
2. 隣接テーブル エントリを使用するPBF VACLのリダイレクトACEを指定します。
3. 隣接テーブル エントリをコミットします。
4. PBF VACLをコミットします。
5. PBF VACLを1つまたは複数のVLANにマッピングします。
(注) commit security acl allコマンドを使用すると、ステップ3およびステップ4をまとめることができます。
(注) 複数のリダイレクトACEで同じ隣接テーブル エントリを使用できます。
PFC2用の隣接テーブル エントリを指定するには、イネーブル モードで次の作業を行います。
|
|
PFC2用の隣接テーブル エントリを指定します。 |
set security acl adjacency adjacency _ name dest _ vlan dest _ mac [[ source_mac ] | [ source_mac mtu mtu_size ] | [ mtu mtu_size ]] |
隣接テーブル エントリを指定する例を示します。
Console> (enable) set security acl adjacency ADJ1 11 00-00-00-00-00-0B
ADJ1 editbuffer modified. Use 'commit' command to apply changes.
次の例は、VLAN 10のPBF VACLを作成する方法を示しています(を参照)。
Console> (enable) set security acl adjacency ADJ1 11 00-00-00-00-00-0B
ADJ1 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) set security acl ip IPACL1 redirect ADJ1 ip host 10.0.0.1 host 11.0.0.1
IPACL1 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) set security acl ip IPACL1 permit any
IPACL1 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) commit security acl adjacency
Commit operation in progress.
Adjacency successfully committed.
Console> (enable) commit security acl IPACL1
ACL 'IPACL1' successfully committed.
Console> (enable) set security acl map IPACL1 10
ACL IPACL1 successfully mapped to VLAN 10.
次の例は、VLAN 11のPBF VACLを作成する方法を示しています(を参照)。
Console> (enable) set security acl adjacency ADJ2 10 00-00-00-00-00-0A
ADJ2 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) set security acl ip IPACL2 redirect ADJ2 ip host 11.0.0.1 host 10.0.0.1
IPACL2 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) set security acl ip IPACL2 permit any
IPACL2 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) commit security acl adjacency
Commit operation in progress.
Adjacency successfully committed.
Console> (enable) commit security acl IPACL2
ACL 'IPACL2' successfully committed.
Console> (enable) set security acl map IPACL2 11
ACL IPACL2 successfully mapped to VLAN 11.
PBF情報の表示
ここでは、PBF関連情報の表示方法について説明します。
隣接テーブル エントリを表示するには、ユーザ モードで次の作業を行います。
|
|
隣接テーブル エントリを表示します。 |
show security acl info [ acl_name | adjacency | all ] [ editbuffer [ editbuffer_index ]] |
すべての隣接テーブル エントリまたは特定の隣接テーブル エントリに対するPBF隣接情報を表示します。 |
show pbf adjacency [ adj name ] |
すべての隣接テーブル エントリまたは特定の隣接テーブル エントリに対するPBF統計情報を表示します。 |
show pbf statistics [ adj name ] |
すべての隣接テーブル エントリまたは特定の隣接テーブル エントリに対する隣接/VACLマッピングを表示します。 |
show pbf map [ adj name ] |
隣接テーブル エントリを表示する例を示します。
Console> show security acl info adjacency
set security acl adjacency ADJ1
---------------------------------------------------
set security acl adjacency ADJ2
---------------------------------------------------
Console> show pbf adjacency
Index DstVlan DstMac SrcMac Name
------------------------------------------------------------------
1 11 00-00-00-00-00-0a 00-00-00-00-00-0b ADJ1
2 10 00-00-00-00-00-0a 00-00-00-00-00-0b ADJ2
Console> show pbf statistics
Index DstVlan DstMac SrcMac HitCount(hex) Name
-------------------------------------------------------------------------
1 11 00-00-00-00-00-0a 00-00-00-00-00-0b 0x00000000 ADJ1
2 10 00-00-00-00-00-0a 00-00-00-00-00-0b 0x00000000 ADJ2
------------------ --------------------
PBF VACLのエントリの削除
リダイレクトACEより先に隣接テーブルを削除することはできません。PBF VACLのリダイレクトACEおよび隣接テーブル エントリを削除する場合は、次の順序で行ってください。
1. リダイレクトACEを削除します。
2. PBF VACLをコミットします。
3. 隣接テーブル エントリを削除します。
4. 隣接テーブル エントリをコミットします。
PBF隣接テーブル エントリを削除するには、イネーブル モードで次の作業を行います。
|
|
PBF隣接テーブル エントリを削除します。 |
clear security acl adjacency adj name |
PBF隣接テーブル エントリを削除する例を示します。
Console> (enable) clear security acl adjacency ADJ1
Adj is in use by a VACL, clear the VACL first then clear adj.
Console> (enable) clear security acl IPACL1
IPACL1 editbuffer modified. Use 'commit' command to save changes.
Console> (enable) commit security acl IPACL1
ACL 'IPACL1' successfully deleted.
Console> (enable) clear security acl adjacency ADJ1
ADJ1 editbuffer modified. Use 'commit' command to apply changes.
Console> (enable) commit security acl adjacency
Console> (enable) Adjacency committed successfully
Commit operation in progress.
編集バッファ内の隣接テーブル エントリのロール バック
rollback コマンドを使用して、最後のコミット以前に編集バッファ内に作成された隣接テーブル エントリを削除できます。隣接テーブル エントリは、最後のコミットでのステートにロール バックされます。
編集バッファ内の隣接テーブル エントリをロール バックするには、イネーブル モードで次の作業を行います。
|
|
編集バッファ内の隣接テーブル エントリをロール バックします。 |
rollback security acl { acl_name | all | adjacency } |
編集バッファ内の隣接テーブル エントリをロール バックする例を示します。
Console> (enable)
rollback security acl adjacency
Editbuffer for adjacency info rolled back to last commit state.
PBFのためのホストの設定
ここでは、次のプラットフォームおよびオペレーティング システムのホスト設定手順について説明します。
• 「Linux」
• 「Sunワークステーション」
• 「MS-Windows/NT/2000ホスト」
(注) ネットワークにルータが存在しないときは、関与しているホスト上でスタティックARPエントリを指定する必要があります。ホストのARPテーブルは、ホスト装置のIPアドレスをPFC2のMACアドレスにマッピングします。
(注) 次の例のIPアドレスは、で使用されるIPアドレスです。これらのアドレスは任意に選択されたものです。ネットワーク構成で使用するIPアドレスが一意のものであることを確認してください。
Linux
Linuxオペレーティング システムが動作中のホストにARPテーブルを設定する例を示します。
ホストAを設定する例を示します。
arp -s 11.0.0.1 00:11:11:11:11:11 -i eth0
ホストBを設定する例を示します。
arp -s 10.0.0.1 00:11:11:11:11:11 -i eth1
Sunワークステーション
PBFを使用してSunワークステーションのエンド ホストで2つのVLAN間における転送をイネーブルにする場合は、ホスト設定時に考慮すべき制限事項があるので注意してください。
• PBFの制限事項
PBFはARPをサポートしません。PBFに関与するSunワークステーションごとにスタティックARPエントリを設定する必要があります。各スタティックARPエントリは、宛先ホストにマッピングされたPBF MACアドレスを示す必要があります。
また、Sunワークステーションがゲートウェイを装備するように設定することも必要です。Sunワークステーションが異なるネットワークと通信する必要がある場合は、PBFを通過するすべてのネットワークに対するホスト ルートを定義する必要があります。また、必要に応じてデフォルトのゲートウェイを定義する必要があります。
たとえば、VLAN 40のホスト10.0.0.1がVLAN 50のホスト11.0.0.1と通信する必要があり、PBF MACアドレスが00-11-11-11-11-11である場合、スタティックARPエントリは次のようになります。
arp -s 11.0.0.1 00:11:11:11:11:11
この場合、00-11-11-11-11-11はPBF MACアドレスであり、11.0.0.1は宛先ホストのIPアドレスです。
• Sunワークステーションの制限事項
Sunワークステーションでは、宛先が別のネットワークの一部である場合(上記の例では11.x.x.x)、スタティックARPエントリを設定できません。これはすべてのSunワークステーションでのARPの制限事項です。この問題を解決するには、ホスト ルートであるダミー ゲートウェイを定義し、宛先ホストにマッピングされたPBF MACアドレスを示すスタティックARPエントリを設定する必要があります。
上の例を使用して、最初にゲートウェイに対するダミー スタティックARPエントリを定義する必要があります。ゲートウェイのIPアドレスは、そのネットワーク内のホスト アドレスのいずれかです。
(A) Kubera# arp -s 10.0.0.2 00:11:11:11:11:11
(B) Kubera# route add host 11.0.0.1 10.0.0.2
PBF関連トラフィックのダミーARPエントリを1つと、各宛先ホストのホスト ルートを設定するだけです。
ホスト数が増えた場合は、各宛先ホストについてホスト ルート エントリを設定する必要があります。各宛先ホストのホスト ルート エントリがある/etc/rc2.dに、スタートアップ ファイルを設定できます。このファイルを設定すると、Sunワークステーションをリセットまたは再起動した後、すべてのホスト ルートを入力する必要がなくなります。
ファイルのエントリは次の形式を使用します。
Route add host <destination Host IP Address> <dummy gateway IP Address>
スタートアップ スクリプトの1つとしてホスト ルート エントリが記述されているファイルを使用する必要があります。ルート/スーパユーザのフルアクセス権を持つディレクトリにファイルを作成したり、/etc/rc2.d内のそのファイルを示すソフト リンクを設定したり、あるいは/etc/rc2.dディレクトリ自体にファイルを作成することもできます。
MS-Windows/NT/2000ホスト
Sunワークステーションの設定と同様に、WindowsベースのPCにスタティックARPエントリを設定する必要があります。WindowsベースのPCでは、PBFを使用するVLAN間のスイッチングのためのダミー ゲートウェイを設定する必要はありません。
WindowsベースのプラットフォームにスタティックARPエントリを設定する例を示します。
C:\> arp -s 11.0.0.1 00-11-11-11-11-11
この例では、00-11-11-11-11-11はPBF MACアドレスであり、11.0.0.1は宛先ホストのIPアドレスです。
さらにホストを設定する必要がある場合は、各宛先ホストに対するARPエントリでバッチ ファイルを作成して、Windowsがこのファイルをスタートアップ時に使用するように指定できます。
PBFの設定例
ここでは、VLAN 1のホストとVLAN 2のホストとの間のPBFをイネーブルにする設定例を示します(を参照)。
図 16-9 ポリシー ベース転送の設定例
次の例では、VLAN 1のホストとVLAN 2のホストとの間でPBFをイネーブルにするために作成されたスイッチ コンフィギュレーション ファイルを示します。この例では各VLANの最初の4つのホストだけが表示されます(44.0.0.1~44.0.0.4および43.0.0.1~43.0.0.4)。
set security acl adjacency a_1 2 00-0a-0a-0a-0a-0a
set security acl adjacency a_2 2 00-0a-0a-0a-0a-0b
set security acl adjacency a_3 2 00-0a-0a-0a-0a-0c
set security acl adjacency a_4 2 00-0a-0a-0a-0a-0d
set security acl adjacency b_1 1 00-20-20-20-20-20
set security acl adjacency b_2 1 00-20-20-20-20-21
set security acl adjacency b_3 1 00-20-20-20-20-22
set security acl adjacency b_4 1 00-20-20-20-20-23
set security acl ip ip1 permit arp
set security acl ip ip1 redirect a_1 ip host 44.0.0.1 host 43.0.0.1
set security acl ip ip1 redirect a_2 ip host 44.0.0.2 host 43.0.0.2
set security acl ip ip1 redirect a_3 ip host 44.0.0.3 host 43.0.0.3
set security acl ip ip1 redirect a_4 ip host 44.0.0.4 host 43.0.0.4
set security acl ip ip1 permit ip any any
set security acl ip ip2 permit arp
set security acl ip ip2 redirect b_1 ip host 43.0.0.1 host 44.0.0.1
set security acl ip ip2 redirect b_2 ip host 43.0.0.2 host 44.0.0.2
set security acl ip ip2 redirect b_3 ip host 43.0.0.3 host 44.0.0.3
set security acl ip ip2 redirect b_4 ip host 43.0.0.4 host 44.0.0.4
set security acl ip ip2 permit ip any any
set pbf mac 00-11-22-33-44-55
set security acl map ip1 1
set security acl map ip2 2
次に、VLAN 1のポート6/17について、スイッチによって学習されたMACアドレスを表示する例を示します。
Console> (enable) show cam dynamic 6/17
* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry $ = Dot1x Security Entry
VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type]
---- ------------------ ----- -------------------------------------------
1 00-20-20-20-20-23 6/17 [ALL]
1 00-20-20-20-20-22 6/17 [ALL]
1 00-20-20-20-20-21 6/17 [ALL]
1 00-20-20-20-20-20 6/17 [ALL]
1 00-20-20-20-20-27 6/17 [ALL]
1 00-20-20-20-20-26 6/17 [ALL]
1 00-20-20-20-20-25 6/17 [ALL]
1 00-20-20-20-20-24 6/17 [ALL]
1 00-20-20-20-20-2b 6/17 [ALL]
1 00-20-20-20-20-2a 6/17 [ALL]
1 00-20-20-20-20-29 6/17 [ALL]
1 00-20-20-20-20-28 6/17 [ALL]
1 00-20-20-20-20-2f 6/17 [ALL]
1 00-20-20-20-20-2e 6/17 [ALL]
1 00-20-20-20-20-2d 6/17 [ALL]
1 00-20-20-20-20-2c 6/17 [ALL]
Total Matching CAM Entries Displayed for 6/17 = 16 for port 6/9, vlan 2
次に、VLAN 2のポート6/9について、スイッチによって学習されたMACアドレスを表示する例を示します。
Console> (enable) show cam dynamic 6/9
* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry $ = Dot1x Security Entry
VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [Protocol Type]
---- ------------------ ----- -------------------------------------------
2 00-0a-0a-0a-0a-0e 6/9 [ALL]
2 00-0a-0a-0a-0a-0f 6/9 [ALL]
2 00-0a-0a-0a-0a-0c 6/9 [ALL]
2 00-0a-0a-0a-0a-0d 6/9 [ALL]
2 00-0a-0a-0a-0a-0a 6/9 [ALL]
2 00-0a-0a-0a-0a-0b 6/9 [ALL]
2 00-0a-0a-0a-0a-19 6/9 [ALL]
2 00-0a-0a-0a-0a-18 6/9 [ALL]
2 00-0a-0a-0a-0a-17 6/9 [ALL]
2 00-0a-0a-0a-0a-16 6/9 [ALL]
2 00-0a-0a-0a-0a-15 6/9 [ALL]
2 00-0a-0a-0a-0a-14 6/9 [ALL]
2 00-0a-0a-0a-0a-13 6/9 [ALL]
2 00-0a-0a-0a-0a-12 6/9 [ALL]
2 00-0a-0a-0a-0a-11 6/9 [ALL]
2 00-0a-0a-0a-0a-10 6/9 [ALL]
Total Matching CAM Entries Displayed for 6/9 = 16
次に、PBFステータスとPFC2 MACアドレスを表示する例を示します。
Console> (enable) show pbf
----------- ------------------
次に、PBF統計情報を表示する例を示します。
Console> (enable) show pbf statistics
Index DstVlan DstMac SrcMac HitCount(hex) Name
-------------------------------------------------------------------------
1 2 00-0a-0a-0a-0a-0a 00-11-22-33-44-55 0x00026d7c a_1
2 2 00-0a-0a-0a-0a-0b 00-11-22-33-44-55 0x00026d83 a_2
3 2 00-0a-0a-0a-0a-0c 00-11-22-33-44-55 0x00026d89 a_3
4 2 00-0a-0a-0a-0a-0d 00-11-22-33-44-55 0x00026d90 a_4
5 1 00-20-20-20-20-20 00-11-22-33-44-55 0x000260e3 b_1
6 1 00-20-20-20-20-21 00-11-22-33-44-55 0x000260ea b_2
7 1 00-20-20-20-20-22 00-11-22-33-44-55 0x000260f1 b_3
8 1 00-20-20-20-20-23 00-11-22-33-44-55 0x000260f8 b_4
MSFC設定拡張機能の概要
新規のコマンドset pbf-mapは、入力された情報に基づいてセキュリティACLと隣接情報を作成し、ACLを自動的にコミットします。set pbf-mapコマンドでは、次の2つのステップを伴います。
ステップ 1 隣接テーブルの挿入
このステップでは、ACLに追加された各リダイレクト/隣接ACEについて隣接テーブルにエントリを作成します。
ステップ 2 ACLの作成/変更
このステップでは、リダイレクト/隣接エントリについて各ACLにACEを作成し、ACLの終わりにpermit ip any any ACEを追加します(このACEは、ACLにまだpermit ip any any ACEがない場合にだけ、追加されます)。
set pbf-mapコマンドの構文は、 set pbf-map ip_addr_1 mac_1 vlan_1 ip_addr_2 mac_2 vlan_2 です。
簡易構文の例は、 set pbf-map 1.1.1.1 0-0-0-0-0-1 11 2.2.2.2 0-0-0-0-0-2 12 です。
新規コマンドset pbf-mapは、次のリリース7.5(1)より前の すべて のコマンドと同じです。
set security acl adjacency PBF_MAP_ADJ_0 11 0-0-0-0-0-1
set security acl adjacency PBF_MAP_ADJ_1 12 0-0-0-0-0-2
commit security acl adjacency
set security acl ip PBF_MAP_ACL_11 redirect PBF_MAP_ADJ_1 ip host 1.1.1.1 host 2.2.2.2
set security acl ip PBF_MAP_ACL_12 redirect PBF_MAP_ADJ_0 ip host 2.2.2.2 host 1.1.1.1
permit ip any any ACEがない場合は、次の2つの permit ip any any エントリが追加されます。
set security acl ip PBF_MAP_ACL_11 permit ip any any
set security acl ip PBF_MAP_ACL_12 permit ip any any
commit security acl ip PBF_MAP_ACL_11
commit security acl ip PBF_MAP_ACL_12
set security acl map PBF_MAP_ACL_11 11
set security acl map PBF_MAP_ACL_12 12
set pbf-mapコマンドによって追加されたACL内の各エントリは、デフォルトのpermit ip any any ACEの前に挿入されます。
リダイレクトACE以外のエントリを隣接テーブルに追加する場合は、set security acl ip PBF_MAP_ACL_(VLAN_ID)コマンドを使用します。PBF_MAP_ACL_(VLAN_ID) ACL名は、次のアルゴリズムに基づきます。つまり、対応するホストのVLAN番号がPBF_MAP_ACL_ストリングに追加されます。
PBF_MAP_ACL_(VLAN_ID) ACLに含まれているリダイレクト/隣接ACEと隣接情報を削除するには、 clear pbf-map コマンドを使用します。PBF_MAP_ACL_(VLAN_ID) ACLの一部であるその他すべてのACEタイプを消去するには、 clear security acl コマンドを使用します。
PBF_MAP_ACLの指定
(注) set pbf-mapコマンドが使用するACL名は、このコマンド用に予約されています。set security aclコマンドを使用すると、PBF_MAP_ACLで始まる名前は使用できません。隣接情報に使用される名前も、set pbf-mapコマンド用に予約されています。 set security acl adjacencyコマンドを使用すると、PBF_MAP_ADJで始まる名前は使用できません。
PBF_MAP_ACLを指定するには、イネーブル モードで次の作業を行います。
|
|
PBF_MAP_ACLを指定します。 |
set pbf-map ip_addr_1 mac_1 vlan_1 ip_addr_2 mac_2 vlan_2 |
PBF_MAP_ACLを指定する例を示します。
Console> (enable) set pbf-map 1.1.1.1 0-0-0-0-0-1 11 2.2.2.2 0-0-0-0-0-2 22
Commit operation successful.
Commit operation successful.
ACL 'PBF_MAP_ACL_11' successfully committed.
ACL PBF_MAP_ACL_11 successfully mapped to VLAN 11.
ACL 'PBF_MAP_ACL_22' successfully committed.
ACL PBF_MAP_ACL_22 successfully mapped to VLAN 22.
Console> (enable) Operation successful.
PBF_MAP_ACL情報の表示
PBF_MAP_ACL情報を表示するには、ユーザ モードで次の作業を行います。
|
|
PBF_MAP_ACL情報を表示します。 |
show pbf-map all | vlan | config |
設定されたすべてのPBFマップを表示する例を示します。
Console> (enable) show pbf-map all
Index DstVlan DstMac SrcMac HitCount(hex) Name
-------------------------------------------------------------------------
1 11 00-00-00-00-00-01 00-00-00-00-00-00 0x00000000 PBF_MAP_ADJ_0
2 22 00-00-00-00-00-02 00-00-00-00-00-00 0x00000000 PBF_MAP_ADJ_1
次に、指定されたVLANのPBF関連ACEと使用された各隣接の統計情報を表示する例を示します。
Console> (enable) show pbf-map 11
Index DstVlan DstMac SrcMac HitCount(hex) Name
-------------------------------------------------------------------------
1 22 00-00-00-00-00-02 00-00-00-00-00-00 0x00000000 PBF_MAP_ADJ_1
次の例はPBFマップ設定です。
Console> (enable) show pbf-map config
set pbf_map 1.1.1.1 00-00-00-00-00-01 11 2.2.2.2 00-00-00-00-00-02 22
PBF_MAP_ACL設定の消去
PBF_MAP_ACL設定を消去するには、ユーザ モードで次の作業を行います。
|
|
PBF_MAP_ACL設定を消去します。 |
clear pbf-map all | vlan vlan | ip_addr_1 mac_1 vlan_1 ip_addr_2 mac_2 vlan_2 |
set pbf-map コマンドによって作成されたACLと隣接情報のすべてを消去する例を示します。
Console> (enable) clear pbf-map all
ACL 'PBF_MAP_ACL_11' successfully deleted.
ACL 'PBF_MAP_ACL_22' successfully deleted.
次に、PBF_MAP_ACL_VLAN_#の名前を持つACLとそのACLが使用する隣接テーブルを消去する例を示します。
Console> (enable) clear pbf-map vlan 11
ACL 'PBF_MAP_ACL_11' successfully deleted.
Console> (enable) Commit operation successful.
次の例は、 permit ip any any ACEを除いて set pbf-map コマンドによって作成されたACEをすべて消去します。コマンドによって、 vlan_1 および vlan_2 上の ip_addr_1 および ip_addr_2 であるホスト間のトラフィックをイネーブルにするエントリが削除されます。 clear security acl コマンドによりエントリが削除済みの場合は、メッセージが表示され、特定のエントリが消去済みであることを示します。実際の削除されたエントリは、2つのACE(リダイレクト/隣接)ACEと、隣接テーブルの2つのエントリです。
Console> (enable) clear pbf-map 1.1.1.1 0-0-0-0-0-1 11 2.2.2.2 0-0-0-0-0-2 22
ACL 'PBF_MAP_ACL_11' successfully committed.
ACL 'PBF_MAP_ACL_22' successfully committed.