Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ネットワークセキュリティのためのDHCPスヌーピング

DHCP スヌーピングのサポート

ダイナミックホスト構成プロトコル(DHCP)は、TCP/IPネットワークでIPアドレスやその他の関連する構成情報をネットワークデバイスに動的に割り当てるために使用されるネットワーク管理プロトコルです。

DHCPスヌーピングの仕組み

ダイナミックホスト構成プロトコル(DHCP)は、IPアドレスをデバイスに動的に割り当て、不要になったときに再利用できるアドレスをリースします。DHCP 経由の IP アドレスを必要とするホストまたはエンド デバイスは、LAN を介して DHCP サーバーと通信する必要があります。

次の図は、DHCPスヌーピングプロセスを示しています。

図1:DHCPスヌーピング DHCP Snooping

このトポロジーでは、エンドユーザーデバイスがJunos OSデバイス(ルーター、スイッチ、またはファイアウォール)に接続します。Junos OSデバイスは、DHCPクライアントとDHCPサーバーの両方に接続します。DHCPリレーエージェントとして設定されたJunos OSデバイスは、DHCPクライアントとDHCPサーバー間のインターフェイスとして動作します。この Junos OS デバイスは、DHCP パケットを検査します。DHCP サーバーは、IP アドレスをクライアントに割り当てます。

Junos OSデバイスのDHCPスヌーピング機能は、以下のアクションを実行します。

  • 信頼できない送信元から受信したDHCPメッセージを検証し、無効なメッセージをフィルタリングします。
  • 各クライアントにリースしたIPアドレスを抽出し、データベースを構築します。DHCP スヌーピング データベース(またはバインディング テーブル)には、各 DHCP クライアントの IP アドレス、MACアドレス、VLAN に関する情報が含まれています。
  • DHCP スヌーピング バインディング テーブルを使用して、信頼できないホストからの後続のリクエストを検証します。DHCPリクエストが信頼できる送信元から送信されていることを検証することで、ジュニパーデバイスは有効なDHCPリクエストのみが処理されるようにすることができます。

このように、DHCP スヌーピングは、信頼できる DHCP サーバー(信頼できるネットワーク ポートに接続されたサーバー)がダウンストリームのネットワーク デバイスに割り当てる有効な IP アドレスを追跡することで、ネットワーク セキュリティの守護者として機能します。

DHCPv6リレーエージェントスヌーピング

DHCPv6リレーエージェントは、IPv6ネットワークでサポートを提供することでDHCPリレーエージェントを強化します。DHCPv6リレーエージェントは、DHCPv6クライアントとDHCPv6サーバーの間でメッセージを渡します。DHCPリレーエージェントがIPv4ネットワークをサポートする方法と同様にです。クライアントとサーバー間に複数のDHCPv6リレーエージェントがあるマルチリレートポロジーでは、スヌーピングにより、介在するリレーエージェントがクライアントからのユニキャストトラフィックを正しく処理し、サーバーに転送できます。このトポロジーでのスヌーピングには、以下のアクションが含まれます。

  • DHCPv6リレーエージェントは、DHCPv6 UDPサーバーポートであるUDPポート547を持つフィルターを使用して、受信ユニキャストDHCPv6パケットを転送テーブル単位でスヌーピングします。
  • 次に、DHCPv6 リレー エージェントは、フィルターによって傍受されたパケットを処理し、そのパケットを DHCPv6 サーバーに転送します。

DHCPスヌーピングのメリット

  • DHCP スヌーピングは、IP アドレスをフィルタリングすることで追加のセキュリティ層を提供できます。フィルタリングプロセスでは、ネットワークトラフィックが評価され、検証済みの有効なIPアドレスからの通信が許可されます。
  • DHCPスヌーピングは、間違ったポートに到着したDHCPパケットや、誤った内容のDHCPパケットをフィルタリングして除外することで、ネットワーク内の不正なDHCPアクティビティを防ぐことができます。

DHCPローカルサーバーのDHCPスヌーピングパケット転送サポートの設定

DHCP ローカルサーバーが DHCP スヌーピングされたパケットを処理する方法を設定できます。設定に応じて、DHCP ローカル サーバーは受信したスヌーピングされたパケットを転送またはドロップします。

表1は 、DHCPローカルサーバーのスヌーピングパケットに対してルーターが実行するアクションを示しています。

注:

設定されたインターフェイスとは、[edit system services dhcp-local-server]階層でgroupステートメントで設定されたインターフェイスです。未設定インターフェイスとは、論理システム/ルーティングインスタンス内にあるが、groupステートメントで設定されていないインターフェイスのことです。

