メインコンテンツまでスキップ

2. 動作

RADIUS アカウンティングを使用する場合、NAS は通常クライアントとして、RADIUS アカウンティングサーバーはサーバーとして動作する。

2.1. アカウンティングの流れ​

ダイヤルイン利用者がサービスの提供を受け始めると、NAS は Acct-Status-Type を Start に設定したアカウンティング要求パケットを RADIUS アカウンティングサーバーに送信する。このパケットには、セッションを一意に識別するのに十分な情報(User-Name、NAS-IP-Address、NAS-Port、Acct-Session-Id など)を含めるべきである。

RADIUS アカウンティングサーバーが T 秒以内に応答しない場合、NAS はパケットを再送信すべきである。再送信でも応答が得られない場合、NAS は次のアカウンティングサーバーを試すべきである。NAS は、利用可能なすべてのアカウンティングサーバーを設定可能な回数だけ試すまで、アカウンティング要求の送信を続けるべきである。すべてのアカウンティングサーバーから応答がない場合、NAS はアカウンティング情報は重要ではないためその失敗を無視してよい。ただし、NAS がタイムアウト期間内にアカウンティングサーバーからのアカウンティング応答(元のアカウンティング要求の Acct-Session-Id を含まなければならない)を受信した場合、この交換は完了する。

ユーザーセッションが終了し、サービスが停止すると、NAS は Acct-Status-Type を Stop に設定したアカウンティング要求パケットを RADIUS アカウンティングサーバーに送信する。このパケットには、セッションを一意に識別するのに十分な情報とともに、セッションで提供された内容、セッションの長さ、提供された量(入力/出力オクテット数や入力/出力パケット数など)を記述する情報を含めるべきである。

NAS がアカウンティング要求パケットへの応答を受信しない場合、前述のように再送信する。NAS は、応答を受信するか、利用可能なすべてのアカウンティングサーバーを設定可能な回数だけ試すまで、アカウンティング要求の送信を続けるべきである。すべてのアカウンティングサーバーから応答がない場合、NAS はアカウンティング情報は重要ではないためその失敗を無視してよい。

2.2. アカウンティング再送アルゴリズム​

RADIUS アカウンティングサーバーは、特定のセッションのすべてのアカウンティング記録を受信する必要があるかもしれない。再送信されるアカウンティング要求は元の要求とバイト単位で同一である(再送信時に識別子や Request Authenticator は変更されない)可能性があるため、サーバーは重複要求を検出して破棄できる。したがって、NAS は未確認のアカウンティング要求を、アカウンティングサーバーが記録を重複してしまうことを心配せずに再送信できる。

クライアントの再送信アルゴリズムは、RFC 2131 のセクション 4.1 で説明されているアルゴリズムに類似している。クライアントが最初のタイムアウト前に待機する時間は、1 秒(推奨される最小値)から 3 秒の間の乱数 R を選択することで決定され、R は整数でなければならない。その後の各タイムアウトで、クライアントは待機間隔を 2 倍にし、その間隔は再送信回数に依存する。間隔が 120 秒(推奨される最大値)に達すると、再送信アルゴリズムのクライアントは間隔を 120 秒に再設定し、残りの再送信ではその値を維持すべきである。各再送信後にクライアントが待機する時間は以下のとおりである。

R
2R
4R
8R
16R
32R
...

クライアントは、アカウンティング要求への応答を受信するか、N 回(設定可能、N は 5 以上 10 以下であることが推奨される)再送信するまで、再送信を続けるべきである。

2.3. プロキシ​

プロキシアカウンティングサーバー(要求を転送するサーバー)を実装する場合、以下の規則に従わなければならない。

a) NAS から受信したアカウンティング要求の Identifier フィールドは、応答が到着するまで保持されなければならない。それは転送先のアカウンティングサーバーから応答を転送する際に使用される。

b) プロキシは、別のサーバーに要求を転送する際、受信した値(Acct-Status-Type、Acct-Delay-Time、Acct-Session-Id、Acct-Authentic、User-Name、NAS-IP-Address、NAS-Identifier、NAS-Port など)を保持しなければならない。とくに、プロキシは転送時に Acct-Delay-Time の値を保持しなければならない。

c) プロキシは、ローカル設定で指定された転送先に従って、アカウンティング要求を適切なアカウンティングサーバーに転送しなければならない。

d) プロキシが転送したアカウンティングサーバーからアカウンティング応答(Code = 5)を受信したとき、その応答をアカウンティング要求を送信した NAS にそのまま送信しなければならない。

e) プロキシは応答を転送する際、Identifier フィールドを保持しなければならない。このフィールドは、NAS から受信したアカウンティング要求の Identifier フィールドに設定されなければならない。

f) プロキシが N 回(設定可能)の再送信後もアカウンティング要求への応答を受信しなかった場合、NAS から受信したアカウンティング要求の Acct-Session-Id を設定し、その他の属性をローカルで設定したアカウンティング応答(Code = 5)を送り返さなければならない。

g) プロキシは、アカウンティング要求がプロキシされた場合でも、Acct-Status-Type、Acct-Session-Id、Acct-Authentic、User-Name、NAS-IP-Address、NAS-Identifier、NAS-Port の NAS の元の値を保持しなければならない。

h) プロキシは、別のサーバーにアカウンティング要求を転送する際、Acct-Delay-Time の値を保持しなければならない。応答がタイムアウトし、プロキシがローカルで生成したアカウンティング応答を送り返す場合、NAS に送信する前に Acct-Delay-Time に応答待ちに費やした秒数を加算しなければならない。

i) プロキシは、アカウンティング要求が転送される場合でも、Acct-Session-Id の値を保持しなければならない。

j) プロキシがアカウンティング要求を受信して別のサーバーに転送する際、Acct-Delay-Time は、その要求がそのプロキシに到達するまでに待機していた秒数(NAS の再送信回数×NAS の再送信間隔)を表す。Acct-Delay-Time は本書のセクション 4.1 の規定に従って増加させなければならず、プロキシが応答待ちに費やした追加時間は、プロキシが応答を送り返す際に Acct-Delay-Time に加算されなければならない。

k) プロキシは、アカウンティング要求が転送される場合でも、Acct-Authentic の値を保持しなければならない。