Catalyst 2960-X スイッチ セキュリティ コンフィギュレーション ガイド、Cisco IOS Release 15.0(2)EX
ダイナミック ARP インスペクションの設定
ダイナミック ARP インスペクションの設定

目次

ダイナミック ARP インスペクションの設定

機能情報の確認

ご使用のソフトウェア リリースでは、このモジュールで説明されるすべての機能がサポートされているとは限りません。 最新の機能情報と注意事項については、ご使用のプラットフォームとソフトウェア リリースに対応したリリース ノートを参照してください。

プラットフォームのサポートおよびシスコ ソフトウェア イメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。 Cisco Feature Navigator には、http:/​/​www.cisco.com/​go/​cfn からアクセスします。 Cisco.com のアカウントは必要ありません。

ダイナミック ARP インスペクションの制約事項

ここでは、スイッチにダイナミック ARP インスペクションを設定するときの制約事項および注意事項を示します。
  • ダイナミック ARP インスペクションは入力セキュリティ機能です。出力チェックはまったく行いません。

  • ダイナミック ARP インスペクションは、ダイナミック ARP インスペクションをサポートしていないスイッチ、またはこの機能がイネーブルにされていないスイッチに接続されるホストに対しては有効ではありません。 中間者攻撃は単一のレイヤ 2 ブロードキャスト ドメインに制限されているため、チェックされないドメインと、ダイナミック ARP インスペクションによりチェックされるドメインは区別します。 このアクションは、ダイナミック ARP インスペクションのためにイネーブルにされているドメインでホストの ARP キャッシュを保護します。

  • 着信 ARP 要求、および ARP 応答で IP/MAC アドレス バインディングを検証するために、ダイナミック ARP インスペクション DHCP スヌーピング バインディング データベースのエントリに依存します。 IP アドレスがダイナミックに割り当てられた ARP パケットを許可する際は、DHCP スヌーピングをイネーブルにしてください。

    DHCP スヌーピングをディセーブルにしている場合、または DHCP 以外の環境では、ARP ACL を使用してパケットの許可または拒否を行います。

  • ダイナミック ARP インスペクションは、アクセス ポート、トランク ポート、および EtherChannel ポートでサポートされます。


    (注)  


    RSPAN VLAN では、ダイナミック ARP インスペクションをイネーブルにしないでください。 RSPAN VLAN でダイナミック ARP インスペクションをイネーブルにすると、ダイナミック ARP インスペクション パケットが RSPAN 宛先ポートに届かない可能性があります。
  • 物理ポートを EtherChannel ポート チャネルに結合するには、この物理ポートとチャネル ポートの信頼状態が一致する必要があります。 そうでない物理ポートは、ポート チャネル内で中断状態のままとなります。 ポート チャネルは、チャネルと結合された最初の物理ポートの信頼状態を継承します。 したがって、最初の物理ポートの信頼状態は、チャネルの信頼状態と一致する必要はありません。

    逆に、ポート チャネルで信頼状態を変更すると、スイッチは、チャネルを構成するすべての物理ポートで新しい信頼状態を設定します。

  • レート制限は、スイッチ スタックの各スイッチで別々に算出されます。 クロススタック EtherChannel の場合、これは実際のレート制限が設定値よりも高い可能性があることを意味します。 たとえば、レート制限が 30 pps に設定された EtherChannel で、スイッチ 1 に 1 つのポート、およびスイッチ 2 に 1 つのポートがある場合、EtherChannel が errdisable にならずに、各ポートは 29 pps でパケットを受信できます。

  • ポート チャネルの動作レートは、チャネル内のすべての物理ポートによる累積値です。 たとえば、ポート チャネルの ARP レート制限を 400 pps に設定すると、このチャネルに結合されたすべてのインターフェイスは、合計で 400 pps を受信します。 EtherChannel ポートで受信される ARP パケットのレートは、すべてのチャネル メンバーからの受信パケット レートの合計となります。 EtherChannel ポートのレート制限は、各チャネル ポート メンバーが受信する ARP パケットのレートを確認してから設定してください。

    物理ポートで受信されるパケットのレートは、物理ポートの設定ではなく、ポート チャネルの設定に照合して検査されます。 ポート チャネルのレート制限設定は、物理ポートの設定には依存しません。

    EtherChannel が、設定したレートより多くの ARP パケットを受信すると、このチャネル(すべての物理ポートを含む)は errdisable ステートとなります。

  • 着信トランク ポートでは、ARP パケットを必ずレート制限してください。 トランク ポートの集約を反映し、複数のダイナミック ARP インスペクションがイネーブルにされた VLAN にわたってパケットを処理するために、トランク ポートのレートをより高く設定します。 また、ip arp inspection limit none インターフェイス コンフィギュレーション コマンドを使用して、レートを無制限に設定することもできます。 1 つの VLAN に高いレート制限値を設定すると、ソフトウェアによってこのポートが errdisable ステートにされた場合に、他の VLAN への DoS 攻撃を招く可能性があります。

  • スイッチで、ダイナミック ARP インスペクションをイネーブルにすると、ARP トラフィックをポリシングするように設定されたポリサーの有効性は失われます。 この結果、すべての ARP トラフィックは CPU に送信されます。

