Este documento describe los pasos para configurar el DNN/APN virtual en los elementos de red de Cisco SMF y UPF.
En la arquitectura 3GPP 5G, un nombre de red de datos (DNN) es el equivalente 5G de un nombre de punto de acceso (APN) en 4G/LTE. Identifica la red de datos en la que se establece una sesión PDU. En una implementación estándar, se utiliza un único DNN de forma uniforme en todas las funciones de red (NF) implicadas en la gestión de sesiones, incluidas Unified Data Management (UDM), AMF, SMF, CHF, UPF, RADIUS y PCF.
Un DNN virtual permite que la red presente una identidad DNN diferente a funciones de red específicas mientras utiliza un DNN básico para las interacciones de los suscriptores con otras funciones de red. Esto permite la diferenciación de cargos, la aplicación selectiva de políticas y la separación de servicios sin necesidad de una infraestructura física independiente ni de modificaciones de los datos de suscripción de los suscriptores en la UDM.
Este documento proporciona una solución técnica para:
Modelos de implementación compatibles:
| Modelo |
Descripción |
Instancias |
|---|---|---|
| SMF replicado geográficamente |
Dos sitios SMF emparejados para redundancia. Los cambios se aplican a ambos sitios simultáneamente. |
2 instancias por SMF (_inst1, _inst2) |
| SMF independiente |
SMF único sin replicación geográfica. |
1 instancia (_inst1 solamente) |
Métodos de implementación admitidos:
| Método |
Descripción |
|---|---|
| Automatización MoP de NSO |
Configuración implementada mediante la API RESTful de Cisco NSO mediante cargas de automatización MoP |
| CLI directa |
Configuración aplicada directamente en la CLI de SMF/UPF |
En una implementación estándar de núcleo 5G, cuando una UE inicia una sesión PDU con un DN específico, esa misma identidad DNN se envía a todas las funciones de red implicadas en el ciclo de vida de la sesión: UDM, CHF, UPF, RADIUS y PCF. Esto crea retos específicos.
Sin una capacidad de DNS virtual, los operadores necesitan:
La función Virtual DNN soluciona estos problemas permitiendo la presentación selectiva de la identidad DNN a las funciones de red individuales. El mecanismo clave es:
DNN virtual: comportamiento de interacción de funciones de redEl proceso para que SMF resuelva un DNN base (recibido de AMF) en un DNN virtual es:
Flujo de resolución de DNN base SMF a DNN virtual
Pasos generales:
| Opción |
Lista NF |
Interacción de PCF |
RADIUS Auth |
caso de uso |
|---|---|---|---|---|
| Opción A |
[ chf upf radius ] |
Inhabilitado |
Habilitado |
UDM utiliza DNN base; sin PCF; RADIUS activado |
| Opción B |
[ chf udm upf pcf ] |
Habilitado |
Inhabilitado |
Sin autenticación RADIUS; habilitado para PCF |
| Opción C |
[ chf upf ] |
Inhabilitado |
Inhabilitado |
Interacción de NF mínima (sólo CHF + UPF) |
Nota: Realice los cambios en la configuración según los requisitos.
| Tipo de sesión |
Configuración de SMF |
UPF pdp-type |
|---|---|---|
| Sólo IPv4 |
tipo de sesión IPV4 |
pdp-type ipv4 |
| Sólo IPv6 |
tipo de sesión IPV6 |
pdp-type ipv6 |
| IPv4v6 (doble pila) |
tipo de sesión IPV4V6 |
pdp-type ipv4 ipv6 |
Método 1. CLI directa en SMF
Ejecutar en todos los SMF de destino (ambos sitios replicados geográficamente simultáneamente).
Agregue entradas de precedencia en policy subscriber polsub para asignar el suscriptor (por rango SUPI, código de país e instancia) a la política de operador de DNS virtual.
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
Cree la política de operador para cada instancia, señalando al DNN de política de DNS virtual.
config policy operator oppol_<VDNN>_inst1 policy dnn poldnn_<VDNN>_inst1 exit policy operator oppol_<VDNN>_inst2 policy dnn poldnn_<VDNN>_inst2 exit
Aquí es donde se define la sustitución de DNS virtual. El DNN de base entrante (de AMF) se asigna al perfil de DNN virtual.
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
El perfil DNN define el nombre de DNN virtual, la lista NF (qué NF reciben el DNN virtual), la etiqueta RMGR (enlace de recursos compartidos) y otros parámetros de sesión.
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
Método 2: Automatización MoP de NSO
Archivo de configuración: virtual_dn_new_optionA.cfg
Ruta: /var/opt/ncs/mops
(El contenido del archivo es el mismo que el de CLI anterior)
Carga útil de NSO (georeplicada: ambos sitios):
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"
}
}
Precaución: Primero ejecute con 'operation-type: dry-run' para validar la configuración delta. Una vez validado, cambie a 'operation-type: commit' para aplicar.
Después de confirmar el nuevo perfil de DNS virtual en 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>
Confirmar: Estado del sistema al 100%, sin reinicios de grupo BGP o CDL.
Agregue la configuración de APN de DNS virtual en todas las UPF que sirven al DNN virtual en ambos sitios.
Solo para 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
Sólo para 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
Para IPV4V6 (doble pila):
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 Automation (UPF):
Archivo de configuración: virtual_dnn_upf_new.cfg
Ruta: /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
Una vez que la configuración se haya realizado correctamente en todas las UPF, guarde la configuración para que se mantenga durante los reinicios. Ejecutar en cada 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
Utilice esta sección cuando el DNS virtual ya exista en el SMF y necesite modificar su configuración (por ejemplo, cambiar la lista NF, inhabilitar/habilitar la interacción PCF, cambiar la configuración RADIUS).
Pasos generales:
Propósito: Impide nuevos establecimientos de sesión PDU en el DNS virtual mientras se aplican los cambios de configuración. Las sesiones existentes no se ven afectadas.
Método 1. CLI directa en SMF
Ejecutar en todos los SMF de destino:
config profile dnn <VIRTUAL-DNN-PROFILE-INST1> mode offline exit profile dnn <VIRTUAL-DNN-PROFILE-INST2> mode offline exit show config diff | nomore commit
Método 2. Automatización de MoP de NSO
Archivo de configuración: virtual_dnn_offline.cfg
Ruta: /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"
}
}
Precaución: Primero ejecute con 'operation-type: dry-run' para validar. A continuación, cambie a 'operation-type: commit' para aplicar.
Verificación posterior al paso:
show system status show running-status info | nomore
El estado del sistema debe permanecer al 100%. No se reinicia el grupo de dispositivos BGP o CDL y no afecta a las llamadas existentes.
Situación 1. Eliminar UDM de la lista NF y deshabilitar la interacción PCF
Propósito: DNS virtual enviado solo a CHF, UPF y RADIUS. UDM utiliza DN base. PCF desactivado.
CLI directa:
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
Automatización MoP de NSO:
Archivo de configuración: 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"
}
}
Configuración Post-Modificación Esperada:
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>
Confirmar: Estado del sistema al 100%, sin reinicios de grupo BGP o CDL, sin impacto en las llamadas existentes.
Inicie el suscriptor del monitor en la CLI de SMF:
monitor subscriber supi imsi-<TEST-IMSI>
Comportamiento esperado en seguimiento:
| Check Point |
Resultado esperado |
|---|---|
| Solicitud de establecimiento de sesión PDU |
DNN = <Base-DNN-NAME> recibido de AMF |
| Interacción de UDM (Nudm_SDM) |
DNN enviado a UDM = DNN base (mediante dnn rmgr) |
| Interacción CHF (Nchf_ConvergedCharging) |
DNS enviado a CHF = <VIRTUAL-DNN-NAME> |
| UPF (Establecimiento de sesión PFCP) |
APN = <VIRTUAL-DN-NAME> |
| RADIUS Access-Request (Solicitud de acceso RADIUS) (si está activado) |
Called-Station-Id = <VIRTUAL-DNN-NAME> |
| PCF Interaction (Npcf_SMPolicyControl) (si está activada) |
DNN = <VIRTUAL-DNN-NAME> |
| Interacción de PCF (si está desactivada) |
No hay mensajes pcf en el seguimiento |
| Aceptación de establecimiento de sesión PDU |
Sesión establecida correctamente |
| Asignación de direcciones IP |
IP válida asignada desde el conjunto correcto |
Ejemplo de salida del suscriptor del monitor (campos clave):
--- 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>
Verificar sesión en UPF:
show subscribers imsi <TEST-IMSI>
show subscribers user-plane-only full callid <callid>
| Variable |
Descripción |
Valor de ejemplo |
|---|---|---|
| <VIRTUAL-DNN-NAME> |
El identificador de DNS virtual |
enterprise-iot.cc |
| <VIRTUAL-DN-PROFILE-INST1> |
Nombre del perfil DNS, instancia 1 |
dnprof-enterprise-iot.cc_inst1 |
| <VIRTUAL-DN-PROFILE-INST2> |
Nombre del perfil DNS, instancia 2 |
dnprof-enterprise-iot.cc_inst2 |
| <BASE-DNN-RMGR-INST1> |
Administrador de recursos para DN base, instancia 1 |
base-apn.operator_1 |
| <BASE-DNN-RMGR-INST2> |
Administrador de recursos para DN base, instancia 2 |
base-apn.operator_2 |
| <SMF-NODE-SITE-A> |
Nombre del nodo SMF en el sitio A |
SMF-SITE-A |
| <SMF-NODE-SITE-B> |
Nombre del nodo SMF en el sitio B |
SMF-SITE-B |
| <UPF-NODE-SITE-A-1> a <UPF-NODE-SITE-A-4> |
Nodos UPF en el sitio A |
UPF1A a UPF1D |
| <UPF-NODE-SITE-B-1> a <UPF-NODE-SITE-B-4> |
Nodos de la UPF en el sitio B |
UPF1A a UPF1D |
| <PRIMARY-DNS-IP> |
IP de DNS principal para DNS |
10.x.x.x |
| <SECONDARY-DNS-IP> |
IP de DNS secundario para DNS |
10.x.x.x |
| <CHF-PROFILE> |
Nombre del perfil del elemento de red CHF |
nfprf-chf2 |
| <AMF-PROFILE> |
Nombre del perfil del elemento de red AMF |
nfprf-amf1 |
| <UDM-PROFILE> |
Nombre de perfil de elemento de red UDM |
nfprf-udm1 |
| <SCP-PROFILE> |
nombre del perfil del elemento de red SCP |
nfprf-scp1 |
| <CHARGING-PROFILE> |
Nombre del perfil de cobro |
chgprof-b2b |
| <QOS-PROFILE> |
Nombre del perfil de QoS |
5qi-to-dscp-mapping-table |
| <RADIUS-GROUP> |
Nombre de grupo AAA de RADIUS |
aaa_group_iot |
| <UP-IDLE-TIMEOUT> |
Tiempo de espera inactivo del plano de usuario (segundos) |
3600 |
| <CP-IDLE-TIMEOUT> |
Tiempo de espera inactivo del plano de control (segundos) |
7320 |
| <INACTIVITY-TIMER> |
Temporizador de inactividad del plano de usuario (segundos) |
3600 |
| <EVENT-POLICY> |
Nombre de política de administración de eventos |
em_duplicateip |
| <WPS-PROFILE> |
Perfil de servicio de prioridad inalámbrica |
dynamic-wps |
| <NSO-SERVER> |
Nombre de host/IP del servidor NSO |
nso-server.mgmt |
| <UPF-CONTEXT> |
Nombre de contexto de UPF para DNN |
B2B |
| <GTPP-GROUP> |
Grupo GTPP para generación de CDR |
gtpp_group |
| <RULEBASE-NAME> |
Base de reglas de carga activa |
rulebase-mobility |
| <IPV4-ACL-NAME> |
Nombre de lista de control de acceso IPv4 |
ue_acl_B2B |
| <IPV6-ACL-NAME> |
Nombre de lista de control de acceso IPv6 |
ipv6_acl_B2B |
| <SESSION-TYPE> |
Tipo de IP de sesión PDU |
IPV4 / IPV6 / IPV4V6 |
| <TEST-IMSI> |
Prueba de IMSI del suscriptor para validación |
10000XXXXXXXXX |
| Opción |
Lista NF |
Interacción de PCF |
RADIUS Auth |
Configuración de pcf-interactive |
|---|---|---|---|---|
| R |
[ chf udm upf radius ] |
Habilitado (predeterminado) |
Habilitado |
No configurado (predeterminado) |
| B |
[ chf upf radius ] |
Inhabilitado |
Habilitado |
pcf-action false |
| C |
[ chf udm upf pcf ] |
Habilitado |
Inhabilitado |
No configurado (predeterminado) |
| D |
[ chf upf ] |
Inhabilitado |
Inhabilitado |
pcf-action false |
| Situación |
Cambiar descripción |
Lista de NF después |
Configuración de PCF |
|---|---|---|---|
| 1 |
Quitar UDM + deshabilitar PCF |
[ chf upf radius ] |
pcf-action false |
| 2 |
Eliminar UDM, mantener PCF |
[ chf upf radius pcf ] |
Predeterminado (activado) |
| 3 |
Desactivar sólo PCF |
[ chf udm upf radius ] |
pcf-action false |
| 4 |
Quitar RADIUS |
[ chf udm upf pcf ] |
Predeterminado (activado) |
| Revisión | Fecha de publicación | Comentarios |
|---|---|---|
1.0 |
01-Sep-2026
|
Versión inicial |