本文檔介紹在Cisco SMF和UPF網路元素中配置虛擬DNN/APN的步驟。
在3GPP 5G架構中,資料網路名稱(DNN)是4G/LTE中相當於存取點名稱(APN)的5G版本。它標識PDU會話建立到的資料網路。在標準部署中,一個DNN會統一使用在參與會話管理的所有網路功能(NF)上,包括Unified Data Management(UDM)、AMF、SMF、CHF、UPF、RADIUS和PCF。
虛擬DNN允許網路向特定網路功能呈現不同的DNN身份,同時使用基本DNN與其他網路功能進行使用者互動。這實現了計費差異、選擇性策略實施和服務分離,而無需單獨物理基礎設施或UDM中使用者訂閱資料的修改。
本文檔為以下各項提供了技術解決方案:
支援的部署模式:
| 型號 |
說明 |
例項 |
|---|---|---|
| 異地複製SMF |
兩個SMF站點成對以實現冗餘。更改同時應用於兩個站點。 |
每個SMF(_inst1, _inst2)2個例項 |
| 獨立SMF |
單個SMF沒有地域複製。 |
1個例項(僅限_inst1) |
支援的實施方法:
| 方法 |
說明 |
|---|---|
| NSO MoP自動化 |
使用MoP自動化負載通過Cisco NSO RESTful API部署配置 |
| 直接CLI |
配置直接應用於SMF/UPF CLI |
在標準5G核心部署中,當UE發起具有特定DNN的PDU會話時,該相同的DNN身份將被傳送到會話生命週期中涉及的所有網路功能 — UDM、CHF、UPF、RADIUS和PCF。這會帶來特定的挑戰。
如果沒有虛擬DNN功能,運營商需要:
虛擬DNN功能通過允許對單個網路功能進行選擇性DNN身份表示來解決這些問題。關鍵機制是:
虛擬DNN — 網路功能互動行為SMF將基本DNN(從AMF接收)解析為虛擬DNN的過程為:
SMF基DNN到虛擬DNN解析流
高級步驟:
| 選項 |
NF清單 |
PCF互動 |
RADIUS驗證 |
使用案例 |
|---|---|---|---|---|
| 選項A |
[ chf upf radius ] |
已停用 |
已啟用 |
UDM使用基本DNN;無PCF已啟用RADIUS |
| 選項B |
[ chf udm upf pcf ] |
已啟用 |
已停用 |
無RADIUS驗證;已啟用PCF |
| 選項C |
[ chf upf ] |
已停用 |
已停用 |
極小NF互動(僅限CHF + UPF) |
附註:根據需要更改配置。
| 作業階段型別 |
SMF配置 |
UPF pdp型別 |
|---|---|---|
| 僅限IPv4 |
會話型別IPV4 |
pdp型ipv4 |
| 僅IPv6 |
會話型別IPV6 |
pdp型ipv6 |
| IPv4v6(雙堆疊) |
會話型別IPV4V6 |
pdp型別ipv4 ipv6 |
方法1. SMF上的直接CLI
在所有目標SMF上執行(同時執行兩個地理複製站點)。
在策略訂戶polsub中新增優先順序條目,以將訂戶(按SUPI範圍、國家/地區代碼和例項)對映到虛擬DNN運營商策略。
config policy subscriber polsub precedence 1 supi-start-range <SUPI-START> supi-stop-range <SUPI-STOP> cc-start-range <CC-VALUE> cc-stop-range <CC-VALUE> instance-start-range 1 instance-stop-range 1 operator-policy oppol_<VDNN>_inst1 exit precedence 2 supi-start-range <SUPI-START> supi-stop-range <SUPI-STOP> cc-start-range <CC-VALUE> cc-stop-range <CC-VALUE> instance-start-range 2 instance-stop-range 2 operator-policy oppol_<VDNN>_inst2 exit exit
為每個例項建立運營商策略,指向虛擬DNN策略DNN。
config policy operator oppol_<VDNN>_inst1 policy dnn poldnn_<VDNN>_inst1 exit policy operator oppol_<VDNN>_inst2 policy dnn poldnn_<VDNN>_inst2 exit
此處定義了虛擬DNN替代。傳入的基本DNN(來自AMF)對映到虛擬DNN配置檔案。
config policy dnn poldnn_<VDNN>_inst1 dnn <BASE-DNN-NAME> profile dnnprof-<VDNN>_inst1 exit policy dnn poldnn_<VDNN>_inst2 dnn <BASE-DNN-NAME> profile dnnprof-<VDNN>_inst2 exit
DNN配置檔案定義虛擬DNN名稱、NF清單(NF接收虛擬DNN)、RMGR標籤(共用資源連結)和其他會話引數。
config profile dnn dnnprof-<VDNN>_inst1 dns primary ipv4 <PRIMARY-DNS-IP> dns secondary ipv4 <SECONDARY-DNS-IP> network-element-profiles chf <CHF-PROFILE> network-element-profiles amf <AMF-PROFILE> network-element-profiles udm <UDM-PROFILE> network-element-profiles scp <SCP-PROFILE> dnn <VIRTUAL-DNN-NAME> network-function-list [ chf radius upf ] dnn rmgr <RMGR-TAG>_1 timeout up-idle <UP-IDLE-TIMEOUT> cp-idle <CP-IDLE-TIMEOUT> charging-profile <CHARGING-PROFILE> wps-profile <WPS-PROFILE> ssc-mode 1 allowed [ 2 ] session type <SESSION-TYPE> upf apn <VIRTUAL-DNN-NAME> qos-profile <QOS-PROFILE> authentication secondary radius group <RADIUS-GROUP> authentication algorithm pap 1 always-on false dcnr true pcf-interaction false userplane-inactivity-timer <INACTIVITY-TIMER> only-nr-capable-ue false eventmgmt-policy <EVENT-POLICY> exit profile dnn dnnprof-<VDNN>_inst2 dns primary ipv4 <PRIMARY-DNS-IP> dns secondary ipv4 <SECONDARY-DNS-IP> network-element-profiles chf <CHF-PROFILE> network-element-profiles amf <AMF-PROFILE> network-element-profiles udm <UDM-PROFILE> network-element-profiles scp <SCP-PROFILE> dnn <VIRTUAL-DNN-NAME> network-function-list [ chf radius upf ] dnn rmgr <RMGR-TAG>_2 timeout up-idle <UP-IDLE-TIMEOUT> cp-idle <CP-IDLE-TIMEOUT> charging-profile <CHARGING-PROFILE> wps-profile <WPS-PROFILE> ssc-mode 1 allowed [ 2 ] session type <SESSION-TYPE> upf apn <VIRTUAL-DNN-NAME> qos-profile <QOS-PROFILE> authentication secondary radius group <RADIUS-GROUP> authentication algorithm pap 1 always-on false dcnr true pcf-interaction false userplane-inactivity-timer <INACTIVITY-TIMER> only-nr-capable-ue false eventmgmt-policy <EVENT-POLICY> exit
apn <VIRTUAL-DNN-NAME>
gtpp group gtpp_group
active-charging rulebase rulebase-mobility
exit
方法2:NSO MoP自動化
配置檔案:virtual_dnn_new_optionA.cfg
路徑:/var/opt/ncs/mops
(檔案內容與之前的CLI相同)
NSO負載(地理複製 — 兩個站點):
POST: http://<NSO-SERVER>:8080/restconf/operations/mop-mop:action/mop-automation
{
"mop-automation": {
"mop-file-name": [
{
"file-name": "virtual_dnn_new_optionA.cfg",
"order": 1,
"target-devices-list": [
{ "target-device-name": "<SMF-NODE-SITE-A>" },
{ "target-device-name": "<SMF-NODE-SITE-B>" }
]
}
],
"operation-type": "dry-run"
}
}
注意:第一次執行時使用'operation-type:dry-run'驗證增量配置。驗證後,請更改為「operation-type:提交」以應用。
在SMF上提交新的虛擬DNN配置檔案後:
show system status show running-status info | nomore show running-config profile dnn <VIRTUAL-DNN-PROFILE-INST1> show running-config profile dnn <VIRTUAL-DNN-PROFILE-INST2>
確認:系統狀態為100%,無BGP或CDL Pod重新啟動。
在兩個站點間為虛擬DNN服務的所有UPF上新增虛擬DNN APN配置。
僅適用於IPV4:
config
context <UPF-CONTEXT>
apn <VIRTUAL-DNN-NAME>
pdp-type ipv4
selection-mode subscribed sent-by-ms chosen-by-sgsn
gtpp group <GTPP-GROUP>
ip access-group <IPV4-ACL-NAME> in
ip source-violation ignore
ip context-name <UPF-CONTEXT>
active-charging rulebase <RULEBASE-NAME>
exit
exit
end
僅適用於IPV6:
config
context <UPF-CONTEXT>
apn <VIRTUAL-DNN-NAME>
pdp-type ipv6
selection-mode subscribed sent-by-ms chosen-by-sgsn
gtpp group <GTPP-GROUP>
ipv6 access-group <IPV6-ACL-NAME> in
ip source-violation ignore
ip context-name <UPF-CONTEXT>
active-charging rulebase <RULEBASE-NAME>
exit
exit
end
對於IPV4V6(雙堆疊):
config
context <UPF-CONTEXT>
apn <VIRTUAL-DNN-NAME>
pdp-type ipv4 ipv6
selection-mode subscribed sent-by-ms chosen-by-sgsn
gtpp group <GTPP-GROUP>
ip access-group <IPV4-ACL-NAME> in
ip source-violation ignore
ip context-name <UPF-CONTEXT>
ipv6 access-group <IPV6-ACL-NAME> in
active-charging rulebase <RULEBASE-NAME>
exit
exit
end
NSO MoP自動化(UPF):
配置檔案:virtual_dnn_upf_new.cfg
路徑:/var/opt/ncs/mops
POST: http://<NSO-SERVER>:8080/restconf/operations/mop-mop:action/mop-automation
{
"mop-automation": {
"mop-file-name": [
{
"file-name": "virtual_dnn_upf_new.cfg",
"order": 1,
"target-devices-list": [
{ "target-device-name": "<UPF-NODE-SITE-A-1>" },
{ "target-device-name": "<UPF-NODE-SITE-A-2>" },
{ "target-device-name": "<UPF-NODE-SITE-A-3>" },
{ "target-device-name": "<UPF-NODE-SITE-A-4>" },
{ "target-device-name": "<UPF-NODE-SITE-B-1>" },
{ "target-device-name": "<UPF-NODE-SITE-B-2>" },
{ "target-device-name": "<UPF-NODE-SITE-B-3>" },
{ "target-device-name": "<UPF-NODE-SITE-B-4>" }
]
}
],
"operation-type": "dry-run"
}
}
show configuration context <UPF-CONTEXT> apn <VIRTUAL-DNN-NAME> show system status show session summary
在所有UPF上成功配置後,儲存配置以在重新引導後保留。在每個UPF上執行:
show boot show dir /flash show dir /sftp cp /flash/<PRODUCTION-CONFIG>.cfg /sftp/<PRODUCTION-CONFIG>_Backup-<DATE>.cfg save configuration /flash/<PRODUCTION-CONFIG>.cfg -noconfirm
當SMF上已存在虛擬DNN,並且您需要修改其配置(例如,更改NF清單、禁用/啟用PCF互動、更改RADIUS設定)時,請使用此部分。
高級步驟:
目的:在應用配置更改時,防止在虛擬DNN上建立新的PDU會話。現有會話不受影響。
方法1. SMF上的直接CLI
在所有目標SMF上執行:
config profile dnn <VIRTUAL-DNN-PROFILE-INST1> mode offline exit profile dnn <VIRTUAL-DNN-PROFILE-INST2> mode offline exit show config diff | nomore commit
方法2. NSO MoP自動化
配置檔案:virtual_dnn_offline.cfg
路徑:/var/opt/ncs/mops
POST: http://<NSO-SERVER>:8080/restconf/operations/mop-mop:action/mop-automation
{
"mop-automation": {
"mop-file-name": [
{
"file-name": "virtual_dnn_offline.cfg",
"order": 1,
"target-devices-list": [
{ "target-device-name": "<SMF-NODE-SITE-A>" },
{ "target-device-name": "<SMF-NODE-SITE-B>" }
]
}
],
"operation-type": "dry-run"
}
}
注意:第一次執行時使用'operation-type:dry-run'用於驗證。然後更改為「operation-type:commit'以便應用。
步驟後驗證:
show system status show running-status info | nomore
系統狀態必須保持為100%。BGP或CDL Pod不會重新啟動,也不會對現有呼叫產生影響。
場景1.從NF清單中刪除UDM並禁用PCF互動
目的:虛擬DNN僅傳送到CHF、UPF和RADIUS。UDM使用基本DNN。已禁用PCF。
直接CLI:
config profile dnn <VIRTUAL-DNN-PROFILE-INST1> no mode offline dnn <VIRTUAL-DNN-NAME> network-function-list [ chf upf radius ] pcf-interaction false exit profile dnn <VIRTUAL-DNN-PROFILE-INST2> no mode offline dnn <VIRTUAL-DNN-NAME> network-function-list [ chf upf radius ] pcf-interaction false exit show config diff | nomore commit
NSO MoP自動化:
配置檔案:virtual_dnn_modify_no_udm_no_pcf.cfg
POST: http://<NSO-SERVER>:8080/restconf/operations/mop-mop:action/mop-automation
{
"mop-automation": {
"mop-file-name": [
{
"file-name": "virtual_dnn_modify_no_udm_no_pcf.cfg",
"order": 1,
"target-devices-list": [
{ "target-device-name": "<SMF-NODE-SITE-A>" },
{ "target-device-name": "<SMF-NODE-SITE-B>" }
]
}
],
"operation-type": "dry-run"
}
}
預期的修改後配置:
profile dnn <VIRTUAL-DNN-PROFILE-INST1> dns primary ipv4 <PRIMARY-DNS-IP> dns secondary ipv4 <SECONDARY-DNS-IP> network-element-profiles chf <CHF-PROFILE> network-element-profiles amf <AMF-PROFILE> network-element-profiles udm <UDM-PROFILE> network-element-profiles scp <SCP-PROFILE> dnn <VIRTUAL-DNN-NAME> network-function-list [ chf upf radius ] dnn rmgr <BASE-DNN-RMGR-INST1> timeout up-idle <UP-IDLE-TIMEOUT> cp-idle <CP-IDLE-TIMEOUT> charging-profile <CHARGING-PROFILE> wps-profile <WPS-PROFILE> ssc-mode 1 allowed [ 2 ] session type <SESSION-TYPE> upf apn <VIRTUAL-DNN-NAME> qos-profile <QOS-PROFILE> authentication secondary radius group <RADIUS-GROUP> authentication algorithm pap 1 always-on false dcnr true pcf-interaction false userplane-inactivity-timer <INACTIVITY-TIMER> only-nr-capable-ue false eventmgmt-policy <EVENT-POLICY> exit
show system status show running-status info | nomore show running-config profile dnn <VIRTUAL-DNN-PROFILE-INST1> show running-config profile dnn <VIRTUAL-DNN-PROFILE-INST2>
確認:系統狀態為100%,沒有BGP或CDL Pod重新啟動,對現有呼叫沒有影響。
在SMF CLI上啟動監控器訂用程式:
monitor subscriber supi imsi-<TEST-IMSI>
跟蹤中的預期行為:
| 檢查點 |
預期結果 |
|---|---|
| PDU作業階段建立請求 |
DNN =從AMF接收的<Base-DNN-NAME> |
| UDM互動(Nudm_SDM) |
傳送到UDM的DNN =基本DNN(通過dnn rmgr) |
| CHF互動(Nchf_ConvergedCharging) |
傳送到CHF的DNN = <VIRTUAL-DNN-NAME> |
| UPF(建立PFCP會話) |
APN = <VIRTUAL-DNN-NAME> |
| RADIUS Access-Request(如果已啟用) |
Called-Station-Id = <VIRTUAL-DNN-NAME> |
| PCF互動(Npcf_SMPolicyControl)(如果已啟用) |
DNN = <VIRTUAL-DNN-NAME> |
| PCF互動(如果禁用) |
跟蹤中沒有pcf消息 |
| PDU作業階段建立接受 |
已成功建立會話 |
| IP位址分配 |
從正確池分配的有效IP |
監控器使用者輸出示例(關鍵欄位):
--- PDU Session Establishment Request --- DNN: <VIRTUAL-DNN-NAME> S-NSSAI: SST=1, SD=<SD-VALUE> PDU Session Type: <SESSION-TYPE> --- Nudm_SDM (Subscription Data) --- DNN: <BASE-DNN-NAME> <-- Base DNN used for UDM lookup --- Nchf_ConvergedCharging_Create --- DNN: <VIRTUAL-DNN-NAME> <-- Virtual DNN sent to CHF --- PFCP Session Establishment Request (to UPF) --- APN: <VIRTUAL-DNN-NAME> <-- Virtual DNN sent to UPF --- RADIUS Access-Request (if applicable) --- Called-Station-Id: <VIRTUAL-DNN-NAME> <-- Virtual DNN sent to RADIUS --- Npcf_SMPolicyControl_Create (if applicable) --- DNN: <VIRTUAL-DNN-NAME> <-- Virtual DNN sent to PCF --- PDU Session Establishment Accept --- PDU Address: <ALLOCATED-IP> DNN: <VIRTUAL-DNN-NAME>
驗證UPF上的會話:
show subscribers imsi <TEST-IMSI>
show subscribers user-plane-only full callid <callid>
| 變數 |
說明 |
示例值 |
|---|---|---|
| <VIRTUAL-DNN-NAME> |
虛擬DNN識別符號 |
enterprise-iot.cc |
| <VIRTUAL-DNN-PROFILE-INST1> |
DNN配置檔名稱,例項1 |
dnnprof-enterprise-iot.cc_inst1 |
| <VIRTUAL-DNN-PROFILE-INST2> |
DNN配置檔名稱,例項2 |
dnnprof-enterprise-iot.cc_inst2 |
| <BASE-DNN-RMGR-INST1> |
基礎DNN的資源管理器,例項1 |
base-apn.operator_1 |
| <BASE-DNN-RMGR-INST2> |
基本DNN例項2的資源管理器 |
base-apn.operator_2 |
| <SMF-NODE-SITE-A> |
站點A上的SMF節點名稱 |
SMF站點A |
| <SMF-NODE-SITE-B> |
站點B上的SMF節點名稱 |
SMF-SITE-B |
| <UPF-NODE-SITE-A-1>到<UPF-NODE-SITE-A-4> |
站點A的UPF節點 |
UPF1A至UPF1D |
| <UPF-NODE-SITE-B-1>到<UPF-NODE-SITE-B-4> |
站點B的UPF節點 |
UPF1A至UPF1D |
| <PRIMARY-DNS-IP> |
DNN的主DNS IP |
10.x.x.x |
| <SECONDARY-DNS-IP> |
DNN的輔助DNS IP |
10.x.x.x |
| <CHF配置檔案> |
CHF網路元素配置檔名稱 |
nfprf-chf2 |
| <AMF配置檔案> |
AMF網路元素配置檔名稱 |
nfprf-amf1 |
| <UDM-PROFILE> |
UDM網路元素配置檔名稱 |
nfprf-udm1 |
| <SCP-PROFILE> |
SCP網路元素配置檔名稱 |
nfprf-scp1 |
| <CHARGING-FILE> |
計費配置檔名稱 |
chgprof-b2b |
| <QOS-PROFILE> |
QoS配置檔名稱 |
5qi-to-dscp-mapping-table |
| <RADIUS-GROUP> |
RADIUS AAA組名稱 |
aaa_group_iot |
| <UP-IDLE-TIMEOUT> |
使用者平面空閒超時(秒) |
3600 |
| <CP-IDLE-TIMEOUT> |
控制平面空閒超時(秒) |
7320 |
| <INACTIVITY-TIMER> |
Userplane inactivity timer(秒) |
3600 |
| <EVENT-POLICY> |
事件管理策略名稱 |
em_duplicateip |
| <WPS-PROFILE> |
無線優先順序服務設定檔 |
dynamic-wps |
| <NSO-SERVER> |
NSO伺服器主機名/IP |
nso-server.mgmt |
| <UPF-CONTEXT> |
DNN的UPF上下文名稱 |
企業對企業 |
| <GTPP-GROUP> |
用於產生CDR的GTPP組 |
gtpp_group |
| <RULEBASE-NAME> |
有效計費規則庫 |
rulebase-mobility |
| <IPV4-ACL-NAME> |
IPv4存取控制清單名稱 |
ue_acl_B2B |
| <IPV6-ACL-NAME> |
IPv6訪問控制清單名稱 |
ipv6_acl_B2B |
| <SESSION-TYPE> |
PDU會話IP型別 |
IPV4/IPV6/IPV4V6 |
| <TEST-IMSI> |
測試使用者IMSI以進行驗證 |
10000XXXXXXXXX |
| 選項 |
NF清單 |
PCF互動 |
RADIUS驗證 |
pcf互動設定 |
|---|---|---|---|---|
| A |
[ chf udm upf radius ] |
已啟用(預設) |
已啟用 |
未配置(預設) |
| B |
[ chf upf radius ] |
已停用 |
已啟用 |
pcf-interaction false |
| 思 |
[ chf udm upf pcf ] |
已啟用 |
已停用 |
未配置(預設) |
| D |
[ chf upf ] |
已停用 |
已停用 |
pcf-interaction false |
| 案例 |
變更說明 |
NF清單之後 |
PCF設定 |
|---|---|---|---|
| 1 |
刪除UDM +禁用PCF |
[ chf upf radius ] |
pcf-interaction false |
| 2 |
刪除UDM,保留PCF |
[ chf upf radius pcf ] |
預設(啟用) |
| 3 |
僅禁用PCF |
[ chf udm upf radius ] |
pcf-interaction false |
| 4 |
移除RADIUS |
[ chf udm upf pcf ] |
預設(啟用) |
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
1.0 |
01-Sep-2026
|
初始版本 |