In questo documento viene descritto come configurare il DNN/APN virtuale negli elementi di rete Cisco SMF e UPF.
Nell'architettura 3GPP 5G, un nome di rete dati (DNN) è l'equivalente 5G di un nome di punto di accesso (APN) in 4G/LTE. Identifica la rete di dati su cui viene stabilita una sessione PDU. In un'implementazione standard, un singolo DNN viene utilizzato in modo uniforme in tutte le funzioni di rete (NF) coinvolte nella gestione delle sessioni, inclusi Unified Data Management (UDM), AMF, SMF, CHF, UPF, RADIUS e PCF.
Un DNN virtuale consente alla rete di presentare un'identità DNN diversa a funzioni di rete specifiche mentre utilizza un DNN di base per le interazioni del sottoscrittore con altre funzioni di rete. Ciò consente la differenziazione dei costi, l'applicazione selettiva delle policy e la separazione dei servizi senza richiedere un'infrastruttura fisica separata o modifiche ai dati di sottoscrizione degli abbonati in UDM.
Questo documento offre una soluzione tecnica per:
Modelli di distribuzione supportati:
| Modello |
Descrizione |
Istanze |
|---|---|---|
| SMF con replica geografica |
Due siti SMF abbinati per la ridondanza. Modifiche applicate a entrambi i siti contemporaneamente. |
2 istanze per SMF (_inst1, _inst2) |
| SMF autonomo |
SMF singolo senza replica geografica. |
1 istanza (solo_inst1) |
Metodi di implementazione supportati:
| Metodo |
Descrizione |
|---|---|
| Automazione MoP NSO |
Configurazione distribuita tramite API RESTful di Cisco NSO utilizzando i payload di automazione MoP |
| CLI diretta |
Configurazione applicata direttamente sulla CLI di SMF/UPF |
In un'implementazione di base 5G standard, quando un utente avvia una sessione PDU con un DNN specifico, la stessa identità DNN viene inviata a tutte le funzioni di rete coinvolte nel ciclo di vita della sessione (UDM, CHF, UPF, RADIUS e PCF). Ciò crea problemi specifici.
Senza una funzionalità DNN virtuale, gli operatori devono:
La funzione Virtual DNN risolve questi problemi consentendo la presentazione selettiva dell'identità DNN a singole funzioni di rete. Il meccanismo chiave è il seguente:
Virtual DNN - Comportamento interazione funzioni di reteIl processo per la risoluzione di un DNN di base (ricevuto da AMF) in un DNN virtuale è il seguente:
Flusso di risoluzione da DNN di base SMF a DNN virtuale
Passi di alto livello:
| Opzione |
Elenco NF |
Interazione PCF |
Autenticazione RADIUS |
Scenario d'uso |
|---|---|---|---|---|
| Opzione A |
[ raggio upf chf ] |
Disabled |
Attivato |
UDM utilizza DNN di base; nessun PCF; RADIUS abilitato |
| Opzione B |
[ chf udm upf pcf ] |
Attivato |
Disabled |
Nessuna autorizzazione RADIUS; PCF abilitato |
| Opzione C |
[ chf upf ] |
Disabled |
Disabled |
Interazione NF minima (solo CHF + UPF) |
Nota: Apportare le modifiche alla configurazione in base ai requisiti.
| Tipo di sessione |
Configurazione SMF |
UPF tipo pdp |
|---|---|---|
| Solo IPv4 |
tipo di sessione IPV4 |
ipv4 tipo pdp |
| Solo IPv6 |
tipo di sessione IPV6 |
ipv6 tipo pdp |
| IPv4v6 (Dual Stack) |
tipo di sessione IPV4V6 |
ipv4 ipv6 tipo pdp |
Metodo 1. CLI diretto su SMF
Esecuzione su tutti gli SMF di destinazione (entrambi i siti con replica geografica simultaneamente).
Aggiungere le voci di precedenza nel criterio polsub per mappare il sottoscrittore (per intervallo SUPI, codice paese e istanza) al criterio dell'operatore DNS virtuale.
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
Creare il criterio Operator per ogni istanza, puntando al DNN del criterio DNN virtuale.
config policy operator oppol_<VDNN>_inst1 policy dnn poldnn_<VDNN>_inst1 exit policy operator oppol_<VDNN>_inst2 policy dnn poldnn_<VDNN>_inst2 exit
In questo caso viene definita la sostituzione DNN virtuale. Il DNN di base in ingresso (da AMF) è mappato al profilo DNN virtuale.
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
Il profilo DNN definisce il nome DNN virtuale, l'elenco NF (che riceve il DNN virtuale), il tag RMGR (shared resource linkage) e altri parametri di sessione.
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
Metodo 2: Automazione MoP NSO
File di configurazione: virtual_dnn_new_optionA.cfg
Percorso: /var/opt/ncs/mops
(Contenuto del file uguale a quello della CLI)
Payload NSO (replica geografica - entrambi i siti):
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"
}
}
Attenzione: Prima esecuzione con 'operation-type: per convalidare la configurazione delta. Dopo la convalida, passare a 'operation-type: commit' per l'applicazione.
Dopo aver eseguito il commit del nuovo profilo DNN virtuale su SMF:
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>
Conferma: Stato del sistema al 100%, nessun riavvio del pod BGP o CDL.
Aggiungere la configurazione dell'APN DNN virtuale su tutti gli UPF che gestiscono il DNN virtuale su entrambi i siti.
Solo per 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
Solo per 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
Per IPV4V6 (Dual Stack):
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
UPF (NSO MoP Automation):
File di configurazione: virtual_dnn_upf_new.cfg
Percorso: /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
Dopo aver eseguito correttamente la configurazione su tutti i file UPF, salvarla in modo che venga mantenuta anche dopo il riavvio. Esegui su ogni 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
Utilizzare questa sezione quando il DNN virtuale esiste già nel file SMF ed è necessario modificarne la configurazione (ad esempio, modificare l'elenco NF, disabilitare/abilitare l'interazione PCF, modificare le impostazioni RADIUS).
Passi di alto livello:
Scopo: Impedisce l'avvio di nuove sessioni PDU sul DNN virtuale quando vengono applicate modifiche alla configurazione. Le sessioni esistenti rimangono invariate.
Metodo 1. CLI diretto su SMF
Esegui su tutti gli SMF di destinazione:
config profile dnn <VIRTUAL-DNN-PROFILE-INST1> mode offline exit profile dnn <VIRTUAL-DNN-PROFILE-INST2> mode offline exit show config diff | nomore commit
Metodo 2. Automazione MoP NSO
File di configurazione: virtual_dnn_offline.cfg
Percorso: /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"
}
}
Attenzione: Prima esecuzione con 'operation-type: a secco" per la convalida. Quindi modificare in 'tipo-operazione: commit" per l'applicazione.
Verifica successiva alla fase:
show system status show running-status info | nomore
Lo stato del sistema deve rimanere 100%. Nessun riavvio del pod BGP o CDL e nessun impatto sulle chiamate esistenti.
Scenario 1. Rimuovere UDM dall'elenco NF e disabilitare l'interazione PCF
Scopo: DNN virtuale inviato solo a CHF, UPF e RADIUS. UDM utilizza il DNN di base. PCF disabilitato.
CLI diretta:
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
Automazione MoP NSO:
File di configurazione: 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"
}
}
Configurazione post-modifica prevista:
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>
Conferma: Stato del sistema al 100%, nessun riavvio del pod BGP o CDL, nessun impatto sulle chiamate esistenti.
Avviare il sottoscrittore di monitoraggio nella CLI di SMF:
monitor subscriber supi imsi-<TEST-IMSI>
Comportamento previsto nella traccia:
| Punto di controllo |
Risultato previsto |
|---|---|
| Richiesta di definizione sessione PDU |
DNN = <Base-DNN-NAME> ricevuto da AMF |
| Interazione UDM (Nudm_SDM) |
DNN inviato a UDM = Base DNN (tramite dnn rmgr) |
| Interazione CHF (Nchf_ConvergedCharging) |
DNN inviato a CHF = <NOME-DNN-VIRTUALE> |
| UPF (PFCP Session Establishment) |
APN = <NOME-DNN-VIRTUALE> |
| Richiesta di accesso RADIUS (se abilitata) |
Called-Station-Id = <NOME-DNN-VIRTUALE> |
| Interazione PCF (Npcf_SMPolicyControl) (se abilitata) |
DNN = <NOME-DNN-VIRTUALE> |
| Interazione PCF (se disabilitata) |
Nessun messaggio pcf nella traccia |
| Accettazione definizione sessione PDU |
Sessione stabilita |
| Allocazione indirizzi IP |
IP valido assegnato dal pool corretto |
Output Sottoscrittore Controllo Di Esempio (Campi Chiave):
--- 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>
Verifica sessione su UPF:
show subscribers imsi <TEST-IMSI>
show subscribers user-plane-only full callid <callid>
| Variabile |
Descrizione |
Valore di esempio |
|---|---|---|
| <NOME-DNN-VIRTUALE> |
Identificatore DNN virtuale |
enterprise-iot.cc |
| <VIRTUAL-DN-PROFILE-INST1> |
Nome profilo DNN, istanza 1 |
dnprof-enterprise-iot.cc_inst1 |
| <VIRTUAL-DN-PROFILE-INST2> |
Nome profilo DNN, istanza 2 |
dnprof-enterprise-iot.cc_inst2 |
| <BASE-DNN-RMGR-INST1> |
Gestione risorse per DNN di base, istanza 1 |
base-apn.operator_1 |
| <BASE-DNN-RMGR-INST2> |
Gestione risorse per DNN di base, istanza 2 |
base-apn.operator_2 |
| <SMF-NODE-SITE-A> |
Nome nodo SMF nel sito A |
SMF-SITE-A |
| <SMF-NODE-SITE-B> |
Nome nodo SMF nel sito B |
SMF-SITE-B |
| <UPF-NODE-SITE-A-1> to <UPF-NODE-SITE-A-4> |
Nodi UPF nel sito A |
da UPF1A a UPF1D |
| <UPF-NODE-SITE-B-1> to <UPF-NODE-SITE-B-4> |
Nodi UPF nel sito B |
da UPF1A a UPF1D |
| <IP-DNS-PRIMARIO> |
IP DNS primario per DNN |
10.x.x.x |
| <IP-DNS-SECONDARIO> |
IP DNS secondario per DNN |
10.x.x.x |
| <PROFILO-CHF> |
CHF nome profilo elemento di rete |
nfprf-chf2 |
| <PROFILO AMF> |
Nome profilo elemento di rete AMF |
nfprf-amf1 |
| <PROFILO-UDM> |
Nome profilo elemento di rete UDM |
nfprf-udm1 |
| <PROFILO-SCP> |
Nome profilo elemento di rete SCP |
nfprf-scp1 |
| <PROFILO DI CARICAMENTO> |
Nome profilo di caricamento |
chgprof-b2b |
| <PROFILO QOS> |
Nome profilo QoS |
5qi-to-dscp-mapping-table |
| <GRUPPO-RAGGIO> |
Nome gruppo AAA RADIUS |
aaa_group_iot |
| <TIMEOUT DI INATTIVITÀ UP-UP> |
Timeout di inattività del piano utente (secondi) |
3600 |
| <TIMEOUT DI INATTIVITÀ CP> |
Timeout di inattività del control plane (secondi) |
7320 |
| <TIMER-INATTIVITÀ> |
Timer inattività piano utente (secondi) |
3600 |
| <CRITERI-EVENTO> |
Nome criterio gestione eventi |
ip_duplicato |
| <PROFILO WPS> |
Profilo Wireless Priority Service |
dynamic-wps |
| <SERVER-NSO> |
Nome host/IP server NSO |
nso-server.mgmt |
| <CONTESTO-UPF> |
Nome contesto UPF per DNN |
Business-to-Business |
| <GRUPPO-GTP> |
Gruppo GTPP per generazione CDR |
gtpp_group |
| <NOME-BASE-REGOLE> |
Base regole di carica attiva |
rulebase-mobility |
| <NOME-ACL-IPV4> |
Nome lista di controllo di accesso IPv4 |
ue_acl_B2B |
| <NOME-ACL-IPV6> |
Nome elenco di controllo di accesso IPv6 |
ipv6_acl_B2B |
| <TIPO-SESSIONE> |
Tipo di IP sessione PDU |
IPV4 / IPV6 / IPV4V6 |
| <TEST-IMSI> |
Verifica IMSI sottoscrittore per la convalida |
10000XXXXXXX |
| Opzione |
Elenco NF |
Interazione PCF |
Autenticazione RADIUS |
Impostazione interazione pcf |
|---|---|---|---|---|
| A |
[ raggio upf udm chf ] |
Abilitato (impostazione predefinita) |
Attivato |
Non configurato (predefinito) |
| B |
[ raggio upf chf ] |
Disabled |
Attivato |
pcf-interactive false |
| C |
[ chf udm upf pcf ] |
Attivato |
Disabled |
Non configurato (predefinito) |
| D |
[ chf upf ] |
Disabled |
Disabled |
pcf-interactive false |
| Scenario |
Cambia descrizione |
Elenco NF dopo |
Impostazione PCF |
|---|---|---|---|
| 1 |
Rimuovi UDM + Disabilita PCF |
[ raggio upf chf ] |
pcf-interactive false |
| 2 |
Rimuovi UDM, Mantieni PCF |
[ chf upf radius pcf ] |
Predefinito (attivato) |
| 3 |
Disabilita solo PCF |
[ raggio upf udm chf ] |
pcf-interactive false |
| 4 |
Rimuovi RAGGIO |
[ chf udm upf pcf ] |
Predefinito (attivato) |
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
1.0 |
01-Sep-2026
|
Versione iniziale |