이문상
(KT Institute of Convergence Technology)
,
이치영
(KT Institute of Convergence Technology)
,
김우태
(KT Institute of Convergence Technology)
,
이영우
(KT Institute of Convergence Technology)
최근 들어, 유무선 망의 종단 사이에 위치하여 다양한 네트워크 기능을 제공하는 미들박스 서비스가 일반화되고 있다. 특히, 클라우드 컴퓨팅 분야의 가상화 기술이 네트워크 분야에 적용되면서 네트워크 가상화가 빠르게 진행되고, 가상 네트워크 장비들을 유연하게 연결하여 민첩한 네트워크 서비스를 제공하는 플랫폼들이 연구되고 있다. 본 논문에서는 캐리어 급 미들박스 서비스를 제공하기 위한 필수 요소들을 살펴보고, 범용서버에서 캐리어 급 네트워크 주소 변환 서비스를 제공하기 위한 프레임워크의 설계와 구현에 대해 기술한다. 실험 결과에 의하면, 제안하는 프레임워크는 기존의 리눅스커널에서 제공하는 주소 변환 기능보다 15.5배 빠른 성능을 보인다.
최근 들어, 유무선 망의 종단 사이에 위치하여 다양한 네트워크 기능을 제공하는 미들박스 서비스가 일반화되고 있다. 특히, 클라우드 컴퓨팅 분야의 가상화 기술이 네트워크 분야에 적용되면서 네트워크 가상화가 빠르게 진행되고, 가상 네트워크 장비들을 유연하게 연결하여 민첩한 네트워크 서비스를 제공하는 플랫폼들이 연구되고 있다. 본 논문에서는 캐리어 급 미들박스 서비스를 제공하기 위한 필수 요소들을 살펴보고, 범용서버에서 캐리어 급 네트워크 주소 변환 서비스를 제공하기 위한 프레임워크의 설계와 구현에 대해 기술한다. 실험 결과에 의하면, 제안하는 프레임워크는 기존의 리눅스 커널에서 제공하는 주소 변환 기능보다 15.5배 빠른 성능을 보인다.
Recently, various middle box services have been developed and applied to provide network functions to end nodes of the network. Especially, network virtualization is increasingly proceeding by applying the virtualization technologies of cloud computing field to network field, and network platforms f...
Recently, various middle box services have been developed and applied to provide network functions to end nodes of the network. Especially, network virtualization is increasingly proceeding by applying the virtualization technologies of cloud computing field to network field, and network platforms for various flexible services are being developed to connect among the virtual network devices. Carrier-grade Network Address Translation (CGNAT) is also one of these flexible network services. This paper designs and implements the DPDK-based CGNAT framework that provides flexibility and maximizes address translation throughput. Our framework achieves 15.5 times higher throughput than the address translation service by Linux kernel.
Recently, various middle box services have been developed and applied to provide network functions to end nodes of the network. Especially, network virtualization is increasingly proceeding by applying the virtualization technologies of cloud computing field to network field, and network platforms for various flexible services are being developed to connect among the virtual network devices. Carrier-grade Network Address Translation (CGNAT) is also one of these flexible network services. This paper designs and implements the DPDK-based CGNAT framework that provides flexibility and maximizes address translation throughput. Our framework achieves 15.5 times higher throughput than the address translation service by Linux kernel.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
RFC 3234[1]에서는 22종의 미들박스 서비스들을 정의하고 각 미들박스 종류의 특징을 기술하고 있다. 본 논문에서는 초고속 네트워크에서 캐리어 급 주소변환(CGNAT: Carrier-Grade Network Address Translation)을 제공하기 위한 프레임워크에 대해 기술한다.
전통적인 리눅스 서버의 네트워크 처리 성능으로는 이 요구를 만족할 수 없기 때문에 리눅스 서버의 네트워크 성능을 극대화하는 것이 필요하다. 본 논문에서는 캐리어 급 주소변환 서비스를 제공하기 위한 CGNAT 프레임워크를 설계하고, x86 기반의 범용 서버에서 실행 가능한 프로토타입을 구현한다. 이를 위해, 제안하는 CGNAT 프레임워크는 DPDK를 이용하여 패킷 전달 성능을 극대화하고, 파이프라인 구조로 구현하여 패킷 당 프로세싱 성능을 최대화한다.
제안하는 CGNAT 프레임워크의 목표는 수많은 가입자의 패킷을 처리할 수 있는 높은 패킷 처리율을 제공하는 것이다. 이를 위해, 본 논문은 DPDK에 의한 패킷 전달 속도 향상과 파이프라인 구조에 의한 병렬적 처리를 통해 기존에 비해 성능을 극대화한다.
예를 들어, 0번 NUMA 소켓(NUMA socket) 에 속한 프로세서가 1번 NUMA 소켓에 속한 메모리를 접근하면 데이터 전달 경로가 길어져 성능이 낮아진다. 따라서 본 논문은 프로세서 할당에 따른 성능 차이를 실험을 통해서 보임으로써, 최적의 프로세서 할당을 위한 기초 자료를 마련한다.
본 논문은 파이프라인의 작업량에 따른 성능 변화를 더 자세히 알아보기 위해서, 같은 NUMA 소켓의 물리 코어만 활용하는 환경에서 각 파이프라인의 조합을 바꾸면서 동일한 물리 코어를 할당하는 실험을 진행하였다. 이 실험에서 사용한 물리 코어의 할당 정보는 표 4와 같다.
본 논문에서는 캐리어급 주소변환을 위한 프레임워크를 설계하고 프로토타입 구현을 통해 성능 평가를 수행하였다. 전통적인 리눅스 커널(iptables)을 사용하는 경우에 비해 최대 15.
제안 방법
본 논문에서는 캐리어 급 주소변환 서비스를 제공하기 위한 CGNAT 프레임워크를 설계하고, x86 기반의 범용 서버에서 실행 가능한 프로토타입을 구현한다. 이를 위해, 제안하는 CGNAT 프레임워크는 DPDK를 이용하여 패킷 전달 성능을 극대화하고, 파이프라인 구조로 구현하여 패킷 당 프로세싱 성능을 최대화한다. 10Gbps 링크에서 단방향 패킷에 대한 주소변환에 따른 패킷 처리량(Throughput)을 측정한 본 논문의 실험에 따르면, 리눅스 커널의 iptables를 사용하여 주소변환을 수행한 경우에 비해 본 논문의 CGNAT 프로토타입 처리율이 패킷 크기 전 구간에 대해 2~15배 향상되었다.
제안하는 CGNAT 프레임워크의 목표는 수많은 가입자의 패킷을 처리할 수 있는 높은 패킷 처리율을 제공하는 것이다. 이를 위해, 본 논문은 DPDK에 의한 패킷 전달 속도 향상과 파이프라인 구조에 의한 병렬적 처리를 통해 기존에 비해 성능을 극대화한다.
이후, 외부에 위치한 데이터 서버 측에서는 패킷의 출발지 주소에 기록된 공용 IP 주소로 응답을 보낸다. 이 응답 패킷을 수신한 NAT Daemon은 5-튜플별 연결 관리 테이블을 탐색하여 유입이 허용되어 있는지를 확인한다. 만약 허용된 패킷이면 5-튜플별 연결 관리 테이블로부터 사설 IP 주소와 단말의 MAC 주소를 얻어와 응답 패킷의 목적지 IP와 MAC 주소를 변경한 후에 단말로 전송하고, 허용되지 않은 패킷이면 드랍 처리한다.
본 논문에서는 Intel Xeon CPU를 사용하는 리눅스 서버에서 CGNAT 프레임워크를 구현 하였고, 고속 패킷 처리를 위해 데이터 평면으로 DPDK를 사용하였다. DPDK에서 제시하는 두 가지 구현 모델인 순차적 처리 모델(Run-to-Completion Model)과 파이프라인 모델(Pipeline Framework)에 따라 각각 구현을 진행하여 구현 방법에 따른 성능 비교 대상으로 사용하였다.
①의 단계는 패킷을 수신하여 버퍼에 저장하는 단계이고, ②는 패킷의 유효성을 검사하는 단계이다. CGNAT 서버로 패킷이 수신되면 패킷 종류에 따라 유효성 검사를 먼저 진행하여 유효한 패킷만 주소변환을 수행하고, CRC 값 오류가 있는 패킷들은 유효하지 않은 것으로 간주하여 드랍 처리된다. 이후, ③ 단계에서는 주소 변환을 수행한다.
순차적 패킷 처리 CGNAT와 파이프라인 패킷 처리 CGNAT의 성능 평가를 위해, 표 1과 같은 서버를 이용해 CGNAT 서버를 구축하였다. 프로세서는 인텔 Xeon 프로세서 2개로 구성되고, 각 프로세서는 4개의 코어를 갖고 있다.
패킷 생성 시 단말에서의 지연 시간을 최소화하기 위해 단말에서도 DPDK를 활용한다. 이를 위해 DPDK 기반의 Pktgen[18]을 동작시켜 패킷을 생성한다. 이 구성에서 단말의 0번 포트 (P0)에서 전송한 상향 패킷((a)Upstream)은 CGNAT 를 거쳐 단말의 1번 포트(P1)로 수신되고, 단말의 P1에서 전송한 하향 패킷((b)Downstream)은 CGNAT를 거쳐 단말의 P0로 수신된다.
성능 평가를 위해 리눅스 커널(iptables)을 이용한 방법(Kernel), 순차적 패킷 처리를 구현한 방법(uNAT), 파이프라인 패킷 처리를 구현한 방법(uNATp), 단순히 L2 계층 포워딩을 구현한 DPDK 예제코드(L2FWD)를 대상으로 다양한 패킷 크기에 대한 주소변환을 수행했을 때 패킷 처리량을 측정하였다. L2 프레임의 프리앰블(Preamble)과 프레임 간 간격(Inter-Frame Gap)을 고려하면, 64바이트 패킷에 대한 이론상 최대 대역폭은 7.
즉, “Val+NAT”는 Validity와 NAT 파이프라인이 같은 물리 코어를 사용함을 의미한다. 또한, 이 실험에서는 하이퍼쓰레드에 의한 논리적인 코어의 영향을 제거하기 위해 하이퍼쓰레드 기능을 비활성화한 상태에서 진행하였다. 따라서 표에서 강조된 코어 정보들은 실제로 물리 코어를 함께 사용하는 경우를 의미한다.
대상 데이터
본 논문에서는 Intel Xeon CPU를 사용하는 리눅스 서버에서 CGNAT 프레임워크를 구현 하였고, 고속 패킷 처리를 위해 데이터 평면으로 DPDK를 사용하였다. DPDK에서 제시하는 두 가지 구현 모델인 순차적 처리 모델(Run-to-Completion Model)과 파이프라인 모델(Pipeline Framework)에 따라 각각 구현을 진행하여 구현 방법에 따른 성능 비교 대상으로 사용하였다.
그림 10은 표 4의 코어 할당 정보에 따라 파이프라인을 동작했을 때 주소변환에 따른 패킷 처리량을 나타낸다. 실험에 사용한 패킷의 크기는 패킷의 최소 크기인 64 바이트이고, 하향 패킷에서 NAT 파이프라인을 거치지 않기 때문에 모든 파이프라인을 통과하는 상향 패킷만을 대상으로 한다.
이론/모형
그림 2는 본 논문에서 구현한 CGNAT 서버의 주요 소프트웨어 구성을 나타낸다. DHCP 동작을 위해서 ISC(Internet Systems Consortium)에서 오픈소스로 배포하는 DHCP 참조 구현(Reference Implementation)을 사용하였다. Private DHCPD는 가입자 단말에게 사설 IP 주소를 할당하기 위한 DHCP 서버이고, Public DHCP Agent는 가입자 단말이 외부망에서 인식될 공용 IP 주소를 할당받기 위한 DHCP 클라이언트이다.
성능/효과
이를 위해, 제안하는 CGNAT 프레임워크는 DPDK를 이용하여 패킷 전달 성능을 극대화하고, 파이프라인 구조로 구현하여 패킷 당 프로세싱 성능을 최대화한다. 10Gbps 링크에서 단방향 패킷에 대한 주소변환에 따른 패킷 처리량(Throughput)을 측정한 본 논문의 실험에 따르면, 리눅스 커널의 iptables를 사용하여 주소변환을 수행한 경우에 비해 본 논문의 CGNAT 프로토타입 처리율이 패킷 크기 전 구간에 대해 2~15배 향상되었다.
7Mpps에 불과하다. 따라서 제안하는 CGNAT 프레임워크는 DPDK를 이용하여 패킷을 리눅스 커널을 거치지 않고 수신하여 느린 패킷 전달 성능을 극복한다.
L2FWD는 주소변환을 위한 처리 과정 없이 수신한 패킷을 지정된 포트로 내보내는 작업만 수행하기 때문에 상향과 하향의 성능이 동일하게 나타난다. 실험 결과에 의하면, 64 바이트 패킷에 대해, uNATp는 리눅스 커널 대비 14.7배, uNAT는 10.4배의 패킷 처리량 향상을 보인다.
또한, 제안하는 uNATp는 DPDK와 파이프라인 구조를 통해, 패킷 프로세싱의 작업량 변화에 대해 안정적으로 높은 성능을 제공한다. 그림 7과 그림 8에 의하면, uNATp는 상향과 하향 패킷의 성능이 유사한 반면, uNAT는 상향에 비해 하향 패킷의 성능이 향상된 것을 볼 수 있다.
본 논문에서 구성한 CGNAT는 소프트웨어이기 때 문에 이를 구동하는 서버의 하드웨어적인 능력(h/w capacity)에 의해 성능 변화가 나타난다. 특히, 폴링 기반 패킷 송수신과 잦은 테이블 탐색 (예: NAT, ConnTrack)이 발생하므로, 이를 처리할 프로세서의 능력이 중요하다.
본 논문에서는 캐리어급 주소변환을 위한 프레임워크를 설계하고 프로토타입 구현을 통해 성능 평가를 수행하였다. 전통적인 리눅스 커널(iptables)을 사용하는 경우에 비해 최대 15.5배의 패킷 처리율 향상이 관찰되었고, 프로세서 할당 실험을 통해 파이프라인에 대한 프로세서의 할당에 따라 전체적인 CGNAT의 성능이 변화한다는 사실을 확인할 수 있었다.
후속연구
향후에는 네트워크 가상화 기술을 적용하여 가상머신(Virtual Machine)상에서 실행되는 CGNAT 서버의 성능을 평가하고 하이퍼바이저 계층에서 제공할 수 있는 성능 개선 방법에 관한 연구를 진행할 계획이다.
질의응답
핵심어
질문
논문에서 추출한 답변
네트워크 주소변환은 어떤 기능인가?
네트워크 주소변환(NAT: Network Address Translation)은 사설 IP 주소를 공용 IP 주소로 변환하는 기능이다. 네트워크 단말의 증가로 인해 부족해진 공용 IPv4 주소 공간을 효율적으로 확장하거나 네트 워크 주소공간을 분리하여 보안성을 향상시키기 위한 목적으로 사용되며, 통상적으로 가입자 사이트의 공유기 또는 Wi-Fi AP(Access Point)에서 수행되어 왔다.
미들박스의 예시에는 무엇이 있는가?
미들박스는 통신에 참여하는 양 종단 사이에 위치하여 특정 기능을 수행하는 네트워크 장치를 통칭한다. 예를 들어, 기업의 사내외 망을 연결하여 보안을 제공하는 방화벽, 클라우드의 전단에 위치하여 백엔드 노드들의 부하를 분산시키는 로드밸런서, 연결 경로상의 중간에서 파일 및 컨텐츠의 접근 속도를 향상시 키는 캐쉬/프락시, 사설망과 공용 망 사이에 위치하여 사설 IP주소를 공용 IP 주소로 변환하는 네트워크 주소 변환기 등을 포함한다. RFC 3234[1]에서는 22종의 미들박스 서비스들을 정의하고 각 미들박스 종류의 특징을 기술하고 있다.
캐리어 급 주소변환에서 높은 패킷 처리율이 요구되는 이유는 무엇인가?
일반적으로, 캐리어 급 주소변환은 수많은 가입자의 모든 패킷에 대해 수행되어야 하기 때문에 높은 패킷 처리율이 요구된다. 전통적인 리눅스 서버의 네트워크 처리 성능으로는 이 요구를 만족할 수 없기 때문에 리눅스 서버의 네트워크 성능을 극대화하는 것이 필요하다.
참고문헌 (21)
B. Carpenter, Middleboxes: taxonomy and issues, RFC 3234, 2002.
J. Yang, H. Park, Y. Kim, and J. Choi, "A virtual object hosting technology for IoT device controlling on wireless AP's," J. KICS, vol. 39, no. 2, pp. 164-172, Feb. 2014.
S. Perreault, Ed., Common requirements for carrier-grade NATs (CGNs), RFC 6888, 2013.
T. Jeffree, IEEE draft standard for local and metropolitan area networks, virtual bridged local area networks, amendment 4: Provider bridges, IEEE 802.1ad, 2005.
B. Leslie, P. Chubb, N. Fitzroy-Dale, S. Gotz, C. Gray, L. Macpherson, D. Potts, Y. Shen, K. Elphinstone, and G. Heiser, "User-level device drivers: achieved performance," J. Comput. Sci. Technol., vol. 20, no. 5, pp. 654-664, Sept. 2005.
J. H. Salim, R. Olsson, and A. Kuznetsov, "Beyond softnet," in Proc. Linux 2.5 Kernel Developers Summit, San Jose, CA, USA, Mar. 2001.
DPDK, Retrieved July 5, 2016, from http://dpdk.org.
J. Hwang, K. K. Ramakrishnan, and T. Wood. "NetVM: high performance and flexible networking using virtualization on commodity platforms," IEEE Trans. Netw. Serv. Management, vol. 12, no. 1, pp. 34-47, 2015.
G. Pongracz, L. Molnar, and Z. L. Kis, "Removing roadblocks from SDN: OpenFlow software switch performance on Intel DPDK," in Proc. 2nd Eur. Wksp. Softw. Defined Netw., pp. 62-67, Berlin, Germany, Oct. 2013.
I. Cerrato, M. Annarumma, and F. Risso, "Supporting fine-grained network functions through Intel DPDK," in 3rd Eur. Wksp. Softw. Defined Netw., pp. 1-6, Budapest, Hungary, Sept. 2014.
OPNFV, Retrieved July 5, 2016, from https://www.opnfv.org.
ODP, Retrieved July 5, 2016, from http://www.opendataplane.org.
M. Dobrescu, N. Egi, K. Argyraki, B. G. Chun, K. Fall, G. Iannaccone, A. Knies, M. Manesh, and S. Ratnasamy, "Routebricks: exploiting parallelism to scale software routers," in Proc. ACM SIGOPS 22nd Symp. Operating Syst. Principles, pp. 15-28, Big Sky, Montana, USA, Oct. 2009.
S. Han, K. Jang, K. Park, and S. Moon, "Packetshader: a gpu-accelerated software router," ACM SIGCOMM Computer Commun. Rev., vol. 40, no. 4, pp. 195-206, Oct. 2010.
T. Brecht, G. J. Janakiraman, B. Lynn, V. Saletore, and Y. Turner, "Evaluating network processing efficiency with processor partitioning and asynchronous I/O," ACM SIGOPS Operating Syst. Rev., vol. 40, no. 4, pp. 265-278, Oct. 2006.
R. Bolla and R. Bruschi, "PC-based software routers: high performance and application service support," in Proc. ACM Wksp. Programmable routers for extensible services of tomorrow, pp. 27-32, Seattle, WA, USA, Aug. 2008.
J. Martins, M. Ahmed, C. Raiciu, V. Olteanu, M. Honda, R. Bifulco, and F. Huici, "Clickos and the art of network function virtualization," in Proc. 11th USENIX Symp. NSDI 14, pp. 459-473, Seattle, WA, USA, Apr. 2014.
The Pktgen Application, Retrieved July 6 2016, from https://pktgen.readthedocs.io/en/latest/.
T. Ahn, Y. Kim, and S. Lee, "Dynamic resource allocation in distributed cloud computing," J. KICS, vol. 38, no. 7, pp. 512-518, Jul. 2013.
H. Kim and H. Kim, "Control algorithm for virtual machine-level fairness in virtualized cloud data center," J. KICS, vol. 38, no. 6, pp. 512-520, Jun. 2013.
A. Drebes, A. Pop, K. Heydemann, N. Drach, and A. Cohen, "NUMA-aware scheduling and memory allocation for data-flow task-parallel applications," in Proc. 21st ACM SIGPLAN Symp. Principles and Practice of Parallel Programming, no. 44, Barcelona, Spain, Mar. 2016.
이 논문을 인용한 문헌
활용도 분석정보
상세보기
다운로드
내보내기
활용도 Top5 논문
해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다. 더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.