Cisco SCMS SM LEGs ユーザ ガイド Release 3.1.6
RADIUS Listener LEG の設定
RADIUS Listener LEG の設定
発行日;2012/01/07 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 2MB) | フィードバック

目次

RADIUS Listener LEG の設定

基本設定

[Radius Listener] セクション

正規表現ユーティリティの概要

サポートされている構文

サポートされていない構文

正規表現例

正規表現処理と RADIUS Listener ログイン レート

RADIUS 属性のマッピングの設定

RADIUS 属性とサブスクライバ ID のマッピング

検証規則

サブスクライバ ID の設定例

サブスクライバ ID としての VSA の設定例

正規表現規則を使用して属性値をストリッピングする設定の例

サブスクライバ ポリシーへの RADIUS 属性のマッピング

RADIUS 属性からデータの抽出

検証規則

RADIUS 属性からデータの抽出例

サブスクライバに対するポリシーの未設定

サブスクライバ IP アドレスへの RADIUS 属性のマッピング

サブスクライバ IP アドレスの設定例

VPN によるサブスクライバ IP アドレスの設定例

NAS デバイスの設定

NAS デバイスの設定:例

RADIUS Listener LEG の設定

ここでは、RADIUS Listener LEG の設定手順について説明します。

RADIUS Listener LEG は、SM コンフィギュレーション ファイル p3sm.cfg ファイルを使用して設定します。このファイルは sm-inst-dir/sm/server/root/config ディレクトリにあります( sm-inst-dir は、SM のインストール ディレクトリです)。

