DHCPスヌーピング(ELS)について
このトピックでは、拡張レイヤー2ソフトウェア(ELS)設定スタイルをサポートする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 Release 18.4R1以降、DHCPスヌーピングは、次のジュニパーシリーズスイッチ、EX2300、EX4600、およびQFX5Kの信頼できるポートで発生します。Junos OS リリース 18.4R1 以前では、これらのデバイスでは、DHCPv6 スヌーピングにのみ当てはまりました。さらに、DHCP スヌーピングは、Junos OS リリース 19.1R1 以降を実行している EX9200 シリーズ スイッチおよび Fusion Enterprise の信頼できるポートでも発生します。
trustedまたはuntrustオプションを指定したoverrides設定ステートメントを使用することで、アクセスポートを信頼済みとして設定したり、トランクポートを信頼できないポートとして設定することができます。
DHCP スヌーピングがイネーブルの場合、サーバからのリース情報を使用して、DHCP スヌーピング テーブル(DHCP バインディング テーブルとも呼ばれます)が作成されます。テーブルには、現在のIP-MACアドレスバインディング、リース時間、バインディングのタイプ、関連付けられたVLANの名前、およびインターフェイスが表示されます。
DHCP スヌーピング テーブルのエントリは、次のイベントで更新されます。
ネットワーク デバイスが IP アドレスを解放したとき(DHCPRELEASE メッセージを送信したとき)。この場合、関連付けられたマッピング エントリがデータベースから削除されます。
VLAN 間でネットワーク デバイスを移動する場合。この場合、通常、デバイスは新しい IP アドレスを取得する必要があります。そのため、VLAN 名を含むデータベース内のエントリが更新されます。
DHCPサーバーによって割り当てられたリース時間(タイムアウト値)が満了したとき。この場合、関連付けられたエントリがデータベースから削除されます。
ネットワーク デバイスがユニキャスト DHCPREQUEST メッセージを送信し、DHCP サーバーから肯定応答を受信してリースを更新するとき。この場合、データベース内のリース時間が更新されます。
ネットワーク デバイスが、最初にリースを付与した DHCP サーバーに到達できない場合、ブロードキャスト DHCPREQUEST メッセージを送信し、応答する DHCP サーバーに再バインドします。この場合、クライアントは新しい IP アドレスを受け取り、バインディングは DHCP スヌーピング テーブルで更新されます。
Junos OS リリース 14.1X53-D35 以降、DHCP サーバーからの固定 IP 割り当てを持つネットワーク デバイスが、異なる MAC アドレスを持つ新しいデバイスに置き換えられた場合、サーバーが DHCPACK メッセージを送信するまで、新しい IP-MAC アドレス バインディングが保存されます。次に、DHCP スヌーピング テーブルのエントリが新しいアドレス バインディングで更新されます。
デフォルトでは、IP-MACバインディングはスイッチを再起動すると失われ、DHCPクライアント(ネットワークデバイスまたはホスト)はバインディングを再取得する必要があります。ただし、 dhcp-snooping-file
ステートメントを設定してデータベース ファイルをローカルまたはリモートに格納することで、バインドを永続化するように構成できます。
特定の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 パケットが信頼できるインターフェイスからのものである場合、スイッチはパケットをネットワーク デバイスに転送します。
ネットワーク デバイスから DHCP リクエスト パケットを送信して、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 |
サーバー |
宣伝する |
DHCPオファー |
クライアント |
要求、更新、再バインド |
DHCPREQUEST |
サーバー |
答える |
DHCPACK/DHCPNAK |
クライアント |
解放 |
DHCPRELEASE |
クライアント |
情報請求 |
DHCPインフォーム |
クライアント |
断る |
DHCPDECLINE |
クライアント |
確認する |
何一つ |
サーバー |
再構成 |
DHCPFORCERENEW |
クライアント |
リレーフォー、リレー応答 |
何一つ |
DHCPv6の迅速なコミット
DHCPv6 ラピッド コミット オプションを使用すると、クライアントとサーバー間のメッセージ交換を短縮できます。サーバーでサポートされ、クライアントによって設定されている場合、このオプションは交換を 4 方向リレーから 2 メッセージ ハンドシェイクに短縮します。ラピッド コミット オプションの有効化の詳細については、 DHCPv6 ラピッド コミットの設定(MX シリーズ、EX シリーズ)を参照してください。
ラピッドコミットオプションが有効な場合、メッセージの交換は次のようになります。
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インターフェイスは、RVI(Routed VLAN Interface)として設定され、これは統合型ルーティングおよびブリッジング(IRB)インターフェイスとも呼ばれます。トランク インターフェイスはデフォルトで信頼されています。
スイッチは、次の 2 つのシナリオでリレー エージェントとして動作できます。
DHCP サーバーとクライアントは異なる VLAN にあります。
スイッチはルーターに接続され、ルーターはDHCPサーバーに接続されます。 図4を参照してください。
DHCP スヌーピング データベースへの静的 IP アドレスの追加
スタティック(固定)IP アドレスを追加し、DHCP スヌーピング データベースの固定 MAC アドレスにバインドできます。これらのバインディングはデータベース内で静的というラベルが付けられ、DHCP スヌーピングのプロセスを通じて追加されたバインディングには動的というラベルが付けられます。DHCPv6 では、静的 IPv6 アドレス割り当ても使用できます。設定の詳細については、 DHCPスヌーピング用の静的DHCP IPアドレスの設定を参照してください。
.
変更履歴テーブル
機能のサポートは、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がプラットフォームでサポートされているかどうかを判断します。
[edit vlans vlan-name forwarding-options dhcp-security]
で
dhcp-security
CLI ステートメントを設定することで、他のポート セキュリティ機能を有効にせずに VLAN で DHCP スヌーピングまたは DHCPv6 スヌーピングを設定できます。