ettrends banner

심재찬 (Shim J.C.) 네트워크SW플랫폼연구실 책임연구원
문성 (Moon S.) 네트워크SW플랫폼연구실 책임연구원
류호용 (Ryu H.Y.) 네트워크SW플랫폼연구실 실장

Ⅰ. 서론

오늘날 네트워크 분야는 나날이 진보와 혁신을 거듭해 오고 있다. 또한, 우리의 실생활 속에서 일어나는 수많은 일이 네트워크를 배제하고는 설명할 수 없는 실정이다. 그러나 국내 네트워크 산업의 현실은 그리 낙관적이지 않다.

그 이유를 살펴보면, 첫째, 네트워크의 물리적 연결 방법 및 데이터 전송 속도 증대만을 추구한 나머지 하드웨어의 양적 성장만을 꾀하고, 두뇌에 해당하는 소프트웨어의 발전은 도외시된 측면이 적지 않다. 이는 특히 국내 네트워크 산업의 성장을 저해하는 중요한 요인으로 대두되고 있다.

둘째, 네트워크 장비 시장은 크게 통신사업자 시장과 기업시장으로 구분되며, 통신사업자의 코어망 장비와 기업망 장비는 외산 장비가 과점하고 있으며, 그나마 통신사업자 액세스 망 장비 분야에서 국산 장비가 우위를 점하고 있는 형편이다. 하지만 국내기업들은 글로벌 경기 침체에 따른 수출 부진, 해외 대형 벤더의 시장 잠식 확대, 이에 따른 국내 마케팅 치중, 적은 매출액, R&D 투자역량 부족, 신제품 출시 부진 등의 악순환 속에 글로벌 기업과의 경쟁에서 날로 입지를 잃어가는 상황이다.

마지막으로 오픈 아키텍처 기반 상용(Commercial Off-The Shelf: COTS) 하드웨어의 보편화 및 IP기반 네트워크 융합 추세에 따라 하드웨어보다 소프트웨어 비중이 높아지는 상황에서, 국내에는 네트워킹 소프트웨어 전문인력이 절대 부족하며, 이는 국내기업이 네트워킹 소프트웨어의 핵심인 네트워크 운영체제(Network Operating System: NOS)의 독자 개발을 어렵게 하고, 결국 전용 네트워크 운영체제를 확보한 Cisco, Juniper, Huawei 등 글로벌 기업과의 국내외 경쟁력을 갈수록 상실하고 있다.

결론적으로 네트워크 운영체제의 개발, 수정, 신규 프로토콜 표준이나 서비스 요구사항의 변화에 따른 기능 보완 또는 추가 구현 등에 많은 인적, 물적투자와 노력이 지속적으로 필요한 상황에서 국내기업들은 NOS를 자체 개발할 엄두를 못하는 실정이다.

본고에서는 국내외 통신산업의 변화, 네트워크 운영체제 개발동향, 네트워크 운영체제의 요구사항 및 최근 각광받고 있는 개방형 네트워크 장비 개발동향을 소개한다. 그리고 국내외 네트워크 장비 시장에서 경쟁력을 확보하려는 방안으로 추진하고 있는 한국형 네트워크 운영체제(openN2OS)의 개발현황을 살펴본다.

Ⅱ. 통신산업 패러다임의 변화

1. 네트워킹 패러다임의 변화

네트워크 구조의 진화 측면에서 살펴보면, 먼저 백본 네트워크의 붕괴 및 circuit기반의 E1/T1 네트워크에서 IP기반 네트워크로의 이동, 그리고 분리되어 운용하던 이동망과 유선망의 융합, 회선기반 음성 네트워크에서 VoIP로의 진화 등이 있다. 또한, IP/Cable/Fiber와 Phone/Video 네트워크들의 융합과 carrier grade ethernet 등장, 서버와 게이트웨이의 분리 및 resource pooling, 마지막으로 계층적 네트워크에서 수평적 네트워크로의 전환 등을 들 수 있다.

2. 통신분야 요구사항의 변화

