RADIUS サーバーの IP プール構成

RADIUS サーバーでは、IP アドレス・プールから IP アドレスを動的に割り当てることができます。

IP アドレス割り当ては許可プロセスの一部であり、認証の後に実行されます。 システム管理者はユーザーごとに固有の IP を割り当てる必要があります。 ユーザーに IP アドレスを動的に割り当てるために、RADIUS サーバーは次の 3 つのオプションを提供します。

  • フレーム・プール属性
  • ベンダー固有属性の使用
  • RADIUS サーバー側の IP プーリング

フレーム・プール属性

IP プール poolname は Network Access Server (NAS) で定義する必要があります。 RADIUS サーバーが Access-Accept パックで Framed-Pool 属性 (タイプ 88 属性) を送信するためには、NAS が RFC2869 準拠でなければなりません。 システム管理者は、グローバル default.auth ファイルまたは RADIUS サーバー上の user.auth ファイルに Framed-Pool 属性を組み込むことによって、NAS を構成し、ユーザーの許可属性を更新する必要があります。 RADIUS サーバーのディクショナリー・ファイルには次の属性が含まれています。

ATTRIBUTE    Framed-Pool    88       string

NAS が複数のアドレス・プールを使用できない場合、NAS はこの属性を無視します。 NAS 上のアドレス・プールには IP アドレスのリストが含まれます。 NAS は、指定されたプールで定義されている IP アドレスの 1 つを選出してユーザーに割り当てます。

ベンダー固有属性

独立系ソフトウェア・ベンダー (ISV) の製品の中には、Framed-Pool 属性を使用できなくても IP アドレス・プールを定義できるものがあります。 RADIUS サーバーでは、ベンダー固有属性 (VSA) モデルを使用して、そのようなアドレス・プールを使用することができます。 例えば、Cisco NAS は、Cisco-AVPair と呼ばれる属性を提供しています。 RADIUS サーバーのディクショナリー・ファイルには次の属性が含まれています。

VENDOR     Cisco           9
ATTRIBUTE  Cisco-AVPair    1       string

NAS が Access-Request パケットを送信する場合は、 Cisco-AVPair=”ip:addr-pool=poolname とともにこの属性が組み込まれます。ここで、 poolname は NAS で定義されたアドレス・プールの名前です。 要求の認証と許可が行われた後、RADIUS サーバーは Access-Accept パケットで属性を戻します。 次に、NAS は、定義済みのプールを使用して、ユーザーに IP アドレスを割り当てます。 システム管理者は NAS を構成し、ユーザーの許可属性を更新する必要があります。そのために、RADIUS サーバーのグローバル default.auth ファイルまたは user.auth ファイルのいずれかに VSA 属性を組み込みます。

RADIUS サーバー側の IP プーリング

IP アドレスのプールから IP アドレスを生成するように RADIUS サーバーを構成することができます。 その IP アドレスは Access-Accept パケットの Framed-IP-Address 属性で戻されます。

システム管理者は SMIT インターフェースを使用して IP アドレスのプールを定義することができます。 アドレスは、/etc/radius/ippool_def ファイルに維持されます。 Poolnamesetc/radius/clients ファイルで定義されます。 システム管理者は NAS-Port 番号も構成する必要があります。 RADIUS サーバー・デーモンは etc/radius/clients ファイルおよび /etc/radius/ippool_def ファイルの情報を使用して、データ・ファイルを作成します。 デーモンが開始されると、システム管理者は、RADIUS サーバーが停止されるまで poolnames または IP アドレスの範囲を変更または追加することはできません。 RADIUS サーバー・デーモンは、開始されると、構成ファイル (/etc/radius/radius.conf) を読み取り、IP アプリケーションが使用可能 (Enable_IP_Pooling=YES) の場合はグローバル IP フラグ (IP_pool_flag) をオンに設定します。 次に、デーモンは poolname.data ファイルが存在するかどうかを検査します。 存在する場合はそのファイルを読み取り、ファイルの情報を共有メモリーに保持します。 次に、クライアントから受信した要求に基づいて、このファイルと共有メモリーを更新します。 このファイルが存在しない場合は、デーモンは etc/radius/clients ファイルおよび /etc/radius/ippool_def ファイルの情報を使用して、新しいファイルを作成します。 poolname.dataファイルの最大サイズ制限は 256AIX®セグメントサイズ制限)である。 poolname.data ファイルが 256 MB を超える場合、RADIUS サーバーはエラー・メッセージをログに記録して終了します。