表1:DHCPローカルサーバーのスヌーピングパケットに対するアクション

forward-snooped-clients 設定

設定されたインターフェイスに対するアクション

未設定インターフェイスでのアクション

forward-snooped-clients 未設定

ドロップ

ドロップ

all-interfaces

転送済み

転送済み

configured-interfaces

転送済み

ドロップ

non-configured-interfaces

ドロップ

転送済み

DHCPローカルサーバーへのDHCPスヌーピングパケット転送を設定するには:

  1. DHCPローカルサーバーを設定することを指定します。
  2. DHCPローカルサーバーのDHCPスヌーピングパケット転送を有効にします。
  3. スヌーピングされたパケット転送でサポートされているインターフェイスを指定します。

例えば、設定されたインターフェイスでのみDHCPスヌーピングパケットを転送するようにDHCPローカルサーバーを設定するには:

DHCP リレーエージェントの DHCP スヌーピングパケットサポートの有効化および無効化

DHCP リレー エージェントは、2 つの構成から構成して、DHCP スヌーピング パケットの処理方法を決定します。このトピックでは、DHCPリレーエージェントのスヌーピングサポートを有効または無効にし、オプションでデフォルトのスヌーピング設定を上書きする最初の手順について説明します。

DHCPv4 リレーエージェントにのみ適用される 2 つ目の手順は、 DHCP リレーエージェントの DHCP スヌーピングパケット転送サポートの設定に記載され、スヌーピングされたクライアントの転送アクションを設定し、DHCP リレーエージェントがスヌーピングされたトラフィックを転送するかドロップするかを指定します。

DHCPリレー、インターフェイスのグループ、またはグループ内の特定のインターフェイスに対して、DHCPをグローバルに有効または無効にすることができます。

デフォルトでは、DHCPリレーに対してDHCPスヌーピングが有効になっています。DHCPスヌーピングサポートをグローバルに有効または無効にするには:

  1. DHCPリレーエージェントを設定することを指定します。
    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  2. デフォルト設定を上書きすることを指定します。
    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  3. DHCPスヌーピングサポートを有効または無効にします。
    • DHCP スヌーピングを有効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

    • DHCP スヌーピングを無効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

例えば、グローバルDHCPスヌーピングサポートを有効にするには:

インターフェイスグループのDHCPスヌーピングサポートを有効または無効にするには:

  1. DHCPリレーエージェントを設定することを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  2. 指定されたグループを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  3. デフォルト設定を上書きすることを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  4. DHCPスヌーピングサポートを有効または無効にします。

    • DHCP スヌーピングを有効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

    • DHCP スヌーピングを無効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

例えば、グループ boston内のすべてのインターフェイスでDHCPスヌーピングサポートを有効にするには:

特定のインターフェイスでDHCPスヌーピングサポートを有効または無効にするには:

  1. DHCPリレーエージェントを設定することを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  2. インターフェイスを含む名前付きグループを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  3. DHCPスヌーピングを設定するインターフェイスを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  4. インターフェイス上のデフォルト設定を上書きすることを指定します。

    • DHCPリレーエージェントの場合:

    • DHCPv6 リレーエージェントの場合:

  5. DHCPスヌーピングサポートを有効または無効にします。

    • DHCP スヌーピングを有効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

    • DHCP スヌーピングを無効にするには:

      • DHCPリレーエージェントの場合:

      • DHCPv6 リレーエージェントの場合:

例えば、グループboston内のインターフェイスge-2/1/8.0でDHCPスヌーピングサポートを無効にするには:

グループsunnyvale内のインターフェイスge-3/2/1.1でDHCPv6スヌーピングサポートを有効にするには:

DHCPスヌーピング設定

