DAI について
ARP
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 スプーフィング攻撃は、サブネットに接続されているデバイスの ARP キャッシュに偽りの情報を送信することにより、レイヤ 2 ネットワークに接続されているホスト、スイッチ、ルータに影響を及ぼす可能性があります。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 要求を受信すると、ホスト B の ARP キャッシュに IP アドレス IA と MAC アドレス MA を持つホストの ARP バインディングが設定されます。たとえば、IP アドレス IA は MAC アドレス MA にバインドされます。ホスト B が応答し、応答がホスト A に到達すると、ホスト A の ARP キャッシュに、IP アドレス IB と MAC アドレス MB を持つホストの ARP バインディングが設定されます。要求と応答の両方がローカル IP アドレスを宛先としていないため、その間のデバイスは 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 アドレスとして MC を使用します。
ホスト C は IA および IB に関連付けられた本物の MAC アドレスを知っているため、正しい MAC アドレスを宛先として使用することで、代行受信したトラフィックをこれらのホストに転送できます。このトポロジでは、ホスト C は、ホスト A からホスト B へのトラフィック ストリーム内に自身を割り込ませています。これは、man-in-the-middle 攻撃の典型的な例です。
DAI および ARP スプーフィング攻撃
DAI を使用することで、有効な ARP 要求および応答だけがリレーされるようになります。DAI がイネーブルになり適切に設定されている場合、Cisco Nexus デバイスは次のアクティビティを実行します。
-
信頼できないポートを経由したすべての ARP 要求および ARP 応答を代行受信します。
-
代行受信した各パケットが、IP アドレスと MAC アドレスの有効なバインディングを持つことを確認してから、ローカル ARP キャッシュを更新するか、または適切な宛先にパケットを転送します。
-
無効な ARP パケットはドロップします。
DAI は DHCP スヌーピング バインディング データベースに保存された有効な IP アドレスと MAC アドレスのバインディングに基づいて、ARP パケットの有効性を判断します。また、このデータベースにはユーザが作成するスタティック エントリも保存できます。ARP パケットを信頼できるインターフェイス上で受信した場合は、デバイスはこのパケットを検査せずに転送します。信頼できないインターフェイス上では、デバイスは有効性を確認できたパケットだけを転送します。
DAI では、パケット内の IP アドレスが無効な場合に ARP パケットをドロップするのか、または ARP パケット本体の MAC アドレスがイーサネット ヘッダーに指定されたアドレスと一致しない場合に ARP パケットをドロップするのかを設定できます。
インターフェイスの信頼状態とネットワーク セキュリティ
DAI は、デバイスの各インターフェイスに信頼状態を関連付けます。信頼できるインターフェイス上で受信されたパケットは、DAI のすべての有効性検査をバイパスしますが、信頼できないインターフェイス上で受信されたパケットには、DAI の有効性検査が行われます。
一般的なネットワーク構成では、次のガイドラインに従ってインターフェイスの信頼状態を設定します。
- Untrusted
-
ホストに接続されているインターフェイス
- Trusted
-
デバイスに接続されているインターフェイス
この設定では、デバイスからネットワークに送信される ARP パケットはすべて、セキュリティ検査をバイパスします。VLAN 内、またはネットワーク内のその他の場所では、他の検査を実行する必要はありません。
Caution |
信頼状態の設定は、慎重に行ってください。信頼すべきインターフェイスを信頼できないインターフェイスとして設定すると、接続が失われる場合があります。 |
信頼できないインターフェイスを信頼できるインターフェイスとして設定すると、ネットワークにセキュリティ ホールが生じる可能性があります。デバイス A が DAI を実行していなければ、ホスト 1 はデバイス B の ARP キャッシュを簡単にポイズニングできます(デバイス間のリンクが信頼できるものとして設定されている場合はホスト 2 も同様)。この状況は、デバイス B が DAI を実行している場合でも起こりえます。
DAI は、DAI が稼働するデバイスに接続されているホスト(信頼できないインターフェイス上)がネットワーク内の他のホストの ARP キャッシュをポイズニングしないように保証します。ただし、DAI が稼働するデバイスに接続されているホストのキャッシュがネットワークの他の部分のホストによってポイズニングされるのを防ぐことはできません。
VLAN 内の一部のデバイスで DAI が稼働し、他のデバイスでは稼働していない場合は、DAI が稼働しているデバイス上のインターフェイスの信頼状態を次のガイドラインに従って設定します。
- 信頼できない
-
ホスト、または DAI を実行していないデバイスに接続されているインターフェイス
- 信頼できる
-
DAI を実行しているデバイスに接続されているインターフェイス
DAI が稼働していないデバイスからのパケットのバインディングの有効性を判断できない場合は、DAI が稼働しているデバイスを DAI が稼働していないデバイスからレイヤ 3 で隔離します。
Note |
ネットワークの設定によっては、VLAN 内の一部のデバイスで ARP パケットを検証できない場合もあります。 |
DAI パケットのロギング
Cisco NX-OS は処理された DAI パケットについてのログ エントリのバッファを維持しています。各ログ エントリには、受信側の VLAN、ポート番号、送信元 IP アドレスおよび宛先 IP アドレス、送信元 MAC アドレスおよび宛先 MAC アドレスといったフロー情報が記録されます。
ログに記録するパケットのタイプを指定することもできます。デフォルトでは、Cisco Nexus デバイスは DAI がドロップしたパケットだけをログに記録します。
ログ バッファがあふれると、デバイスは最も古い DAI ログ エントリを新しいエントリで上書きします。バッファ内の最大エントリ数を設定できます。
Note |
Cisco NX-OS は、ログに記録される DAI パケットに関するシステム メッセージを生成しません。 |
ダイナミックARPインスペクションを使用したDHCPリレー
DAI は、DHCP スヌーピング クライアント バインディング データベースを使用して ARP パケットを検証します。Cisco NX-OS リリース 10.1(1) よりも前のリリースでは、このデータベースはスイッチで実行される DHCP スヌーピング プロセスによって構築されていました。スイッチが DHCP リレーとして動作する場合、バインディング データベースは構築されません。スヌーピング、DHCPリレー、およびDAIを同時にイネーブルにすると、着信 DHCP パケットを処理するために、リレー プロセスがスヌーピングよりも優先されます。したがって、スヌーピングはバインディング データベースを構築しません。DAI はバインディング データベースに依存しているため、DHCP リレーでは動作できません。ただし、Cisco NX-OS リリース 10.1(1)以降では、DHCP リレー DAIを使用してバインディング データベースを構築できます。
スイッチが DHCP 要求を受信すると、クライアントの MAC アドレス、VLAN、および着信インターフェイスで構成される一時バインディング エントリが作成されます。サーバから DHCPACK を受信すると、バインディング エントリが修飾されます。提供された IP アドレスが限定一時エントリに追加され、バインディング エントリ タイプが dhcp-relay として更新されます。
Cisco NX-OS リリース 10.1(1) 以降のリリースにアップグレードし、この機能を有効にすると、ISSU はエラーなしで処理されます。Cisco NX-OS リリース 10.1(1) から以前のリリースにダウングレードする前に、この機能を無効にしてください。