NRF — Network Repository Function¶
学習目標¶
- NRFが5GCのSBAにおける「NFのリポジトリ(電話帳/DNS的存在)」であることを説明できる。
- NF Registration・NF Discovery・NF選択支援という3つの中核機能を区別して説明できる。
- NRFがどのNFと、どのようなInterface(SBI/Nnrf)で連携するかを説明できる。
- 4G/EPCにはNRFに直接相当するNFが存在しない点を、SBAの動的発見という観点から説明できる。
前提知識¶
- SBA(Service Based Architecture)/NF(Network Function)/SBIの基礎 → カリキュラム
- Interfaceの概要 → Interface辞典
- Protocol(HTTP/2+JSON over TLS 等)の概要 → Protocol辞典
この章で学べること¶
まず Why として、SBAでNFが多数かつ動的にスケールする環境で相手の所在を静的に設定できないという課題を確認します。次に What として、NRFがNF Registration・NF Discovery・選択支援というリポジトリ機能を担うことを整理します。最後に How として、各NFが起動時にNRFへプロファイルを登録し、他NFを利用したいNFがNRFへ問い合わせて(Discovery)適切なインスタンスを見つける流れを、Nnrfサービスとともに理解します。
Why — なぜ必要なのか¶
SBAでは、AMF・SMF・AUSFといった多数のNFがサービスとして機能を提供し、需要に応じて動的にインスタンス数が増減します。このような環境で、あるNFが別のNFを呼び出すたびに相手のFQDNやIPアドレスを静的に設定するのは非現実的です。誰がどのサービスを、どのPLMN・S-NSSAIで提供しているのかを、動的に「登録」し「発見」する仕組みが必要になります。この役割を担うのがNRFです。
例え話: NRFは会社の電話帳、あるいはインターネットのDNS、受付の名簿のような存在です。NRFが無いと、NF同士は互いの所在を知る手段を失い、サービスの呼び出し先を見つけられなくなります。
Overview — 概要¶
NRFは、(1) 各NFが起動時に自分のNF Profileを登録する NF Registration、(2) あるNFが利用したい相手NFの候補を問い合わせる NF Discovery、(3) 発見結果から適切なインスタンスを選ぶための情報(load/capacity等)を提供する 選択支援 という3つの機能を、SBAの中心的なリポジトリとして提供します。これらはNnrfサービス群を通じて実現されます。
Basic Concept — 初心者向け説明¶
新入社員(新しく起動したNF)が会社に着任したら、まず総務(NRF)に着任届(NF Profile)を提出します。届には、所属(NF type)・社員番号(NF instance ID)・担当できる業務(対応NF service)・連絡先(FQDN/IPエンドポイント)などが書かれています。後日、別の部署の担当者を探したいとき(NF Discovery)は、総務が管理する名簿を引いて、条件に合う相手を教えてもらいます。総務は誰が今忙しいか(load/capacity)といった情報も持っているため、複数候補から適切な相手を選ぶ手助けもしてくれます。
Network Function 詳細¶
| 項目 | 内容 |
|---|---|
| 役割 | 全NFの登録・発見・選択支援を担うリポジトリ(SBAの電話帳/DNS的存在) |
| 保持情報 | NF Profile群(NF type、NF instance ID、PLMN、S-NSSAI、対応NF service、FQDN/IPエンドポイント、load/capacity 等) |
| 利用する主なAPI | 他NFが提供するサービスは基本的に利用せず、自身が登録・発見のハブとして機能する(詳細は要確認) |
| 提供するAPI | Nnrf_NFManagement(NF Register / Update / Deregister / StatusSubscribe / StatusNotify)、Nnrf_NFDiscovery(Request) — TS 29.510 |
| 関連Interface | SBI(Nnrf) |
| 障害時の影響 | NF発見が不可となりサービス連鎖が成立しない重大な影響。ただし冗長化・発見結果のキャッシュ・ローカル設定によるフォールバック等で緩和可能 |
Architecture¶
flowchart TB
AMF["AMF"] -->|"register (Nnrf_NFManagement)"| NRF["NRF (リポジトリ)"]
SMF["SMF"] -->|"register (Nnrf_NFManagement)"| NRF
AUSF["AUSF"] -->|"register (Nnrf_NFManagement)"| NRF
AMF -->|"discover SMF (Nnrf_NFDiscovery)"| NRF
NRF -->|"NF instance 候補を応答"| AMF
図の読み方: AMF・SMF・AUSFといった各NFは、起動時にNnrf_NFManagementを用いて自分のNF ProfileをNRFに登録(register)します。あるNF(図ではAMF)が別のNF(SMF)を利用したいとき、Nnrf_NFDiscoveryでNRFに問い合わせ、条件に合致するNF instanceの候補を受け取ります。AMFはその候補から適切なインスタンスを選択して呼び出します。
Interface¶
| Interface | 両端 | 役割 |
|---|---|---|
| SBI(Nnrf) | 全NF ⇔ NRF | NF登録(Registration)・NF発見(Discovery)・選択支援 |
詳細は Interface辞典 を参照してください。
Procedure での登場¶
NRFは、まず各NFの起動時のNF登録で登場します。加えて、あるNFが別のNFを利用する直前のDiscoveryでも登場します(例: AMFがSMFを、SMFがUPFを選ぶ前に相手候補を発見する文脈)。Registration や PDU Session の各手続きにおいて、各NFがNRF経由で連携相手を発見する場面が現れます。個々の手続きにおける具体的な手順詳細(メッセージ順序や条件分岐)は要確認です。
EPCとの比較¶
4G/EPCには、NRFに直接対応するNFは存在しません。 EPCではNF間の連携相手が比較的静的に構成されており、動的な登録・発見を担う専用機能はありませんでした。DiameterのDRA(Diameter Routing Agent)がルーティング支援という点で部分的に類似しますが、その役割は限定的であり、NRFと同等ではありません(要確認)。SBAにおける動的なNF発見は5Gで新規に導入された概念です。
| 世代 | 対応 |
|---|---|
| 4G/EPC | 相当なし(DRAが部分的にルーティング支援・要確認) |
| 5G | NRF |
Release差分¶
- Rel-15: NRFの基本機能(NF Registration/NF Discovery/選択支援)が定義。
- Rel-16: SCP(Service Communication Proxy)との関係や、階層的NRF等の拡張が導入されたとされる(詳細は要確認)。
- Rel-17: さらなる拡張が行われたとされる(詳細は要確認)。
3GPP Specification¶
- TS 23.501 §6.2.6: NRFの機能定義(SBAにおける役割)
- TS 29.510: Nnrfサービス(Nnrf_NFManagement/Nnrf_NFDiscovery)の定義(個別の章番号・枝番は要確認)
- TS 23.502: 各手続きにおけるNRFの動作(Registration/Discovery手順の詳細は要確認)
Summary¶
- NRFはSBAの根幹をなす、全NFの登録・発見・選択支援を担うリポジトリ(電話帳/DNS的存在)である。
- 中核機能は3つ: NF Registration(登録)・NF Discovery(発見)・選択支援(load/capacity等の提供)。
- 各NFは起動時にNF ProfileをNRFへ登録し、他NFを使いたいNFはNRFへ問い合わせて相手を発見する。
- 提供サービスはNnrf_NFManagement/Nnrf_NFDiscovery(TS 29.510)、Interfaceは SBI(Nnrf)。
- 4G/EPCには直接相当するNFが無く、SBAの動的発見は5Gの新規概念である。
Next Step¶
- NSSF — スライス選択支援を担うNF
- AMF — アクセス・モビリティ管理の中核NF
- SMF — セッション管理を担うNF
- NF辞典
- Interface辞典