KR20240018439A - Pfcp 세션 로드 밸런서 - Google Patents

Pfcp 세션 로드 밸런서 Download PDF

Info

Publication number
KR20240018439A
KR20240018439A KR1020237040219A KR20237040219A KR20240018439A KR 20240018439 A KR20240018439 A KR 20240018439A KR 1020237040219 A KR1020237040219 A KR 1020237040219A KR 20237040219 A KR20237040219 A KR 20237040219A KR 20240018439 A KR20240018439 A KR 20240018439A
Authority
KR
South Korea
Prior art keywords
packets
packet
module
request
address
Prior art date
Application number
KR1020237040219A
Other languages
English (en)
Inventor
케이유르 파텔
테츠야 무라카미
Original Assignee
아르쿠스 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/240,726 external-priority patent/US11632692B2/en
Priority claimed from US17/362,071 external-priority patent/US11849381B2/en
Priority claimed from US17/488,833 external-priority patent/US20220345984A1/en
Application filed by 아르쿠스 인크. filed Critical 아르쿠스 인크.
Publication of KR20240018439A publication Critical patent/KR20240018439A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

UE 어드레스를 주변 장비의 VRF로 임포트하는 것은 주변 장비의 루트 타겟 및 gNodeB 어드레스를 포함하는 주변 장비로부터 VPN 업데이트를 수신함으로써 가능하다. 또한, 세션 정보는 UE 어드레스와 UPF 간 트래픽을 인터셉트함으로써 획득한다. 세션 정보는 UE 어드레스와 UE가 연결된 gNodeB의 어드레스를 포함한다. VPN 업데이트로부터의 gNodeB 어드레스들과 세션 정보를 매칭시킴으로써, UE가 연결되는 주변 장비의 루트 타겟이 결정될 수 있다. 그런 다음, UE 어드레스는 주변 장비의 VRF로 배타적으로(exclusively) 임포트될 수 있다.

Description