Carrier급 네트워크 장비를 포함하여 네트워크 장비 시장에서 다양한 요구사항의 변화가 감지되고 있다. 먼저 높은 서비스 가용성을 보장하기 위해서 5nines (99.999%), 심지어 7nines(99.99999%)에 이르는 고가용성(high availability)의 요구이다[1]. 이러한 고가용성 제공을 위해 fail-over capability, 서비스 interruption을 최소화한 하드웨어 및 소프트웨어 업그레이드 기능, 장애 발생 시 빠른 복구를 위한 제어기능 등을 요구한다.

고성능(high performance)을 지원하기 위해서는 동시에 많은 수의 transaction과 session 처리능력 및 비용 대비 효과가 큰 확장성이 지원되어야 한다. 유용성(serviceability) 측면에서는 시스템 debugging/tracing, kernel/application image dump 등에 대한 원격 유지보수가 가능하여야 하며, 유효기간(long life time) 측면에서는 하드웨어 및 소프트웨어 컴포넌트에 대한 life cycle을 기존 5년에서 10년 이상으로 확대할 것을 요구하고 있다. 또한, 모듈화(modularity)를 제공하기 위해 네트워크 컴포넌트(하드웨어 및 소프트웨어)는 다음과 같은 상호 호환성(interoperability)을 제공해야 한다. Service application 소프트웨어는 서로 다른 하드웨어 플랫폼상에서 동작 가능해야 한다(application SW portability). 그리고 application과 platform을 관리하는 management 소프트웨어는 다양한 하드웨어와 소프트웨어의 조합에서 동작할 수 있어야 한다(management SW portability). 그리고 소프트웨어 모듈(컴포넌트)은 서로 다른 공급사의 모듈로 교체 가능해야 하며(software interchangeability), 마지막으로 하드웨어 모듈 역시 서로 다른 공급사의 모듈로 교체 가능해야 한다 (hardware interchangeability)[2].

3. 네트워크 장비 시장의 변화

국내 네트워크 장비 시장에서 통신사업자의 코어망용 장비와 기업망 장비는 외산이 절대적 우위를 점하고 있으며, 통신사업자 액세스망용 장비 분야에서 그나마 국산이 우위를 점하고 있는 형편이다. 하지만 국내기업들은 국내 마케팅 치중, 수출 부진, 국내시장 정체, 적은 매출액, R&D 투자역량 부족, 신제품 출시 부진 등의 악순환 속에 글로벌 기업과의 시장 선점 경쟁에서 날로 입지를 잃어가는 상황이다.

또한, 오픈 아키텍처 기반 상용 하드웨어의 보편화 및 IP기반 네트워크 융합 추세에 따라 네트워크 장비에도 하드웨어보다 소프트웨어 비중이 높아지는 상황에서, 국내기업은 소프트웨어 전문인력이 절대 부족으로 네트워킹 소프트웨어의 핵심인 네트워크 운영체제(NOS)의 개발이 전무한데, 이는 초기개발, 수정, 신규 프로토콜 표준이나 서비스 요구사항의 변화에 따른 기능의 보완 등에 많은 인적, 물적투자가 지속해서 필요하기 때문이다.

Ⅲ. 네트워크 운영체제 개발동향

1. 네트워크 운영체제의 진화

(그림 1)
네트워크 운영체제 진화 전망

(그림 1) 참조을 보면 현재 운용 중인 대부분의 네트워크 운영체제는 아키텍처나 특성 측면에서 3세대로 구분할 수 있다. 1세대는 monolithic 구조를 가지며, 단순한 메모리 영역에서 이미지가 동작하는 구조로 멀티태스킹 모델을 지원하지만 하나의 프로세스가 전체 시스템 운용을 중단시키는 경우가 발생할 수 있다. 2세대는 제어 평면과 데이터 평면을 완전히 분리하는 구조를 채택함으로써 고속 패킷처리가 가능하고, 제어 평면에서 자원 관리 및 성능 개선이 이루어졌다. 3세대는 안정적인 망 운영에 대한 요구에 따라 확장성과 고가용성 기능이 보완됐으나, 특정 업체만이 해당 NOS를 관리하고 제어할 수 있는 폐쇄적 구조이다. 그리고 차세대 NOS는 다양한 네트워킹 기술과 보안모델을 적용할 수 있는 개방형 구조를 가짐으로써 네트워킹 기술의 새로운 패러다임을 제공하는 기반이 될 것으로 전망된다. 이러한 세대별 네트워크 운영체제의 속성은 <표 1>과 같다[3].

