在5G系统架构中,UE(用户设备)不仅可以通过NR/LTE等3GPP接入网连接5G核心网,还可以通过Wi-Fi等非3GPP接入网接入。3GPP TS 23.501将非3GPP接入分为两类:授信接入(Trusted,由运营商管控)和非授信接入(Untrusted,如公共Wi-Fi热点、家庭Wi-Fi等不受运营商控制)。
对于非授信接入,3GPP R15定义了一个全新的网络功能——N3IWF(Non-3GPP InterWorking Function),它在架构上等效于4G中的ePDG(evolved Packet Data Gateway),但在协议机制上做了根本性重构:
| 对比维度 | 4G ePDG | 5G N3IWF |
|---|---|---|
| 接入认证 | EAP-AKA via AAA/HSS | EAP-5G + 5G-AKA/EAP-AKA' via AMF/AUSF/UDM |
| NAS传输 | 无NAS概念 | 完整NAS信令(5GMM/5GSM) |
| 控制面接口 | SWm/S2b(GTPC/PMIP) | N2(NGAP)/ N1(NAS) |
| 用户面接口 | S2b(GTPU/GRE) | N3(GTPU) |
| QoS承载 | 基于EPS Bearer | 基于QoS Flow + IPsec Child SA |
| 密钥体系 | CK/IK直接派生 | K_SEAF → K_N3IWF 分层派生 |
| NAS封装 | 无 | EAP-5G封装NAS-PDU |
N3IWF的核心设计思想是:让非3GPP接入复用5G核心网相同的注册、认证、会话管理信令流程,而不是像4G ePDG那样走一套独立的AAA/Diameter体系。这使得UE无论通过NR还是Wi-Fi接入,核心网看到的都是统一的NAS信令,AMF的处理逻辑高度一致。
本文将聚焦TS 23.502 Section 4.12.2定义的注册流程、TS 33.501 Section 6.3.2定义的EAP-5G认证机制、以及TS 24.502定义的AN-Parameters编码格式,进行全链路深度拆解。
graph TB
subgraph UE ["UE (5G终端)"]
U1[NAS层]
U2[EAP-5G]
U3[IKEv2/IPsec]
U1 --> U2 --> U3
end
subgraph WiFi ["非授信WLAN"]
W1[WLAN AP]
end
subgraph N3IWF ["N3IWF"]
N1[IKEv2/EAP-5G终结]
N2[NGAP适配]
N3[IPsec/GRE处理]
N1 --> N2
N1 --> N3
end
subgraph 5GC ["5G核心网"]
AMF[AMF]
AUSF[AUSF]
UDM[UDM/ARPF]
SMF[SMF]
UPF[UPF]
end
U3 -->|"NWu<br/>IPsec隧道"| W1 -->|"Y2<br/>IP"| N1
N2 -->|"N2<br/>NGAP/SCTP"| AMF
N3 -->|"N3<br/>GTP-U"| UPF
AMF --> AUSF --> UDM
AMF --> SMF --> UPF
U1 -.->|"N1 NAS"| AMF
style UE fill:#e1f5fe
style N3IWF fill:#fff3e0
style 5GC fill:#e8f5e9
N3IWF的协议栈在整个注册过程中经历三个阶段的变化,这是理解整个机制的关键:
阶段一:IKE_SA_INIT(信令IPsec SA建立前)
UE N3IWF AMF
| IKEv2 (UDP 500/4500) | |
| ←→ IKE_SA_INIT | |
| | |
此时UE和N3IWF之间只有IKEv2报文(明文或半加密),尚未建立任何安全隧道。
阶段二:IKE_AUTH + EAP-5G(注册与认证阶段)
UE N3IWF AMF
| IPsec ESP (IKE SA) | |
| EAP-5G | |
| NAS-PDU | NGAP (N2/SCTP) |
| ←→ IKE_AUTH | ←→ InitialUEMessage |
IKE SA建立后,EAP-5G消息在IPsec隧道内传输,NAS-PDU被封装在EAP-5G中。N3IWF解封装EAP-5G,提取NAS-PDU,通过N2 NGAP转发给AMF。
阶段三:注册完成后的NAS传输
UE N3IWF AMF
| IPsec ESP (信令SA) | |
| TCP | |
| NAS-PDU | NGAP (N2/SCTP) |
注册完成后,UE与N3IWF之间建立TCP连接(在信令IPsec SA内),后续的NAS消息通过TCP承载,N3IWF通过NGAP Uplink/Downlink NAS Transport消息转发给AMF。
以下是TS 23.502 Section 4.12.2.2定义的完整注册流程,包含14个关键步骤:
sequenceDiagram
participant UE as UE
participant N3IWF as N3IWF
participant AMF as AMF
participant AUSF as AUSF
participant UDM as UDM/ARPF
rect rgb(232, 245, 233)
Note over UE,N3IWF: Phase 1: IKE_SA_INIT
UE->>N3IWF: IKE_SA_INIT Request<br/>(SAi1, KEi, Ni)
N3IWF->>UE: IKE_SA_INIT Response<br/>(SAr1, KEr, Nr, [CERTREQ])
end
rect rgb(227, 242, 253)
Note over UE,AMF: Phase 2: IKE_AUTH + EAP-5G Registration
UE->>N3IWF: IKE_AUTH Request<br/>(IDi, [IDr], SAi2, [AUTH omitted])
N3IWF->>UE: EAP-Request/Identity
UE->>N3IWF: EAP-Response/Identity<br/>(NAI: [email protected])
N3IWF->>UE: EAP-Request/5G-Start<br/>(AN-Parameters请求)
UE->>N3IWF: EAP-Response/5G-NAS<br/>(AN-Params + NAS Registration Request)
N3IWF->>AMF: N2 Initial UE Message<br/>(NAS Reg Request + N3IWF Info)
end
rect rgb(255, 243, 224)
Note over UE,UDM: Phase 3: Primary Authentication
AMF->>AUSF: Nausf_UEAuthentication<br/>Auth Request (SUCI/SUPI)
AUSF->>UDM: Nudm_UEAuthentication<br/>Get Auth Data
UDM->>AUSF: 5G AV (RAND, AUTN, XRES*, K_AUSF)
AUSF->>AMF: Auth Response (RAND, AUTN, XRES*)
AMF->>N3IWF: N2 Downlink NAS Transport<br/>(NAS Auth Request: RAND, AUTN)
N3IWF->>UE: EAP-Request/5G-NAS<br/>(NAS Authentication Request)
UE->>N3IWF: EAP-Response/5G-NAS<br/>(NAS Authentication Response: RES*)
N3IWF->>AMF: N2 Uplink NAS Transport<br/>(NAS Auth Response: RES*)
AMF->>AUSF: Nausf_UEAuthentication<br/>Auth Confirm (RES*)
AUSF->>AMF: Auth Confirm Result (K_SEAF)
end
rect rgb(243, 229, 245)
Note over UE,AMF: Phase 4: NAS Security + Registration Accept
AMF->>N3IWF: N2 DL NAS Transport<br/>(NAS Security Mode Command)
N3IWF->>UE: EAP-Request/5G-NAS<br/>(NAS SMC)
UE->>N3IWF: EAP-Response/5G-NAS<br/>(NAS Security Mode Complete)
N3IWF->>AMF: N2 UL NAS Transport<br/>(NAS SMC Complete)
AMF->>N3IWF: N2 DL NAS Transport<br/>(NAS Registration Accept)
N3IWF->>UE: EAP-Request/5G-NAS<br/>(NAS Registration Accept: 5G-GUTI)
UE->>N3IWF: EAP-Response/5G-NAS<br/>(NAS Registration Complete)
N3IWF->>AMF: N2 UL NAS Transport<br/>(NAS Registration Complete)
end
rect rgb(225, 245, 254)
Note over UE,N3IWF: Phase 5: IKEv2完成
N3IWF->>UE: IKE_AUTH Response<br/>(SAr2, AUTH, TSi, TSr, [CP])
UE->>N3IWF: Informational (ACK)
Note over UE,N3IWF: 信令IPsec SA建立完成
end
IKE_SA_INIT是RFC 7296定义的IKEv2标准流程,UE和N3IWF协商出第一个IKE SA(Security Association),为后续的EAP-5G交换提供加密通道。
Step 1: UE → N3IWF: IKE_SA_INIT Request
| IE | 说明 | 典型值 |
|---|---|---|
| SAi1 | 安全关联提案(加密/完整性/PRF/DH组) | AES-CBC-256 + HMAC-SHA2-256 + DH Group 19/20 |
| KEi | Diffie-Hellman公开值 | 基于协商的DH Group计算 |
| Ni | UE随机数(Nonce) | 16~32字节随机值 |
Step 2: N3IWF → UE: IKE_SA_INIT Response
| IE | 说明 |
|---|---|
| SAr1 | N3IWF选择的安全关联参数 |
| KEr | N3IWF的DH公开值 |
| Nr | N3IWF随机数 |
| CERTREQ | 可选,请求UE证书(EAP模式下通常不发) |
此阶段完成后,UE和N3IWF基于DH交换各自计算出SK_ei/SK_er(加密密钥)和SK_ai/SK_ar(完整性密钥),后续所有IKE_AUTH消息都在这些密钥保护下传输。
设计意图:IKE_SA_INIT阶段只协商隧道级别的安全参数,不涉及3GPP认证。这种分层设计使得3GPP的认证机制(5G-AKA/EAP-AKA')可以完全在IKEv2的EAP框架内运行,实现了安全协议的解耦。
Step 3: UE → N3IWF: IKE_AUTH Request
UE发送IKE_AUTH请求,其中不包含AUTH载荷(因为认证将通过EAP完成),但包含:
- IDi:UE身份标识(NAI格式,如<SUCI>@nai.3gpp.org)
- SAi2:提议的IPsec SA参数(ESP加密/完整性算法)
Step 4-5: EAP-Identity交换
N3IWF作为EAP认证器,先通过标准EAP-Identity流程获取UE身份:
N3IWF → UE: EAP-Request/Identity
UE → N3IWF: EAP-Response/Identity (NAI: <SUCI>@nai.3gpp.org)
Step 6: EAP-Request/5G-Start
N3IWF发送EAP-Request/5G-Start消息,触发EAP-5G流程。EAP-5G的标识特征: - EAP Code: 1 (Request) - EAP Type: 0xFE (Expanded Type) - Vendor-ID: 3GPP (0x5581) - Vendor-Type: EAP-5G (0x01) - Sub-Type: 5G-Start (0x01)
Step 7: UE → N3IWF: EAP-Response/5G-NAS(核心消息)
这是整个流程中最关键的EAP-5G消息,UE同时携带AN-Parameters和NAS Registration Request:
graph LR
subgraph EAP-Response/5G-NAS
A[EAP Header<br/>Code=2 Type=0xFE]
B[Vendor-ID: 3GPP 0x5581]
C[Vendor-Type: EAP-5G 0x01]
D[Sub-Type: 5G-NAS 0x02]
E[AN-Parameters<br/>TLV编码]
F[NAS-PDU<br/>Registration Request]
end
A --> B --> C --> D --> E --> F
AN-Parameters编码格式(TS 24.502 Section 9.3.2.2.2):
| 参数类型 | Type值 | 长度 | 说明 |
|---|---|---|---|
| GUAMI | 0x01 | 6字节 | PLMN ID (3B) + AMF ID (3B) |
| Selected PLMN ID | 0x02 | 3字节 | UE选择的PLMN |
| Requested NSSAI | 0x03 | 可变 | S-NSSAI列表(SST 1B + SD 3B) |
| Establishment Cause | 0x04 | 1字节 | MO-Signaling/MO-Data/MT-Access等 |
AN-Parameters的TLV编码示例(基于free5GC n3iwue实现分析):
GUAMI TLV:
Type: 0x01 (1 byte)
Length: 0x06 (1 byte)
Value: MCC+MNC编码 (3 bytes) + AMF Region/Set/Pointer (3 bytes)
Requested NSSAI TLV:
Type: 0x03 (1 byte)
Length: N (1 byte)
Value:
S-NSSAI-1 Length: 0x04 (1 byte)
SST: 0x01 (1 byte)
SD: 0x01 0x02 0x03 (3 bytes)
S-NSSAI-2 Length: 0x04 (1 byte)
SST: 0x02 (1 byte)
SD: 0x00 0x00 0x00 (3 bytes)
设计意图:AN-Parameters是N3IWF执行AMF选择所需的关键信息。在3GPP接入中,gNB通过NGAP直接传递这些参数给AMF;而在非3GPP接入中,N3IWF需要从UE获取这些参数,然后组装到NGAP Initial UE Message中。这就是为什么AN-Parameters要在EAP-5G消息中单独编码——N3IWF需要提取它们并映射到N2接口。
Step 8: N3IWF → AMF: N2 Initial UE Message
N3IWF将收到的EAP-5G中提取的NAS-PDU和AN-Parameters组装为NGAP消息:
| NGAP IE | 来源 | 说明 |
|---|---|---|
| NAS-PDU | EAP-5G中的NAS Registration Request | UE的注册请求 |
| UserLocationInformation | N3IWF构造 | 包含N3IWF的TAC和Cell ID |
| RAN UE NGAP ID | N3IWF分配 | N3IWF侧的UE标识 |
| SelectedPLMNID | AN-Parameters中的Selected PLMN ID | 用于AMF确认PLMN |
| Allowed NSSAI | N3IWF本地配置或NRF查询 | 允许的切片列表 |
Step 9-10: AMF → AUSF → UDM/ARPF 认证向量获取
AMF根据Registration Request中的SUCI(或5G-GUTI),执行标准的5G认证向量获取流程:
- AMF调用Nausf_UEAuthentication_Authenticate Request给AUSF
- AUSF调用Nudm_UEAuthentication_Get给UDM/ARPF
- UDM/ARPF生成5G Authentication Vector (5G AV),包含RAND、AUTN、XRES*、K_AUSF
Step 11-12: NAS认证挑战下发
AMF通过N2 Downlink NAS Transport将NAS Authentication Request(包含RAND和AUTN)发给N3IWF。N3IWF封装为EAP-Request/5G-NAS:
| EAP-5G字段 | 内容 |
|---|---|
| Sub-Type | 5G-NAS (0x02) |
| AN-Parameters | 空(下行方向不携带) |
| NAS-PDU | NAS Authentication Request (RAND, AUTN) |
Step 13-14: UE响应认证
UE收到RAND和AUTN后,执行以下操作: 1. 验证网络:检查AUTN中的MAC和SQN,确认是合法网络 2. 计算RES*:基于USIM中的K和RAND,通过Milenage算法计算RES,再通过KDF推演RES* 3. 派生K_SEAF:基于CK'||IK',通过KDF推演出K_SEAF(锚点密钥)
UE将RES*通过NAS Authentication Response返回。
Step 15-16: AUSF验证
AMF将RES*转发给AUSF,AUSF比对RES*和XRES*(哈希后比对XRES*的哈希)。认证成功后,AUSF返回K_SEAF给AMF。
Step 17-18: NAS Security Mode Command
AMF通过N2下发NAS Security Mode Command,携带:
- 选定的NAS安全算法(如NEA2/NEA3加密 + NIA2/NIA3完整性)
- K_AMF的KDF输入参数
- UE安全能力确认
UE收到后,基于K_SEAF推演K_AMF,再推演NAS加密密钥和NAS完整性密钥,后续NAS消息将受到加密和完整性保护。
Step 19-20: NAS Registration Accept
AMF下发NAS Registration Accept,关键IE:
| IE | 说明 |
|---|---|
| 5G-GUTI | AMF分配的临时标识 |
| TAI List | 注册区域列表 |
| Allowed NSSAI | 允许的切片 |
| Registration Area | 注册区域 |
| 5GS Registration Result | 注册结果 |
| MICO Indication | 可选,MICO模式指示 |
| LADN Information | 可选,本地接入数据网络信息 |
Step 21-22: Registration Complete
UE发送NAS Registration Complete确认收到5G-GUTI。
Step 23: N3IWF → UE: IKE_AUTH Response
N3IWF发送最终的IKE_AUTH响应,完成IKEv2协商:
| IE | 说明 |
|---|---|
| SAr2 | 选定的IPsec SA(ESP算法) |
| AUTH | N3IWF的认证数据(基于K_N3IWF派生) |
| TSi, TSr | Traffic Selector(信令流量范围) |
| CP (Configuration Payload) | 可选,分配UE内部IP地址 |
关键密钥派生:
graph TD
K["K (USIM/UDM永久密钥)"]
K -->|"AKA"| CKIK["CK ∥ IK"]
CKIK -->|"KDF (RFC 5448)"| CKpIKp["CK' ∥ IK'"]
CKpIKp -->|"KDF (TS 33.501 6.1.1)"| KSEAF["K_SEAF<br/>(锚点密钥)"]
KSEAF -->|"KDF (TS 33.501 6.1.2)"| KAMF["K_AMF"]
KAMF -->|"KDF"| NAS_K["NAS加密/完整性密钥"]
KAMF -->|"KDF"| KN3IWF["K_N3IWF<br/>(TS 33.501 6.9.2)"]
KN3IWF -->|"KDF"| IKE_SK["IKE SA密钥<br/>(SK_ei/SK_ai等)"]
KN3IWF -->|"KDF"| IPsec_SK["IPsec Child SA密钥<br/>(ESP加密/完整性)"]
style K fill:#ffcdd2
style KSEAF fill:#fff9c4
style KN3IWF fill:#c8e6c9
K_N3IWF的派生过程(TS 33.501 Section 6.9.2):
K_N3IWF = KDF(K_AMF,
"N3IWF NAS traffic key",
P0 = Access Type (non-3GPP),
L0 = length of P0)
K_N3IWF再通过IKEv2的KDF进一步派生为: - SK_d:用于后续Child SA的密钥材料 - SK_ai/SK_ar:IKE SA完整性密钥 - SK_ei/SK_er:IKE SA加密密钥
设计意图:密钥层级的设计体现了5G安全架构的核心原则——密钥隔离。K_N3IWF与NAS密钥、3GPP接入密钥完全独立,即使N3IWF被攻破,攻击者也无法获取NAS层的密钥材料或其他接入类型的密钥。这比4G ePDG直接使用CK/IK的安全性强得多。
EAP-5G定义于TS 24.502,是一种扩展EAP方法(Expanded Type),用于在IKEv2隧道内传输5G NAS消息和接入网参数。
EAP-5G消息通用格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code (1B) | Identifier | Length (2B) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = 0xFE (Expanded) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-ID = 0x005581 (3GPP) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor-Type = 0x00000001 (EAP-5G) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Type (1B) | Reserved | AN-Params Len (2B) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AN-Parameters (TLV) ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NAS-PDU Length (2B) | NAS-PDU ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sub-Type值 | 名称 | 方向 | 用途 |
|---|---|---|---|
| 0x01 | 5G-Start | N3IWF→UE | 触发UE发送NAS注册请求 |
| 0x02 | 5G-NAS | 双向 | 携带AN-Parameters和NAS-PDU |
| 0x03 | 5G-Stop | N3IWF→UE | 终止EAP-5G会话(异常情况) |
| 0x04 | 5G-Auto-Re-Auth | 双向 | 自动重认证(R16新增) |
| 参数 | Type | 编码规则 | 示例值 |
|---|---|---|---|
| GUAMI | 0x01 | PLMN ID(BCD编码3字节)+ AMF ID(3字节) | 02F860 + 800001 |
| PLMN ID (Selected) | 0x02 | BCD编码,MCC+MNC | 02F860 (MCC=208, MNC=60) |
| Requested NSSAI | 0x03 | Length+SST+SD列表 | 04 01 010203 |
| Establishment Cause | 0x04 | 枚举值 | 0x00 (MO-Signaling) |
| Requested Target Cell | 0x05 | 可选,目标小区ID | - |
| UE's Usage | 0x06 | 可选 | - |
PLMN ID的BCD编码特殊规则(以MCC=460, MNC=00为例):
Byte 1: MCC Digit 2 | MCC Digit 1 → 0x64
Byte 2: MNC Digit 3 | MCC Digit 3 → 0x04 (MNC 3位时) 或 0xF4 (MNC 2位时)
Byte 3: MNC Digit 2 | MNC Digit 1 → 0x00
stateDiagram-v2
[*] --> Idle: UE未连接
Idle --> IKE_SA_INIT: 收到IKE_SA_INIT Request
IKE_SA_INIT --> IKE_SA_ESTABLISHED: SA协商成功
IKE_SA_ESTABLISHED --> EAP_IDENTITY: 发送EAP-Request/Identity
EAP_IDENTITY --> EAP_5G_START: 收到EAP-Response/Identity
EAP_5G_START --> NAS_REG_PENDING: 收到EAP-Response/5G-NAS<br/>(Registration Request)
NAS_REG_PENDING --> AUTH_CHALLENGE: N2 DL NAS Transport<br/>(Auth Request)
AUTH_CHALLENGE --> AUTH_VERIFY: 收到EAP-Response/5G-NAS<br/>(Auth Response RES*)
AUTH_VERIFY --> NAS_SMC: AUSF认证成功
AUTH_VERIFY --> AUTH_FAILURE: AUSF认证失败
NAS_SMC --> REG_ACCEPT: 收到EAP-Response/5G-NAS<br/>(SMC Complete)
REG_ACCEPT --> IKE_AUTH_DONE: 收到Registration Complete
IKE_AUTH_DONE --> REGISTERED: IKE_AUTH Response发送成功
REGISTERED --> [*]: 正常去注册
AUTH_FAILURE --> [*]: EAP-Failure
IKE_SA_INIT --> [*]: SA协商失败
| 方向 | N3IWF行为 |
|---|---|
| UL: EAP-Response/5G-NAS → N2 | 提取NAS-PDU,封装为NGAP Uplink NAS Transport |
| DL: N2 → EAP-Request/5G-NAS | 从NGAP Downlink NAS Transport提取NAS-PDU,封装为EAP-Request/5G-NAS |
| UL: TCP NAS → N2 | 解析TCP流中的NAS消息,封装为NGAP Uplink NAS Transport |
| DL: N2 → TCP NAS | 从NGAP提取NAS-PDU,写入TCP连接 |
注册完成后,UE通过信令IPsec SA内的TCP连接发送PDU Session Establishment请求。PDU会话建立成功后,N3IWF为每个QoS Flow创建一个IPsec Child SA:
sequenceDiagram
participant UE
participant N3IWF
participant SMF
participant UPF
UE->>N3IWF: NAS PDU Session Establishment Request<br/>(via 信令IPsec SA + TCP)
N3IWF->>SMF: N2 SM Info (via AMF)
SMF->>N3IWF: N2 SM Info: PDU Session Resource Setup<br/>(QoS Flow参数, GTP Tunnel Info)
N3IWF->>UE: CREATE_CHILD_SA Request<br/>(SA提案, TSi, TSr, SPI)
UE->>N3IWF: CREATE_CHILD_SA Response<br/>(确认SA, SPI)
Note over UE,N3IWF: 用户面IPsec Child SA建立
N3IWF->>UPF: GTP-U Tunnel (N3) 建立
Note over UE,UPF: UE ←IPsec→ N3IWF ←GTP-U→ UPF ←N6→ DN
用户面协议栈(TS 23.501 Figure 4.4.2.1-2):
UE N3IWF UPF
| App PDU (IP) | |
| GRE (+QFI) | |
| IP (Inner) | |
| ESP (IPsec Tunnel) |---IP/WiFi---| |
| IP (Outer) | | |
| WiFi (802.11) | | |
| App PDU (IP) |
| GTP-U |
| UDP |
| IP |
| N3 |
GRE头部中的QFI(QoS Flow Identifier)字段用于标识数据包所属的QoS Flow,N3IWF根据QFI将上行数据映射到对应的GTP-U隧道,下行方向则将GTP-U中的QFI映射到对应的IPsec Child SA。
# IKEv2协商阶段
ikev2 || (udp.port == 500 || udp.port == 4500)
# EAP-5G消息(EAP Type = 0xFE = Expanded)
eap.type == 254
# IPsec ESP隧道
esp
# NAS-5GS消息(注册完成后通过TCP传输)
nas-5gs
# 综合过滤器
ikev2 || esp || (eap.type == 254) || nas-5gs
| 故障现象 | 根因分析 | 排错方法 |
|---|---|---|
| IKE_SA_INIT无响应 | 防火墙拦截UDP 500/4500 | tcpdump -i any udp port 500 or port 4500 |
| NO_PROPOSAL_CHOSEN | 加密算法不匹配 | 检查UE和N3IWF的IKE Proposal配置 |
| EAP-Identity后断开 | N3IWF无法连接AMF(N2/SCTP) | 检查N3IWF到AMF的SCTP连接状态 |
| 5GMM Cause #7 | 用户未签约非3GPP接入 | 检查UDM中Access andMobilitySubscriptionData |
| 5GMM Cause #22 | AMF拥塞 | 检查AMF负载和过载控制策略 |
| EAP-5G AN-Parameters解析失败 | PLMN ID编码错误 | 对比TS 24.502 Section 9.3.2.2.2的BCD编码 |
| 注册完成后无数据 | Child SA未建立或GRE隧道异常 | 检查IPsec SA状态 ip xfrm state |
| 单向通(上行有下行无) | NAT-T未启用或SPD不匹配 | 确认UDP 4500 NAT-T,检查Security Policy Database |
一个成功的N3IWF注册过程在Wireshark中应呈现如下消息序列:
1. IKE_SA_INIT Request/Response (2包)
2. IKE_AUTH Request (含IDi,无AUTH) (1包)
3. EAP-Request/Identity (1包)
4. EAP-Response/Identity (1包)
5. EAP-Request/5G-Start (1包)
6. EAP-Response/5G-NAS (含AN-Params + NAS Reg Request) (1包)
7. EAP-Request/5G-NAS (NAS Auth Request: RAND, AUTN) (1包)
8. EAP-Response/5G-NAS (NAS Auth Response: RES*) (1包)
9. EAP-Request/5G-NAS (NAS SMC) (1包)
10. EAP-Response/5G-NAS (NAS SMC Complete) (1包)
11. EAP-Request/5G-NAS (NAS Registration Accept) (1包)
12. EAP-Response/5G-NAS (NAS Registration Complete) (1包)
13. IKE_AUTH Response (含AUTH, SAr2, TSi, TSr) (1包)
总计约13-15个IKEv2/EAP包,整个注册过程在正常情况下耗时200-500ms。
Q1: N3IWF和TNGF的区别是什么?
A: N3IWF用于非授信非3GPP接入(如公共Wi-Fi),UE与N3IWF之间需要建立IPsec隧道保证安全;TNGF(Trusted Non-3GPP Gateway Function,R16引入)用于授信非3GPP接入(如运营商自建Wi-Fi),因为接入网可信,安全要求可适当降低。TNGF使用TLS而非IKEv2/IPsec建立安全通道,协议开销更小。此外,TWIF(Trusted WLAN Interworking Function)则专门用于WLAN的授信接入场景。
Q2: EAP-5G为什么不直接用EAP-AKA'传输NAS消息?
A: EAP-AKA'是一种认证方法,它的载荷格式是固定的(用于传递AT_RAND、AT_AUTN等AKA参数)。而EAP-5G是一种传输协议(wrapper),它的Sub-Type=5G-NAS可以封装任意的NAS消息,实现了认证(5G-AKA/EAP-AKA')和NAS传输的解耦。这种设计使得5G核心网不需要关心底层是3GPP接入还是非3GPP接入,AMF处理的NAS消息格式完全一致。
Q3: 注册完成后为什么还需要TCP连接传输NAS消息?
A: IKEv2的EAP交换是"请求-响应"模式,一次只能有一个未完成的EAP消息,不适合双向异步的NAS消息传输。注册完成后,UE在信令IPsec SA内建立一个TCP连接到N3IWF的特定端口(TS 24.502规定),TCP连接支持双向独立收发NAS消息,满足SMF/AMF主动下发NAS通知的需求(如Configuration Update Command、Network Slicing Change等)。
Q4: 一个UE能否同时通过3GPP和非3GPP接入注册到同一个AMF?
A: 可以。3GPP R16引入了ATSSS(Access Traffic Steering, Switching and Splitting)功能,支持UE通过3GPP和非3GPP接入同时注册到5G核心网(称为Multi-Access PDU Session)。AMF通过不同的Access Type标识区分两个注册。但需要注意:两个注册使用不同的GUAMI和不同的安全上下文,N3IWF和gNB各自独立维护与AMF的N2连接。
Q5: N3IWF部署时如何选择AMF?
A: N3IWF执行AMF选择的依据来自EAP-5G中UE提供的AN-Parameters(GUAMI、Selected PLMN ID、Requested NSSAI)。选择逻辑遵循TS 23.501 Section 6.3.5: 1. 如果AN-Parameters中有GUAMI且对应的AMF可用,直接选择该AMF 2. 否则根据PLMN ID + NSSAI查询NRF,选择支持对应切片的AMF 3. 如果没有NSSAI信息,N3IWF使用本地配置的默认AMF
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
