이 문서에서는 Cisco SMF 및 UPF 네트워크 요소에서 가상 DNN/APN을 구성하는 단계에 대해 설명합니다.
3GPP 5G 아키텍처에서 DNN(Data Network Name)은 4G/LTE에서의 APN(Access Point Name)과 동일한 5G이다. PDU 세션이 설정된 데이터 네트워크를 식별합니다. 표준 구축에서는 단일 DNN이 UDM(Unified Data Management), AMF, SMF, CHF, UPF, RADIUS, PCF 등 세션 관리에 포함된 모든 NF(Network Function)에 균일하게 사용됩니다.
Virtual DNN을 사용하면 네트워크에서 특정 네트워크 기능에 다른 DNN ID를 제공할 수 있으며, 동시에 다른 네트워크 기능과의 가입자 상호 작용에 Base DNN을 사용할 수 있습니다. 이를 통해 UDM에서 별도의 물리적 인프라나 가입자 가입 데이터를 수정하지 않고도 차별화, 선택적 정책 시행, 서비스 분리를 과금할 수 있습니다.
이 문서에서는 다음에 대한 기술 솔루션을 제공합니다.
지원되는 구축 모델:
| 모델 |
설명 |
인스턴스 |
|---|---|---|
| 지리적 복제 SMF |
이중화를 위해 2개의 SMF 사이트가 페어링됨. 변경 사항이 두 사이트에 동시에 적용됩니다. |
SMF당 인스턴스 2개(_inst1, _inst2) |
| 독립형 SMF |
지리적 복제가 없는 단일 SMF |
인스턴스 1개(_inst1만) |
지원되는 구현 방법:
| 방법 |
설명 |
|---|---|
| NSO MoP 자동화 |
MoP 자동화 페이로드를 사용하여 Cisco NSO RESTful API를 통해 구축된 구성 |
| 직접 CLI |
SMF/UPF CLI에 직접 구성 적용 |
표준 5G 코어 구축에서 UE가 특정 DNN으로 PDU 세션을 시작하면 동일한 DNN ID가 세션 라이프사이클에 관련된 모든 네트워크 기능(UDM, CHF, UPF, RADIUS 및 PCF)에 전송됩니다. 따라서 특정 문제가 발생합니다.
가상 DNN 기능이 없다면 운영자는 다음을 수행해야 합니다.
Virtual DNN 기능은 개별 네트워크 기능에 선택적인 DNN ID 표시를 허용함으로써 이러한 문제를 해결합니다. 주요 메커니즘은 다음과 같습니다.
가상 DNN - 네트워크 기능 상호 작용 동작SMF가 AMF에서 받은 기본 DNN을 가상 DNN으로 확인하는 프로세스는 다음과 같습니다.
SMF Base DNN - 가상 DNN 해결 흐름
상위 레벨 단계:
| 옵션 |
NF 목록 |
PCF 상호 작용 |
RADIUS 인증 |
사용 사례 |
|---|---|---|---|---|
| 옵션 A |
[ chf upf 반경 ] |
비활성화됨 |
활성화됨 |
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에서 실행(두 지리적 복제 사이트 모두 동시에 실행)
정책 가입자 정책에 우선순위 항목을 추가하여 가입자(SUPI 범위, 국가 코드 및 인스턴스별)를 Virtual 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
여기서 Virtual DNN 대체가 정의됩니다. AMF의 들어오는 기본 DNN이 가상 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: delta 컨피그레이션을 검증하기 위해 '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
Virtual DNN이 SMF에 이미 있고 해당 컨피그레이션을 수정해야 하는 경우(예: 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: 적용할 수 있습니다.
단계 후 확인:
show system status show running-status info | nomore
시스템 상태는 100%를 유지해야 합니다. BGP 또는 CDL 포드가 재시작되지 않으며 기존 통화에 영향을 주지 않습니다.
시나리오 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 = <Base-DNN-NAME>이(가) AMF에서 수신됨 |
| UDM 상호 작용(Nudm_SDM) |
DNN을 UDM으로 전송 = 기본 DNN (dnn rmgr) |
| CHF 상호 작용(Nchf_ConvergedCharging) |
DNN이 CHF로 전송됨 = <VIRTUAL-DNN-NAME> |
| UPF(PFCP 세션 설정) |
APN = <가상 DNN-이름> |
| RADIUS Access-Request(활성화된 경우) |
Called-Station-Id = <VIRTUAL-DNN-NAME> |
| PCF 상호 작용(Npcf_SMPolicyControl)(활성화된 경우) |
DNN = <가상 DNN-이름> |
| 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>
| 변수 |
설명 |
값 예 |
|---|---|---|
| <가상 DNN-이름> |
가상 DNN 식별자 |
enterprise-iot.cc |
| <가상 DNN-프로필-INST1> |
DNN 프로필 이름, 인스턴스 1 |
dnprof-enterprise-iot.cc_inst1 |
| <가상 DNN-프로필-INST2> |
DNN 프로필 이름, 인스턴스 2 |
dnprof-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-SITE-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 |
| <기본 DNS-IP> |
DNN의 기본 DNS IP |
10.x.x.x |
| <보조 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-PROFILE> |
충전 프로필 이름 |
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 |
| <비활성 타이머> |
Userplane inactivity timer(초) |
3600 |
| <이벤트 정책> |
이벤트 관리 정책 이름 |
em_duplicateip |
| <WPS-프로필> |
무선 우선 순위 서비스 프로파일 |
동적 wps |
| <NSO 서버> |
NSO 서버 호스트 이름/IP |
nso-server.management |
| <UPF 컨텍스트> |
DNN의 UPF 컨텍스트 이름 |
B2B |
| <GTPP-GROUP> |
CDR 생성을 위한 GTPP 그룹 |
gtpp_group |
| <RULEBASE-이름> |
활성 충전 규칙 베이스 |
rulebase-mobility |
| <IPV4-ACL-NAME> |
IPv4 액세스 제어 목록 이름 |
ue_acl_B2B |
| <IPV6-ACL-NAME> |
IPv6 액세스 제어 목록 이름 |
ipv6_acl_B2B |
| <세션 유형> |
PDU 세션 IP 유형 |
IPV4/IPV6/IPV4V6 |
| <테스트-IMSI> |
검증을 위해 가입자 IMSI 테스트 |
10000XXXXXXXXX |
| 옵션 |
NF 목록 |
PCF 상호 작용 |
RADIUS 인증 |
pcf-상호 작용 설정 |
|---|---|---|---|---|
| A |
[ chf udm upf radius ] |
Enabled(활성화)(기본값) |
활성화됨 |
구성되지 않음(기본값) |
| B |
[ chf upf 반경 ] |
비활성화됨 |
활성화됨 |
pcf-상호 작용 거짓 |
| C |
[ chf udm upf pcf ] |
활성화됨 |
비활성화됨 |
구성되지 않음(기본값) |
| D |
[ chf upf ] |
비활성화됨 |
비활성화됨 |
pcf-상호 작용 거짓 |
| 시나리오 |
변경 설명 |
이후 NF 목록 |
PCF 설정 |
|---|---|---|---|
| 1 |
UDM 제거 + PCF 비활성화 |
[ chf upf 반경 ] |
pcf-상호 작용 거짓 |
| 2 |
UDM 제거, PCF 유지 |
[ chf upf radius pcf ] |
기본값(활성화됨) |
| 3 |
PCF만 사용 안 함 |
[ chf udm upf radius ] |
pcf-상호 작용 거짓 |
| 4 |
RADIUS 제거 |
[ chf udm upf pcf ] |
기본값(활성화됨) |
| 개정 | 게시 날짜 | 의견 |
|---|---|---|
1.0 |
01-Sep-2026
|
최초 릴리스 |