コンテンツにスキップ

GUAMI / AMF Region / AMF Set / AMF Pointer — AMFをどう識別・選択するのか

難易度: 上級(マニアック) / 想定学習時間: 35分 / 前提: SUPI / SUCI / 5G-GUTI, Registration / 主役: gNB, AMF, NRF / 主Interface: N2, N14

学習目標

この章を読み終えると、次のことができるようになります。

  • GUAMI を MCC / MNC / AMF Region ID / AMF Set ID / AMF Pointer に分解し、各ビット長と役割を説明できる
  • AMF Region → AMF Set → AMF の階層と、「AMF Pointerは1台または複数台のAMFを指し得る」というニュアンスを説明できる
  • NG-RAN が GUAMI / 5G-S-TMSI / Relative AMF Capacity を使ってAMFを選ぶ流れを説明できる
  • NG Setup Response の Served GUAMI List / Relative AMF Capacity をWiresharkで確認し、Network Designと照合できる
  • 「AMF間でUE数が極端に偏る」事象を、RAN・NGAP・GUAMI・AMF Set・AMFの順に切り分けられる

前提知識

この章の焦点(Level ∞ マニアック)

前章で見た 5G-GUTI の前半(GUAMI) を分解します。GUAMIは単なるIDではなく、AMF選択・負荷分散・AMF障害時の切替・旧AMFからのContext取得 を理解する入口です。NG Setup手続きそのものの全IE解説は範囲外とし、GUAMIに関わる部分に絞ります。


Why — なぜAMFに「住所」が必要なのか

AMFが1台だけなら、gNBは迷わずそこへ送れます。しかし商用網では、スケール・冗長化・負荷分散のために 多数のAMF を並べます。すると次の問題が生じます。

  • UEがIdleから戻ってきたとき、そのUEのContextを持つAMF へ届けたい
  • AMFが故障・撤去されたとき、同じ役割を引き継げるAMF へ振り替えたい
  • 新規UEは、AMFの処理能力に比例して 振り分けたい
  • 別AMFに移ったUEについて、新AMFが 旧AMFを特定して Contextを取りに行きたい

これらを実現するには、AMFを 階層的に 識別する「住所」が必要です。それが GUAMI(Globally Unique AMF Identifier) です。

例え話: GUAMIは「国(PLMN)→ 都道府県(AMF Region)→ 支店(AMF Set)→ 窓口番号(AMF Pointer)」という住所です。番号札(5G-GUTI)に窓口の住所が印字されているので、客(UE)が戻ってきたとき案内係(gNB)は同じ窓口へ案内できます。窓口が閉まっていても、同じ支店(AMF Set)の別窓口なら書類(UE Context)を共有しているので対応できます。


What — GUAMIの構造

定義とビット長

GUAMIは TS 23.501 §5.9.4 と TS 23.003 §2.10.1 で次のように定義されます。

<GUAMI>          = <MCC><MNC><AMF Identifier>
<AMF Identifier> = <AMF Region ID><AMF Set ID><AMF Pointer>
要素 長さ 識別する範囲
MCC + MNC 3桁 + 2〜3桁 PLMN
AMF Region ID 8 bit PLMN内のAMF Region
AMF Set ID 10 bit AMF Region内で一意 なAMF Set
AMF Pointer 6 bit AMF Set内 の1台または複数台のAMF

AMF Identifier は合計 24 bit です(TS 23.003 §2.10.1)。

「GUAMI = AMF 1台」とは限らない

TS 23.501 §5.9.4 は AMF Pointer が AMF Set内の1つ以上のAMF を識別すると定義しています。したがってGUAMIも 1つ以上のAMF を指し得ます。つまり「Pointer = 物理AMF 1台」は典型的な構成ではあっても、仕様上の必然ではありません。逆に 1台のAMFが複数のGUAMIを持つ 構成もあり、NG Setup Response の Served GUAMI List はそのためのリストです。

Region → Set → AMF の階層

