DHCPスヌーピング(ELS)について
このトピックでは、ELS(拡張レイヤー 2 ソフトウェア)設定スタイルをサポートする EXシリーズ スイッチで Junos OS を使用する場合に、動的ホスト構成プロトコル(DHCP)スヌーピングを有効にする方法について説明します。スイッチがELSをサポートしていないJunos OSソフトウェアを実行している場合、 DHCPスヌーピング(非ELS)についてを参照してください。ELSの詳細については、「 拡張レイヤー2ソフトウェアCLIの使用」を参照してください。
DHCP スヌーピングにより、スイッチング デバイス(スイッチまたはルーター)が、スイッチング デバイスに接続された信頼できないデバイスから受信した DHCP メッセージを監視できます。VLAN で DHCP スヌーピングが有効になっている場合、システムは VLAN に関連付けられた信頼できないホストから送信された DHCP メッセージを調べ、その IP アドレスとリース情報を抽出します。この情報は、DHCP スヌーピング データベースの構築と維持に使用されます。このデータベースを使用して検証できるホストのみが、ネットワークへのアクセスを許可されます。
DHCP スヌーピングの基本
DHCPはIPアドレスを動的に割り当て、デバイスにアドレス をリース することで、割り当てられたデバイスで不要になったアドレスを再利用できます。DHCP 経由で取得した IP アドレスを必要とするホストおよびエンド デバイスは、LAN 経由で DHCP サーバーと通信する必要があります。
DHCPスヌーピングは、信頼できるDHCPサーバー(サーバーは信頼できるネットワークポートに接続されている)によってダウンストリームネットワークデバイスに割り当てられた有効なIPアドレスを追跡することで、ネットワークセキュリティの守護者として機能します。
デフォルトでは、スイッチ上のすべてのトランク ポートは信頼されており、DHCP スヌーピングに対してすべてのアクセス ポートは信頼されていません。
Junos OS リリース 18.4R1 以降、DHCP スヌーピングは、次のジュニパー シリーズ スイッチ、EX2300、EX4600、QFX5K の信頼できるポートで発生します。Junos OS リリース 18.4R1 より前の方法では、これらのデバイスについては、DHCPv6 スヌーピングにのみ適用されていました。さらに、DHCPスヌーピングは、Junos OS リリース19.1R1以降を実行しているEX9200シリーズスイッチとFusion Enterpriseの信頼できるポートで発生します。
trustedまたはuntrustedオプションのいずれかを指定したoverrides設定ステートメントを使用すると、アクセスポートをtrusted、またはトランクポートをuntrustedとして設定できます。
DHCP スヌーピングが有効な場合、サーバーからのリース情報を使用して、DHCP スヌーピング テーブル(DHCP バインディング テーブルとも呼ばれる)が作成されます。この表は、現在のIP-MACアドレスバインディング、リース期間、バインディングのタイプ、関連付けられたVLANおよびインターフェイスの名前を示しています。
DHCP スヌーピング テーブルのエントリーは、以下のイベントで更新されます。
ネットワーク デバイスが IP アドレスを解放したとき(DHCPRELEASE メッセージを送信するとき)。この場合、関連付けられたマッピング エントリがデータベースから削除されます。
ネットワーク デバイスを 1 つの VLAN から別の VLAN に移動する場合。この場合、通常、デバイスは新しいIPアドレスを取得する必要があります。そのため、VLAN 名を含むデータベース内のエントリーが更新されます。
DHCPサーバーによって割り当てられたリース時間(タイムアウト値)が期限切れになったとき。この場合、関連付けられたエントリはデータベースから削除されます。
ネットワーク デバイスがユニキャスト DHCPREQUEST メッセージを送信し、DHCP サーバーから肯定的な応答を受信してリースを更新するとき。この場合、データベースのリース期間が更新されます。
ネットワーク デバイスは、最初にリースを許可した DHCP サーバに到達できない場合、ブロードキャスト DHCPREQUEST メッセージを送信し、応答した DHCP サーバに再バインドします。この場合、クライアントは新しいIPアドレスを受信し、バインディングがDHCPスヌーピングテーブルで更新されます。
Junos OS リリース 14.1X53-D35 以降、DHCP サーバーからの固定 IP 割り当てを持つネットワーク デバイスが、異なる MAC アドレスを持つ新しいデバイスに置き換えられた場合、新しい IP-MAC アドレス バインディングは、サーバーが DHCPACK メッセージを送信するまで保存されます。その後、DHCP スヌーピング テーブルのエントリが新しいアドレス バインディングで更新されます。
デフォルトでは、スイッチを再起動するとIP-MACバインディングが失われ、DHCPクライアント(ネットワークデバイス、またはホスト)はバインディングを再取得する必要があります。ただし、データベース・ファイルをローカルまたはリモートで保存するようにステートメントを設定する dhcp-snooping-file
ことで、バインディングを永続するように構成できます。802.1xダイナミックVLANを設定して有効にすると、DHCPスヌーピングエントリーも削除されます。このため、DHCP サーバーは、クライアントのリース情報を保存し、クライアントを再起動した後でも予測可能な IP アドレスを提供するように構成することをお勧めします (DHCP 永続化)。
特定の VLAN からのものだけを DHCP サーバーの応答をスヌーピングするようにスイッチを設定できます。これにより、DHCP サーバー メッセージのなりすましが防止されます。
DHCP スヌーピングのイネーブル化
DHCP スヌーピング機能を使用する場合は、DHCP スヌーピング機能の有効化について理解しておくことが重要です。
Junos OS デバイスでは、DHCP スヌーピング機能を独立した機能として設定することはできません。デバイスの特定のVLANにDHCPセキュリティを設定するたびに、そのVLANでDHCPスヌーピングが自動的に有効になり、タスクが実行されます。
例えば:
- 特定のVLANでDHCPセキュリティを有効にすると、そのVLANでDHCPスヌーピングが自動的に有効になります。
Junos OSは、スイッチでDHCPスヌーピングを有効にします。
任意のポートセキュリティ機能に以下のオプションを設定すると、
dhcp-security
ステートメントを [edit vlans vlan-name forwarding-options
] 階層レベルで取得します。
Junos OS リリース 17.1 以前では、[] 階層内でedit vlans vlan-name forwarding-options
以下のポートセキュリティ機能のいずれかを設定すると、Junos OS は DHCP スヌーピングを自動的に有効にしていました。
- ダイナミック ARP インスペクション(DAI
- IPソースガード
- DHCP オプション 82
- 静的 IP
Junos OS リリース 17.1R1 以降では、他のポート セキュリティ機能を有効にせずに、VLAN 上で DHCP スヌーピングまたは DHCPv6 スヌーピングを設定できるようになりました。DHCP スヌーピングを有効にするには、次の設定ステートメントを使用します。
[set vlans vlan-name forwarding-options dhcp-security
]です。
DHCP スヌーピングを無効にするには、設定から ステートメントを削除する dhcp-security
必要があります。他のポート セキュリティ機能を無効にしても、DHCP スヌーピングは自動的にディセーブルになりません。
DHCP スヌーピング プロセス
DHCP スヌーピング プロセスは、以下の手順で構成されています。
VLANに対してDHCPスヌーピングが有効になっている場合、そのVLAN内のネットワークデバイスから送信されたDHCPパケットはすべてDHCPスヌーピングの対象となります。最終的なIP-MACバインディングは、DHCPサーバーがDHCPACKパケットをDHCPクライアントに送信するときに発生します。
ネットワーク デバイスは、DHCPDISCOVER パケットを送信して IP アドレスを要求します。
スイッチは、パケットをDHCPサーバーに転送します。
サーバーは、アドレスを提供するためにDHCPOFFERパケットを送信します。DHCPOFFERパケットが信頼できるインターフェイスからのものである場合、スイッチはパケットをネットワークデバイスに転送します。
ネットワーク デバイスは、DHCPREQUEST パケットを送信して IP アドレスを受け入れます。スイッチは、IP-MAC プレースホルダー バインディングを DHCP スヌーピング テーブルに追加します。このエントリは、サーバーからDHCPACKパケットを受信するまでプレースホルダーと見なされます。それまでは、IPアドレスを他のホストに割り当てることができます。
サーバーは、DHCPACK パケットを送信して IP アドレスを割り当てるか、DHCPNAK パケットを送信してアドレス要求を拒否します。
スイッチは、受信したパケットのタイプに応じてDHCPデータベースを更新します。
スイッチがDHCPACKパケットを受信すると、データベース内のIP-MACアドレスバインディングのリース情報を更新します。
スイッチがDHCPNACKパケットを受信すると、プレースホルダーを削除します。
DHCPデータベースは、DHCPREQUESTパケットが送信された後にのみ更新されます。
クライアントへの IP アドレスの割り当て中に DHCP クライアントと DHCP サーバーが交換するメッセージに関する一般的な情報については、 Junos OS システムの基本設定ガイド を参照してください。
DHCPv6スヌーピング
Junos OS リリース 14.1X53-D10 以降、EX 9200 スイッチ上の IPv6 パケットに対して DHCP スヌーピングがサポートされています。DHCP スヌーピングは IPv6 パケットでもサポートされています。DHCPv6 スヌーピングのプロセスは DHCP スヌーピングのプロセスと似ていますが、IPv6 アドレスを割り当てるためにクライアントとサーバー間で交換されるメッセージに異なる名前を使用します。 表 1 は、DHCPv6 メッセージとそれに相当する DHCPv4 メッセージを示しています。
送信者 |
DHCPv6 メッセージ |
DHCPv4 と同等のメッセージ |
---|---|---|
クライアント |
強請る |
DHCPDISCOVERの |
サーバー |
宣伝する |
DHCPOFFERの |
クライアント |
要求、更新、再バインド |
DHCPREQUESTリクエスト |
サーバー |
答える |
DHCPACK/DHCPNAK |
クライアント |
解放 |
DHCPRELEASEの |
クライアント |
情報リクエスト |
DHCPINFORM |
クライアント |
断る |
DHCPDECLINE |
クライアント |
確認する |
何一つ |
サーバー |
再構成 |
DHCPFORCERENEWの |
クライアント |
リレー-フォー、リレー-応答 |
何一つ |
DHCPv6 のラピッドコミット
DHCPv6 ラピッド コミット オプションを使用すると、クライアントとサーバー間のメッセージ交換を短縮できます。サーバーによってサポートされ、クライアントによって設定される場合、このオプションは、交換を 4 方向リレーから 2 メッセージ ハンドシェイクに短縮します。ラピッド コミット オプションの有効化について、詳しくは DHCPv6 ラピッド コミットの設定(MXシリーズ、EXシリーズ)を参照してください。
[Rapid Commit] オプションが有効な場合、メッセージの交換は次のようになります。
DHCPv6 クライアントは、アドレス、プレフィックス、およびその他の設定パラメータの迅速な割り当てを優先する要求を含む SOLICIT メッセージを送信します。
DHCPv6サーバーが迅速な割り当てをサポートしている場合、割り当てられたIPv6アドレスとプレフィックス、およびその他の設定パラメータを含むREPLYメッセージで応答します。
DHCP サーバー アクセス
DHCPサーバーへのスイッチのアクセスは、次の3つの方法で構成できます。
スイッチ、DHCPクライアント、DHCPサーバーはすべて同じVLAN上にあります
スイッチ、DHCPクライアント、DHCPサーバー がすべて同じVLANのメンバーである場合、 DHCPサーバーは次の2つの方法のいずれかでスイッチに接続できます。
VLAN で DHCP スヌーピングを有効にするには、階層で [edit vlans vlan-name forwarding-options]
dhcp-security ステートメントを設定します。
( 図 1 を参照)。サーバーは、DHCPクライアント(サーバーにIPアドレスを要求しているホストまたはネットワークデバイス)に接続されているスイッチと同じスイッチに直接接続されています。VLAN では、DHCP スヌーピングが有効になり、信頼できないアクセス ポートが保護されます。トランク ポートは、デフォルトで信頼できるポートとして設定されています。
( 図 2 を参照)。サーバは、DHCP クライアントが接続されているスイッチ(スイッチ 1)にトランク ポートを介して接続されている中間スイッチ(スイッチ 2)に接続されています。スイッチ 2 はトランジット スイッチとして使用されています。VLAN では、スイッチ 1 の信頼できないアクセス ポートを保護するために、DHCP スヌーピングが有効になっています。トランク ポートは、デフォルトで信頼できるポートとして設定されています。 図 2 では、ge-0/0/11 が信頼できるトランク ポートになっています。
スイッチはDHCPサーバーとして動作
スイッチでDHCPローカルサーバーオプションを設定すると、スイッチを拡張DHCPローカルサーバーとして機能させることができます。 図 3 では、DHCP クライアントは、信頼できないアクセス ポートを介して拡張 DHCP ローカル サーバーに接続されています。
スイッチはリレー エージェントとして動作
DHCPクライアントまたはDHCPサーバーが(スイッチまたはルーター上の)レイヤー3インターフェイスを介してスイッチに接続されている場合、スイッチはリレーエージェントとして機能します。スイッチ上のレイヤー 3 インターフェイスは、IRB(統合型ルーティングおよびブリッジング)インターフェイスとも呼ばれる RVI(Routed VLAN Interface)として設定されます。トランク インターフェイスはデフォルトで信頼されています。
スイッチは、次の 2 つのシナリオでリレー エージェントとして機能できます。
DHCPサーバーとクライアントは異なるVLANにあります。
スイッチはルーターに接続されており、ルーターはDHCPサーバーに接続されています。 図 4 を参照してください。
DHCP スヌーピング データベースへの静的 IP アドレスの追加
静的(固定)IPアドレスを追加して、DHCPスヌーピングデータベース内の固定MACアドレスにバインドできます。これらのバインディングはデータベースで静的とラベル付けされますが、DHCP スヌーピングのプロセスを通じて追加されたバインディングは動的とラベル付けされます。DHCPv6では、静的IPv6アドレスの割り当ても可能です。設定の詳細については、 DHCPスヌーピング用の静的DHCP用IPアドレスの設定を参照してください。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
[edit vlans vlan-name forwarding-options dhcp-security]
を構成する
dhcp-security
ことで、他のポート セキュリティ機能を有効にせずに VLAN に DHCP スヌーピングまたは DHCPv6 スヌーピングを設定できるようになりました。