Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

DHCP スヌーピング

DHCP(ダイナミックホスト構成プロトコル)スヌーピングは、ルーター、スイッチ、またはファイアウォールに接続されている信頼できないデバイスからのDHCPメッセージを検証することでネットワークセキュリティを強化し、不正なDHCPサーバーが信頼できないポートにDHCPOFFERパケットを送信するのを防ぎます。

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 リレー エージェントの 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 を入力します。

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

Junos OSデバイスでは、DHCPセキュリティ、DHCPリレー、特定のVLANまたはルーティングインスタンスのDHCPサーバー設定を構成すると、DHCPスヌーピング機能が自動的に有効になります。

Junos OSデバイスでは、DHCPスヌーピングを独立した機能として設定することはできません。

Junos OSでは、以下の機能のいずれか1つまたはすべてを設定すると、スイッチ、ルーター、またはファイアウォールでDHCPスヌーピングを有効にします。

  • 以下の階層レベルのDHCPリレーまたはDHCPローカルサーバーオプション:
    • [edit forwarding-options]または[edit routing-instances routing-instance-name forwarding-options]階層レベルのdhcp-relayステートメント。
    • [edit system services]または[edit routing-instances routing-instance-name system services]階層レベルのdhcp-local-serverステートメント。
      注:

      DHCP リレーを設定する場合、加入者管理やサービス クラス(CoS)が必要でない限り、 forward-only ステートメントを使用します。 forward-only 設定では、加入者セッションを作成せずに、指定されたDHCPクライアントパケットを転送します。

  • 特定のVLANのDHCPセキュリティは、そのVLANのDHCPスヌーピングをアクティブにします。

    スイッチの[edit vlans vlan-name forwarding-options]階層レベルのdhcp-securityステートメント

  • ルーターの[edit bridge-domains bridge-domain-name forwarding-options dhcp-security]階層レベルのdhcp-securityステートメント。
  • すべてのインターフェイス、設定済みインターフェイスのみ、または設定されていないインターフェイスのみに対してスヌーピングされたパケットを転送またはドロップするようにDHCPローカルサーバーを設定できます。詳細については、 DHCPローカルサーバーのDHCPスヌーピングパケット転送サポートの設定 を参照してください。

DHCPリレーエージェント用DHCPスヌーピングパケットの転送

forward-snooped-clientsステートメントを使用して、DHCPスヌーピング動作の制御をさらに絞り込むことができます。

forward-snooped-clientsステートメントを使用して、インターフェイス設定に基づいて監視対象のトラフィックを転送するかドロップするかを決定できます。

  1. スヌーピングされたトラフィックを評価し、後でトラフィックを転送するかドロップするかを決定するには、[edit forwarding-options dhcp-relay]階層レベルでforward-snooped-clientsステートメントを設定します。

    以下のシナリオで forward-snooped-clients オプションを設定できます。

    • すべてのインターフェイス:すべてのインターフェイスにアクションを適用します。
    • 設定されたインターフェイス:インターフェイスグループの一部として設定されたインターフェイスにのみアクションを適用します。
    • 非設定インターフェイス:インターフェイスグループに属していないインターフェイスにのみアクションを適用します。
  2. スヌーピングされたパケットを転送またはドロップするには、forward-snooped-clientsオプションで、それぞれallow-snooped-clientsまたはno-allow-snooped-clientsを設定します。
    • allow-snooped-clientsを設定すると、有効な加入者が関連付けられている場合、スヌーピングされたパケットが転送されます。
    • no-allow-snooped-clientsを設定すると、有効な加入者が関連付けられていても、スヌーピングされたパケットは破棄されます。

allow-snooped-clientsまたはno-allow-snooped-clientsforward-snooped-clientsの組み合わせに基づいてDHCPスヌーピングパケットに対してデバイスが実行するアクションの詳細については、表1および表2を参照してください。

表1はforward-snooped-clientsオプションでallow-snooped-clientsを設定した場合に、DHCPリレーエージェントがスヌーピングしたパケットに対してデバイスが実行するアクションを示しています。

表1:スヌーピングされたパケット転送を有効にした場合のスヌーピングされたパケットに対するデバイスのアクション

設定の適用対象

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

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

すべてのインターフェイス

転送済み

転送済み

設定されたインターフェイス

転送済み

ドロップ済み

未設定のインターフェイス

スヌーピングされたDHCPパケットは、DHCPスヌーピングデータベースに加入者エントリーを作成します。

転送済み

設定なし

スヌーピングされたDHCPパケットは、DHCPスヌーピングデータベースに加入者エントリーを作成します。

ドロップ済み

表2はforward-snooped-clientsno-allow-snooped-clientsを設定した場合に、DHCPリレーエージェントがスヌーピングしたパケットに対してデバイスが実行するアクションを示しています。

表2:スヌーピングパケット転送を無効にした場合のスヌーピングパケットに対するデバイスのアクション

設定の適用対象

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

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

すべてのインターフェイス

ドロップ済み 転送済み

設定されたインターフェイス

ドロップ済み ドロップ済み

未設定のインターフェイス

ドロップ済み 転送済み

設定なし

ドロップ済み ドロップ済み

DHCP リレーエージェントのスヌーピング中、デバイスはグローバル設定に基づいて、BOOTREPLY パケットの転送または破棄を決定します。さらに、リース更新時に、BOOTPREQUESTパケットがDHCPサーバーに直接ユニキャストされる場合があり、このパケットもスヌーピングの対象となります。

表3は 、スヌーピングされた BOOTREPLY パケットに対してデバイスが実行するアクションを示しています。

表3:スヌーピングされたBOOTREPLYに対するアクションパケット
設定状態 アクション
forward-snooped-clients 未設定 スヌーピングされたクライアントが見つからない場合にパケットがドロップされるBOOTREPLY
forward-snooped-clients 設定済み スヌーピングされたクライアントが見つからない場合に転送されるパケットBOOTREPLY

デフォルト設定と forward-snooped-clients ステートメントを使用した設定の両方で、デバイスはDHCPパケットを傍受するために、ハードウェアコントロールプレーン上のすべてのDHCPトラフィックをルーティングインスタンスのルーティングプレーンに転送します。

no-snoopオプションを使用して、DHCPトラフィックのスヌーピングフィルターを無効にすることができます。

no-snoopオプションを設定すると、DHCPトラフィックはハードウェアコントロールプレーンに移動しますが、ルーティングプレーンをバイパスして、そこでの傍受を回避します。

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 スヌーピングパケット転送の設定例

  1. DHCP リレーエージェントの名前付きグループを設定し、グループにインターフェイスを追加します。DHCPリレーエージェントは、トラフィックを転送するかドロップするかを決定する際に、これらのインターフェイスを設定済みインターフェイスとみなします。
  2. グループのリレーエージェントのデフォルト設定を上書きするオプションを設定します。
  3. グループのDHCPスヌーピングサポートを有効にします。
  4. DHCP リレーエージェントが、設定されたインターフェイス上でのみスヌーピングされたパケットを転送する必要があることを指定します。この場合、設定されたインターフェイスはグループclient-group-1内にあります。
  5. client-group-2 のインターフェイス ge-2/0/1.4 で DHCP スヌーピング サポートを無効にします。
ヒント:

『DHCP ユーザーガイド』を読み、DHCP トレースオプションを有効にしたラボを使用して、設定を確認し、理解することをお勧めします。