この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、ACE 上で Address Resolution Protocol(ARP; アドレス解決プロトコル)を使用して IP-to-MAC 情報のマッピングを管理および学習し、パケットの転送および送信を行う方法について説明します。ACE は、ARP パケットを受信するか、または ACE 上に IP アドレス(実サーバ、ゲートウェイ、またはインターフェイス VLAN 用の IP アドレスなど)が設定された場合、ARP キャッシュ エントリを作成します。
IP-to-MAC 変換および ARP インスペクション用のスタティック ARP エントリを設定して ARP スプーフィングを防止することもできます。ARP インスペクションを使用すると、正しい MAC アドレスおよび関連付けられた IP アドレスがスタティック ARP テーブル内にある場合、攻撃者は自身の MAC アドレスを使用して ARP 応答を送信することができなくなります。
この章では、ARP パラメータの設定方法および ARP インスペクションのイネーブル化について説明します。主な内容は、次のとおりです。
• gratuitous ARP パケットのレート リミットの設定
ARP テーブル内にスタティック ARP エントリを追加するには、コンフィギュレーション モードまたはインターフェイス コンフィギュレーション モードで arp コマンドを使用します。コンテキスト レベルでスタティック ARP エントリを作成できます。ブリッジド インターフェイスでは、インターフェイス コンフィギュレーション モードでスタティック ARP エントリを設定する必要があります。
(注) ARP インスペクションをイネーブルにすると、ACE は ARP パケットと ARP テーブル内のスタティック ARP エントリを比較して取るべき対応を決定します。詳細については、「ARP インスペクションのイネーブル化」を参照してください。
• ip_address ― ARP テーブル エントリの IP アドレス。ドット付き 10 進表記で IP アドレスを入力します(たとえば、172.16.56.76)。
• mac_address ― ARP テーブル エントリのハードウェア MAC アドレス。ドット付き 16 進表記で MAC アドレスを入力します(たとえば、00.60.97.d5.26.ab)。
たとえば、00.02.9a.3b.94.d9 という MAC アドレスを持つルータ(10.1.1.1)からの ARP 応答を許可するには、次のコマンドを入力します。
スタティック ARP エントリを削除するには、 no arp コマンドを使用します。たとえば、次のように入力します。
ARP インスペクションを使用すると、悪意のあるユーザがその他のホストまたはルータになりすます ARP スプーフィングを防止できます。ARP スプーフィングは「man-in-the-middle」攻撃を引き起こします。たとえば、ホストがゲートウェイ ルータに ARP 要求を送信します。ゲートウェイ ルータは、ゲートウェイ ルータ MAC アドレスを使用して応答します。
しかし、攻撃者は、ルータ MAC アドレスではなく、攻撃者自身の MAC アドレスを使用して、ホストに別の ARP 応答を送信します。これにより、攻撃者はホストのトラフィックすべてを、ルータに転送される前に代行受信できます。ARP インスペクションを使用すると、正しい MAC アドレスおよび関連付けられた IP アドレスがスタティック ARP テーブル内にある場合、攻撃者が自身の MAC アドレスを使用して ARP 応答を送信することができなくなります。
ARP インスペクションは入力ブリッジド インターフェイス上でのみ動作します。デフォルトでは、ARP インスペクションはすべてのインターフェイス上でディセーブルです。このため、すべての ARP パケットは ACE を通過します。ARP インスペクションをイネーブルにすると、ACE は ARP テーブルへのインデックスとして着信 ARP パケットの IP アドレスおよびインターフェイス ID(ifID)を使用します。ACE は ARP パケットの MAC アドレスと ARP テーブル内のインデックス付きスタティック ARP エントリの MAC アドレスを比較して、次のように対応します。
• IP アドレス、送信元 ifID、および MAC アドレスがスタティック ARP エントリと一致する場合、インスペクションは成功となり、ACE はパケットの通過を許可します。
• 着信 ARP パケットの IP アドレスおよびインターフェイスがスタティック ARP エントリと一致するが、パケットの MAC アドレスがそのスタティック ARP エントリで設定した MAC アドレスと一致しない場合、ARP インスペクションは失敗となり、ACE はパケットをドロップし、 flood または no-flood オプションの設定の有無にかかわらず Inspect Failed カウンタを増分します。
• ARP パケットが ARP テーブル内にあるスタティック エントリのいずれとも一致しない場合やテーブル内にスタティック エントリが存在しない場合は、パケットをすべてのインターフェイスから転送する( flood )か、またはパケットをドロップする( no-flood )ように ACE を設定できます。この場合、送信元 IP アドレスと MAC アドレスの新しいマッピングが ACE に適用されます。 flood オプションを入力した場合、ACE は新しい ARP エントリを作成し、それを LEARNED としてマーキングします。 no-flood オプションを指定すると、ACE は ARP パケットをドロップします。
ARP インスペクションをイネーブルにするには、コンフィギュレーション モードで arp inspection enable コマンドを使用します。このコマンドの構文は次のとおりです。
arp inspection enable [flood | no-flood]
• flood ― 一致しない ARP パケットの ARP 転送をイネーブルにします。ACE は、ブリッジ グループ内のすべてのインターフェイスにすべての ARP パケットを転送します。これがデフォルトの設定です。スタティック ARP エントリが存在しない場合にこのオプションが指定されていると、すべてのパケットがブリッジングされます。このオプションでは、ACE は show arp statistics コマンドの Inspect Failed カウンタを増分しません。
• no-flood ― インターフェイスでの ARP 転送をディセーブルにし、一致しない ARP パケットをドロップします。スタティック ARP エントリが存在しない場合にこのオプションが指定されていると、すべてのパケットがブリッジングされません。このオプションでは、ACE は show arp statistics コマンドの Inspect Failed カウンタを増分します。
たとえば、ARP インスペクションをイネーブルにし、一致しない ARP パケットをすべてドロップするには、次のように入力します。
ARP をディセーブルにするには、 no arp inspection enable コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、ACE が学習および設定済みホストにダウンというフラグを付けるまでに ARP を試行する回数は 3 回です。ARP 再試行回数を設定するには、コンフィギュレーション モードで arp retries コマンドを使用します。このコマンドはコンテキストごとに設定します。このコマンドの構文は次のとおりです。
number 引数は、ARP 再試行回数です。2 ~ 15 の値を入力します。デフォルト値は 3 です。
たとえば、再試行回数を 6 回に設定するには、次のように入力します。
ARP 再試行回数をデフォルトの 3 回にリセットするには、 no arp retries コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、ACE が学習および設定済みホストに ARP 再試行を送信する間隔は 10 秒です。間隔を設定するには、コンフィギュレーション モードで arp rate コマンドを使用します。このコマンドはコンテキストごとに設定します。このコマンドの構文は次のとおりです。
seconds 引数は、ホストに対する ARP 再試行の間隔(秒)です。1 ~ 60 の値を入力します。デフォルト値は 10 です。
たとえば、再試行間隔を 15 秒に設定するには、次のように入力します。
ARP 再試行間隔をデフォルトの 10 秒にリセットするには、 no arp rate コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、設定済みホスト アドレスの既存の ARP エントリをリフレッシュする間隔は 300 秒です。間隔を設定するには、コンフィギュレーション モードで arp interval コマンドを使用します。このコマンドはコンテキストごとに設定します。このコマンドの構文は次のとおりです。
seconds 引数は、ホストに送信された各 ARP 要求の間隔(秒)です。15 ~ 31536000 の値を入力します。デフォルト値は 300 です。
たとえば、要求間隔を 15 秒に設定するには、次のように入力します。
ARP 要求間隔をデフォルトの 300 秒にリセットするには、 no arp interval コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、ACE はブリッジングされたすべてのトラフィックについて MAC アドレスを学習します。ルーティングされたトラフィックについては、ACE は ARP 応答パケットから、または ACE 宛てのパケット(VIP や VLAN インターフェイスへの ping など)からのみ MAC アドレスを学習します。コマンドがディセーブルにされたあとで ACE がトラフィックから MAC アドレスを学習するように設定するには、コンフィギュレーション モードで arp learned-mode enable コマンドを使用します。このコマンドはコンテキストごとに設定します。このコマンドはデフォルトでイネーブルです。
コマンドがディセーブルにされたあとで ACE がトラフィックから MAC アドレスを学習するように設定するには、次の例のように入力します。
ACE が ARP 情報を学習せずにパケットを転送するように設定するには、 no arp learned-mode enable コマンドを使用します。たとえば、次のように入力します。
送信元 MAC の検証を使用すると、特定のインターフェイスで ACE が受信したすべての ARP パケットの ARP ペイロード内にある送信者の MAC アドレスに対して、イーサネット ヘッダー内の送信元 MAC アドレスをチェックするように ACE を設定できます。ACE は、異なる MAC アドレスを使用するパケットの ARP テーブルまたは MAC テーブルについては、学習およびアップデートを行いません。デフォルトでは、送信元 MAC の検証はディセーブルです。
(注) ARP インスペクションが失敗した場合、ACE は送信元 MAC の検証を行いません。ARP インスペクションの詳細については、「ARP インスペクションのイネーブル化」 を参照してください。
送信元 MAC の検証を設定するには、インターフェイス コンフィギュレーション モードで arp inspection コマンドを使用します。このコマンドの構文は次のとおりです。
arp inspection validate src-mac [ flood | no-flood ]
• flood ― インターフェイスでの ARP 転送をイネーブルにし、一致しない送信元 MAC アドレスを持つ ARP パケットをブリッジ グループ内のすべてのインターフェイスに転送します。これは、送信元 MAC の検証をイネーブルにした場合のデフォルトのオプションです。
• no-flood ― インターフェイスでの ARP 転送をディセーブルにし、一致しない送信元 MAC アドレスを持つ ARP パケットをドロップします。
(注) flood オプションまたは no-flood オプションの入力の有無にかかわらず、ARP パケットの送信元 MAC アドレスがイーサネット ヘッダーの MAC アドレスと一致しない場合、送信元 MAC の検証は失敗し、ACE は show arp statistics コマンドの Smac-validation Failed カウンタを増分します。
たとえば、送信元 MAC の検証をイネーブルにして、一致しない送信元 MAC アドレスを持つ ARP パケットをドロップするように ACE を設定するには、次のコマンドを入力します。
送信元 MAC の検証をディセーブルにするには、次のコマンドを入力します。
デフォルトでは、学習済みホスト アドレスの既存の ARP エントリをリフレッシュする間隔は 14400 秒です。間隔を設定するには、コンフィギュレーション モードで arp learned-interval コマンドを使用します。このコマンドはコンテキストごとに設定します。このコマンドの構文は次のとおりです。
seconds 引数は、学習済みアドレスに対する ARP 要求の間隔(秒)です。60 ~ 31536000 の値を入力します。デフォルト値は 14400 です。
たとえば、学習間隔を 800 秒に設定するには、次のように入力します。
学習間隔をデフォルトの 14400 秒にリセットするには、 no arp learned-interval コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、ARP エントリの複製はイネーブルです。ARP エントリの複製をディセーブルにするには、コンフィギュレーション モードで arp sync disable コマンドを使用します。
たとえば、ARP エントリの複製をディセーブルにするには、次のように入力します。
ARP エントリの複製を再びイネーブルにするには、 no arp sync disable コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、学習済みホストに対する ARP 同期メッセージの時間間隔は 5 秒です。時間間隔を指定するには、コンフィギュレーション モードで arp sync-interval コマンドを使用します。
number 引数は、時間間隔を定義します。1 ~ 3600 秒(1 時間)までの整数値を入力します。デフォルトは 5 秒です。
たとえば、時間間隔を 100 秒に設定するには、次のように入力します。
デフォルト値の 5 秒に戻すには、 no arp sync-interval コマンドを使用します。たとえば、次のように入力します。
デフォルトでは、ACE が送信する gratuitous ARP のレート リミットは 512 パケット/秒(pps)です。レート リミットを設定するには、コンフィギュレーション モードで arp ratelimit コマンドを使用します。このコマンドは Admin コンテキストでのみ有効です。レート リミットは、コンテキストごとではなく、モジュールに適用されます。
number 引数は、レート リミットを pps で定義します。100 ~ 8192 の整数値を入力します。デフォルト値は 512です。
(注) レート リミットは、新しい設定、モジュールのリブート、および MAC アドレスの変更の際にローカル アドレスに送信されるすべての gratuitous ARP に適用されます。
たとえば、レート リミットを 1000 pps に設定するには、次のように入力します。
デフォルト値の 512 pps に戻すには、 no arp ratelimit コマンドを使用します。たとえば、次のように入力します。
ARP のアドレス マッピング、統計情報、およびタイムアウト間隔を表示できます。詳細については、次のトピックを参照してください。
(注) show arp internal コマンドは、デバッグに使用します。このコマンドの出力は、訓練を受けたシスコの保守担当者が ACE のデバッグとトラブルシューティングを行う際に活用するためのものです。コマンド構文の詳細については、『Cisco Application Control Engine Module Command Reference』を参照してください。
ARP テーブル内の現在アクティブな IP-to-MAC アドレス マッピングを表示するには、EXEC モードで show arp コマンドを使用します。このコマンドの構文は次のとおりです。
表4-1 に、 show arp コマンドの出力フィールドを示します。
|
|
---|---|
ARP エントリのタイプ。出力されるタイプは LEARNED、GATEWAY、INTERFACE、VSERVER、RSERVER、および NAT です。 |
|
グローバルに、または特定の VLAN に関して ARP 統計情報を表示するには、EXEC モードで show arp statistics コマンドを使用します。このコマンドの構文は次のとおりです。
show arp statistics [vlan vlan_number ]
オプションの vlan_number 引数を指定すると、特定の VLAN の ARP 統計情報が表示されます。このオプションを指定せずにこのコマンドを使用した場合、すべての VLAN インターフェイスの ARP 統計情報が表示されます。
表4-2 に、 show arp statistics コマンドの出力フィールドを示します。
show ip traffic コマンドを使用すると、ARP トラフィックの統計情報を表示することもできます。このコマンドを使用すると、受信および送信されたパケットの数、関連エラー、要求、および応答について表示できます。
ARP インスペクションの設定を表示するには、EXEC モードで show arp inspection コマンドを使用します。このコマンドの構文は次のとおりです。
表4-3 に、 show arp inspection コマンドの出力フィールドを示します。
|
|
---|---|
ARP タイムアウト値を表示するには、EXEC モードで show arp timeout コマンドを使用します。このコマンドの構文は次のとおりです。
表4-4 に、 show arp timeout コマンドの出力フィールドを示します。
|
|
---|---|
ARP キャッシュ テーブルから ARP 学習済みエントリをクリアするには、 clear arp コマンドを使用します。このコマンドの構文は次のとおりです。
オプションの no-refresh キーワードを指定すると、エントリに対する ARP を実行せずに、キャッシュ テーブル内の学習済み ARP エントリをクリアします。このオプションを指定せずにこのコマンドを使用した場合、エントリに対して ARP が実行されます。
たとえば、学習済み ARP エントリをクリアして、エントリに対する ARP を実行するには、次のように入力します。
ARP 統計情報カウンタをクリアするには、 clear arp statistics コマンドを使用します。このコマンドの構文は次のとおりです。
clear arp statistics [vlan number ]
オプションの vlan number 引数を指定すると、特定のインターフェイスの統計情報カウンタをクリアできます。このオプションを指定せずにこのコマンドを使用した場合、すべてのインターフェイスのすべてのカウンタがクリアされます。
たとえば、ARP 統計情報カウンタをグローバルにクリアするには、次のように入力します。