DHCP ショート サイクル保護
頻繁な概要セッションまたはクライアントセッションの失敗に対するDHCPショートサイクル保護
高度に拡張されたネットワークでは、セッションが確立される前にかなりの数のDHCPクライアントネゴシエーションが失敗し、ルーターと外部認証サーバーへの負荷が高くなる結果になります。CPE デバイスの中には、失敗時に自動的にネゴシエーションを再試行するデバイスもあれば、再試行の間隔が非常に短いものもあります。悪意のあるクライアントは、頻繁なログイン要求を繰り返し送信することで、認証攻撃を仕掛ける可能性があります。これらのイベントにより、ルーターと外部認証サーバーに大きな負荷が発生する可能性があります。
Junos OSリリース18.2R1以降、DHCPクライアントロックアウトとも呼ばれるDHCPショートサイクル保護により、ネゴシエーションに絶えず失敗し、ネゴシエーションサイクルが短いクライアントや、頻繁に接続を完了しながらログイン後すぐにログアウトするクライアントを特定して一時的にロックアウトすることで、これらの負荷を軽減できます。
特定されたクライアントは、指数関数的に増加する ロックアウト期間のために一時的にロックアウトしてアクセスできないようにします。ルーターは、これらのクライアントがロックアウトされている間、DHCP をドロップし、これらのクライアントからメッセージを検出または要求します。ルーターは、DHCPv4クライアントのクライアント識別子またはDHCPv6クライアントのDHCP固有識別子(DUID)によってクライアントを追跡します。どちらのタイプのクライアント識別子も、クライアントキーと呼ばれます。クライアントキーを使用すると、DHCPサーバーはクライアントをリースおよび設定パラメーターに関連付けることができます。DHCPのショートサイクル保護追跡にクライアントキーを使用することで、ルーターは、1つのクライアントがセッションをネゴシエートするのを防ぎ、同じ論理インターフェイスを使用する他のクライアントがセッションを正常にネゴシエートすることを可能にします。
クライアントの最初のロックアウト期間は短い期間です。ここでの目標は、正規のクライアントに悪影響を与えないようにすることです。たとえば、1 回だけ失敗するクライアントや、定期的にログインして電子メールをチェックしてから、もう一度ログアウトするクライアントなどです。短いサイクル保護は、ネゴシエーションやログインに頻繁に失敗するクライアントを短時間でターゲットにすることで、ルーターの接続処理負荷と外部認証サーバーの認証負荷の両方を軽減します。これは、完了したセッションを優先しないクライアント セッションを延期することで、スループットを向上させる効果があります。
DHCP クライアント セッションの失敗または短時間の原因となる可能性のある状態
クライアント セッションの失敗または短時間の原因となる可能性がある状態は次のとおりです。
RADIUSデータベースに対応するエントリーがない場合や不正なログイン試行が発生した場合に、RADIUSや Diameterなどの外部AAAサーバーからの認証拒否。
ネットワーク障害や設定ミスによるルーターまたは外部認証サーバーのアリーチ可能性。
動的加入者インターフェイスを作成するためのメモリ リソースが不十分。
CPE によるプロトコル ネゴシエーションの失敗。
ログインに成功した直後のクライアントログアウト。このアクションにより、セッションが破棄される前に、完全にネゴシエートされ、設定されたクライアントセッションが作成されます。
DHCP ショートサイクル保護の仕組み
DHCP ショートサイクル保護は、デフォルトでルーターで無効になっています。グローバル、グループ、またはインターフェイスレベルで ステートメントを short-cycle-protection
含めることで有効にすると、ルーターは静的および動的論理インターフェイス上のDHCPセッションに対して以下を実行します。
短サイクル イベントとも呼ばれる短命なクライアント セッションを検出し、以下 のイベントに基づいてクライアントをロックアウトします。
E0: jdhcpd がクライアント セッションをアクティブに宣言した時刻。
E1: jdhcpd がクライアント セッションを宣言した時刻を破棄する必要があります。
E2: jdhcpd がクライアント セッションエントリーをデータベースから削除する時間。
ショート サイクル イベントは、E0 と E1 の間隔が 60 秒以下の場合に発生します。間隔が 60 秒を超えると、ログアウトは正常と見なされます。ルーターがセッションを短命と宣言した場合、時間 E2 時にクライアントがロックアウト データベースに追加されます。
ルーターへの接続を防ぐことで、指定されたDHCPクライアントを一時的にロックアウトします。
ロックアウト中、ルーターは、ロックアウト期間が期限切れになるまで、クライアントからのネゴシエーション パケット(DHCP 検出および要求メッセージ)を破棄します。ロックアウト期間が終了すると、クライアントは接続の通常のネゴシエーションを再開できます。
ステートメントで最小および最大長を指定することで、ロックアウト期間の範囲を
short-cycle-protection
設定することができます。最小値と最大値の両方を指定する必要があります。クライアントの繰り返し短サイクルイベント間の時間を追跡し、後続の短いサイクルイベントのロックアウト時間を増やすかどうかを判断します。イベント間の間隔は、 猶予期間の閾値と比較されます。デフォルトでは、猶予期間の閾値は900秒ですが、その値が900秒を超える場合、自動的に最大ロックアウト時間に設定されます。
その後のネゴシエーションが猶予期間に試行されない場合、クライアントエントリーはロックアウトデータベースから削除されます。
グレース閾値に達する前に後続のネゴシエーションが試みられると、それは別の短いサイクルイベントとして扱われ、ロックアウトペナルティが増加します。ペナルティは、猶予期間内にネゴシエーションが試みるたびに指数関数的に増加します。
最初のロックアウト期間は、設定された最小値に基づいています。追加ペナルティは次のように計算されます。 n は、グレースタイム内に発生する連続したショートサイクルイベントの数です。
ロックアウト時間 = (ロックアウト最小時間) x [2(n-1)]
例えば、最小時間が 1 秒で、最大時間が 300 秒の場合、最初のロックアウト期間は 1 秒です。その後のペナルティは2秒、次に4秒、8秒、16秒、32秒、64秒、128秒、256秒、最後に300秒に増加します。最後のロックアウト期間は、ペナルティがロックアウト範囲の最大値を超えないため、512 秒ではなく 300 秒です。
ロックアウト時間が最大に達した場合、それは、短いサイクル・イベント間の時間が猶予期間の閾値を超えるまで、その後のロックアウト期間ごとにその値のままとなります。
ロックアウト条件の終了
DHCP クライアントがロックアウトされている場合、次のいずれかが発生する場合を 除き 、すべてのロックアウト タイマーが期限切れになるまでロックアウト条件は持続します。
次のいずれかの操作コマンドを発行して、ロックアウト条件を管理者がクリアします。
clear dhcp relay lockout-entries
clear dhcp server lockout-entries
clear dhcpv6 relay lockout-entries
clear dhcpv6 server lockout-entries
ロックアウト中のクライアントセッションが設定されているFPCをリセットします。
ルーティング エンジンをリセットします。
これらのイベントのいずれかが発生すると、jdhcpd はロックアウトを終了し、影響を受けるすべてのクライアント セッションのロックアウト履歴をクリアします。解放されたクライアントは、再びネゴシエートすることができます。保持履歴がないため、ロックアウト期間は、これらのクライアントの 1 つで後続のショート サイクル イベントが発生した場合に最小値から始まります。
動的 VLAN または demux VLAN 論理インターフェイスが で構成されている remove-when-no-subscribers
基本的な物理インターフェイスから削除されると、影響を受けるクライアントのロックアウトは、すべてのタイマーが期限切れになるまで持続します。すべてのタイマーが終了する前に論理インターフェイスが再作成された場合、ロックアウト状態は再作成された論理インターフェイスに適用されます。
DHCP ショート サイクル保護を使用するメリット
ルーターでの過剰な制御プレーンの負荷、および外部権限サーバーでの認証、許可、およびプロビジョニングの負荷を軽減します。
DHCP 制御パケットの処理や、短時間の接続のネゴシエートと終了に必要なリソースを削減します。
セッションが失敗したクライアントまたは短命のクライアントセッションに対するその後の試行を一時的に遅くすることで、セッションが正常に完了し、短時間以上続く可能性があります。
RADIUSや Diameterなどの外部認証サーバーで、これらの接続の認証と終了に必要なリソースを削減します。
同じインターフェイス上の他の DHCP セッションを中断せずに、単一の失敗した DHCP セッションまたは短時間の DHCP セッションのロックアウトを有効にします。
DHCPショートサイクル保護は、それぞれのクライアントIDによって各クライアントセッションを識別するため、ルーターは問題のあるDHCPクライアントのみをロックアウトし、同じインターフェイス上の他のDHCPクライアントが接続を正常にネゴシエートできるようにします。
DHCP ショートサイクル保護の設定
高度に拡張されたネットワークでは、セッションが確立される前にかなりの数のDHCPクライアントネゴシエーションが失敗し、ルーターと外部認証サーバーへの負荷が高くなる結果になります。ルーターで DHCP ショート サイクル保護を有効にして、頻繁にログインし、短時間または継続的に接続できない DHCP クライアントを識別し、その後、クライアントをアクセスからロックアウトし、ロックアウト タイマーが切れるまでこれらのクライアントからの後続のリクエストをドロップできます。頻繁かつ簡単にログインを繰り返すクライアントの場合、最初のロックアウト時間が短く、大きな影響はありません。これらの簡単なログインが続くにつれて、ロックアウト期間は急激に増加します。短時間で頻繁にネゴシエーションやログインに失敗するクライアントをターゲットにすることで、短いサイクル保護がルーターの接続処理負荷と外部認証サーバーの認証、許可、プロビジョニングの負荷を軽減します。
DHCPv4 リレー、DHCPv6 リレー、DHCPv4 ローカル サーバー、DHCPv6 ローカル サーバーのロックアウト期間の範囲を設定できます。すべてのリレーエージェントまたはローカルサーバーインターフェイス、インターフェイスのグループ、またはグループ内の特定のインターフェイスに対して、期間をグローバルに設定できます。DHCPv4リレーおよびローカルサーバーでは、デュアルスタックグループのロックアウトを設定することもできます。
短サイクル保護を有効にする場合、ロックアウト期間の最小期間と最大期間の両方を指定する必要があります。
DHCPv4リレーエージェントのロックアウト範囲を設定するには:
ロックアウトの最小時間と最大時間を指定します。
すべてのDHCPv4リレーエージェントの場合:
[edit forwarding-options dhcp-relay] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv4 リレー インターフェイスの特定のグループについては、以下を行います。
[edit forwarding-options dhcp-relay] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
指定されたDHCPv4リレーインターフェイスのグループ内の特定のインターフェイスの場合:
[edit forwarding-options dhcp-relay] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv4リレーデュアルスタックグループの場合:
[edit forwarding-options dhcp-relay] user@host# set dual-stack-group dual-stack-group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds
DHCPv6リレーエージェントのロックアウト範囲を設定するには:
ロックアウトの最小時間と最大時間を指定します。
すべてのDHCPv6リレーエージェントの場合:
[edit forwarding-options dhcp-relay dhcpv6] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv6 リレー インターフェイスの特定のグループについては、以下を行います。
[edit forwarding-options dhcp-relay dhcpv6] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
指定されたDHCPv6リレーインターフェイスのグループ内の特定のインターフェイスの場合:
[edit forwarding-options dhcp-relay dhcpv6] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv4ローカルサーバーのロックアウト範囲を設定するには:
ロックアウトの最小時間と最大時間を指定します。
すべての DHCPv4 ローカル サーバーの場合:
[edit system services dhcp-local-server] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv4 ローカル サーバー インターフェイスの特定のグループについては、以下を行います。
[edit system services dhcp-local-server] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
指定されたDHCPv4ローカルサーバーインターフェイスのグループ内の特定のインターフェイスの場合:
[edit system services dhcp-local-server] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv4 ローカル サーバー デュアルスタック グループの場合:
[edit system services dhcp-local-server] user@host# set dual-stack-group dual-stack-group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv6ローカルサーバーのロックアウト範囲を設定するには:
ロックアウトの最小時間と最大時間を指定します。
すべてのDHCPv6ローカルサーバーの場合:
[edit system services dhcp-local-server dhcpv6] user@host# set short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCPv6 ローカル サーバー インターフェイスの特定のグループについては、次の手順に従います。
[edit system services dhcp-local-server dhcpv6] user@host# set group group-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
指定されたDHCPv6ローカルサーバーインターフェイスのグループ内の特定のインターフェイスの場合:
[edit system services dhcp-local-server dhcpv6] user@host# set group group-name interface interface-name short-cycle-protection <lockout-max-time seconds> <lockout-min-time seconds>
DHCP ショートサイクル保護の検証と管理
目的
DHCP の短期保護運用に関する情報を表示またはクリアします。
サポートされている show
コマンドおよび clear
コマンドを使用して、DHCP リレー エージェントと DHCP ローカル サーバーの短期保護操作に関する情報を管理および表示します。すべてのロックアウト・エントリーに関する情報、またはデータベース・インデックス番号で識別された個々のエントリーに関する情報のみを表示できます。
アクション
DHCPv4またはDHCPv6リレーエージェントのショートサイクル保護情報を表示するには、
user@host> show dhcp relay lockout-entries (all | index index) user@host> show dhcpv6 relay lockout-entries (all | index index)
DHCPv4またはDHCPv6リレーエージェントのショートサイクル保護情報をクリアするには、
user@host> clear dhcp relay lockout-entries (all | index index) user@host> clear dhcpv6 relay lockout-entries (all | index index)
DHCPv4 または DHCPv6 ローカル サーバーの短サイクル保護情報を表示するには、次の手順に示します。
user@host> show dhcp server lockout-entries (all | index index) user@host> show dhcpv6 server lockout-entries (all | index index)
DHCPv4 または DHCPv6 ローカル サーバーのショート サイクル保護情報をクリアするには、次の手順に示します。
user@host> clear dhcp server lockout-entries (all | index index) user@host> clear dhcpv6 server lockout-entries (all | index index)
意味
これらのshow
コマンドに オプションを含めると、データベース内のall
エントリーに対応するインデックス番号、クライアント識別キー、ロックアウトの状態、現在の状態がオーバーするまでの秒数、現在の状態が有効な期間など、ロックアウトデータベース内の各クライアントエントリーに関する情報が提供されます。 クライアントがロックアウトされた回数を示します
特定のクライアントのロックアウト・データベースから情報を除去する場合、クライアント項目の索引を決定するには、まず、 オプションを付けてall
対応するshow
コマンドを出す必要があります。その後、 コマンドでインデックスをclear
指定できます。
次の例では、DHCPv4 リレー エージェントのすべてのロックアウト クライアント エントリーを表示して特定のクライアントのインデックス番号を検索し、そのエントリのみをクリアして、削除されていることを確認します。
user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 2 00:00:5E:00:53:11 GT 120 780 2 3 00:00:5E:00:53:22 LT 180 2300 1 user@host> clear dhcp relay lockout-entries index 2 user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 3 00:00:5E:00:53:22 LT 180 2300 1
次の例では、DHCPv6 ローカル サーバーのすべてのロックアウト されたクライアント エントリーを表示し、すべてのエントリをクリアして、それらが削除されていることを確認します。
user@host> show dhcp relay lockout-entries all Index Key State Expires(s) Elapsed(s) Count 1 00:00:5E:00:53:00 LT 30 5200 2 2 00:00:5E:00:53:11 GT 120 780 2 3 00:00:5E:00:53:22 LT 180 2300 1 user@host> clear dhcp relay lockout-entries all user@host> show dhcp relay lockout-entries all