다중 PCF 배포의 실제 과제는 여러 PCF 인스턴스가 존재한다는 사실 자체가 아닙니다. 문제는 동일한 UE가 서로 다른 서비스 절차에서 쉽게 다른 PCF로 라우팅될 수 있다는 점입니다. PDU 세션 설정 중 SMF는 이미 특정 PCF와 정책 연결을 수립했을 수 있습니다. 이후 IMS 음성 서비스가 트리거되고 AF가 새로운 정책 요청을 시작하면 로드 밸런싱에 의해 해당 요청이 다른 PCF로 전달될 수 있습니다. 이렇게 되면 두 단계 사이의 정책 컨텍스트가 끊기면서 VoNR QoS 플로우, PCC 규칙, 세션 정책에 불일치가 발생할 수 있습니다.
BSF(Binding Support Function)는 서로 다른 인터페이스를 통해 들어오는 동일 사용자 요청이 같은 PCF에 도달해야 하는 문제를 해결하도록 설계되었습니다. BSF는 PCC 규칙을 생성하지 않으며 정책 결정에서 PCF를 대체하지도 않습니다. 핵심 역할은 UE 세션과 연결된 PCF 사이의 바인딩 관계를 유지하여, 이후 요청이 도착했을 때 서비스 소비자가 해당 사용자 정책 제어에 이미 참여했던 PCF를 찾을 수 있게 하는 것입니다.
다중 PCF 네트워크에서 잘못된 PCF가 선택될 수 있는 이유
BSF의 가치를 이해하려면 4G에서 이미 존재했던 유사한 문제를 살펴보는 것이 도움이 됩니다. EPC 아키텍처에서 PGW는 Gx 인터페이스를 통해 PCRF와 통신하고, IMS 도메인의 P-CSCF는 Rx 인터페이스를 통해 정책 권한 부여 요청을 전송합니다. 여러 PCRF가 배포된 경우 Gx와 Rx 시그널링 경로는 결국 동일한 PCRF에 도달해야 합니다. 그렇지 않으면 이후 IMS 서비스 요청이 세션 초기에 생성된 정책 컨텍스트를 이어받을 수 없습니다.
4G 네트워크에서는 Diameter 라우팅과 세션 바인딩을 위해 DRA를 사용하는 방식이 일반적입니다. 전형적인 예를 보면, PGW가 IMS APN용 PDN 연결을 설정할 때 Gx 요청이 DRA1을 거쳐 PCRF1로 라우팅됩니다. DRA1은 IMSI, UE IP 주소, PCRF1 사이의 관계를 기록합니다. 이후 P-CSCF의 Rx 메시지가 로드 밸런싱 때문에 DRA2로 전달되고 DRA2가 이를 PCRF2로 넘기면, PCRF2는 PGW 측에서 이전에 설정된 세션 컨텍스트를 알 수 없습니다.
영향은 단순히 잘못된 서버를 선택하는 것보다 훨씬 큽니다. PCRF2에는 기존 PCC 규칙 상태가 없으므로 Rx를 통해 받은 새로운 미디어 정책 요청을 이전에 Gx를 통해 설정된 정책과 올바르게 연관시킬 수 없습니다. 4G에서는 여러 DRA 간에 바인딩 정보를 실시간으로 동기화하여 이 문제를 해결할 수 있지만, 이러한 구현은 벤더 종속적인 경우가 많아 멀티벤더 배포와 장기 운영을 크게 복잡하게 만듭니다.
5GC에서도 네트워크 기능과 인터페이스는 바뀌었지만 정책 일관성 요구는 그대로 유지됩니다. SMF는 N7을 통해 PCF와 통신하고, AF는 N5를 통해 정책 권한 부여를 요청합니다. 완전한 VoNR 정책 흐름에서는 AF가 먼저 애플리케이션 플로우와 QoS 요구사항을 제공하고, PCF가 해당 PCC 규칙을 생성한 뒤 SMF와 UPF가 이를 적용합니다. 동일 UE의 서로 다른 요청이 각기 다른 PCF에 도달하면 정책 연속성이 여전히 깨질 수 있습니다.
BSF는 과거에 독점적인 동기화 메커니즘에 의존하던 바인딩 기능을 사실상 표준화합니다. 현재 UE 세션과 담당 PCF 사이의 관계를 유지하여, 이후 정책 요청이 이미 해당 세션에 참여한 PCF 인스턴스로 다시 라우팅되도록 돕습니다.
BSF는 어떤 정보를 바인딩하는가?
구현 관점에서 BSF는 UE와 정책 담당 PCF의 관계를 동적으로 유지하는 테이블로 볼 수 있습니다. PCF가 UE의 PDU 세션 정책 제어에 참여하면 필요한 바인딩 정보를 BSF에 등록합니다. 이후 다른 네트워크 기능은 UE 식별자와 세션 특성을 이용해 BSF를 조회하고 해당 PCF의 주소 정보를 얻을 수 있습니다.
대표적인 바인딩 레코드에는 UE IP 주소, SUPI, DNN, S-NSSAI, 연결된 PCF 주소가 포함될 수 있습니다. 기존 Diameter 인터페이스와 연동해야 하는 배포에서는 PCF의 Diameter 호스트 이름이나 FQDN도 포함될 수 있습니다.
이 필드들은 단순히 정보를 완성하기 위해 수집되는 것이 아닙니다. 각각 올바른 바인딩을 필터링하고 식별하는 구체적인 역할이 있습니다.
-
UE IP: 현재 사용자 평면 주소를 기반으로 바인딩을 직접 찾는 방법을 제공하며 가장 일반적인 조회 파라미터 중 하나입니다.
-
SUPI: 사용자 식별 수준에서 가입자를 식별하여 바인딩이 올바른 UE와 연결되도록 돕습니다.
-
DNN: 동일 UE가 사용하는 서로 다른 데이터 네트워크를 구분합니다. 예를 들어 IMS와 일반 인터넷 서비스가 있습니다.
-
S-NSSAI: 네트워크 슬라이싱이 적용된 5G 배포에서 해당 세션과 연관된 네트워크 슬라이스를 추가로 식별합니다.
-
PCF 주소: 서비스 소비자가 선택된 PCF에 접근하는 데 필요한 실제 주소 정보를 제공합니다.
-
Diameter 호스트 이름/FQDN: SBI와 Diameter가 공존하는 배포에서 기존 Diameter 라우팅을 위한 매핑 참조 정보를 제공합니다.
따라서 BSF 바인딩을 UE 주소와 PCF 주소 사이의 단순한 일대일 매핑으로 축소해서는 안 됩니다. 하나의 UE는 여러 PDU 세션을 가질 수 있고 서로 다른 DNN이나 네트워크 슬라이스에 접근할 수 있습니다. 조회 조건이 지나치게 넓으면 반환된 PCF가 현재 서비스 컨텍스트와 일치하지 않을 수 있습니다.
실제 배포에서는 바인딩의 세분화 수준이 정책 제어의 세분화 수준과 맞아야 합니다. 이는 정책 연속성이 중요한 IMS 서비스에서 특히 중요합니다. UE에 여러 슬라이스나 여러 데이터 네트워크 컨텍스트가 있다면 DNN과 S-NSSAI를 바인딩 조건에서 생략해서는 안 됩니다.
Nbsf_Management는 어떻게 사용해야 하는가?
BSF는 SBI를 통해 Nbsf_Management 서비스를 제공합니다. 이 서비스는 서로 관련 없는 수많은 API를 모아 놓은 구조가 아니라, 바인딩 레코드의 전체 생명주기를 포괄하는 네 가지 핵심 작업인 등록, Discovery, 업데이트, Deregister를 제공합니다. 실제 배포에서 이 네 작업은 PCF 바인딩의 생성, 사용, 유지보수, 제거에 직접 대응합니다.
Register: 먼저 바인딩 생성
PCF가 선택되어 UE 정책 제어에 참여하기 시작하면 BSF에 바인딩을 등록해야 합니다. 전형적인 요청은 다음과 같습니다.
POST .../pcfBindings
요청 본문에는 UE IP 주소, SUPI, DNN, S-NSSAI, PCF 주소, 해당 FQDN과 같은 핵심 필드를 포함할 수 있습니다. BSF가 바인딩 레코드를 성공적으로 생성하면 다음을 반환합니다.
201 Created
이 단계에서 타이밍은 가장 흔한 구현 함정 중 하나입니다. 이후 서비스 측 조회가 시작되기 전에 바인딩 등록이 완료되어야 합니다. 그렇지 않으면 AF 측 요청이나 Diameter 호환 요청이 네트워크에 도착했을 때 BSF에 대응하는 PCF 바인딩이 아직 없어 조회가 실패할 수 있습니다.
Discovery: 세션 컨텍스트에서 기존 PCF 조회
BSF의 실질적인 가치가 가장 분명하게 드러나는 부분이 Discovery 작업입니다. 서비스 소비자는 현재 사용 가능한 UE 정보를 이용해 조회를 전송합니다.
GET .../pcfBindings?query_parameters
조회 파라미터에는 UE IP 주소, SUPI 또는 GPSI, DNN, S-NSSAI 및 기타 관련 식별자가 포함될 수 있습니다. 일치하는 바인딩이 발견되면 BSF는 다음을 반환합니다.
200 OK
응답에는 해당 PCF 주소와 필요한 경우 Diameter 호스트 이름 또는 FQDN이 포함됩니다. 표준화된 아키텍처에서 서비스 소비자는 NEF, AF, NWDAF 등의 기능이 될 수 있습니다. 기존 Rx 라우팅을 계속 지원해야 하는 배포에서는 반환된 바인딩 정보를 이후 시그널링에 사용할 올바른 PCF 선택에도 활용할 수 있습니다.
Update 및 Deregister: 바인딩 생명주기 유지
바인딩 정보가 변경되면 기존 레코드는 PATCH를 사용해 업데이트할 수 있습니다.
PATCH .../pcfBindings/{bindingId}
업데이트에 성공하면 200 OK가 반환됩니다. 세션이 해제되거나 PCF가 더 이상 UE를 담당하지 않거나 바인딩이 유효하지 않게 되면 다음을 사용해 레코드를 삭제해야 합니다.
DELETE .../pcfBindings/{bindingId}
삭제에 성공하면 일반적으로 204 No Content가 반환됩니다. 실제 배포에서는 Deregister 단계를 무시해서는 안 됩니다. 오래된 바인딩 레코드가 BSF에 너무 오래 남아 있으면 동일 가입자가 이후 새 세션을 설정할 때 이전 PCF와 잘못 매칭될 수 있습니다. 이런 문제는 단순히 바인딩이 없는 경우보다 진단하기 더 어려울 수 있습니다.
N7 및 Rx 바인딩 문제 해결 방법
전체 시그널링 경로를 기준으로 BSF 흐름은 세 단계로 나눌 수 있습니다. 먼저 바인딩을 등록하고, 다음으로 바인딩을 조회한 뒤, 마지막으로 이후 정책 시그널링을 원래 PCF로 다시 라우팅합니다. 이 순서를 명확히 이해하면 방향 없이 대량의 시그널링을 수집하는 것보다 VoNR 정책 문제를 훨씬 효율적으로 분석할 수 있습니다.
1단계: PDU 세션 설정 및 PCF 등록
BSF 인스턴스가 가동되면 먼저 자신의 기능과 주소 정보를 NRF에 등록합니다. 이후 UE는 IMS DNN용 PDU 세션을 설정하고 SMF는 PCF에 정책 제어를 요청합니다. PCF가 선택되면 Nbsf_Management_Register를 호출해 UE와 PCF의 바인딩을 BSF에 저장합니다.
이 시점의 BSF에는 다음과 유사한 바인딩 레코드가 있을 수 있습니다.
UE IP1 + DNN1 + S-NSSAI1 + SUPIxx → PCF1 UE IP2 + DNN2 + S-NSSAI2 + SUPIyy → PCF2
2단계: VoNR 통화가 정책 조회를 트리거
UE가 VoNR 통화를 시작하면 IMS 도메인이 새로운 정책 권한 부여 요청을 트리거합니다. 표준화된 5GC 아키텍처에서는 AF와 PCF가 N5 인터페이스를 통해 정책 정보를 교환합니다. 기존 IMS Diameter 시그널링을 계속 사용하는 일부 배포에서는 P-CSCF가 여전히 Rx/AAR 절차를 사용할 수 있습니다.
이 단계의 핵심 질문은 간단합니다. 어떤 PCF가 정책 요청을 받아야 하는가?
요청자는 일반적인 로드 밸런싱 로직만으로 다른 PCF를 선택해서는 안 됩니다. 대신 UE 주소, DNN, S-NSSAI 등의 정보를 사용해 먼저 BSF를 조회합니다. BSF는 기존 바인딩 레코드를 매칭하고 해당 UE 세션을 이미 담당하고 있는 PCF 인스턴스를 반환합니다.
3단계: 이후 시그널링을 원래 PCF로 라우팅
올바른 PCF가 확인되면 이후 정책 요청은 동일한 PCF로 전달됩니다. 이렇게 하면 PDU 세션 설정 단계에서 생성된 정책 컨텍스트와 VoNR 미디어 단계에서 발생한 새로운 정책 요청이 동일한 정책 제어 인스턴스에 유지됩니다. PCF는 전체 세션 컨텍스트를 기반으로 PCC 규칙을 생성하고 유지할 수 있습니다.
VoNR 통화는 시작되지만 QoS 정책 동작이 비정상적이거나 IMS 미디어 규칙이 일관되지 않거나 일부 가입자에게만 간헐적인 장애가 발생한다면, 문제를 즉시 무선 네트워크 탓으로 돌리기 전에 BSF 바인딩 경로를 확인해야 합니다.
실무적인 문제 해결 절차는 네 단계로 나눌 수 있습니다. 첫째, PDU 세션 설정 후 BSF Register 작업이 실제로 수행되었는지 확인합니다. 둘째, BSF에 저장된 UE IP 주소, SUPI, DNN, S-NSSAI가 올바른지 확인합니다. 셋째, 이후 Discovery 요청의 조회 조건이 원래 바인딩을 고유하게 매칭할 수 있는지 확인합니다. 넷째, 반환된 PCF 주소 또는 Diameter 식별자가 처음 N7 정책 제어에 참여한 PCF와 정확히 동일한지 검증합니다.
배포 아키텍처도 고려해야 합니다. 일부 네트워크에서는 BSF와 SMF가 동일한 위치에 배포될 수 있습니다. 이 경우 패킷 캡처 지점과 내부 호출 흐름이 독립형 BSF 배포와 다를 수 있습니다. 그러나 기본 원칙은 변하지 않습니다. 네트워크는 UE 세션과 담당 PCF 사이에 안정적인 바인딩을 유지해야 합니다.
자주 묻는 질문
BSF와 NRF 모두 네트워크 기능 선택을 수행하는가?
아닙니다. 두 기능의 역할은 다릅니다. NRF는 네트워크 기능이 사용 가능한 NF 인스턴스와 기능을 발견하도록 지원하며 서비스 레지스트리에 더 가깝습니다. BSF는 특정 UE 세션과 PCF 사이에 이미 확립된 바인딩을 저장합니다. 간단히 말해 NRF는 “어떤 PCF를 사용할 수 있는가?”에 답하고, BSF는 “이 UE 세션을 이미 어떤 PCF가 담당하고 있는가?”에 답합니다.
UE는 하나의 PCF 바인딩만 가질 수 있는가?
반드시 그렇지는 않습니다. 바인딩은 UE 식별자만으로 정의되지 않으며 DNN, S-NSSAI, 특정 PDU 세션 컨텍스트에도 따라 달라질 수 있습니다. 동일한 UE가 서로 다른 데이터 네트워크나 네트워크 슬라이스에 접근한다면 해당 바인딩을 각각 따로 유지해야 할 수 있습니다.
BSF와 SMF를 동일한 네트워크 기능 인스턴스에 배포할 수 있는가?
가능합니다. 동일 위치 배포가 가능합니다. 이 경우 외부에서 보이는 시그널링 순서가 독립형 BSF 배포와 다를 수 있지만 UE-PCF 바인딩은 여전히 저장하고 사용해야 합니다. 따라서 문제 해결 시 실제 벤더의 배포 아키텍처를 먼저 확인해야 합니다.
BSF 조회가 실패할 때 먼저 무엇을 확인해야 하는가?
세 가지부터 확인합니다. 바인딩 레코드가 성공적으로 생성되었는지, 조회 파라미터가 등록 시 사용한 값과 일치하는지, 바인딩이 만료되었거나 너무 일찍 삭제되지 않았는지입니다. BSF가 레코드를 반환한다면 반환된 PCF 주소, FQDN 또는 Diameter 식별자가 예상한 PCF 인스턴스를 가리키는지도 확인해야 합니다.