コンフィギュレーション ファイルは、[Radius.Subscriber ID] のように、カッコ付きのタイトルから始まる複数のセクションで構成されています。各セクションには、 parameter=value 形式の複数のパラメータが含まれています。番号記号(#)で始まる行は、注釈行です。

RADIUS Listener LEG の一般的な設定は、[Radius Listener] セクションにあります。その他の RADIUS Listener LEG セクションはすべて [Radius.NAS.nas1] のようにプレフィクス Radius から始まり、最初に注釈行として定義されます。

「基本設定」

「正規表現ユーティリティの概要」

「RADIUS 属性のマッピングの設定」

「NAS デバイスの設定」

基本設定

[Radius Listener] セクション

SM コンフィギュレーション ファイルの [Radius Listener] セクションには、次のパラメータが含まれています。

start

起動時に SM で Radius Listener を実行するかどうかを定義します。

このパラメータに指定できる値は、 yes および no です。デフォルトの値は、 no です。

accounting_port

Radius Listener アカウンティング ポート番号を定義します。

デフォルトの値は、1813 です。

ip

RADIUS Listener のバインド先となる IP アドレス。このパラメータを使用するのは、RADIUS トランザクションに使用される IP アドレスがその SM マシンのメイン IP アドレスではない場合のみです(SM クラスタなど)。

ドット付き表記で任意の IP アドレスを指定できます。デフォルト値は、not set です。

packet_types

分析する RADIUS プロトコル パケット タイプを定義します。

accounting-start accounting-interim accounting-stop をカンマで区切って設定できます。

デフォルト値は、 accounting-start,accounting-interim,accounting-stop です。

次の例は、コンフィギュレーション ファイルの [Radius Listener] セクションの例を示すものです。

[Radius Listener]
# The following parameter defines whether the SM should
# run the RADIUS Listener at startup.
# Receives the values: yes, no. (default no)
start=no
# accounting port number (default 1813)
accounting_port=1813
# RADIUS packet types
packet_types=accounting-start,account-interim,accounting-stop

正規表現ユーティリティの概要

正規表現は、パターン マッチングに関して一部の文字に特殊な意味が与えられている文字ストリングで構成されています。正規表現は、コンピューティングの黎明期から使用されていて、アプリケーション内のテキストの構文解析、解釈、検索と置換について、強力で効率的な方法を提供しています。

「サポートされている構文」

「サポートされていない構文」

「正規表現例」

「正規表現処理と RADIUS Listener ログイン レート」

サポートされている構文

正規表現内では、次の文字に特殊な意味があります。

位置演算子

^ は、行の最初と一致します。

$ は、行の最後と一致します。

\A は、文字列全体の最初と一致します。

\Z は、文字列全体の最後と一致します。

\b は、単語の境界と一致します(Perl5 構文のみ)。

\B は、(\b とは逆に)単語の境界以外と一致します(Perl5 構文のみ)。

\< は、単語の最初と一致します(egrep 構文のみ)。

\> は、単語の最後と一致します(egrep 構文のみ)。

1 文字演算子

. は、任意の 1 文字と一致します。

\d は、任意の 10 進数字と一致します。

\D は、任意の数字以外と一致します。

\n は、改行文字と一致します。

\r は、復帰文字と一致します。

\s は、任意の空白文字と一致します。

\S は、空白文字以外の任意の文字と一致します。

\t は、水平タブ文字と一致します。

\w は、任意の英数字単語の文字と一致します。

\W は、英数字単語以外の文字と一致します。

\x は、文字 x と一致します(x が上記のエスケープ シーケンスの 1 つでない場合)。

文字クラス演算子

[abc] は、 a b c のうちの任意の 1 文字と一致します。

[^abc] は、 a b c 以外の任意の 1 文字と一致します。

[a-z] は、 a から z の範囲にある任意の 1 文字と一致します。

先頭または後続のダッシュは、文字通りに解釈されます。

文字クラス表現内では、構文ビット RE_CHAR_CLASSES がオンの場合以下の順番が特別な意味を持ちます。

[:alnum:] 任意の英数字文字

[:alpha:] 任意の英字文字

[:blank:] 空白または水平タブ

[:cntrl:] 制御文字

[:digit:] 十進数字

[:graph:] 空白、制御文字以外の文字

[:lower:] アルファベットの小文字

[:print:] graph と、さらに空白とタブ

[:punct:] 句読点

[:space:] 改行や復帰を含む空白文字

[:upper:] アルファベットの大文字

[:xdigit:] 有効な十六進数字

サブ表現および後方参照

(abc) は、表現 abc と一致する任意の表現が一致し、サブ表現として保存されます。グループ化にも使用されます。

(?:...) 純粋なグループ化演算子で、内容を保存しません。

(?#...) 組み込みコメントで、エンジンによって無視されます。

\n で 0 < n <10 の場合、n 番目のサブ表現と一致する同じものと一致します。

分岐(変更)演算子

a|b は、表現 a が一致するか、表現 b が一致する表現と一致します。

繰り返し演算子

これらの記号は、従来のアトミック表現で動作します。

? は、直前の表現またはヌル ストリングと一致します。

* は、ヌル ストリングまたは直前表現の任意の繰り返しと一致します。。

+ は、1 つ以上の直前表現の繰り返しと一致します。

{m} は、正確に m 回の 1 文字表現の繰り返しと一致します。

{m,n} は、 m から n 回の先行表現の繰り返しにマッチします。

{m,} は、先行表現の m 回以上の繰り返しと一致します。

最小一致

繰り返し演算子の直後に ? が付いている場合、繰り返し演算子が残りの一致が完了できる最小繰り返し回数で停止します。

先読み

先読みは、入力テキストを消費せずに表現の一部を一致させる機能のことです。これには、次の 2 つの種類があります。

(?=foo) は、 foo が一致するものの入力文字を消費しない位置で一致します。

(?!foo) は、 foo が一致しないものの入力文字を消費しない位置で一致します。

サポートされていない構文

ある種の正規表現ユーティリティは追加のエスケープ シーケンスをサポートしていて、これは未サポート構文のすべてを網羅するリストではありません。

(?mods) インライン化されたコンパイル/実行用修飾子(Perl5)

\G 前の一致の最後(Perl5)

[.symbol.] クラス実行内の照合記号(POSIX)

[=class=] クラス実行内の等価クラス(POSIX)

s/foo/bar/ sed および awk でのスタイル表現(注: これらの表現は API で他の意味で実行される場合もあります。)

正規表現例

次の例は、正規表現ツールを使用した基本的な操作方法を示したものです。

「cisco.com」接尾部を指定した名前(たとえば name@cisco.com)から削除するには、 (.*)@.* という操作規則を定義します。

「cisco.com」接尾部を指定した名前(たとえば name@cisco.com)から削除するには、 .*@(.*) という操作規則を定義します。

縮小が不要な場合、縮小規則 (.*) を定義するか、何も規則を定義しません。

名前の部分一致を検索する(たとえば name@cisco.com から「isco」を検索する)には、 mapping_table.cisco=<value> という一致規則を定義します。

名前の完全一致を検索するには、 mapping_table.cisco=<value> という一致規則を定義します。

空白または存在しない属性値のデフォルト値を定義するには、 mapping_table.^$=<value> を使用します。


) 縮小実行(文字やストリングのストリッピング)時に文字やストリングが入力ストリングで検索されなかった場合、正規表現の結果は空白のストリングになります。以前のバージョンでは、縮小実行(文字やストリングのストリッピング)時に文字やストリングが入力ストリングで検索されなかった場合、正規表現の結果は入力ストリングになっていました。



) 角カッコ「[」または「]」は、正規表現メカニズムによって使用され、コンフィギュレーション ファイルのセクション定義でも使用されます。このいずれかの文字が縮小規則定義(field_manipulation パラメータ)または一致規則定義(mapping_table パラメータ)の一部に使用されている場合、2 つのバックスラッシュ(「\\」)を前に付ける必要があります。



) 例


