この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
目次
この章では、Cisco Nexus 3000 シリーズスイッチにダイナミック アドレス解決プロトコル(ARP)インスペクション(DAI)を設定する方法について説明します。
この章は、次の内容で構成されています。
ARP では、IP アドレスを MAC アドレスにマッピングすることで、レイヤ 2 ブロードキャスト ドメイン内の IP 通信を実現します。 たとえば、ホスト B がホスト A に情報を送信しようとして、ホスト B の ARP キャッシュにホスト A の MAC アドレスがないという場合、 ARP の用語では、ホスト B が送信者、ホスト A はターゲットになります。
ホスト B は、ホスト A の IP アドレスに関連付けられた MAC アドレスを取得するため、このブロードキャスト ドメイン内の全ホストに対してブロードキャスト メッセージを送信します。 ブロードキャスト ドメイン内の全ホストはこの ARP 要求を受信し、これに対してホスト A は自身の MAC アドレスを返します。
ARP では、たとえ ARP 要求を受信していなくても、ホストからの応答が可能なので、ARP スプーフィング攻撃と ARP キャッシュ ポイズニングが発生する可能性があります。 攻撃が開始されると、攻撃を受けたデバイスからのすべてのトラフィックは、攻撃者のコンピュータを経由してルータ、スイッチ、またはホストに送信されるようになります。
ARP スプーフィング攻撃は、サブネットに接続されているデバイスの ARP キャッシュに偽りの情報を送信することにより、レイヤ 2 ネットワークに接続されているホスト、スイッチ、ルータに影響を及ぼす可能性があります。 ARP キャッシュに偽りの情報を送信することを ARP キャッシュ ポイズニングといいます。 スプーフ攻撃では、サブネット上の他のホストに対するトラフィックの代行受信も可能です。
次の図に、ARP キャッシュ ポイズニングの例を示します。
ホスト A、B、C は、それぞれインターフェイス A、B、C を介してデバイスに接続されています。ホストは同一サブネットに属します。 カッコ内は、各ホストの IP および MAC アドレスを示します。たとえば、ホスト A は IP アドレス IA、および MAC アドレス MA を使用します。 ホスト A がホスト B に IP データを送信する必要がある場合、ホスト 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 は、バインディングを伴う 2 つの偽造 ARP 応答をブロードキャストすることにより、デバイス、ホスト A、ホスト B の ARP キャッシュをポイズニングできます。偽造 ARP 応答の 1 つは、IP アドレス IA と MAC アドレス MC を持つホストの応答、もう 1 つは IP アドレス IB と MAC アドレス MC を持つホストの応答です。 これにより、ホスト B とデバイスは、IA を宛先とするトラフィックの宛先 MAC アドレスとして、MAC アドレス MC を使用します。つまり、ホスト C がこのトラフィックを代行受信することになります。 同様に、ホスト A とデバイスは、IB を宛先とするトラフィックの宛先 MAC アドレスとして MAC アドレス MC を使用します。
ホスト C は IA および IB に関連付けられた本物の MAC アドレスを知っているため、正しい MAC アドレスを宛先として使用することで、代行受信したトラフィックをこれらのホストに転送できます。 このトポロジでは、ホスト C は、ホスト A からホスト B へのトラフィック ストリーム内に自身を割り込ませています。これは、man-in-the-middle 攻撃の典型的な例です。
DAI を使用することで、有効な ARP 要求および応答だけがリレーされるようになります。 DAI がイネーブルになり適切に設定されている場合、Cisco NX-OS デバイスは次のアクティビティを実行します。
DAI によって ARP パケットの有効性を判断するときの基準となる有効な IP-to-MAC バインディングは、Dynamic Host Configuration Protocol(DHCP)スヌーピング バインディング データベースに保存されています。 このデータベースは、VLAN とデバイス上で DHCP スヌーピングがイネーブルにされている場合に、DHCP スヌーピングによって構築されます。 また、このデータベースにはユーザが作成するスタティック エントリも保存できます。 ARP パケットを信頼できるインターフェイス上で受信した場合は、デバイスはこのパケットを検査せずに転送します。 信頼できないインターフェイス上では、デバイスは有効性を確認できたパケットだけを転送します。
DAI では、パケット内の IP アドレスが無効な場合に ARP パケットをドロップするのか、または ARP パケット本体の MAC アドレスがイーサネット ヘッダーに指定されたアドレスと一致しない場合に ARP パケットをドロップするのかを設定できます。
DAI は、デバイスの各インターフェイスに信頼状態を関連付けます。 信頼できるインターフェイス上で受信されたパケットは、DAI のすべての有効性検査をバイパスしますが、信頼できないインターフェイス上で受信されたパケットには、DAI の有効性検査が行われます。
一般的なネットワーク構成では、次の注意事項に従ってインターフェイスの信頼状態を設定します。
ホストに接続されているインターフェイス
デバイスに接続されているインターフェイス
この設定では、デバイスからネットワークに送信される ARP パケットはすべて、セキュリティ検査をバイパスします。 VLAN 内、またはネットワーク内のその他の場所では、他の検査を実行する必要はありません。
![]() 注意 |
信頼状態の設定は、慎重に使用してください。 信頼すべきインターフェイスを信頼できないインターフェイスとして設定すると、接続が失われる場合があります。 |
次の図では、デバイス A およびデバイス B の両方が、ホスト 1 およびホスト 2 を収容する VLAN 上で DAI を実行していると仮定します。 ホスト 1 およびホスト 2 が、デバイス A に接続されている DHCP サーバから IP アドレスを取得すると、デバイス A だけがホスト 1 の IP/MAC アドレスをバインドします。 デバイス A とデバイス B 間のインターフェイスが信頼できない場合は、ホスト 1 からの ARP パケットはデバイス B ではドロップされ、ホスト 1 およびホスト 2 の間の接続は切断されます。
信頼できないインターフェイスを信頼できるインターフェイスとして設定すると、ネットワークにセキュリティ ホールが生じる可能性があります。 デバイス A が DAI を実行していなければ、ホスト 1 はデバイス B の ARP キャッシュを簡単にポイズニングできます(デバイス間のリンクが信頼できるものとして設定されている場合はホスト 2 も同様)。 この状況は、デバイス B が DAI を実行している場合でも起こりえます。
DAI は、DAI が稼働するデバイスに接続されているホスト(信頼できないインターフェイス上)がネットワーク内の他のホストの ARP キャッシュをポイズニングしないように保証します。ただし、DAI が稼働するデバイスに接続されているホストのキャッシュがネットワークの他の部分のホストによってポイズニングされるのを防ぐことはできません。
VLAN 内の一部のデバイスで DAI が稼働し、他のデバイスでは稼働していない場合は、DAI が稼働しているデバイス上のインターフェイスの信頼状態を次の注意事項に従って設定します。
ホスト、または DAI を実行していないデバイスに接続されているインターフェイス
DAI を実行しているデバイスに接続されているインターフェイス
DAI が稼働していないデバイスからのパケットのバインディングを検証するには、DAI が稼働しているデバイスに ARP ACL を設定します。 バインディングの有効性を判断できない場合は、DAI が稼働しているデバイスを DAI が稼働していないデバイスからレイヤ 3 で隔離します。
![]() (注) |
ネットワークの設定によっては、VLAN 内の一部のデバイスで ARP パケットを検証できない場合もあります。 |
Cisco NX-OS は処理された DAI パケットについてのログ エントリのバッファを維持しています。 各ログ エントリには、受信側の VLAN、ポート番号、送信元および宛先 IP アドレス、送信元および宛先 MAC アドレスといったフロー情報が含まれます。
ログに記録するパケットのタイプを指定することもできます。 デフォルトでは、Cisco NX-OS デバイスは DAI がドロップしたパケットだけをログに記録します。
ログ バッファがあふれると、デバイスは最も古い DAI ログ エントリを新しいエントリで上書きします。 バッファ内の最大エントリ数を設定できます。
![]() (注) |
Cisco NX-OS は、ログに記録される DAI パケットに関するシステム メッセージを生成しません。 |
次の表に、DAI のライセンス要件を示します。
製品 |
ライセンス要件 |
---|---|
Cisco NX-OS |
DAI にはライセンスは必要ありません。 ライセンス パッケージに含まれていない機能はすべて Cisco NX-OS システム イメージにバンドルされており、追加費用は一切発生しません。 Cisco NX-OS のライセンス方式の詳細については、『Cisco NX-OS Licensing Guide』を参照してください。 |
DAI に関する注意事項と制約事項は次のとおりです。
パラメータ |
デフォルト |
---|---|
DAI |
すべての VLAN でディセーブル。 |
インターフェイスの信頼状態 |
すべてのインターフェイスは untrusted。 |
有効性検査 |
検査は実行されません。 |
ログ バッファ |
DAI をイネーブルにした場合は、拒否または廃棄されたすべての ARP パケットが記録されます。 ログ内のエントリ数は 32 です。 システム メッセージ数は、毎秒 5 つに制限されます。 ロギングレート インターバルは、1 秒です。 |
VLAN 単位のロギング |
拒否またはドロップされたすべての ARP パケットが記録されます。 |
VLAN に対して DAI をイネーブルまたはディセーブルにすることができます。 デフォルトでは、DAI はすべての VLAN でディセーブルです。
DAI をイネーブルにする場合は、次の点を確認してください。
レイヤ 2 インターフェイスの DAI インターフェイス信頼状態を設定できます。 デフォルトでは、すべてのインターフェイスは信頼できません。
デバイスは、信頼できるレイヤ 2 インターフェイス上で受信した ARP パケットを転送しますが、検査は行いません。
信頼できないインターフェイス上では、デバイスはすべての ARP 要求および ARP 応答を代行受信します。デバイスは、ローカル キャッシュをアップデートして、代行受信したパケットを適切な宛先に転送する前に、そのパケットの IP-MAC アドレス バインディングが有効であることを検証します。 そのパケットのバインディングが無効であると判断すると、デバイスはそのパケットをドロップし、ロギングの設定に従ってログに記録します。
DAI をイネーブルにする場合は、DHCP 機能がイネーブルであることを確認します。
ARP パケットの追加検証をイネーブルまたはディセーブルにできます。 デフォルトでは、ARP パケットの追加検証はイネーブルになりません。 追加検証が設定されていない場合、ARP パケットの IP/MAC バインディング エントリと照合する送信元 MAC アドレスおよび送信元 IP アドレスのチェックは、イーサネット送信元 MAC アドレス(ARP 送信者の MAC アドレスではない)と ARP 送信者の IP アドレスを使用して実行されます。
DAI は、IP アドレスと MAC アドレスとの無効なバインディングを持つ ARP パケットを代行受信、記録、および廃棄します。 宛先 MAC アドレス、送信元および宛先 IP アドレス、送信元 MAC アドレスに対し、追加検証をイネーブルにすることができます。
追加検証を実装するには、ip arp inspection validate コマンドで次のキーワードを使用します。
ARP 応答のイーサネット ヘッダー内の宛先 MAC アドレスを、ARP 本体のターゲット MAC アドレスと比較して検査します。 イネーブルにすると、異なる MAC アドレスを持つパケットは無効パケットとして分類され、廃棄されます。
ARP 本文をチェックして、無効な IP アドレスや予期しない IP アドレスがないかを確認します。 アドレスには 0.0.0.0、255.255.255.255、およびすべての IP マルチキャスト アドレスが含まれます。 送信元 IP アドレスはすべての ARP 要求および応答内でチェックされ、宛先 IP アドレスは ARP 応答内でのみチェックされます。
ARP 要求と応答のイーサネット ヘッダー内の送信元 MAC アドレスを、ARP 本体の送信者 MAC アドレスと比較して検査します。 イネーブルにすると、異なる MAC アドレスを持つパケットは無効パケットとして分類され、廃棄されます。
追加検証をイネーブルにする場合は、次の点に注意してください。
DAI のログ バッファ サイズを設定できます。 デフォルトのバッファ サイズは 32 メッセージです。
DAI パケットを記録するかどうかをデバイスが判断する方法を設定できます。 デフォルトでは、デバイスはドロップされる DAI パケットをログに記録します。
DAI の設定情報を表示するには、次のいずれかの作業を行います。
コマンド |
目的 |
---|---|
show running-config arp |
DAI の設定を表示します。 |
show ip arp inspection |
DAI のステータスを表示します。 |
show ip arp inspection interface ethernet |
特定のインターフェイスの信頼状態および ARP パケット レートを表示します。 |
show ip arp inspection vlan |
特定の VLAN の DAI 設定を表示します。 |
show arp access-lists |
ARP ACL を表示します。 |
show ip arp inspection log |
DAI のログ設定を表示します。 |
DAI の統計情報のモニタまたはクリアを行うには、次の表に示すコマンドを使用します。 これらのコマンドの詳細については、『Cisco Nexus 7000 Series NX-OS Security Command Reference』を参照してください。
コマンド |
目的 |
---|---|
show ip arp inspection statistics |
DAI の統計情報を表示します。 |
show ip arp ethernet |
インターフェイス固有の DAI の統計情報を表示します。 |
clear ip arp inspection statistics |
DAI 統計情報をクリアします。 |
2 つのデバイスが DAI をサポートする場合の DAI の設定手順を次に示します。
次の図に、この例のネットワーク構成を示します。 ホスト 1 はデバイス A に、ホスト 2 はデバイス B にそれぞれ接続されています。 両方のデバイスは、これらのホストが置かれている VLAN 1 上で DAI を実行しています。 DHCP サーバはデバイス A に接続されています。 両方のホストは、同一の DHCP サーバから IP アドレスを取得します。 デバイス A はホスト 1 およびホスト 2 のバインディングを持ち、デバイス B はホスト 2 のバインディングを持ちます。 デバイス A のイーサネット インターフェイス 2/3 は、デバイス B のイーサネット インターフェイス 1/4 に接続されています。
DAI では、DHCP スヌーピング バインディング データベース内のエントリを使用して、着信 ARP 要求および ARP 応答内の IP アドレスと MAC アドレスのバインディングを確認します。 IP アドレスを動的に割り当てられた ARP パケットを許可するには、DHCP スヌーピングをイネーブルにする必要があります。
デバイス A で DAI をイネーブルにし、イーサネット インターフェイス 2/3 を信頼できるインターフェイスとして設定するには、次の作業を行います。
デバイス B で DAI をイネーブルにし、イーサネット インターフェイス 1/4 を信頼できるインターフェイスとして設定するには、次の作業を行います。