以下の設定オプションを使用して、DHCPスヌーピングをグローバルに、またはインターフェイスグループ上、またはグループ内の特定のインターフェイスで有効または無効にします。
  • インターフェイスグループの設定
    DHCPスヌーピングをサポートするインターフェイスの名前付きグループを作成します。このグループには、共通のDHCPまたはDHCPv6リレーエージェント設定を持つインターフェイスを含める必要があります。インターフェイスをグループに追加するには、インターフェイス名を指定する必要があります。DHCPリレーエージェントは、トラフィックを転送するかドロップするかを決定する際に、これらのインターフェイスを設定済みインターフェイスとみなします。
    • DHCP リレーエージェントの場合:

    • DHCPv6 リレー エージェントの場合:
  • デフォルトのDHCPリレースヌーピングを上書きする
    デバイス上のデフォルトのDHCPリレースヌーピング設定を上書きして、スヌーピングサポートを明示的に有効または無効にすることができます。下位ステートメントなしで overrides ステートメントを指定すると、その階層レベルのDHCPリレーエージェントのオーバーライドがすべて削除されます。インターフェイスの名前付きグループ、または特定のインターフェイスのデフォルト設定を、インターフェイスの名前付きグループで上書きできます。
    グローバルレベルでは、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

    インターフェイスの名前付きグループでは、DHCP リレー エージェントと DHCPv6 リレー エージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合
    グループ内の特定のインターフェイスに対して、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

  • スヌーピングされたパケットの処理を有効にする

    ルーターは、パケットに関連付けられた加入者がいない場合、デフォルトでスヌーピングされたパケットを破棄します。デフォルトのDHCP設定を上書きし、リレーエージェントがスヌーピングされたクライアントからDHCPメッセージを転送できるようにするには、 allow-snooped-clients ステートメントを明示的に設定する必要があります。

    グローバルレベルでは、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

    インターフェイスグループでは、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

    グループ内の特定のインターフェイスに対して、以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

  • スヌーピングされたクライアントからのDHCPメッセージの転送を防止する

    デフォルトのDHCP設定を上書きし、リレーエージェントがスヌーピングされたクライアントからのメッセージを転送できないようにするには、以下のコマンドを使用します。

    グローバルレベルでは、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合
    • DHCPv6リレーエージェントの場合
    インターフェイスグループでは、DHCPリレーエージェントとDHCPv6リレーエージェントにそれぞれ以下のステートメントを使用します。
    • DHCP リレー エージェントの場合
    • DHCPv6リレーエージェントの場合
    グループ内の特定のインターフェイスに対して、以下のステートメントを使用します。
    • DHCP リレー エージェントの場合

    • DHCPv6リレーエージェントの場合

  • ヌーピングされたパケットを転送
    DHCPリレーエージェントのDHCPスヌーピングパケット転送を有効にします。すべてのインターフェイス、すべての設定済みインターフェイス、または非設定インターフェイスを指定できます。

DHCP スヌーピング フィルターの無効化

DHCPスヌーピングは、受信DHCPパケットを識別することでDHCPセキュリティを提供します。デフォルトのDHCPスヌーピング設定では、すべてのトラフィックがスヌーピングされます。オプションで forward-snooped-clients ステートメントを使用して、スヌーピングされたトラフィックを評価し、インターフェイスがグループの一部として設定されているかどうかに基づいて、トラフィックが転送またはドロップされるかどうかを判断できます。

デフォルト設定と forward-snooped-clients ステートメントを使用した設定の両方で、すべてのDHCPトラフィックがハードウェアコントロールプレーンからルーティングインスタンスのルーティングプレーンに転送され、すべてのDHCPパケットが確実に傍受されるようにします。メトロポリタンルーティングリングトポロジーなどの特定のトポロジーでは、すべてのDHCPトラフィックをコントロールプレーンに転送すると、トラフィックが過剰になることがあります。 no-snoop 設定ステートメントは、有効なルートを持つレイヤー3ユニキャストパケットなど、ハードウェアコントロールプレーン上で直接転送できるDHCPトラフィックのスヌーピングフィルターを無効にし、それらのDHCPパケットがより遅いルーティングプレーンをバイパスするようにします。DHCPスヌーピングフィルターは、Junos OSリリース15.1R2以降で無効にできます。

DHCP ローカルサーバーで DHCP スヌーピングフィルターを無効にするには:

  1. DHCPローカルサーバーを設定することを指定します。
  2. DHCPローカルサーバーのDHCPスヌーピングフィルターを無効にします。
  3. DHCPv6ローカルサーバーを設定することを指定します。
  4. DHCPv6ローカルサーバーのDHCPスヌーピングフィルターを無効にします。

DHCP リレーサーバーで DHCP スヌーピングフィルターを無効にするには:

  1. DHCPリレーサーバーを設定することを指定します。

  2. DHCPローカルサーバーのDHCPスヌーピングフィルターを無効にします。

  3. DHCPv6リレーサーバーを設定することを指定します。

  4. DHCPv6ローカルサーバーのDHCPスヌーピングフィルターを無効にします。

例:DHCP リレーエージェントの DHCP スヌーピングサポートの設定