[Sample Section]
mapping_table.^12\\[user7$=7 will have a full match result to the '12\[user7' string
mapping_table.^12\[user7$=7 will have a full match result to the '12[user7' string
mapping_table.^12[user7$=7 will have a full match result to the '12[user7' string as well.

) カッコ「(」または「)」およびパイプ文字「|」は、単一のバックスラッシュ「\」を前に付けます。たとえば、規則 ^(?:88|99)(.*)$ --input=886 の場合、CLU コマンドは次の例のようになります。


p3radius --test-reduction-rule --reg-exp=^\(?:88\|99\)\(.*\)$ --input=886

正規表現処理と RADIUS Listener ログイン レート

ストリング縮小またはパターン マッチングに正規表現を使用すると、RADIUS Listener ログイン レートのパフォーマンスが低下する可能性があります。正規表現を使用する際に、正しい縮小および一致パターンを定義することが重要です。

正規表現処理時間に影響する要素が 3 つあります。

パターンの複雑さ

縮小またはマッチングさせるための入力ストリングの長さ。ストリングが長くなると、正規表現動作の時間が長くなります。

コンフィギュレーション ファイル内に定義されている縮小および一致規則の合計数

以下の例は、パフォーマンスに大きな影響を与えない正規表現動作を示したものです。

プレフィクスや接尾部の削除 ― フォーマット .*<ストリング>(.*) または (.*)<ストリング>.* の正規表現を使用します。

プレフィクスや接尾部のマッチング ― フォーマット ^<ストリング> または <ストリング>$ の正規表現を使用します。

ログイン レートで正規表現を利用する場合の影響を計算するために、p3radius test-reduction-rule および test-manipulation-rule CLU コマンドが単一縮小/マッチング動作の平均処理時間を算出してくれます。


) 複雑な正規表現パターンを使用すると、パフォーマンスの低下につながります。操作されるストリングの長さに応じて低下が増加します。[] オペランドを .* や (.*) オペランドと同時に使用しないことを強く推奨します。


RADIUS 属性のマッピングの設定

「RADIUS 属性とサブスクライバ ID のマッピング」

「サブスクライバ ポリシーへの RADIUS 属性のマッピング」

「サブスクライバ IP アドレスへの RADIUS 属性のマッピング」

RADIUS 属性とサブスクライバ ID のマッピング


) このセクションで説明する設定作業は任意です。


サブスクライバ ID は、通常、User-Name RADIUS 属性に追加されます。ただし、場合によっては、別の RADIUS 属性を使用することも可能です。たとえば、無線環境で、3GPP-IMSI または 3GPP2-IMSI 属性を使用することができます。デフォルトでは、User-Name 属性を使用します。

RADIUS Listener は、複数の RADIUS 属性を連結して サブスクライバ ID として使用するように設定することができます。

サブスクライバ ID に使用する属性を定義するには、 [Radius.Subscriber ID] および [Radius.Field.<field name>] セクションを設定します。使用する属性を定義するには、 [Radius.Subscriber ID] セクションで次のパラメータを設定します。

fields