デーモンは /etc/radius/ippool_def から IP プール詳細を取得し、プール名ごとに IP アドレスのテーブルを共有メモリーに維持します。 このテーブルには、NAS-IP-address、NAS-port、および IN USE フラグのエントリーがあります。 デーモンは NAS-IP NAS-port をキーとするハッシュ・テーブルを維持します。 複数のユーザーから要求が受信されると、UDP は要求をキューに入れ、デーモンはその要求から NAS-IP および NAS-port データを取得します。 デーモンはそれらの情報を使用して、poolname が該当 NAS に定義されているかどうかを検査します。この場合、etc/radius/clients ファイルから読み取られた情報が検査されます。

デーモンはプールから未使用アドレスの取得を試みます。 未使用アドレスがある場合、そのアドレスは NAS-IP フラグおよび NAS-port フラグにより「使用中」のマークを付けられ、RADIUS サーバーに戻されます。 この IP アドレスはデーモンにより Framed-IP-Address 属性を与えられ、受け入れパケットで NAS に戻されます。 poolname.data ファイルも更新されて、共有メモリー内の情報と同期されます。

プールが存在しない場合、またはプールが存在していても未使用アドレスが残っていない場合は、RADIUS サーバーにエラーが戻されます。 ログ・ファイルにエラー「Could not allocate IP address」が記録され、RADIUS サーバーにより Access-Reject パケットが NAS に送信されます。

エラー・コードは次のとおりです。

  • NOT_POOLED- nas_ipに定義されているプールはありません。
  • POOL_消耗-プールは nas_ipに対して定義されていますが、プール内のすべてのアドレスが現在使用中です。

既に IP アドレスが割り当てられている NAS と NAS-port の組み合わせから認証要求が出されると、デーモンは、IN USE フラグのマークをオフにし、テーブルから NAS-IP-address エントリーおよび NAS-port エントリーを消去して、前の割り当てをプールに戻します。 次に、そのプールから新しい IP アドレスを割り当てます。

RADIUS サーバーが NAS から Accounting-Stop パケットを受信したときも、IP アドレスがプールに戻されます。 Accounting-Stop パケットには NAS-IP-address エントリーと NAS-port エントリーが含まれていなければなりません。 デーモンは、以下の場合に ippool_mem ファイルにアクセスします。

  • 新しい IP アドレスを取得するための要求が出された場合。 IN USE フラグを true に設定します。
  • Accounting-Stop パケットが受信された場合。 IN USE フラグを false に設定して IP アドレスを解放します。

いずれの場合も、共有メモリー・システム・コールにより、共有メモリー内のデータと poolname.data ファイルが同期されます。 システム管理者は、RADIUS サーバー構成ファイル (radiusd.conf) の Enable_IP_Pooling パラメーターを使用して、IP 割り振り ON または OFF を行うことができます。 これは、システム管理者がグローバル default.auth または user.auth ファイルで IP アドレスを割り当てられている場合に役立ちます。 割り当て済みの IP アドレスを使用するには、システム管理者は Enable_IP_Pool = NO を設定する必要があります。

SMIT を使用して作成された /etc/radius/ippool_def ファイルの一例:
プール名 開始範囲 終了範囲
Floor5 192.165.1.1 192.165.1.125
Floor6 192.165.1.200 192.165.1.253
SMIT を使用して作成された /etc/radiusclients ファイルの一例:
NAS-IP 共有秘密鍵 プール名
1.2.3.4 Secret1 Floor5
1.2.3.5 Secret2 Floor6
1.2.3.6 Secret3 Floor5
1.2.3.7 Secret4  
上の例で、NAS-IP-Address 1.2.3.7 のプール名はブランクです。 この場合、この NAS に関しては (グローバル IP_pool_flag = True であっても) IP プーリングは行われません。 Access-Request パケットが受信されると、RADIUS サーバーは認証および許可を実行します。 正常に実行された場合は、要求で定義されている静的 IP アドレス、あるいはグローバル default.auth ファイルまたは user.auth ファイルにある IP アドレスが Access-Accept パケットで送信されます。 この場合、NAS-Port 属性は不要です。

IP プーリングが True の場合は、静的 IP アドレスも、グローバル default.auth ファイルまたは user.auth ファイルの一部として、あるいは Access-Request パケットの一部として、システム管理者により定義されています。 RADIUS サーバーは、この IP アドレスを、該当 NAS 用の定義済みプール名から割り当てられた IP アドレスに置き換えます。 プール内のすべての IP アドレスが使用中の場合は、サーバーはエラー (pool is full) をログに記録し、Access-Reject パケットを送信します。 サーバーは、auth ファイルで定義された静的 IP アドレスを無視します。