ダイナミック ARP インスペクションの概要

ARP では、IP アドレスを MAC アドレスにマッピングすることで、レイヤ 2 ブロードキャスト ドメイン内の IP 通信を実現します。 たとえば、ホスト B はホスト A に情報を送信する必要がありますが、ARP キャッシュにホスト A の MAC アドレスを持っていないとします。 ホスト B は、ホスト A の IP アドレスと関連付けられた MAC アドレスを取得するために、このブロードキャスト ドメインにあるホストすべてに対してブロードキャスト メッセージを生成します。 このブロードキャスト ドメイン内のホストはすべて ARP 要求を受信し、ホスト A は MAC アドレスで応答します。 しかし、ARP は、ARP 要求が受信されなった場合でも、ホストからの余分な応答を許可するため、ARP スプーフィング攻撃や ARP キャッシュのポイズニングが発生することがあります。 攻撃が開始されると、攻撃を受けたデバイスからのすべてのトラフィックは、攻撃者のコンピュータを経由してルータ、スイッチ、またはホストに送信されるようになります。

悪意のあるユーザは、サブネットに接続されているシステムの ARP キャッシュをポイズニングし、このサブネット上の他のホストを目的とするトラフィックを代行受信することにより、レイヤ 2 ネットワークに接続されているホスト、スイッチ、およびルータを攻撃することができます。 図 26-1 に、ARP キャッシュ ポイズニングの例を示します。

図 1. ARP キャッシュ ポイズニング

ホスト A、B、および C は、インターフェイス A、B、および C 上にあるスイッチに接続されています。これらはすべて同一のサブネット上にあります。 カッコ内に示されているのは、これらの IP アドレス、および MAC アドレスです。たとえば、ホスト A が使用する IP アドレスは IA、MAC アドレスは MA です。 ホスト A が IP レイヤにあるホスト B と通信する必要がある場合、ホスト A は IP アドレス IB と関連付けられている MAC アドレスに ARP 要求をブロードキャストします。 スイッチとホスト B は、この ARP 要求を受信すると、IP アドレスが IA で、MAC アドレスが MA のホストに対する ARP バインディングを ARP キャッシュに読み込みます。たとえば、IP アドレス IA は、MAC アドレス MA にバインドされています。 ホスト B が応答すると、スイッチ、およびホスト A は、IP アドレスが IB で、MAC アドレスが MB のホストに対するバインディングを ARP に読み込みます。

ホスト C は、IP アドレスが IA(または IB)で、MAC アドレスが MC のホストに対するバインディングを持つ偽造 ARP 応答をブロードキャストすることにより、スイッチ、ホスト A、およびホスト B の ARP キャッシュをポイズニングすることができます。 ARP キャッシュがポイズニングされたホストは、IA または IB 宛てのトラフィックに、宛先 MAC アドレスとして MAC アドレス MC を使用します。 つまり、ホスト C がこのトラフィックを代行受信することになります。 ホスト C は IA および IB に関連付けられた本物の MAC アドレスを知っているため、正しい MAC アドレスを宛先として使用することで、代行受信したトラフィックをこれらのホストに転送できます。 ホスト C は自身をホスト A からホスト B へのトラフィック ストリームに挿入します。従来の中間者攻撃です。

ダイナミック ARP インスペクションは、ネットワーク内の ARP パケットの正当性を確認するセキュリティ機能です。 不正な IP/MAC アドレス バインディングを持つ ARP パケットを代行受信し、ログに記録して、廃棄します。 この機能により、ネットワークをある種の中間者攻撃から保護することができます。

ダイナミック ARP インスペクションにより、有効な ARP 要求と応答だけが確実にリレーされるようになります。 スイッチが実行する機能は次のとおりです。

  • 信頼できないポートを経由したすべての ARP 要求および ARP 応答を代行受信します。
  • 代行受信した各パケットが、IP アドレスと MAC アドレスの有効なバインディングを持つことを確認してから、ローカル ARP キャッシュを更新するか、または適切な宛先にパケットを転送します。
  • 無効な ARP パケットはドロップします。

ダイナミック ARP インスペクションは、信頼できるデータベースである DHCP スヌーピング バインディング データベースに格納されている有効な IP/MAC アドレス バインディングに基づいて、ARP パケットの正当性を判断します。 このデータベースは、VLAN およびスイッチ上で DHCP スヌーピングがイネーブルになっている場合に、DHCP スヌーピングにより構築されます。 信頼できるインターフェイスで ARP パケットが受信されると、スイッチは何もチェックせずに、このパケットを転送します。 信頼できないインターフェイスでは、スイッチはこのパケットが有効である場合だけ、このパケットを転送します。

ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用して、VLAN ごとにダイナミック ARP インスペクションをイネーブルにすることができます。