RADIUS プロトコル フィールド名を定義します。複数のフィールドを定義する場合、フィールド名の間にカンマを使用します。フィールド名は、スペース文字で開始または終了してはならず、「=」文字を含めることはできません。最大で 3 つのフィールドを定義することができます。

デフォルトの値は、 user_name です。

次に、このパラメータの設定例を示します。

fields=user_name,vpn
 

field_separator

複数のフィールドを連結する場合に使用する文字またはストリングを定義します。

fields パラメータで 3 つの値(user_name、vpn、IP)を定義し、フィールド区切りが定義されています。

field_separator パラメータには、 fields パラメータで定義されているのと同じように、user_name、vpn、および IP が含まれていなければいけません。

最初と 2 番目の属性の間と、2 番目と 3 番目の属性の間にある区切り文字を別にすることができます(例: user_name-vpn::IP )。

区切りは、 :: のようにストリングでもかまいません。

区切りは、 field_separator=user_namevpnIP のように空白のストリングでもかまいません。

デフォルトの値は、 _ です。

次に、値が「-」のパラメータの設定例を示します。

field_separator=user_name-vpn
 

field_manipulation.<フィールド名>=<正規表現>

field_manipulation パラメータは、RADIUS フィールド値の操作方法を定義します。

このパラメータの <フィールド名> 部分は、 fields パラメータによって定義されたフィールドの 1 つです。このパラメータの <正規表現> 部分は、>フィールド名< 部分で使用された縮小正規表現です。

フィールド プロパティ内の各名称に field_manipulation 規則を定義することができます。次に、このパラメータの設定例を示します。

field_manipulation.user_name=(.*)@.*
field_manipulation.vpn=(.*)
 

正規表現規則を使用して選択された文字やストリングに基づいて RADIUS 属性をストリッピングするように、RADIUS Listener を設定することが可能です。これは、属性値のプレフィクスや接尾部からサブスクライバ ID を取得する便利な手法です。

たとえば、サブスクライバを作成するために、 (.*)@.* 正規表現を使用してこの値から文字をストリッピングすることにより、subscriber@domain-name の USERNAME 属性からサブスクライバ ID を取得することができます。同様に、 .*@(.*) 正規表現規則を使用してドメイン名を取得することができます。

fields パラメータによって定義された各フィールドに対して、以下のパラメータで [Radius.Field.<field name>] セクションを定義する必要があります。

radius_attribute

radius_attribute パラメータには RADIUS 属性番号を設定します。VSA(Vendor-Specific Attribute; ベンダー固有属性)の場合には、26(vendor-id;sub-attribute)の値を使用します。たとえば、 26(10415;1) です。

デフォルトの値は、 -1 です。

radius_attribute_type

RADIUS 属性フォーマットに従って radius_attribute_type パラメータを設定します。

このパラメータに指定できる値は、 integer または string です。デフォルトの値は、 string です。

検証規則

RADIUS 属性の縮小に正規表現を使用する場合、以下の検証規則が適用されます。

プロトコル フィールドの数が 3 フィールドを越えてはいけません。

フィールド パラメータで定義されている各フィールドには、[Radius.Field.<field>] に対応するセクションが必要です。

区切り文字が定義されている場合、フィールドの順番がチェックされます。

フィールド パラメータで定義された各フィールドには、単一の縮小正規表現規則がある場合があります。規則が存在する場合、正規表現妥当性チェックが実行されます。

サブスクライバ ID の設定例

サブスクライバ ID 割当オプションの設定方法を示すコンフィギュレーション ファイルの例は次のとおりです。この例では、User-Name および VPN 属性がサブスクライバ ID に割り当てられています。

[Radius.Subscriber ID]
# Field name
fields=user_name,vpn
# Field separator
# "-" is the separator between the user_name and vpn fields.
field_separator=user_name-vpn
[Radius.Field.user_name]
# RADIUS protocol attribute number
radius_attribute=1
# the type of the attribute (type "integer" or "string")
radius_attribute_type = string
[Radius.Field.vpn]
# RADIUS protocol attribute number .
radius_attribute = 5
# the type of the attribute (type "integer" or "string")
radius_attribute_type = integer

サブスクライバ ID としての VSA の設定例