PFCP 세션 로드 밸런서
관련 출원
본 출원은 2021년 9월 29일에 출원된 미국 특허 출원 일련 번호 17/488,833의 일부 계속 출원이고, 이는 2021년 6월 29일에 출원된 미국 특허 출원 일련 번호 17/362,071의 일부 계속 출원이고, 2021년 4월 26일에 출원된 미국 특허 출원 일련 번호 17/240,726의 일부 계속 출원이며, 이의 개시는 본원에 그 전체가 참고로 통합된다.
발명의 분야
본 출원은 셀룰러 데이터 통신 네트워크로의 그리고 셀룰러 데이터 통신 네트워크로부터의 패킷들의 라우팅에 관한 것이다.
도 1a를 참조하면, 종래의 5G 셀룰러 데이터 통신 네트워크(100)에서, 사용자 장비(UE : user equipment)(102)는 라디오 안테나를 통해 패킷들을 수신하고 이들을 게이트웨이(GW)(108)를 통해 IP 네트워크(110)에 송신하는 기능들을 수행하는 gNodeB(106)의 패킷들을 송신할 수 있다. 종래의 셀룰러 데이터 통신 네트워크에서, UE(102)로부터의 패킷은 사용자 평면 기능(UPF : user plane function)(112), 즉, 처음에 패킷을 수신한 GW(108)와 연관 결합된 UPF(112)로 포워딩되어야 한다. UPF(112)는 UPF와 GW(108) 사이의 인터넷 프로토콜(IP) 네트워크(110)일 수 있는 네트워크(110)를 통해 패킷들을 수신할 수 있다. UPF(112)는 다른 IP 네트워크(114)를 통해 패킷들을 MEC(mobile edge computing) 서버(116)에 포워딩할 수 있다. MEC 서버(116)는 패킷들의 목적지, 예를 들어, 패킷들에 의해 어드레싱되는 서비스를 제공하는 서버 또는 인터넷과 같은 더 넓은 네트워크에 액세스하기 위한 게이트웨이일 수 있다.
도 1b를 참조하면, 일부 경우들에서, 패킷들은 UPF(112)와 연관 결합된 MEC 서버(116)로부터 다른 MEC 서버(118)로 리다이렉트(redirect)될 필요가 있을 수 있다. 예를 들어, GW(108)는 또한 MEC 서버(118) 및 GW(108)를 커플링하는 하나 이상의 IP 네트워크들(120)에 연결될 수 있다. MEC 서버(116)의 장애(failure) 시에, 또는 몇몇 다른 목적을 위한 리다이렉션 시에, 패킷들은 MEC 서버(118)로 리다이렉트될 수 있다. 그러나, 최신 5G 프로토콜들은 패킷들이 먼저 UPF(112)로 라우팅될 것을 요구하며, 이는 그런 다음 도 1b에 도시된 바와 같이 패킷들을 MEC 서버(118)로 포워딩할 것이다. MEC 서버(118)로부터 UE(102)로의 트래픽은 역방향 경로를 따를 수 있다. 이는 UE(102)로 그리고 그로부터 송신되는 패킷들의 레이턴시를 증가시킨다.
셀룰러 통신 네트워크에서 패킷들의 리다이렉션을 핸들링하기 위한 개선된 접근법을 제공하는 것이 본 기술분야의 진보일 것이다.
본 발명의 이점들이 용이하게 이해될 수 있도록, 상기에서 간략히 설명된 본 발명의 보다 구체적인 설명이 첨부된 도면들에 예시된 특정 실시예들을 참조하여 제공될 것이다. 이들 도면이 본 발명의 전형적인 실시예만을 도시하고 따라서 범위를 제한하는 것으로 간주되지 않는다는 것을 이해하면, 본 발명은 첨부 도면의 사용을 통해 추가적인 특이성 및 상세성으로 기술되고 설명될 것이다.
도 1a는 종래 기술에 따른 셀룰러 데이터 통신 네트워크를 통해 수신된 패킷들의 라우팅을 예시하는 개략적인 블록도이다.
도 1b는 종래 기술에 따른 셀룰러 데이터 통신 네트워크를 통해 수신된 패킷들의 재라우팅(rerouting)을 예시하는 개략적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 셀룰러 데이터 통신 네트워크를 통해 수신된 패킷들을 라우팅하기 위한 접근법을 예시하는 개략적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 셀룰러 데이터 통신 네트워크를 통해 수신된 패킷들의 라우팅을 수행하기 위한 컴포넌트들의 개략적인 블록도이다.
도 4는 본 발명의 일 실시예에 따른 PFCP 프록시에 의한 정보의 스누핑(snooping) 및 이 정보를 사용하는 변환 및 라우팅 모듈의 프로그래밍을 예시하는 개략적인 블록도이다.
도 5는 본 발명의 일 실시예에 따른 PFCP 프록시의 개략적인 블록도이다.
도 6은 본 발명의 일 실시예에 따른 PFCP 프록시와 라우팅/SDN 컨트롤러 간의 정보 교환을 예시하는 개략적인 블록도이다.
도 7a는 본 발명의 일 실시예에 따른 외부 라우팅 정보를 변환 모듈(translation module)로 전파하는 것을 예시하는 개략적인 블록도이다.
도 7b는 본 발명의 일 실시예에 따른 패킷들을 외부 네트워크로 라우팅하기 위한 변환 모듈의 프로그래밍을 예시하는 개략적인 블록도이다.
도 7c는 본 발명의 일 실시예에 따른 패킷들을 외부 네트워크로 라우팅하기 위한 라우팅 모듈의 프로그래밍을 예시하는 개략적인 블록도이다.
도 7d는 본 발명의 일 실시예에 따른 패킷들을 외부 네트워크로 라우팅하기 위한 변환 모듈의 프로그래밍을 예시하는 개략적인 블록도이다.
도 8은 본 발명의 일 실시예에 따른 변환 모듈의 구성을 개략적으로 나타낸 블록도이다.
도 9a는 본 발명의 일 실시예에 따른 GTP로부터 SRv6로의 변환을 예시하는 개략적인 블록도이다.
도 9b는 본 발명의 일 실시예에 따른 변환 모듈의 동작을 추가로 예시하는 개략적인 블록도이다.
도 9c는 본 발명의 일 실시예에 따른 SRv6로부터 GTP로의 변환을 예시하는 개략적인 블록도이다.
도 10a는 본 발명의 일 실시예에 따른 로드 밸런싱(load balancing) PFCP 프록시의 개략적인 블록도이다.
도10b는 본 발명의 일 실시예에 따른 PFCP 세션의 로드 밸런싱을 수행하는 방법의 프로세스 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 라우팅 정보의 비선택적 분배를 예시하는 개략적인 블록도이다.
도 12a는 본 발명의 일 실시예에 따른 라우팅 정보의 선택적 분배를 수행하기 위한 네트워크 환경의 개략적인 블록도이다.
도 12b는 네트워크 내의 엔티티들과 사용되는 다양한 라벨들 및 어드레스들 간의 예시적인 관계를 예시한다.
도 13은 본 발명의 일 실시예에 따른 라우팅 정보의 선택적 분배를 위한 방법의 프로세스 흐름도이다.
도 14는 본 발명의 실시예들에 따른 방법들을 구현하기에 적합한 컴퓨터 시스템의 개략적인 블록도이다.
본 명세서의 도면들에 개괄적으로 설명되고 예시된 본 발명의 컴포넌트들은 매우 다양한 상이한 구성들로 배열되고 설계될 수 있다는 것이 쉽게 이해될 것이다. 따라서, 도면들에 나타낸 바와 같은 본 발명의 실시예들에 대한 이하의 보다 상세한 설명은, 청구된 본 발명의 범위를 제한하도록 의도되지 않지만, 본 발명에 따라 현재 고려되는 실시예들의 특정 예들을 단지 나타낸다. 현재 설명된 실시예들은 도면들을 참조하여 가장 잘 이해될 것이며, 여기서 유사한 부분들은 전체에 걸쳐 유사한 번호들에 의해 지정된다.
본 발명에 따른 실시예들은 장치, 방법, 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 실시예, 전적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함), 또는 본 명세서에서 모두 일반적으로 "모듈" 또는 "시스템"으로 지칭될 수 있는 소프트웨어 및 하드웨어 양태들을 조합하는 실시예의 형태를 취할 수 있다. 또한, 본 발명은 매체에 구현된 컴퓨터 사용 가능 프로그램 코드를 갖는 임의의 유형(tangible)의 표현 매체에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체의 임의의 조합이 이용될 수 있다. 예를 들어, 컴퓨터 판독 가능 매체는 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM) 디바이스, 판독 전용 메모리(ROM) 디바이스, 소거 가능한 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리) 디바이스, 휴대용 컴팩트 디스크 판독 전용 메모리(CDROM), 광학 저장 디바이스 및 자기 저장 디바이스 중 하나 이상을 포함할 수 있다. 선택된 실시예들에서, 컴퓨터 판독가능 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 이와 관련하여 사용하기 위해 프로그램을 함유, 저장, 통신, 전파, 또는 전송할 수 있는 임의의 비일시적 매체를 포함할 수 있다.
본 발명의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 Java, Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차적 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 기록될 수 있고, 또한 HTML, XML, JSON 등과 같은 기술적 또는 마크업 언어들을 사용할 수 있다. 프로그램 코드는 전적으로 독립형 소프트웨어 패키지로서 컴퓨터 시스템 상에서, 독립형 하드웨어 유닛 상에서, 부분적으로 컴퓨터로부터 일정 거리 이격된 원격 컴퓨터 상에서, 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 네트워크(LAN) 또는 광역 네트워크(WAN)를 포함하는 임의의 유형의 네트워크를 통해 컴퓨터에 연결될 수 있거나, 또는 외부 컴퓨터에 대한 연결(예를 들어, 인터넷 서비스 제공자를 사용하는 인터넷을 통해)이 이루어질 수 있다.
본 발명은 본 발명의 실시예들에 따른 방법들, 장치(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도 예시들 및/또는 블록도들을 참조하여 아래에서 설명된다. 흐름도들 및/또는 블록도들의 각각의 블록, 및 흐름도들 및/또는 블록도들에서의 블록들의 조합들은 컴퓨터 프로그램 명령어들 또는 코드에 의해 구현될 수 있다는 것이 이해될 것이다. 이들 컴퓨터 프로그램 명령어들은 기계를 생산하기 위해 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서에 제공될 수 있어서, 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령어들은 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 수단을 생성한다.
이들 컴퓨터 프로그램 명령어들은 또한 컴퓨터 또는 다른 프로그램가능 데이터 프로세싱 장치가 특정 방식으로 기능하도록 지시할 수 있는 비일시적 컴퓨터 판독가능 매체에 저장될 수 있어서, 컴퓨터 판독가능 매체에 저장된 명령어들은 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능/동작을 구현하는 명령어 수단을 포함하는 제조 물품을 생산한다.
컴퓨터 프로그램 명령어들은 또한 컴퓨터 또는 다른 프로그램 가능한 데이터 프로세싱 장치 상에 로딩되어 일련의 동작 단계들이 컴퓨터 또는 다른 프로그램 가능한 장치 상에서 수행되게 하여 컴퓨터 구현 프로세스를 생성할 수 있어서, 컴퓨터 또는 다른 프로그램 가능한 장치 상에서 실행되는 명령어들은 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 프로세스들을 제공한다.
도 2를 참조하면, 일부 실시예들에서, UE(102)로부터의 패킷들은 gNodeB(106)에 의해 수신될 때 GPRS(general packet radio service) 패킷들로서 포맷된다. gNodeB(106)는 RU(라디오 유닛(radio unit), 즉 안테나), DU(distributed Unit) 및 CU(Centralized Unit)의 기능을 제어하고, UE(102)와 네트워크(110) 사이의 패킷들의 전송을 관리할 수 있다. 그런 다음, gNodeB(106)는 GPRS 터널링 프로토콜(GTP : GPRS Tunneling Protocol) 패킷들 내에 이들 패킷들을 캡슐화할 수 있고, 그런 다음, UPF(112)에 포워딩된다. 경로(204)는 UPF(112)로 그리고 그로부터 발송되는 패킷들의 경로를 예시한다. 경로(206)는 도 1b 또는 다른 목적지에 대해서와 같이 상이한 MEC 서버(118)로 그리고 그로부터의 리다이렉트되는 패킷들의 경로를 예시한다.
gNodeB(106)에 의해 출력되는 패킷들은 변환 모듈(translation module)(208)에 의해 프로세싱될 수 있다. 예시된 실시예에서, 변환 모듈(208)은 GTP와 인터넷 프로토콜, 즉 셀룰러 데이터 네트워크에서 사용하기에 적합하지 않고 GTP가 아닌 프로토콜 사이에서 앞뒤로 변환한다. 예시된 실시예에서, 인터넷 프로토콜은 SRv6(IPv6 데이터 플레인을 통한 세그먼트 라우팅)이다. 이하의 설명에서, GTP와 SRv6 사이의 변환들에 대한 언급은 GTP와 다른 인터넷 프로토콜들 사이의 변환들로 대체될 수 있다는 것이 이해될 것이다.
변환 모듈(translation module)(208)은 gNodeB(106)와 SRv6 네트워크(210), 예를 들어, 데이터 평면 및/또는 SRv6 또는 다른 IP 프로토콜에 따라 구현된 라우팅을 갖는 네트워크 사이에 개재될 수 있다. UPF(112)는 다른 변환 모듈(212)에 의해 SRv6 네트워크(210)에 연결될 수 있다. 일부 실시예에서, 변환 모듈(208), 네트워크(210) 및 변환 모듈(208)은 공통 컴퓨팅 디바이스의 일부일 수 있고, 즉 공통 섀시(common chassis)에 장착될 수 있다는 것에 유의한다. 해당 공통 컴퓨팅 디바이스는 안테나(104) 및 gNodeB(106) 중 하나 또는 둘 모두와 같은 장소에 배치될 수 있다. 공통 컴퓨팅 디바이스는 또한 MEC 서버(116)를 포함할 수 있다.
네트워크(210)는 또한, 예컨대 인터넷 프로토콜 라우팅 모듈(216)에 의해 외부 네트워크(214)에 커플링될 수 있다. 라우팅 모듈(216)은 예시된 실시예에서 SRv6 라우터이지만, 다른 라우팅 프로토콜들을 구현하는 라우터들이 또한 사용될 수 있다. 일부 실시예에서, 라우팅 모듈(216)은 GTP 프로토콜을 구현하지 않는다. 외부 네트워크(214)는 인터넷과 같은 WAN일 수 있고, 네트워크(210)를 다른 MEC 서버(118)에 또는 UE(102)에 서비스를 제공하는 임의의 제3자 서버에 연결할 수 있다.
예시된 실시예에서, "A"로서 라벨링된 경로들(204, 206)의 부분들은 GTP 패킷들로서 포맷팅된 패킷들(이하, "A-타입 패킷들")을 전달할 수 있다. A-타입 패킷들은, 캡슐화된 페이로드 데이터에 추가하여, 내부 인터넷 프로토콜(IP) 헤더, GTP 헤더, UDP(사용자 데이터그램 프로토콜) 헤더, 및 외부 IP 헤더의 일부 또는 전부를 포함할 수 있다. 내부 IP 헤더는 UE(102) 상에서 생성된 IP 프로토콜에 따른 IP 헤더일 수 있다. 외부 IP 헤더는, gNodeB(106)에 의해 생성되고 A-타입 패킷을 네트워크(210)를 통해 UPF(112), MEC 서버(116), MEC 서버(118) 또는 외부 네트워크(214)로 라우팅하기 위한 정보를 정의하는, IP 프로토콜에 따른 IP 헤더, 또는 상이한 IP 프로토콜일 수 있다.
"B"로 라벨링된 경로들(204, 206)의 부분들은 SRv6 패킷들(이하 "B-타입 패킷들")과 같은 인터넷 프로토콜 패킷들로서 포맷팅된 패킷들을 전달할 수 있다. 이러한 패킷은 위에서 정의된 내부 IP 헤더, SRH'(segment routing header) 및 IPv6 헤더와 같은 인터넷 라우팅 헤더를 포함할 수 있다. 각각의 B-타입 패킷의 SRH'는 B-타입 패킷이 변환된 A-타입 패킷의 GTP 헤더, UDP 헤더 및 외부 IP 헤더의 일부 또는 전부로부터의 정보를 포함하도록 B-타입 패킷을 생성한 변환 모듈(208, 212)에 의해 채워(populate)질 수 있다. 특히, SRH'에 저장된 정보는 변환 모듈들(208, 212) 중 다른 하나에 의해 B-타입 패킷을 A-타입 패킷(GTP 패킷)으로 변환하기에 충분한 데이터를 포함할 수 있다. Ipv6 필드는 Ipv6와 같은 인터넷 프로토콜(IP)에 따라 포맷된 패킷일 수 있고, 소스 IP 어드레스, 목적지 IP 어드레스, 및 Ipv6 또는 다른 인터넷 프로토콜에 의해 정의된 다른 필드들에 대한 데이터를 포함하는 네트워크(210)와 같은 IP 네트워크를 통해 패킷을 라우팅하기에 충분한 정보를 포함할 수 있다. 이 정보는 B-타입 패킷이 획득된 A-타입 패킷의 외부 IP 헤더로부터 획득될 수 있다. Ipv6 패킷은 또한 A-타입 패킷으로부터의 페이로드 데이터(payload data)를 포함할 수 있다.
"C"로 라벨링된 경로들(206)의 부분들은 B-타입 패킷들과 동일한 필드 정의들을 포함하지만 SRH가 A-타입 패킷의 GTP 헤더로부터의 정보를 저장하지 않는 및/또는 SRH 필드 내의 정보를 사용하여 B-타입 패킷들로 후속하여 변환되지 않는 인터넷 프로토콜 패킷들로서 포맷된 "C-타입" 패킷들을 전달할 수 있다. 도 2에 도시된 바와 같이, MEC 서버(118)로부터 UE(102)로 발송된 패킷들은 B 타입 패킷들로서 네트워크(210)를 횡단할 수 있는 반면, UE(102)로부터 MEC 서버(118)로 발송된 패킷들은 C 타입 패킷들로서 네트워크(210)를 횡단한다.
"D"로 라벨링된 경로들(206)의 부분들은 D-타입 패킷이 획득된 C-타입 패킷의 내부 IP 헤더 및 페이로드 데이터를 포함하는 인터넷 프로토콜 패킷들로서 포맷팅된 "D-타입" 패킷들을 전달할 수 있다. 특히, D-타입 패킷은 UE(102)로부터, MEC 서버(116, 118)로부터, 또는 외부 네트워크(214)로부터 gNodeB(106)에 의해 수신되는 IP 패킷을 포함할 수 있다.
"다이렉트 인바운드 패킷(direct inbound packet)들"은 도 2의 경로(204)를 따라 좌측에서 우측으로 이동하는 패킷들과 같이 리다이렉트되지 않는 gNodeB(106)를 통과하는 패킷들일 수 있다. 다이렉트 인바운드 패킷은 UE(102)에서 gNodeB로 송신된다. gNodeB에 의해 수신된, 다이렉트 인바운드 패킷들은 D-타입 패킷들, 예를 들어, IPv4 또는 IPv6일 수 있다. gNodeB(106)에 의해 출력된, 다이렉트 인바운드 패킷들은 gNodeB(106)에 의해 변환 모듈(208)로 전송되는 A-타입 패킷들일 수 있다. 특히, A-타입 패킷은 UE(102)로부터 수신된 IP 패킷을 캡슐화한 GTP 패킷일 수 있다.
변환 모듈(208)은 A-타입 다이렉트 인바운드 패킷들을 B-타입 패킷들로 변환하고, A-타입 다이렉트 인바운드 패킷들의 외부 IP 헤더에 포함된 정보를 사용하여 B-타입 다이렉트 인바운드 패킷들을 네트워크(210)를 통해 UPF(112)로 송신한다. 전술한 바와 같이, A-타입 패킷의 GTP 필드로부터의 정보는 A-타입 패킷으로의 역변환을 가능하게 하기 위해 이로부터 획득된 B-타입 패킷의 SRH' 필드에 포함될 수 있다. 그러나, B-type 패킷 자체는 GTP 패킷이 아닌 SRv6 패킷일 수 있다. B-타입 패킷은 A-타입 패킷으로부터의 페이로드 데이터 및 내부 IP 헤더를 더 포함한다.
B-타입 다이렉트 인바운드 패킷들은 변환 모듈(212)로 라우팅될 수 있으며, 이는 B-타입 패킷들의 SRH'에 저장된 정보를 사용하여 다이렉트 인바운드 패킷들을 B-타입 패킷들로부터 A-타입 패킷들로 다시 변환한다. 특히, B-타입 패킷의 SRH' 필드 내의 데이터는 내부 IP 필드 및 B-타입 패킷의 페이로드 데이터를 포함하는 GTP 패킷의 GTP 헤더를 생성하는데 사용되며, GTP 패킷은 B-타입 다이렉트 인바운드 패킷에 대한 A-타입 다이렉트 인바운드 패킷이다.
변환 모듈(212)에 의한 전환 후에, A-타입 다이렉트 인바운드 패킷들이 UPF(112)로 송신된다. 그런 다음, UPF(112)는 다이렉트 인바운드 패킷을 디캡슐화(decapsulate)하여 내부 IP 패킷(예를 들어, UE(102)로부터 수신된 D-타입 패킷)을 획득하고, D-타입 다이렉트 인바운드 패킷들을 MEC 서버(116)로 포워딩할 수 있다.
"리다이렉트된 인바운드 패킷(redirected inbound packet)들"은, UE(102)로부터 D-타입 패킷들로서 발원(originate)되고 gNodeB(106)를 통해 송신되지만, MEC 서버(116)로부터 멀리, 예컨대, 외부 네트워크(214) 및/또는 다른 MEC 서버(118) 또는 제3자 서버로 리다이렉트되는 패킷들일 수 있다. 리다이렉트된 인바운드 패킷들은 도 2의 좌측 상부로부터 우측 하부로 경로(206)를 횡단할 수 있다. gNodeB(106)에 의해 출력되는, 리다이렉트된 인바운드 패킷들은 gNodeB(106)에 의해 변환 모듈(208)로 송신된 A-타입 패킷들일 수 있다. 변환 모듈(208)은 A-타입 리다이렉트된 인바운드 패킷들을 C-타입 패킷들로 변환하여 C-타입 리다이렉트된 인바운드 패킷들이 A-타입 리다이렉트된 인바운드 패킷들의 GTP 또는 UDP 헤더들로부터의 정보를 포함하지 않도록 한다. 변환 모듈(208)은, 예컨대 라우팅 모듈(216)에 의해, 패킷들이 리다이렉트되는 MEC 서버(118)에 C-타입 리다이렉트된 인바운드 패킷들을 송신한다. 라우팅 모듈(216)은 C-타입 리다이렉트된 인바운드 패킷들을 D-타입 패킷들로 변환하고, D-타입 리다이렉트된 인바운드 패킷들을 MEC 서버(118)에 발송한다. 상기에서 언급된 바와 같이, 변환은 C-타입 패킷에 캡슐화된 D-타입 패킷을 디캡슐화하는 것을 포함할 수 있다.
"다이렉트 아웃바운드 패킷(direct outbound packet)들"은 리다이렉트된 인바운드 패킷 또는 리다이렉트된 인바운드 패킷과 동일한 네트워크 플로우(flow)의 부분에 응답하지 않고 UPF(112)를 통과하고 gNodeB를 통해 UE(102)로 송신되는 패킷들일 수 있다. 예를 들어, MEC 서버(116)로부터의 패킷들은 다이렉트 아웃바운드 패킷들로서 UPF(112)를 통해 송신될 수 있다. 다이렉트 아웃바운드 패킷들은 도 2의 경로(204)를 따라 우측에서 좌측으로 경로(204)를 횡단할 수 있다. MEC 서버(116)로부터 UPF(112)에 의해 수신된 패킷은 D-타입 패킷일 수 있다. UPF(112)에 의해 출력되는, 다이렉트 아웃바운드 패킷들은 D-타입 패킷들을 캡슐화하고 UPF(112)에 의해 변환 모듈(212)에 송신되는 A-타입 패킷들일 수 있다. 변환 모듈(212)은 A-타입 다이렉트 아웃바운드 패킷들을 B-타입 패킷들로 전환하고, B-타입 패킷들의 IPv6 필드에 포함된 정보를 사용하여 B-타입 다이렉트 아웃바운드 패킷들을 네트워크(210)를 통해 gNodeB(106)에 송신한다. 변환은 GTP 패킷을 SRv6 패킷의 SRH' 필드 내의 GTP 패킷의 GTP 헤더로부터의 데이터를 포함하는 SRv6 패킷으로 변환하는 것을 포함할 수 있으며, SRv6 패킷은 GTP 패킷의 내부 IP 헤더 및 GTP 패킷의 페이로드 데이터를 더 포함한다.
B-타입 다이렉트 아웃바운드 패킷들은 변환 모듈(212)에 의해 변환 모듈(208)로 라우팅될 수 있으며, 이는 B-타입 패킷들의 SRH'에 저장된 정보를 사용하여 B-타입 다이렉트 아웃바운드 패킷들을 다시 A-타입 다이렉트 아웃바운드 패킷들로 전환한다. 이것은 SRv6 패킷을 B-타입 패킷의 내부 IP 헤더 및 페이로드 데이터를 캡슐화하고 SRH' 필드로부터의 데이터를 GTP 헤더에 포함하는 GTP 패킷으로 전환하는 것을 포함할 수 있다.
변환 모듈(208)에 의한 전환(conversion) 후에, A-타입 다이렉트 아웃바운드 패킷들은 gNodeB(106)에 송신된다. 그런 다음 gNodeB(106)는 D-타입 다이렉트 아웃바운드 패킷들을 획득하기 위해 A-타입 패킷들을 디캡슐화하고 D-타입 다이렉트 아웃바운드 패킷들을 UE(102)에 포워딩할 수 있다. 디캡슐화는 GTP 패킷으로부터 페이로드 데이터 및 내부 IP 헤더를 추출하는 것을 포함할 수 있다.
"리다이렉트된 아웃바운드 패킷들(redirected outbound packets)"은 리다이렉트된 인바운드 패킷들이 라우팅되었던 외부 네트워크(214) 내의 위치 또는 MEC 서버(118)로부터 발원되는 패킷들일 수 있다. 리다이렉트된 아웃바운드 패킷은 리다이렉트된 인바운드 패킷에 응답하여, 또는 리다이렉트된 인바운드 패킷과 동일한 네트워크 플로우의 부분에 송신될 수 있다. 예를 들어, 리다이렉트된 아웃바운드 패킷들은 MEC 서버(118) 또는 제3자 서버에 의해 UE(102)에 송신될 수 있다. 리다이렉트된 아웃바운드 패킷들은 도 2의 우측 하부로부터 좌측 상부로 경로(206)를 횡단할 수 있다. 리다이렉트된 아웃바운드 패킷은, 예컨대 외부 네트워크(214), 라우팅 모듈(216) 및 네트워크(210)의 일부 또는 전부에 의해 변환 모듈(208)로의 경로를 횡단할 수 있다. 라우팅 모듈(216)에 의해 수신된, 리다이렉트된 아웃바운드 패킷은 라우팅 모듈(216)에 의해 B-타입 리다이렉트된 아웃바운드 패킷으로 변환되는 D-타입 패킷일 수 있고, B-타입 리다이렉트된 아웃바운드 패킷은 네트워크(210)를 통해 변환 모듈(208)로 포워딩된다. 변환은 IP 패킷의 내부 IP 헤더 및 페이로드 데이터를 GTP 패킷으로 캡슐화하는 것을 포함할 수 있다.
변환 모듈(208)은 B-타입 리다이렉트된 아웃바운드 패킷을 A-타입 패킷으로 변환하고 A-타입 리다이렉트된 아웃바운드 패킷을 gNodeB(106)에 송신한다. B-타입에서 A-타입으로의 변환은 B-타입 패킷들의 SRH'에 저장된 정보를 이용하는 것을 포함할 수 있다. 이것은 SRv6 패킷을 B-타입 패킷의 내부 IP 헤더 및 페이로드 데이터를 캡슐화하고 SRH' 필드로부터의 데이터를 GTP 헤더에 포함하는 GTP 패킷으로 변환하는 것을 포함할 수 있다. 그런 다음, gNodeB(106)는 B-타입 리다이렉트된 아웃바운드 패킷으로부터 D-타입 리다이렉트된 아웃바운드 패킷(내부 IP 헤더 및 페이로드 데이터)을 디캡슐화하고, D-타입 리다이렉트된 아웃바운드 패킷을 UE(102)에 송신할 수 있다.
일부 실시예들에서, 사용자 평면 메시지(user plane message)는 UPF(112)와 UE(102) 사이의 세션을 수립 및 유지하기 위해 사용되는 메시지들이다. 사용자 평면 메시지들은 또한 UE(102) 및 MEC 서버(116)로의 그리고 그로부터의 패킷들의 라우팅 또는 외부 네트워크(214)로의 패킷들의 리다이렉션을 지시하기 위해 UPF(112)에 의해 송신되는 메시지들을 포함할 수 있다. 사용자 평면 메시지들은 또한 에코 요청, 에코 응답, 에러 표시, 또는 다른 사용자 평면 메시지들과 같은 5G 사용자 평면 메시지를 전달할 수 있다.
인바운드 사용자 평면 메시지들은 다이렉트 인바운드 패킷들로서 라우팅될 수 있다. UPF(112)로부터 송신된 사용자 평면 메시지들은 모든 인스턴스에서 다이렉트 아웃바운드 패킷들로 취급될 수 있다. 리다이렉션이 UPF(112)에 의해 명령된 바와 같이 발생하는 경우, 후속 인바운드 데이터 패킷들, 즉 비-사용자 평면 메시지 패킷들은 UPF(112)를 우회하여 리다이렉트된 인바운드 패킷들로서 변환 모듈(208)에 의해 라우팅될 수 있다. 변환 모듈(208)은 인바운드 패킷들의 딥 패킷 검사(deep packet inspection)를 수행함으로써 사용자 평면 메시지들을 식별할 수 있다. 이러한 라우팅을 수행하기 위한 시스템들 및 방법들이 이하에서 상세히 설명된다.
도 3을 참조하면, UE(102)와 외부 네트워크(214) 사이의 네트워크 경로는 제어 평면(300) 및 데이터 평면(302)에 대해 이해될 수 있다. 제어 평면(300)은 모듈들을 포함하고 미리 결정된 방식으로 패킷들을 송신하기 위해 데이터 평면(302)의 모듈들을 구성하는 모듈들 사이의 통신을 포함한다. 데이터 평면(302)은 모듈들을 포함하고 UE(102)와 외부 네트워크(214) 사이에서 페이로드 데이터의 패킷들을 송신하는 모듈들 사이의 통신을 포함한다. 제어 평면(300) 및 데이터 평면(302)의 모듈들은 단일 디바이스 내에서, 공통 회로 보드 또는 섀시에 커플링된 다수의 디바이스들 내에서, 또는 하나 이상의 네트워크 연결들에 의해 서로 연결된 다수의 디바이스들 내에서 구현될 수 있다. 예시된 컴포넌트들은 서버, 클라우드 컴퓨팅 플랫폼, 또는 다른 위치 상에서 실행되거나 이들 중 하나 이상의 조합에 걸쳐 분산될 수 있다.
제어 평면(300) 및 데이터 평면(302)은 또한 부분들(304 및 306)로 분할될 수 있다. 부분(304)은 패킷 라디오 타입 통신("패킷 라디오 부분(304)")에서 사용하기에 적합한 프로토콜들, 즉 GPRS, GTP, 또는 다른 셀룰러 데이터 통신 프로토콜들을 사용하는 통신에 따라 데이터 패킷들을 전달하는 것으로 이해될 수 있다. 예시된 실시예에서, 부분(304)은 셀룰러 데이터 통신을 위한 3GPP(3rd-generation partnership project) 프로토콜들을 구현하지만, 다른 셀룰러 데이터 통신 프로토콜들이 또한 사용될 수 있다.
부분(306)은 IPv6 프로토콜 또는 패킷 라디오 타입 통신("IP 부분(306)")에서 사용하도록 적응되지 않은 다른 인터넷 프로토콜과 같은 인터넷 프로토콜에 따라 데이터 패킷들을 전달하는 것으로 이해될 수 있다.
패킷 라디오 부분(304)의 제어 평면(300)은 다음과 같은 컴포넌트들을 포함할 수 있다:
Figure pct00001
인증, 핸드오버, IMS(IP Multimedia Subsystems) 및 SMS(Simple Message Service) 중 일부 또는 전부를 관리하기 위한 HSS UDM(Home Subscriber Server with Unified Data Management)(308) 또는 다른 컴포넌트.
사용자 가입에 따라 셀룰러 데이터 통신 네트워크로의 액세스를 관리하기 위한 정책 제어 기능(PCF : Policy Control Function) 및/또는 정책 및 과금 규칙 기능(PCRF : Policy and Charging Rules Function)(310).
연결 및 이동성 관리 태스크들(예를 들어, 핸드오버들)을 관리하기 위한 액세스 및 이동성 관리 기능(AMF : Access and Mobility Management Function) 및/또는 이동성 관리 엔티티(MME : Mobility Management Entity)(312) 또는 다른 컴포넌트.
UPF와의 사용자 세션들을 관리하고 인터넷 프로토콜 네트워크와 패킷 라디오 네트워크의 인터페이싱을 가능하게 하기 위한 세션 관리 기능(SMF) 및/또는 서빙 및 패킷 게이트웨이(SPGW, 예컨대 SPGW-C)(312)(본 명세서에서 "SMF(314)"로도 지칭됨) 또는 다른 컴포넌트.
SMF(314)는 GTP 세션 정보를 관리하고, 이를 AMF(312)에 제공할 수 있다. AMF(312)는 GTP 세션 정보에 따라 패킷들을 라우팅하기 위해 데이터 평면(302) 내의 컴포넌트들(아래에서 설명되는 gNodeB(106))을 프로그래밍할 수 있다.
패킷 라디오 부분(304)의 데이터 평면(302)은 다음과 같은 컴포넌트들을 포함할 수 있다:
안테나를 통해 UE(102)와 직접 통신하고 UE(102)로부터의 패킷들을 GTP 패킷들로 캡슐화하고 또한 사용자 평면 제어 프로토콜들을 구현할 수 있는 gNodeB(106) 또는 다른 하드웨어 컴포넌트.
패킷 라디오 부분(304)과 IP 부분(306) 사이를 횡단할 때 GTP와 SRv6 사이에서 패킷들을 앞뒤로 전환하기 위한 변환 모듈(208).
IP 부분(306)의 제어 평면(300)은 다음과 같은 컴포넌트들을 포함할 수 있다:
이하에서 더 상세히 설명되는 패킷 포워딩 제어 프로토콜(PFCP) 프록시(322).
도 3에 도시된 다른 컴포넌트들 및/또는 본 명세서에 설명된 네트워크들 중 임의의 네트워크의 다른 디바이스들에 라우팅 경로들을 수신 및/또는 송신하기 위한 경계 게이트웨이 프로토콜(BGP) 모듈(324) 또는 다른 컴포넌트.
GTP 연결을 종료하고 패킷 라디오 네트워크와 인터넷 프로토콜 네트워크 사이의 패킷의 송신을 관리하기 위한 평면 기능 제어 모듈(UPF N4)(326) 또는 다른 컴포넌트. UPF N4(326)는 UPF(112)와의 세션 셋업을 가능하게 한다.
IP 부분(306)의 데이터 평면(302)은 다음과 같은 컴포넌트들을 포함할 수 있다:
전술한 UPF(112).
변환 모듈(208)은 양쪽 부분들(304 및 306)에서 동작한다.
네트워크(210).
라우팅 모듈(216).
전술된 UPF(112)에 발송된 트래픽을 변환하기 위한 변환 모듈(212).
예시된 구현예에서, PFCP에 따른 패킷 포워딩 연관 결합(packet forwarding association)들은 PFCP 프록시(322)에 의해 SMF(314)와 UPF 제어 모듈(326) 사이에서 조정될 수 있다. 따라서, SMF(314) 및 UPF 제어 모듈(326)은 PFCP 프록시(322)를 통해 세션 정보를 교환할 수 있다. PFCP 프록시(322)는 이 정보를 스누핑(snoop)하고 이를 BGP 모듈(324)에 제공할 수 있다. 따라서, PFCP 프록시(322)는 UPF 제어 모듈(326)의 PFCP 구현과의 연관 결합 및 SMF(314)와의 연관 결합을 이룰 수 있다. BGP 모듈(324)은 본 명세서에서 후술되는 바와 같이 PFCP 프록시(322)에 의해 스누핑된 정보를 사용하여 GTP로부터 IP 프로토콜(예를 들어, SRv6)로 및 IP 프로토콜로부터 GTP로의 변환들을 수행하도록 데이터 평면(302)(예를 들어, 변환 모듈들(208, 212), 라우팅 모듈(216))을 프로그래밍하기 위해 스누핑된 정보를 사용할 수 있다.
PFCP를 구현하는 기존의 소프트웨어 패키지는 독점적이며 쉽게 변경되지 않는다. PFCP를 구현하기 위한 일부 오픈 소스 소프트웨어 패키지는 사용가능 하지만 애플리케이션에 통합되어야 하는 패키지로만 존재한다. 또한, UPF 제어 모듈(326)의 네트워크 스택은 쉽게 수정가능하지 않은 제3자 또는 오픈 소스 소프트웨어(예를 들어, upg-vpp(사용자 평면 게이트웨이 벡터 패킷 프로세서))에 의해 구현될 수 있다.
일부 실시예들에서, PFCP 프록시(322), BGP 모듈(324), 및 내부 라우팅 모듈(216)은 다음 중 일부 또는 전부를 수행하기 위해 이러한 컴포넌트들의 종래의 구현들에 비해 수정될 수 있다:
UPF 제어 모듈(UPF N4)(326)의 PFCP 구현과 SMF(314) 사이의 연관 결합들을 수립.
UPF 제어 모듈(326)의 PFCP 구현과 SMF(314) 사이에서 메시지들을 전송.
UE(102)의 어드레스, 원격/로컬 터널 엔드포인트(TEP) 어드레스들, 터널 엔드포인트 식별자(TEID : Tunnel Endpoint Identifier), 및 다른 정보와 같은 정보를 획득하기 위해 BGP 모듈(324)에 대한 세션 메시지들을 스누핑(snoop).
도 4는 PFCP 프록시(322) 및 BGP 모듈(324)의 예시적인 구현예를 추가로 예시한다. 종래의 5G 모바일 네트워크에서, 연관 결합(association), 예를 들어, 제어 채널이 AMF MME(312)와 UPF N4(326) 사이에 셋업될 것이다. 세션(session), 예를 들어, 사용자 평면 정보는 SMF SPGW(314)와 UPF N4(326) 사이에 수립될 것이다. 일단 SMF SPGW(314)와 UPF N4(326) 사이에 세션이 수립되면, UE(102)는 페이로드 트래픽을 발송하는 것을 개시할 수 있다. 후속하여, gNodeB(106)는 UE(102)로부터의 패킷들을 GTP 패킷들로 캡슐화하고, GTP 패킷들을 UPF(112)로 포워딩할 수 있다. 전형적인 5G 구현에서, 연관 결합(association) 및 세션(session) 요청들은 UPF N4(326)의 UDP 포트(8805)로 발송되고, UPF N4(326)로부터의 요청들에 대한 응답들은 요청들이 수신된 소스 UDP 포트로 발송될 것이다.
종래의 시스템에서, 앞서 언급된 이유들로 인해 gNodeB(106)와 UPF(112) 사이의 경로를 최적화하는 것은 어렵다: 모든 UE 트래픽은 GTP 패킷들로 캡슐화되고 UPF(112)를 통해 포워딩되어야 한다.
일부 실시예들에서, 종래의 5G 모바일 네트워크의 제한들은 SMF SPGW(314)와 UPF N4(326) 사이에 PFCP 프록시(322)를 개재함으로써 극복되어 PFCP 프록시(322)가 이들 컴포넌트들 사이에서 400 트래픽을 포워딩하도록 한다. 따라서, PFCP 프록시(322)는 SMF SPGW(314)로부터 PFCP 메시지들을 수신하고, 이들을 UPF N4(326)에 포워딩한다. 마찬가지로, PFCP 프록시(322)는 UPF N4(326)로부터 PFCP 메시지들을 수신하고 이들을 SMF SPGW(314)에 포워딩한다. 그렇게 함으로써, PFCP 프록시(322)는 사용자 평면 정보를 검색하기 위해 양방향으로 PFCP 메시지를 파싱(parse)할 수 있다.
그런 다음, PFCP 프록시(322)는 사용자 평면 정보를 PFCP 프록시(322) 외부에서 실행되는 라우팅/소프트웨어 정의 네트워크(SDN) 컨트롤러에 제공할 수 있다(402). 예시된 실시예에서, 라우팅/SDN 컨트롤러는 BGP 모듈(324)을 사용하여 구현되지만, 다른 구현예들도 사용될 수 있다. PFCP 프록시(322) 및 라우팅/SDN 컨트롤러(324)는 동일한 컴퓨팅 디바이스 또는 별개의 컴퓨팅 디바이스들 상에서 실행될 수 있다. PFCP 프록시 및 라우팅/SDN 컨트롤러(324)는 제어 평면(300), 특히 SMF SPGW-C(314) 및 UPF N4(326)의 추가적인 수정 없이 도 2에 대해 전술된 라우팅을 달성할 수 있다. 특히, SMF SPGW-C(314) 및 UPF N4(326)는 PFCP 프록시(322)의 동작이 SMF SPGW-C(314) 및 UPF N4(326)에 의해 인지가능하지 않도록 PFCP 프록시(322)를 통해 5G 세션을 수립하기 위해 정보를 교환할 수 있다.
BGP 모듈(324)은 사용자 평면 정보에 따라 데이터 평면에서 변환 모듈(208)을 프로그래밍할 수 있다(404a). 그런 다음, 변환 모듈(208)은 UPF(112)를 우회하여 BGP 모듈(324)로부터 수신된 경로에 따라 리다이렉트된 패킷들을 MEC 서버(118) 또는 외부 네트워크(214)와 같은 리다이렉션의 타겟으로 포워딩할 수 있고(406), 경로는 패킷들이 먼저 UPF(112)를 통해 라우팅되는 종래의 접근법에 비해 보다 최적화된다. BGP 모듈(324)은 또한 변환 모듈(212)을 프로그래밍하여(404b) 제어 패킷들을 UPF(112)로 라우팅하고, 라우팅 모듈(216)을 프로그래밍하여(404c) 외부 네트워크(214)에 의해 라우팅 모듈(216)에 연결된 MEC 서버(118) 또는 다른 디바이스로 및 그로부터 패킷들을 라우팅할 수 있다.
프로그래밍(404a)과 관련하여, BGP 모듈(324)은 변환 모듈(208)에 UPF(112)를 향한 루트(route)를 제공하고, 또한 전술한 바와 같이 GTP 패킷을 SRv6 패킷으로, 즉 A-타입 패킷을 B-타입 패킷으로 변환하는 방법에 관한 규칙을 제공한다. 따라서, 변환 모듈(208)이 목적지가 UPF(112)인 GTP 패킷을 수신할 때, 변환 모듈(208)은 변환을 수행하기 위해 BGP 모듈(324)로부터 수신된 규칙을 적용할 것이다.
프로그래밍(404b)과 관련하여, BGP 모듈(324)은 변환 모듈(212)에 대해 유사하거나 동일한 규칙을 제공할 수 있다. 이러한 규칙에 기초하여, 변환 모듈(212)은 SRv6 패킷들을 GTP 패킷들로 변환하고, UPF(112)로 발송된 원래의 GTP 패킷을 재생성할 수 있다. BGP 모듈(212)은 또한 gNodeB(106)를 향한 루트를 변환 모듈(212)에 제공할 수 있다. UPF(112)가 목적지가 gNodeB(106)인 GTP 패킷을 발송할 때, 변환 모듈(212)은 상기 규칙에 기초하여 GTP 패킷들을 SRv6 패킷들로 변환하고, 그런 다음 결과적인 SRv6 패킷들을 변환 모듈(208)로 포워딩할 수 있다. 변환 모듈(208)은 동일한 규칙에 기초하여 SRv6 패킷들을 다시 GTP 패킷들로 변환하고, 결과적인 GTP 패킷들을 gNodeB(106)에 포워딩할 수 있다.
UE(102)에 의해 외부 네트워크(214) 또는 외부 MEC 서버(118)를 향해 발송된 패킷들에 대해, 라우팅 모듈(216)은 외부 MEC 서버(118) 및/또는 외부 라우팅 모듈(214)로의 외부 루트를 변환 모듈(208)에 통지(announce)할 수 있다. 이것은 표준 L3VPN SRv6 방식에 기초하여 행해질 수 있다. 따라서, 변환 모듈(208)은 UE에 의해 생성된 내부 패킷에 기초하여 표준 SRv6 캡슐화를 실행할 수 있다.
프로그래밍(404c)과 관련하여, 라우팅 모듈(216)은 GTP 패킷을 프로세싱하는 능력이 결여될 수 있는 표준 SRv6 라우터를 구현할 수 있다. 따라서, 프로그래밍(404c)은 BGP 모듈(324)에 의해, GTP 정보(예를 들어, B-타입 패킷의 SRH' 헤더에 내장(embedded)될 수 있는 GTP 정보의 일부 또는 전부)를 함유하는 SRv6에 대한 특수 서비스 SID를 생성하는 것을 포함할 수 있다. 전술한 바와 같이, 네트워크(210)를 횡단하는 리다이렉트된 인바운드 패킷은 B-타입 패킷으로 포맷될 수 있다. 따라서, 프로그래밍(404c)은 라우팅 모듈(216)을 프로그래밍하여, MEC 서버(118) 또는 외부 네트워크(214)로부터 수신되고 gNodeB(106)로 어드레싱된 각각의 패킷을 캡슐화하는 Srv6 헤더의 SRH' 필드에 추가 GTP 정보를 채울 수 있다.
외부 네트워크(214) 또는 외부 MEC(118)로부터 수신되고 UE(102)로 지향된 응답들에 대해, 라우팅 모듈(216)은 응답 패킷(IPv4 또는 IPv6과 같은 IP 패킷)을 SRv6 패킷들로 캡슐화할 수 있다. 이때, 라우팅 모듈(216)은 BGP(324)에 의해 제공된 특수 서비스 SID를 사용할 수 있다. 이 SID는 SRH' 헤더에 포함될 수 있는 필요한 GTP 정보를 함유한다. 따라서, 변환 모듈(208)은 SRv6 패킷들을 GTP 패킷들로 변환하고 결과적인 GTP 패킷들을 gNodeB(106)에 발송할 수 있다.
도 5는 PFCP 프록시(322)의 예시적인 구현예를 예시한다. PFCP 프록시(322)는 5G 세션 정보를 검색하기 위해 PFCP 메시지들을 파싱할 수 있고, 아래에 개략적으로 나타낸 바와 같이 메시지들을 프로세싱하고 PFCP 메시지들을 그것들의 목적지들에 포워딩할 수 있다. 일부 실시예에서, go-pfcp 패키지는 PFCP 메시지들을 파싱하는데 사용된다. 예를 들어, 예시된 실시예에서, PFCP 프록시(322)는 PFCP 요청 수신기(500), SMF 요청 포워더(forwarder)(502), UPF 요청 포워더(504), SMF 응답 수신기(506), UPF 응답 수신기(508), SMF 응답 포워더(510), 및 UPF 응답 포워더(512)를 포함한다. 이들 컴포넌트들 각각은 PFCP 프록시(322)의 특정 포트로부터 리스닝(listen) 또는 송신하도록 할당될 수 있다. 각각의 컴포넌트의 동작을 설명하면 다음과 같다.
PFCP 메시지들을 UPF N4(326)로 포워딩할 때, PFCP 프록시(322)는 포워딩된 메시지의 IP 소스 어드레스를 PFCP 프록시의 어드레스와 함께 재기록하고, IP 목적지 어드레스를 UPF N4(326)의 어드레스로 재기록할 수 있다. PFCP 프록시(322)는 포워딩된 요청의 UDP 소스 포트를 PFCP 프록시의 포트 번호로 재기록할 수 있다. PFCP 프록시(322)에 의해 재기록 PFCP 요청은 그런 다음 UPF N4(326)로 발송될 수 있다.
PFCP 메시지를 SMF SPGW-C(314)에 포워딩할 때, PFCP 프록시(322)는 IP 소스 어드레스를 PFCP 프록시의 어드레스에 재기록하고, IP 목적지 어드레스를 SMF SPGW-C(314)의 어드레스로 재기록하고, UDP 소스 포트를 PFCP 프록시의 로컬 포트 번호에 재기록한다. 그런 다음, PFCP 프록시는 재기록된 PFCP 응답을 SMF SPGW-C(314)에 발송한다.
이러한 방식으로 메시지들(514, 516)을 재기록함으로써, SMF SPGW-C(314) 및 UPF N4(326)는 PFCP 프록시(322)와 통신하고 있다. 그러나, PFCP 프록시(322)는, MF SPGW-C(314) 및 UPF N4(326)가 PFCP 프록시(322)를 전혀 인식할 수 없도록, IP 소스/목적지 어드레스들 및 UDP 소스 포트를 덮어쓸 수 있다(overwrite).
PFCP 프록시(322)는 UDP 포트(8805)를 리스닝(listen)함으로써 PFCP 메시지를 인터셉트(intercept)한다. UDP 포트(8805)는 PFCP 메시지를 수신하기 위해 3GPP에 의해 정의된 포트이다. 따라서, UDP 포트(8805)는 다른 구성을 사용할 경우 이하의 설명 전반에 걸쳐 다른 포트로 대체될 수 있다. PFCP 프록시(322)의 컴포넌트들의 동작은 다음과 같을 수 있다:
PFCP 요청 수신기(500)는 SMF SPGW-C(314) 또는 UPF N4(326)로부터 UDP 포트(8805)로 어드레싱된 PFCP 요청 메시지들(514, 516), 즉 PFCP 메시지들을 수신하기 위해 할당된 포트를 리스닝하고, SMF SPGW-C(314)로부터의 PFCP 요청(514)의 소스 포트(예시된 예에서 포트 A)를 레코딩(record)한다. PFCP 요청 수신기(500)는 UPF N4(326)로부터의 PFCP 요청(516)의 소스 포트(예시된 예에서는 포트 B)를 추가로 레코딩할 수 있다. 메시지들(514, 516)에 대한 소스 포트들은 미리 구성될 수 있다(포트 X 및 Y 개별적으로).
SMF 요청 포워더(request forwarder)(502)는 요청(516)을 SMF SPGW-C(314)에 포워딩한다. SMF 요청 포워더(502)는 SMF 요청 포워더(502)에 의해 SMF SPGW-C(314)에 송신된 포워딩된 요청(516)에 대한 소스 포트로서 X를 사용하도록 PFCP 요청 수신기(500)에 의해 구성된다. SMF 요청 포워더(502)는 IP 목적지 어드레스를 SMF-SPGW-C(314)의 IP 어드레스로 재기록하고 IP 소스 어드레스를 PFCP 프록시(322)의 IP 어드레스로 재기록함으로써, 포워딩된 요청(516)을 추가로 수정한다.
UPF 요청 포워더(504)는 요청(514)을 UPF N4(326)에 포워딩한다. UPF 요청 포워더(504)는 UPF 요청 포워더(504)에 의해 UPF N4(326)에 송신된 포워딩된 요청(516)에 대한 소스 포트로서 Y를 사용하도록 PFCP 요청 수신기(500)에 의해 구성된다. UPF 요청 포워더(504)는 IP 목적지 어드레스를 UPF N4(326)의 IP 어드레스로서 재기록하고, IP 소스 어드레스를 PFCP 프록시(322)의 IP 어드레스로 재기록함으로써 포워딩된 요청(514)을 추가로 수정한다.
SMF 응답 수신기(506)는 포트 X로 어드레싱된 SMF SPGW-C(314)로부터의 PFCP 응답들(518)을 검출하고, 검출된 PFCP 응답들(518)을 UPF 응답 포워더(512)에 제공하도록 구성된다.
UPF 응답 수신기(508)는 포트 Y로 어드레싱된 UPF N4(326)로부터 PFCP 응답들(520)을 검출하고, 검출된 PFCP 응답들(520)을 SMF 응답 포워더(510)에 제공하도록 구성된다.
SMF 응답 포워더(510)는 PFCP 응답들(518)을 SMF SPGW-C(314)에 포워딩하도록 프로그래밍되고, 포워딩된 PFCP 응답들(518)의 소스는 UDP 포트(8805)로 설정되고 목적지는 포트 A(요청(514)의 이전에 레코딩된 소스 포트)로 설정된다. SMF 응답 포워더(510)는 IP 목적지 어드레스를 SMF SPGW-C(314)의 IP 어드레스로 재기록하고 IP 소스 어드레스를 PFCP 프록시(322)의 IP 어드레스로 재기록함으로써, 포워딩된 응답(518)을 추가로 수정한다.
UPF 응답 포워더(512)는 UPF N4(326)의 포트 Y에 PFCP 응답들(520)을 전달하도록 프로그래밍되고, 전달된 PFCP 응답들(520)의 소스는 UDP 포트(8805)로 설정되고 목적지는 포트 B(요청(516)의 이전에 레코딩된 소스 포트)로 설정된다. UPF 응답 포워더(512)는 또한 IP 목적지 어드레스를 UPF N4(326)의 IP 어드레스로 재기록하고 IP 소스 어드레스를 PFCP 프록시(322)의 IP 어드레스로 재기록함으로써 포워딩된 응답(518)을 추가로 수정한다.
도 6을 참조하면, PFCP 프록시(322)가 도 4와 관련하여 위에서 요약된 바와 같이 메시지들을 포워딩할 때, PFCP 프록시(322)는 또한 메시지들을 사용하여 생성되는 연관 결합들 및 세션들에 관한 정보를 스누핑할 수 있다. 그런 다음, 이러한 스누핑된 정보는 라우팅/SDN 컨트롤러(324)(BGP 모듈(324))에 제공될 수 있다. 예시된 실시예에서, PFCP 프록시(322)와 라우팅/SDN 컨트롤러(324) 사이의 정보의 전송은 프로세스간 통신(IPC : inter-process communication)(600)을 사용하여 수행된다. 예를 들어, gRPC(오픈 소스 RPC(remote procedure call) 시스템). SDN 컨트롤러(324)는 스누핑된 정보에 따라 라우팅 테이블(602)을 프로그래밍할 수 있다.
스누핑된 정보는 다음의 일부 또는 전부를 포함할 수 있다:
원격 터널 엔드포인트(TEP : Remote Tunnel Endpoint), 예를 들어, UPF(112)의 어드레스
로컬 TEP, 예를 들어, gNodeB(106)의 어드레스
TEID(Tunnel Endpoint Identifier)
QFI(서비스 품질(QoS) 플로우 식별자)
UE 어드레스 (UE(102)의 어드레스)
액세스 네트워크 인스턴스(Instance)
코어 네트워크 인스턴스
이 정보를 수신하면, 라우팅/SDN 컨트롤러(324)는 이 정보에 기초하여 라우팅 테이블(602)에 라우터 엔트리를 생성할 수 있다. 이러한 라우팅 엔트리들은 도 2 및 도 4와 관련하여 전술된 라우팅을 구현하기 위해 변환 모듈들(208, 212) 및 가능하게는 라우팅 모듈(216)의 라우팅을 제어하는 데 사용될 수 있다.
도 2를 다시 참조하면, 원하는 라우팅은 gNodeB(106)에 의해 UE(102)로부터 내부 IP 패킷을 수신하는 것을 포함할 수 있으며, 이는 내부 IP 패킷을 포함하는 A-타입(GTP) 패킷을 생성한다. gNodeB(106)는 gNodeB(106)와 UPF(112) 사이의 GTP 터널을 통해 A-타입 패킷을 UPF(112)에 송신한다. 이 GTP 터널을 정의하는 파라미터들은 앞서 열거된 스누핑된 정보, 특히 UPF(112)를 참조하는 원격 TEP 및 gNodeB(106)를 참조하는 로컬 TEP에 포함된다.
도 2와 관련하여 전술된 바와 같이, 단순히 GTP 터널을 통해 A-타입 패킷을 라우팅하기보다는, A-타입 패킷은 B- 또는 C-타입 패킷으로 변환되고 SRv6 네트워크(210)와 같은 IP 네트워크(210)를 통해 라우팅된다. IP 네트워크(210)와 GTP 터널 사이의 변환은 변환 모듈(208, 212)에 의해 관리된다. 추가적으로, 라우팅 모듈(216)은 또한 GTP 터널을 정의하는 파라미터들을 참조하여 패킷들을 라우팅할 필요가 있을 수 있다. PFCP 프록시(322)에 의해 획득된 스누핑된 정보는 라우팅/SDN 컨트롤러(324)에 제공될 수 있다. 그런 다음, 라우팅/SDN 컨트롤러(324)는 도 2와 관련하여 설명된 라우팅을 달성하기 위해 변환 모듈들(208, 212) 및 라우팅 모듈(216)을 프로그래밍할 수 있다. 변환 모듈들(208, 212) 및 라우팅 모듈(216)이 라우팅/SDN 컨트롤러(324)에 의해 어떻게 프로그래밍될 수 있는지에 대한 다양한 예들이 이하에서 설명된다.
제1 예에서, 라우팅/SDN 컨트롤러(324)는 원격 TEP를 수신하고, UPF(112)를 향한 루트를 생성 및 분배한다. 특히, 이 루트는 변환 모듈(208)에 제공될 수 있다. 루트는 GTP와 SRv6 사이의 변환을 수행하기 위해 전술한 바와 같은 프로그래밍(404a)에 추가하여 제공될 수 있다.
제2 예에서, 라우팅/SDN 컨트롤러(324)는 로컬 TEP 및 UE 어드레스를 수신하고, SRv6에 따라 이 정보에 기초하여 서비스 SID를 생성 및 분배한다. 특히, 서비스 SID는 라우팅 모듈(216)에 제공될 수 있다. 서비스 SID는 로컬 TEP에 의해 참조되는 gNodeB(106)에 의해 네트워크(210)를 통해 UE(102)로의 루트를 광고한다. QFI는 서비스 SID를 생성할 때 라우팅/SDN 컨트롤러(324)에 의해 사용될 수 있다. 이러한 제2 예는 전술한 바와 같이 프로그래밍(404c)을 수행할 때 구현될 수 있다.
제3 예에서, gNodeB(106)는 A-타입 패킷들의 목적지를 원격 TEP(UPF(112)의 터널 엔드포인트 어드레스)로 설정함으로써 UPF(112)와 수립된 GTP 터널 내에 A-타입(GTP) 패킷들을 발송할 수 있다. PFCP 프록시(322)는 GTP 터널을 셋업할 때 gNodeB(106)와 UPF(112) 사이의 제어 패킷들을 스누핑함으로써 이 원격 TEP 어드레스를 획득한다. PFCP 프록시(322)는 원격 TEP 어드레스를 라우팅/SDN 컨트롤러(324)에 제공할 수 있다.
그런 다음, 라우팅/SDN 컨트롤러(324)는 이러한 원격 TEP에 대한 라우팅 엔트리를 생성하고, 이러한 라우팅 엔트리로 변환 모듈(208)을 프로그래밍할 수 있다. 일부 실시예들에서, 라우팅/SDN 컨트롤러(324)는 라우팅 엔트리를 생성하기 위해 GTP4.D와 같은 함수를 사용할 수 있다. 라우팅 엔트리는 GTP 헤더 정보의 SRH' 헤더로의 인코딩을 포함하여, A-타입에서 B-타입 패킷으로의 변환을 정의하고, 예컨대 SRv6와 같은 세그먼트 라우팅 프로토콜에 따라 하나 이상의 SID들의 형태로, 네트워크(210)를 통해 변환 모듈(212)로의 라우팅을 정의할 수 있다.
제4 예에서, 인그레스(ingress) 프레미스 장비(PE : premise equipment)로부터 이그레스(egress) PE로의 트래픽의 라우팅은 아래에서 설명되는 바와 같이 스누핑된 정보에 기초하여 관리된다. 인그레스 PE는 예를 들어, 변환 모듈(208)일 수 있는 반면, 이그레스 PE는 외부 네트워크(214) 또는 MEC 서버(118)와 인터페이싱하기 위한 라우팅 모듈(216)이다. 역방향에서, 라우팅 모듈(216)은 인그레스 PE이고 변환 모듈(208)은 이그레스 PE이다.
L3VPN SRv6와 같은 표준 가상 사설 네트워크(VPN)에서, 인그레스 PE는 내부 패킷이 IP 네트워크로부터 수신된 패킷인 SRv6 패킷을 발송한다. SRv6 패킷의 목적지 어드레스는 이그레스 PE에 할당된 IPv6 어드레스(예를 들어, 세그먼트 식별자(SID : segment identifier))와 같은 IP 어드레스로 설정될 수 있다. 이그레스 PE는 SRv6 패킷을 수신하고, 내부 패킷을 디캡슐화하고, 내부 패킷을 내부 패킷의 목적지 어드레스로 포워딩한다. 예시된 예에서, 내부 패킷의 목적지 어드레스는 IPv6 목적지(예를 들어, SID)의 형태일 수 있다. 따라서, 이그레스 PE는 패킷이 네트워크(210)를 통해 이동하고 있는 방향에 따라 제3자 서버 또는 UE(102)일 수 있는 내부 패킷의 목적지 어드레스에 기초하여 내부 패킷을 어디로 포워딩할 지를 결정할 수 있다.
예시된 실시예에서, 이그레스 PE(예를 들어, 변환 모듈(208))는 특정 UE(102)에 도달하기 위해 내부 패킷이 포워딩되어야 하는 이용가능한 gNodeB 인스턴스들의 세트의 gNodeB(106)를 결정할 필요가 있을 수 있다. 따라서, 이그레스 PE는 UE(102)의 IP 어드레스를 해당 UE(102)가 연결된(예를 들어, TCP 또는 다른 세션이 수립된) gNodeB(106)의 로컬 TEP에 맵핑하는 라우팅 엔트리를 라우팅/SDN 컨트롤러(324)로부터 수신할 수 있다. UE(102)의 IP 어드레스와 로컬 TEP 사이의 연관 결합은 위에서 열거된 스누핑된 정보로부터 결정될 수 있다.
라우팅 엔트리는 C-타입 패킷으로부터 A-타입 패킷으로의 패킷의 변환을 수행하고, 결과적인 A-타입 패킷을 GTP 연결을 통해 gNodeB(106)에 송신할 때 gNodeB(106)의 로컬 TEP를 사용하도록 이그레스 PE에 명령할 수 있다. 예를 들어, GTP4.D(IPv4 GTP)가 사용되는 경우, 라우팅/SDN 컨트롤러(324)는 다음 IPv6 어드레스를 이그레스 PE에 제공할 수 있다:
SRv6 로케이터(Locator)(<56비트) + TEID(32비트) + QFI(8비트) + 로컬 TEP 어드레스(32비트)
"SRv6 로케이터"는 라우팅/SDN 컨트롤러(324) 상의 구성을 참조할 수 있다. SRv6 로케이터에 기초하여, 변환 모듈(208, 212)은 그것들이 수행할 변환 기능을 인식할 수 있다. 예를 들어, BGP(324)는 2001:db8::/48을 GTP와 SRv6 사이의 변환을 위한 SRv6 로케이터로서 할당할 수 있다. 이 경우, 변환 모듈(208, 212)이 GTP 패킷으로부터 SRv6 패킷을 생성할 때, 이는 2001:db8::/48을 SRv6 로케이터로서 사용하고, GTP 패킷의 TEID, QFI, TEP 어드레스를 SRH' 필드에 내장할 것이다. 변환 모듈(208, 212)이 목적지가 2001:db8::/48과 매칭하는 SRv6 패킷을 수신할 때, 변환 모듈(208, 212)은 SRv6 패킷이 GTP로 변환될 필요가 있음을 이해할 수 있다. 변환 모듈(208, 212)은 SRH' 필드로부터 TEID, QFI, TEP 어드레스를 획득하고, 그런 다음 원래의 GTP 패킷을 재생성할 수 있다. 그런 다음, GTP 패킷은 그것이 어드레싱되는 UPF(112) 또는 gNodeB(106) 중 어디로든 발송될 수 있다.
L3VPN에서의 다중경로 라벨 스위칭(MPLS)의 경우, SRv6 로케이터(locator)는 주어진 VPN을 특정하기 위해 사용될 수 있다. SRv6 L3VPN의 경우, SRv6 로케이터는 서비스 SID(IPv6 어드레스 포맷)를 특정할 수 있고 MPLS L3VPN에 대한 라벨 대신에 주어진 VPN을 특정하는데 사용될 수 있다.
로컬 TEP 어드레스는 IPv6 어드레스에 내장될 수 있다. 이 어드레스는 또한 서비스 SID로서 인그레스 PE에 통지될 수 있다. 이그레스 PE가, 목적지가 이 IPv6 어드레스와 매칭하는 패킷을 수신할 때, 이그레스 PE는 패킷을 포워딩할 gNodeB 인스턴스를 결정하고, 또한 BBU의 로컬 TEP 어드레스를 획득하고, gNodeB 인스턴스에 송신하기 위한 GTP 패킷(A-타입 패킷)을 생성할 수 있다. 라우팅/SDN 컨트롤러(324)는 이그레스 PE에게 IPv6 어드레스로부터 GTP 패킷으로의 변환을 수행하는 방법을 명령하는 GTP4.D 라우팅 규칙과 같은 라우팅 규칙으로 이그레스 PE를 프로그래밍할 수 있다.
SRv6로부터 GTP로 변환하기 위해, 이그레스 PE는 다음의 정보를 사용할 수 있다: 로컬 TEP 어드레스(gNodeB(106)의 어드레스), TEID(터널 식별자), 및 QFI(QoS 식별자). 로컬 TEP 어드레스는 GTP 패킷의 목적지 어드레스이다. TEID 및 QFI는 GTP 헤더에 내장될 필요가 있는 값이다. 따라서, 이 정보는 SRv6로부터 GTP로의 변환이 IPv6 목적지 어드레스에 반송되는 것을 가능하게 하기 위해 인그레스 PE로부터 이그레스 PE로 라우팅되는 패킷들의 IPv6 목적지 어드레스(위의 예시적인 어드레스 참조)에 내장될 수 있다.
이러한 정보(로컬 TEP 어드레스, TEID, QFI)는 PFCP 프록시(322)에 의해 획득되고, 라우팅/SDN 컨트롤러(324)에 제공되고, 그런 다음, 앞서 설명된 바와 같이 정보를 내장하고 정보를 사용하여 변환들을 수행하도록 인그레스 PE 및 이그레스 PE를 프로그래밍하기 위해 라우팅/SDN 컨트롤러(324)에 의해 사용된다. 라우팅/SDN 컨트롤러(324)는 인그레스 PE에 제공된 서비스 SID로서 내장된 정보에 포함된 IPv6 어드레스를 이용하여 VPNv4/v6 루트들을 통지함으로써 그렇게 할 수 있다. 라우팅/SDN 컨트롤러(324)는 또한 이 정보를 GTP4.E 기능을 사용하여 생성된 SRv6 로케이터의 형태로 이그레스 PE에 프로그래밍할 수 있다.
인그레스 PE가 IP 네트워크로부터 패킷을 수신할 때, 인그레스 PE는 SRv6로 IP 네트워크로부터 패킷을 캡슐화할 수 있다. 이때, 외부 IPv6 목적지 어드레스는 내장된 정보를 포함하는 상기의 서비스 SID이다. 이그레스 PE가 서비스 SID에 매칭된 외부 IPv6 목적지를 갖는 패킷을 수신할 때, 이그레스 PE는 수신된 패킷에 대해 GTP4.E 기능을 실행하여 이를 IPv6 목적지 어드레스에 내장된 TEID, QFI 및 로컬 TEP를 사용하여 GTP(A-타입) 패킷으로 변환하도록 결정할 수 있다.
제5 예에서, 라우팅 모듈(216)은 UE(102)의 IP 어드레스로 어드레싱된 패킷들을 외부 네트워크(214)로부터 수신할 수 있다. 스누핑된 정보는 gNodeB(106)의 로컬 TEP에 대한 연관 결합(association)을 제공한다. 따라서, 라우팅/SDN 컨트롤러(324)는 UE(102)의 IP 어드레스로 어드레싱된 트래픽을 gNodeB(106)로 라우팅하도록 라우팅 모듈(216)에 지시하는 라우팅 모듈(216)에 대한 루트를 통지할 수 있다. 패킷은 그런 다음, 상기에서 설명된 D, C, 및 A-타입 패킷들 사이의 변환들에 맞춰 도 2의 경로(206)에 따라 gNodeB(106)에 의해 UE(102)로 라우팅 모듈(216)에 의해 라우팅될 수 있다.
제6 예에서, 스누핑된 정보는 코어 네트워크 인스턴스를 포함할 수 있다. 이 값은 5G 코어 네트워크에서 네트워크 슬라이싱(network slicing)에 사용될 수 있다. 이 값에 기초하여, 라우팅/SDN 컨트롤러(324)는 UE 어드레스가 어느 가상 라우팅 및 포워딩(VRF : virtual routing and forwarding ) 테이블로부터 임포트(import)되어야 하는지 및 프로그래밍(404c)을 수행할 때 UE(102)로의 루트를 생성할 때 어느 VPN(VRF)을 사용할 지를 결정할 수 있다. 스누핑된 정보 내의 액세스 네트워크 인스턴스는 주어진 VRF 테이블로부터 특정 UE 어드레스를 필터링하는데 사용될 수 있다. 따라서, 라우팅/SDN 컨트롤러(324)는 스누핑된 정보에 특정된 코어 네트워크 인스턴스 및 액세스 네트워크 인스턴스에 기초하여 임포트 및/또는 필터 규칙을 특정할 수 있다.
도 7a 및 8을 참조하면, 변환 모듈(208)은 SRv6로부터 GTP로의 패킷들의 변환을 관리한다. 전형적인 5G 네트워크에서, GTP 패킷은 gNodeB(106)로부터 UPF(112)에 의해 수신되고, 내부 IP 패킷은 UPF(112)에 의해 GTP 패킷으로부터 획득되고, 내부 IP 패킷은 가상 라우팅 기능(VRF)에 따른 라우팅을 사용하는 것을 포함할 수 있는 SRv6에 따른 내부 IP 패킷의 라우팅을 관리하기 위해 SRv6 컴포넌트에 의해 후속하여 프로세싱된다. SRv6 컴포넌트는 UE(102)로 어드레싱된 인바운드 패킷들의 타겟일 수 있고, SRv6에 따라 라우팅을 관리하고, GTP 패킷들로의 캡슐화 및 gNodeB(106)로의 포워딩을 위해 수신된 패킷들을 UPF(112)로 포워딩한다.
본 명세서에 설명된 접근법에서, 패킷들은 SRv6 네트워크(210) 및 외부 네트워크(214)를 통해 변환 모듈(208)로 그리고 변환 모듈로부터 라우팅된다. 따라서, 변환 모듈(208)은 또한 VRF들을 관리하는 것을 포함하여 SRv6에 따라 패킷들의 라우팅을 관리할 수 있다.
본 명세서에 설명된 접근법은 SRv6를 참조한다. 그러나, MPLS(Multi-Protocol Label Switching)에 따른 라벨로 구현될 수 있다.
구체적으로 도 7a를 참조하면, 라우팅 모듈(216)은 BGP 루트 리플렉터 클라이언트와 같은 루트 리플렉터 클라이언트(route reflector client)(700)를 포함하거나 루트 리플렉터 클라이언트로서 기능할 수 있다. BGP 모듈(324)(본 명세서에서 라우팅/SDN 컨트롤러(324)로도 지칭됨)은 루트 리플렉터로서 기능할 수 있고, 루트 리플렉터 클라이언트(700)에 의해 브로드캐스트된 라우팅 정보를 수신(702)할 수 있다. 그런 다음, BGP 모듈(324)은, 예컨대 표준 루트 리플렉터 기능을 수행함으로써, 이러한 라우팅 정보를 변환 모듈(208)에 반영할 수 있다(704). 일부 실시예에서, 라우팅 모듈(216)은 외부 루트, 즉 외부 네트워크(214)에서의 외부 IP 어드레스로의 루트에 대한 VPNv4/v6 업데이트를 BGP(324)에 발송한다. 라우팅 모듈(216)을 클라이언트로서 갖는 루트 리플렉터로서 동작하는 BGP(324)는 라우팅 모듈(216)로부터 변환 모듈(208)로의 VPNv4/v6 업데이트를 반영한다. 이에 기초하여, 변환 모듈(208)은 라우팅 모듈(216)을 통해 외부 네트워크(214)로의 루트를 얻을 수 있다.
예를 들어, 라우팅 모듈(216)은 서비스 SID를 갖는 VPNv4/v6 루트들과 같은 루트들을 업데이트할 수 있다. 루트들은 외부 네트워크(214)에 대한 라우팅을 기술할 수 있고, 서비스 SID는 해당 서비스 SID로 라벨링된 패킷들에 대해 VPNv4/v6 기능들을 수행하는 것을 포함하여 세그먼트의 수행을 명령할 수 있다. 루트는 외부 네트워크(214)에서의 하나 이상의 어드레스들에 대한 다음 홉으로서 라우팅 모듈(216)을 특정하거나, 또는 하나 이상의 어드레스들을 포함하는 패킷들에 프리픽스(prefix) SID의 추가를 명령하는 SR 정책을 제공할 수 있고, 프리픽스 SID는 라우팅 모듈(216)로의 패킷들의 라우팅을 명령하는 세그먼트를 참조한다. 따라서 이 루트가 변환 모듈(208)에 제공되면, GTP 패킷(도 7a의 A-타입 패킷)을 수신하고 내부 IP 패킷을 디캡슐레이션할 수 있게 된다.
변환 모듈(208)은 내부 IP 패킷의 목적지 IP 어드레스를 획득하고, 루트가 목적지 IP 어드레스로 어드레싱된 패킷들이 라우팅 모듈(216)로 포워딩되어야 함을 특정한다는 것을 결정한다. 그런 다음, 변환 모듈(208)은 루트에 의해 지정된 SID(예를 들어, 라우팅 모듈(216)의 프리픽스 SID)를 갖는 SRv6 패킷(도 7a의 C-타입 패킷)으로서 내부 IP 패킷을 포워딩한다. C-타입 패킷은 네트워크(210)를 통해 라우팅 모듈(216)로 포워딩될 수 있으며, 이는 도 7a 내지 7d의 실시예들에서 SRv6를 갖는 레벨 3(L3) VPN으로서 구현될 수 있다.
라우팅 모듈(216)은 C-타입 패킷을 수신하고, 내부 IP 패킷(도 7a의 D-타입 패킷)을 디캡슐화하고, 외부 네트워크(214)를 통해 목적지 IP 어드레스로 내부 IP 패킷을 포워딩한다.
일부 실시예에서, BGP 모듈(324)은 또한 변환 모듈(208)에 VPN(VPNv4/v6)의 서비스 SID와 연관 결합된 VPN 서비스를 수행하도록 명령할 수 있다.
도 7b는 변환 모듈(212)을 통해 UE(102)로부터 UPF(112)로의 트래픽의 라우팅을 관리하기 위해 BGP 모듈(324) 및 변환 모듈(208)을 사용하기 위한 접근법을 예시한다. 예를 들어, 5G는 GTP-U 메시지를 정의한다. GTP-U 메시지들은 gNodeB(106)와 UPF(112) 사이의 데이터 경로 정보를 체크 및/또는 검출하는데 사용될 수 있다. 다른 GTP-U 메시지는 이 데이터 경로가 정상(healthy)인지 검출하기 위한 에코 요청(Echo request) 및 에코 응답(Echo reply)을 포함한다. GTP-U 메시지들은 또한 데이터 경로 상의 에러에 응답하여 에러 표시들을 통신하는 데 사용될 수 있다. GTP-U 메시지들은 (예를 들어, 핸드오버가 발생했을 때) 데이터 패킷 전송의 종료를 알리기 위한 종료 마커(end marker)를 포함할 수 있다. 외부 네트워크(214)에 어드레싱된 사용자 데이터 트래픽의 경우에, 변환 모듈(208)은 GTP 헤더를 스트립오프(strip off)하고, 내부 IP 패킷을 SRv6 패킷(C-타입 패킷)으로 캡슐화한 다음, C-타입 패킷을 변환 모듈(212)로 직접 포워딩할 수 있다.
본 명세서에 설명된 다른 실시예들에서와 같이, BGP 모듈(324)은 PFCP 프록시(322) 및/또는 CLI 컨트롤러(708)로부터 정보를 획득한다(706). 도 7b의 기능과 관련된 정보는 GTP 터널의 원격 TEP 어드레스, VRF ID(또는 루트 구별자 RD), 및 VPN 정보(VPNv4/v6 정보)를 포함할 수 있다.
UPF(112) 및/또는 gNodeB(106)에 의한 GTP-U 메시지들의 프로세싱을 가능하게 하기 위해, 변환 모듈(208)은 GTP-U 메시지들을 UPF(112)에 포워딩할 수 있다. 앞서 언급된 바와 같이, 이는 네트워크(210)와 UPF(112) 사이의 제2 변환 모듈(212)의 사용을 포함할 수 있다. 변환 모듈(212)은 GTP 패킷들을 UPF(112)에 포워딩하기 전에 패킷들을 SRv6로부터 GTP로 변환할 수 있다. 이를 행하기 위해, GTP 정보는 변환 모듈(212)에 포워딩되는 SRv6 패킷들, 예컨대, B-타입 패킷들의 SRH 필드에 내장될 수 있다.
따라서, BGP 모듈(324)은 UPF(112)로의 루트를 제공하기 위해 변환 모듈(208)에 VPNv4/v6 업데이트를 제공할 수 있다(710). BGP 모듈(324)은 또한 변환 모듈(208)에게 UPF(112)로 어드레싱된 GTP 패킷들을 변환하도록 명령하는 SR 정책을 변환 모듈(208)에 제공할 수 있으며(712), 이러한 변환은 전술한 바와 같이 SRH 필드 내의 GTP 정보를 인코딩하는 것을 포함한다. VPNv4/v6 업데이트 및 GTP 정보는 전술한 바와 같이 PFCP 프록시(322)로부터 수신된 정보로부터 BGP 모듈(324)에 의해 획득될 수 있다. 프로그래밍(710)은 UPF(112)로의 루트를 포함하는 VPNv4/v6 업데이트를 변환 모듈(208)에 제공하는 것을 포함할 수 있다. 프로그래밍(710)은 특정 VRF에서 이러한 루트로 변환 모듈(208)을 프로그래밍하는 것을 포함할 수 있다. 이러한 프로그래밍(710)에 기초하여, 변환 모듈(208)은 패킷을 gNodeB(106)로부터 UPF(112)로 라우팅할 수 있다.
변환 모듈(208)에 의해 UPF(112)에 제공되는 프로그래밍(710)은 gNodeB(106)가 연결되는 VRF 라우팅 구분자(RD : routing distinguisher) 및 gNodeB(106)가 속하는 5G 네트워크 인스턴스(액세스)에 따른 라우팅을 추가로 관리할 수 있다. CLI 컨트롤러(708)는 gNodeB(106)가 연결되는 제1 VRF RD와 gNodeB(106)가 속하는 5G 네트워크 인스턴스(액세스) 뿐만 아니라 내부 IP 패킷(예를 들어, GTP 패킷에 의해 캡슐화된 내부 IP 패킷)의 목적지 IP 어드레스에 대한 제2 VRF RD 사이의 매핑을 제공할 수 있다. PFCP 프록시(322)는 gNodeB(106)가 속하는 5G 네트워크 인스턴스(액세스) 및 UPF의 어드레스를 제공할 수 있다.
이 정보를 사용하여, BGP 모듈(324)은 어느 VRF RD가 PFCP 프록시(322)에 의해 제공되는 5G 네트워크 인스턴스(액세스, 즉 UPF(112)를 포함하는 네트워크)에 매칭되는지를 결정한다. 그런 다음, BGP 모듈(324)은 다음의 동작들을 수행할 수 있다: 5G 네트워크 인스턴스(액세스)에 매칭된 제1 VRF RD에 대한 UPF로의 루트에 대한 VPNv4/v6 업데이트를 변환 모듈(208)에 발송; 전술한 변환 규칙(내장된 GTP 정보를 갖는 GTP로부터 SRv6로의 변환을 정의함) 및 내부 IP 패킷의 목적지 어드레스와 연관 결합된 제2 VRF RD를 변환 모듈(208)에 알리기 위해 SR 정책을 발송.
SR 정책 및 VPNv4/v6는 다음 기능을 수행하도록 변환 모듈(208)을 프로그래밍할 수 있다:
Figure pct00032
목적지 어드레스가 UPF(112)의 어드레스인 GTP 패킷 수신;
GTP 패킷의 패킷 타입을 체크;
GTP 패킷의 패킷 타입이 사용자 데이터 트래픽인 경우, 내부 IP 패킷을 획득하기 위해 GTP 헤더를 스트립오프(strip off)하고, BGP 모듈(324)에 의해 제공되는 VRF RD에 대한 라우팅 테이블을 사용하여 내부 IP 패킷을 포워딩 (예를 들어, 표준 L3VPN SRv6 포워딩을 실행).
GTP 패킷이 GTP-U 메시지이면, BGP 컨트롤러에 의해 제공되는 변환 규칙(예를 들어, GTP4/6.D 규칙)에 기초하여 GTP로부터 SRv6으로의 변환(예를 들어, SRH' 필드에 내장된 GTP 정보를 갖는 B-타입 패킷으로의 변환)을 수행한다.
일부 실시예들에서, UPF 어드레스에 대한 VPNv4/v6 업데이트는 프리픽스 SID로서 바인딩(binding) SID 값을 갖는다. 따라서, VPNv4/v6 업데이트는 특정 SR 정책, 즉 BGP 모듈(324)로부터 수신된 SR 정책에 커플링된다. BGP 모듈(324)로부터 수신된 SR 정책은 또한 동일한 바인딩 SID를 포함할 수 있고, 또한 내부 IP 패킷에 대한 VRF RD를 포함할 수 있다. 이에 기초하여, 변환 모듈(208)이 목적지가 UPF 어드레스와 매칭되는 GTP 패킷을 수신할 때, 변환 모듈(208)은 GTP 패킷에 SR 정책을 적용할 수 있다.
일부 실시예들에서, SR 정책은 내부 IP 패킷의 목적지 어드레스가 IPv6 링크로컬 어드레스(linklocal address)인지 여부를 평가하도록 변환 모듈(208)에 명령할 수 있다. 그렇다면, 변환 모듈(208)은 전술한 바와 같이 SR 정책에 따라 GTP로부터 SRv6로의 동일한 변환을 수행하고, 이어서 변환 모듈(212)로 포워딩할 수 있다. 그러나, 링크로컬 어드레스는 전역적으로 라우팅 가능하지 않기 때문에, UPF(112)만이 그러한 패킷을 프로세싱할 수 있다. 따라서, 변환 모듈(208)은 변환된 SRv6 패킷을 UPF(112)로 발송할 필요가 있다. SR 정책은, 각각의 GTP 패킷에 대해, 내부 IP 패킷의 목적지 어드레스가 링크로컬인지 여부를 체크하고, 만약 그렇다면, GTP 패킷을 SRv6 패킷으로 변환하고 동시에 GTP 관련 정보를 SRv6 패킷의 SRH 필드에 내장하고 SRv6 패킷을 변환 모듈(212)에 포워딩하도록 변환 모듈에 명령할 수 있다. 그런 다음, 변환 모듈은 내장된 정보를 사용하여 SRv6 패킷을 다시 GTP 패킷으로 변환하고, GTP 패킷을 UPF(112)에 포워딩한다.
BGP 모듈(324)에 의해 제공된(710) VPNv4/v6 업데이트에 기초하여, 변환 모듈은 제1 VRF RD(gNodeB(106)가 연결되는 네트워크에 대한 외부 VRF)와 연관 결합된 라우팅 테이블에서 UPF 어드레스에 대한 라우팅 엔트리로 프로그래밍될 수 있다. 단계(712)에서 제공되는 SR 정책은 제2 VRF RD(UPF(112)가 연결되는 네트워크에 대한 내부 VRF)를 바인딩 SID와 연관 결합시킬 수 있다. 바인딩 SID는 UPF 어드레스 및 제2 VRF RD로 어드레싱된 내부 IP 패킷에 SR 정책의 적용을 호출할 수 있다. 바인딩 SID는 UPF 어드레스에 대한 VPNv4/v6 업데이트를 위한 서비스 SID로서 사용될 수 있다. 바인딩 SID는 또한 SR 정책에 반송될 수 있다. SR 정책은 내부 IP 패킷을 라우팅하기 위해 사용되는 내부 VRF RD를 반송할 수 있다. 따라서, 이러한 프로그래밍의 관점에서, gNodeB(106)로부터 수신된 GTP 패킷은 다음과 같이 변환 모듈(208)에 의해 프로세싱될 수 있다:
GTP 패킷이 수신되었던 유입(incoming) 인터페이스와 연관 결합된 VRF RD와 연관 결합된 라우팅 테이블의 목적지 어드레스(UPF 어드레스)에 기초하여 라우팅 룩업을 실행;
UPF 어드레스에 대한 VPNv4/v6 업데이트를 위한 서비스 SID로서 사용되는 바인딩 SID에 기초하여 SR 정책을 획득;
메시지 타입을 체크;
메시지 타입이 G-PDU이면, 변환 모듈(208)은 내부 IP 패킷을 획득하기 위해 GTP 헤더를 스트립(strip)하고, 내부 IP 패킷을 SRv6 패킷으로 캡슐화하고, SR 정책에 의해 지정된 바와 같이 제2 VRF RD(내부 IP 패킷의 목적지 IP 어드레스에 대한 내부 VRF)를 사용하여 표준 SRv6 L3VPN에 따라 SRv6 패킷을 라우팅.
메시지 타입이 GTP-U이면, 변환 모듈(208)은 UPF 어드레스, QFI, 및 TEID와 같은 GTP 관련 정보를 반송하는 특수 서비스 SID, 및 SR 정책에 따른 SRv6 로케이터를 생성하고; 특수 서비스 SID를 포함하는 SRv6 패킷에 GTP 패킷의 내부 IP 패킷을 캡슐화하여 SRv6 패킷을 변환 모듈(212)로 발송.
특수 서비스 SID는 [목적지의 SRv6 로케이터][UPF 어드레스 + QFI + TED]로 포맷될 수 있으며, 여기서 GTP4.D가 사용된다. GTP6.D가 사용되는 경우, 특수 서비스 SID는 [목적지의 SRv6 로케이터][QFI + TEID + sid0]의 형태일 수 있으며, 여기서 sid0은 UPF 어드레스이다.
도 7c는 외부 네트워크(214)로부터 수신되고 UE(102)에 어드레싱된 패킷들을 라우팅하도록 라우팅 모듈(216)을 구성하기 위한 BGP 모듈(324)의 기능들을 예시한다. 패킷이 외부 네트워크(214)로부터 라우팅 모듈(216)에 의해 수신되고 UE(102)에 어드레싱될 때, 라우팅 모듈은 UE(102)의 어드레스와 연관 결합된 루트를 사용할 수 있다. 이 루트는 도 7c에 도시된 접근법을 사용하여 BGP 모듈(324)에 의해 라우팅 모듈(216)에 제공될 수 있다.
CLI 컨트롤러(708)는 VRF RD와 5G 네트워크 인스턴스(코어), 예를 들어, 네트워크(210)에 대해 정의된 VRF RD 사이의 매핑을 제공할 수 있다(714). PFCP 프록시(322)는 gNodeB(106)를 포함하는 5G 네트워크 인스턴스(코어) 및 UE 어드레스를 제공할 수 있다.
이 정보에 기초하여, BGP 모듈(324)은 이러한 패킷이 수신된 5G 네트워크 인스턴스(코어)에 기초하여 UE 어드레스로 어드레싱된 패킷을 어느 VRF로 임포트할 지를 결정할 수 있다. UE 어드레스를 VRF RD(즉, UE 어드레스로의 루트)에 의해 식별된 VRF로 임포트한 후, BGP(324)는 라우팅 모듈(216)에 UE(102)로의 루트를 알리기 위해(716) VPNv4/v6 업데이트를 생성한다.
UE 루트에 대한 이 VPNv4/v6 업데이트를 발송할 때, BGP 모듈(324)은 UE 루트에 대한 서비스 SID를 할당할 수 있다. 따라서, VPNv4/v6 업데이트에 응답하여, 라우팅 모듈(216)은 UE 어드레스를 포함하는 내부 IP 패킷들을 외부 네트워크(214)로부터 수신할 것이다. UE 어드레스를 포함하는 내부 IP 패킷들을 수신한 것에 응답하여, 라우팅 모듈(216)은, 업데이트된 VPNv4/v6에 의해 명령된 바와 같이, 목적지로서 이 서비스 SID를 포함하는 SRv6 패킷에 내부 IP 패킷을 캡슐화할 것이다. 이러한 서비스 SID는 변환 모듈(208) 및 gNodeB(206)를 포함할 루트에 따라 UE에 패킷을 라우팅하도록 개재 컴포넌트(intervening component)들에 명령할 것이다.
변환 모듈(208)이 네트워크(210)로부터 SRv6 패킷을 수신할 때, 변환 모듈(208)은 GTP 패킷이 gNodeB(106)를 통해 UE로 포워딩될 필요가 있기 때문에 SRv6 패킷을 GTP 패킷으로 변환할 필요가 있을 수 있다. 서비스 SID는 gNodeB의 어드레스, TEID 및 QFI와 같은 GTP 관련 정보를 반송하기 위해 BGP 모듈(324)에 의해 인코딩될 수 있다.
Ipv6 어드레스는 128비트이다. 따라서, GTP4.E(gNodeB 어드레스는 IPv4임)의 경우, 모든 GTP 관련 정보는 다음과 같이 단일 IPv6 어드레스에 내장될 수 있다: SRv6 로케이터 + gNodeB IPv4 어드레스 + QFI + TEID. 최대 SRv6 로케이터 길이가 56 비트이고, gNodeB 어드레스가 32 비트의 IPv4 어드레스인 경우, 이는 QFI를 위해 8 비트를 남기고 TEID를 위해 32 비트를 남긴다. gNodeB(106)가 IPv6 어드레스를 갖는 GTP6.E의 경우, 단일의 IPv6 어드레스에 GTP 정보와 함께 gNodeB(106)의 어드레스를 내장하는 것이 불가능할 수 있다. 그 경우에, SRv6는 SRH에 다수의 세그먼트들(IPv6 어드레스들)을 반송할 수 있다. 따라서, SRH의 마지막 SID(SID[0])는 gNodeB(106)의 IPv6 어드레스일 수 있고, 끝에서 두번째(penultimate) SID(SID[1])는 SRv6 로케이터, QFI 및 TEID를 반송할 수 있다.
도 7d는 외부 네트워크(214)로부터 수신되고 UE(102)로 어드레싱된 패킷들을 라우팅하도록 변환 모듈(208)을 구성하기 위한 BGP 모듈(324)의 기능들을 예시한다. 이러한 패킷들은 네트워크(210)를 통해 라우팅 모듈(216)로부터 변환 모듈(208)에 의해 수신될 수 있다. BGP 모듈(324)은 이러한 패킷들을 SRv6로부터 GTP로 변환하도록 변환 모듈(208)을 추가로 구성할 수 있다.
BGP 모듈(324)은 CLI 컨트롤러(708)로부터 GTP4/6.E에 대한 SRv6 로케이터 및 UE 어드레스가 임포트되는 각각의 VRF에 대해 gNodeB에 연결된 외부 VRF와 같은 정보를 수신할 수 있다(718).
BGP 모듈(324)은 상술한 바와 같이 변환을 수행하는 GTP4/6.E 또는 GTP4.D 기능과 같은 변환 모듈(208)에 의해 적용될 기능을 식별하는 SRv6 로케이터를 제공할 수 있다. SRv6 로케이터 및 대응하는 변환 기능은 BGP 모듈(324)에 의해 변환 모듈들(208, 212)에 제공될 수 있다. 이러한 SRv6 로케이터는 전술한 바와 같이 서비스 SID에 포함될 수 있다. BGP 모듈(324)은 SR 정책을 생성하여 변환 모듈(208)에 송신한다(720). SR 정책은 다양한 명령을 포함한다.
SR 정책은 SRv6 로케이터 정보 (예를 들어, 로케이터 정보 포맷이 IPv6 프리픽스에 기초하는지 여부)를 표시할 수 있다. 따라서, SR 정책은 변환 모듈(208)이 도 7c와 관련하여 전술한 바와 같이 SRH 필드에 포함된 서비스 SID(또는 SID들)에 내장된 gNodeB 어드레스, QFI, TEID의 포지션(position)(예를 들어, 이러한 정보의 아이템들이 SID[0] 또는 SID[1]에 있는지 여부)를 이해할 수 있게 한다. SR 정책은 또한 gNodeB 어드레스를 찾고 내장된 GTP 정보를 사용하여 SRv6로부터 GTP로의 변환을 수행하기 위해 SRH 헤더의 마지막 세그먼트를 사용하도록 변환 모듈(208)에 명령하는 GTP4.E 또는 GTP6.E 기능과 같은 기능을 반송할 수 있다. BGP 모듈(324)에 의해 생성된 SR 정책은 SR 정책에 따라 SRv6 패킷을 GTP로 변환함으로써 GTP 패킷이 획득된 후에 GTP 패킷을 UE(102)로 라우팅하는 데 사용되는 UE 어드레스에 대한 외부 VRF를 추가로 제공할 수 있다.
도 8은 변환 모듈(208)의 예시적인 구성을 예시한다. 변환 모듈(212)은 유사한 구성을 가질 수 있다. 예시된 실시예에서, gNodeB(106)로부터 수신되고 UPF(112)에 송신되는 패킷들(예를 들어, GTP-U 메시지)은 제1 포워딩 정보 베이스(FIB : forwarding information base) 룩업 모듈(800), GTP4/6.D 프로세싱 모듈(802), SRv6 캡슐화 모듈(804) 및 제2 FIB 룩업 모듈(806)에 의해 프로세싱될 수 있다. gNodeB(106)로부터 수신되고 라우팅 모듈(216)로 송신되는 패킷들(예를 들어, 비-GTP-U 메시지)은 FIB 룩업 모듈(800), GTP 4.6.D 모듈(802), 제3 FIB 룩업 모듈(808), SRv6 캡슐화 모듈(810) 및 제4 FIB 룩업 모듈(812)에 의해 프로세싱될 수 있다.
제1 FIB 룩업 모듈(800)은 패킷이 수신된 인터페이스(IP 어드레스 및 VRF RD)를 평가할 수 있다. 해당 인터페이스가 바인딩 SID와 연관 결합되면, 바인딩 SID와 연관 결합된 SR 정책은 GTP4/6.D 모듈(802)에 의한 패킷의 프로세싱을 호출한다. 제1 FIB 룩업 모듈(808)의 프로그래밍, 바인딩 SID 및 SR 정책의 생성, 및 GTP4/6.d 모듈의 프로그래밍은 전술한 바와 같이 BGP 모듈(324)에 의해 수행될 수 있다.
GTP4/6.D 모듈(802)은 SR 정책에 의해 호출되는 기능으로 프로그래밍될 수 있다. 해당 기능은 GTP 패킷의 패킷 타입을 평가할 수 있다. 패킷이 GTP-U 메시지이면, 패킷은 SRv6 캡슐화 모듈(804)로 발송된다. SRv6 캡슐화 모듈(804)은 패킷을 GTP 패킷(A-타입)으로부터 내장된 GTP 정보(B-타입)를 갖는 SRv6 패킷으로 변환하도록 프로그래밍될 수 있다. 이러한 캡슐화가 어떻게 수행되는지에 대한 추가 세부사항들은 도 9a와 관련하여 이하에서 설명될 수 있다. SRv6 인캡슐레이션 모듈(804)에 의해 생성된 SRv6 패킷들은 제2 FIB 룩업 모듈(806)에 의해 프로세싱될 수 있다. 제2 FIB 룩업 모듈(806)은 SRv6 패킷의 목적지 어드레스(즉, UPF(112) 앞의 GTP/SRv6(212)의 어드레스)를 평가하고, SRv6 패킷을 어디로 라우팅할 지를 결정할 수 있다. 이것은 SRv6 패킷을 UPF(112)로 라우팅하기 위해 다음 홉, VPN 터널 정보, VRF RD 또는 사용할 다른 정보를 결정하기 위해 VPNv4/v6 업데이트로부터의 정보를 사용하는 것을 포함할 수 있다. 전술한 바와 같이, VPNv4/v6 업데이트는 BGP 모듈(324)로부터 수신될 수 있다. 그런 다음, 변환 모듈(208)은 제2 FIB 룩업 모듈(806)로부터 획득된 라우팅 정보에 따라 SRv6 패킷을 송신한다.
GTP 4/6.D 모듈이 GTP 패킷이 GTP-U 메시지가 아니라고 결정하는 경우, GTP 패킷은 GTP/UDP/외부 IP 헤더를 스트리핑한 후에 제 3 FIB 룩업 모듈 (808)에 의해 프로세싱될 수 있다. 제3 FIB 룩업 모듈(808)은 GTP 패킷의 내부 IP 패킷을 SRv6 패킷으로 캡슐화하기 위한 정보를 룩업(lookup) 할 수 있다. 이것은, 예를 들어, 내부 IP 패킷의 목적지 어드레스와 연관 결합된 VPNv4/v6 루트를 룩업하는 것 및 SRv6 패킷에 내부 IP 패킷을 캡슐화하기 위해 이러한 SID들을 결정하는 것을 포함할 수 있다. SID들은 네트워크(210)를 통해 내부 IP 패킷을 캡슐화하는 SRv6 패킷의 라우팅을 정의할 수 있고, BGP 모듈(324)로부터 수신된 라우팅 정보에 따라 생성될 수 있다. 내부 IP 패킷 및 SID는 내부 IP 패킷 및 SID를 SRv6 패킷으로 캡슐화하는 SRv6 캡슐화 모듈(810)에 제공될 수 있다. SRv6 패킷은 제4 FIB 룩업 모듈(812)에 의해 프로세싱될 수 있다.
제4 FIB 룩업 모듈(812)은 SRv6 패킷의 목적지 어드레스(즉, 라우팅 모듈(216)의 어드레스)를 평가하고, SRv6 패킷을 어디로 라우팅할 지를 결정할 수 있다. 이것은 외부 어드레스에 도달하기 위해 라우팅 모듈(216)에 SRv6 패킷을 라우팅하기 위해 다음 홉, VPN 터널 정보, VRF RD 또는 사용할 다른 정보를 결정하기 위해 VPNv4/v6 업데이트로부터의 정보를 사용하는 것을 포함할 수 있다. 전술한 바와 같이, VPNv4/v6 업데이트는 BGP 모듈(324)로부터 수신될 수 있다. 그런 다음, 변환 모듈(208)은 제4 FIB 룩업 모듈(812)로부터 획득된 라우팅 정보에 따라 SRv6 패킷을 송신한다.
도 9a는 변환 모듈(208)에 의해 수신된 GTP(A-타입) 패킷을 내장된 GTP 정보(B-타입) 패킷을 갖는 SRv6 패킷으로 변환하는 프로세스를 예시한다. 전술한 바와 같이, A-타입 패킷은 내부 IP 패킷(예를 들어, 외부 네트워크에서의 목적지 어드레스), GTP 헤더, 및 외부 IP 헤더(예를 들어, UPF(112)의 목적지 어드레스)를 포함할 수 있다. GTP4.D의 경우, B-타입 패킷의 SRH' 필드에 포함된 SID들은 도시된 바와 같을 수 있다. GTP4.D의 경우에, 단일 SID(SID[0] 또는 SRH' 필드 내의 제1 SID)는 전술한 GTP4.D 로케이터, 외부 IP 어드레스(UPF(112)의 어드레스), 및 일부 GTP-U 메시지(예를 들어, GTP-U 에코 요청/응답 메시지)에 사용되는 QFI, TEID, 시퀀스 ID와 같은 GTP 정보를 포함한다. 일부 실시예들에서, 추가적인 패딩 비트들이 포함될 수 있다. QFI 정보는 QFI, R 및 U 값을 포함할 수 있다. QFI는 3GPP에서 정의된 QoS(quality of service) 플로우 식별자이다. R은 3GPP에 정의된 RQI(reflective QoS Indication)이다. U 비트는 GTP-U 패킷에 대한 PDU(protocol data unit) 타입을 특정하는데 사용된다. GTP6.D의 경우, 2개의 SID(SID[0], SID[1])가 사용될 수 있다. SID[0]는 외부 IP 어드레스(UPF(112)의 어드레스)를 포함할 수 있고, SID[1]은 QFI, TEID, 시퀀스 ID와 같은 내장된 GTP 정보를 포함할 수 있다.
도 9b는 라우팅 모듈(216)로부터 수신된 내장된 GTP 정보를 갖는 SRv6(B-타입 패킷들)을 프로세싱할 때의 변환 모듈(208)의 기능을 예시한다. FIB 룩업 모듈(812)은 패킷을 수신하고, 패킷이 수신된 인터페이스(소스 어드레스 및 VRF RD)와 연관 결합된 바인딩 SID를 결정한다. 바인딩 SID와 연관 결합된 SR 정책은 GTP4/6.E 모듈(814)을 호출할 수 있다. GTP4/6.E 모듈(814)은 내장된 GTP 정보를 사용하여 SRv6 패킷을 GTP(A-타입) 패킷으로 변환할 수 있다. GTP4/6.E 모듈(814)의 프로그래밍 뿐만 아니라 바인딩 SID 및 SR 정책은 전술한 바와 같이 BGP 모듈(324)로부터 수신될 수 있다.
GTP 패킷은 목적지 어드레스(예를 들어, gNodeB(106) 어드레스 또는 UPF 어드레스)와 연관 결합된 VRF RD를 결정하고, 해당 VRF RD에 대한 라우팅 테이블에 따라 GTP 패킷을 라우팅하는 FIB 룩업 모듈(800)에 의해 프로세싱될 수 있다. FIB 룩업 모듈(800)에 의해 수행되는 라우팅은 전술된 바와 같이 BGP 모듈(324)로부터 수신된 VPNv4/v6 업데이트에 따를 수 있다. 도 9b는 다운링크 (UE(102)로의 외부 네트워크(214) 또는 UE(100)로의 UPF(112))에 대한 패킷 흐름을 예시한다. 이러한 패킷 흐름에 대해, FIB 룩업 모듈(812)은 GTP4/6.E 모듈(814)을 가리키는 라우팅 엔트리를 결정하도록 프로그래밍될 수 있다. 그런 다음, GTP4/6.E 모듈(814)은 각각의 SRv6 패킷을 GTP 패킷으로 변환할 수 있다. 이 GTP 패킷은 그런 다음 FIB 룩업 모듈(800)로 라우팅될 수 있다.
도 9c는 B-타입 패킷으로부터 A-타입 패킷으로의 변환을 예시한다. SRH' 필드에 내장된 정보가 획득된다. 전술한 바와 같이, GTP4.E의 경우에, 이 정보는 SID[0]에 포함될 것이다. GTP6.E의 경우에, 이 정보는 SID[1]에 포함될 것이다. SRH' 필드의 GTP4.E 로케이터는 외부 IPv4 목적지 어드레스 및 내장된 GTP 정보(QFI, TEID/SequenceID)를 이용하여 변환을 수행하는 GTP4.E 기능과 연관 결합된다. 변환은 외부 IPv4 목적지 어드레스(예를 들어, gNodeB의 어드레스)를 A-타입 패킷의 외부 IP 목적지 어드레스로서 사용하는 것 및 A-타입 패킷의 GTP 필드에 내장된 GTP 정보를 포함하는 것을 포함할 수 있다. 내부 IP 패킷은 UE(102)의 어드레스로 포워딩될 수 있다.
도 8, 9a, 9b, 및 9c는 변환 모듈(208)과 관련하여 설명된다. 변환 모듈(212)은 마찬가지로 A-타입과 B-타입 패킷들 간의 변환을 수행하며 유사한 방식으로 기능할 수 있다. 특히, UPF(112)로부터 gNodeB(106)로 이동하는 패킷들은 gNodeB(106)로부터 UPF(112)로의 패킷들과 동일한 방식으로 변환될 수 있다. SRv6(216)로부터 UE(102)로 이동하는 패킷들은 UPF(112)로부터 gNodeB(208)로의 패킷들과 동일한 방식으로 프로세싱될 수 있다. 달리 말하면, SRv6에서 GTP로의 변환은 패킷을 발송하는 엔티티(다른 변환 모듈(208, 212) 또는 라우팅 모듈(216))에 관계없이 네트워크(210)로부터 패킷을 수신할 때 변환 모듈(208, 212)에 의해 수행될 수 있다.
도 10a를 참조하면, 본 명세서에 설명된 접근법들은 SRv6 패킷들에 내장될 수 있는 GTP 터널을 기술하는 정보를 획득하기 위해 PFCP 프록시(322)를 사용할 수 있다. SMF(314) 및 UPF(112)와 인터페이스하기 위해, PFCP 프록시(322)는 N4 인터페이스를 구현할 수 있다. N4 인터페이스는 5G 네트워크와 UPF(112)와 같은 사용자 평면 사이의 인터페이스일 수 있다. 이전의 접근법들에서, N4 인터페이스가 각각의 UE(102)에 대해 생성된다. 따라서, PFCP 프록시(322)가 SMF(314) 및 UPF(112) 둘 모두에 대한 인터페이스를 구현하기 때문에, 이전 접근법들에 따라 사용될 때 PFCP 프록시(322)는 2X개의 N4 인터페이스들을 생성할 수 있으며, 여기서 X는 UE(102)의 수이다. 주어진 UPF(112)는 수천 개의 UE(102)를 관리할 수 있어서 PFCP 프록시(322) 상에 배치된 로드는 매우 클 수 있다.
일부 실시예들에서, SMF(314) 측에서, PFCP 세션 로드 밸런서(session load balancer)(1000)는 트래픽을 복수의 N4 컨트롤러들(1002)에 분배한다. UPF(112) 측에서, 다른 PFCP 세션 로드 밸런서(1004)는 트래픽을 복수의 N4 컨트롤러(1002)에 분배한다. N4 컨트롤러들(1002) 각각은 PFCP 프록시(322)를 구현할 수 있다. 특히, 각각의 N4 컨트롤러(1002)는 자신에게 라우팅되는 트래픽에 대해 PFCP(322)에 대한 본 명세서에서 주어진 기능들을 수행할 수 있다. 로드 밸런서들(1000, 1004)로부터 N4 컨트롤러들(1002)로 라우팅되는 트래픽은 도 1 내지 5와 관련하여 전술한 PFCP 요청들 및 응답들을 포함할 수 있다. 따라서, N4 컨트롤러들(1002)은 전술한 세션 정보를 스누핑할 수 있다. 이러한 스누핑된 정보는 GTP 터널에 대한 gNodeB(106)의 어드레스, UPF(112)의 어드레스, UE(102)의 어드레스, TEID, QFI, 액세스 네트워크 인스턴스 및 코어 네트워크 인스턴스의 일부 또는 전부를 포함할 수 있다.
로드 밸런서들(1000, 10004) 및 N4 컨트롤러들(1002)은 동일한 컴퓨팅 디바이스 상에서, 동일한 컴퓨팅 디바이스 상의 상이한 가상 머신들 또는 컨테이너들에서, 또는 네트워크에 의해 연결된 별개의 컴퓨팅 디바이스들 상에서 실행되고 있을 수 있다.
도 10b는 로드 밸런서들(1000, 1004) 및 N4 컨트롤러들(1002)을 사용하여 실행될 수 있는 방법(1006)을 예시한다. 방법(1008)은 인그레스 로드 밸런서가 GTP 패킷과 같은 입력 패킷을 수신하는 단계(1008)를 포함할 수 있다. UPF(112)로 어드레싱되고 SMF(314)로부터 수신된 입력 패킷들에 대해, 인그레스 로드 밸런서는 로드 밸런서(1000)일 수 있다. SMF(314)로 어드레싱되고 UPF(112)로부터 수신된 입력 패킷들에 대해, 인그레스 로드 밸런서는 로드 밸런서(1004)일 수 있다.
그런 다음, 인그레스 로드 밸런서는 입력 패킷으로부터 튜플(tuple)을 추출할 수 있다(1010). 튜플은 복수의 N4 컨트롤러들 사이에서 패킷들을 분배하기 위해 사용되는 값들의 세트일 수 있다. 튜플은 입력 패킷으로부터의 정보의 다음의 항목들 중 일부 또는 전부를 포함할 수 있다: IP 소스 어드레스, IP 목적지 어드레스, 세션 식별자(SEID : session identifier), 및 FQ-SEID(fully qualified session identifier). IP 소스 어드레스 및 IP 목적지 어드레스는, 개별적으로, 입력 패킷이 수신되었거나 입력 패킷이 어드레싱되는 SMF(314) 및 UPF(112) 중 어느 하나의 어드레스일 수 있다. 일부 구현예들에서, 다수의 SMF(314) 및 UPF(112)는 인그레스 로드 밸런서에 패킷들을 송신할 수 있다. 이러한 구현예들에서, 로드 밸런싱은 IP 소스 어드레스 및 IP 목적지 어드레스 만으로 수행될 수 있다. 단일 SMF(314) 및 단일 UPF(112)가 존재하는 경우, SEID 및/또는 F-SEID가 사용될 수 있고 소스 및 IP 소스 및 IP 목적지 어드레스들은 무시될 수 있다.
그런 다음, 인그레스 로드 밸런서는 튜플에 대응하는 N4 컨트롤러들(1002) 중 하나를 선택할 수 있다(1012). 예를 들어, 튜플은 해시 함수에 입력될 수 있고, 해시 함수의 출력은 N4 컨트롤러(1002) 중 하나의 식별자이다. 그런 다음 입력 패킷은 선택된 N4 컨트롤러(1002)에 송신될 수 있다(1014). 그런 다음 선택된 N4 컨트롤러(1002)는 입력 패킷을 프로세싱할 수 있다(1016). 이것은 세션 정보를 스누핑하고, 도 5에 대해 전술된 것들과 같은 PFCP 프록시의 다른 기능들 및 PFCP 프록시(322)에 대해 본 명세서에 설명된 다른 기능들 중 임의의 것을 수행하는 것을 포함할 수 있다. N4 컨트롤러(1002)는 입력 패킷에 응답하여 출력 패킷을 생성할 수 있다. 그런 다음, 출력 패킷은 N4 컨트롤러(1002)에 의해 이그레스 로드 밸런서로 송신(1018)될 수 있다. UPF(112)로 어드레싱되고 SMF(314)로부터 수신된 입력 패킷들에 대해, 이그레스 로드 밸런서는 로드 밸런서(1004)일 수 있다. SMF(314)로 어드레싱되고 UPF(112)로부터 수신된 패킷들에 대해, 이그레스 로드 밸런서는 로드 밸런서(1000)일 수 있다. 그런 다음, 이그레스 로드 밸런서는 출력 패킷을 입력 패킷의 목적지 어드레스와 동일할 수 있는 출력 패킷의 목적지 어드레스로 포워딩할 수 있다.
도 11을 참조하면, 전술한 접근법은 다수의 gNodeB(106a-106c) 및 다수의 변환 모듈(208a-28c)이 존재하는 예시된 네트워크 환경에서 실행될 수 있다. 각각의 변환 모듈(208a-208c)은 셀룰러 데이터 네트워크의 영역(1104a-1104c)을 네트워크(210)에 연결할 수 있다. 각각의 gNodeB(106a-106c)는 영역들(1104a-1104c) 중 하나에 의해 변환 모듈들(208a-208c) 중 하나에 연결할 수 있다.
전술된 접근법을 사용하여, BGP 모듈(324)은 gNodeB(106a)에 연결된 모든 UE(102)로부터 수신되고 그에 송신되는 패킷들의 변환을 가능하게 하기 위해 하나의 변환 모듈(208a)에 제1 SID(SID1)를 송신한다(1100). BGP 모듈(324)은 gNodeB(106b)에 연결된 모든 UE(102)로부터 수신되고 그에 송신되는 패킷들의 변환을 가능하게 하기 위해 제2 SID(SID2)를 변환 모듈(208b)에 송신한다(1102). BGP 모듈(324)은 gNodeB(106c)에 연결된 모든 UE(102)로부터 수신되고 그에 송신되는 패킷들의 변환을 가능하게 하기 위해 제3 SID(SID3)를 변환 모듈(208c)에 송신한다(1104). 각각의 SID는 전술한 바와 같이 패킷의 변환을 정의하는 대응하는 SR 정책을 가질 수 있다.
BGP 모듈(324)은 또한 각각의 gNodeB(106a, 106b, 106c)에 개별적으로 대응하는 VPNv4/v6 업데이트를 송신할 수 있다(1106, 1108, 1110). 주어진 gNodeB(106a-106c)에 대한 VPNv4/v6 업데이트는 해당 gNodeB(106a-106c)에 할당된 SID를 포함할 수 있다. VPNv4/v6 업데이트는 네트워크(210)에 연결된 하나 이상의 라우팅 모듈(216)로 송신될 수 있다. 라우팅 모듈(216)은 제공자 에지 라우터(PE : provider edge router)일 수 있다.
일부 구현예에서, 각각의 변환 모듈(208a-208c)은 BGP 모듈(324)에 의해 그 자신의 VRF를 할당받는다. VRF는 변환 모듈(208a-208c)에 의해 변환되는 각각의 GTP 터널을 구현하는 데 사용될 수 있다. 각각의 VRF의 루트 구별자(RD)는 라우팅 모듈(216)이 패킷들을 어디로 발송할 지를 결정할 수 있게 한다. UE(102)가 gNodeB(106)에 연결하고 PFCP 프록시(322)가 UE(102)에 대한 UE 어드레스를 획득할 때, BGP 모듈(324)은 UE 어드레스가 임포트되어야 하는 VRF(즉, VRF 테이블)를 결정할 수 있다. 일부 실시예들에서, PFCP 프록시(322)는 액세스 네트워크 인스턴스를 획득하고, VRF는 해당 액세스 네트워크 인스턴스에 대응하는 것으로서 선택된다.
일부 구현예에서, BGP 모듈(324)은 각각의 변환 모듈(208a-208c)에 대해 별개의 VRF 테이블을 갖는다. 그러나, 일부 구현예들에서, 라우팅 모듈(216)은 단일 VRF를 갖는데, 이는 라우팅 모듈(216)이 임의의 변환 모듈(208a-208c)에 도달할 수 있어야 하기 때문이다. 따라서, BGP 모듈(324)이 각각의 UE(102)에 대한 루트들을 모든 VRF들(VRF 각각은 변환 모듈들(208a, 208b 또는 208c) 중 하나와 연관 결합됨)로 임포트하면, BGP 모듈(324)은 각각의 UE(102)에 대해 라우팅 모듈 SRv6(216)에 3개의 VPN v4/v6 업데이트들을 제공할 것인데, 즉 변환 모듈(208a)을 위한 하나, 변환 모듈(208b)을 위한 다른 하나, 및 변환 모듈(208c)을 위한 또 다른 하나를 제공할 것이다. 전형적인 구현예에서, 더 많은 변환 모듈(208)이 있을 수 있다. 그런 다음, 라우팅 모듈(216)은 모든 VPN v4/v6 업데이트들로부터의 루트들을 단일 VRF로 임포트(import)할 것이다(각각의 루트는 동일한 프리픽스(UE 어드레스)를 갖지만, 상이한 변환 모듈들(208a, 208b, 208c)에 대응하는 상이한 다음 홉 및 SID를 가짐).
변환 모듈(216)이 외부 네트워크(214)로부터 패킷을 수신할 때, 라우팅 모듈(216)은 패킷에 대한 하나의 루트를 선택할 필요가 있다. 그러나, 라우팅 모듈(216)은 어느 gNodeB(106)가 패킷 내의 UE 어드레스에 의해 참조된 UE(102)에 연결되는지를 알지 못할 수 있다. 따라서, 라우팅 모듈(216)은 패킷을 정확하게 포워딩할 수 없을 수 있다. 또한, 라우팅 모듈(216)이 각각의 UE 어드레스에 대한 각각의 변환 모듈(208a, 208b, 208c)에 대한 업데이트들을 저장하는 것으로부터 과도한 메모리 사용이 존재한다.
일부 실시예들에서, 이러한 문제들은 어느 gNodeB(106)가 주어진 UE(102)에 연결되는지를 결정하는 PFCP 프록시(322) 및/또는 BGP(324)에 의해 해결된다. 따라서, BGP(324)는 UE(102)가 연결되는 gNodeB(106)에 대응하는, 즉, 어느 라우팅 모듈(208a, 208b, 208c)이 해당 gNodeB(106)에 연결되는지의 VRF에 대한 단일 VPN v4/v6 업데이트를 생성할 수 있다. 이는 라우팅 모듈(216)이 단일 VPN v4/v6 업데이트로부터 각각의 UE 어드레스에 대해 하나의 루트만을 수신하고 저장하기 때문에 위에서 식별된 문제를 해결한다.
후술되는 바와 같이, BGP 모듈(324)은 전술한 바와 같이 PFCP 정보(gNB 어드레스, UE 어드레스)를 수신하고, 각각의 PE(1202a, 1202b, 1202c)로부터 gNodeB 어드레스에 대한 VPN v4/v6 업데이트를 수신할 수 있다. 이에 기초하여, BGP 모듈(324)은 주어진 UE(102)가 어느 gNodeB(106)에 연결되는지를 알 수 있다. BGP 모듈은 VPN v4/v6 업데이트로부터 각각의 gNodeB 어드레스에 대한 루트 타겟(RT : route target) 값을 결정할 수 있다. RT 값에 기초하여, BGP 모듈(324)은 어느 VRF로 UE 루트가 임포트되어야 하는지를 결정할 수 있다.
도 12a는 네트워크 환경(1200)을 도시한다. 예시된 네트워크 환경(1200)은 네트워크 환경(100)에 도시된 엘리먼트들 외에 엘리먼트들을 도시하고, 네트워크 환경(100)에 도시된 일부 엘리먼트들을 생략한다. 실제로, 네트워크 환경은 네트워크 환경들(100, 1200)에 도시된 엘리먼트들 모두를 포함할 수 있다. 예시된 네트워크 환경(1200)은 네트워크(210)를 횡단하기 위한 라우팅 정보를 더 효율적으로 분배하기 위해 사용될 수 있다.
UE(102)는 gNodeB(106a-106c) 중 임의의 것에 연결할 수 있다. 각각의 gNodeB(106a-106c)는 제공자 에지 라우터(PE)(1202a-1202c)에 연결할 수 있다. 다수의 gNodeB(106a-106c)는 또한 단일 PE(1202a-1202c)에 연결할 수 있다. 각각의 PE(1202a-1202c)는 대응하는 영역(1104a-1104c)에 연결될 수 있다. 각각의 영역(1104a-1104c)은 네트워크의 일부일 수 있다. 각각의 영역(1104a-1104c)은 각각의 영역(1104a-1104c)을 통해 송신되는 패킷들이 전술된 바와 같은 GTP 패킷들이도록 GTP 네트워크와 같은 패킷 라디오 네트워크일 수 있다. 각각의 PE(1202a-1202c)는 예시된 실시예에서 RT 1:1, RT 2:2 및 RT X:X와 같은 연관 결합된 고유 루트 타겟(RT)을 가질 수 있다. 루트 타겟은 각각의 PE(1202a-1202c)를 식별하고, 주어진 VRF로 어느 루트들을 임포트할 지를 결정하는 데 사용된다. 특히, VPN 루트는 하나 이상의 루트 타겟으로 라벨링될 수 있어서 하나 이상의 루트 타겟으로 라벨링된 라우터들 또는 다른 네트워크 컴포넌트들만이 해당 VPN 루트를 그의 VRF로 임포트할 것이다.
각각의 영역(1104a-1104c)은 변환 모듈(208a-208c)에 연결될 수 있다. 각각의 변환 모듈(208a-208c)은 변환 모듈(208)로서 기능할 수 있고, gNodeB(106)로부터 트래픽을 수신하고, GTP 패킷들을 SRv6 패킷들로 변환하고, SRv6 네트워크(210)를 통해 패킷들을 송신할 수 있다. 각각의 변환 모듈(208a-208c)은, 전술된 바와 같이, 또한 SRv6 네트워크(210)로부터 패킷들을 수신하고, 내장된 정보 및/또는 SR 정책을 사용하여 패킷들을 GTP 패킷들로 변환하고, 변환된 패킷들을 영역(1104)을 통해 gNodeB에 포워딩할 수 있다.
동작 시에, gNodeB(106a)에 연결된 각각의 UE(102)에 대해, 예를 들어, (PE(1202a-1202c) 중 임의의 것을 나타내는 것으로서 사용되는) PE(1202a)는 VPNv4/v6 업데이트를 송신한다(1204). VPNv4/v6 업데이트는 gNodeB(106a)의 어드레스(예를 들어, 네트워크 계층 도달성 정보(NLRI : network layer reachability information))와 같은 정보를 포함할 수 있다. VPNv4/v6 업데이트는 PE(1202a)의 RT를 더 포함할 수 있다. 일부 실시예에서, VPNv4/v6 업데이트는 PE(1202a)가 연결되는 N4 액세스 네트워크 인스턴스를 나열할 수 있다. VPNv4/v6 업데이트는 루트 리플렉터(RR : route reflector)를 통해 송신될 수 있다. 루트 리플렉터(1206)는 PE(1202a)와 동일한 영역(1104a)에 연결된 변환 모듈(208a)에 VPNv4/v6 업데이트를 포워딩할 수 있다(1208). 루트 리플렉터(1206)는 또한 VPNv4/v6 업데이트를 PFCP 프록시(322)로 포워딩할 수 있다(1210).
일부 실시예들에서, 루트 리플렉터(1206)는 VPNv4/v6 업데이트를 UPF(112)에 포워딩한다(1210). PFCP 프록시(322)는 UPF(112)로/로부터의 패킷들에 대한 세션 정보를 스누핑할 때 VPNv4/v6 업데이트를 인터셉트한다. PFCP 프록시(322)는 각각의 VPNv4/v6 업데이트를 보유할 수 있다. 이는 심지어 VPNv4/v6 업데이트와 함께 수신된 PE(1202a)의 RT에 대응하는 VRF의 VRF가 구성되지 않은 (또는 PFCP 프록시(322)가 구성을 통지받지 않은) 경우일 수 있다.
도 12b는 네트워크(1200) 내의 엔티티들과 사용되는 다양한 라벨들 및 어드레스들 사이의 예시적인 관계를 예시한다. BGP(324)은 VPN 테이블(1220) 및 VRF 테이블(1222)을 유지할 수 있다. VPN 테이블(1220)은 VPNv4/v6 업데이트로서 수신된 데이터를 저장한다. VPN 테이블(1222)은, 예를 들어, VPNv4/v6 업데이트에서 식별된 VPN에 대한 루트 구별자(1224)의 계층을 포함할 수 있다. 하나 이상의 루트 구별자(1224)는 그와 연관 결합된 라우팅 정보 베이스(RIB : routing information base)(1226)를 가질 수 있다. RIB(1226)는, 예를 들어, VPNv4/v6 업데이트에서 수신되는 gNodeB 어드레스(1228) 및 루트 구별자(1226)로 인해, 루트 구별자(1226)에 대해, 해당 루트 구별자(1226)와 연관 결합된 gNodeB 어드레스들을 나열할 수 있다. 각각의 gNodeB 어드레스(1228)에 대한 VPN 테이블(1220) 내의 엔트리는 NLRI 루트 및/또는 어드레스, 다음 홉 정보, 우선순위 정보(예를 들어, MED 정보) 등과 같은 하나 이상의 경로 속성을 포함할 수 있다. 각각의 gNodeB 어드레스(1228)에 대한 경로 속성들은 하나 이상의 루트 타겟들(1230)을 더 포함할 수 있다. 예를 들어, gNodeB 어드레스(1228)를 포함하는 VPNv4v6 업데이트는 VPNv4/v6 업데이트를 발송한 PE의 루트 타겟(1230)을 더 포함할 수 있다. 따라서, RT(1230)는 해당 gNodeB 어드레스(1228)와 연관 결합하여 RIB(1226)에 저장될 수 있다. 일부 실시예에서, VPNv4/v6 업데이트와 함께 발송된 루트 타겟은 VPNv4/v6 업데이트를 발송한 PE(1202a-1202c)를 포함하는 확장된 루트 타겟 커뮤니티를 기술하는 정보를 포함할 수 있다. 따라서, VPN 테이블(1220)의 각각의 RT(1230)는 확장된 루트 타겟 커뮤니티를 기술하는 정보를 포함할 수 있다.
VRF 테이블(1222)은 PE들(1202a-1202c)로부터 수신된 VPNv4/v6 업데이트들에서 식별된 VRF들을 기술하는 엔트리들(1232)을 포함할 수 있다. 예를 들어, 위에서 언급된 바와 같이, VPNv4/v6 업데이트는 PE(1202a-1202c) 중 하나의 gNodeB 어드레스 및 RT를 포함할 수 있다. 일부 실시예에서, VPNv4/v6은 PE(1202a-1202c)가 연결되는 N4 액세스 네트워크 인스턴스를 포함할 수 있다. 따라서, 각각의 엔트리(1232)는 각각의 VRF에 대해, gNodeB 어드레스, 및 RT를 나열할 수 있다. 일부 실시예에서, 각각의 VRF는 N4 액세스 네트워크 인스턴스에 대응하고, 엔트리(1232)는 이 N4 액세스 네트워크 인스턴스를 식별할 수 있다. 주어진 N4 액세스 네트워크 인스턴스에 대한 다수의 VRF들이 존재할 수 있다. 예를 들어, 각각의 VRF 테이블은 주어진 N4 액세스 네트워크 인스턴스에 대응할 수 있다.
도 13은 PFCP 프록시(322) 및 이와 연관 결합된 BGP 모듈(324)에 의해 수행될 수 있는 방법(1300)을 예시한다. 방법(1300)은 PFCP 세션 정보로부터 gNodeB 어드레스 및 연관 결합된 UE 어드레스를 획득하는 단계(1302)를 포함할 수 있다. 전술한 바와 같이, PFCP 세션은 N4 액세스 네트워크 인스턴스를 추가로 식별할 수 있다. 그런 다음, 방법(1300)은 VPN 테이블(1220)에서 gNodeB 어드레스를 룩업하는 단계(1304) 및 VPN 테이블(1220)에서 gNodeB 어드레스에 매핑된 VPN의 경로 구별자(1224)를 획득하는 단계(1306)를 포함할 수 있다. 방법(1300)은 VPN 테이블(1220)에서 gNodeB 어드레스에 매핑된 루트 타겟(1230)을 획득하는 단계(1308)를 더 포함할 수 있다. 방법(1300)은 PFCP 세션 정보에서 식별된 N4 액세스 네트워크 인스턴스에 대응하는 VRF 테이블을 획득하는 단계(1310)를 포함할 수 있다. 방법(1300)은 단계(1308)로부터 루트 타겟(1230)에 매칭된 VRF를 식별하는 단계(1312)를 포함할 수 있다. 그런 다음, 방법(1300)은 단계(1312)에서 식별된 VRF로 UE 어드레스를 임포트하는 단계(1314)를 포함할 수 있다. UE 어드레스를 VRF로 임포트하는 단계(1314)는 BGP 모듈(324)이 VRF에 대한 VPN v4/v6 업데이트를 라우팅 모듈(216)로 발송하여 UE 어드레스로의 루트를 표시하는 것에 수반될 수 있다.
이러한 방식으로, UE 어드레스는 gNodeB(106)가 연결되는 N4 액세스 네트워크 인스턴스의 각각의 VRF로 불필요하게 임포트되지 않는다. 이는 라우팅 모듈들(216) 상의 VRF 테이블들의 크기 및 변환 모듈들(208a-208c)에 발송될 필요가 있는 대응하는 SR 정책들 및 SID들의 수를 감소시킨다.
일부 실시예들에서, 일단 UE 어드레스에 대한 VRF가 획득되면, gNodeB 어드레스에 대응하는 gNodeB(106)가 연결되는 변환 모듈(208a-208c)에 대한 SR 정책 및 대응하는 바인딩 SID를 생성하는 것과 같은 다른 동작들이 수행될 수 있다는 것에 유의한다. SR 정책 및 바인딩 SID는 전술한 접근법에 따라 생성될 수 있다.
도 14는 본 명세서에 개시된 시스템 및 방법을 구현하는데 사용될 수 있는 예시적인 컴퓨팅 디바이스(1400)를 예시하는 블록도이다. 컴퓨팅 디바이스(1400)는 서버, 클라이언트, 또는 임의의 다른 컴퓨팅 엔티티로서 기능할 수 있다. 컴퓨팅 디바이스는 본 명세서에서 논의된 바와 같은 다양한 기능들을 수행할 수 있고, 본 명세서에 설명된 애플리케이션 프로그램들과 같은 하나 이상의 애플리케이션 프로그램들을 실행할 수 있다. 컴퓨팅 디바이스(1400)는 데스크탑 컴퓨터, 노트북 컴퓨터, 서버 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터 등과 같은 매우 다양한 컴퓨팅 디바이스들 중 임의의 것일 수 있다.
컴퓨팅 디바이스(1400)는 하나 이상의 프로세서(들)(1402), 하나 이상의 메모리 디바이스(들)(1404), 하나 이상의 인터페이스(들)(1406), 하나 이상의 대용량 저장 디바이스(들)(1408), 하나 이상의 입력/출력(I/O) 디바이스(들)(1410), 및 디스플레이 디바이스(1430)를 포함하며, 이들 모두는 버스(1412)에 커플링된다. 프로세서(들)(1402)는 메모리 디바이스(들)(1404) 및/또는 대용량 저장 디바이스(들)(1408)에 저장된 명령어들을 실행하는 하나 이상의 프로세서 또는 컨트롤러를 포함한다. 프로세서(들)(1402)는 또한 캐시 메모리와 같은 다양한 타입의 컴퓨터 판독 가능 매체를 포함할 수 있다.
메모리 디바이스(들)(1404)는 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM)(1414)) 및/또는 비휘발성 메모리(예를 들어, 판독 전용 메모리(ROM)(1416))와 같은 다양한 컴퓨터 판독 가능 매체를 포함한다. 메모리 디바이스(들)(1404)는 또한 플래시 메모리와 같은 재기록 가능한 ROM을 포함할 수 있다.
대용량 저장 디바이스(들)(1408)는 자기 테이프, 자기 디스크, 광학 디스크, 솔리드-스테이트(solid-state) 메모리(예를 들어, 플래시 메모리) 등과 같은 다양한 컴퓨터 판독 가능 매체를 포함한다. 도 14에 도시된 바와 같이, 특정 대용량 저장 디바이스는 하드 디스크 드라이브(1424)이다. 다양한 드라이브들은 또한 다양한 컴퓨터 판독 가능 매체들로부터 판독 및/또는 다양한 컴퓨터 판독 가능 매체들에 기록하는 것을 가능하게 하기 위해 대용량 저장 디바이스(들)(1408)에 포함될 수 있다. 대용량 저장 디바이스(들)(1408)는 착탈식 매체(1426) 및/또는 비-착탈식 매체를 포함한다.
I/O 디바이스(들)(1410)는 데이터 및/또는 다른 정보가 컴퓨팅 디바이스(1400)에 입력되거나 그로부터 검색될 수 있게 하는 다양한 디바이스들을 포함한다. 예시적인 I/O 디바이스(들)(1410)는 커서 제어 디바이스, 키보드, 키패드, 마이크로폰, 모니터 또는 다른 디스플레이 디바이스, 스피커, 프린터, 네트워크 인터페이스 카드, 모뎀, 렌즈, CCD 또는 다른 이미지 캡처 디바이스 등을 포함한다.
디스플레이 디바이스(1430)는 컴퓨팅 디바이스(1400)의 하나 이상의 사용자에게 정보를 디스플레이할 수 있는 임의의 유형의 디바이스를 포함한다. 디스플레이 디바이스(1430)의 예들은 모니터, 디스플레이 단말, 비디오 프로젝션 디바이스 등을 포함한다.
인터페이스(들)(1406)는 컴퓨팅 디바이스(1400)가 다른 시스템, 디바이스 또는 컴퓨팅 환경과 상호작용할 수 있게 하는 다양한 인터페이스를 포함한다. 예시적인 인터페이스(들)(1406)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 무선 네트워크 및 인터넷에 대한 인터페이스와 같은 임의의 수의 상이한 네트워크 인터페이스(1420)를 포함한다. 다른 인터페이스(들)는 사용자 인터페이스(1418) 및 주변 디바이스 인터페이스(1422)를 포함한다. 인터페이스(들)(1406)는 또한 하나 이상의 사용자 인터페이스 엘리먼트(1418)를 포함할 수 있다. 인터페이스(들)(1406)는 또한 프린터, 포인팅 디바이스(마우스, 트랙 패드(track pad) 등), 키보드 등을 위한 인터페이스와 같은 하나 이상의 주변 인터페이스를 포함할 수 있다.
버스(1412)는 프로세서(들)(1402), 메모리 디바이스(들)(1404), 인터페이스(들)(1406), 대용량 저장 디바이스(들)(1408) 및 I/O 디바이스(들)(1410)가 서로 통신할 수 있게 할 뿐만 아니라 버스(1412)에 커플링된 다른 디바이스들 또는 컴포넌트들과 통신할 수 있게 한다. 버스(1412)는 시스템 버스, PCI 버스, IEEE 1394 버스, USB 버스 등과 같은 여러 유형의 버스 구조 중 하나 이상을 나타낸다.
예시의 목적들을 위해, 프로그램들 및 다른 실행가능 프로그램 컴포넌트들이 본 명세서에서 개별 블록들로서 도시되지만, 이러한 프로그램들 및 컴포넌트들은 컴퓨팅 디바이스(1400)의 상이한 저장 컴포넌트들에 다양한 시간들에 상주할 수 있고, 프로세서(들)(1402)에 의해 실행된다는 것이 이해된다. 대안적으로, 본 명세서에 설명된 시스템들 및 절차들은 하드웨어, 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합으로 구현될 수 있다. 예를 들어, 하나 이상의 주문형 집적 회로(ASIC)는 본 명세서에 설명된 시스템들 및 절차들 중 하나 이상을 수행하도록 프로그래밍될 수 있다.