<표 1>
네트워크 운영체제의 세대별 특징

2. 네트워크 운영체제 개발현황

네트워크 운영체제는 크게 상용 NOS와 공개 소프트웨어 NOS로 구분된다. 대표적인 상용 NOS로는 오픈 소스 소프트웨어인 zebra를 기반으로 상용화하여 세계 150여 개 기업에 공급되었으며, 제어 및 데이터 평면의 분리, 확장성 있는 모듈형 아키텍처를 지향하는 IPInfusion사의 ZebOS와 멀티코어 기반 패킷 포워딩 엔진에 특화된 6WIND社의 6WINDGate가 있다. 공개 소프트웨어 NOS로는 기본적인 L3 라우팅 및 멀티캐스팅 기능을 지원하며 최근 사용이 증가하고 있는 eXtensible Open Router Platform(XORP), 그리고 보안장비 기능에 특화되어 대부분의 보안 알고리즘을 지원하는 vYatta 등이 있다[4].

Ⅳ. 네트워크 운영체제 기술 요구사항

NOS는 하드웨어 자원(네트워크 프로세서, 스위칭 칩, CPU, 메모리 등)을 관리해서 네트워킹 응용 프로그램(L2 프로토콜, L3 프로토콜, Multicast 프로토콜, Multi-Protocol Label Switching(MPLS) 프로토콜 등)에게 공통 서비스를 제공하는 소프트웨어로써, 네트워크 장비의 목적에 맞는 패키지 형태로 유연하게 탑재될 수 있어야 한다. 앞에서 살펴본 바와 같이 네트워크 분야의 다양한 변화 속에서 국산 네트워크 장비의 국내외 경쟁력 확보를 위한 최우선 과제는 역시 하드웨어 독립적이며 고가용성을 지원하는 한국형 네트워크 운영체제(이하 open N2OSTM)의 개발이다. 따라서 3세대 NOS가 지향하는 목적과 아키텍처를 수용하면서, low-end에서 high end 장비에 적용할 수 있고, 소프트웨어의 장애에 능동적 대응이 가능하며, 대용량 네트워크 엔트리를 고속으로 처리할 수 있고, 차세대 신기술의 유연한 적용이 가능한 모듈러 기반 네트워크 운영체제 개발이 필요하다. 이러한 네트워크 운영체제는 다음과 같은 6가지의 핵심기능들을 제공해야 한다[5].

1. 고가용성

네트워크 운영체제는 graceful restart 기능을 이용하여 warm standby 형태의 이중화를 제공하는 기존 제품에 대한 경쟁력을 확보하기 위해, 고유의 checkpoint 기능을 활용한 실시간 프로토콜 데이터 이중화 기반의 hot standby 이중화를 제공해야 한다. 또한, fast fault detection을 제공하는 장애관리 메커니즘을 통하여 active system의 장애발생 시 실시간으로 standby system으로 절체(switchover)가 이루어져 5nines(99.999%)의 서비스 연속성을 보장해야 한다.

2. 높은 수준의 모듈화 및 이식성

네트워크 운영체제는 protocol layer, management layer, network service, HW layer에서 손쉬운 확장구조여야 하며, 각 기능 컴포넌트들은 고유의 Inter-Process Communication(IPC) 메커니즘을 통하여 loosely coupled 연결되어 상호 독립적인 프로세스로 동작해야 한다. 따라서 하나의 큰 기능블록으로 모든 네트워킹 서비스를 수행하는 기존 네트워크 운영체제와 달리 L2 switch, L3 router, MPLS, Carrier Ethernet 등 장비의 특성에 따라 필요한 기능들을 선택적으로 이식할 수 있는 높은 수준의 모듈화를 제공해야 하며(high modularity), 특정 네트워크 장비고유의 프로토콜을 개발하더라도 확장성 있는 소프트웨어 구조를 통하여 쉬운 이식이 가능해야 한다(easy portability).