サブスクライバ ID 割当オプションの設定方法を示すコンフィギュレーション ファイルの例は次のとおりです。この例では、3GPP_IMSI ベンダー固有属性がサブスクライバ ID に割り当てられています。

[Radius.Subscriber ID]
# Field name
fields=user_name
[Radius.Field.user_name]
# in case of a vendor specific attribute (VSA)
# when the 'radius_attribute' is set to 26
# configuration for 3GPP_IMSI
radius_attribute = 26(10415;1)
# the type of the attribute (type "integer" or "string")
radius_attribute_type = string

正規表現規則を使用して属性値をストリッピングする設定の例

正規表現規則を使用して属性値のストリッピングを設定する方法を示すコンフィギュレーション ファイルの例は次のとおりです。

[Radius.Subscriber ID]
# Field name
fields=user_name
# Field manipulation
field_manipulation.user_name=(.*)@.*
[Radius.Field.user_name]
# RADIUS protocol attribute number
radius_attribute=1
# the type of the attribute (type "integer" or "string")
radius_attribute_type = string
 

‘john@some-domain.com' に適用される上記の設定は、サブスクライバ ID として "john" を抽出します。

サブスクライバ ポリシーへの RADIUS 属性のマッピング


) このセクションで説明する設定作業は任意です。


RADIUS Listener 内のサブスクライバ ポリシー設定は、以下のいずれかの方法で処理することができます。

RADIUS 属性からデータを抽出します。

RADIUS Listener を介してログオンするすべてのサブスクライバに対するデフォルト値を設定します。

サブスクライバに何らかのポリシーを設定しないでください。

RADIUS 属性からデータの抽出

サブスクライバ ポリシーを使用する RADIUS 属性を定義するには、 [Radius.Property.Package] および [Radius.Field.<field name>] セクションを設定します。使用する属性を定義するには、次のパラメータを設定します。

fields

RADIUS プロトコル フィールド名を定義します。複数のフィールドを定義する場合、フィールド名の間にカンマを使用します。フィールド名は、スペース文字で開始または終了してはならず、「=」文字を含めることはできません。

このパラメータにはデフォルト値がありません。

次に、このパラメータの設定例を示します。

fields=user_name,ip
 

field_separator

複数のフィールドを連結する場合に使用する文字を定義します。

デフォルトの値は、 _ です。

次に、値が「-」のパラメータの設定例を示します。

field_separator=user_name-ip
 

field_manipulation.<フィールド名>=<正規表現>

field_manipulation パラメータは、RADIUS フィールド値の操作方法を定義します。

このパラメータの <フィールド名> 部分は、 fields パラメータによって定義されたフィールドの 1 つです。このパラメータの <正規表現> 部分は、>フィールド名< 部分で使用された縮小正規表現です。

フィールド プロパティ内の各名称に field_manipulation 規則を定義することができます。未設定のフィールド操作がある場合これがデフォルト規則です。次に、このパラメータの設定例を示します。

field_manipulation.user_name=(.*)@.*
field_manipulation.ip=(.*)
 

mapping_table.<regExp>=<property-value>

mapping_table パラメータは、属性値操作、マッチング規則、プロパティ値の結果の間の変換テーブルを定義します。

このパラメータの <regExp> 部分は、正規表現マッチング規則を定義します。このパラメータの <property-value> 部分は、正規表現が一致した場合の整数結果を定義します。

このパラメータにはデフォルト値はありませんが、 mapping_table.^$=<value> という値を使用してデフォルト値を設定することができます。この値は、マッピング結果が空白のストリングの場合に使用されます。

次に、このパラメータの設定例を示します。

mapping_table..*@.*=1
mapping_table..*=2
 

fields パラメータによって定義された各フィールドに対して、以下のパラメータで [Radius.Field.<field name>] セクションを定義する必要があります。

radius_attribute

radius_attribute パラメータには RADIUS 属性番号を設定します。VSA(Vendor-Specific Attribute; ベンダー固有属性)の場合には、26(vendor-id;sub-attribute)の値を使用します。たとえば、 26(10415;1) です。

デフォルトの値は、 -1 です。

radius_attribute_type

RADIUS アトリビュート フォーマットに従って radius_attribute_type パラメータを設定します。

このパラメータに指定できる値は、 integer および string です。デフォルトの値は、 string です。

