보안과제( ), 일반과제(○) B0101-15-1368
방송통신기술개발사업
NFV개념의 멀티서비스 맞춤형 스위칭 시스템 및 운영체제 개발
(Development of an NFV-inspired networked switch and an operating system for multi-middlebox services)
2016 . 01 . 29 .
㈜파이오링크
미 래 창 조 과 학 부
[보고 서식 제2호]
연차보고서
사업명 방송통신산업기술개발사업 과제번호 B0101-15-1368
과제명
(국문) NFV 개념의 멀티서비스 맞춤형 스위칭 시스템 및 운영체제 개발 (영문) Development of an NFV-inspired networked switch and an operating system for multi-middlebox services
주관기관 ㈜파이오링크 총괄책임자 이경헌
참여기관 (책임자)
KAIST(박경수), 아토리서치코리아(송용주), 에스피테크놀러지(변학구), SK텔레콤(조성민)
총수행기간 2014. 04. 01. ~ 2019. 02. 28. ( 5년)
협약기간 2014. 04. 01. ~ 2019. 02. 28. ( 5년) 해당년도
수행기간 2015. 03. 01. ~ 2016. 02. 28. ( 12개월 ) 협약기간
총사업비(천원)
정 부
출연금 6,500,000 민 간 부담금
현금 655,000
계 11,280,000 현물 4,125,000
해당연도 사업비(천원)
정 부
출연금 1,300,000 민 간 부담금
현금 115,000
계 2,170,000 현물 755,000
키워드 (6 ~ 10개)
미들박스 전용 운영체제, 범용 하드웨어 기반 고성능 스위치, 서비스 컨트롤 러, 미들박스 서비스 조함 및 체이닝, 서비스 용량 수평적 스케일링
정보통신․방송 연구개발 관리규정 제33조에 의거하여 연차보고서를 제출합니다. 2016 년 01 월 29 일
총괄책임자: 이 경 헌 (인) 주관기관장: 조 영 철 (인)
미래창조과학부 장관 귀하
Ⅰ. 해당 연도 추진 현황
Ⅰ-1 기술개발 추진 일정
(계획 : 실적 : )
개발 내용 추진 일정(개월) 달성도
3 4 5 6 7 8 9 10 11 12 1 2 (%)
미들박스 서비스 구현
및 서버와 스위치 통합 플랫폼 구현
IDS 미들박스 서비스 상
용 수준 최적화 100%
IPS 미들박스 서비스 구
현 100%
Load Balancer 미들박스
서비스 구현 100%
통합 플랫폼 구현 100%
서비스 컨트롤러
구현
계획수립 및 자료조사 100%
미들박스 설정 기능 구현 100%
서비스 컨트롤러 시제품
제작 100%
미들박스 에뮬레이션 환
경 구축 100%
미들박스 서비스 설정 기
능 테스트 100%
OpenFlow 환경에서 트래
픽 설정 기능 테스트 100%
복합 환경에서 트래픽 및
서비스 설정 기능 테스트 100%
조기 상용화를 위한
통합/연동 테스트 100%
고성능 미들박스 OS
확장기능 설계 및
구현
유저 정의 이벤트 지원 100%
매니코어 기반의 가속 하
드웨어 지원 100%
단일 미들박스 내 멀티
서비스 chaining 기능 100%
개발 내용 추진 일정(개월) 달성도 3 4 5 6 7 8 9 10 11 12 1 2 (%)
OpenStack 적용
O p e n s t a c k 의 Neutron(Network)과 미들 박스 + Controller와의 적 합성 분석 설계
100%
Openstack 테스트베드 SW
및 아키텍처 설계 100%
Openstack Network의 성 능 개선을 위한 DPDK 및
SR-IOV 적용 및 테스트 100%
표준 기술 확보
국제 표준화 추진
- ITU-T SG11 Q4 기고 1건 - ITU-T SG13 Q14 기고 2건 - ETSI 기고 1건
100%
Ⅰ-2 해당 연도 추진 실적
※ 사업계획서의 연차별 개발 목표 및 내용 대비 성과를 상세히 기술
※ 개발 목표 달성 정도를 구체적으로 제시
1. 미들박스 서비스 구현 및 서버와 스위치 통합 플랫폼 구현
가. 미들박스 서비스 구현 1단계
(1) IDS (Intrusion Detection System) 서비스 상용 수준 최적화 구현
¡ 1차년도에 x86 서버 기반 IDS 미들박스 서비스 소프트웨어 구현
§ 패턴 데이터베이스와 Expert System을 사용해 네트워크나 시스템의 사용을 실시간으로 모니터링하고 침을 탐지하는 보안 시스템
그림 1 IDS의 개념
¡ 오픈소스인 Suricata (Signature Based IDS)를 기반으로 구현
§ IDS 서비스가 소프트웨어로 구현되어 손쉬운 설치가 가능
§ IDS 서비스 소프트웨어는 다음과 같은 구조로 구현
그림 3 IDS 서비스 소프트웨어의 구조
모듈 이름 설 명
Configuration Manager 실행 옵션 및 설정 파일에 따라 실행되는 프로그램을 구성
Flow Manager
세션 별로 각 패킷의 Segment들을 재조합하여 하나의 Stream 데이터로 유지하는 역할을 수행
이를 위해 각 세션을 관리하기 위한 Tracking 서브 모듈과 각 패킷을 재조합하기 위한 Reassembly 서브 모듈로 구성
Packet Acquisition
패킷을 수집하는 역할을 수행, 수집하는 방식에 따른 서브 모 듈로 구성 (예: af_packet 서브 모듈은 raw socket을 통해 패킷 수집 기능을 제공)
Decode
수집한 패킷의 프로토콜에 맞추어 해석하는 기능을 수행 해당 모듈은 IPv4, IPv6, TCP, UDP, GRE 등과 같은 서브 모 듈로 구성
Stream Flow Manager와 연동하여 수신한 패킷의 세션에 속하는 Stream을 생성하거나 갱신하는 역할을 수행
Detect Flow Manager를 사용하여 수신한 패킷의 Stream 데이터가 사 용자가 지정한 탐지 룰에 일치하는지 검사하는 역할을 수행 Output 공격으로 검출된 패킷에 대한 정보를 지정된 방식에 따라 기
록을 수행
표 1 IDS 서비스 소프트웨어의 모듈 상세 설명
¡ SKT 상용화 (2014.09 ~)
§ 보라매 네트워크 가상화 센터에 설치 및 운영 중
§ 실망 운영을 통해 문제점 및 요구사항 분석
¡ 최근 인터넷 사용의 증가로 인해 IDS로 탐지 및 처리해야 하는 트래픽이 기 하급수적으로 늘어나고 있어 미들박스 내 고성능 IDS 서비스가 요구됨
¡ 고성능 IDS 서비스에 대한 요구사항을 반영하여 해당 연도에 성능 최적화를 위한 노력을 기울임
§ 멀티 코어 NUMA 시스템의 성능 최적화 SW 구조 적용
그림 4 성능 향상을 위한 IDS 구조
§ 성능 개선을 위해 상용 PF_RING DNA를 인텔 DPDK (고속 패킷 처리 라 이브러리) 로 대체
§ 상용 PF_RING 은 Flow 별로 패킷을 분산하기 위해 DNA_Cluster라는 Software Load Balance Layer를 제공 (DNA Cluster Layer가 병목 구간이 되어 Scalability에 문제 발생)
§ Lock Free 자료구조 적용
§ Cache-aware Threading 기법 적용
§ Per-Core 자원 관리 기법 적용
§ Fast malloc()/free() 적용
§ IRQ Pinning 기법 적용
§ HW NIC Symmetric RSS 기술 적용
§ CPU Isolation 적용 (할당된 CPU Core의 독점사용 보장)
¡ 성능 최적화에 따른 효과
§ 리눅스 네트워크 스택을 거치지 않고, ixgbe의 queue에서 바로 패킷을 가져 오는 방식으로 패킷 처리 성능 향상
§ Thread 별로 Memory Alloc을 수행하고, free된 메모리 또한 Thread 별로 Caching 를 통해 Lock Contention 최소화
§ IRQ를 특정 CPU에 pinning하고, isolcpus를 사용하여 패킷을 처리하는 코어 가 Suricata의 detect thread에 전념할 수 있도록 해서 처리 성능 향상
¡ 주요 통신사, 공공기관, 클라우드 사업자 상용화 진행중 또는 예정
¡ 성능 측정 구성 및 결과
§ 아래와 같은 IDS 미들박스 서비스 성능 측정 환경을 구성
그림 6 IDS 미들박스 서비스 성능측정을 위한 환경 구성
§ Spirent Test Center (Spirent C100) 계측기를 이용, L2 스위치의 포트 미러 링 기능을 통해 IDS 미들박스 서비스에 UDP 트래픽을 인가 후 Throughput 성능을 측정
§ x86 서버기반 IDS 미들박스 서비스 성능측정 결과
x86 서버환경
CPU: Intel Xeon CPU E5-2430 12 cores * 2ea (총 24 Cores) Memory: 128 GB
I/O Interface: Intel 82599 10G
성능측정 목표 512 Byte 패킷 기준 Throughput 성능: 40Gbps
성능측정 결과 512 Byte 패킷 기준 Throughput 성능: 40Gbps (목표 100%
달성)
§ x86 서버기반의 가상화 환경 IDS 미들박스 서비스 성능측정 결과 (추가실험)
x86 서버환경
CPU: Intel Xeon CPU E5-2697 v2 12 cores * 2ea (총 24 Cores) Memory: 128 GB
I/O Interface: Intel 82599 10G
가상화 환경
Hypervisor: KVM vCPU: 6
vRAM:8GB
I/O Virtualization: VHOST USER VIRTIO 10G
QEMU, OVS, DPDK 가속화 기술 적용 (Huge Page, vCPU Pinning 등의 성능 튜닝 적용)
성능측정 목표 없음 (과제 범위 외)
512 Byte 패킷 기준 Throughput 성능 16Gbps
(2) IPS (Intrustion Protection System) 미들박스 서비스 기능 구현
¡ x86 서버 기반 IPS 서비스 소프트웨어 구현
그림 7 IPS의 개념
§ IPS 서비스가 소프트웨어로 구현되어 손쉬운 설치가 가능
§ 트래픽 경로에 인라인으로 위치하여, 사전에 정의된 룰(Rule)과 트래픽 비교 를 통해 공격을 탐지
§ 안정적인 네트워크 서비스 제공을 위해 보안은 필수 요소
§ IDS와 달리 검출된 공격을 차단 가능한 장점
¡ 오픈소스인 Suricata (Signature Based IDS)를 기반으로 구현
그림 8 IPS 서비스 소프트웨어의 기능 블록도
§ Single Thread 만 지원하는 Snort (오픈소스 IDS)와 달리, Suricata에서는 Multi Thread를 지원
§ 일반적인 Suricata 의 Multi Thread 사용 시 Thread 증가에 따라 Core 사용 률은 증가
§ Core 사용률 증가에도 패킷 처리 성능이 상용망 적용에 적합한 수준에 도달 하지 못함 (오픈 소스 Suricata 의 제약사항)
§ Suricata 수정을 통해 패킷 처리 성능을 극대화 한 IPS 미들박스 서비스 구 현
§ IPS 서비스 소프트웨어는 다음과 같은 구조로 구현
그림 9 IPS 서비스 소프트웨어의 구조
모듈 이름 설 명
Configuration Manager 실행 옵션 및 설정 파일에 따라 실행되는 프로그램을 구성
Flow Manager
세션 별로 각 패킷의 Segment들을 재조합하여 하나의 Stream 데이터로 유지하는 역할을 수행
이를 위해 각 세션을 관리하기 위한 Tracking 서브 모듈과 각 패킷을 재조합하기 위한 Reassembly 서브 모듈로 구성 Packet Acquisition
패킷을 수집하는 역할을 수행, 수집하는 방식에 따른 서브 모듈로 구성 (예: af_packet 서브 모듈은 raw socket을 통해 패킷 수집 기능을 제공)
Decode
수집한 패킷의 프로토콜에 맞추어 해석하는 기능을 수행 해당 모듈은 IPv4, IPv6, TCP, UDP, GRE 등과 같은 서브 모 듈로 구성
Stream Flow Manager와 연동하여 수신한 패킷의 세션에 속하는 Stream을 생성하거나 갱신하는 역할을 수행
Detect
Flow Manager를 사용하여 수신한 패킷의 Stream 데이터가 사용자가 지정한 탐지 룰에 일치하는지 검사하는 역할을 수 행
Reject Detect 모듈에서 공격으로 검출된 패킷을 지정된 정책에 따 라 허용 이나 차단을 수행
Output 공격으로 검출된 패킷에 대한 정보를 지정된 방식에 따라 기 록을 수행
표 2 IPS 서비스 소프트웨어의 모듈 상세 설명
¡ 멀티 코어 NUMA 시스템의 성능 최적화 SW 구조 구현
§ 최근 일반화된 멀티코어 CPU환경에 적합한 SW구조를 설계하고 구현하여 고속 네트워크에서 실시간으로 트래픽을 분석 및 탐지/차단이 가능
¡ 관리기능 구현
§ 공격 탐지 룰 추가/삭제
alert [PROTOCOL] [SRC_IP] [SRC_PORT] -> [DST_IP] [DST_PORT]
([signature content])
표 3 공격 탐지를 위한 룰 포맷
§ Snort/Suricata 형식의 공격 탐지 패턴 지원
그림 10 IPS의 공격 탐지 패턴
§ 탐지된 공격에 대한 pcap 파일 생성 기능
§ 탐지된 공격에 대한 보고 기능
§ 통계 정보 제공
¡ 공격탐지 기능 구현
그림 12 공격 탐지를 위한 IPS의 패킷 처리 절차
§ IPS는 아래와 같은 유형의 공격을 탐지
§ 원격 접속 트래픽 (원격 데스크탑, VNC 등)에 대한 공격 탐지
§ 시스템 취약점 공격 탐지
§ 웹 취약점 공격 탐지
§ Burst, Scan 유형의 트래픽 탐지
§ IPv6 공격 탐지
그림 13 IPS의 공격 탐지 로그
§ 탐지된 공격 트래픽에 대한 차단/허용 정책 적용 (rejectboth/alert 선택)
그림 14 IPS 기능:탐지된 공격 트래픽에 대한 차단/허용 설정
¡ 성능최적화
§ IPS 미들박스 서비스의 경우 트래픽 경로에 인라인으로 위치하여 모든 패킷 을 처리하기 때문에 고성능이 요구됨
§ 아래와 같은 기술을 적용하여 패킷 처리 성능을 향상
§ 인텔 DPDK (고속 패킷 처리 라이브러리) 적용
그림 15 Linux Application 과 DPDK가 적용된 Application의 패킷 처리 비교
그림 16 IPS의 DPDK Run Mode 실행 절차
§ Lock Free 자료구조 적용
§ Cache-aware Threading 기법 적용
§ Per-Core 자원 관리 기법 적용
§ Fast malloc()/free() 적용
§ IRQ Pinning 기법 적용
§ HW NIC Symmetric RSS 기술 적용
§ CPU Isolation 적용 (할당된 CPU Core의 독점사용 보장)
¡ SKT 상용화 (2015.04 ~)
§ 보라매 네트워크 가상화 센터에 설치 및 운영 중
§ IPS 미들박스 서비스의 실효성 입증
¡ 주요 통신사, 공공기관, 클라우드 사업자 상용화 진행중 또는 예정
¡ 성능 측정 구성 및 결과
§ 아래와 같은 IPS 미들박스 서비스 성능 측정 환경을 구성
그림 17 IPS 미들박스 서비스 성능측정을 위한 환경 구성
§ Spirent Test Center (Spirent C100) 계측기를 이용, IPS 미들박스 서비스에 UDP 트래픽을 인가 후 Throughput 성능을 측정
§ x86 서버기반 IPS 미들박스 서비스 성능측정 결과
x86 서버환경
CPU: Intel Xeon CPU E5-2430 12 cores * 2ea (총 24 Cores) Memory: 128 GB
I/O Interface: Intel 82599 10G
성능측정 목표 512 Byte 패킷 기준 Throughput 성능: 20Gbps
성능측정 결과 512 Byte 패킷 기준 Throughput 성능: 39.4Gbps (목표수준 2배달성)
§ x86 서버기반의 가상화 환경 IPS 미들박스 서비스 성능측정 결과 (추가실험)
x86 서버환경
CPU: Intel Xeon CPU E5-2697 v2 12 cores * 2ea (총 24 Cores)
Memory: 128 GB
I/O Interface: Intel 82599 10G
가상화 환경
Hypervisor: KVM vCPU: 6
vRAM:8GB
I/O Virtualization: VHOST USER VIRTIO 10G
QEMU, OVS, DPDK 가속화 기술 적용 (Huge Page, vCPU Pinning 등의 성능 튜닝 적용)
성능측정 목표 없음 (과제 범위 외)
(3) Load Balancer 미들박스 서비스 기능 구현
¡ x86 서버 기반 Load Balancer 서비스 소프트웨어 구현
그림 18 Load Balancer 미들박스 서비스의 Architecture
§ Load Balancer 서비스가 소프트웨어로 구현되어 손쉬운 설치가 가능
§ Load Balancer 는 클라이언트로부터 전송되는 트래픽을 운영자의 정책에 따 라 복수의 서버로 분배, 부하분산 하는 시스템
§ Load Balancer 미들박스 서비스의 클라우드 적용시 특정 서버에 트래픽이 집중되는 것을 없애, 네트워크 효율성을 증대 가능
¡ 멀티 코어 NUMA 시스템의 성능 최적화 SW 구조 구현
¡ Load Balancer 미들박스 서비스 설정/관리를 위한 CLI (Command Line Interface) 구현
§ 쉘 접속 후 명령어를 통해 Load Balancer 미들박스 서비스 설정/관리
그림 19 Load Balancer 미들박스에서 제공하는 CLI 화면
¡ 부하 분산 관리기능 구현
§ 트래픽 분배 필터 설정
§ 가상 서버 설정
§ Dest NAT 모드 설정
§ Both NAT 모드 설정
§ 지속 연결 설정
§ 실제 서버 장애 감시 설정
§ L4 서버 부하 분산 설정
§ L7 서버 부하 분산 설정
¡ 가상 서버 기반 부하 분산 기능 구현
§ Load Balancer 미들박스가 가상 서버 (Virtual Server) 역할을 수행
§ 클라이언트가 서버의 실제 IP주소 대신 가상서버의 IP주소를 사용하여 서비 스를 요청하도록 하는 기능
¡ 다양한 부하 분산 방식 구현
§ 아래와 같은 부하 분산 방식 지원
부하 분산 방식 설명
출발지 해싱 방식 클라이언트의 출발지 IP정보를 사용하여 부하분산을 수행
라운드 로빈 방식 실제 서버를 순차적으로 선택하여 부하분산을 수행 가중치 라운드 로빈 방식 가중치를 이용하여 실제 서버 선택 시 실제 서버의
처리 능력을 고려하여 부하 분산을 수행 표 4 Load Balancer 미들박스 서비스에서 지원하는 부하 분산 방식
§ Load Balancer 미들박스 서비스가 위치한 네트워크 특성에 적합한 분산 방 식을 선택하여 네트워크 가용성 확보
¡ 서버 부하 분산의 NAT 모드 구현
§ Dest NAT (Destination NAT) 모드: 클라이언트와 실제 서버 간에 송수신되 는 패킷의 목적지를 변경
§ Both NAT 모드: 클라이언트와 실제 서버 간에 송수신되는 패킷의 출발지/
목적지를 변경
¡ 지속 연결기능 구현
§ 부하 분산 서비스에 사용 하도록 다음과 같은 지속 연결 기능을 구현
지속 연결 종류 설 명
IP 지속 연결 클라이언트의 IP주소를 사용하여 실제 서버를 선택하 여 부하 분산을 수행
HTTP 쿠키 지속 연결 클라이언트와 서버 간에 주고 받는 쿠키 정보를 사용 하여 실제 서버를 선택하여 부하 분산을 수행
표 5 지속 연결 기능의 종류
¡ 실제 서버에 대한 장애 감시기능 구현
§ 부하 분산 서비스가 적용되고 있는 서버의 자원 상태를 주기적으로 검사하 여 결과를 부하 분산 서비스에 반영
§ 장애 감시 과정에서 장애가 발생한 실제 서버 발견 시 부하 분산 대상에서 제외
§ 장애가 발생했던 실제 서버가 정상화 될 경우 다시 부하 분산 대상에 추가
§ 실제 서버에 대한 장애 감시기능을 통해 클라이언트에게 중단 없는 서비스 제공이 가능
§ 아래와 같은 방법을 통해 서버의 장애를 감시
항목 기본값 설 명
전송 주기 5초 설정된 시간마다 장애 감시를 수행
응답 대기 시간 3초 설정된 시간이 경과되면 실제 서버로부터 응답을 받지 못한 것으로 판단
재전송 횟수 3회
실제 서버로부터 응답을 받지 못한 경우, 실제 서버가 장애 상태인지 보다 확실하게 판단하기 위해 설정한 횟수만큼 장애 감시를 추가로 시도
복구 횟수 0회
장애가 발생했던 실제 서버로부터 응답을 수신했을 때 실제 서버의 복구 여부를 보다 확실하게 판단하기 위 해 설정한 횟수만큼 추가로 장애 감시를 수행
포트 0 장애 감시에 사용할 TCP/UDP 목적지 포트 번호
표 6 실제 서버 장애 감시에 사용되는 항목과 기본 값
§ 아래와 같은 다양한 종류의 장애 감시 방법을 구현
§ HTTP 장애 감시
그림 20 HTTP 장애 감시 동작 과정
§ UDP 장애 감시
그림 21 UDP 장애 감시 동작 과정
§ TCP 장애 감시
그림 22 TCP Half-Open 옵션을 활성화환 TCP 장애 감시 동작 과정
§
그림 23 TCP 장애 감시 동작 과정
§ NTP 장애 감시
그림 24 NTP 장애 감시 동작 과정
¡ L4/L7 서버 부하 분산 (L4/L7 SLB) 기능 구현
§ L4 서버 부하 분산: IP 주소 및 TCP/UDP 포트 정보를 기반으로 트래픽 분 배
§ L7 서버 부하 분산: IP 주소, TCP/UDP 포트 정보 및 패킷 내용까지 분석하 여 트래픽 분배
¡ 지속 연결기능 구현
§ 특정 클라이언트가 요청하는 모든 연결을 항상 동일한 실제 서버를 통해 이 루어질 수 있게 해주는 기능
§ 아래와 같은 종류의 지속 연결 기능을 제공
§ HTTP 쿠키 지속 연결: 클라이언트와 서버 간에 주고 받는 쿠키 정보를 사 용하여 실제 서버 선택
§ IP 지속 연결: 클라이언트의 IP주소를 사용하여 실제 서버 선택
¡ 성능 최적화
§ Fast Path Architecture 적용
§ Lock-Free 자료구조 적용
§ Per-Core 자원 관리기법 적용
§ Cache-aware Threading 기법 적용
§ Fast malloc()/free() 적용
§ HW NIC Symmetric RSS
§ CPU Isolation 적용 (할당된 CPU Core의 독점사용 보장)
§ Core의 수 증가에 따라 성능 향상이 보장되는 Scalable한 구조
¡ 성능 측정 구성 및 결과
§ 아래와 같은 Load Balancer 미들박스 서비스 성능 측정 환경을 구성
§ IXIA XT80 (Xcellon-Ultra XT80) 계측기를 이용, Load Balancer 미들박스 서 비스에 HTTP 트래픽을 인가 후 CPS 및 Throughput 성능을 측정
§ x86 서버기반 Load Balancer 미들박스 서비스 성능측정 결과
x86 서버환경
CPU: Intel Xeon CPU E5-2620 6 cores Memory: 64 GB
I/O Interface: Intel 82599 10G 성능측정 목표 CPS 성능: 50만 CPS
Throughput 성능: 20Gbps
성능측정 결과 CPS 성능: 50만 CPS (목표 100% 달성) Throughput 성능: 25Gbps (목표 125% 달성)
§ x86 서버기반의 가상화 환경 Load Balancer 미들박스 서비스 성능측정 결과 (추가실험)
x86 서버환경
CPU: Intel Xeon CPU E5-2697 v2 12 cores * 2ea (총 24 Cores)
Memory: 128 GB
I/O Interface: Intel XL710 10G
가상화 환경
Hypervisor: KVM vCPU: 8
vRAM:16GB
I/O Virtualization: SR-IOV (Intel XL710, VF 10G x 2) 성능측정 목표 없음 (과제 범위 외)
성능측정 결과 CPS 성능: 37만 CPS Throughput 성능: 10Gbps
¡ HP OpenNFV 프로그램 참여
§ HP의 NFV Ecosystem 파트너 프로그램
§ 국내 최초 가입 (OpenNFV Application 파트너 최초 멤버)
§ HP Open Lab 환경에서 VNF (Load Balancer 미들박스 서비스)의 상용 수 준 검증
그림 26 HP Open Lab 환경에서 VNF 검증
§ 최대 벤더 에코시스템을 활용하여 완성도 검증
그림 27 HP OpenNFV 프로그램 참여 기업
§ Load Balancer 의 ETSI 표준준수/상호운용성/신뢰성 측면 검증 진행 중
§ HP OpenNFV 프로그램을 통해 IDS, IPS 향후 검증 진행 예정
§ 공인 인증 프로그램을 통해 고객에게 안정성, 신뢰성이 보증된 미들박스 서 비스 제공 효과 기대
¡ 주요 통신사, 공공기관, 클라우드 사업자 상용화 진행중 또는 예정
(4) mOS 활용 미들박스 서비스 구현 검토 및 차기년도 적용 방안 검토
¡ mOS 라이브러리 주요 특징 분석
§ 사용자모드에서 네트웍 패킷 처리에 최적화 된 OS
§ Full TCP 스택 구현및 BSD 표준 소켓형태의 API 제공
§ 멀티 코어시스템에서 독립적으로 패킷 처리
§ Lock-Free, CPU 캐쉬 최적화, Lightweight TCP setup등의 장점 제공
§ Batching Processing을 통한 Context Switching Overhead 최소화
§ 다양한 종류의 시스템/사용자 정의 이벤트 제공
¡ NAT 구현
§ Packet-based Stateful DNAT
§ 기존 커널대비 Control패킷(SYN/ACK등) 제어에 따른 Overhead 최소화
§ Event-Driven 방식의 설계로 Fast/Control Path를 분리
§ NAT Control Block 정보를 TCP Control Block과 연동
§ Scalability with multi-core
¡ Proxy 구현
§ 두개의 소켓을 연결하여 데이터 복사
§ mOS TCP 스택 안정성, 정확성을 점검
§ HTTPS to HTTP 서비스를 위한 기반 기술 점검
¡ 차기년도 적용 방향 검토: IDS 고도화
§ 멀티코어 시스템을 활용한 고속 패킷수신 기능 병합: 패킷처리의 성능이 코 어 수에 비례해서 증가함.
§ TCP 재조합 기능 연동: 정확한 TCP 패킷재조합으로 “재조합우회 공격” 탐 지율 향상
¡ 차기년도 적용 방향 검토: SSL reverse proxy
§ mOS TCP 스택 활용: 커널 TCP 병목해소를 통해서 소켓 처리 성능 향상
§ TCP 스택과 SSL 가속기 연동: 암복호화를 위해서 가속기 사용시 TCP 스택 에서 가속기로 직접 데이터 전달하여 데이터 복사 최소화
나. 서버와 스위치 통합 플랫폼 (1) 통합 플랫폼 HW 구현
¡ 통합 플랫폼 HW형상
§ 통합 플랫폼 HW의 외부 형상은 아래와 같음
그림 28 통합 플랫폼 HW 의 전,후면 형상
그림 29 통합 플랫폼 HW 의 좌,우 측면 형상
¡ 통합 플랫폼 HW 구조
그림 30 통합 플랫폼 HW 구조
그림 31 통합 플랫폼 HW의 블록도
§ 미들박스 기능 집약에 최적화된 “서버-스위치 구조”를 채택
§ Switching Fabric 과 고성능 서버 플랫폼의 유기적 결합
§ 통합 플랫폼 HW는 외부 인터페이스를 제공하는 Unit(EIU)과 서버 파트를 담당하는 Unit (AEU), 그리고 스위치 파트를 담당하는 Unit (SFU)으로 구성
§ 서버 파트를 담당하는 Unit 과 스위치 파트를 담당하는 Unit 은 PCIe를 통 해 연결
§ 독립된 Switch Management CPU를 통해 고가용성 및 무중단 서비스 제공
¡ 미들박스 서비스 제공에 최적화 된 통합 플랫폼 HW
§ 고성능의 인텔 서버 플랫폼과 Broadcom Switch Chip을 채용하여 구현
서버 (x86 Server)
CPU Intel Xeon 2.x Ghz 12Cores * 2EA Memory 128GB
SSD 160GB
스위치 (Switch Board)
Switching Chip BCM56844
CPU BCM53003
Memory 512MB Falsh Device 32MB 40G QSFP+ 4 10G SFP+ 16
표 7 통합 플랫폼 HW 사양
§ 통합 플랫폼 HW의 내부 형상
그림 32 통합 플랫폼 HW의 내부 형상
¡ 통합 플랫폼 HW의 효율적인 패킷 처리
§ 단순 포워딩 트래픽/미들박스 기능이 필요한 트래픽으로 분류
§ CPU Overhead Offloading 기술 적용
§ 단순 포워딩 트래픽의 경우 스위치에서 Switching ASIC의 고속 TCAM을 이용 (단순 포워딩에 대해 low latency line-speed 보장)
§ 미들박스 기능이 필요한 트래픽의 경우 서버에 위치한 미들박스 서비스 소 프트웨어에서 처리
§ 서버와 스위치간 연결:Multi 10G Interface 로 높은 Bandwidth 보장 (Throughput 성능 최대 120Gbps 보장)
PCI-Express Switch PEX8648-BB50RBCF
48-Lane/12-Port PCI Express Gen 2 Switch 표 8 서버와 스위치간 연결을 위한 PCIe 사양
¡ Extension Slot
§ SSL 등의 HW 가속을 위한 추가 확장 Slot 마련
그림 33 HW 가속을 위한 추가 확장 Slot
¡ CPU 별 트래픽 분배 기능 구현
§ 스위치의 Trunk Hash 알고리즘과 HW Symmetric RSS 기능을 사용하여 동 일 세션에 속하는 패킷은 동일한 Core에서 처리됨을 보장
그림 34 동일 세션에 속하는 패킷의 동일 Core 보장
¡ CPU 별 트래픽 분배 기능 구현을 통한 기대 효과
§ Multi-core CPU 수에 Scalable 하게 증가하는 트래픽 처리 성능 보장
¡ 서버와 스위치간 HA (High Availability)기능 구현
§ HA기능 제공을 위해 서버파트 Unit 과 스위치파트 Unit 에 상태 모니터링 모듈 구현
§ 서버파트 Unit 에 KeepSFU (스위치상태 모니터링) 모듈 구현
§ 스위치파트 Unit 에 KeepAEU (서버상태 모니터링) 모듈 구현
그림 35 HA 제공을 위한 서버와 스위치 간 상태 모니터링
§ KeepSFU 모듈과 KeepAEU 모듈은 ICMP 패킷(ping) 명령을 사용하여 서버 /스위치의 상태를 모니터링
§ KeepSFU 모듈은 KeepAEU 모듈에 ICMP 패킷 송신 후 응답 대기
§ KeepAEU 모듈은 KeepSFU 모듈에 ICMP 패킷 송신 후 응답 대기
§ KeepSUF/KeepAEU 모듈에서 응답이 수신되지 않으면 장애가 발생했다고 판단하고 장애가 발생한 서버 나 스위치를 재부팅 하여 장애 복구를 수행
§ 다음 조건을 통해 서버와 스위치간 장애 감시 수행
ICMP 장애 감시 주기 3초
서버 장애 판단 조건 180초 동안 ICMP 응답이 없는 경우 스위치 장애 판단 조건 75초 동안 ICMP 응답이 없는 경우
표 9 KeepSFU/KeepAEU 모듈에서 서버/스위치 장애판단 조건
¡ 서버와 스위치간 HA (High Availability)기능 구현을 통한 기대효과
§ HA 기능은 안정적인 서비스 제공을 원하는 클라우드 사업자/운영자의 핵심 요구사항 반영
§ 통합 플랫폼을 기반 미들박스 서비스 제공 중 서버나 스위치에서 장애 발생 시 HA기능을 통해 다운타임을 최소화 함
§ 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 SPOF
¡ 서버와 스위치 통합 플랫폼 성능 측정 구성 및 결과
§ 성능측정 목표: 네트워크 기능 모듈의 독립적인 flow 개수와 플로 클래스 변 경 성능 측정
§ 성능측정 구성
그림 36 성능측정을 위한 망 구성
DUT Spec
CPU: INTEL Xeon E5-2430 6 Cores x 2ea Memory: 64GB
NIC: Intel 82599 10G 4port 계측기 STC (Spirent Test Center)
표 10 성능측정을 위한 환경 설정
§ 성능측정 결과
테스트 항목 2차년(2015년)도 목표 테스트 결과
flow 처리 개수 4096 16000 (목표수준 4배 달성)
flow 클래스 변경 2000개/초 2400개/초 (목표수준 120% 달성) 표 11 서버 스위치 통합 플랫폼의 성능측정 결과
2. 서비스 컨트롤러 구현 및 테스트
가. 미들박스를 위한 서비스 컨트롤러 구현 (1) 2대 이상의 미들박스 설정 기능 구현
¡ 서비스 컨트롤러의 미들박스의 서비스 설정 기능
§ 미들박스의 네트워크기능 서비스 VM의 관리는 미들박스 내의 Agent에서 KVM을 기반으로 관리
§ 서비스 컨트롤러는 미들박스 내의 Agent와 연동하여 미들박스의 네트워크 기능서비스를 관리
§ 위의 기능을 위해 REST API 기반의 Open API 사용
¡ 서비스 컨트롤러의 미들박스의 네트워크 설정 기능
§ 서비스 컨트롤러는 SDN 컨트롤러와 연동하여 미들박스 내의 트래픽 입출력 제어 및 네트워크 설정 관리
§ 위의 기능을 위해 OpenFlow 기반의 프로토콜 사용
¡ 서비스 컨트롤러의 모니터링 통계 수집
§ 미들박스의 리소스 및 네트워크 모니터링과 통계 정보 수집
§ 위의 기능을 위해 REST API 기반의 Open API 및 SNMP 프로토콜 사용
¡ 상세 설계서 작성
§ 서비스 컨트롤러 아키텍처
§ 서비스 컨트롤러 블록 다이어그램
§ 서비스 컨트롤러 기능 목록
(2) 서비스 컨트롤러 시제품 구현 및 단일 미들박스 연동
¡ 서비스 컨트롤러 시제품 구성
§ 서비스 컨트롤러
§ SDN 컨트롤러
§ UI 서버
§ Database
¡ 서비스 컨트롤러 구성
§ Apache Tomcat과 Spring 프레임워크 기반의 웹 어플리케이션
§ 웹 어플리케이션은 장비 관리, 서비스 관리, 모니터링 관리, 알람 관리, 데이 터베이스 관리 모듈들로 구성
§ 컨트롤러 기능 목록 - 미들박스 관리
- 네트워크기능 서비스 관리 - 모니터링 및 통계 관리 - 알람 관리
번호 대구분 소구분 내용
1 미들박스 관리
미들박스 리소스의 가용상태 관리
모니터링 및 통계 관 리, 알람 관리 기능을 이용
2
네트워크기능 서비스 관리
네트워크기능 서비스 VM의
라이프사이클 관리 미들박스 내의 Agent 를 이용하며, REST API 기반의 Open API 사용
3 네트워크기능 서비스 VM의
설정 관리
4 네트워크기능 서비스의 설정
및 라이프사이클 관리 5
모니터링 및 통계 관리
미들박스의 리소스 및 네트워 크 모니터링 관리
미들박스 내의 Agent 를 이용하며, REST API와 SNMP 사용 6 네트워크 기능 서비스 VM의
리소스 모니터링 관리
7 네트워크기능 서비스의 정보
및 통계 관리 8
알람 관리
미들박스 리소스(CPU, RAM,
Disk) 상태에 따른 알람 관리 미들박스 내의 Agent 를 이용하며, REST API 기반의 Open API 사용
9 네트워크기능 서비스 VM의
리소스 상태에 따른 알람 관리
10 네트워크기능 서비스 기능에
따른 알람 관리
¡ SDN 컨트롤러 구성
§ SDN 컨트롤러는 트래픽 관리, 리소스 관리용 모듈들로 구성
§ 미들박스 장비와의 연동을 위해 OpenFlow 프로토콜 사용
§ 서비스 컨트롤러와의 연동을 위해 REST API 사용
¡ UI 서버 구성
§ Apache 서버 기반의 어플리케이션
§ 서비스 컨트롤러와 UI 서버의 기능정보를 공유 및 저장하기 위해 사용
§ MySQL 사용
¡ 서비스 UI 화면 구성
§ 서비스 관리화면
- 서비스 추가, 수정, 삭제 및 관련정보 조회
§ 미들박스 장비 및 서비스의 리소스 모니터링 화면
나. 미들박스 트래픽 및 서비스 설정 기능 테스트
(1) 2대 이상의 미들박스 연동 테스트를 위한 에뮬레이션 환경 구축
¡ 2개 이상의 미들박스 관리기능 테스트
§ 2개 이상의 미들박스와 네트워크 기능서비스 관리기능을 테스트하기 위한 실제 미들박스 이용한 환경 구축
¡ 다수 개의 미들박스 관리기능과 테스트
§ 다수 개의 미들박스와 네트워크 기능서비스 관리기능을 테스트하기 위해 에 뮬레이터를 이용한 환경 구축
(2) 2대 이상의 미들박스 환경에서 OpenFlow를 이용한 트래픽 및 서비스 설정 기 능 테스트
¡ 네트워크 기능서비스 VM 및 네트워크 기능서비스의 설정 및 제어기능 테스 트
§ 네트워크 기능 서비스 VM의 설정 및 생성/삭제 테스트
§ 네트워크 기능 서비스의 설정 및 생성/삭제 테스트
¡ 서비스 관리 및 네트워크 기능서비스 (Load Balancer) 테스트
§ LB (Load Balancer) 서비스에 대한 서비스 컨트롤러 연동 테스트
¡ SDN 컨트롤러를 이용하여 OpenFlow 프로토콜을 통해 미들박스의 트래픽 조회/제어 테스트
¡
미들박스의 각 포트별 Tx/Rx 모니터링 및 플로우룰 설정 테스트그림 37. 미들박스 OS 빌트인 이벤트 (1차년도 성과)
3. 고성능 미들박스 OS 확장 기능 설계 및 구현
가. 미들박스 OS 유저 정의 이벤트 지원 (1) 추진 내역
¡ 미들박스 OS 유저 정의 이벤트 구현 완료
§ 본 과제 1차년도에서는 네트워크 미들박스에서 자주 사용되는 L2-L4 수준 네트워크 이벤트를 분석한 결과를 토대로 미들박스 OS의 기본 빌트인 이벤 트를 디자인하고 다음과 같이 결정함.
§ 2차년도에서는 미들박스 OS에 ‘유저 정의 이벤트’기능을 추가하여, 빌트 인 이벤트 외에 각 애플리케이션들이 자신이 필요한 이벤트들을 직접 정의 할 수 있도록 지원하는 것을 목표로 함.
§ 2차년도에서 유저 정의 이벤트 기능을 지원하기 위해서 다음과 같이 미들박 스 OS 유저 정의 이벤트 구현을 진행함.
1. 유저 정의 이벤트 정의 기능
▷ 빌트인 이벤트에 사용자 정의 필터를 추가하여 새로운 유저 정의 이벤 트를 만들 수 있도록 디자인 및 구현을 진행함.
2. 유저 정의 이벤트 등록 기능
▷ 새로 추가된 새로운 유저 정의 이벤트를 미들박스에 등록할 수 있도록 디자인 및 구현을 진행함.
3. 유저 정의 이벤트 등록 해제 기능
▷ 등록된 유저 정의 이벤트를 상황에 따라 등록 해제 할 수 있도록 디자 인 및 구현을 진행함.
§ 미들박스 OS는 유저정의 이벤트의 활용을 위하여 다음과 같은 확장기능을 제공함
1. 유저 정의 이벤트 상속 기능
▷ TCP 리스닝 소켓(부모 소켓)에 등록 된 ‘유저 정의 이벤트 ’ 의 경 우 새로운 커넥션에 대해 TCP 소켓(자식 소켓)이 새로 생성될 때 자연스 럽게 상속되어 사용 가능함.
2. 미들박스 기능 수행 중 각각의 TCP 플로우에 대하여 유저 정의 이벤트 동적 등록 및 등록 취소 기능
▷ 네트워크 이벤트를 관찰 중에 TCP 플로우에 대한 이벤트 등록/해제가 필요한 경우 동적으로 수행 가능하도록 구현 완료함.
3. 유저 정의 이벤트를 기반으로 하여 또 다른 유저 정의 이벤트를 정의할 수 있는 확장성
▷ 유저 정의 이벤트의 경우 [빌트인 이벤트 + 유저 정의 필터]로 정의될 수도 있지만, [유저 정의 이벤트 + 유저 정의 필터]로 정의 될 수도 있다.
즉, 사용자의 필요에 따라 빌트인 이벤트에서 시작해서 계층적으로 이벤 트를 정의하는 것이 가능함. (예 - [TCP 패킷 도착 이벤트] -> [TCP ACK 패킷 도착 이벤트] -> [Advertised window size = 0 인 TCP ACK 패킷 도 착 이벤트] 순서로 정의 및 사용 가능함.)
그림 39. 유저 정의 이벤트 포함 미들박스 OS 이벤트 시스템 구조
§ 각각의 TCP 플로우마다 서로 다른 이벤트를 등록할 수 있기에 이에 대한 플로우의 수가 수 백만 개 이상이 되면 이벤트에 대한 데이터를 저장하는 데에만 많은 양의 메모리가 필요로 하게 된다. 이 데이터를 효율적으로 중 복 제거하여 높은 성능과 확장성 및 유연성을 동시에 지원할 수 있도록 하 였다.
그림 40. 수백만 플로우가 동시에 존재하는 경우 위와 같이 각 플로우 별로 이벤트 및 핸들러를 등록한다면 매우 큰 메모리 오버헤드 (8GB for 50M flows, 10 handlers/socket) 가 발생하며
그림 41. 본 과제의 연구 성과 중 하나로, invocation forest 개념에 의한 이벤트 시스템의 성능 최적화를 꾀하였다. 이 알고리즘을 사용할 경우, 동일한 이벤트 집합을 등록한 플로우들의 경우 해당 invocation forest 구조체를 공유하며, 개별 플로우에 대한 이벤트 등록/제거가 있을 경우 분기하여 새로운 invocation forest 구조체를 생성하게 된다. 이를 통해, 대부분의 플로우가 동일한
이벤트를 공유하는 상황에서 성능 최적화가 가능하다.
그림 42. 등록된 이벤트 수 대비 전송 성능 그래프. 본 과제에서 개발된 효율적인 invocation forest 공유 알고리즘의 사용을 통해 등록된 이벤트가 증가하더라도 미들박스 OS (mOS)의 성능은 거의
동일하게 유지되어 성능 최적화를 달성한 것을 알 수 있다.
¡ 미들박스 OS 유저 정의 이벤트 API 디자인 및 기능 정의
§ 추진 내용: 미들박스 OS 애플리케이션의 편의를 고려하여 유저 정의 이벤트 를 쉽게 정의, 등록 및 등록해제 할 수 있도록 간단하지만 효율적인 API를 디자인 함
§ 유저 정의 이벤트 관련 API의 경우 별첨된 산출물 (미들박스 OS 확장 기능 - 유저 정의 이벤트 기능 및 API 설계서) 로 제출함.
¡ 미들박스 OS 유저 정의 이벤트 구현작업
§ 추진 내용: 높은 부하 상황에서 유저 정의 이벤트의 동적인 사용이 애플리 케이션 개발의 편의성을 제공하는 동시에 높은 성능을 달성할 수 있도록 세 부 디자인을 설계하고 구현함
§ 자체 점검 사항: 자체 테스트를 통해 성능 수준 및 기능에 대한 확인 작업 진행
나. 매니코어 기반의 가속 하드웨어 지원 (1) 추진 내역
¡ 매니코어 기반 하드웨어를 활용한 고성능 패킷 프로세싱
§ 매니코어 기반 하드웨어를 활용하여 고성능 패킷 프로세싱의 가능성을 타진 하는 연구
§ 대표적인 네트워크 미들박스 어플리케이션인 네트워크 침입탐지 시스템 (Network Intrusion Detection System, NIDS)를 대상으로 연구를 진행하였다.
§ 매니코어 시스템으로는 Tilera社의 TILE-Gx72를 사용하였으며 TILE-Gx72에 는 총 72개의 코어가 내장되어 있다. 또한, TILE-Gx72에는 패킷들을 72개의 코어에 균등하게 분배해주는 역할을 하는 패킷 I/O 엔진인 mPIPE가 포함되 어 있으며 mPIPE는 프로그래밍이 가능하다.
[개발 내역 상세 설명]
¡ Host-side CPU로의 플로우 오프로딩 (Flow offloading) 알고리즘
§ 모든 flow 는 기본적으로 매니코어 시스템에서 처리된다.
§ 각 코어에 해당하는 패킷 queue의 length (q) 를 기준으로 dynamic하게 플 로우 오프로딩 실시 여부를 판단하며 이는 mPIPE에서 결정한다..
§ Threshold 는 총 2 개 이다. (T1, T2)
§ 우선, q가 T1을 초과할 경우 새로 들어오는 flow 들 중 일부를 매니코어 시 스템이 아닌 host CPU 쪽으로 오프로딩한다. 오프로딩을 통해 q가 줄어들기 를 기대한다. 만약 q 가 줄어들어 T1보다 작아진다면 다시 모든 flow 를 매 니코어 시스템에서 처리한다.
§ 하지만, q 가 작아지지 않고 T2 보다 커질 경우, 새롭게 들어오는 flow 들 의 전부를 host CPU 쪽으로 오프로딩한다.
§ 오프로딩하는 최소 단위는 패킷이 아닌 플로우여야 한다. 왜냐하면 NIDS는 재조립된 (reassembled) 패킷의 payload 에 대해서 탐지를 실시해야 하기 때 문이다. 만약에 패킷 단위로 오프로딩을 실시한다면 재조립된 payload 에 대한 탐지를 실시할 수 없다.
그림 43. 연차별 미들박스 OS 멀티 서비스 지원 기능 비교
다. 멀티 서비스 chaining 기능 지원 (1) 추진 내역
¡ 단일 미들박스 내 멀티 서비스 chaining 기능 설계 및 구현
§ 본 과제 1차년도 목표로 단일 호스트 내에서 독립적인 미들박스 서비스가 동시에 동작하도록 구현함. 1차년도의 미들박스 OS 결과물이 단일 미들박스 내에서 다수의 서비스들이 서로 독립적으로 동작하는 경우만을 지원했다면, 2차년도에는 단일 미들박스 내 서로 다른 서비스들이 조합되어 하나의 복합 적인 서비스로서 동작하는 경우를 지원하며 지원하는 것이 가능해야 함.
§ 이는 NFV (network function virtualization) 개념 지원을 위해 필수적인 기능 으로, 트래픽 종류에 따라 원하는 chain을 통해 플로우가 전송되도록 트래 픽 steering 기능을 지원해야 함.
§ 또한 부가적으로, NFV 개념 지원을 위해 가상 머신의 가상 네트워크 포트 와 물리 네트워크 포트 사이의 통신이 가능한 가상 스위치에 기반한 구현이 요구된다고 판단함.
§ 이에 따라 2차년도에서는 트래픽이 여러 개의 미들박스 서비스를 순차적으 로 지나가도록 하는 기능 구현을 목표로 하였으며, 이를 위해 1차적으로 현 재 존재하는 오픈 소스 가상 스위치들의 성능/기능 평가를 수행함.
그림 44. 멀티 서비스 지원을 위한 오픈소스 가상 스위치간 성능/기능 비교
그림 45. OVS with netdev-DPDK 및 DPDK
§ 분석 결과에 기반하여 OVS with netdev-DPDK를 서비스 간 포워딩을 담당 하는 스위치로 결정하고 OVS + 미들박스 OS 구현을 진행함. 이를 위해 미 들박스 OS에서 기존에 지원했던 native DPDK (= 물리 포트) 외에도 DPDK Ring (= 가상 포트) 까지 지원하도록 구현을 확장하여 진행함.
그림 46. OVS + 미들박스 OS의 코어 수 증가에 따른 scalability 성능 평가
그림 47. 2차년도 미들박스 OS 멀티 서비스 및 네트워크 컨트롤러 연동 개념도
§ 기능 완성 이후 성능 분석을 수행하였으며, core 수가 증가함에 따라 scalable 하게 성능이 증가하는 것을 확인함.
§ 원격 소프트웨어 정의 네트워크 (SDN) 컨트롤러에 의해 포워딩 규칙 설정 가능하도록 완성하고 테스트를 완료함. 미들박스 네트워킹 스택 기반 애플 리케이션 다수가 존재할 때 가상 스위치를 통해 단일 호스트 내에서 멀티 서비스 chaining 기능이 가능하도록 구현 완성함. (향후 아토리서치에서 개 발 중인 컨트롤러와의 연동 진행 논의 예정)
라. 멀티 서비스 L3, L4 기능 검증 설계, 구현 및 확장 (1) 추진 내역
¡ 설정 정보 기반 서비스 검증 어플리케이션 구현
§ mOS 어플리케이션 및 mOS 체이닝이 구성되었을 때, 해당 어플리케이션의 정상 동작 및 체이닝에 의한 모순점 검색 등 기능 검증을 위한 서비스 검증 어플리케이션 구현 작업을 진행
§ 추진 성과 : 어플리케이션 및 체이닝 동작의 설정파일을 받아와 패킷 헤더 기준으로 도달 가능성을 검증하는 어플리케이션 구현 완료
¡ 설정 정보 및 라우팅 정보를 모아오는 Daemon-Server 모델 구현
§ 추진 내용: 다른 미들박스에서 구현된 어플리케이션 및 미들박스 간 구성된 서비스 체이닝의 정보를 모아오기 위한 Daemon 및 이를 받아 검증을 수행 하는 Server 모델 구현
§ 추진 성과 : 다른 미들박스에서 구성된 정보를 받아와 검증을 수행하는 모 델 구현 완료
그림 48. 검증 어플리케이션 구조도
[개발 내역 상세 설명]
mOS 어플리케이션은 mOS에서 패킷을 받은 후 패킷을 처리하고 이후 다시 mOS로 패킷을 내려주게 된다. mOS는 이를 체이닝 규칙에 의해 다른 어플리 케이션으로 넘겨주게 된다. 이 때, 각 어플리케이션 간 논리의 충돌이 없는
검증 어플리케이션 내에서 재구성하여 검증을 수행한다.
검증 어플리케이션은 Header Space Analysis를 기반으로 검증을 수행하며, 결 과로써 도달가능한 헤더, 헤더가 지나온 경로 정보를 얻게 된다.
또한, 다른 미들박스 간 서비스 검증을 위해 Daemon-Server 모델을 구현하 여, 이 정보를 받아오게 된다. 이 때, Daemon은 미들박스 쪽에 위치, Server 는 중앙서버에 위치하게 된다. Daemon-Server 간 통신은 TCP를 사용하고, XML을 사용하여 정보를 주고받는다.
마. 미들박스 OS 에코 시스템 (사용자 커뮤니티) 형성을 위한 사전 작업 진행 (1) 추진 내역
¡ 본 과제 3차년도 이후부터는 미들박스 OS의 오픈소스화 및 에코 시스템 형 성을 목표로 함. 2차년도 과제 목표에는 포함되어 있지 않았으나, 보다 효율 적인 과제 진행을 위해 미리 사전 작업을 수행하여 미들박스 OS 플랫폼의 사용자 커뮤니티 형성을 도모함.
¡ 사업단 내에서 개최한 NFV 과제 워크샵에서 미들박스 OS 사용을 활성화하 기 위한 미들박스 OS 튜토리얼 프로그램 진행 (2015년 6월 4일)
§ 참석자: 총 28명 (파이오링크, 카이스트, 아토리서치, SK텔레콤, 에스피테크, STA컨설팅)
§ 미들박스 OS 튜토리얼 프로그램 진행 내용
- 미들박스 OS에 대한 개요 및 프로그래밍 방법 설명 - 미들박스 OS Hands-on 튜토리얼 진행
- 미들박스 OS 소스코드 (release 0.2a) 및 프로그래밍 매뉴얼 공유 - 미들박스 OS 동작 데모 시연
¡ KAIST 캠퍼스 네트워크 망에서 미들박스 OS 테스트베드 구축 (2015년 11월 27일 ~ 현재)
§ KAIST 본원 김병호 IT 융합센터 8층에서 사용할 수 있는 테스트베드 구축
§ 사용자 데스크탑의 네트워크 설정에서 기본 게이트웨이 설정 변경을 통해 쉽게 이용 가능함.
§ 현재 미들박스 OS 기반의 Network Address Translation (NAT) 미들박스 기 능 안정성 테스트 진행 중 (약 40일간, 총 참여 인원 약 10명)
¡ 미들박스 OS 소스코드 알파 테스트 및 코드 공유 (2016년 1월 5일)
§ 2차년도 진행 결과 고도화 및 기능 안정화를 수행한 미들박스 OS의 최신 버전 (release 0.3) 소스코드를 파이오링크와 공유
§ 협업을 통해 미들박스 OS 기반 네트워크 기능 개발 현재 진행 중
§ 프로그래밍 가이드 개선 및 온라인화을 통한 개발자 접근성 개선 및 최신 버전 상시 유지 도모
- 온라인 프로그래밍 가이드: http://www.ndsl.kaist.edu/mos_gui
4. OpenStack 적용
가. Openstack의 Neutron(Network)과 미들박스 + Controller와의 적합성 분석 설계
그림 49. OpenFlow 설계를 통한 설계 진행
나. Openstack 테스트베드 SW 및 아키텍처 설계
¡ Controller 기능 및 개발 구성
§ Controller 는 Resource Mgmt, Auth, Fault Mgmt, Resource Performance Mgmt, Subscribe Mgmt, Capacity Mgmt, Catalogue Mgmt 로 구성
§ API를 통해 전달되는 Action 수행
- OpenStack의 Identity를 기반으로 권한 식별
- OpenStack Rest API를 통하여 VM, Network, Storage관리 - 모니터링을 위해 VM과 모니터링 Application 고유 ID 매핑
§ 성숙도 높은 Framework인 Spring과 myBatis기반
§ 요청에 의해 생성되는 Thread를 WAS로 관리 - WAS로 Thread를 관리 함으로써 안정성 극대화 - Multi thread를 통한 처리로 성능 극대화
다. Openstack Network의 성능 개선을 위한 DPDK 및 SR-IOV 적용 및 테스트.
¡ OpenStack Architecture
그림 50. OpenStack + DPDK(AOVS) Architecture
§ 가상 시스템에서 효율적으로 PCIe 장치를 공유할 수 있도록 하며 고유 성능 과 유사한 I/O 성능이 발휘되도록 하드웨어에서 구현
§ 물리적 기능이라는 단일 I/O 리소스는 여러 가상 시스템에서 공유
§ 성능 향상 및 대기 시간 감소 - 가상 시스템 환경에서 하드웨어에 Direct Access
¡ SR-IOV TB적용 테스트
§ NIC 카드에 Mapping 하는 방법 옵션 적용
§ BIOS에서 설정 환경 작업 및 Kernel 지원 옵션 추가
§ 지원하는 H/W NIC 모델 확인
§ SR-IOV configuration 작업을 통한 VM생성 테스트
5. 표준기술 확보
가. 통신 사업자주도의 다양한 표준화 단체 미팅 참여 및 미들박스 표준화 추진 (1) ITU-T SG11 표준화 추진
¡ 추진 내용: ITU-T SG 11 Q4에 개발중인 white box에 대한 Use case 및 요구사항 제안 및 반영
(2) ITU-T SG13 표준화 추진
¡ 추진 내용: SG 13 Q14에 개발중인 white box 에 대한 Definition 및 시나리오 제안 및 반영
(3) ETSI 표준화 추진
¡ 추진 내용: NFV & SDN 기술 기반 LTE Network의 E2E Orchestration 방 안 및 구조를 ETSI 문서인 GS NFV-EVE 005에 반영함
Ⅱ. 기술개발결과
※ 기술개발 결과물(논문, 지식재산권, 기술수준, 성능, 품질, 시제품, 기술문서 등)에 대해 기재 - 논문의 경우 “국내 및 국외 발표” 자료로 분류해서 상세히 작성
- 특허의 경우 “국내 출원 및 등록”, “국외 출원 및 등록”으로 분류해서 상세히 작성 - 기술 수준, 성능, 품질은 관련 입증 자료 또는 시험성적서 등 첨부
- 시제품 설계 및 제작은 관련 기밀 유출이 되지 않는 범위 내에서 설계도 또는 제작 도면 등도 첨부
※ 고용 창출 효과 기재(신규 고용 실적 등)
□ 구체적인 연구 성과
구분
특허 논문발표 표준화 기술
이전 기술료
출원 (국내/국외)
등록 (국내/국외)
계 (국내/국외)
SCI(E) (국내/국외)
비SCI (국내/국외)
계 (국내/국외)
기고/반영/
채택 건수 백만원
계획(건) 15/2 7/0 22/2 0/2 0/4 0/6 2/0/2
실적(건) 12(2)/(1) 5/0 17(2)/(1) 0/1(1) 1/9 1/10 4/4/4
※( )는 진행중
1. 지식재산권
1)종류
2)해외 출원
국내/ 국외
출원 (등록)국
출원 (등록)
구분
출원 (등록)
번호
발명명칭 출원(등록) 기관
출원 (등록)일
01 1 국내 대한민국 출원 10-2015-1053 06
스위치에 네트워크를 설정하는 방법, 이를 사용한 스위치 및 컴퓨터
판독 가능한 기록매체
파이오링크 2015-07-24
01 1 국내 대한민국 출원 10-2015-0185 396
네트워크 장치에서 단편화 패킷을 처리하는 방법 및
장치
파이오링크 2015-12-23
01 1 국내 대한민국 출원 10-2015-0185 716
고속의 SSL 처리를 위해서 레코드 길이를 제어하는 방법 및 장치
파이오링크 2015-12-24
01 1 국내 대한민국 출원 10-2015-0190
148 SDN컨트롤러의 패킷
처리방법 파이오링크 2015-12-30 01 1 국내 대한민국 출원 10-2015-0190
158
암호화된 트래픽을
모니터링하는 방법 및 장치 파이오링크 2015-12-30
01 1 국내 대한민국 등록 10-1522927
동적 필터링을 이용하여 단말의 통신을 제어하기
위한 방법, 장치 및 컴퓨터 판독 가능한 기록
매체
파이오링크 2015-05-19
01 1 국내 대한민국 등록 10-1542737
웹 페이지에 대한 학습 완료 상태 및 웹 페이지의
종류에 따라 웹 페이지를 처리하여 웹 페이지에
대한 위변조 판단을 지원하기 위한 방법, 통신
장치 및 컴퓨터 판독 가능한 기록 매체
파이오링크 2015-08-03
01 1 국내 대한민국 등록 10-1542739
정규 표현식의 매칭을 처리하기 위한 방법, 장치
및 컴퓨터 판독 가능한 기록 매체
파이오링크 2015-08-03
01 1 국내 대한민국 등록 10-1554477
과부하에 대응하여 패킷을 처리하기 위한 방법, 장치,
시스템 및 판독 가능한 기록 매체
파이오링크 2015-09-15
01 1 국내 대한민국 등록 등록결정
소프트웨어 정의 네트워크에서의 QoS 보장을 위한 대역폭 제어
방법 및 장치
아토리서치 특허결정
01 1 국내 대한민국 출원 10-2015-0046 640
다중 패턴 매칭 알고리즘
및 이를 이용한 처리장치 KAIST 2015-04-02
순번 수행기관 제 목 주 요 내 용 1 파이오링크 ADC VNF 설정 방법 ADC VNF의 L4 부하분산 설정 2 파이오링크 IPS_IDS VNF 설정 IPS/IDS VNF를 위한 OF-Rule 설정
3 KAIST 미들박스 OS 확장 기능 - 유저 정의 이벤트 기능 및 API 설계서
유저 정의 이벤트에 대한 설명 및 개요, 미들박스 OS 확장 기능 (유저 정의 이벤트 기능) 목록 및 관련 API 명세, 및 미들박스 OS 전체 API 함수 리스트 (2차년도 업데이트 버전)
4 아토리서치 상세 설계서 서비스 컨트롤러 상세 설계서
01 1 국내 대한민국 출원 10-2015-0055 682
복수의 코어를 구비한 침입 탐지장치 및 그를
이용한 패킷 처리방법
KAIST 2015-04-21
01 1 국내 대한민국 출원 10-2015-0059 023
공격 패턴이 존재하지 않는 공격 시그니처 기반의 침입 탐지 방법
및 그를 위한 장치
KAIST 2015-04-27
01 1 국내 대한민국 출원 10-2016-0004 879
네트워크 터널을 구성하는 제 터널 장비
및 제2터널 장비, 및 이에 의한 검증 패킷
전달 방법
KAIST 2016-01-14
01 1 국내 대한민국 출원 10-2016-0009 595
네트워크 기능 가상화
장치의 긴급 복구 방법 아토리서치 2016-01-26
01 1 국내 대한민국 출원 10-2016-0009 613
가상 네트워크 기능을 이용하여 사물 인터넷 서비스를 제공하는 방법
및 장치
아토리서치 2016-01-26
01 1 국내 대한민국 출원 10-2016-0009 644
네트워크 순간 폭주를 제어하는 방법, 장치 및
컴퓨터 프로그램
아토리서치 2016-01-26
1) 종류 : 01-특허, 02-실용신안, 03-디자인, 04-상표, 99-기타
2) 해외출원 여부 : 1-국내 출원, 2-PCT 해외 출원, 3-일반 해외 출원
2. 기술문서
3. 논문실적 [SCI 논문]
번호 수행기관 기고처 논문명 게재일 비고
1 KAIST Journal of Lightwave Technology
A Wireless Link-Up Augmentation Design
for Disaster-Resilient Optical Networks 2015.09.01
[비SCI 논문]
번호 수행기관 기고처 논문명 게제일
1 KAIST RAID 2015 Haetae: Scaling the Performance of Network Intrusion Detection with Many-core Processors 2 KAIST USENIX ATC 2015 FloSIS: A Highly Scalable Network Flow Capture
System for Fast Retrieval and Storage Efficiency 3 KAIST ACM APSys 2015 Why Is HTTP Adaptive Streaming So Hard?
4 KAIST ACM SIGCOMM
2015 (poster session) A Case for a Stateful Middlebox Networking Stack 5 KAIST IEEE/ACM ANCS
2015 Scaling the Performance of Network Intrusion Detection with Many-core Processors 6 KAIST ACM MobiSys 2015 Practicalizing Delay-Tolerant Mobile Apps with
Cedos
7 KAIST ACM Eurosys 2015 Guaranteeing Deadlines for Inter-Datacenter Transfers
8 KAIST USENIX NSDI 2015 Information-Agnostic Flow Scheduling for Commodity Data Center
9 SK텔레콤
Next Generation Mobile Live Streaming Technology Trend and Use Cases
대한전자공학회
10 SK텔레콤
Low delayed Mobile Live Streaming method and its implementation
Multimedia amp; Expo Workshops (ICMEW), 2015 IEEE International Conference on
기고 서명
표준
기구명 표준명 회의명 기고자 1)구분
기고/채 택/반영 일시
기고/채 택/반영 번호 Proposed architecture for
middle-box management in draft recommendation
Y.SDN-arch
ITU-T Y.SDN-a
rch ITU-T 이종민 기고/
반영 2015-04-24 TD 310
Proposed requirements for middle-box management in
draft recommendation Y.SDN-REQ
ITU-T Y.SDN-
REQ ITU-T 이종민 기고/
반영 2015-04-24 TD 309
Proposed signalling requirements and scenarios
for orchestration of white-box management in
draft supplement Q.Supplement-SDN
ITU-T
Q.Suppl ement-S
DN ITU-T 이종민 기고/
반영 2015-04-24 TD 765
"NFVEVE(15)000010 Content for Annex B.10 - POC#23"
(Input to GS NFV-EVE 005 ETSI
GS NFV-EV
E 005 ETSI 이동기 기고/
반영 2015-09-30 NFV-EVE 005
4. 표준화 실적
1) 구분 : 기고, 채택, 반영
Ⅲ. 결론 및 차년도 계획
※ 기술개발 수행에 대한 종합적인 결론 제시
※ 차년도 수행을 위한 건의 사항 또는 변경 사항이 있으면 기재
1. 종합적인 결론
가. 주요 미들박스 서비스 구현 1단계 완료
¡ IDS 최적화 - 완료
§ Throughput 20Gbps에서 40Gbps 로 상용수준 성능 개선
§ Suricata 기반 멀티코어 최적화 구현
¡ IPS 기능 구현
§ Throughput 성능 39.4 Gbps 달성
§ DPDK 라이브러리를 사용한 고성능 IPS 개발
¡ LB 기능 구현
§ L4 SLB 성능 50만 CPS 달성
§ Throughput 성능 25Gbps 달성
§ 컨트롤러 연동을 위한 REST API 구현
§ 표준 준수/상호운용성/신뢰성 검증을 위한 HP OpenNFV 프로그램 참여
¡ mOS 활용 미들박스 서비스 구현 검토 및 차기년도 적용 방안 검토
§ mOS 기반 NAT 및 Proxy 서버 구현
§ 차기년도 IDS 고도화 및 SSL reverse proxy 개발 적용 방안 검토
나. 서버와 스위치 통합 플랫폼 구현 완료
¡ 통합 플랫폼 HW 구현
§ 고성능의 인텔 서버 플랫폼과 Broadcom Switch Chihp을 채용하여 구현
§ 서버와 스위치간 Multi 10G Interface로 높은 Bandwidth 보장
¡ 통합 플랫폼 SW 구현
§ Multi-core CPU 수에 Scalable하게 증가하는 트래픽 처리 성능 보장을 위한 CPU별 트래픽 분배 기능 구현
§ 서비스 다운타임을 최소화하기 위한 서버와 스위치간 HA기능 구현