3. 간편한 프로토콜 개발 프레임워크

네트워크 운영체제는 네트워크 응용 프로토콜 개발에 필요한 Command Line Interface(CLI), IPC, event, log, task management, memory management, data structure 등 다양한 시스템 라이브러리들을 제공해야 한다. 그리고 새롭게 개발된 응용 프로토콜이 시스템에 쉽게 이식될 수 있도록 표준화된 절차 및 예제를 제공해야 한다(easy protocol development framework). 이는 개발자가 프로토콜 자체의 기능 구현에만 집중할 수 있어 손쉽게 응용 프로토콜의 개발이 가능하도록 하기 위함이다.

4. 무중단 소프트웨어 업그레이드

네트워크 운영체제는 고유의 이중화 모델을 활용해 서비스 중단 없이 소프트웨어 업그레이드가 가능하도록 해야 한다. 그리고 소프트웨어 업그레이드를 위한 버전관리, 소프트웨어 repository, upgrading CLI 등을 통하여 운용자는 새로운 소프트웨어로 업그레이드 또는 이전 버전으로 다운그레이드 등 소프트웨어에 대한 관리를 서비스의 중단 없이 할 수 있어야 한다.

5. 개방형 시스템 관리 프레임워크

네트워크 운영체제는 CLI 기반의 관리구조를 확장하여 Simple Network Management Protocol(SNMP), eXtensible Markup Language(XML) 등 다양한 프로토콜 기반의 네트워크 장비관리 기능을 제공해야 한다. 또한, HyperText Transfer Protocol(HTTP) 기반의 장비관리 기능을 제공하여 운용자가 인터넷을 통해 쉽게 장비를 운용할 수 있는 인터페이스를 제공해야 한다. 이러한 다양한 운용자 인터페이스는 확장성 있는 command manager 모듈을 통하여 시스템 내부의 명령어로 변환되어 NOS 소프트웨어 기능블록으로 전달되기 때문에 필요에 따라 다양한 방법의 운용자 인터페이스의 추가가 가능해야 한다.

6. 하드웨어 독립적인 추상화 프레임워크

네트워크 운영체제는 pizza box 형태의 소형 장비부터 multi-rack 형태의 대형 장비까지 다양한 형태의 하드웨어 구성을 지원하기 위한 고유의 표준화된 하드웨어 추상화 라이브러리를 제공해야 한다. 이러한 추상화 라이브러리는 COTS 형태의 다양한 switch chip 및 L2-L4를 지원하는 multi-layer chip family를 지원하도록 구성되어야 하며, 하드웨어에 이식할 경우 소프트웨어의 변경 없이 네트워크 운영체제 추상화 라이브러리의 adaptation만으로 손쉽게 이식할 수 있어야 한다.

Ⅴ. 개방형 네트워크 장비 개발동향

1. OCP

2011년 4월 facebook은 자신들이 사용하고 있는 data center에 적용되는 다양한 기술들을 새롭게 디자인해서 효율을 최대로 끌어 올리려는 목적으로 Open Compute Project(OCP) 프로젝트를 시작하였다. OCP에서 고려하는 기술들로는 서버, 랙, 전원장치, 전자장치, 기계장치, 네트워킹, 섀시 등 모든 영역을 포함하고 있다[6].

OCP 산하 네트워킹과 관련된 대표적인 sub-project로는 스위치 하드웨어 사양을 open 디자인해서 그 스위치 위에 사용자가 원하는 NOS를 탑재하려는 목적의 Open Network Install Environment(ONIE), Switch Abstraction Interface(SAI) 및 Open Network Linux (ONL) 프로젝트가 있으며, (그림 2)는 OCP 산하 sub-project의 연관성을 보여준다.

(그림 2)
네트워크 장비 개발을 위한 Hardware-Software 연동 구조[6]

2. ONIE

전통적인 폐쇄 구조의 네트워크 장비 개발에서 탈피해서 완벽하게 하드웨어와 소프트웨어를 분리시켜 보자는 노력으로 출발한 프로젝트가 ONIE이다. ONIE는 부트 로더와 NOS 사이에 존재하는 영역으로 오픈 네트워크 스위치 위에 운영자가 원하는 종류의 NOS를 손쉽게 찾아서 설치하는 것이 목적이며, USB 및 네트워크 등의 매체를 이용해서 NOS의 설치가 가능하다.

