• 검색 결과가 없습니다.

연차 연구개발 추진 실적

문서에서 R&D연구결과보고서 (페이지 55-118)

(2) 사용자 및 시스템 요구사항 정의 ㅇ 요구사항 분석·정의·관리 체계 구축

§ USE CASE 분석

§ 사용자 요구사항 정의: 고객 식별 및 요구사항 도출

§ 요구사항 분석 및 요소기술 조사

§ 시스템 요구사항 정의

§ 요구사항 검토 및 확인

§ 시스템 요구사항 전달

§ 요구사항 추적성 유지

ㅇ 고객(11개 기관) 및 잠재적 고객(중소 벤더 및 통신사업자)을 위한 사용자 요구사항 도출 및 정의

§ NOX, FloodLight 등 오픈소스 기반 컨트롤러 설치 및 기능·성능 분석을 통해 벤치마 킹한 결과를 요구사항 정의에 활용

§ 스마트인터넷기술 과제협의회 및 SDN 사업협의회를 통한 사용자 요구사항의 지속적인 수렴 진행 중

ㅇ 시스템 개념모델 정의

§ 사용자 응용: 컨트롤러 코어 서브시스템의 제공 기능을 기반으로 사용자나 운용자에게 직접적인서비스를지원하는 서브시스템

§ 컨트롤러 코어: 중앙집중 방식의 SDN 구조에서 개방형 API를 통해 데이타플레인의 구 성과 트래픽의 전달 경로를 제어하는 서브시스템

§ 네트워크 공통응용: 컨트롤러 코어 서브시스템의 제공 기능을 기반으로 공통적인 네트 워킹 기능을 지원하는 서브시스템

§ 가상 인프라 통합관리: SDN 가상인프라에 대한 통합 관리 기능을 담당하는 서브시스템

§ 검증언어 및 검증도구: SDN 응용에 대해 요구된 속성들이 가용한 인프라 특성 및 설 정된 룰들과의 배치여부를 포함한 적합성을 검증하는 서브시스템

(그림 3-1) 시스템 개념모델 ㅇ 사용자 및 시스템 요구사항정의서 Ver. 1.0/1.1 완료

버전 작성일 변경 내용

분류 세부 분류(항목 수) 주요 요구사항

(3) - 컨트롤러 서버간 절체(<1000/<500/<200ms) 유지보수성

ㅇ ETRI 내부 연구사업 결과물 품질향상 표창장 수상(우수 요구사항정의서,‘14.01)

ㅇ 주요 연구 산출물 [기술문서]

§ 캐리어급 서비스인프라를 위한 SDN 핵심기술 개발: 요구사항 정의서 Ver. 1.0/1.1 (~‘13.11)

§ 사업 요구사항 동료검토 결과서 (‘13.11)

나. SDN 컨트롤러 플랫폼 개발

(1) 단일 도메인 SDN 컨트롤러 연구시제품(IRIS) 개발 및 오픈소스화 ㅇ SDN 컨트롤러 기반 플랫폼 요구사항서 완료

§ 사용자 요구사항 정의서 (사용자 요구사항서에 통합됨)

§ 시스템 요구사항 정의서 (시스템 요구사항서에 통합됨) ㅇ SDN 컨트롤러 기반 플랫폼 시스템설계서 완료

§ 시스템 요구사항을 토대로 서브시스템 식별

§ 서브시스템 간 인터페이스 정의 ((그림 3-1), ‘시스템 개념모델’참고)”

ㅇ SDN 컨트롤러 기반 플랫폼 서브시스템 상세설계서 완료

§ 서브시스템의 구체적인 동작방식을 기술

‑ 서브시스템 클래스 다이어그램

‑ 서브시스템 시퀀스 다이어그램

(그림 3-2) SDN 컨트롤러 기반 플랫폼 구조도

(그림 3-3) IRIS Core의 주요 클래스 다이어그램

(그림 3-4) IRIS 플랫폼 시퀀스 다이어그램 (구동 절차) ㅇ 컨트롤러 기반 플랫폼 (IRIS) 구현 및 시험 완료

§ 고성능 I/O 엔진 설계 및 구현

‑ Java NIO 기반 I/O 엔진: Floodlight (Netty) 대비 2.5배의 처리 성능

(그림 3-5) IRIS의 IO 엔진 구조도

‑ 성능 향상 요인

Floodlight IRIS I/O Engine Netty 기반

(낮은 성능/구현 복잡)

NIO 기반

(높은 성능/단순한 구조) 처리 성능 400~500M flows/sec 1000~1100M flows/sec

