この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Cisco Prime Access Registrar(CPAR)の認証、許可、アカウンティング(AAA)の設定の手順について説明します。
この手順は、ESCがCPARを管理しておらず、CPARがOpenstackに導入されたVMに直接インストールされているNEWTONバージョンを使用するOpenstack環境に適用されます。
Ultra-Mは、VNFの導入を簡素化するために設計された、パッケージ化および検証済みの仮想化モバイルパケットコアソリューションです。OpenStackは、Ultra-M向けの仮想化インフラストラクチャマネージャ(VIM)で、次のノードタイプで構成されています。
Ultra-Mのアーキテクチャと関連するコンポーネントを次の図に示します。
注:このドキュメントの手順を定義するために、Ultra M 5.1.xリリースが検討されています。
Diameterグローバル設定は、Application-IDや送信元ホストのIPアドレス、レルムなどの適切な値で設定します
Cd /Radius/Advanced/Diameter/ Diameter/ IsDiameterEnabled = TRUE General/ Product = CPAR Version = 7.3.0.3 AuthApplicationIdList = 1:5:16777264:16777265:16777272:16777250 AcctApplicationIdList = 3 TransportManagement/ Identity = aaa01.aaa.epc.mncxx.mccxx.3gppnetwork.org Realm = epc.mncxx.mccxx.3gppnetwork.org WatchdogTimeout = 500 ValidateIncomingMessages = FALSE ValidateOutgoingMessages = TRUE MaximumNumberofDiameterPackets = 8192 ReserveDiameterPacketPool = 0 DiameterPacketSize = 4096 AdvertisedHostName/ 1. aaa01.aaa.epc.mncxx.mccxx.3gppnetwork.org
/etc/hostsは、解決するトランスポート管理およびホスト名で使用されるAAA ID完全修飾ドメイン名(FQDN)に対応するIPアドレスで更新する必要があります
クライアント設定は、トラフィックを受信するDiameterピア(この場合はDRA)で設定します。
Cd /Radius/Clients/ DRA01/ Name = DRA01 Description = Protocol = diameter HostName = x.x.x.x PeerPort = 3868 Vendor = IncomingScript~ = OutgoingScript~ = AdvertisedHostName = UserLogEnabled = FALSE AdvertisedRealm = InitialTimeout = 3000 MaxIncomingRequestRate = 0 KeepAliveTime = 0 AuthSessionStateInASR = No-State-Maintained SCTP-Enabled = FALSE TLS-Enabled = FALSE
FastRulesは、特定の条件に基づいて実行時に対応するサービスをマッピングするために使用されます。条件は、Defaultサービスを選択するFastルールが一致しない場合、diameterメッセージに存在するAttributes Value Pairs(AVP)とその値にに基になります。
Cd /Radius/FastRules/ FastRules/ RuleDefinitions/ Entries 1 to 5 from 5 total entries Current filter: <all> r1/ Name = r1 Description = Used for HSS initiated Flows Protocol = diameter Condition = "1 OR 2" Success = author(3gpp-reverse) Failure = Rule(r2) Attributes/ Entries 1 to 2 from 2 total entries Current filter: <all> 1/ Name = 1 Description = Dictionary = environment Attribute = Diameter-Command-Code Value = 304 2/ Name = 2 Description = Dictionary = environment Attribute = Diameter-Command-Code Value = 305 r2/ Name = r2 Description = Used for PGW Update procedure over S6b Protocol = diameter Condition = "1 AND 2" Success = author(s6b) Failure = Rule(r3) Attributes/ Entries 1 to 2 from 2 total entries Current filter: <all> 1/ Name = 1 Description = Dictionary = Request Attribute = Auth-Application-Id Value = 16777272 2/ Name = 2 Description = Dictionary = request Attribute = Diameter-Command-Code Value = 265 r3/ Name = r3 Description = OPTIONAL used for PGW Termination procedure Protocol = diameter Condition = "1 and 2" Success = author(null) Failure = Rule(r4) Attributes/ Entries 1 to 2 from 2 total entries Current filter: <all> 1/ Name = 1 Description = Dictionary = Request Attribute = Auth-Application-Id Value = 16777272 2/ Name = 2 Description = Dictionary = environment Attribute = Diameter-Command-Code Value = 275 r4/ Name = r4 Description = Used for SWm Termination procedure Protocol = diameter Condition = "1 and 2" Success = author(3gpp-auth) Failure = Rule(r5) Attributes/ Entries 1 to 2 from 2 total entries Current filter: <all> 1/ Name = 1 Description = Dictionary = request Attribute = Auth-Application-Id Value = 16777264 2/ Name = 2 Description = Dictionary = environment Attribute = Diameter-Command-Code Value = 275 r5/ Name = r5 Description = Used for SWm ReAuthorization Protocol = diameter Condition = "1 and 2" Success = Query(query) Failure = Attributes/ Entries 1 to 2 from 2 total entries Current filter: <all> 1/ Name = 1 Description = Dictionary = environment Attribute = Diameter-Command-Code Value = 265 2/ Name = 2 Description = Dictionary = request Attribute = Auth-Application-Id Value = 16777264 Order/ Radius/ Diameter/ 1. r1 Tacacs/
上記のFastRulesが一致しない場合、パケットはデフォルトサービスに従って処理されます。
Cd /Radius/ DefaultAuthenticationService~ = encrypted-imsi-service DefaultAuthorizationService~ = 3gpp-auth
サービス設定では、サービスが認証、認可要件に従って定義されます。
CD /Radius/Services/
Encrypted-IMSI-ServiceはEAP-AKA認証に使用され、Appleデバイス用にIMSI暗号化されます。不要な場合は、EncryptedIMSIパラメーターをFalseに設定します
encrypted-imsi-service/ Name = encrypted-imsi-service Description = Type = eap-aka NumberOfQuintets = 1 AlwaysRequestIdentity = True EnableIdentityPrivacy = False EnableRollingPseudonymSecret = False PseudonymSecret = <encrypted> PseudonymRenewtime = "24 Hours" PseudonymLifetime = Forever NotificationService = Generate3GPPCompliantPseudonym = False EnableReauthentication = False UseOutagePolicyForReauth = False MaximumReauthentications = 16 ReauthenticationTimeout = 3600 ReauthenticationRealm = EnableEncryptedIMSI = True EncryptedIMSIDelimiter = NULL EncryptedIMSIKeyIdDelimiter = , DefaultPrivateKey = xxxxxxxxxxxxxxxxxxxxxxxx QuintetCacheTimeout = 0 AuthenticationTimeout = 120 QuintetGenerationScript~ = UseProtectedResults = False SendReAuthIDInAccept = False Subscriber_DBLookup = DiameterDB DiameterInterface = SWx ProxyService = dia-proxy The 3GPP service is used for Registration/Profiledownload from HSS over SWx; 3gpp-auth/ Name = 3gpp-auth Description = Type = 3gpp-authorization Protocol = diameter IncomingScript~ = OutgoingScript~ = removeuserdata SessionManager = sm1 DiameterProxyService = dia-proxy FetchLocationInformation = False
メディアプロキシサービスはリモートサーバの選択に使用され、ピアポリシーを定義できます。複数のリモートピアがあり、同じグループを作成する場合は、GroupFailoverオプションがMultiplePeerPolicyとして使用されます。また、複数のグループにフェールオーバーするGroupTimeOutPolicyを定義します
dia-proxy/ Name = dia-proxy Description = Type = diameter IncomingScript~ = rmserver OutgoingScript~ = MultiplePeersPolicy = GroupFailover GroupTimeOutPolicy = FailOver ServerGroups/ Entries 1 to 2 from 2 total entries Current filter: <all> Group_Primary_DRA/ Name = Group_Primary_DRA Metric = 0 IsActive = TRUE Group_Secondary_DRA/ Name = Group_Secondary_DRA Metric = 1 IsActive = TRUE
上記のServerGroupsは、/Radius/GroupServers/で定義されています
GroupServers/ Entries 1 to 2 from 2 total entries Current filter: <all> Group_Primary_DRA/ Name = Group_Primary_DRA Description = MultiplePeersPolicy = RoundRobin PeerTimeOutPolicy = FailOver DiaRemoteServers/ Entries 1 to 2 from 2 total entries Current filter: <all> DRA01/ Name = DRA01 Metric = 0 Weight = 0 IsActive = TRUE DRA02/ Name = DRA02 Metric = 1 Weight = 0 IsActive = TRUE Group_Secondary_DRA/ Name = Group_Secondary_DRA Description = MultiplePeersPolicy = RoundRobin PeerTimeOutPolicy = FailOver DiaRemoteServers/ Entries 1 to 4 from 4 total entries Current filter: <all> DRA03/ Name = DRA03 Metric = 0 Weight = 0 IsActive = TRUE DRA04/ Name = DRA04 Metric = 2 Weight = 0 IsActive = TRUE DRA05/ Name = DRA05 Metric = 1 Weight = 0 IsActive = TRUE
S6bサービスは、S6b上でPGW更新手順を処理するために使用されます。
s6b/ Name = s6b Description = Type = 3gpp-authorization Protocol = diameter IncomingScript~ = OutgoingScript~ = SessionManager = DiameterProxyService = dia-proxy FetchLocationInformation = False
3gpp-reverseは、HSSが開始するメッセージを処理するために使用されます。
3gpp-reverse/ Name = 3gpp-reverse Description = Type = 3gpp-reverse-authorization IncomingScript~ = AAARTRCheck OutgoingScript~ = SessionManager = sm1 TranslationService =
クエリサービスは、HSSから受信したPPRに基づいて、更新されたプロファイルをキャッシュから直接取得する再認可手続き中に使用されます。
query/ Name = query Description = Type = diameter-query IncomingScript~ = OutgoingScript~ = removeuserdataquery UpdateSessionLastAccessTime = False SessionManagersToBeQueried/ 1. sm1 AttributesToBeReturned/ 1. Non-3GPP-User-Data 2. Service-Selection
ヌルサービスは、S6b経由でキャッシュされたセッションがないため、S6b終了プロセスに成功した応答を返すだけです。
null/ Name = null Description = Type = null IncomingScript~ = OutgoingScript~ =
リモートサーバは、HSSのようにAAAからパケットが送信されるリモートピアで定義されます。DRAを使用する場合は、クライアントとリモートサーバの両方で同じDRA情報を定義します。
RemoteServers/ DRA01/ Name = DRA01 Description = Protocol = diameter HostName = 10.169.48.235 DestinationPort = 3868 DestinationRealm = epc.mnc300.mcc310.3gppnetwork.org ReactivateTimerInterval = 300000 Vendor = IncomingScript~ = AAAReplaceResultCode OutgoingScript~ = rmdh MaxTries = 3 MaxTPSLimit = 0 MaxSessionLimit = 0 InitialTimeout = 3000 LimitOutstandingRequests = FALSE MaxPendingPackets = 0 MaxOutstandingRequests = 0 DWatchDogTimeout = 2500 SCTP-Enabled = FALSE TLS-Enabled = FALSE AdvertiseHostName = AdvertiseRealm =
セッションマネージャは、セッションキャッシングについて定義し、リソースマネージャと連携して動作します。セッションマネージャは、3gpp-auth、3gpp-reverse、およびクエリサービスで参照されます。
Cd /Radius/SessionManagers/ sm1/ Name = sm1 Description = Type = local EnableDiameter = True IncomingScript = OutgoingScript = AllowAccountingStartToCreateSession = FALSE SessionTimeOut = PhantomSessionTimeOut = SessionKey = User-Name:Session-Id SessionCreationCmdList = 268||305 SessionDeletionCmdList = 275 SessionRestorationTimeOut = 24h ResourceManagers/ 1. 3gpp 2. swmcache 3. per-user
リソースマネージャは、リソースを割り当てるように定義され、セッションマネージャにマッピングされます。
これら3つのリソースマネージャが使用されます。
Cd /Radius/ResourceManagers/ ResourceManagers/ 3gpp/ Name = 3gpp Description = Type = 3gpp EnableRegistrationFlow = TRUE EnableSessionTermination = false ReuseExistingSession = True HSSProxyService = dia-proxy Per-User/ Name = Per-User Description = Type = user-session-limit UserSessionLimit = 0 swmcache/ Name = swmcache Description = Type = session-cache OverwriteAttributes = FALSE QueryKey = Session-Id PendingRemovalDelay = 10 AttributesToBeCached/ 1. Non-3GPP-User-Data 2. Service-Selection QueryMappings/
次の表に、パケット処理中に使用されたすべてのスクリプトを示します。
[名前(Name)] |
スクリプトファイル |
エントリポイント |
説明 |
クリッド |
test.tcl |
clid |
Application-Id 16777264とDiameter-Command Code 268を検索し、ユーザ名の値を取得し、着信要求からcalling-station-ID属性にコピーします。 このスクリプトは、「Radius Incoming scriptinpoint」で参照されます |
rmserver |
test.tcl |
rm_server |
Server-Assignment-Type属性が存在する場合は、着信要求からRemote-Serverフィールドが削除されます。 このスクリプトは、dia-proxy service Incoming scriptinpointで参照されます |
removeuserdata |
libremoveuserdata.so |
removeUserData |
Rexスクリプトを使用して、HSSから受信した情報を最初に確認します。特に、「Non-3GPP-IP-Access」と「Non-3GPP-IP-Access-APN」の両方の値が「NON_3GPP_SUBSCRIPTION_ALLOWED(0)」と「Non_APNS)」であるENABLE (0)'を指定しないと、認証に失敗します。その後、SWm DERメッセージ(サービス選択AVP)から受信したAPN名とHSSからダウンロードしたAPN設定を簡単に比較し、一致がある場合は特定のAPN詳細のみをコピーし、不要なAVPを削除してePDGに準備します。一致の許可が失敗し、DERにサービス選択AVPがない場合、すべてのAPN情報が外部AVPとして送信されます。 このスクリプトは、「3gpp-auth発信スクリプトポイント」で参照されます |
Removeuserdataquery |
libremoveuserdataquery.so |
removeUserData |
Rexスクリプトは、HSSから受信した情報を最初にチェックするために使用されます。特にNon-3GPP-IP-AccessとNon-3GPP-IP-Access-APNの両方にNON_3GPP_SUBSCRIPTION_SUBSCRIPTION_SUBSCRIPTION_ALLOWED(0)GPP_APNS_ENABLE(0)を指定しないと、認証に失敗します。続いて、SWm DERメッセージ(サービス選択AVP)から受信したAPN名とHSSからダウンロードしたAPN設定を簡単に比較し、一致がある場合は特定のAPN詳細のみをコピーし、不要なAVPを削除してePDGに準備します。一致の許可が失敗し、DERにサービス選択AVPがない場合、すべてのAPN情報が外部AVPとして送信されます。 このスクリプトはquery serviceOutgoing scriptinpointで参照されます |
out |
test.tcl |
newsessionState |
Dia proxy service incoming script:すでに処理されているメッセージのスティッキを設定解除するために使用します。例:DRA1からMAR/MAAを受信した場合、後続のユーザSARは同じDRA1を使用します。DRA1が使用できず、スティッキが維持されている場合、フェールオーバーは行われません。代替DRAにフェールオーバーするには、このスティッキを削除します。このスクリプトは、S6b SAR(PGW_update)HSSに対するVisited-Network-Identifier(CCI)を削除するために使用されます。 |
rmdh |
test.tcl |
rmdh |
DiameterCode 301および303のパケットのDestinationHost AVPを削除します。 |
rmvnid |
test.tcl |
rmvnid |
DiameterCode 256でServer-Assignment-Typeが13のパケットのVisited-Network-Identifier AVPを削除します。 |
AAAReplaceResultCode |
test.tcl |
replaceResultCode |
DiameterCode 274およびResult-Code "Diameter-Unknown-Session-Id"のパケットでは、Result-Code AVPを「Test」に置き換えます |
AAARTRCheck |
librexblockRTR.so |
AAARTRCheck |
同じセッションに対して複数のRTRが受信されると、重複するRTRが削除され、ログに記録されます。 |
一部のスクリプトは、より高いバージョンでは必要ない場合があります。リストされているスクリプトは、CPARバージョン7.3.0.3で使用されます
すべてのスクリプトはパス/opt/CSCOar/scripts/radius/にあります。
/opt/CSCOar/logsフォルダには、すべてのアプリケーションログが保存されます。name_radius_1_logファイルは、ドロップおよび拒否された要求をすべて登録するため、トラブルシューティングの目的でこのファイルを保存することが重要です。
CPARを使用すると、ニーズに応じてこのログを保存する非常に柔軟な設定が可能になります。この値を定義できる要件に基づいて、最新の20個のログファイルが保持されます。各ファイルのサイズは5 Mbです。
この特定のロギング2パラメータを有効にするには、aregcmdモードで設定する必要があります。
/Radius/Advanced
LogFileSize = "5メガバイト"
LogFileCount = 20
ログの命名規則は、次の表に示す規則に従います。
説明 |
ログファイルの名前 |
最新ログ |
name_radius_1_log |
2番目から最新のログ |
name_radius_1_log.01 |
3番目から最新のログ |
name_radius_1_log.02 |
.... |
.... |
20番目から最新のログ |
name_radius_1_log.19 |
テーブル 0 ログ番号。
CPARには、サーバ設定可能なタイムアウトがあります。現在の設定は次のとおりです。
/Radius/Advanced
/Radius/Clients/<client_name>にあるクライアントタイムアウト
/Radius/RemoteServers/<remote_server_name>にあるリモートサーバタイムアウト
このドキュメントでは、Diameter Packet sizeコマンドの意味と、このパラメータを値4096に維持する理由について説明します。
上記の図で説明したように、CPARが受信すると予想される最大直径パケットサイズは4096バイトです。この値は、/Radius/Advanced/Diameter/TransportManagementディレクトリにあるDiameterPacketSize変数の下で設定されます。この値に準拠していないパケットはすべて廃棄されます。合計パケットサイズは、セッションキャッシュ属性のサイズと受信した直径パケットのサイズを加算した後で取得されます。
たとえば、4000バイトのPPRパケットサイズを検討し、そのメッセージ内の「Non-3GPP-User-Data」のサイズを3800バイトとします。セッションがすでに一部の属性をキャッシュしており、キャッシュされたデータサイズが297バイトである場合、セッションサイズは4096バイトを超え、メッセージはCPARによってドロップされます。
このプロジェクトでは、4096より大きいパケットの分析が行われました。この結果は、4096より大きい平均36パケット(SAA)が1日あたり各CPARインスタンスに到着することを示しています。これらのパケット数は非常に少ないため、意味がありません。
このパラメータは設定可能で、必要に応じて増やすことができます。ただし、値が4096を超えて増加すると、いくつかの欠点があります。
次の図は、DiameterPacketSizeが4096に設定されているインスタンスのtopコマンドの出力例を示しています。
DiameterPackerSizeパラメータを6000に増やすと、topコマンドの出力は次のようになります。
4096より大きいパケット数は無視できると判断され、欠点が望ましくない動作を引き起こすため、このパラメータを4096に維持することを推奨します。
セッション数を監視するためにCPARに存在する唯一のメカニズムは、このドキュメントで説明する方法です。この情報を含むSNMP経由で取得できるOIDはありません。
CPARはセッションの管理が可能で、CPAR CLIに/opt/CSCOar/bin/aregcmdと入力し、管理者クレデンシャルでログインできます。
count-sessions /r all CPARコマンドを使用すると、その時点で接続されているすべてのセッションが表示されます。
セッションの詳細を表示するには、CPARにはquery-sessions /r allコマンドがあり、CPARに接続されているすべてのセッションの情報が表示されます。
特定のセッションの情報だけを表示するには、コマンドを変更してUSER値を使用します。たとえば、query-sessions /r with-user 310310990007655
次のリストには、query-sessionsコマンドに使用できるすべてのフィルタが含まれています。
最後に、CPARからセッションを切断するには、release-sessions /r allコマンドを使用します。その時点で接続されているすべてのセッションが切断されます。
フィルタを適用して、特定のセッションをデタッチできます。
Prime Access Registrarは、データのクエリに使用できるセッションマネージャでの属性キャッシングをサポートしています。このDiameter-queryサービスには、クエリの対象となるセッションマネージャのリストと、DIAMETERクエリ要求に応答してAccess-Acceptパケットに返される(キャッシュされた)属性のリストが含まれます。これは、拡張ポイントスクリプトを使用するか、Query-Serviceという名前の新しい環境変数に設定することによって、ルールとポリシーエンジンを使用して開始されます。
DIAMETER Queryサービスは、拡張ポイントスクリプト、またはQuery-Serviceという名前の新しい環境変数に設定して、ルールとポリシーエンジンを使用して選択する必要があります。この理由は、DIAMETER Query要求がAccess-Requestとして受信され、サーバにはDIAMETER Query要求か通常の認証要求かを知る方法がないためです。Query-Service環境変数を設定すると、Prime Access Registrarサーバに要求がDIAMETER Query要求であることを通知するため、Prime Access RegistrarサーバはQuery-Service環境変数に設定されたdiameter-queryサービスで要求を処理できます。
DIAMETER Queryサービスを選択してアクセス要求を処理すると、これらのセッションマネージャで参照されるセッションキャッシュリソースマネージャで設定されたQueryKey値をキーとして使用して、設定されたセッションマネージャのリストに一致するレコードを照会します。一致するレコードが見つかった場合、一致するレコードに(設定に基づいて)存在するキャッシュされた属性のリストを含むAccess-Acceptがクライアントに送信されます。セッションキャッシュに複数値を持つ属性が含まれている場合、その属性のすべての値が複数値を持つ属性として応答に返されます。一致するレコードがない場合、Access-Rejectパケットがクライアントに送信されます。
Prime Access Registrarでは、セッションレコードに存在するキャッシュされた情報にアクセスするための自動プログラマブルインターフェイス(API)とともに、セッションマネージャレベルのスクリプトポイントが導入されています。これらのスクリプトポイントとAPIを使用して、拡張ポイントスクリプトを書き込み、キャッシュされた情報を変更できます。
現時点では、スクリプトを記述したり、プログラム可能なAPIを使用してデータにアクセスしたりすることはできませんが、オプションはあります。
現在、セッションマネージャが保存する属性は次のとおりです。
/radius/resourcemanagers/swmcache/AttributesToBeCachedでハードコード:
デフォルト:
このような属性は、CLIでこのコマンドquery-sessionsを使用すると、セッションごとに表示されます。
現在、この設定に使用できる確認手順はありません。
現在、この設定に関する特定のトラブルシューティング情報はありません。