3. SAI

네트워크 스위치 장치에는 스위칭을 전담하는 ASIC이 탑재되어 있다. 이들 ASIC의 대표적인 공급사로는 Broadcom, Mellanox, Intel 등이 있고, 그 ASIC에 따라서 제어하는 방식이 천차만별이다. 이와 같은 ASIC 의존적인 기능을 일관된 방식으로 제어해 보고자 출발한 프로젝트가 SAI이다.

현재 SAI는 Broadcom과 Mellanox ASIC을 탑재한 하드웨어 스위치 위에 Dell과 Microsoft의 NOS를 연동하여 일부 스위칭 기능들에 대한 시연을 마친 상태이다.

4. ONL

전통적으로 네트워크 장비 제조 업체들은 자신들만의 소프트웨어 개발 스택을 활용하며, 이는 철저히 감춰져 있다. NOS는 kernel부터 시작하여 다양한 응용프로그램들을 포함하게 되는데, 이들 소프트웨어는 탑재되는 하드웨어의 사양에 의존적이다.

ONL에서는 오픈 네트워크 하드웨어 사양들을 지원하는 공통된 소프트웨어 스택을 만들고자 하는 목적에서 출발하였다. 즉, 동일한 소프트웨어 이미지를 다양한 서버 하드웨어에 탑재하듯이, ONL 이미지를 다양한 스위치 하드웨어에 탑재하고자 하는 것이 목적이다. ONL은 Bare-metal 스위치 위에 자신들의 NOS를 탑재하고자 하는 경우에 매우 매력적인 오픈 프로젝트이다.

Ⅵ. 고가용 네트워크 운영체제(openN2OSTM)

openN2OS는 (그림 3)과 같이 시스템 운용관리를 위한 management framework, 네트워킹 프로토콜들로 구성된 protocol domain, 다양한 네트워킹 서비스 제공을 위한 network service framework, 시스템의 가용도를 보장하기 위한 high availability framework 그리고 상위 컴포넌트들이 공통으로 사용하는 라이브러리를 제공하는 system library로 구성되며, 이들은 Linux상에서 동작한다[7].

(그림 3)
openN2OS 기능 구조

1. openN2OS Archtecture

가. System Library

시스템 라이브러리는 NOS 개발자들을 위한 개발 프레임워크를 제공하기 위해서 프로세스들의 동작과정을 기록하기 위한 로그(log) 기능, 이벤트 발생 및 처리를 위한 이벤트(event) 기능, 프로세스 간의 정보교환을 위한 IPC 기능, 메모리 설정/해제/누수 관리를 위한 메모리 제어기능, 다양한 하드웨어 플랫폼이나 OS를 지원하기 위한 Hardware Abstraction Layer(HAL) 및 Platform Abstraction Layer(PAL) 기능 등을 포함한다. 이 외에도 다양한 data structure, timer, 문자열 처리기능 등을 제공함으로써 소프트웨어 개발자들이 효율적으로 소프트웨어를 개발하고 관리할 수 있도록 한다.

나. High Availability Framework

네트워크 서비스 프레임워크, 프로토콜 도메인 및 매니지먼트 프레임워크 계층에 탑재되는 컴포넌트들에 대한 고가용성을 제어하기 위한 프레임워크이다. 고가용성 프레임워크는 크게 availability 매니저, checkpoint 매니저 그리고 upgrade 매니저로 구성되어 있다. Availability 매니저는 각 소프트웨어들에 대한 상태(health monitoring) 및 장애감시(fault de-tection)를 통하여 시스템 전체의 이중화를 위한 active/standby 임무 할당을 결정하는 역할을 수행하고, checkpoint 매니저는 active와 standby 노드 간 각 컴포넌트들이 유지하는 관리정보를 동기화하는 역할을 수행하며, upgrade 매니저는 서비스 연속성을 제공하면서 동적으로 소프트웨어를 업그레이드하는 역할을 담당한다.

다. Network Service Framework 및 Protocol Domain