Claims (20)

  1. 방법에 있어서,
    제1 로드 밸런서(load balancer)에 의해 제1 엔티티로부터, 제2 엔티티를 참조하는 제1 요청을 수신하는 단계 - 상기 제1 로드 밸런서는 하나 이상의 프로세싱 디바이스들을 포함하는 컴퓨터 시스템 상에서 실행됨 -;
    상기 제1 로드 밸런서에 의해, 상기 컴퓨터 시스템 상에서 실행되는 복수의 컨트롤러들 중 선택된 컨트롤러를 선택하는 단계;
    상기 제1 로드 밸런서에 의해, 상기 제1 요청을 상기 선택된 컨트롤러로 송신하는 단계;
    상기 선택된 컨트롤러에 의해, 상기 요청에 대해 패킷 포워딩 제어(PFCP) 세션을 구현하는 단계;
    상기 선택된 컨트롤러에 의해 제2 로드 밸런서로, 상기 제1 요청에 대응하는 제2 요청을 송신하는 단계 - 상기 제2 로드 밸런서는 상기 컴퓨터 시스템 상에서 실행됨 -; 및
    상기 제2 로드 밸런서에 의해, 상기 제2 응답을 상기 제2 엔티티로 포워딩하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 컴퓨터 시스템은 네트워크에 의해 연결된 복수의 컴퓨팅 디바이스들을 포함하는, 방법.
  3. 제2항에 있어서, 상기 제1 로드 밸런서는 상기 복수의 컴퓨팅 디바이스들 중 제1 컴퓨팅 디바이스 상에서 실행되고, 상기 제2 로드 밸런서는 상기 복수의 컴퓨팅 디바이스들 중 제2 컴퓨팅 디바이스 상에서 실행되며, 상기 복수의 컨트롤러들은 상기 복수의 컴퓨팅 디바이스들 중 하나 이상의 제3 컴퓨팅 디바이스 상에서 실행되는, 방법.
  4. 제1항에 있어서,
    상기 제2 로드 밸런서에 의해 상기 제2 엔티티로부터, 상기 제2 요청에 대한 제1 응답을 수신하는 단계;
    상기 제2 로드 밸런서에 의해, 상기 제1 응답을 상기 선택된 컨트롤러에 포워딩하는 단계;
    상기 선택된 컨트롤러에 의해, PFCP에 따라 상기 제1 응답을 프로세싱하는 단계;
    상기 선택된 컨트롤러에 의해 상기 제1 로드 밸런서로, 상기 제1 응답에 대응하는 제2 응답을 송신하는 단계; 및
    상기 제1 로드 밸런서에 의해, 상기 제2 응답을 상기 제1 엔티티로 포워딩하는 단계를 더 포함하는, 방법.
  5. 제4항에 있어서, 상기 제1 요청 및 상기 제1 응답은 GTP(GPRS(general packet radio service) Tunneling Protocol) 패킷에 따른 패킷들인, 방법.
  6. 제5항에 있어서, 상기 제1 요청은 세션 개시 요청(session initiation request)인, 방법.
  7. 제6항에 있어서, 상기 제1 요청을 프로세싱하는 단계는 상기 제1 요청으로부터 세션 정보를 추출하는 단계를 포함하는, 방법.
  8. 제7항에 있어서, 상기 세션 정보는 사용자 장비(user equipment) 어드레스를 포함하는, 방법.
  9. 제7항에 있어서, 상기 세션 정보는 터널 엔드포인트 식별자(Tunnel Endpoint Identifier)를 포함하는, 방법.
  10. 제7항에 있어서, 상기 제1 요청을 프로세싱하는 단계는 상기 세션 정보를 송신하는 단계를 더 포함하는, 방법.
  11. 제10항에 있어서, 상기 제1 요청을 프로세싱하는 단계는 상기 세션 정보를 경계 게이트웨이 프로토콜(BGP) 컨트롤러로 송신하는 단계를 포함하는, 방법.
  12. 제5항에 있어서, 상기 제1 엔티티는 SMF(Session Management Function)인, 방법.
  13. 제5항에 있어서, 상기 제2 엔티티는 UPF(User Plane Function)인, 방법.
  14. 제1항에 있어서, 상기 선택된 컨트롤러를 선택하는 단계는,
    상기 제1 요청으로부터 정보를 추출하는 단계; 및
    상기 정보에 해당하는 것으로 상기 선택된 컨트롤러를 선택하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 정보는 IP(internet protocol) 소스 어드레스, IP 목적지 어드레스, SEID(session identifier), 및 F-SEID(fully qualified session identifier) 중 하나 이상을 포함하는, 방법.
  16. 제14항에 있어서, 상기 정보에 해당하는 것으로 상기 선택된 컨트롤러를 선택하는 단계는,
    상기 정보로 해시(hash)를 생성하는 단계; 및
    상기 해시에 매핑되는 상기 선택된 컨트롤러를 식별하는 단계를 포함하는, 방법.
  17. 시스템에 있어서,
    하나 이상의 컴퓨팅 디바이스들을 포함하고, 각각의 상기 컴퓨팅 디바이스는 하나 이상의 프로세싱 디바이스들 및 상기 하나 이상의 프로세싱 디바이스들에 커플링된 하나 이상의 메모리 디바이스들을 포함하고, 상기 하나 이상의 컴퓨팅 디바이스들은 방법을 수행하도록 프로그래밍되고, 상기 방법은,
    제1 로드 밸런서에 의해 제1 엔티티로부터, 제2 엔티티를 참조하는 제1 요청을 수신하는 단계;
    상기 제1 로드 밸런서에 의해, 상기 제1 요청의 어드레스 정보로부터 생성된 해시에 따라 복수의 컨트롤러들 중 선택된 컨트롤러를 선택하는 단계;
    상기 제1 로드 밸런서에 의해, 상기 제1 요청을 상기 선택된 컨트롤러로 송신하는 단계;
    상기 선택된 컨트롤러에 의해, 상기 요청에 대해 패킷 포워딩 제어(PFCP) 세션을 구현하는 단계;
    상기 선택된 컨트롤러에 의해, 상기 제1 요청에 대응하는 제2 요청을 제2 로드 밸런서로 송신하는 단계; 및
    상기 제2 로드 밸런서에 의해, 상기 제2 응답을 상기 제2 엔티티로 포워딩하는 단계를 포함하는, 시스템.
  18. 제17항에 있어서, 상기 하나 이상의 컴퓨팅 디바이스들은,
    상기 제2 로드 밸런서에 의해 상기 제2 엔티티로부터, 상기 제2 요청에 대한 제1 응답을 수신하는 단계;
    상기 제2 로드 밸런서에 의해, 상기 제1 응답을 상기 선택된 컨트롤러에 포워딩하는 단계;
    상기 선택된 컨트롤러에 의해, PFCP에 따라 상기 제1 응답을 프로세싱하는 단계;
    상기 선택된 컨트롤러에 의해 상기 제1 로드 밸런서로, 상기 제1 응답에 대응하는 제2 응답을 송신하는 단계; 및
    상기 제1 로드 밸런서에 의해, 상기 제2 응답을 상기 제1 엔티티로 포워딩하는 단계에 의해 상기 방법을 추가로 프로그래밍시키는, 시스템.
  19. 제18항에 있어서, 상기 제1 요청 및 상기 제1 응답은 GTP(GPRS(general packet radio service) tunneling protocol) 패킷에 따른 패킷들이고; 및
    상기 제1 요청을 프로세싱하는 단계는,
    상기 제1 요청으로부터 세션 정보를 추출하는 단계 - 상기 세션 정보는 사용자 장비 어드레스 및 터널 엔드포인트 식별자를 포함함 -; 및
    경계 게이트웨이 프로토콜(BGP : border gateway protocol) 컨트롤러로 상기 세션 정보를 송신하는 단계를 포함하는, 시스템.
  20. 제17항에 있어서, 상기 어드레스 정보는 IP(internet protocol) 소스 어드레스, IP 목적지 어드레스, SEID(session identifier), 및 F-SEID(fully qualified session identifier) 중 하나 이상을 포함하는, 시스템.