(그림 3-6) IRIS와 오픈소스 컨트롤러 성능 비교 분석 결과

‑ 성능 비교 환경

항목 세부사항

운영체제 Ubuntu 12.04 LTS (64bit architecture)

CPU Itel Xeon E5-2690 v2 @ 3.00GHz (20 physical cores)

RAM 64G

벤치마크 cbench 기반 벤치마크 쓰레드

IRIS 5 IO threads, 15 Worker threads Floodlight 20 Worker threads

Mul 18 switch handling threads, 1 app thread 호스트(MAC) 100,000 호스트

§ Floodlight과 호환되는 North-bound API

‑ Floodlight 모듈에 대한 이식성 보장을 통해 3rd party 개발자 지원

API 비고

/wm/core/controller/switches/json 모든 스위치 목록 및 정보 /wm/core/switch/{switchid}/aggregate/json 플로우 통계 정보 조회 /wm/core/switch/{switchid}/desc/json 스위치 상세 정보 조회 /wm/core/switch/{switchid}/port/json 스위치 포트 정보 조회 /wm/core/switch/{switchid}/features/json FEATURE_REPLY 조회

§ 개선된 Programming Model

‑ MVC 원칙에 따라 Model (OFModel)과 View (REST API)를 분리

‑ 데이터 모델의 구현과 구축 편의성 증대

‑ IRIS가 제공하는 기본 데이터베이스 (MongoDB)와 연동 편의

‑ REST API 구축용이 (callback 기반)

§ Floodlight UI의 단점을 개선하는 AngularJS 기반의 새로운 UI 구축

‑ 향상된 확장성 (신규 기능 추가 편의성 향상)

‑ 토폴로지 표시 방식 개선 (D3 기반의 자동 토폴로지 렌더링)

/wm/core/switch/{switchid}/flow/json FLOW_STATISTICS_REPLY 조회

/wm/core/health/json 컨트롤러 동작 상태 조회

/wm/core/module/{type}/json 모듈 목록 조회

/wm/core/memory/json 메모리 상태 조회

/wm/core/controller/database 데이터베이스 이름 조회

/wm/core/controller/database/drop/{dbname} 테이블 drop

/wm/core/controller/database/{dbname}/{collection}/insert 데이터 삽입

/wm/core/controller/database/{dbname}/{collection}/upsert 데이터 UPDATE+INSERT /wm/core/controller/database/{dbname}/{collection}/update 데이터 갱신

/wm/core/controller/database/{dbname}/{collection}/delete 데이터 삭제 /wm/core/controller/database/{dbname}/{collection}/retrieve/all 데이터 조회

/wm/core/controller/database/{dbname}/{collection}/retrieve 특정 컬렉션 데이터 조회 /wm/core/controller/database/{dbname}/{collection}/ensureindex 특정 컬렉션에 인덱스 생성 /wm/core/controller/database/{dbname}/{collection}/dropindex 인덱스 제거

/wm/core/controller/database/{dbname}/{collection}/getindex 인덱스 조회

/wm/device/all/json 모든 device 정보 조회

/wm/firewall/module/{op}/json firewall에 동작 지령

/wm/firewall/rules/json (GET) 모든 firewall 규칙 조회

/wm/firewall/rules/json (POST) 신규 firewall 규칙 생성

/wm/firewall/rules/json (DELETE) 기존 firewall 규칙 삭제

/wm/topology/links/json 모든 링크 조회

/wm/topology/switchclusters/json 스위치 클러스터 조회

(그림 3-7) IRIS UI 화면 (main)

(그림 3-8) IRIS UI 화면 (토폴로지)

§ OpenFlow 1.3.2 프로토콜 스택 구현 완료 (당초 계획 1.2)

‑ Python 기반의 OpenFlow 프로토콜 스택 생성기 (xen) 이용

‑ OpenFlow 1.3.2를 지원하도록 컨트롤러 기존 모듈 이식