非 DHCP 環境では、ダイナミック ARP インスペクションは、静的に設定された IP アドレスを持つホストに対するユーザ設定の ARP アクセス コントロール リスト(ACL)と照らし合わせて、ARP パケットの正当性を確認することができます。 ARP ACL を定義するには、arp access-list acl-name グローバル コンフィギュレーション コマンドを使用します。

パケットの IP アドレスが無効である場合、または ARP パケットの本文にある MAC アドレスが、イーサネット ヘッダーで指定されたアドレスと一致しない場合、ARP パケットをドロップするようにダイナミック ARP インスペクションを設定することができます。 このためには、ip arp inspection validate {[src-mac] [dst-mac] [ip]} グローバル コンフィギュレーション コマンドを使用します。

インターフェイスの信頼状態とネットワーク セキュリティ

ダイナミック ARP インスペクションは、スイッチの各インターフェイスに信頼状態を関連付けます。 信頼できるインターフェイスに到着するパケットは、ダイナミック ARP インスペクションの確認検査をすべてバイパスし、信頼できないインターフェイスに到着するパケットには、ダイナミック ARP インスペクションの検証プロセスを受けます。

一般的なネットワーク構成では、ホスト ポートに接続されているスイッチ ポートすべてを信頼できないものに設定し、スイッチに接続されているスイッチ ポートすべてを信頼できるものに設定します。 この構成では、指定されたスイッチからネットワークに入ってくる ARP パケットはすべて、セキュリティ チェックをバイパスします。 VLAN 内、またはネットワーク内のその他の場所では、他の検査を実行する必要はありません。 信頼状態を設定するには、ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用します。


注意    


信頼状態の設定は、慎重に行ってください。 信頼すべきインターフェイスを信頼できないインターフェイスとして設定すると、接続が失われる場合があります。

次の図では、スイッチ A とスイッチ B の両方が、ホスト 1 とホスト 2 を含む VLAN でダイナミック ARP インスペクションを実行しているとします。 ホスト 1 とホスト 2 が、スイッチ A に接続している DHCP サーバから IP アドレスを取得している場合、スイッチ A だけが、ホスト 1 の IP/MAC アドレスをバインディングします。 したがって、スイッチ A とスイッチ B の間のインターフェイスが信頼できない場合、ホスト 1 からの ARP パケットは、スイッチ B によりドロップされます。 こうして、ホスト 1 とホスト 2 の間の接続が失われます。

図 2. ダイナミック ARP インスペクションのためにイネーブルにされた VLAN 上の ARP パケット検証

実際には信頼できないインターフェイスを信頼できるインターフェイスとして設定すると、ネットワーク内にセキュリティ ホールが生じます。 スイッチ A でダイナミック ARP インスペクションが実行されていない場合、ホスト 1 はスイッチ B の ARP キャッシュを簡単にポイズニングできます(および、これらのスイッチの間のリンクが信頼できるものとして設定されている場合はホスト 2)。 この状況は、スイッチ B がダイナミック ARP インスペクションを実行している場合でも発生します。

ダイナミック ARP インスペクションは、ダイナミック ARP インスペクションを実行しているスイッチに接続された(信頼できないインターフェイス上の)ホストが、そのネットワークにあるその他のホストの ARP キャッシュをポイズニングしていないことを保証します。 しかし、ダイナミック ARP インスペクションにより、ネットワークの他の部分にあるホストが、ダイナミック ARP インスペクションを実行しているスイッチに接続されているホストのキャッシュをポイズニングできないようにすることはできません。

VLAN のスイッチの一部がダイナミック ARP インスペクションを実行し、残りのスイッチは実行していない場合、このようなスイッチに接続しているインターフェイスは信頼できないものとして設定します。 ただし、非ダイナミック ARP インスペクションスイッチからパケットのバインディングを検証するには、ARP ACL を使用して、ダイナミック ARP インスペクションを実行するスイッチを設定します。 このようなバインディングが判断できない場合は、レイヤ 3 で、ダイナミック ARP インスペクション スイッチを実行していないスイッチから、ダイナミック ARP インスペクションを実行しているスイッチを分離します。


(注)  


DHCP サーバとネットワークの設定によっては、VLAN 上のすべてのスイッチで指定された ARP パケットを検証できない可能性があります。

ARP パケットのレート制限

スイッチの CPU は、ダイナミック ARP インスペクション確認検査を実行します。したがって、DoS 攻撃を阻止するために、着信 ARP パケット数はレート制限されます。 デフォルトでは、信頼できないインターフェイスのレートは 15 パケット/秒(pps)です。 信頼できるインターフェイスはレート制限されません。 この設定を変更するには、ip arp inspection limit インターフェイス コンフィギュレーション コマンドを使用します。