openN2OS는 Layer 2 기능으로 Virtual LAN(VLAN), xSpanning Tree Protocol(STP), Link Aggregation Control Protocol(LACP) 등의 프로토콜, Layer 3 기능으로 Routing Information Protocol(RIP), Open Shortest Path First(OSPF), Intermediate System to Intermediate System(ISIS), Border Gateway Protocol(BGP) 프로토콜, Multicast 기능으로 Protocol Independent Multicast(PIM), Internet Group Management Protocol(IGMP) 등의 프로토콜, 그리고 MPLS 기능으로 Label Distribution Protocol(LDP), Resource Reser-vation Protocol-Traffic Engineering(RSVP-TE) 프로토콜들을 제공한다. 또한, 다수의 프로토콜이 동작함에 따라 발생하는 정보관리의 중복성을 최소화하고, 공통기능을 모듈화한 네트워크 서비스 framework 구조를 가진다. PIF manager는 시스템의 port 및 interface 정보에 대한 제어 및 관리를 주관하고, policy manager는 L3 서비스 제어를 위한 각종 정책에 대한 제어 및 관리를 주관하며, MRIB manager는 PIM-SM 등의 multicast routing 프로토콜이 생성하는 multicast route 정보에 대한 제어 및 관리를 주관하고, RIB manager는 RIP/OSPF/ISIS/BGP 등의 L3 routing 프로토콜이 생성하는 route 정보에 대한 제어 및 관리를 주관하며, Label Information Base(LIB) manager는 (CR-)LDP/RSVP-TE 등의 MPLS 프로토콜이 생성하는 label 정보에 대한 제어 및 관리를 주관하는 역할을 각각 수행한다.

라. Management Framework

Management framework은 각 블록의 장애 및 상태를 관리하는 process manager 기능, 시스템 운용/관리/유지보수 기능을 담당하는 OAM 기능 및 시스템 내외부 명령어를 처리하는 command manager 기능으로 구성된다. Process manager는 시스템을 구성하는 각각의 소프트웨어 컴포넌트를 차례로 구동하고, 운영 중에 컴포넌트의 상태를 모니터링하여 비정상 시 재시동 또는 종료시키는 기능을 담당한다. OAM은 시스템의 동작 상태에 대해 운영자가 숙지해야 하는 정보를 알려주는 기능을 수행한다. Command manager 기능은 운용자 및 외부 운영관리 시스템으로부터 명령어를 수신하고, 내부 각 소프트웨어 컴포넌트에 명령어를 전달하는 기능을 담당한다.

2. openN2OS 특징

openN2OS는 Ⅳ장에서 설명한 네트워크 운영체제의 기술 요구사항을 만족하며, Ⅲ장에서 소개한 기존의 상용 및 공개 소프트웨어 네트워크 운영체제와 비교하여 다음과 같은 특징을 가진다.

· (Scalable)기능 맞춤형 시스템 개발을 위한 모듈화 기반 네트워크 운영체제 구조

· (Available)Nonstop Networking Service 제공을 위한 고가용성 기능 제공

· (Fast)Event 기반의 고속통신 및 동적 Software Upgrade 지원

· (Extensible)Software Defined Network(SDN) /Network Function Virtualization(NFV) 등 새로운 networking service의 유연한 수용이 가능한 구조

3. openN2OS와 Bare-metal switch

openN2OS는 일반 서버 및 가상 머신에 설치해서 마치 일반 네트워크 장비처럼 사용하는 것이 가능하며, ONIE를 이용해서 개방형 네트워크 장치에 openN2OS를 설치하여 네트워크 장비로 운영할 수 있다.

대표적인 개방형 네트워크 장치인 Bare-metal 스위치는 NOS가 탑재되지 않은 상태의 하드웨어 스위치로써 운영자는 여기에 원하는 네트워크 운영체제를 탑재할 수 있는데, 이때 openN2OS도 설치가 가능하다.

4. DevOps기반 통합개발환경

DevOps란 개발자가 프로그래밍하고, 빌드한 후, 직접 시스템에 배포하여 서비스를 실행하며, 사용자와 끊임없이 교류하면서 서비스를 개선해 나가는 일련의 과정이자 문화이다[8].

