DHCP 加入者の RADIUS CoA の代替として RADIUS 再認証
RFC 5176、 RADIUS認証ダイヤルインユーザーサービス(RADIUS)への動的認証拡張は、クライアントサービスをアクティブまたは非アクティブ化し、クライアントをログアウトすることなく特定のクライアントセッション特性を変更するために使用されるため、加入者への中断を回避します。状況によっては、中断することなくクライアントセッションサービスと特性を変更する方法として、加入者の 再認証 を使用することが好ましい場合があります。
例えば、以下のカスタマー・デプロイメント・モードでは、セッションの期間中に属性の変更が必要です。
一般家庭の加入者—一般家庭の加入者は、オンライン サービス選択またはプロバイダーへの直接電話によるセッションの一生を通して、サービスプランを変更することがあります。サービスプランの変更は、DHCPクライアントエージェントリモートIDの値を変更することで、DHCPローカルサーバーに反映されます。エージェントリモートIDは、オプション82、サブオプション2、DHCPv4クライアント向け、およびDHCPv6クライアントのオプション37で搬送されます。
再認証が構成されると、サービス プランの変更が検出され、再認証がトリガーされます。新しいサービスプランと変更された属性は、RADIUSサーバーから返され、加入者に対して実装されます。
ビジネス加入者:ビジネス加入者は、特定のセッション中に属性(特にフレームルート)の変更を必要とすることがよくあります。望ましい属性の変更は、サービスプランの変更によって開始されるものではありません。
再認証が構成されている場合、リース更新のネゴシエーションは再認証をトリガーします。属性またはサービスの変更はすべて、RADIUS サーバーからの Access-Accept メッセージで提供され、加入者に対して実装されます。
再認証を使用する 2 つの方法は、再認証の場合よりも多くのセッション特性を変更できます。CoA は、加入者を中断することなく、特性の変更を要求します。加入者をログアウトしてから戻す場合、さらに多くのセッション特性が変わる可能性がありますが、混乱するのは明らかです。
再認証のメリット
CoAリクエストを使用せずに、加入者セッション属性とサービスプランを更新または変更します。
加入者が頻繁に変更を行い、結果として生じるサービスのアクティベーションを簡素化します。
デュアルスタックのシングルセッション構成で、ファミリーごとの再認証を有効にします。
CLI設定またはRADIUS VSAを使用して再認証を制御します。
機能
再認証は、DHCPv4 と DHCPv6 の両方でサポートされています。これは、DHCP ローカル サーバーが DHCP クライアントから更新、再バインド、検出、または要求メッセージを受信したときにトリガーできます。検出および要求メッセージは、Junos OS リリース 18.1R1 以降の再認証をサポートします。検出および送信要求メッセージのサポートとは、クライアントがバインドされた CPE を再起動し、クライアントがそれらのメッセージの 1 つを送信してセッションをバックアップする場合、再認証によって加入者向けに行われた更新を取得することを意味します。
再認証の動作は、以下のように決定されます。
ステートメントは
reauthenticate lease-renewal
、サポートされる 4 つのメッセージのいずれかを受信したときに再認証がトリガーされるように指定します。ステートメントでは
reauthenticate remote-id-mismatch
、再認証がトリガーされるのは、受信したメッセージに DHCP クライアントのエージェント リモート ID の値の変更が含まれている場合のみです。属性値には加入者サービスプランの名前が含まれるため、値の変更は加入者のサービス変更を示します。Juniper Networks
reauthentication-on-renew
VSA(26-206)は、ログイン時に加入者向けの RADIUS サーバーからの Access-Accept メッセージの値 1 で返された場合、4 つのメッセージのいずれかを受信したときに再認証をトリガーします。値 0 を指定すると、再認証が無効になります。VSA値は、受信するたびにセッションデータベースに保存されます。このVSAが再認証を有効にした後、再認証の各試行で確認されます。値が 0 に変更された場合(つまり、後続の Access-Accept が値 0 で VSA を返した場合)、再認証プロセスはその加入者に対して停止します。CLI 設定(
reauthenticate
ステートメント)と再認証-On-Renew動作は追加的です。VSA による再認証の無効化は、 ステートメントが構成されていない場合reauthenticate
にのみ有効になります。ステートメントがreauthenticate
いずれかのオプションで設定されている場合、VSA値0が上書きされます。CLI 設定がない場合、VSA はそれ自体で再認証を有効にすることができます。
再認証プロセスは、元の認証プロセスとほぼ同じです。再認証がトリガーされると、ローカル サーバー上の jdhcpd プロセスが認証要求を認証要求に送信し、次にアクセス要求メッセージを RADIUS サーバーに送信して 2 つ目の認証を要求します。
再認証要求は、 または none
以外radius
の認証順序では失敗します。認証プロセスは、そのような要求に対して否定確認(NAK)を返します。
このアクセスリクエストには、元の Access-Accept メッセージで返された RADIUS 状態とクラス属性が含まれます。これらの属性により、RADIUSサーバーは、再認証要求とログイン(認証)要求を区別できます。
RADIUSサーバーは、加入者の新しい属性で認証された Access-Accept メッセージを返します。認証プロセスは jdhcpd への変更を含む確認応答(ACK)を送信し、属性を変更した DHCP クライアントに DHCP オファーを送信します。DHCP ネゴシエーションは、 図 1 に示すように通常通りに続行され、加入者セッションは新しい属性値で続行されます。再認証にサービス プランの変更が含まれている場合、 図 2 に示すように、RADIUS サーバーは要求を受け入れた場合、その他の変更された属性を含む新しいプランを返します。サービス プランを変更するプロセス中に DHCP クライアントをホストしている CPE が再起動した場合、新しいプランによる再認証がサポートされ、サービスが中断することはありません。
RADIUSサーバーが再認証要求を拒否した場合、またはタイムアウトすると、authdはNAKをjdhcpdに送信し、含まれているエラーコードを確認します。エラー コードにタイムアウトが示されている場合、jdhcpd は ACK を DHCP クライアントに送信し、加入者セッションは元の属性とサービスで維持されます。その他のエラーコードについては、jdhcpdはDHCPv4 NAKまたはDHCPv6 REPLY(ライフタイム値を0に設定)を論理NAKとして送信し、加入者のログアウトを開始して、セッションデータベースから加入者を削除します。
表 1 は、同じ加入者に対して異なるリクエスト タイプが既に進行中の場合に、認証された要求を処理する方法を示しています。
申請中 |
同じ加入者に対して受信した追加リクエスト |
アクション |
---|---|---|
再認証 |
Coa |
認証はNAKでCoAに応答します。 |
Coa |
再認証 |
認証されたキューは、CoA が処理されるまで再認証要求をキューに入れ、再認証要求を処理します。 |
再認証 |
切断 |
認証は、NAKで切断に応答します。 |
切断 |
再認証 |
認証はNAKで再認証要求に応答し、加入者のログアウトを続けます。 |
ネットワーク ファミリーは再認証の一環として終了または再認証されないため、加入者のコンテンツは加入者のセキュア ポリシー ミラーリングに関して再評価されません。再認証の処理中に変更される可能性のある属性を加入者のセキュア ポリシー ミラーリングのトリガーとして使用しないでください。
再認証により、クライアントのバインド後に DHCPv6 加入者の IP または IPv6 アドレスが変更される場合、DHCPv6 サーバーはアドレス変更要求を評価します。サーバーは、応答PDUのIA(アイデンティティアソシエーション)でステータスコードをクライアントに返します。Junos OS リリース 18.4R1 以降、DHCPv6 サーバーがアドレスの問題を検出すると、以前にサポートされていた NoAddrsAvail および NoPrefixAvail のコードに加えて NotOnLink のステータス コードがサポートされます。これらのステータス コードは、次のように定義されます。
NoAddrsAvail (2)— サーバーは、クライアント要求で IA のアドレスを割り当てることができません。アドレスと NoAddrsAvail を持たない IA を返します。
NotOnLink(4)—サーバーは、クライアント要求内の任意のIA内の1つ以上のアドレスのプレフィックスが、クライアントに接続するリンクに適していないと判断します。このコードは、再認証に失敗した場合(RADIUSアクセス拒否)にも使用されます。
NoPrefixAvail (6)— サーバーには、クライアント要求の IA に使用可能なプレフィックスがありません。
クライアントが NotOnLink ステータス コードを受信した場合、アドレスなしで別のリクエストを送信することも、ネゴシエーション プロセスを再開することもできます。要求を送信した場合、DHCPv6 ローカル セラは要求を無視し、新しい再ネゴシエイションが開始することを期待します。
デュアルスタック加入者
Junos OS リリース 18.1R1 より前のリリースでは、デュアルスタック DHCP 加入者は独立したクライアント セッションとして扱われます。各スタックは、新しいサービスを個別に更新して取得します。
Junos OS Release 18.1R1以降、デュアルスタックのシングルセッション加入者向けに、ファミリー単位の認証と再認証がサポートされています。通常、デュアルスタックの単一セッション加入者は、1:1 アクセス モデルで独自の VLAN を備えた家庭です。この世帯は、セッションデータベース内で単一のセッションを持つ単一の加入者として表されますが、DHCPv4とDHCPv6の各ファミリーに1つずつ、2つのDHCPバインディングがあります。その結果、認証はセッションログインの各ファミリとして個別の Access-Request を送信するか、再認証を試みます。
ファミリー単位の認証は、加入者セッションが DHCP の init 状態にある間に、検出または要求メッセージを受信した場合に発生します。
ファミリー単位の再認証は、再認証とオンデマンド アドレス割り当ての両方が構成され、DHCP バインド状態にあるファミリー セッションに対して更新、再バインド、検出、または要求メッセージを受信した場合に発生します。
オンデマンド アドレスの割り当てにより、ログイン時にアドレスが各ファミリーに個別に割り当てられます。デュアルスタック、シングルセッション加入者、またはファミリー単位の認証と再認証を有効にできない場合は、オンデマンド アドレスの割り当てを構成する必要があります。再認証の場合、これは CLI で設定されているか、再認証-オン更新 VSA(26-206)を使用しているかに関係なく当てはまります。
認証と再認証の両方がファミリーごとに処理されます。プロセスをトリガーする最初のファミリーは、もう一方のファミリーが認証または再認証をトリガーする前に、 に参加します。2番目のファミリからのメッセージは、最初のファミリがバインドされるまで無視されます。その後、2 番目のファミリー要求が処理されます。
デュアルスタックの単一セッションファミリーの1つのみログインすると、1つの認証のみが処理されます。再認証は、1 つのクライアント ファミリーに対してのみ処理されます。
認証プロセスは、属性をDHCPv4またはDHCPv6ファミリーに属するものとして分類し、それに応じてタグ付けします。認証と再認証の両方について、リクエストを開始するファミリーに応じて、認証にはDHCP-Options VSA(26-55)またはDHCPv6-Options VSA(26-65)のいずれかが含まれます。その設定に応じて、RADIUSサーバーは、要求を開始したファミリー( 要求ファミリー)または両方のファミリーの情報を返す場合があります。
認証が Access-Accept メッセージで属性を受信すると、ファミリー タグによって、要求元ファミリーまたは他の(要求なし)ファミリーに対応する属性を決定できます。要求するファミリーの属性のみがセッションデータベースに書き込まれます。
再認証要求の場合、authd は返された属性をセッション データベースと比較して、RADIUS サーバーで変更が行われたかどうかを判断します。繰り返しになりますが、要求側ファミリーに対応する変更のみがセッションデータベースに書き込まれるので、古い値が上書きされます。
再認証時の変更は、以下のように処理されます。
属性(アドレス以外)— 認証によって要求側ファミリーに対してこれらの属性の 1 つ以上が変更されたと判断されると、新しい値がセッション データベースに保存されます。認証が jdhcpd に通知した後、新しい属性値を持つ ACK を DHCP クライアントに送信します。
アドレスまたはアドレスプール-認証が要求元ファミリーの変更を検出すると、DHCPローカルサーバーに通知し、その後、NAK(DHCPv4)または論理NAK(DHCPv6)をDHCPクライアントに送信します。
要求側ファミリーがバインドされている唯一のファミリーである場合、jdhcpd は正常に加入者をログアウトします。jdhcpd が要求元のファミリーも拘束されている場合、jdhcpd は要求元のファミリーを無効化しますが、要求していないファミリーの拘束力はそのままにしておき、問い合わせのないファミリーへのサービスを中断することはありません。要求側ファミリーの非アクティブ化は、その後の非要求ファミリーによる再認証のトリガーには影響しません。
非アクティブ化されたファミリが、その後 Discover または request メッセージを送信してログインし直すと、通常通りに再認証を求める Access-Request が送信され、Access-Accept で受信した新しいアドレスが加入者に適用されます。
RADIUSサーバーがアクセス拒否メッセージで認証または再認証要求に応答した場合、認証されたサーバーはDHCPローカルサーバーに通知し、次にNAK(DHCPv4)または論理NAK(DHCPv6)をDHCPクライアントに送信します。要求するファミリーは正常に終了します。ファミリーは非アクティブ化され、加入者はログアウトされます。その後、質問なしファミリーは非アクティブ化され、ログアウトされますが、クライアントには終了の通知はありません。
要求のないファミリでライブ性検知が実行されている場合、クライアントはファミリが終了したときに接続の喪失を検出し、その後 DHCP ローカル サーバーに検出メッセージまたは要求メッセージを送信します。ただし、ライブ性検出が実行されていない場合、再バインド時間(T2、オプション59)が終了し、サービスが失われるまで、クライアントは接続の損失を検出しません。リース期間によっては、時間がかかる場合があります。
両方のアドレスファミリーのライブネス検出を設定して、接続損失を検出する時間を短縮します。 ライブネス検出の構成については、 DHCP ライブネス検出の概要 を参照してください。
パケット フロー
次の図は、DHCP クライアント、DHCP サーバー、RADIUS サーバー間の加入者セッションの最初のネゴシエーションのシーケンスを示しています。クライアントのサービスプランは、DHCPv4オプション82、サブオプション2、またはDHCPv6オプション37に含まれるリモートIDの2番目の部分文字列で指定されます。
初期ネゴシエーション
図 1 は、DHCP クライアント、DHCP サーバー、RADIUS サーバー間の最初のネゴシエーションにおける手順の順序を示しています。図では、以下の用語を使用しています。
CPE —加入者宅内機器(DHCP クライアントまたは加入者として機能)。
OLT—光ラインターミネーター—たとえば、DSLアクセスマルチプレクサ(DSLAM)またはその他のアグリゲーションデバイス。
MX シリーズ デバイス — DHCP サーバーとして機能します。
再認証でサポートされる RADIUS 属性
表 2 は、RADIUS Access-Accept メッセージで受信した場合に再認証時に処理できる RADIUS 標準属性と VSA を示し、認証ハンドルによる属性の変更について説明しています。属性処理は、CoA 要求処理と一貫しています。再認証する加入者セッションの特性は、Access-Acceptメッセージで新しい値または新しい属性を受信した場合にのみ変更されます。
属性番号 |
属性名 |
処理の結果 |
---|---|---|
8 |
フレーム IP アドレス |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
22 |
フレームルート |
新しい値は、加入者セッションデータベースに保存されます。古いデータが付加されます。 |
24 |
状態 |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
25 |
クラス |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-4 |
プライマリ DNS |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-5 |
セカンダリDNS |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-6 |
プライマリ-WINS |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-7 |
セカンダリ WINS |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-55 |
DHCP オプション |
値は、加入者のDHCP設定の変更を処理するためにDHCPローカルサーバーに送信されます。 |
26-65 |
サービスのアクティブ化 |
認証プロセスでは、VSA 内のサービスのリストと、その加入者セッションで既にアクティブになっているサービスを比較します。
例えば、サービスAとBがセッション上でアクティブであるが、VSAに含まれるサービスBとC.サービスAはVSAリストになく、非アクティブ化されている。サービス C はリストに登録されていますが、現在はアクティブでないので、認証によって C がアクティブになります。サービス B はどちらも既にアクティブになっているため、リスト上でもアクティブなままになります。 |
26-161 |
IPv6-Delegated-Pool-Name |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
26-206 |
再認証-オン更新 |
値が 1(有効)の場合、認証された値がまだ存在しない場合、加入者セッション データベースに値が追加されます。 値が 0(無効)で、値が 1 がすでにデータベースに存在する場合、認証はデータベース値を 0 に設定します。 メッセージ内の値が見つからないか無効で、値がすでにデータベースに存在する場合、認証はデータベースから値を削除します。 |
26-207 |
DHCPv6 オプション |
値は、加入者のDHCP設定の変更を処理するためにDHCPv6ローカルサーバーに送信されます。 |
88 |
フレームプール |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
97 |
Framed-IPv6-Prefix |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
100 |
フレーム型 IPv6 プール |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
123 |
委任された IPv6 プレフィックス |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |
168 |
フレーム型 IPv6 アドレス |
新しい値は、加入者セッションデータベースに保存されます。古いデータが上書きされます。 |