着信 ARP パケットのレートが設定された制限を超えると、スイッチはポートを errdisable ステートにします。 ユーザが介入するまで、ポートはこの状態を維持します。 errdisable recovery グローバル コンフィギュレーション コマンドを使用すると、errdisable ステートの回復をイネーブルにできます。これによって、ポートは指定のタイムアウト時間が経過すると、この状態から自動的に回復するようになります。


(注)  


EtherChannel のレート制限は、スタックにある各スイッチに個別に適用されます。 たとえば、EtherChannel で 20 pps の制限が設定されている場合、EtherChannel にあるポートの各スイッチでは、最大 20 pps まで実行できます。 スイッチが制限を超過した場合、EtherChannel 全体が errdisable ステートになります。


ARP ACL および DHCP スヌーピング エントリの相対的なプライオリティ

ダイナミック ARP インスペクションでは、有効な IP/MAC アドレス バインディングのリストとして、DHCP スヌーピング バインディング データベースが使用されます。

DHCP スヌーピング バインディング データベース内のエントリより、ARP ACL の方が優先されます。 スイッチが ACL を使用するのは、ACL が ip arp inspection filter vlan グローバル コンフィギュレーション コマンドを使用して作成されている場合だけです。 スイッチは、まず、ARP パケットをユーザ設定の ARP ACL と比較します。 DHCP スヌーピングによりデータが入力されたデータベースに有効なバインディングが存在していても、ARP ACL が ARP パケットを拒否する場合、スイッチもこのパケットを拒否します。

廃棄パケットのロギング

スイッチがパケットをドロップすると、ログ バッファにエントリが記録され、その割合に応じて、システム メッセージが生成されます。 メッセージの生成後、スイッチにより、ログ バッファからこのエントリが消去されます。 各ログ エントリには、受信側の VLAN、ポート番号、送信元 IP アドレスおよび宛先 IP アドレス、送信元 MAC アドレスおよび宛先 MAC アドレスといったフロー情報が記録されます。

ip arp inspection log-buffer グローバル コンフィギュレーション コマンドを使用して、バッファ内のエントリ数や、システム メッセージ生成までの指定のインターバルに必要とされるエントリ数を設定します。 記録されるパケットの種類を指定するには、ip arp inspection vlan logging グローバル コンフィギュレーション コマンドを使用します。

ダイナミック ARP インスペクションのデフォルト設定

機能 デフォルト設定
ダイナミック ARP インスペクション すべての VLAN でディセーブル。
インターフェイスの信頼状態 すべてのインターフェイスは untrusted。
機能 1 秒間に 15 台の新規ホストに接続するホストが配置されたスイッチド ネットワークの場合、信頼できないインターフェイスのレートは 15 pps に設定されます。

信頼できるすべてのインターフェイスでは、レート制限は行われません。

バースト インターバルは 1 秒です。

ダイナミック ARP インスペクション ARP ACL は定義されません。
インターフェイスの信頼状態 検査は実行されません。
着信 ARP パケットのレート制限

ダイナミック ARP インスペクションがイネーブル化されると、拒否またはドロップされた ARP パケットはすべてが記録されます。

ログ内のエントリ数は 32 です。

システム メッセージ数は、毎秒 5 つに制限されます。

ロギングレート インターバルは、1 秒です。

非 DHCP 環境に対する ARP ACL 拒否または廃棄されたすべての ARP パケットが記録されます。

ARP ACL および DHCP スヌーピング エントリの相対的なプライオリティ

ダイナミック ARP インスペクションでは、有効な IP/MAC アドレス バインディングのリストとして、DHCP スヌーピング バインディング データベースが使用されます。

DHCP スヌーピング バインディング データベース内のエントリより、ARP ACL の方が優先されます。 スイッチが ACL を使用するのは、ACL が ip arp inspection filter vlan グローバル コンフィギュレーション コマンドを使用して作成されている場合だけです。 スイッチは、まず、ARP パケットをユーザ設定の ARP ACL と比較します。 DHCP スヌーピングによりデータが入力されたデータベースに有効なバインディングが存在していても、ARP ACL が ARP パケットを拒否する場合、スイッチもこのパケットを拒否します。

非 DHCP 環境での ARP ACL の設定

この手順は、図 2 に示すスイッチ B がダイナミック ARP インスペクション、または DHCP スヌーピングをサポートしていないときにダイナミック ARP インスペクションを設定する方法を示しています。

スイッチ A のポート 1 を信頼できるものとして設定した場合、スイッチ A とホスト 1 は両方とも、スイッチ B またはホスト 2 により攻撃される可能性があるため、セキュリティ ホールが作り出されます。 これを阻止するには、スイッチ A のポート 1 を信頼できないものとして設定する必要があります。 ホスト 2 からの ARP パケットを許可するには、ARP ACL をセットアップして、これを VLAN 1 に適用する必要があります。 ホスト 2 の IP アドレスがスタティックではない(スイッチ A で ACL 設定を適用することは不可能である)場合、レイヤ 3 でスイッチ A をスイッチ B から分離し、これらの間では、ルータを使用してパケットをルートする必要があります。