ㅇ 오픈소스 공개 (http://openiris.etri.re.kr)

§ IRIS 플랫폼 확산 및 활성화를 위한 오픈소스 플랫폼 OpenIRIS 공개 (GitHub)

‑ JavaDoc, User Guide, Q&A Forum 등 다양한 형태의 자료 제공 ㅇ 주요 연구 산출물

[논문]

‑ 이병준 외, “IRIS: The OpenFlow-based Recursive SDN Controller”, ICACT 2014.

(Outstanding Paper Award)

‑ 서동희, 이병준, “Building Firewall over the Software-Defined Network Controller, ICACT 2014.

[프로그램]

‑ IRIS 컨트롤러 기반 플랫폼 시제품(IRIS) [설계서]

‑ IRIS 컨트롤러 서브시스템 기능설계서 v1.0

‑ IRIS 컨트롤러 서브시스템 상세설계서 v1.0

‑ IRIS State Manager module 상세설계서 v1.0

‑ IRIS Storagemanager module 상세설계서 v1.0

‑ IRIS Forwarding module 상세설계서 v1.0

‑ IRIS Device Manager module 상세설계서 v1.0

‑ IRIS Firewall module 상세설계서 v1.0

(2) OpenFlow 1.3.2 프로토콜 처리 기술 개발

ㅇ Python 기반의 OpenFlow 프로토콜 생성기 (xen) 개발

§ 설정 파일을 입력하여 Java 클래스/인터페이스 파일 자동 생성

§ 자동 생성된 라이브러리를 IRIS에서 정적 링크하여 사용 ㅇ 신규 OpenFlow 프로토콜 스택에 대한 적응성 향상

§ 수작업 프로그래밍 없이도 새로운 규격을 빠르게 지원 가능 ㅇ OpenFlow 1.0.1/1.3.2 호환성 계층 도입

§ 하나의 소스 코드로 OpenFlow 1.0.1/1.3.2를 동시에 지원하는 모듈 개발 가능 ㅇ 주요 연구 산출물

[프로그램]

‑ OpenFlowJ-IRIS 프로토콜 스택 자동 생성기 (xen)

(그림 3-9) 자동 생성되는 OpenFlow 스택 파일 및 호환성 계층 관계도

(그림 3-10) 자동 생성된 OFFlowMod 클래스 파일 소스 코드 (부분)

(3) 고확장성/고가용성 지원 SDN 분산 컨트롤러 구조 설계 및 핵심 모듈 개발

ㅇ 캐리어 급 네트워크에 요구되는 확장성/가용성을 담보하는 분산 컨트롤러 구조 설계

§ 분산 컨트롤러를 위한 장애 탐지 방안 정의

§ 분산 컨트롤러를 위한 부하 분산 구조 정의

§ 분산 컨트롤러를 위한 접속 관리 방안 정의

ㅇ 캐리어 급 네트워크에 요구되는 확장성/가용성을 담보하는 분산 컨트롤러 클러스터용 미들웨어 구조 설계 및 분산 DB 연동 지원 모듈 개발

§ 오픈플로 스위치와 HA 컨트롤러를 사용한 미들웨어 구조 설계 - 오픈플로 스위치를 사용한 부하 분산 구조

- 소프트웨어 기반 미들웨어가 갖는 성능 한계 극복 - SDN 장비와의 연결 관리 구조 정의

- 수평적 규모 확장성을 담보하는 컨트롤러 클러스터 확장 방안 (서버를 증설하면 클러스터 성능이 선형적으로 개선되도록 구성)

§ 분산 데이터베이스 연동 모듈 개발 (Storage Manager)

- 분산 컨트롤러 클러스터를 구성하는 서버 간 상태 공유를 처리하는 분산 데이터베이스와의 연동 모듈 개발

- IRIS 컨트롤러와의 연동 시험 완료 ㅇ 주요 연구 산출물

[특허]

‑ 이병준, 신지수 외, “OpenFlow 스위치를 사용한 서버 연결 방법”, (국내/국제),‘13.11 출원접수

‑ 신지수, 이병준 외, “SDN 기반 서비스 장애 복구 및 방법 및 시스템”, (국내/국제),‘13.11 출원접수

‑ 박세형, 이병준 외, “SDN 스위치에서 효율적인 플로우 테이블 관리 기법 및 장치”

(국내/국제),‘13.11 출원접수

(그림 3-11) 분산 컨트롤러 구조도

(그림 3-12) OpenFlow 스위치 기반의 HiSA 미들웨어 구성도

(4) Legacy 스위치용 SDN 에이전트 개발

ㅇ OpenFlow Agent 기능 요구사항 정의서 완료

§ OpenFlow Switch Specification 1.0 분석 완료

§ OF-Config 1.1 분석 완료

ㅇ OpenFlow Agent 프로토콜 모듈 개발

§ E6100 플랫폼에 OVS (Open vSwitch 2.0.0) 포팅

§ CPU : P2020, OS : Linux 2.6.35 환경

§ E6100 플랫폼

- 48포트 10GE 인터페이스 제공

- Layer 2 기능 지원 – VLAN, Bridge, LACP, STP/MSTP/RSTP/PVST 등

- IPv4 라우팅 및 멀티케스팅 지원 – RIP, ISIS, OSPF, BGP, IGMP, PIM-SM/SSM - IPv6 라우팅 및 멀티케스팅 지원 – RIPng, ISIS, OSPFv3, BGP4+, MLD, PIM-SM/SSM - CPU : P2020, Main Memory : 2GBytes, OS : Linux 2.6.35

(그림 3-13) E6100 플랫폼 ㅇ OpenFlow Agent Data Plane 모듈 개발

§ E6100 스위칭 칩셋을 이용한 Data Plane 모듈 개발

§ OpenFlow용 Hardware Flow entry group 생성

§ Controller와 연동하여 Hardware Flow Entry 생성/삭제 기능 구현

(그림 3-14) OF Agent 정합 구조

(5) 컨트롤러 성과물 시험검증 ㅇ ETRI Q-MARK / TTA 시험 검증

대분류 중분류 목표 시험 ID 시험명

SDN 컨트롤러

통합제어가능 SDN

도메인 수 1

IR-CN-01 토폴로지 조회

IR-CN-02 노드 추가/제거시 토폴로지 동기화 조회

IR-CN-03 방화벽 응용을 통한 트래픽 제어

초당처리

플로우/컨트롤러 3M/초 IR-CN-04 cbench 프로그램을 통한 플로우 처리율 확인 제어가능 스위치

수/컨트롤러 100 IR-CN-05 cbench 프로그램을 통한 서비스 가능 최대 스위치 수 확인

연동가능 분산

컨트롤러 수 1 IR-CN-06 IR-CN-01~IR-CN-05으로 대체 (1개의 컨트롤러를 이용한 네트워크 제어 시험)

§ 트리 토폴로지, 선형 토폴로지, cbench 벤치마크 환경에서 시험

§ Firewall을 비롯한 모든 핵심/응용 모듈에 대해 시험 완료

(그림 3-15) Firewall 규칙을 사용한 패킷 전송 차단 시험 ㅇ IRIS-OpenFlow 스위치 연동 시험

§ Mininet/OVS 기반의 SW 스위치 연동시험 (OpenFlow 1.0.1/1.3.2) - 선형(linear), 트리(tree) 토폴로지에 대한 Mininet 기반 시험 완료

§ NEC 스위치 기반의 HW 스위치 연동시험 (OpenFlow 1.0.0)

- 관리(청색)/제어(녹색)/전송(적색)을 위한 3개 네트워크 구성 후 시험 완료

(그림 3-16) NEC 스위치 연동 시험망 구성도

(표 3-6) NEC 스위치 연동 시험용 컨트롤러 및 장비 사양

시스템 사양

IRIS 컨트롤러 Ubuntu Linux 10.04.1 (Intel Xeon 2, 4 core 3Ghz) 단말(host) 1 Ubuntu Linux 10.04.1

단말(host) 2 Ubuntu Linux 10.04.1 nec 스위치 1 NEC PF5248

nec 스위치 2 NEC PF5248 nec 스위치 3 NEC PF5248

§ 시험 항목

- IRIS Firewall 응용 모듈을 통한 네트워크 제어 시험 완료

- IRIS Static Flow Entry Pusher 응용 모듈을 통한 네트워크 제어 시험 완료 - 상기 환경에서 IRIS 연동시 NEC 스위치의 실질 성능 확인:

TCP 전송 성능: 최대 931Mbits/sec (1G port) UDP 전송 성능: 최대 812Mbits/sec (1G port) ㅇ IRIS – E6100 OF 연동 시험

§ 주요 시험항목

- IRIS controller와 connection setup 시험 - Packet-In 메시지에 의한 Flow add 시험 - Idle time 에 의한 Flow remove 시험

(그림 3-17) Idle timeout 5초인 Flow entry 생성 및 5초 후 삭제

ㅇ 주요 연구 산출물

§ 1차년도 R&D 성과물 시험·검증 시험절차서 Ver. 1.0/1.1/1.2/1.3 (‘13.10 ~ ’14.01)

§ 1차년도 R&D 성과물 시험·검증 시험결과서 Ver. 1.0/1.1/1.2 (‘13.12 ~ ’14.02)

§ 1차년도 R&D 성과물 시험·검증 시험결과서 Ver. 1.0/1.1/1.2 (‘13.12 ~ ’14.02)

문서에서 R&D연구결과보고서 (페이지 55-118)

관련 문서