flowchart TD
    PLMN["PLMN 001-01"] --> R1["AMF Region ID = 0x01"]
    PLMN --> R2["AMF Region ID = 0x02"]
    R1 --> S1["AMF Set ID = 1
(Region 0x01内で一意)"] R1 --> S2["AMF Set ID = 2"] R2 --> S3["AMF Set ID = 1
(Region 0x02内で一意。
Region 0x01のSet 1とは別物)"] S1 --> P1["AMF Pointer = 1"] S1 --> P2["AMF Pointer = 2"] S2 --> P3["AMF Pointer = 1"] S3 --> P4["AMF Pointer = 1"]

図の値はテスト用PLMN(001-01)を使った架空の例です。AMF Set IDはRegion内でのみ一意 なので、AMF Setをグローバルに特定するには PLMN + Region ID + Set ID の組が必要です。

AMF Region / AMF Set とは何か

  • AMF Region は1つ以上のAMF Setから構成されます。「Region」という名前ですが、物理的な地理区分である必要はなく、オペレータのNetwork Designで論理的に決まります(Regionの切り方は運用依存。仕様は「AMF Regionは1つ以上のAMF Setから成る」と規定し、地理区分であることは求めていない。TS 23.501 §5.21.2.1 / §5.9.4、要確認)。
  • AMF Set は、同じエリア(TA群)と同じNetwork Slice群を担当するAMFの集まり です(TS 23.501 §5.21.2.1、要確認)。AMF Setは、Set内の別AMFがUEを引き継ぐこと(UDSF経由のContext共有、またはAMF間のContext転送)を想定した単位です。共有の有無・方式は構成依存です(TS 23.501 §5.21.2 配下、枝番は要確認)。

AMF Set ≠ Kubernetes Cluster / Load Balancer / Data Center

AMF Setは3GPPの 論理的なグルーピング です。「AMF Set = 1つのKubernetes Cluster」「AMF Set = 1つのLB VIP」「AMF Set = 1つのDC」といった対応は Vendor / オペレータのDeployment Design(実装依存) であり、仕様上の定義ではありません。

5G-GUTI の中の GUAMI

5G-GUTI
┌──────────────────────────────────────────┬──────────────┐
│                  GUAMI                   │   5G-TMSI    │
│  MCC │ MNC │ Region(8) │ Set(10) │ Ptr(6) │    (32)      │
│              AMFを指す部分               │ AMF内のUE    │
└──────────────────────────────────────────┴──────────────┘

UEが5G-GUTIを持っている限り、ネットワークは 「このUEを最後に担当したAMF(群)」 を識別子から逆引きできます。これがAMF選択・Context転送の起点になります。


How — GUAMIはどう使われるか

1. NG Setup — AMFが自分の「住所」をgNBへ告知する

gNBとAMFがN2を確立する NG Setup 手続き(TS 38.413 §8.7.1)で、AMFは自分が担当するGUAMIをgNBへ通知します。

sequenceDiagram
    participant gNB
    participant AMF
    gNB->>AMF: NG Setup Request (Global RAN Node ID, Supported TA List, Default Paging DRX 等)
    AMF-->>gNB: NG Setup Response (AMF Name, Served GUAMI List, Relative AMF Capacity, PLMN Support List)
    Note over gNB: GUAMI ⇔ AMF(TNL接続) の対応表と
各AMFの相対容量を保持 AMF-->>gNB: AMF Configuration Update (Served GUAMI List / Relative AMF Capacity の変更) gNB-->>AMF: AMF Configuration Update Acknowledge
IE(NG Setup Response) GUAMIとの関係
AMF Name AMFの名前
Served GUAMI List このAMFが担当するGUAMIのリスト。各項目に GUAMI と、任意で Backup AMF Name を含む
Relative AMF Capacity AMFの相対的な処理能力(0〜255。TS 38.413 §9.3.1 配下のIE定義、枝番は要確認)。新規UEの振り分け比率に使われる
PLMN Support List 対応PLMNと S-NSSAI

メッセージ定義は TS 38.413 §9.2.6.1(NG Setup Request)/ §9.2.6.2(NG Setup Response)、変更通知は AMF Configuration Update(§8.7.3)です。

2. gNBによるAMF選択

UEが接続してきたとき、gNB(NG-RAN)は次の考え方でAMFを選びます(TS 23.501 §6.3.5)。

flowchart TD
    Start["UEからRRC接続
(RRCSetupRequest / RRCSetupComplete)"] --> Q1{"UEが 5G-S-TMSI または
GUAMI(registeredAMF) を提示?"} Q1 -- "Yes" --> Q2{"そのGUAMIのAMFへ
接続済み・利用可能?"} Q2 -- "Yes" --> A1["そのAMFを選択
(Contextを持つAMFへ戻す)"] Q2 -- "No" --> A2["同じAMF Set内の別AMF
(またはBackup AMF) を選択"] Q1 -- "No (新規UE)" --> A3["Requested NSSAI 等で候補を絞り、
Relative AMF Capacity に比例して選択"]
  • UEが既存の識別子を持つ場合 — RRCSetupRequest の ng-5G-S-TMSI-Part1 と RRCSetupComplete の ng-5G-S-TMSI-Part2 を組み合わせた 5G-S-TMSI(Part2 = 上位9 bit〔AMF Set ID の上位9 bit〕、Part1 = 下位39 bit〔AMF Set ID の最下位1 bit・AMF Pointer・5G-TMSI〕。TS 23.003 §2.10.1、TS 38.331 §6.2.2)、あるいは RRCSetupComplete の registeredAMF(AMF Identifier と、必要に応じてPLMN)から、gNBは前回のAMFを識別します(TS 38.331 §6.2.2)。5G-S-TMSIにはAMF Set IDとAMF Pointerが含まれるため、短縮形だけでもAMFを特定できます(gNBが接続するAMF群でSet ID+Pointerが一意となる構成が前提。運用依存)。
  • 新規UEの場合 — AMFごとの Relative AMF Capacity(Weight Factor) に比例した確率で振り分けます(TS 23.501 §5.19.3 AMF Load Balancing、節番号は要確認)。

UEがAMFを選んでいるわけではない

UEが提示するのは識別子だけで、実際にどのAMF(どのTNLアソシエーション)へ送るかを決めるのはNG-RAN です。AMFのPod/IPアドレスをUEが知ることはありません。

3. AMF障害・撤去時 — GUAMIの切替

AMFを計画撤去する場合、当該AMFは AMF Status Indication(TS 38.413 §8.7.6)で Unavailable GUAMI List をgNBへ通知できます。突発障害時は当該AMF自身が通知できない場合があり、NG-RAN側の検知方法や同一Set内AMFによる扱いは TS 23.501 の AMF Management(§5.21.2 配下、枝番は要確認)と実装に依存します。gNBは、そのGUAMIを持つUEの以後のシグナリングについて、NG Setup Response / AMF Configuration Update(または AMF Status Indication の Unavailable GUAMI Item)で通知された Backup AMF Name のAMF、または同じAMF Set内の別AMFを選ぶことが期待されます(TS 38.413 §8.7.6、TS 23.501 §5.21.2.2 / §5.21.2.3、枝番は要確認。具体的な選び方はNG-RANの実装依存)。

sequenceDiagram
    participant UE
    participant gNB
    participant AMF1 as AMF-1 (撤去予定)
    participant AMF2 as AMF-2 (同一Set / Backup)
    AMF1->>gNB: AMF Status Indication (Unavailable GUAMI List = GUAMI-1)
    Note over gNB: GUAMI-1 を Unavailable として記録
    UE->>gNB: RRC接続 (5G-S-TMSI → GUAMI-1 を示す)
    gNB->>AMF2: Initial UE Message(Backup AMF / 同一Set内AMFへ)
    Note over AMF2: 同一Set内でContext共有があれば
UEを継続して扱える(構成依存)

これが、AMF Setが 冗長化の単位 として重要な理由です。

4. AMF Re-allocation — 最初のAMFが適切でなかった場合

gNBが選んだ初期AMFが、UEの要求スライス等を扱えないと判明した場合、別のAMF(またはAMF Set)へ振り直す AMF Re-allocation が行われます(TS 23.502 §4.2.2.2.3)。振り直し方には、初期AMFが target AMF へ直接転送する方法と、NGAPの Reroute NAS Request(TS 38.413 §8.6.5)でgNBに AMF Set ID を指定してNASメッセージの再送先を指示する方法があります。後者では「AMF Set」が転送先の単位になっています。

5. SBIの世界でのAMF Set

AMF SetはN2だけの概念ではありません。SBA(Service Based Architecture)では、AMFはNRFに登録する NF Profile の中で、自分の AMF Set ID / AMF Region ID / GUAMI List を公開します(TS 29.510、AmfInfo型。節番号は要確認)。他のNFはこれを使って「このGUAMIのAMF」や「このAMF SetのAMF」をNRFで検索できます。

また、NF Set の識別子として、AMF Setは次の形式で表されます(TS 23.003 §28.12)。

set<AMF Set ID>.region<AMF Region ID>.amfset.5gc.mnc<MNC>.mcc<MCC>
flowchart LR
    subgraph RAN["RAN / NAS の世界"]
        G["GUAMI
Region / Set / Pointer"] end subgraph SBA["SBI の世界"] N["NF Profile (AmfInfo)
amfSetId / amfRegionId / guamiList"] F["NF Set ID
set..region..amfset.5gc..."] end G <-- "同じAMF Setを別表現で指す" --> N N --- F

Set IDの表記ゆれに注意

AMF Set ID(10 bit)をSBI上の文字列でどう表記するか(10進/16進・桁数)は、Releaseにより表記規則が異なる可能性があります。ログ・設定・NRF登録の間で表記が一致しているか は、対象Releaseの TS 23.003 §28.12 と TS 29.571 の原文で 要確認 です。


Packet Analysis (Wireshark)

Display Filter

フィルタ 用途
ngap N2全体。NG Setup Response / AMF Configuration Update / AMF Status Indication を確認
nas-5gs Registration Request の 5GS mobile identity(5G-GUTI)内のGUAMIを確認
http2 SBI。NRFへのNF Profile登録(AmfInfo)を確認

NGAPの procedureCode の数値はディセクタ・版により表示が異なる場合があるため、本ページでは断定しません。GUIのプロトコル階層表示でメッセージ名を確認するのが確実です。

Decode例(概念表現)

以下は表示構造の概念表現です(要キャプチャ)。値はテスト用PLMNでの架空例です。

NGAP NGSetupResponse
 ├─ AMFName: amf-1.example
 ├─ ServedGUAMIList
 │   └─ ServedGUAMIItem
 │       ├─ GUAMI
 │       │   ├─ PLMN Identity: 001-01
 │       │   ├─ AMFRegionID: 0x01
 │       │   ├─ AMFSetID: 1
 │       │   └─ AMFPointer: 1
 │       └─ BackupAMFName: amf-2.example   (任意)
 ├─ RelativeAMFCapacity: 100
 └─ PLMNSupportList

見るべきポイント

  1. Served GUAMI List — 設計書どおりのRegion / Set / Pointerか。設計にない重複告知(意図しない同一GUAMIの重複)がないか
  2. Relative AMF Capacity — 意図しない値(0や極端な差)になっていないか
  3. AMF Status Indication の有無 — 撤去・障害でGUAMIが Unavailable にされていないか
  4. UEの5G-GUTI内のGUAMI — そのUEが「どのAMFへ戻ろうとしているか」。存在しないGUAMIなら、旧構成の5G-GUTIが残っている可能性

Trouble Shooting — AMF間の負荷偏り

例えば次のような極端な偏りがあったとします。

AMF-1 : UE 9000
AMF-2 : UE  100

すぐに「AMFのバグ」と決めつけず、外側から順に確認します。

flowchart LR
    A["① gNB⇔各AMFの
N2(SCTP)接続"] --> B["② NG Setup
成功しているか"] B --> C["③ Served GUAMI List
の告知内容"] C --> D["④ AMF Set / Region
設定"] D --> E["⑤ Relative AMF
Capacity"] E --> F["⑥ UEの既存
5G-GUTI"] F --> G["⑦ RAN側の
AMF選択実装"]
症状 想定原因 確認ポイント ログ Packet 解決方法
新AMFを追加したのにUEが来ない 既存UEは5G-GUTIのGUAMIで旧AMFへ戻り続ける。新AMFに来るのは主に既存識別子を持たない新規UE UEの5G-GUTI内GUAMIの分布 gNBのAMF選択ログ nas-5gs(5GS mobile identity) 時間経過を待つ、またはAMF負荷再分散の仕組みを使う(TS 23.501 §5.19.4 AMF Load re-balancing、要確認。適用は実装依存)
一部gNB配下だけ偏る 一部gNBが特定AMFとしかN2を張っていない / NG Setup失敗 gNBごとのN2接続状態 gNB・AMFのSCTP/NGAPログ ngap(NG Setup) N2接続・NG Setupを復旧
常に特定AMFに寄る Relative AMF Capacityの設定差 NG Setup Response / AMF Configuration Update の値 AMF設定 ngap 容量設定を見直す
撤去後もUEが旧AMFへ向かい失敗する Unavailable GUAMIが通知されていない / Backup AMF未設定 AMF Status Indication、Backup AMF Name AMF・gNBログ ngap 撤去手順を見直す(要検証)
5G-GUTI登録で毎回Identity Requestになる GUAMIの告知と実際のAMFが不一致(設定ミス)で旧AMFを引けず、UE Context取得に失敗してIdentity Requestへフォールバックする(TS 23.502 §4.2.2.2.2) Served GUAMI ListとNRFのguamiListの一致 AMF・NRFログ ngap / http2 / nas-5gs(Identity Request) GUAMI設定を統一

AMF Set = Load Balancer ではない

「AMF Setを組めばgNBが均等に振り分けてくれる」とは限りません。実際の分布は、RANのAMF選択ロジック、Relative AMF Capacity、UEが持つ既存5G-GUTI、gNBのN2接続構成、そして Vendor独自のSelection logic(実装依存) の組み合わせで決まります。


3GPP仕様とVendor実装の境界

3GPPが定義するもの Vendor / 運用が決めるもの
GUAMI / AMF Region ID / AMF Set ID / AMF Pointer の形式とビット長 Region / Set / Pointer の番号付け方針
NG-RANによるAMF選択の原則、Relative AMF Capacity gNB内の具体的な選択アルゴリズム
Served GUAMI List / Backup AMF Name / AMF Status Indication AMF Pod・Kubernetes Service・LB VIP・Active/Standby 構成
AMF SetとUE Context共有の考え方(UDSF等) Context共有の実装方式(DB、レプリケーション)
NF Set ID / NRFのAmfInfo CLIでの設定項目・名称

EPC(4G)との比較

項目 4G EPC 5GC
コア制御ノードの識別子 GUMMEI = MCC + MNC + MMEGI + MMEC GUAMI = MCC + MNC + AMF Region ID + AMF Set ID + AMF Pointer
ノード群 MME Pool(MME Group ID) AMF Region / AMF Set
一時UE ID GUTI = GUMMEI + M-TMSI 5G-GUTI = GUAMI + 5G-TMSI
無線区間の短縮ID S-TMSI = MMEC + M-TMSI 5G-S-TMSI = AMF Set ID + AMF Pointer + 5G-TMSI
容量ベース振り分け Relative MME Capacity(S1 Setup) Relative AMF Capacity(NG Setup)
冗長化の単位 MME Pool AMF Set(Set内の別AMFによる引き継ぎを想定。Context共有・転送の方式は構成依存)

5G-GUTI ⇔ 4G GUTI の対応(Interworking)

4G⇔5G Interworkingでは、5G-GUTIと4G GUTIを相互に マッピング します(TS 23.003 §2.10.2、枝番は要確認)。ビット長が合うように設計されています。

4G GUTI ビット長 5G-GUTI 側
MME Group ID 16 bit AMF Region ID(8 bit)+ AMF Set ID の上位8 bit
MME Code 8 bit AMF Set ID の下位2 bit + AMF Pointer(6 bit)
M-TMSI 32 bit 5G-TMSI(32 bit)

4G GUTIから写像された値をUEが提示する場合、RRCでは guami-Type(native / mapped) で区別されます(TS 38.331 §6.2.2)。詳細は 4G-5G Interworking を参照してください。


3GPP Specification

仕様 節 内容
TS 23.003 §2.10.1 5G-GUTI / GUAMI / AMF Identifier の構造とビット長
TS 23.003 §2.10.2 5G-GUTI と GUTI のマッピング(枝番要確認)
TS 23.003 §28.12 NF Set Identifier(AMF Setの表記)
TS 23.501 §5.9.4 5G-GUTI / GUAMI の定義
TS 23.501 §5.19.3 AMF Load Balancing(Weight Factor、節番号要確認)
TS 23.501 §5.19.4 AMF Load re-balancing(節番号要確認)
TS 23.501 §5.21.2.1 / §5.21.2.2 / §5.21.2.3 AMF Region / AMF Set の定義・計画撤去・障害時の自動回復(節番号要確認)
TS 23.501 §6.3.5 AMF Discovery and Selection
TS 23.502 §4.2.2.2.3 Registration with AMF re-allocation
TS 38.413 §8.7.1 / §8.7.3 / §8.7.6 NG Setup / AMF Configuration Update / AMF Status Indication
TS 38.413 §8.6.5 Reroute NAS Request
TS 38.331 §6.2.2 RRCSetupRequest / RRCSetupComplete(ng-5G-S-TMSI-Part1 / Part2、registeredAMF、guami-Type)
TS 29.510 §要確認 NRF NF Profile の AmfInfo

Summary

  • GUAMI = MCC + MNC + AMF Region ID(8) + AMF Set ID(10) + AMF Pointer(6)。「どのPLMNの、どのRegionの、どのSetの、どのAMF(群)か」を表す
  • AMF Set IDはRegion内で一意、AMF PointerはSet内の1台以上のAMF を指す。1台のAMFが複数GUAMIを持つこともある
  • AMFは NG Setup Response の Served GUAMI List / Relative AMF Capacity で自分の住所と容量をgNBへ告知する
  • gNBは UEの5G-S-TMSI / GUAMI で前回AMFへ戻し、新規UEは Relative AMF Capacity に比例して振り分ける
  • AMF障害・撤去時は Unavailable GUAMI List / Backup AMF / 同一AMF Set で引き継ぐ。AMF Setは冗長化の単位で、Set内の別AMFによる引き継ぎを想定する(Context共有・転送の方式は構成依存)
  • AMF Setは3GPPの論理グルーピングであり、Kubernetes Cluster・LB・DCとは別概念

理解度チェック

Q1. 同じPLMN・同じAMF Region・同じAMF Setに属する複数AMFを個別に識別するとき、GUAMI内でその役割を担うフィールドはどれか。A. AMF Region ID / B. AMF Set ID / C. AMF Pointer / D. 5G-TMSI

正解: C. AMF Pointer。AMF Region IDはRegion、AMF Set IDはRegion内のSetを識別します。5G-TMSIはGUAMIの外側(5G-GUTIの後半)にあるUE側の一時番号です。なお仕様上、AMF Pointerは「Set内の1つ以上のAMF」を指し得る点に注意してください(TS 23.501 §5.9.4)。

Q2. AMF Set ID = 1 のAMF SetがRegion 0x01 と Region 0x02 の両方に存在するのは矛盾ですか。

矛盾ではありません。AMF Set IDは AMF Region内で一意 に定義されるため、異なるRegionで同じSet IDを使うことは許されます。AMF Setをグローバルに特定するには PLMN + AMF Region ID + AMF Set ID の組を使います。

Q3. 新しいAMFをAMF Setに追加したのに、ほとんどUEが割り当てられません。最初に疑うべき理由は何ですか。

既に登録済みのUEは、5G-GUTI / 5G-S-TMSI に含まれるGUAMIによって 前回のAMFへ戻される ためです。Relative AMF Capacityによる比例振り分けが効くのは主に既存識別子を持たない新規UEです。偏りの是正にはAMF負荷再分散の仕組みや時間経過が必要です(適用方法は実装依存)。

Q4. AMFを計画撤去するとき、gNBに撤去対象のAMFへUEを送らせないためにNGAPで何を通知しますか。

AMF Status Indication(TS 38.413 §8.7.6)で Unavailable GUAMI List を通知します。gNBはそのGUAMIを持つUEについて、NG Setup Response / AMF Configuration Update、または Unavailable GUAMI Item で通知された Backup AMF Name のAMF、または同一AMF Set内の別AMFを選ぶことが期待されます(具体的な選び方は実装依存)。


Next Step