KR1020237040219A 2021-04-26 2022-04-20 Pfcp 세션 로드 밸런서 KR20240018439A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US17/240,726 2021-04-26
US17/240,726 US11632692B2 (en) 2021-04-26 2021-04-26 Use of IP networks for routing of cellular data packets
US17/362,071 2021-06-29
US17/362,071 US11849381B2 (en) 2021-04-26 2021-06-29 Use of IP networks for routing of cellular data packets
US17/488,833 US20220345984A1 (en) 2021-04-26 2021-09-29 Use Of Ip Networks For Routing Of Cellular Data Packets
US17/488,833 2021-09-29
US17/553,522 2021-12-16
US17/553,522 US20220345519A1 (en) 2021-04-26 2021-12-16 PFCP Session Load Balancer
PCT/US2022/025555 WO2022231906A1 (en) 2021-04-26 2022-04-20 Pfcp session load balancer

Publications (1)

Publication Number Publication Date
KR20240018439A true KR20240018439A (ko) 2024-02-13

Family

ID=83694551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237040219A KR20240018439A (ko) 2021-04-26 2022-04-20 Pfcp 세션 로드 밸런서

Country Status (7)

Country Link
US (1) US20220345519A1 (ko)
EP (1) EP4330820A1 (ko)
JP (1) JP2024517717A (ko)
KR (1) KR20240018439A (ko)
CA (1) CA3216581A1 (ko)
TW (1) TW202249466A (ko)
WO (1) WO2022231906A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115567986B (zh) * 2022-11-29 2023-04-18 阿里巴巴(中国)有限公司 基于负载均衡的通信网络

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US9071609B2 (en) * 2012-10-08 2015-06-30 Google Technology Holdings LLC Methods and apparatus for performing dynamic load balancing of processing resources
US9271197B2 (en) * 2013-05-22 2016-02-23 Futurewei Technologies, Inc. System and method for distributed evolved packet core architecture
US9632840B2 (en) * 2014-04-22 2017-04-25 International Business Machines Corporation Load balancing with granularly redistributable workloads
US10616321B2 (en) * 2017-12-22 2020-04-07 At&T Intellectual Property I, L.P. Distributed stateful load balancer
EP3994850A1 (en) * 2019-07-03 2022-05-11 Telefonaktiebolaget LM Ericsson (publ) Establishing a packet forwarding control protocol session
JP2021039423A (ja) * 2019-08-30 2021-03-11 キヤノン株式会社 システム、および制御方法