앞에서 소개한 openN2OS 개발에 DevOps 방법론을 적용하기 위해 통합개발환경 (그림 4)을 구축하여 운영하고 있다. 통합개발환경은 개발된 소프트웨어의 검증을 효율적이며 효과적으로 수행하여 소프트웨어의 신뢰성 향상을 지원하는 품질관리 인프라로서, Continuous Integration(CI)서버를 활용하여 소프트웨어 개발 생명주기의 통합시험단계를 자동화함으로써, 통합이 수행될 때마다 정해진 빌드 절차에 따라 통합 빌드를 수행하고, 자동으로 시험이 수행되도록 한다.

(그림 4)
DevOps기반 통합개발환경 구조

통합시험 자동화는 정적시험도구를 이용하여 코드 라인 수 측정, 코드 중복도 검사, 코딩규칙 위배항목 검사, 동적검사, 배포를 지속해서 수행하고, 에러를 발견하면 즉시 개발자들에게 피드백함으로써 조기에 적절히 조치할 수 있도록 하고, 자동 시험기와 연동하여 개발한 소프트웨어 기능시험을 자동으로 수행하며, 이 결과 역시 개발자들에게 즉각 피드백함으로써 소프트웨어의 품질과 생산성을 향상시킨다. 또한, SVN기반 소스코드 형상 관리도구와 연동하여 소스코드에 대한 형상 관리할 수 있으며, 항상 최신 소스코드로 검증할 수 있고, 이슈관리 시스템을 CI서버에 연동하여 정적시험의 결과를 자동으로 이슈관리 시스템에 등록하고, 정해진 워크플로우에 따른 결함관리 기능도 제공한다.

(그림 5)
자동 시험기(openN2OS Test Master) GUI

DevOps 방법론의 특징인 자동화는 개발에 투입되는 리소스 즉, 투입인력을 줄이는 효과를 얻게 된다. 이러한 효과는 DevOps기반 개발 프로세스 8단계 중에서 테스트 단계에서 큰 효과를 발휘한다. (그림 5)의 자동 시험기(N2OS Test Master)는 네트워크 운영체제 개발 시 다양한 시험 환경에서 개발 소프트웨어에 대한 단위 기능시험뿐만 아니라 연동 및 성능시험을 자동으로 수행하고, 그 결과를 보고하는 도구이다. 즉, 시험 시나리오에 따라 특정 시간이나 일정 시간간격으로 시험을 자동 수행하며, 시험이 완료되면 시험결과를 저장하고 관리함으로써 개발자 또는 시험자가 시험결과를 쉽게 확인할 수 있다.

5. openN2OS 커뮤니티