検証規則

RADIUS 属性の縮小に正規表現を使用する場合、以下の検証規則が適用されます。

プロトコル フィールドの数が 3 フィールドを越えてはいけません。

フィールド パラメータで定義されている各フィールドには、[Radius.Field.<field>] に対応するセクションが必要です。

マッピング テーブル内のプロパティ値は整数です。

"=" は、スペースなしでプロパティ値と連結されます。

妥当性テストは、マッチングおよび縮小に使用される各正規表現に対して実行されます。

RADIUS 属性からデータの抽出例

サブスクライバ ポリシー割当オプションの設定方法を示すコンフィギュレーション ファイルの例は次のとおりです。この例では、VSA がサブスクライバ ポリシーに割り当てられています。これはプレフィクスからストリッピングが実行され、マッピング テーブルを使用して integer タイプに変換されています。

[Radius.Property.Package]
# Field name
fields=user_name,vpn
# Field separator
field_separator=user_name@vpn
# Field manipulation
field_manipulation.user_name=(.*)@.*
# Mapping table
mapping_table..*@.*=1
mapping_table.^$=2
mapping_table..*=3
[Radius.Field.user_name]
# RADIUS protocol attribute number
radius_attribute = 1
# the type of the attribute (type "integer" or "string")
radius_attribute type = string
[Radius.Field.vpn]
# RADIUS protocol attribute number.
# use the following format for VSAs: 26 vendor-id;sub-attribute)
# for example: 26(9;1)
radius_attribute = 26(9;1)
# the type of the attribute (type "integer" or "string")
radius_attribute_type = string

サブスクライバに対するポリシーの未設定

すべての注釈行と共に [Radius.Property.Package] セクションを編集します。番号記号(#)で始まる行は、注釈行です。

サブスクライバ IP アドレスへの RADIUS 属性のマッピング

サブスクライバ IP アドレスは、通常、Frame-IP-Address 属性に基づいていますが、異なる RADIUS 属性に基づくことも可能です。デフォルトでは、Framed-IP-Address 属性が使用されます。

さらに、VPN を介して IP アドレスを使用する環境では、抽出された IP アドレスで使用するために RADIUS Listener LEG が RADIUS 属性からの VPN 情報の抽出をサポートしています。


) 現在、LEG は、VLAN-ID(または「タイプ VLAN の VPN」)で定義された VPN のみに対する、VPN を介したサブスクライバ マッピングをサポートしています。


この LEG のIP アドレスの処理には次のアルゴリズムが適用されます。

1. ユーザに IP 抽出元の属性が設定されている場合、LEG はパケット内でその属性を探します。属性が存在すれば、LEG はその属性をサブスクライバ IP アドレスとして使用します。

2. 属性が存在しない場合や属性が設定されていない場合、LEG は Framed-Route 属性を探します。Framed-Route 属性はいくつか存在することもあります。何らかの Framed-Route 属性が存在すれば、LEG はこれらの属性をサブスクライバ IP アドレスとして使用します。

3. Framed-Route 属性が 1 つも存在しない場合、LEG は Framed-IP-Address 属性と
Framed-IP-Netmask 属性を探します。Framed-IP-Address 属性が存在すれば、LEG はこの属性をサブスクライバ IP アドレスとして使用します。Framed-IP-Address と Framed-IP-Netmask の両方の属性がある場合は、その IP アドレスと IP ネットマスクで表される IP 範囲で操作が実行されます。

4. 上記のいずれでもない場合、LEG は IP アドレスなしでログインを実行します。


) 属性には、通常の RADIUS 属性と VSA のどちらかを設定できます。単一 IP アドレスの場合には属性を整数としてエンコードすることができます。また、ストリングとしてエンコードし、IP-Address/IP-Range 値とすることも可能です。値は、A.B.C.D/E または A.B.C.D の形式にしなければいけません。



) サポートされている Framed-Route 属性の形式は、RFC-2865 に記述されているものと同じです。A.B.C.D/E 形式でルートそのものから始まるストリングで開始し、後ろにスペースを 1 つ入れます。その他の値はスペースの後ろに続けますが、LEG はこのような値を無視します。