スイッチ A 上で ARP ACL を設定するには、特権 EXEC モードで次の手順を実行します。 この手順は、非 DHCP 環境では必須です。

手順の概要

    1.    configureterminal

    2.    arp access-list acl-name

    3.    permit ip host sender-ip mac host sender-mac

    4.    exit

    5.    ip arp inspection filter arp-acl-name vlan vlan-range [static]

    6.    interface interface-id

    7.    no ip arp inspection trust

    8.    end

    9.    show arp access-list acl-name show ip arp inspection vlan vlan-range show ip arp inspection interfaces

    10.    copy running-config startup-config


手順の詳細
     コマンドまたはアクション目的
    ステップ 1 configureterminal
     

    グローバル コンフィギュレーション モードを開始します。

     
    ステップ 2arp access-list acl-name
     

    ARP ACL を定義し、ARP アクセス リスト コンフィギュレーション モードを開始します。 デフォルトでは、ARP アクセス リストは定義されません。

    (注)     

    ARP アクセス リストの末尾に暗黙的な deny ip any mac any コマンドが指定されています。

     
    ステップ 3permit ip host sender-ip mac host sender-mac
     

    指定されたホスト(ホスト 2)からの ARP パケットを許可します。

    • sender-ip には、ホスト 2 の IP アドレスを入力します。

    • sender-mac には、ホスト 2 の MAC アドレスを入力します。

     
    ステップ 4exit  

    グローバル コンフィギュレーション モードに戻ります。

     
    ステップ 5ip arp inspection filter arp-acl-name vlan vlan-range [static]
     

    ARP ACL を VLAN に適用します。 デフォルトでは、定義済みの ARP ACL は、どのような VLAN にも適用されません。

    • arp-acl-name には、ステップ 2 で作成した ACL の名前を指定します。

    • vlan-range には、スイッチとホストが存在する VLAN を指定します。 VLAN ID 番号で識別された 1 つの VLAN、それぞれをハイフンで区切った VLAN 範囲、またはカンマで区切った一連の VLAN を指定できます。 指定できる範囲は 1 ~ 4094 です。

    • (任意)static を指定すると、ARP ACL 内の暗黙的な拒否が明示的な拒否と見なされ、それ以前に指定された ACL 句に一致しないパケットは廃棄されます。 DHCP バインディングは使用されません。

      このキーワードを指定しない場合は、ACL 内にはパケットを拒否する明示的な拒否が存在しないことになります。この場合は、ACL 句に一致しないパケットを許可するか拒否するかは、DHCP バインディングによって決定されます。

    IP アドレスと MAC アドレスとのバインディングしか持たない ARP パケットは、ACL に照合されます。 パケットは、アクセス リストで許可された場合だけに許可されます。

     
    ステップ 6 interface interface-id
     

    スイッチ B に接続するスイッチ A インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

     
    ステップ 7no ip arp inspection trust
     

    スイッチ B に接続されたスイッチ A インターフェイスを信頼できないものとして設定します。

    デフォルトでは、すべてのインターフェイスは信頼できません。

    信頼できないインターフェイスでは、スイッチはすべての ARP 要求と応答を代行受信します。 ルータは、代行受信した各パケットが、IP アドレスと MAC アドレスとの有効なバインディングを持つことを確認してから、ローカル キャッシュを更新するか、適切な宛先にパケットを転送します。 スイッチは、無効なパケットをドロップし、ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング設定に従ってログ バッファに記録します。

     
    ステップ 8end
     

    特権 EXEC モードに戻ります。

     
    ステップ 9show arp access-list acl-name show ip arp inspection vlan vlan-range show ip arp inspection interfaces
     

    入力内容を確認します。

     
    ステップ 10copy running-config startup-config
     

    (任意)コンフィギュレーション ファイルに設定を保存します。

     

    ARP ACL を削除するには、no arp access-list グローバル コンフィギュレーション コマンドを使用します。 VLAN に接続された ARP ACL を削除するには、no ip arp inspection filter arp-acl-name vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。

    次に、スイッチ A で ARP ACL host2 を設定して、ホスト 2(IP アドレス 1.1.1.1、および MAC アドレス 0001.0001.0001)からの ARP パケットを許可し、この ACL を VLAN 1 に適用してから、スイッチ A のポート 1 を信頼できないものに設定する例を示します。

    Switch(config)#arp access-list host2  
    
     Switch(config-arp-acl)#permit ip host 1.1.1.1 mac host 1.1.1 
    
     Switch(config-arp-acl)# exit
    
    Switch(config)# ip arp inspection filter host2 vlan 1 
    Switch(config)# interface gigabitethernet1/0/1 
     Switch(config-if)# no ip arp inspection trust

    DHCP 環境でのダイナミック ARP インスペクションの設定

    はじめる前に
    この手順では、2 つのスイッチがダイナミック ARP インスペクションをサポートしているときに、この機能を設定する方法を示します。 ホスト 1 はスイッチ A に、ホスト 2 はスイッチ B にそれぞれ接続されています。 スイッチは両方とも、ホストの配置されている VLAN 1 でダイナミック ARP インスペクションを実行しています。 DHCP サーバはスイッチ A に接続されています。 両方のホストは、同一の DHCP サーバから IP アドレスを取得します。 したがって、スイッチ A はホスト 1 およびホスト 2 に対するバインディングを、スイッチ B はホスト 2 に対するバインディングを持ちます。

    (注)  


    着信 ARP 要求、および ARP 応答で IP/MAC アドレス バインディングを検証するために、ダイナミック ARP インスペクション DHCP スヌーピング バインディング データベースのエントリに依存します。 IP アドレスがダイナミックに割り当てられた ARP パケットを許可する際は、DHCP スヌーピングをイネーブルにしてください。


    ダイナミック ARP インスペクションを設定するには、特権 EXEC モードで次の手順を実行します。 この処理は、両方のスイッチで行う必要があります。 この手順は必須です。

    手順の概要

      1.    show cdp neighbors

      2.    configure terminal

      3.    ip arp inspection vlan vlan-range

      4.    Interfaceinterface-id

      5.    ip arp inspection trust

      6.    end

      7.    show ip arp inspection interfaces

      8.    show ip arp inspection vlan vlan-range

      9.    show ip dhcp snooping binding

      10.    show ip arp inspection statistics vlan vlan-range

      11.    copy running-config startup-config


    手順の詳細
       コマンドまたはアクション目的
      ステップ 1 show cdp neighbors
       

      スイッチ間の接続を確認します。

       

      ステップ 2configure terminal


      例:
      
      Switch# configure terminal
      
      
       

      グローバル コンフィギュレーション モードを開始します。

       
      ステップ 3ip arp inspection vlan vlan-range


      例: 

      VLAN 単位で、ダイナミック ARP インスペクションをイネーブルにします。 デフォルトでは、すべての VLAN 上でダイナミック ARP インスペクションはディセーブルになっています。 vlan-range には、VLAN ID 番号で識別された単一の VLAN、ハイフンで区切られた範囲の VLAN、またはカンマで区切られた一連の VLAN を指定できます。 指定できる範囲は 1 ~ 4094 です。 両方のスイッチに同じ VLAN ID を指定します。

       
      ステップ 4Interfaceinterface-id


      例: 

      もう 1 つのスイッチに接続するインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

       
      ステップ 5ip arp inspection trust


      例: 

      スイッチ間の接続を、信頼できるものに設定します。

      デフォルトでは、すべてのインターフェイスは信頼できません。

      スイッチは、信頼できるインターフェイスにあるもう 1 つのスイッチから受信した ARP パケットは確認しません。 この場合、パケットはそのまま転送されます。

      信頼できないインターフェイスでは、スイッチはすべての ARP 要求と応答を代行受信します。 ルータは、代行受信した各パケットが、IP アドレスと MAC アドレスとの有効なバインディングを持つことを確認してから、ローカル キャッシュを更新するか、適切な宛先にパケットを転送します。 スイッチは、無効なパケットをドロップし、ip arp inspection vlan logging グローバル コンフィギュレーション コマンドで指定されたロギング設定に従ってログ バッファに記録します。

       
      ステップ 6end


      例: 

      特権 EXEC モードに戻ります。

       
      ステップ 7show ip arp inspection interfaces


      例: 

      インターフェイスでダイナミック ARP インスペクションの設定を検証します。

       
      ステップ 8show ip arp inspection vlan vlan-range
       

      VLAN でダイナミック ARP インスペクションの設定を検証します。

       
      ステップ 9show ip dhcp snooping binding


      例: 

      DHCP バインディングを確認します。

       
      ステップ 10show ip arp inspection statistics vlan vlan-range


      例: 

      VLAN でダイナミック ARP インスペクションの統計情報を確認します。

       
      ステップ 11copy running-config startup-config


      例: 

      (任意)コンフィギュレーション ファイルに設定を保存します。

       

      ダイナミック ARP インスペクションをディセーブルにするには、no ip arp inspection vlan vlan-range グローバル コンフィギュレーション コマンドを使用します。 インターフェイスを untrusted ステートに戻すには、no ip arp inspection trust インターフェイス コンフィギュレーション コマンドを使用します。

      次の例では、VLAN 1 のスイッチ A でダイナミック ARP インスペクションを設定する方法を示します。 スイッチ B でも同様の手順を実行します。

      Switch(config)# ip arp inspection vlan 1 
      Switch(config)# interface gigabitethernet1/0/1 
      
      Switch(config-if)#ip arp inspection trust  

      入力 ARP パケットのレートを制限する方法

      スイッチの CPU は、ダイナミック ARP インスペクション確認検査を実行します。したがって、DoS 攻撃を阻止するために、着信 ARP パケット数はレート制限されます。

      着信 ARP パケットのレートが設定された制限を超えると、スイッチはポートを errdisable ステートにします。 errordisable 回復をイネーブルにして、指定されたタイムアウト時間の後にポートがこのステートから自動的に抜け出すようにするまで、ポートはこのステートのままです。

      (注)  


      インターフェイス上のレート制限を設定しない限り、インターフェイスの信頼状態を変更することは、レート制限をその信頼状態のデフォルト値に変更することになります。 レート制限を設定すると、信頼状態が変更された場合でもインターフェイスはレート制限を保ちます。 no ip arp inspection limit インターフェイス コンフィギュレーション コマンドを入力すると、インターフェイスはデフォルトのレート制限に戻ります。


      トランク ポート、および EtherChannel ポートに対するレート制限設定時の注意事項については、「ダイナミック ARP インスペクション設定時の注意事項」を参照してください。

      デフォルトのレート制限設定に戻るには、no ip arp inspection limit インターフェイス コンフィギュレーション コマンドを使用します。 ダイナミック ARP インスペクションのエラー回復をディセーブルにするには、no errdisable recovery cause arp-inspection グローバル コンフィギュレーション コマンドを使用します。

      着信 ARP パケットのレートを制限するには、特権 EXEC モードで次の手順を実行します。 この手順は任意です。

      手順の概要

        1.    configure terminal

        2.    interface interface-id

        3.    ip arp inspection limit {rate pps [burst interval seconds] | none}

        4.    exit

        5.    errdisable detect cause arp-inspection and errdisable recovery causearp-inspection errdisable recovery interval interval

        6.    exit

        7.    show ip arp inspection interfaces show errdisable recovery

        8.    copy running-config startup-config


      手順の詳細
         コマンドまたはアクション目的
        ステップ 1 configure terminal
         

        グローバル コンフィギュレーション モードを開始します。

         
        ステップ 2interface interface-id
         

        レート制限されたインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

         
        ステップ 3ip arp inspection limit {rate pps [burst interval seconds] | none}
         

        インターフェイスでの着信 ARP 要求および応答のレートを制限します。

        インターフェイスでの着信 ARP 要求および応答のレートを制限します。

        デフォルト レートは、信頼できないインターフェイスでは 15 pps、信頼できるインターフェイスでは無制限です。 バースト インターバルは 1 秒です。

        キーワードの意味は次のとおりです。

        • rate pps には、1 秒あたりに処理される着信パケット数の上限を指定します。 有効な範囲は 0 ~ 2048 pps です。

        • (任意)burst interval seconds は、レートの高い ARP パケットの有無についてインターフェイスがモニタリングされる間隔(秒)を指定します。 指定できる範囲は 1 ~ 15 です。

        • rate none では、処理できる着信 ARP パケットのレートの上限を設定しません。

         
        ステップ 4exit
         

        グローバル コンフィギュレーション モードに戻ります。

         
        ステップ 5errdisable detect cause arp-inspection and errdisable recovery causearp-inspection errdisable recovery interval interval 

        (任意)ダイナミック ARP インスペクションの errdisable ステートからのエラー回復をイネーブルにし、ダイナミック ARP インスペクションの回復メカニズムで使用する変数を設定します。

        デフォルトでは、回復はディセーブルで、回復のインターバルは 300 秒です。

        interval interval では、errdisable ステートから回復する時間を秒単位で指定します。 指定できる範囲は 30 ~ 86400 です。

         
        ステップ 6exit
         

        特権 EXEC モードに戻ります。

         
        ステップ 7show ip arp inspection interfaces show errdisable recovery
         

        設定値を確認します。

         
        ステップ 8copy running-config startup-config
         

        (任意)コンフィギュレーション ファイルに設定を保存します。

         

        検証チェックを実行する方法

        ダイナミック ARP インスペクションは、不正な IP/MAC アドレス バインディングを持つ ARP パケットを代行受信し、ログに記録して、廃棄します。 宛先 MAC アドレス、送信側および宛先の IP アドレス、および送信元 MAC アドレスで追加検証を実行するように、スイッチを設定できます。 着信 ARP パケットで特定の検証を実行するには、特権 EXEC モードで次の手順を実行します。

        この手順は任意です。

        検証をディセーブルにするには、no ip arp inspection validate [src-mac] [dst-mac] [ip] グローバル コンフィギュレーション コマンドを使用します。 転送されたパケット、ドロップされたパケット、MAC および IP 検証に失敗したパケットの統計を表示するには、show ip arp inspection statistics 特権 EXEC コマンドを使用します。

        手順の概要

          1.    configure terminal

          2.    ip arp inspection validate {[src-mac] [dst-mac] [ip]}

          3.    exit

          4.    show ip arp inspection vlan vlan-range

          5.    copy running-config startup-config


        手順の詳細
           コマンドまたはアクション目的
          ステップ 1configure terminal
           

          グローバル コンフィギュレーション モードを開始します。

           
          ステップ 2ip arp inspection validate {[src-mac] [dst-mac] [ip]}
           

          着信 ARP パケットに対して特定の検証を実行します。 デフォルトでは、検証は実行されません。

          キーワードの意味は次のとおりです。

          • src-mac では、イーサネット ヘッダーの送信元 MAC アドレスと ARP 本文の送信元 MAC アドレスが比較されます。 この検査は、ARP 要求および ARP 応答の両方に対して実行されます。 イネーブルにすると、異なる MAC アドレスを持つパケットは無効パケットとして分類され、廃棄されます。

          • dst-mac では、イーサネット ヘッダーの宛先 MAC アドレスと ARP 本文の宛先 MAC アドレスが比較されます。 この検査は、ARP 応答に対して実行されます。 イネーブルにすると、異なる MAC アドレスを持つパケットは無効パケットとして分類され、廃棄されます。

          • ip では、ARP 本文から、無効な IP アドレスや予期しない IP アドレスがないかを確認します。 アドレスには 0.0.0.0、255.255.255.255、およびすべての IP マルチキャスト アドレスが含まれます。 送信元 IP アドレスはすべての ARP 要求および ARP 応答内で検査され、宛先 IP アドレスは ARP 応答内だけで検査されます。

          少なくとも 1 つのキーワードを指定する必要があります。 コマンドを実行するたびに、その前のコマンドの設定は上書きされます。つまり、コマンドが src および dst mac の検証をイネーブルにし、別のコマンドが IP 検証だけをイネーブルにすると、2 番めのコマンドによって src および dst mac の検証がディセーブルになります。

           
          ステップ 3exit
           

          特権 EXEC モードに戻ります。

           
          ステップ 4show ip arp inspection vlan vlan-range
           

          設定値を確認します。

           
          ステップ 5copy running-config startup-config
           

          (任意)コンフィギュレーション ファイルに設定を保存します。

           

          DAI のモニタリング

          DAI をモニタするには、次のコマンドを使用します。

          コマンド 説明
          clear ip arp inspection statistics ダイナミック ARP インスペクション統計情報をクリアします。
          show ip arp inspection statistics [vlan vlan-range]

          指定の VLAN において、転送されたパケット、廃棄されたパケット、MAC 検証に失敗したパケット、IP 検証に失敗したパケット、ACL によって許可および拒否されたパケット、DHCP によって許可および拒否されたパケットの統計情報を表示します。 VLAN が指定されていない場合、または範囲が指定されている場合は、ダイナミック ARP インスペクションがイネーブルにされた(アクティブ)VLAN だけの情報を表示します。

          clear ip arp inspection log ダイナミック ARP インスペクション ログ バッファをクリアします。
          show ip arp inspection log ダイナミック ARP インスペクション ログ バッファの設定と内容を表示します。

          show ip arp inspection statistics コマンドでは、スイッチは信頼されたダイナミック ARP インスペクション ポート上の各 ARP 要求および応答パケットの転送済みパケット数を増加させます。 スイッチは、送信元 MAC、宛先 MAC、または IP 検証チェックによって拒否された各パケットの ACL または DHCP 許可済みパケット数を増加させ、適切な失敗数を増加させます。

          DAI の設定の確認

          DAI の設定を表示して確認するには、次のコマンドを使用します。

          コマンド 説明
          show arp access-list [acl-name]

          ARP ACL についての詳細情報を表示します。

          show ip arp inspection interfaces [interface-id]

          指定のインターフェイス、またはすべてのインターフェイスに対して、ARP パケットの信頼状態およびレート制限を表示します。

          show ip arp inspection vlan vlan-range

          指定された VLAN のダイナミック ARP インスペクションの設定および動作ステートを表示します。 VLAN が指定されていない場合、または範囲が指定されている場合は、ダイナミック ARP インスペクションがイネーブルにされた(アクティブ)VLAN だけの情報を表示します。

          その他の関連資料

          エラー メッセージ デコーダ

          説明 Link

          このリリースのシステム エラー メッセージを調査し解決するために、エラー メッセージ デコーダ ツールを使用します。

          https:/​/​www.cisco.com/​cgi-bin/​Support/​Errordecoder/​index.cgi

          MIB

          MIB MIB のリンク

          本リリースでサポートするすべての MIB

          選択したプラットフォーム、Cisco IOS リリース、およびフィーチャ セットに関する MIB のダウンロードには、次の URL にある Cisco MIB Locator を使用します。

          http:/​/​www.cisco.com/​go/​mibs

          テクニカル サポート

          説明 Link

          シスコのサポート Web サイトでは、シスコの製品やテクノロジーに関するトラブルシューティングに役立てていただけるように、マニュアルやツールをはじめとする豊富なオンライン リソースを提供しています。

          お使いの製品のセキュリティ情報や技術情報を入手するために、Cisco Notification Service(Field Notice からアクセス)、Cisco Technical Services Newsletter、Really Simple Syndication(RSS)フィードなどの各種サービスに加入できます。

          シスコのサポート Web サイトのツールにアクセスする際は、Cisco.com のユーザ ID およびパスワードが必要です。

          http:/​/​www.cisco.com/​support