【入門編】 5GにおけるSBAのサービス登録・発見を行うNRF(Network Repository Function)の挙動 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

こんにちは!ネットワークやガジェットの裏側を覗くのが大好きな、技術メディア主筆ライターです。

皆さんは普段、スマホで動画を見たり、オンラインゲームをしたりするとき、どれくらい5Gの恩恵を受けているでしょうか。「4Gよりもなんだかサクサク動くな」と感じているその裏側では、目に見えないところで電波だけでなく、コアネットワークという巨大な頭脳がものすごいスピードで通信をさばいています。

そして、近年の5Gコアネットワーク(5GC)を語る上で絶対に外せないのが「SBA(Service Based Architecture:サービスベースアーキテクチャ)」という考え方です。これまでの通信網は、専用の硬直した機械同士がガチガチの専用線で結ばれていたのですが、5GではまるでWebサービスやマイクロサービスのようにお互いがAPIで連携する世界へと進化しました。

今回は、そのSBAの世界において「今、自分がどこにいて、どんなサービスを提供できるか」を司る、いわば巨大な電話帳&マッチングアプリである「NRF(Network Repository Function)」の挙動について、身近な例えを交えながら優しく紐解いていきましょう!

—

1. 5Gの頭脳を支える「NRF」ってなに?(現実世界の例え)

一歩ずつ理解していきましょう!

新しい街に引っ越してきたと想像してみてください。美味しいパン屋さんを開いたあなたですが、まだ誰もあなたのお店を知りません。そこで、まずは街の役所や総合案内所に「こういうお店をオープンしました!得意なパンはこれです!」と自分の情報を登録しますよね。

また、別の場所でお腹を空かせたお客さんが「近くに美味しいパン屋さんはいないかな?」と案内所(あるいはスマホのマップアプリ)で検索をかけます。すると、案内所は登録されているデータから「あそこのお店がおすすめですよ!」と教えてくれます。

この「街の総合案内所 兼 電話帳」の役割を、5Gの世界で担っているのが NRF(Network Repository Function) なんです。

5Gのネットワーク内には、ユーザーの認証をする機能や、セッションを管理する機能など、様々な「NF(Network Function=ネットワークの機能たち)」がバラバラの部品として存在しています。彼らは新しく起動したり、お引っ越しをしたり、時にはお休みしたりします。そのたびに「私、ここにいます!」と登録し合い、必要な相手を探すために使われるのがNRFというわけですね。

—

2. NRFの心臓部:「サービス登録」と「サービス発見」の仕組み

NRFの主な仕事は、大きく分けて2つあります。それが「サービス登録(Registration)」と「サービス発見(Discovery)」です。

どちらも、私たちが普段Webブラウザやスマホアプリで使っている「REST API(HTTP/HTTPS通信)」を使って行われます。そう、5Gの内部は、実は普段私たちがネットサーフィンをしている仕組みとすごく似ているんです!

① サービス登録(NF Profile Registration)

新しく立ち上がった、あるいは動き始めたNFインスタンス(例えば、セッション管理を担当するSMFなど)は、起動するとすぐにNRFに向かって「PUTメソッド」のHTTPリクエストを投げます。これが「私、こういう者です。プロファイルを登録してください!」という挨拶です。

このとき送信されるデータ(NFプロファイル)の中身には、以下のような情報が含まれています。

  • NFインスタンスID: その機器固有の識別子(UUIDなど)
  • NFタイプ: 自分は何者か(例: SMF, AMF, UPF など)
  • FQDNまたはIPアドレス: どこに通信を送ればいいかの宛先
  • サポートしているサービス: 自分自身が提供できる具体的なAPIの一覧

② サービス発見(NF Discovery)

「ある機能(例:AMF)」が、別の機能(例:SMF)と連携したいと思ったとき、AMFはNRFに対して「GETメソッド」のHTTPリクエストを送って検索をかけます。「条件に合うSMFを教えて!」と問い合わせるわけです。
NRFはデータベースから条件にぴったりなNFを探し出し、宛先リストをレスポンスとして返却します。

—

3. 実践!NRFとのやり取りを模擬するREST APIとJSONデータ

百聞は一見に如かず。実際にNRFとNFがどのようなJSONデータで会話しているのか、イメージしやすいようにサンプルを見てみましょう。

以下のコードは、あるNFインスタンスがNRFに対して自身を登録(Registration)する際に送信するJSONペイロード(プロファイル)のイメージです。