サブスクライバ IP アドレスに使用する属性を定義するには、 [Radius.Subscriber IP Address] および [Radius.Field.<field name>] セクションを設定します。使用する属性を定義するには、次のパラメータを設定します。

fields

RADIUS プロトコル フィールド名を定義します。1 つのフィールド名のみ可能です。

デフォルト値は、not set です。

vpn_field

IP アドレスに関連した VPN 情報として使用される RADIUS プロトコル属性フィールド名を定義します。

デフォルト値は、not set です。

fields パラメータによって定義されたフィールドに対して、以下のパラメータで [Radius.Field.<field name>] セクションを定義する必要があります。

radius_attribute

radius_attribute パラメータには RADIUS 属性番号を設定します。VSA(Vendor-Specific Attribute; ベンダー固有属性)の場合には、26(vendor-id;sub-attribute)の値を使用します。たとえば、 26(10415;1) です。

デフォルトの値は、 -1 です。

radius_attribute_type

RADIUS 属性フォーマットに従って radius_attribute_type パラメータを設定します。

このパラメータに指定できる値は、 integer または string です。デフォルトの値は、 string です。

サブスクライバ IP アドレスの設定例

サブスクライバ IP 割当オプションの設定方法を示すコンフィギュレーション ファイルの例は次のとおりです。以下の例では、Framed-IP-Address 属性が使用されます。

[Radius.Subscriber IP Address]
# Field name for IP
fields=frame-ip-address
[Radius.Field.frame-ip-address]
# RADIUS protocol attribute number
radius_attribute=8
# the type of the attribute (type "integer" or "string")
# if type is string a mapping table must be supplied
# below.
# (no default)
radius_attribute_type=integer

VPN によるサブスクライバ IP アドレスの設定例

IP over VPN でのサブスクライバ IP 割当オプションの設定方法を示すコンフィギュレーション ファイルの例は次のとおりです。以下の例では、Framed-IP-Addresss 属性が IP アドレスに使用されていて、cisco-av-pair VSA 属性が VPN 情報に使用されています。

[Radius.Subscriber IP Address]
# RADIUS protocol field name.
fields=ip
# RADIUS protocol attribute field name to be used as the
# VPN information related to the IP address.
vpn_field=vpn
[Radius.Field.ip]
# RADIUS protocol attribute number
radius_attribute = 8
# the type of the attribute (type "integer" or "string")
radius_attribute type = integer
[Radius.Field.vpn]
# RADIUS protocol attribute number.
# use the following format for VSAs: 26 vendor-id;sub-attribute)
# for example: 26(9;1)
radius_attribute = 26(9;1)
# the type of the attribute (type "integer" or "string")
radius_attribute_type = integer

NAS デバイスの設定

RADIUS Listener LEG には、RADIUS メッセージを受け入れる LEG に RADIUS メッセージを送信する RADIUS クライアントまたは NAS デバイスを設定する必要があります。

[Radius.NAS.XXX] セクションに、単一の Network Access System(NAS)を指定します。XXX は NAS の名前です。


ステップ 1 コンフィギュレーション ファイル内の Radius.NAS.XXX セクションの例をコピーします。

パラメータの注釈とセクション ヘッダーを削除します。

ステップ 2 [Radius.NAS.my_name_for_the_NAS] 形式のセクション名を設定します。

ステップ 3 domain IP_address NAS_identifier 、および secret パラメータを設定します。

domain

domain パラメータには有効なサブスクライバ ドメイン名を設定します。

IP_address

IP_address パラメータには、到着する RADIUS メッセージに含まれる NAS IP アドレスを設定します。IP アドレスはドット付表記(xxx.xxx.xxx.xxx)で指定する必要があります。

NAS_identifier

NAS_identifier パラメータには、送信される RADIUS メッセージに含まれる NAS-ID 属性を設定します。

secret

secret パラメータには、この接続用に NAS に定義する秘密鍵を設定します。


 

NAS デバイスの設定:例

次の例は、NAS を設定する方法を示したコンフィギュレーション ファイルの一部です。

[Radius.NAS.Access134]
# Cisco's subscriber domain name
domain = subscribers
# IP address in dotted notation
IP_address = 202.156.24.100
# name of the NAS that exists in the NAS-ID attribute
NAS_identifier =ACCESS134
# secret string
secret = secret123