다양한 네트워크 장비를 개발하는 개발자들이 openN2OS를 활용할 수 있도록 포털사이트(http://openn2os.etri.re.kr)를 구축하여 소스코드를 공개 및 기술지원을 제공하는데, 여기에는 openN2OS에 대한 소개, 주요 개발 로드맵, release 계획 등에 대한 정보제공뿐 아니라, 단순 사용자를 위한 설치 가이드 및 프로토콜들에 대한 시험 가이드를 제공한다. 또한, openN2OS를 기반으로 확장 개발해서 네트워크 장비에 적용하려는 개발자들을 위해서는 별도의 개발자 가이드 문서를 제공한다. 그리고 openN2OS 사용자들의 궁금증, 요구사항, 버그 보고 등을 자유롭게 게시할 수 있는 open 커뮤니티 공간도 제공하며, 심각한 버그 및 중요한 사용자 요구사항들은 즉시 처리하여 사용자들이 가능한 한 빨리 활용할 수 있도록 지원하고 있다.

Ⅶ. 결론

본고에서는 현재 우리가 직면하고 있는 국내 통신산업의 문제와 통신산업 패러다임의 변화, 그리고 네트워크 운영체제의 개발동향 및 네트워크 운영체제의 기술 요구사항들을 살펴보았다. 또한, 최근에 활발한 활동을 보이는 네트워크 운영체제 open source project에 대해 소개했다. 그리고 이러한 다양한 변화 속에서 국내 통신산업의 생태계를 회복하고, 국내외 시장에서 국내 네트워크 장비 기업의 가격 및 기술 경쟁력을 확보하고자 정부의 지원 속에 개발이 진행 중인 고가용성을 지원하는 한국형 네트워크 운영체제인 openN2OS의 개발현황을 살펴보았다.

openN2OS는 L2/L3/MPLS/Multicast 프로토콜들을 포함하고, 가용성, 확장성, 재사용성 등의 특징을 제공하며, 특히 개발자들이 새로운 요구사항을 쉽게 적용할 수 있는 프레임워크를 제공한다. 그리고 새로운 요구사항, 문제점, 기능보완 등에 대한 빠른 패치와 업그레이드를 제공한다. 또한, Cisco 장비와 동일한 명령어 체계의 제공으로 사용의 편의성을 높였다.

openN2OS를 도입하는 경우 초기 구매비용 및 기술지원 비용이 발생하지 않기 때문에 시스템 개발업체는 시스템 개발 비용을 혁신적으로 절감할 수 있으며, 필요한 기능을 추가하는 경우 품질 고도화를 주도함으로써 자사의 제품 개발 목적에 적합한 목표를 설정하고 사업을 추진할 수 있다. 결국 각종 프로토콜 등을 포함한 네트워킹 소프트웨어에 대한 기술확보가 가능하기 때문에 상용 NOS에 대한 의존성을 최소화하여 기업 비즈니스 환경의 빠른 변화에 유연하게 대처할 수 있다.

약어 정리

BGP

Border Gateway Protocol

CI

Continuous Integration

CLI

Command Line Interface

COTS

Commercial Off-The Shelf

HAL

Hardware Abstraction Layer

HTTP

HyperText Transfer Protocol

IGMP

Internet Group Management Protocol

IPC

Inter-Process Communication

ISIS

Intermediate System to Intermediate System

LACP

Link Aggregation Control Protocol

LDP

Label Distribution Protocol

LIB

Label Information Base

MPLS

Multi-Protocol Label Switching

NFV

Network Function Virtualization

NOS

Network Operating System

OCP

Open Compute Project

ONIE

Open Network Install Environment

ONL

Open Network Linux

OSPF

Open Shortest Path First

PAL

Platform Abstraction Layer

PIM

Protocol Independent Multicast

RIP

Routing Information Protocol

RSVP-TE

Resource Reservation Protocol-Traffic Engineering

SAI

Switch Abstraction Interface

SDN

Software Defined Network

SNMP

Simple Network Management Protocol

STP

Spanning Tree Protocol

VLAN

Virtual LAN

XML

eXtensible Markup Language

XORP

eXtensible Open Router Platform

References

[1] J. Gray, D.P. Siewiorek, “High-Availability Computer Systems,” Computer, vol. 24, no. 9, Sep. 1991, pp. 39-48.
[2] The SCOPE Alliance, “Promoting Open Carrier-Grade Platforms,” Position Paper 2.0, 2008.
[3] 류호용, “N2OS 과제 개요 및 비전,” openN2OS 네트워크 운영체제 개발자 설명회, 2014.
[4] 한국전자통신연구원, “네트워크 운영체제 R&BD 성공전략 기획보고서,” 2012.
[5] 한국전자통신연구원, “하드웨어 독립적인 고가용성 지원 네트워크 운영체제,” White Paper, 2014.
[6] Open Compute Project, http://www.opencompute.org/
[7] 한국전자통신연구원, “Non-Stop Active Routing을 지원하는 고가용성 네트워크 운영체제,” 연차보고서, 2014.
[8] 조대협, “개발과 운영의 조화-DevOps #1/2,” http://bcho.tistory.com/815

(그림 1)

f001

네트워크 운영체제 진화 전망

<표 1>

t001

네트워크 운영체제의 세대별 특징

(그림 2)

f002

네트워크 장비 개발을 위한 Hardware-Software 연동 구조<a href="#r006">[6]</a>

(그림 3)

f003

openN2OS 기능 구조

(그림 4)

f004

DevOps기반 통합개발환경 구조

(그림 5)

f005

자동 시험기(openN2OS Test Master) GUI