この例では、DHCPリレーエージェントのDHCPスヌーピングサポートを設定する方法を示しています。

要件

概要

この例では、以下の操作を完了することで、DHCP リレー エージェントの DHCP スヌーピング サポートを設定します。

  • デフォルトのDHCPスヌーピング設定を上書きし、グループ frankfurt内のインターフェイスのDHCPスヌーピングサポートを有効にします。

  • スヌーピングされたパケットを設定済みのインターフェイスのみに転送するようにDHCPリレーエージェントを設定します。

設定

手順

ステップバイステップの手順

DHCP スヌーピング用の DHCP リレー サポートを設定するには:

  1. DHCPリレーエージェントを設定することを指定します。

  2. DHCPスヌーピングがサポートされているインターフェイスの名前付きグループを指定します。

  3. グループに含めるインターフェイスを指定します。DHCP リレーエージェントは、トラフィックを転送するかドロップするかを決定する際に、これらを設定済みのインターフェイスとみなします。

  4. グループのデフォルト設定を上書きすることを指定します。

  5. グループのDHCPスヌーピングサポートを有効にします。

  6. [edit forwarding-options dhcp-relay]階層レベルに戻って転送アクションを設定し、DHCPリレーエージェントが設定されたインターフェイスでのみスヌーピングされたパケットを転送するように指定します。

  7. DHCP リレー エージェントの DHCP スヌーピング パケット転送を有効にします。

  8. スヌーピングされたパケットが、設定されたインターフェイス(グループ frankfurt内のインターフェイス)でのみ転送されることを指定します。

結果

設定モードから、 show forwarding-options コマンドを入力して設定を確認します。出力に意図した設定が表示されない場合は、この例の手順を繰り返して修正します。以下の出力は、グループフランクフルトで設定されたインターフェイスの範囲も示しています。

デバイスの設定が完了したら、設定モードから commit を入力します。

例:DHCPv6リレーエージェントのDHCPスヌーピングサポートの有効化

DHCPv6リレーエージェントのスヌーピングサポートは、デフォルトでルーターで無効になっています。この例では、デフォルトのDHCPv6リレーエージェントスヌーピング設定をオーバーライドして、インターフェイスの名前付きグループと異なる名前付きグループ内の特定のインターフェイスに対してDHCPv6スヌーピングを明示的に有効にする方法を示しています。

注:

また、[edit forwarding-options dhcp-relay dhcpv6 overrides]階層レベルでallow-snooped-clientsステートメントを使用することで、DHCPv6のスヌーピングサポートをグローバルに有効にすることもできます。

要件

この例では、以下のハードウェアおよびソフトウェアコンポーネントを使用しています。

  • MXシリーズ5Gユニバーサルルーティングプラットフォーム

  • Junos OSリリース12.1以降

始める前に:

概要

この例では、デフォルトのDHCPv6リレーエージェントスヌーピング設定を上書きして、以下の両方のDHCPスヌーピングを明示的に有効にします。

  • という名前のグループ内のすべてのインターフェイス boston

  • という名前のグループ内のインターフェイスge-3/2/1.1sunnyvale

設定

デフォルトのDHCPv6リレーエージェントスヌーピング設定をオーバーライドして、指定されたインターフェイスグループと指定されたグループ内の特定のインターフェイスに対してDHCPv6スヌーピングを明示的に有効にするには、以下のタスクを実行します。

CLIクイックコンフィグレーション

この例をすばやく設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、コマンドを [edit] 階層レベルのCLIにコピー アンド ペーストします。

インターフェイスの名前付きグループに対するDHCPv6スヌーピングサポートの有効化

ステップバイステップの手順

インターフェイスの名前付きグループに対してDHCPv6スヌーピングサポートを有効にするには:

  1. DHCPv6リレーエージェントを設定することを指定します。

  2. DHCPv6スヌーピングを有効にするインターフェイスの名前付きグループを指定します。

  3. そのグループ内のインターフェイスのデフォルトのDHCPv6設定を上書きすることを指定します。

  4. グループ boston内のすべてのインターフェイスに対してDHCPv6スヌーピングサポートを有効にします。

結果

設定モードから、[edit forwarding-options dhcp-relay]階層レベルでshowステートメントを発行して設定の結果を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。

ルーターの設定が完了したら、設定モードから commit を入力します。

名前付きグループ内の特定のインターフェイスに対するDHCPv6スヌーピングサポートの有効化

ステップバイステップの手順