{
  "nfInstanceId": "8f3b2c1d-4e6f-4a8b-9c1d-2e3f4a5b6c7d",
  "nfType": "SMF",
  "nfStatus": "REGISTERED",
  "plmnList": [
    {
      "mcc": "440",
      "mnc": "10"
    }
  ],
  "ipv4Addresses": [
    "10.0.1.100"
  ],
  "sbiInfo": {
    "anchors": [
      {
        "oauth2Required": false
      }
    ]
  },
  "nfServices": [
    {
      "serviceInstanceId": "smf-nsmf-media-01",
      "serviceName": "nsmf-pdusession",
      "versions": [
        {
          "apiVersionInUri": "v1",
          "apiFullVersion": "1.0.0"
        }
      ],
      "scheme": "http",
      "fuFqdn": "smf01.5g-core.local"
    }
  ]
}

パラメーターのポイント解説

  • nfInstanceId: このNFインスタンスのユニークなIDです。人間でいうマイナンバーのようなものです。
  • nfType: ここでは「SMF(Session Management Function)」として登録しています。
  • ipv4Addresses: このNFにアクセスするためのIPアドレス(10.0.1.100)が指定されています。
  • nfServices: このNFが提供する具体的なサービス名(ここではPDUセッション管理を行う nsmf-pdusession)が定義されています。

次に、別のNFがこのSMFを探すとき(サービス発見)にNRFへ投げるHTTPリクエストのイメージを見てみましょう。

GET /nnrf-disc/v1/nf-instances?target-nf-type=SMF&requester-nf-type=AMF&service-names=nsmf-pdusession HTTP/1.1
Host: nrf.5g-core.local:8080
Accept: application/json

このリクエストを受け取ったNRFは、内部のデータベースを検索し、条件に合致したSMFのリスト(先ほどのプロファイル情報)をJSON形式で返却します。これによって、AMFは「よし、このSMFに通信を送ればいいんだな!」と分かるわけです。

—

4. 現場のエンジニアが直面するトラブルと知見

ここまで聞くと、「なんだ、普通のWeb APIと同じでシンプルじゃないか」と思われるかもしれません。しかし、現実のモバイル通信の現場はもう少しだけ泥臭く、そしてシビアです。

実際のインフラ構築や運用現場でよくあるトラブルシューティングのポイントを少しだけシェアしますね。

① ハートビート(死活監視)の重要性

NFが何らかの原因で突然フリーズしたり、電源が落ちたりしたとき、NRFに「私、消えます」という正常なログが残らないことがあります。これをそのままにしておくと、NRFの電話帳には「もう存在しないゴーストの宛先」が残り続け、他のNFが「繋がらない!」とエラーを起こしてしまいます。
そのため、NFは定期的にNRFへ「まだ生きてますよ」というハートビート(Periodic Registration Update)を送り続ける必要があります。もし一定時間これが途絶えると、NRF側で自動的にステータスを SUSPENDED や UNREGISTERED に書き換える仕組みが運用上非常に重要になります。

② セキュリティ(OAuth 2.0による認可)

商用の5Gコアネットワークでは、誰でも勝手にNRFにアクセスできては困ります。そのため、NRFとNFの間、あるいはNF同士の通信の際には、OAuth 2.0を用いた厳密なトークン認証・認可が組み合わされます。
「お前は本当にアクセス権を持ったNFか?」をOAuthの認可サーバー(SCPやBSFなども絡んできますが、ここでは割愛します)で確認してからでないと、サービス登録や発見ができない仕組みになっています。

—

まとめ:SBAとNRFが生み出す「しなやかな5G」

今回は、5GのSBAにおけるNRFの役割と挙動について、サービス登録から発見までの流れを紐解いてきました。

昔の通信網は、機器を追加・変更するだけでも大工事が必要でした。しかし、NRFを中心としたSBAの導入により、5Gコアはまるでクラウド上のマイクロサービスのように、「必要なときに、必要な機能が、勝手に見つかって繋がる」という非常にしなやかで拡張性の高い構造を手に入れました。

「ネットワーク技術」と聞くと、なんだか黒い画面に難しいコマンドを打ち込む冷たい世界を想像しがちですが、その中身を覗いてみると、私たちの身の回りにあるWebサービスと同じような「APIのキャッチボール」や「丁寧な住所登録の仕組み」で動いているんです。

一歩ずつ紐解いていけば、ネットワークの仕組みは怖くありません。ぜひ今回の解説を参考に、5Gの壮大でスマートな裏側の世界に思いを馳せてみてくださいね!

それでは、また次回の技術解説でお会いしましょう!

コメント

タイトルとURLをコピーしました