NAS-IP から Access-Request パケットが受信されたときに IP プーリングが True であって、有効なプール名が NAS 用に定義されており、しかも NAS-Port が定義されていない場合は、サーバーは Access-Reject パケットを送信します。

デーモンによって作成された Floor5.data ファイルの一例を次に示します。
IP アドレス NAS-IP NAS-Port In Use
192.165.1.1 1.2.3.4 2 1
192.165.1.2 1.2.3.4 3 0
............ ....... .... ....
192.165.1.124 1.2.3.6 1 1
192.165.1.125 1.2.3.6 6 1
デーモンによって作成された Floor6.data ファイルの一例を次に示します。
IP アドレス NAS-IP NAS-Port In Use
192.165.200 1.2.3.4 1 1
192.165.201 1.2.3.4 4 1
............ ....... .... ....
192.165.1.252 1.2.3.4 5 0
192.165.1.253 1.2.3.4 6 1
指定された NAS についてすべての割り当て済み IP アドレスの解放が必要になると (例えば NAS が停止されると)、すべてのプールからすべての IP アドレスを解放して poolname.data ファイルを初期化する必要が生じることがあります。 システム管理者は、SMIT で次のメニューを使用してこれを行うことができます。
  • Clear IP Pool for a Client (クライアントの IP プールを消去する)
  • Clear entire IP Pool (IP プール全体を消去する)

IP プール用 SMIT パネル

「Client Configuration (クライアント構成)」の「Add a Client (クライアントの追加)」では、オプションとして「Pool Name (プール名)」を入力することができます。 この名前には最大 64 文字を使用できます。 「Pool Name (プール名)」をブランクにすると、IP プーリングは実行されず、RADIUS サーバーは、Framed-IP-Address 許可属性を使用してシステム管理者が定義した IP アドレスを割り当てます。

「IP Pool (IP プール)」を選択すると、以下のオプションが表示されます。

  • List all IP Pools (IP プールをすべてリスト)
  • Create an IP Pool (IP プールを作成)
  • Change/Show Characteristics of an IP Pool (IP プールの特性の変更/表示)
  • Delete an IP Pool (IP プールを削除)
  • Clear IP Pool for a Client (クライアントの IP プールを消去する)
  • Clear entire IP Pool (IP プール全体を消去する)

「List all IP Pools (IP プールをすべてリスト)」: このオプションは、「Pool Name (プール名)」、「Start Range IP address (開始範囲 IP アドレス)」、および「Stop Range IP address (停止範囲 IP アドレス)」をリストするために使用します。

「Create an IP Pool (IP プールを作成)」: このオプションは、プール名、開始範囲、および終了範囲を追加するために使用します。 このデータは、ippool_def ファイルの下部に追加されます。 プール名が重複しないように、また IP アドレスの範囲が排反しないように、検査が行われます。 このアクションは、RADIUS サーバー・デーモンが実行中でないときにのみ実行できます。

「Change/Show Characteristics of an IP Pool (IP プールの特性の変更/表示)」: このオプションは、プール名のリストをポップアップ・パネルで表示します。 このパネルから特定プール名を選択する必要があります。 プール名を選択すると、選択された名前のパネルが表示されます。 Enter を押すと、ippool_def ファイル内のそのプール名に関するデータが更新されます。 このアクションは、RADIUS サーバー・デーモンが実行中でないときにのみ実行できます。

「Delete an IP Pool (IP プールを削除)」: このオプションを選択すると、選択できるプール名のリストが表示されます。 プール名を選択すると、 Are You Sure ポップアップ・パネルが表示され、選択したプール名が削除される前に確認が示されます。 rmippool スクリプトが呼び出されて、選択されたプール名が ippool_def ファイルから削除されます。 このアクションは、RADIUS サーバー・デーモンが実行中でないときにのみ実行できます。

クライアントの IP プールのクリア: このオプションは、NAS に属する IP アドレスの IN-USE 項目に 0 のマークを付けます。これは、この NAS のすべての IP アドレスが使用可能になったことを意味します。 このアクションは、RADIUS サーバー・デーモンが実行中でないときにのみ実行できます。

「IP プール全体のクリア」: このオプションを選択すると、 ippool_mem ファイル全体がクリアされる前に確認を提供する Are You Sure ポップアップ・パネルが表示されます。 このアクションは、RADIUS サーバー・デーモンが実行中でないときにのみ実行できます。