DHCP スヌーピング
DHCP(Dynamic Host Configuration Protocol)スヌーピングは、ルーター、スイッチ、またはファイアウォールに接続された信頼できないデバイスからのDHCPメッセージを検証することで、ネットワークセキュリティを強化し、許可されていないDHCPサーバーが信頼できないポートでDHCPOFFERパケットを送信することを防止します。
DHCP スヌーピングのサポート
動的ホスト構成プロトコル(DHCP)は、TCP/IPネットワークで使用されるネットワーク管理プロトコルで、IPアドレスやその他の関連する構成情報をネットワークデバイスに動的に割り当てるために使用します。
DHCP スヌーピングの仕組み
動的ホスト構成プロトコル(DHCP)は、デバイスにIPアドレスを動的に割り当て、不要になったときに再利用できるアドレスをリースします。DHCP経由でIPアドレスを必要とするホストまたはエンドデバイスは、LANを介してDHCPサーバーと通信する必要があります。
次の図は、DHCP スヌーピング プロセスを示しています。
このトポロジーでは、エンドユーザーデバイスが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 リレー エージェントは、DHCP リレー エージェントが IPv4 ネットワークをサポートする方法と同様に、DHCPv6 クライアントと DHCPv6 サーバー間でメッセージを渡します。クライアントとサーバー間に複数の DHCPv6 リレー エージェントが存在するマルチリレー トポロジーでは、スヌーピングにより、介在するリレー エージェントがクライアントからのユニキャスト トラフィックを正しく処理し、サーバーに転送できます。このトポロジーでのスヌーピングには、次のアクションが含まれます。
- DHCPv6 リレー エージェントは、転送テーブル単位で、DHCPv6 UDP サーバ ポートである UDP ポート 547 のフィルタを使用して、受信ユニキャスト DHCPv6 パケットをスヌーピングします。
- 次に、DHCPv6 リレー エージェントは、フィルターによって傍受されたパケットを処理し、パケットを DHCPv6 サーバーに転送します。
DHCP スヌーピングのメリット
- DHCP スヌーピングは、IP アドレスをフィルタリングすることで、追加のセキュリティ層を提供できます。フィルタリングプロセスでは、ネットワークトラフィックを評価して、検証済みの有効なIPアドレスからの通信を許可します。
- DHCPスヌーピングは、間違ったポートに到着するDHCPパケットや不正な内容を持つDHCPパケットをフィルタリングすることで、ネットワーク内の不正なDHCPアクティビティを防ぐことができます。
例:DHCP リレー エージェントの DHCP スヌーピング サポートの設定
次に、DHCP リレー エージェントの DHCP スヌーピング サポートを設定する例を示します。
必要条件
DHCP リレー エージェントを設定します。 拡張DHCPリレーエージェントの概要を参照してください。
概要
この例では、以下の操作を実行して、DHCP リレー エージェントの DHCP スヌーピング サポートを設定します。
デフォルトのDHCPスヌーピング設定を上書きし、グループ frankfurtのインターフェイスのDHCPスヌーピングサポートを有効にします。
DHCP リレー エージェントを設定して、スヌーピングされたパケットを設定されたインターフェイスのみに転送します。
構成
プロシージャ
手順
DHCP スヌーピングの DHCP リレー サポートを設定するには:
DHCP リレー エージェントを構成することを指定します。
[edit] user@host# edit forwarding-options dhcp-relay
DHCP スヌーピングがサポートされているインターフェイスの名前付きグループを指定します。
[edit forwarding-options dhcp-relay] user@host# edit group frankfurt
グループに含めるインターフェイスを指定します。DHCPリレーエージェントは、トラフィックを転送するかドロップするかを決定する際に、これらを設定されたインターフェイスと見なします。
[edit forwarding-options dhcp-relay group frankfurt] user@host# set interface fe-1/0/1.3 upto fe-1/0/1.9
グループのデフォルト設定を上書きすることを指定します。
[edit forwarding-options dhcp-relay group frankfurt] user@host# edit overrides
グループの DHCP スヌーピング サポートを有効にします。
[edit forwarding-options dhcp-relay group frankfurt overrides] user@host# set allow-snooped-clients
[edit forwarding-options dhcp-relay]階層レベルに戻り、転送アクションを設定し、DHCP リレー エージェントが設定されたインターフェイスのみでスヌーピングされたパケットを転送するように指定します。[edit forwarding-options dhcp-relay group frankfurt overrides] user@host# up 2
DHCP リレー エージェントの DHCP スヌーピング パケット転送を有効にします。
[edit forwarding-options dhcp-relay] user@host# edit forward-snooped-clients
スヌーピングされたパケットが設定されたインターフェイス(グループ
frankfurtのインターフェイス)でのみ転送されることを指定します。[edit forwarding-options dhcp-relay forward-snooped-clients] user@host# set configured-interfaces
業績
設定モードから、 show forwarding-options コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。また、次の出力は、グループ frankfurt で設定されたインターフェイスの範囲を示しています。
[edit]
user@host# show forwarding-options
dhcp-relay {
forward-snooped-clients configured-interfaces;
group frankfurt {
overrides {
allow-snooped-clients;
}
interface fe-1/0/1.3 {
upto fe-1/0/1.9;
}
}
}
デバイスの設定が完了したら、設定モードから commit を入力します。
DHCP スヌーピングの有効化
Junos OSデバイスでは、特定のVLANまたはルーティング インスタンスに対してDHCPセキュリティ、DHCPリレー、DHCPサーバー設定を構成すると、DHCPスヌーピング機能が自動的に有効になります。
Junos OSデバイスでは、DHCPスヌーピングを独立した機能として設定できないことに注意してください。
Junos OS では、以下の機能のいずれか、またはすべてを設定した場合、スイッチ、ルーター、ファイアウォールで 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ステートメントを使用して、インターフェイス設定に基づいて、監視されたトラフィックを転送するかドロップするかを決定できます。
- スヌーピングされたトラフィックを評価し、後でトラフィックを転送するかドロップするかを決定するには、
[edit forwarding-options dhcp-relay] 階層レベルでforward-snooped-clientsステートメントを設定します。forward-snooped-clientsオプションは、以下のシナリオで設定できます。- すべてのインターフェイス: すべてのインターフェイスにアクションを適用します。
- 設定されたインターフェイス:インターフェイスグループの一部として設定されたインターフェイスにのみアクションを適用します。
- 非設定インターフェイス:インターフェイスグループに属していないインターフェイスにのみアクションを適用します。
- スヌーピングされたパケットを転送またはドロップするには、
forward-snooped-clientsオプションでそれぞれallow-snooped-clientsまたはno-allow-snooped-clientsを設定します。allow-snooped-clientsを設定すると、有効な加入者が関連付けられていれば、スヌーピングされたパケットが転送されます。no-allow-snooped-clientsを設定すると、有効な加入者が関連付けられていても、スヌーピングされたパケットは破棄されます。
allow-snooped-clientsまたはno-allow-snooped-clientsとforward-snooped-clientsの組み合わせに基づいて、デバイスがDHCPスヌーピングパケットに対して実行するアクションの詳細については、表1および表2を参照してください。
表 1 は、オプションで allow-snooped-clients を設定した場合に、DHCP リレー エージェントによってスヌーピングされたパケットに対してデバイスが実行するアクション forward-snooped-clients を示しています。
| 構成の適用対象 |
設定されたインターフェイスでのアクション |
設定されていないインターフェイスでのアクション |
|---|---|---|
| すべてのインターフェイス |
転送 |
転送 |
| 設定済みインターフェイス |
転送 |
削除 |
| 非設定インターフェイス |
スヌーピングされたDHCPパケットは、DHCPスヌーピングデータベースに加入者エントリーを作成します。 |
転送 |
| 設定なし |
スヌーピングされたDHCPパケットは、DHCPスヌーピングデータベースに加入者エントリーを作成します。 |
削除 |
表 2 は、forward-snooped-clients で no-allow-snooped-clients を設定した場合に、DHCP リレー エージェントによってスヌーピングされたパケットに対してデバイスが実行するアクションを示しています。
| 構成の適用対象 |
設定されたインターフェイスでのアクション |
設定されていないインターフェイスでのアクション |
|---|---|---|
| すべてのインターフェイス |
削除 | 転送 |
| 設定済みインターフェイス |
削除 | 削除 |
| 非設定インターフェイス |
削除 | 転送 |
| 設定なし |
削除 | 削除 |
DHCP リレー エージェントのスヌーピング中、デバイスはグローバル設定に基づいて、BOOTREPLY パケットを転送するか破棄するかを決定します。さらに、リースの更新中に、BOOTPREQUEST パケットが DHCP サーバーに直接ユニキャストされる可能性があり、このパケットもスヌーピングの対象となります。
表 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トレースオプションが有効になっているラボを使用して、設定を確認して理解することをお勧めします。