Este documento descreve as etapas para configurar o DNN/APN virtual nos elementos de rede Cisco SMF e UPF.
Na arquitetura 3GPP 5G, um nome de rede de dados (DNN) é o equivalente em 5G de um nome de ponto de acesso (APN) em 4G/LTE. Identifica a rede de dados à qual uma sessão de PDU é estabelecida. Em uma implantação padrão, um único DNN é usado uniformemente em todas as Funções de Rede (NFs) envolvidas no gerenciamento de sessão — incluindo Unified Data Management (UDM), AMF, SMF, CHF, UPF, RADIUS e PCF.
Um DNN virtual permite que a rede apresente uma identidade DNN diferente para funções de rede específicas enquanto usa um DNN base para interações de assinantes com outras funções de rede. Isso permite diferenciação de tarifação, aplicação seletiva de políticas e separação de serviços sem exigir infraestrutura física separada ou modificações nos dados de assinatura do assinante no UDM.
Este documento fornece uma solução técnica para:
Modelos de implantação suportados:
| Modelo |
Descrição |
Instâncias |
|---|---|---|
| SMF replicado geograficamente |
Dois locais SMF emparelhados para redundância. Alterações aplicadas simultaneamente a ambos os locais. |
2 instâncias por SMF (_inst1, _inst2) |
| SMF autônomo |
SMF único sem replicação geográfica. |
1 instância (somente _inst1) |
Métodos de implementação suportados:
| Método |
Descrição |
|---|---|
| Automação NSO MoP |
Configuração implantada por meio da API RESTful do Cisco NSO usando cargas de automação MoP |
| CLI direto |
Configuração aplicada diretamente na CLI SMF/UPF |
Em uma implantação de núcleo 5G padrão, quando um UE inicia uma sessão de PDU com um DNN específico, essa mesma identidade de DNN é enviada a todas as Funções de rede envolvidas no ciclo de vida da sessão: UDM, CHF, UPF, RADIUS e PCF. Isso cria desafios específicos.
Sem um recurso de DNN virtual, os operadores precisam:
O recurso de DNN virtual resolve esses problemas permitindo a apresentação seletiva da identidade de DNN para funções de rede individuais. O mecanismo principal é:
DNN Virtual - Comportamento de Interação da Função de RedeO processo para o SMF resolver um DNN base (recebido do AMF) em um DNN virtual é:
Fluxo de Resolução de DNN Base SMF para DNN Virtual
Etapas de alto nível:
| Opção |
Lista de NF |
Interação com o PCF |
Autenticação RADIUS |
Caso de uso |
|---|---|---|---|---|
| Opção A |
[ chf upf radius ] |
Desabilitado |
Habilitado |
A UDM usa o DNN base; Sem PCF; RADIUS habilitado |
| Opção B |
[ chf udm upf pcf ] |
Habilitado |
Desabilitado |
Sem autenticação RADIUS; PCF habilitado |
| Opção C |
[ chf upf ] |
Desabilitado |
Desabilitado |
Interação mínima da NF (apenas CHF + UPF) |
Note: Faça as alterações na configuração com base no requisito.
| Tipo de sessão |
Configuração SMF |
UPF pdp-type |
|---|---|---|
| Somente IPv4 |
session type IPV4 |
pdp-type ipv4 |
| Somente IPv6 |
session type IPV6 |
pdp-type ipv6 |
| IPv4v6 (pilha dupla) |
tipo de sessão IPV4V6 |
pdp-type ipv4 ipv6 |
Método 1. Direct CLI no SMF
Executar em todos os SMFs de destino (ambos os locais replicados geograficamente simultaneamente).
Adicione entradas de precedência na política de assinante polsub para mapear o assinante (por intervalo SUPI, Código do país e instância) para a política do operador DNN 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
Crie a Política do Operador para cada instância, apontando para a Política DNN Virtual DNN.
config policy operator oppol_<VDNN>_inst1 policy dnn poldnn_<VDNN>_inst1 exit policy operator oppol_<VDNN>_inst2 policy dnn poldnn_<VDNN>_inst2 exit
É aqui que a substituição DNN virtual é definida. O DNN base de entrada (do AMF) é mapeado para o perfil 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
O perfil DNN define o nome DNN Virtual, a lista de NF (que as NFs recebem o DNN Virtual), a tag RMGR (shared resource linkage) e outros parâmetros de sessão.
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: Automação NSO MoP
Arquivo de configuração: virtual_dnn_new_optionA.cfg
Caminho: /var/opt/ncs/mops
(Conteúdo do arquivo igual ao da CLI anterior)
Carga NSO (Replicada Geograficamente - ambos os locais):
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"
}
}
Caution: Primeira execução com 'operation-type: dry-run' para validar a configuração delta. Depois de validada, altere para 'operation-type: commit' para aplicar.
Após confirmar o novo perfil de DNS virtual no 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: Status do sistema em 100%, sem reinicializações de pod de BGP ou CDL.
Adicione a configuração de APN DNN virtual em todos os UPFs que atendem ao DNN virtual em ambos os locais.
Somente 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
Somente 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 (pilha dupla):
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
Automação NSO MoP (UPF):
Arquivo de configuração: virtual_dnn_upf_new.cfg
Caminho: /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
Após a configuração bem-sucedida em todos os UPFs, salve a configuração para persistir nas reinicializações. Executar em 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
Use esta seção quando o DNS virtual já existir no SMF e você precisar modificar sua configuração (por exemplo, alterar a lista de NF, desabilitar/habilitar a interação com o PCF, alterar as configurações de RADIUS).
Etapas de alto nível:
Propósito: Impede novos estabelecimentos de sessão de PDU no DNS Virtual enquanto as alterações de configuração são aplicadas. As sessões existentes permanecem inalteradas.
Método 1. Direct CLI no SMF
Executar em todos os SMFs 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. Automação NSO MoP
Arquivo de configuração: virtual_dnn_offline.cfg
Caminho: /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"
}
}
Caution: Primeira execução com 'operation-type: dry-run" para validar. Em seguida, altere para 'operation-type: commit" para ser aplicado.
Verificação pós-etapa:
show system status show running-status info | nomore
O status do sistema deve permanecer em 100%. Nenhum pod BGP ou CDL é reiniciado e nenhum impacto nas chamadas existentes.
Cenário 1. Remover UDM da Lista de NF e Desabilitar Interação com PCF
Propósito: DNS virtual enviado somente para CHF, UPF e RADIUS. O UDM usa o DNN base. PCF desabilitado.
CLI direta:
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
Automação NSO MoP:
Arquivo de configuração: 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"
}
}
Configuração Pós-modificação 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: Status do sistema em 100%, sem reinicializações de pod de BGP ou CDL, sem impacto nas chamadas existentes.
Inicie o monitor do assinante na CLI SMF:
monitor subscriber supi imsi-<TEST-IMSI>
Comportamento Esperado no Rastreamento:
| Ponto de Verificação |
Resultado esperado |
|---|---|
| Solicitação de estabelecimento de sessão de PDU |
DNN = <Base-DNN-NAME> recebido do AMF |
| Interação UDM (Nudm_SDM) |
DNN enviado para UDM = DNN base (via dnn rmgr) |
| Interação CHF (Nchf_ConvergedCharging) |
DNN enviado para CHF = <VIRTUAL-DNN-NAME> |
| UPF (Estabelecimento de Sessão PFCP) |
APN = <VIRTUAL-DNN-NAME> |
| Solicitação de acesso RADIUS (se habilitada) |
Called-Station-Id = <VIRTUAL-DNN-NAME> |
| Interação do PCF (Npcf_SMPolicyControl) (se habilitada) |
DNN = <VIRTUAL-DNN-NAME> |
| Interação com o PCF (se desativada) |
Nenhuma mensagem pcf no rastreamento |
| Aceitação de Estabelecimento de Sessão de PDU |
Sessão estabelecida com êxito |
| Alocação de endereço IP |
IP válido atribuído do pool correto |
Exemplo de saída do assinante do monitor (campos-chave):
--- 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 Sessão em UPF:
show subscribers imsi <TEST-IMSI>
show subscribers user-plane-only full callid <callid>
| Variável |
Descrição |
Exemplo de valor |
|---|---|---|
| <VIRTUAL-DNN-NAME> |
O identificador de DNS virtual |
enterprise-iot.cc |
| <VIRTUAL-DNN-PROFILE-INST1> |
Nome do perfil DNS, instância 1 |
dnnprof-enterprise-iot.cc_inst1 |
| <VIRTUAL-DNN-PROFILE-INST2> |
Nome do perfil DNS, instância 2 |
dnnprof-enterprise-iot.cc_inst2 |
| <BASE-DNN-RMGR-INST1> |
Gerenciador de recursos para DNN base, instância 1 |
base-apn.operator_1 |
| <BASE-DNN-RMGR-INST2> |
Gerenciador de recursos para DNN base, instância 2 |
base-apn.operator_2 |
| <SMF-NODE-SITE-A> |
Nome do nó SMF no local A |
SITE A SMF |
| <SMF-NODE-SITE-B> |
Nome do nó SMF no local B |
SMF-SITE-B |
| <UPF-NODE-SITE-A-1> a <UPF-NODE-SITE-A-4> |
Nós UPF no local A |
UPF1A a UPF1D |
| <UPF-NODE-SITE-B-1> a <UPF-NODE-SITE-B-4> |
Nós UPF no local B |
UPF1A a UPF1D |
| <PRIMARY-DNS-IP> |
IP do DNS primário para o DNS |
10 x x x |
| <SECONDARY-DNS-IP> |
IP DNS secundário para o DNS |
10 x x x |
| <CHF-PROFILE> |
Nome do perfil do elemento de rede CHF |
nfprf-chf2 |
| <PERFIL AMF> |
Nome do perfil do elemento de rede AMF |
nfprf-amf1 |
| <PERFIL UDM> |
Nome do perfil do elemento de rede UDM |
nfprf-udm1 |
| <SCP-PROFILE> |
Nome do perfil do elemento de rede SCP |
nfprf-scp1 |
| <PERFIL DE COBRANÇA> |
Nome do perfil de cobrança |
chgprof-b2b |
| <QOS-PROFILE> |
Nome do perfil QoS |
5qi-to-dscp-mapping-table |
| <RADIUS-GROUP> |
RADIUS AAA group name |
aaa_group_iot |
| <UP-IDLE-TIMEOUT> |
Tempo limite ocioso do plano do usuário (segundos) |
3600 |
| <CP-IDLE-TIMEOUT> |
Tempo limite de ociosidade do plano de controle (segundos) |
7320 |
| <TEMPORIZADOR DE INATIVIDADE> |
Temporizador de inatividade do plano do usuário (segundos) |
3600 |
| <POLÍTICA DE EVENTOS> |
Nome da política de gerenciamento de eventos |
em_duplicateip |
| <PERFIL WPS> |
Perfil do Wireless Priority Service |
dynamic-wps |
| <NSO-SERVER> |
IP/nome de host do servidor NSO |
nso-server.mgmt |
| <UPF-CONTEXT> |
Nome de contexto UPF para o DNS |
B2B |
| <GTPP-GROUP> |
Grupo GTP para geração de CDR |
gtpp_group |
| <NOME DA BASE DE REGRAS> |
Base de regras de cobrança ativa |
rulebase-mobility |
| <IPV4-ACL-NAME> |
Nome da lista de controle de acesso IPv4 |
ue_acl_B2B |
| <IPV6-ACL-NAME> |
Nome da lista de controle de acesso IPv6 |
ipv6_acl_B2B |
| <TIPO DE SESSÃO> |
Tipo de IP da sessão de PDU |
IPV4/IPV6/IPV4V6 |
| <TEST-IMSI> |
Testar IMSI do assinante para validação |
10000XXXXXXXXX |
| Opção |
Lista de NF |
Interação com o PCF |
Autenticação RADIUS |
Configuração de interação de PCF |
|---|---|---|---|---|
| R |
[ chf udm upf radius ] |
Ativado (padrão) |
Habilitado |
Não configurado (padrão) |
| B |
[ chf upf radius ] |
Desabilitado |
Habilitado |
pcf-interação false |
| C |
[ chf udm upf pcf ] |
Habilitado |
Desabilitado |
Não configurado (padrão) |
| D |
[ chf upf ] |
Desabilitado |
Desabilitado |
pcf-interação false |
| Cenário |
Alterar descrição |
Lista de NF após |
Configuração do PCF |
|---|---|---|---|
| 1 |
Remover UDM + Desabilitar PCF |
[ chf upf radius ] |
pcf-interação false |
| 2 |
Remover UDM, Manter PCF |
[ chf upf radius pcf ] |
Padrão (habilitado) |
| 3 |
Desabilitar somente PCF |
[ chf udm upf radius ] |
pcf-interação false |
| 4 |
Remover RADIUS |
[ chf udm upf pcf ] |
Padrão (habilitado) |
| Revisão | Data de publicação | Comentários |
|---|---|---|
1.0 |
01-Sep-2026
|
Versão inicial |