指定されたインターフェイス グループ内の特定のインターフェイスに対して DHCPv6 スヌーピング サポートを有効にするには:

  1. [edit forwarding-options dhcp-relay dhcpv6]階層レベルに戻り、DHCPv6リレーエージェントを設定することを指定します。

  2. インターフェイスを含む名前付きグループを指定します。

  3. DHCPv6スヌーピングを有効にするグループ sunnyvale 内のインターフェイスを指定します。

  4. グループsunnyvale内のインターフェイスge-3/2/1.1のデフォルトのDHCPv6設定を上書きすることを指定します。

  5. グループsunnyvale内のインターフェイスge-3/2/1.1のDHCPv6スヌーピングサポートを有効にします。

結果

設定モードから、[edit forwarding-options dhcp-relay]階層レベルでshowステートメントを発行して設定の結果を確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。

ルーターの設定が完了したら、設定モードから commit を入力します。

検証

マルチリレートポロジーでDHCPv6の設定を検証するには、以下のタスクを実行します。

DHCPv6リレーエージェントクライアントのアドレスバインディングの検証

目的

ダイナミックホスト構成プロトコル(DHCP)クライアントテーブルでDHCPv6アドレスバインディングを確認します。

アクション

DHCPv6リレーエージェントクライアントのアドレスバインディングに関する詳細情報を表示します。

意味

通常、show dhcpv6 relay binding detailコマンド出力のServer Addressフィールドには、DHCPv6サーバーのIPアドレスが表示されます。この例では、Server Addressフィールドunknown値は、DHCPv6リレーエージェントがDHCPv6サーバーに直接隣接しておらず、サーバーのIPアドレスを検出しないマルチリレートポロジーであることを示しています。

その場合、出力には代わりにDHCPv6サーバー方向のネクストホップアドレスを表示する Next Hop Server Facing Relay フィールドが含まれます。

DHCP スプーフィングの防止

DHCP で時々発生する問題は DHCP spoofingです。DHCPスプーフィングでは、信頼できないクライアントがDHCPメッセージでネットワークをフラッディングします。多くの場合、これらの攻撃はソースIPアドレスのなりすましを利用して、攻撃の真のソースを隠します。

DHCPスヌーピングは、DHCPメッセージをコントロールプレーンにコピーし、パケット内の情報を使用してアンチスプーフィルタを作成することで、DHCPスプーフィングを防止するのに役立ちます。なりすまし防止フィルターは、クライアントのMACアドレスをDHCPに割り当てられたIPアドレスにバインドし、この情報を使用してなりすましされたDHCPメッセージをフィルタリングします。典型的なトポロジーでは、キャリアエッジルーター(この機能ではブロードバンドネットワークゲートウェイ[BNG]とも呼ばれます)がDHCPサーバーとMXシリーズルーター(またはブロードバンドサービスアグリゲーター[BSA])を接続してスヌーピングを実行します。MXシリーズルーターは、クライアントとBNGに接続します。

DHCPスヌーピングを設定するには、DHCPグループ内に適切なインターフェイスを含めます。VPLS環境とブリッジドメインに対してDHCPスヌーピングを設定できます。

  • VPLS環境では、DHCPリクエストは疑似配線を介して転送されます。VPLS上のDHCPスヌーピングは、 [edit routing-instances routing-instance-name] 階層レベルで設定します。

  • ブリッジドメインでは、DHCPスヌーピングは学習ブリッジごとに機能します。各学習ドメインには、アップストリームインターフェイスが設定されている必要があります。このインターフェイスは、クライアント側からのDHCPリクエストのフラッドポートとして機能します。DHCP リクエストは、ブリッジ ドメインの学習ドメイン間に転送されます。ブリッジドメインのDHCPスヌーピングは、 [edit routing-instances routing-instance-name bridge-domains bridge-domain-name] 階層レベルで設定します。

DHCP スプーフィングを防止するように DHCP リレーを設定するには:

  1. VPLSまたはブリッジドメイン設定のいずれかに適した階層にアクセスします。
  2. DHCPリレーを設定することを指定します。
  3. グループを作成し、名前を割り当てます。

  4. 1つ以上のインターフェイス名を指定します。DHCP は、指定されたインターフェイスで学習した MAC アドレスのみを信頼します。
注:

DHCP スヌーピングクライアントのインターフェイスサポートを明示的に有効または無効にすることができます。 DHCPリレーエージェントのDHCPスヌーピングパケットサポートの有効化および無効化を参照してください。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
15.1R2
DHCPスヌーピングフィルターは、Junos OSリリース15.1R2以降で無効にできます。