Also Published As

Publication number Publication date
CA3216581A1 (en) 2022-11-03
WO2022231906A1 (en) 2022-11-03
US20220345519A1 (en) 2022-10-27
EP4330820A1 (en) 2024-03-06
TW202249466A (zh) 2022-12-16
JP2024517717A (ja) 2024-04-23

Similar Documents

Publication Publication Date Title
US10484203B2 (en) Method for implementing communication between NVO3 network and MPLS network, and apparatus
EP2579544A1 (en) Methods and apparatus for a scalable network with efficient link utilization
CN112671628B (zh) 业务服务提供方法及系统
WO2021073555A1 (zh) 业务服务提供方法及系统、远端加速网关
EP3716529B1 (en) Tunneling inter-domain stateless internet protocol multicast packets
KR20240018439A (ko) Pfcp 세션 로드 밸런서
KR20240000579A (ko) 셀룰러 데이터 패킷들의 라우팅을 위한 ip 네트워크들의 개선된 사용
US20220345986A1 (en) Selective Importing of UE Addresses to VRF in 5g Networks
US20220345984A1 (en) Use Of Ip Networks For Routing Of Cellular Data Packets
US11632692B2 (en) Use of IP networks for routing of cellular data packets
CN117441377A (zh) 在5g网络中将ue地址选择性地导入vrf
CN117529709A (zh) Pfcp会话负载平衡器
CN117461297A (zh) 用于路由蜂窝数据数据包的ip网络的使用
CN117480855A (zh) 用于路由蜂窝数据数据包的ip网络的改进使用