□ First Author : Pohang University of Science and Technology Department of Computer Science Engineering, kkc90@postech.ac.kr

* Corresponding Author : Pohang University of Science and Technology Department of Computer Science Engineering,  donghoson@postech.ac.kr, noraki@postech.ac.kr, gunine@postech.ac.kr jwkhong@postech.ac.kr

** Corresponding Author : Pohang University of Science and Technology Department of IT Convergence Engineering seon054@postech.ac.kr

논문번호：KNOM2016-01-004, Received April 20, 2016; Revised June 3, 2016; Accepted July 5, 2016

논문 16-19-01-02	KNOM Review '16-01 Vol.19 No.01

https://doi.org/10.7840/knom.2016.19.1.

SDN기반의 가상 네트워크상에서

동적인 장애 복구 방법에 대한 연구

고경찬□,손동호*, 현종환*, 이건*, 한윤선**, 홍원기*

A study of dynamic failover for SDN-based virtual networks

KyungChan Ko□, Dongho Son*, Jonghwan Hyun*, Jian Li*, Yoonseon Han**, James Won-Ki* Hong

요   약

가상 네트워크에 대한 장애 복구를 제공하기 위해 네트워크 하이퍼바이저(Network Hypervisor, NH)기반 접근 방식은 점점 더 많은 인기를 얻고 있는데, 이는 이 접근 방식이 물리 네트워크에 대한 세부 정부를 테넌트 컨트롤러(Tenant Controller, TC)에게 너무 많이 노출시키지 않기 때문이다. NH-기반 접근 방식은 Restoration과 Protection [1]로 분류할 수 있다. Restoration방법은 장애 복구에 걸리는 시간이 경로의 스위치 수에 비례하여 증가한다는 단점을 가지는 반면 Protection방법은 네트워크 상태의 동적 변화를 처리할 수 없는 단점이 있다. 이러한 접근들의 단점을 해결하기 위해 두 가지 접근 방법을 결합하여 장애 복구 시간을 줄이면서 동적 유지를 목표로 하는 동적 장애 복구 방법을 제안한다. 제안한 방법의 실현가능성과 성능 검증을 보여주기 위해 기존 open source network hypervisor [2]인 OpenVirteX(OVX) [3]를 개선하여 제안된 장애 복구 방법을 설계 및 구현하였으며 Mininet환경에서 성능을 평가하였다.

Key Words : Software-Defined Networking (SDN), Failover, Virtual Network

ABSTRACT

A Network Hypervisor (NH)-based approach gains more and more popularity, as this approach does not expose too much details of physical network to tenant controllers. NH-based approach can be further categorized into two folds - restoration and protection [1]. Restoration has a drawback that failover time increases proportionally with the number of switches along the path, while protection has a weakness that it cannot deal with dynamic changes of network states. To address the drawbacks of these approaches, we propose a dynamic failover method by properly combining the two approaches that aims to preserve the dynamicity while reducing the failover time. To show the feasibility, we have designed and implemented the proposed failover method by enhancing existing open source network hypervisor, OpenVirteX (OVX), and evaluated its performance in an emulated network environment.

논문 16-19-01-02	KNOM Review '16-01 Vol.19 No.01

https://doi.org/10.22670/knom.2016.19.1.

Ⅰ. 서  론

SDN기반의 가상 네트워크상에서 동적인 장애 복구 방법에 대한 연구

소프트웨어 정의 네트워킹 (Software-Defined Networking, SDN)은 공급 업체 의존성 및 관리 복잡성을 비롯한 현재 네트워크 문제를 해결하는 것을 목표로 하는 새롭게 떠오르는 네트워크 패러다임이다. SDN의 기본 개념은 제어 평면을 데이터 평면으로부터 분리하는 것이다. SDN은 네트워크 민첩성, 중앙 집중식 관리, 프로그래밍 가능한 제어 평면, 개방성 및 공급 업체 중립성과 같은 다양한 기능을 제공한다. 이러한 기능들을 활용하면 서비스 제공자는 값 비싼 공급 업체별 스위치를 저가 제품으로 대체하여 CAPEX를 줄일 수 있으며, 동시에 제어 평면 프로그래밍 기능을 활용하여 OPEX를 줄일 수 있다.

네트워크 가상화 (Network Virtualization, NV)는 네트워크 관리자가 물리 네트워크를 여러 세그먼트로 나누고 각 세그먼트를 가상 네트워크로 분류하여 운영하는 네트워킹 기술이다. 네트워크 가상화는 일반적으로 데이터 센터 네트워크 (Data Center Networks, DCN)에서 1) 가상머신 (Virtual Machine, VM) 간의 네트워크 연결을 제공하기 위해 사용된다. 그리고 2) 동일한 네트워크 인프라 위에 전용 네트워크 서비스를 제공하여 네트워크 사용률을 향상시킨다. 네트워크 가상화를 실현하는 몇 가지 방법이 있는데, 그 중 SDN 지원형 네트워크 가상화 기반 접근 방식은 주소 가상화, 토폴로지 가상화 및 정책 가상화를 비롯한 여러 가지 가상화 기능을 제공하므로 가장 널리 사용된다. 가상화를 제공하는 네트워크 하이퍼바이저는 대표적으로 OpenVirteX, FlowVisor [4], FlowN [5], VeRTIGO [6] 등이 있고, 이것들은 물리 스위치와 테넌트 컨트롤러 사이에 위치한다.

네트워크 가상화의 영역에서 몇 가지 네트워크 관리 문제가 다루어졌으며 그 중 네트워크 장애 복구 문제는 가장 중요한 사안 중 하나로 간주된다. 물리 네트워크에서 링크 장애가 발생하면 물리 링크와 매핑된 가상 링크가 그에 따라 영향을 받는다. 가상 네트워크에서 링크 장애를 해결하는 데는 여러 가지 방법이 있으며 장애 복구 작업이 발생하면 이를 테넌트 컨트롤러 (Tenant Controller, TC) 기반 접근 방식과 NH 기반 접근 방식의 두 가지로 분류한다. 네트워크 장애 복구가 테넌트 컨트롤러에서 완벽하지 않기 때문에 연구 단체들은 TC 기반 접근 방식에 매력을 느끼지 못했다. 이러한 이유 때문에 NH 기반 접근 방식이 최근 인기가 높아지고 있다. 더 나아가 NH 기반 접근 방식을 두 가지로 분류 할 수 있다. 네트워크 하이버바이저가 물리 네트워크 장애 조치에 포함되는지 여부에 따라, Restoration과 Protection [7]. Restoration 방법을 사용하면 네트워크 하이퍼바이저에 의해 모든 물리 네트워크 오류가 보고 및 처리되어야 하므로 물리 네트워크를 동적으로 반영하는 동시에 더 많은 제어 메시지 교환 및 복구 시간을 요구한다. 반대로 Protection 방법은 네트워크 하이퍼바이저로부터 어떠한 도움도 필요로 하지 않고 각 물리 스위치가 사전 구성된 Backup path중 하나를 즉흥적으로 선택하여 물리 네트워크 장애를 해결하므로 Protection 방법은 Restoration 방법에 비해 장애 복구 시간이 적게 든다. 그러나 Protection 방법은 모든 Backup path가 각 물리 스위치에서 사전 구성되므로 실제 네트워크를 동적으로 반영 할 수 없다. 따라서 본 논문에서는 두 가지 방법의 특성을 이용한 혼합 장애 복구 접근법기반의 동적 장애 복구 방법을 제안한다. 우리가 제안하는 방법의 목표는 물리 네트워크의 동적 트래픽 변화를 고려하며 네트워크 하이퍼바이저와 물리 스위치 간의 상호 작용 수를 줄이는 것이다.

본 논문의 나머지 부분은 다음과 같이 구성된다. 차례 2에서는 가상 네트워크의 기존 장애 복구방법에 대한 요약을 제공한다. 차례 3,4에는 제안된 장애 복구 방법의 설계 및 구현을 설명한다. 실험 및 해당 평가 결과는 차례 5에 나와 있다. 마지막으로 차례 6은 논문의 마무리이다.

Ⅱ. 연구 배경 및 관련 연구

2.1. 연구 배경

SDN 기반 장애 복구 방법은 크게 제어 평면이 네트워크 장애 복구에 관여하는지 여부에 따라 Restoration 및 Protection방법으로 나눌 수 있다. 이 연구에서는 일반적인 SDN 네트워크보다는 가상 네트워크 (VN)에 대한 장애 복구 방법에 대한 연구에 중점을 둔다. 가상 네트워크에서 논의가 되어온 세 가지 대표적인 장애 복구 방법이 있으며, 각 방법의 세부 사항은 그림 1에 나와 있다. 세 가지 대표적인 장애 복구 방법의 특징은 다음과 같다.

그림 1 . 가상 네트워크에서 대표적인 장애 복구 방법

Fig. 1. Three failover method in virtual network

KNOM Review '16-01 Vol.19 No.01

1) TC-based Restoration: 첫 번째 장애 복구 방법은 테넌트 컨트롤러 (Tenant Controller, TC)에서 실행되는 Restoration 방식을 기반으로 한다. 이 방법에서 네트워크 하이퍼바이저 (Network Hypervisor, NH)는 물리 네트워크(Physical Network, PN)에서 발생하는 다양한 네트워크 오류 이벤트를 해당되는 가상 네트워크 (Virtual Network, VN) 이벤트로 변환하고 그 이벤트를 각 컨트롤러(Controller)로 보낸다. 그런 다음 각 테넌트 컨트롤러에 내장된 장애 복구를 위한 응용 프로그램이 그에 따라 네트워크 장애를 해결한다. 이 방법의 장점은 테넌트 컨트롤러의 장애 복구 응용 프로그램의 지원으로 쉽게 구현할 수 있으며, 네트워크 하이퍼바이저에 어떠한 수정도 요구하지 않는다는 것이다. 이 방법의 단점은 물리 네트워크의 세부적인 상태가 각 테넌트 컨트롤러에 노출되어 컨트롤러가 물리 네트워크의 상태를 인식하지 않아야 한다는 가상 네트워크의 기본 법칙을 위반한다는 것이다. 게다가 이 방법은 장애가 발생했을 때 복구까지 더 많은 시간을 요구한다. 이것은 각 테넌트 컨트롤러가 장애 복구 중에 많은 수의 제어 메시지 (예 : OpenFlow의 경우 Flow-Mod 메시지)를 생성하기 때문이다.

2) NH-based Restoration: 두 번째 장애 복구 방법은 NH에서 실행되는 Restoration 방법을 기반으로 한다. 이 방법에서는 네트워크 하이퍼바이저가 물리 네트워크에서 각 테넌트 컨트롤러로 어떠한 장애 이벤트도 중계하지 않고, 장애가 발생한 지점을 우회 할 대체 경로를 자동으로 찾는다. 결국에는 최종 경로가 대응하는 물리 스위치 (Physical Switch, PS)에 Flow Rule 형식으로 삽입된다. 이 방법의 장점은 네트워크 하이퍼바이저가 테넌트 컨트롤러를 대신하여 네트워크 장애를 처리하므로 서비스 중단 시간이 단축된다는 것이다. 게다가 이 방법은 첫 번째 방법에 비해 적은 수의 제어 메시지를 생성하고, 또한 물리 네트워크 상태를 반영함으로써 항상 최적의 대체 경로를 찾을 수 있다. 이 방법의 단점 중 하나는 Restoration 방법이 물리 스위치와 네트워크 하이퍼바이저 사이에 추가적인 제어 메시지 교환을 요구하기 때문에 Protection 방법에 비해 장애를 복구하는데 더 오랜 시간이 걸린다는 점이다.

3) NH-based Protection: 세 번째 장애 조치 방법은 네트워크 하이퍼바이저에서 실행되는 Protection 방법을 기반으로 한다. 이 방법에서는 네트워크 하이퍼바이저가 Backup path를 계산하여 미리 각 물리 스위치에 전달한다. 따라서 장애가 발생하면 물리 스위치는 네트워크 하이퍼바이저에서 추가 작업 없이 스스로 패킷을 Backup path로 우회시킬 수 있다. 이 방법의 장점은 제어 메시지를 생성하지 않아 복구 시간과 제어 평면 오버 헤드가 최소화된다는 것이다. 이 방법의 단점은 미리 계산 된 Backup path들은 실시간으로 네트워크 상태를 완벽하게 반영 할 수 없기 때문에, 최적의 Backup path들을 찾는 데 어려움이 있다는 것이다.

세 가지 방법들의 장점과 단점을 고려함으로써, 우리가 제안하는 장애 복구 방법의 세 가지 요구사항을 이끌어냈다. 세 가지 요구사항은 다음과 같다. 첫 번째, 테넌트 컨트롤러는 네트워크 장애에 개입되지 않아야 한다. 두 번째, 장애 복구 방법은 물리 네트워크에서의 네트워크 트래픽 상태를 고려해야 한다. 세 번째, 장애 복구 방법은 네트워크 하이퍼바이저와 물리스위치 사이에서 최소한의 상호작용을 요구한다.

2.2. 관련연구

최근에 SDN 환경에서의 장애 복구와 관련한 많은 연구들이 활발하게 진행되고 있다.

논문 [8]의 저자는 SDN 환경에서의 링크 장애의 장애 복구 방법으로 Restoration 방법을 제안했다. 제안된 방법에서 링크장애가 감지되면 OpenFlow 스위치들이 컨트롤러에게 알린다. 컨트롤러는 새로운 대체경로를 계산하고 설정한다. 장애로부터 영향을 받은 OpenFlow 스위치의 플로우 엔트리들을 삭제하고 새로운 경로 상의 OpenFlow 스위치에 플로우 엔트리들을 추가시킴으로써 장애 복구가 이루어진다.

논문 [9]의 저자는 대규모 데이터 센터 네트워크(DCN)에서의 장애 복구 방법으로 Restoration 방법을 참조한 방법을 제안했다. 대규모 데이터 센터 네트워크에서는 단순한 장애라도 대량의 Flow-Mod 메시지를 유발하고, 이로 인해 장애를 복구하는 시간이 오래 걸리기 때문에 Flow-Mod 메시지를 줄이는 쪽으로 디자인 했다.

논문 [10]의 저자는 광전송망(Optical Transport Network) 환경에서의 Protection 방법을 이용한 장애 복구 방법을 제안했다. 컨트롤러가 Primary path와 Backup path를 미리 계산하고, 이 정보를 OpenFlow 스위치들에게 플로우 테이블의 형태로 제공한다. Primary path상의 링크 장애가 발생하면 Backup path로 패킷이 곧장 전송되며, OpenFlow 스위치와 컨트롤러 사이의 Flow-Mod메시지 개수를 최소화하였다.

이전의 연구들과 달리 본 논문에서는 SDN 기반의 가상 네트워크를 위한 Restoration과 Protection 방법을 융합한 형태의 동적인 장애 복구 방법을 제안한다. 제안한 방법은 현재의 토폴로지를 반영하여 경로를 계산하는 Restoration 방법의 장점과 컨트롤러와 OpenFlow 스위치 사이의 플로우 설정 메시지를 최소화하여 장애 복구 시간을 줄이는 Protection 방법의 장점을 모두 가질 수 있다. 또한, 본 논문에서 제안하는 접근방법은 가상 네트워크 환경에 초점을 맞추었다. 물리 네트워크에서의 링크 장애가 여러 테넌트들과 컨트롤러들이 이용하고 있는 가상 네트워크에 최대한 영향을 미치지 않고 빠르게 장애를 극복하는 점에서도 기존의 연구들과 다른 차이점이다.

Ⅲ. 시스템 디자인

3.1. 장애 복구 방법 시스템 디자인

3.1.1. 가상 네트워크에서 장애 복구 방법 설계

앞서 도출한 세 가지 요구사항에 따라, NH 기반의 Restoration과 NH 기반의 Protection 방법을 융합한 새로운 장애 복구 방법을 제시한다. 제시된 방법의 핵심 아이디어는 보다 괜찮은 시간대(예: 5초)에 backup path를 계산하고, 실제 물리 네트워크에서 장애가 발생한 경우에만 복구를 위한 Flow Rule을 적용한다는 것이다. 하이브리드 방식으로 고려할 수 있는 두 가지 옵션은 다음과 같다.

1) 계산된 Backup path를 즉시 물리 네트워크에 설치: 첫 번째 옵션의 장점은 각 물리 스위치가 네트워크 하이퍼바이저와 별다른 메시지를 주고받지 않아도 모든 Backup path를 알고 있다는 것이다. 그러므로 장애 복구 시간이 최소화된다. 단점은 모든 Backup path를 주기적으로 제어메시지 형태로 물리 스위치에 설치해야 한다는 것이다. 이는 제어 평면에 오버헤드를 가져온다.

2) Postponed installation 방법 사용: 두 번째 옵션은 Backup path 정보를 네트워크 하이퍼바이저에서만 갖고 있다가, 실제 장애가 발생했을 때 각 물리 스위치 단위로 수행된다. 이것의 장점은 네트워크 하이퍼바이저가 주기적으로 계산된 Backup path를 내부적으로만 가지고 있기 때문에, 장애가 발생하지 않으면 제어 메시지도 발생하지 않는다는 것이다. 이는 제어 평면이 받는 오버헤드가 적게 만든다. 그러나 “대부분 시간 동안 장애가 발생하지 않는다.”라는 기본 가정이 있기 때문에, 첫 번째 방법은 거의 모든 시간 동안 Backup path 수정을 위한 제어 메시지를 발생시키므로 지나치게 비효율적인 방법이다. 그러므로 본 논문에서는 가장 적절한 타협점을 찾은 두 번째 방법을 선택하여 가상 네트워크 장애 복구 방법을 제안하고자 한다.

3.1.2. 장애 복구를 위한 세부내용

1) Backup path를 계산하는 알고리즘: 물리 링크에 장애가 발생하면, 해당 물리 링크를 포함하는 가상 링크가 Backup path를 가지고 있는지부터 확인을 한다. Backup path가 없다면 물리 링크가 물리적으로 다시 복구되지 않는 이상 장애를 극복할 방법이 없으므로 컨트롤러에게 복구할 수 없다는 최종 메시지를 보낸다. Backup path가 있다면 현재 Primary path를 가장 우선순위가 높은 Backup path로 대체한다. 이전의 Primary path가 플로우 엔트리들을 가졌었다면 새로운 Primary path로 플로우 엔트리들을 옮긴다.

그림 2. Backup path 계산 알고리즘

Fig. 2. Algorithm for calculating Backup path

알고리즘1은 이 논문에서 제안 된 Backup path를 계산하기 위한 알고리즘의 의사 코드 표현이다. 계산 된 경로에는 Primary path와 Backup path가 포함되며, 각각 정방향 및 역방향 모두에 대해 생성된다. Dijkstra 알고리즘을 사용하여 최단 경로로 생성되는 Primary path는 생성된 가상 링크에서 가장 높은 우선 순위의 경로이다. Backup path 목록은 사전에 경로를 생성함으로써 장애 복구를 수행하기 위해 만들어진 경로들의 모음이다. 만약 Primary path안의 물리 링크에서 장애가 발생한다면, 가상 링크도 틀림없이 끊기게 되므로, 네트워크 하이퍼바이저는 물리 링크의 장애를 처리하기 위한 Backup path를 가져야 한다. 여러 Backup path를 만들 수 있으며 우선 순위를 사용하여 식별된다.

장애 복구를 수행 할 때 제어 메시지의 수를 줄일 수 있는 Backup path를 계산하는 알고리즘을 고안했다. 이렇게 하려면 Primary path와 Backup path 사이의 차이는 최소화되어야 한다. 즉, Primary path와 Backup path 사이의 물리 링크의 차이를 최소화하기 위해서 네트워크 하이퍼바이저는 각각 Primary path에 있는 각 물리 링크 당 Backup path들을 계산해야 한다. 네트워크 하이퍼바이저는 Primary path에서 어떤 물리 링크에서 장애가 발생할 것인지 알 수 없으므로, Primary path에 있는 각 물리 링크가 끊기는 경우를 고려하여 모든 Backup path 집합을 가져야 한다. 제안한 알고리즘은 Primary path에 있는 각 물리 링크에 해당하는 Backup path들을 생성한다. 이러한 방식으로 네트워크 하이퍼바이저는 장애가 발생했을 때 Primary path의 변경을 최소화하는 Backup path를 적용 할 수 있다.

Backup path를 구축하는 핵심 아이디어는 장애가 발생한 물리 링크를 제외하고 Primary path에 있는 다른 물리 링크들을 그대로 사용한다는 것이다. 장애가 발생한 물리 링크를 우회하기 위해서, 이 알고리즘은 장애가 발생한 물리 링크의 양 끝 스위치를 Dijkstra 알고리즘의 새로운 출발지와 도착지로 선정하고, Dijkstra 알고리즘을 실행하여 끊어진 부분에 대한 최단 경로를 얻는다. 구체적으로 이 알고리즘은 오직 끊어진 부분만 커버하는 최단 경로를 얻고, 이것을 Primary path의 나머지 부문과 연결함으로써 Backup path를 만든다. 이러한 과정을 통해서 알고리즘은 Primary path에서 변경을 최소화하는 Backup path를 만든다.

Backup path들의 List은 물리 링크의 ID와 우선 순위를 Key로 사용하고, 해당하는 물리 링크 List를 Value으로 사용하여 TreeMap으로 구현된다. 결과적으로 제어 메시지의 수와 가상 링크의 스위치 변경을 최소화하는 Backup path를 만들 수 있다.

2) Backup path 업데이트: 물리 네트워크의 링크마다 트래픽을 주기적으로 모니터링 한다. 이를 통해 링크마다의 트래픽 양과 대역폭 등의 정보를 수집한다. Backup path의 각각의 링크들을 현재 지나는 트래픽과 Primary path의 트래픽을 더해 Backup path의 각각의 링크들의 대역폭을 초과하는지 확인한다. 초과한다고 판단되면, 적합한 Backup path가 아니기 때문에 우선순위를 낮추어 Backup path를 업데이트 한다.

3.2. 프로토타입(Prototype) 구현

우리는 제안한 장애 복구 방법을 네트워크 하이퍼바이저의 내부 기능의 형태로 구현하였고, 이를 동적 장애 복구 방법이라고 명명하였다. 그림 2는 본 논문에서 제안한 방법을 포함하고 있는 네트워크 하이퍼바이저를 나타낸다. 동적인 장애 복구 방법은 다음과 같은 여섯 가지 컴포넌트들로 구성되어 있다.

1) 경로 계산기(Path Calculator) :  토폴로지가 네트워크 하이퍼바이저 안에 구축이 된 이후, 경로 계산기는 Primary path와 Backup path를 생성해낸다. 이 때, Dijkstra 알고리즘을 기반으로 출발지로부터 목적지까지 가장 짧은 경로를 Primary path로 선정한다. 본 논문에서 제안한 경로 변경을 최소화하는 알고리즘을 기반으로 Backup path를 생성해 낸다. Primary path 상의 링크들에 대해서 그것들에 문제가 생길 경우를 대비하여 각각의 링크에 대한 Backup path를 계산해내며, 경로변경이 최소화되는 순으로 높은 우선순위를 부여한다. Primary path와 Backup path를 생성한 후 경로 저장소에 저장한다.

2) 경로 저장소(Path Storage) : Primary path와 Backup path를 저장하는 역할을 담당한다. Primary path는 가장 높은 우선순위와 함께 저장된다. Backup path는 장애가 발생했을 경우 빠른 복구가 가능한 순서로 우선순위와 함께 저장된다. Primary path 상에서 장애가 발생한 경우, 네트워크 하이퍼바이저는 Backup path 중에 가장 높은 우선순위를 가지는 Backup path를 현재의 Primary path와 교체한다.

3) 저장소 업데이터(Storage Updater) : 경로 저장소 안의 경로들의 우선순위를 변경하는 역할을 한다. 2가지의 업데이트 경우가 있다. 첫 번째 경우, 링크 장애가 감지된 경우 현재의 Primary path를 문제가 생긴 링크에 대한 Backup path 중 가장 높은 우선순위를 가지는 경로로 교체한다. 이렇게 함으로써 링크장애에 대한 장애 복구 이 이루어지며 새로운 Primary path에 대한 Backup path를 경로 계산기가 계산하게 함으로써 경로 저장소를 업데이트 한다. 두 번째 경우, 우선순위 조절기가 기존의 Backup path의 우선순위를 변경하고자 할 때 동작한다.

4) 트래픽 모니터(Traffic Monitor) [11] : 실시간으로 계속 변하는 네트워크 상황을 모니터링 하며 전체 토폴로지의 링크들에 대한 대역폭과 처리량을 측정한다. 트래픽 모니터는 주어진 시간마다 반복적으로 동작하며 트래픽 통계를 트래픽 통계 수집기에 전달한다.

5) 트래픽 통계 수집기(Traffic Statistic Collector) : 트래픽 모니터로부터 전달받은 전체 네트워크 트래픽 통계를 기반으로 링크마다의 트래픽 양과 이용률(utilization)을 계산한다. 수집한 정보를 우선순위 조절기에게 전달한다.

6) 우선순위 조절기(Priority Rearrangement): 현재 Primary path에 대한 Backup path의 우선순위를 조절한다. 각각의 Backup path의 일부 링크들은 물리 네트워크의 다른 테넌트들에 의해 이미 사용되고 있을 수 있다. 장애 복구 상황에서는 Primary path를 지나는 모든 트래픽이 Backup path를 지나게 되는데, 이때 Backup path의 일부 링크들이 다른 테넌트들에 의해 이미 사용되고 있다면 그 링크들에는 트래픽이 과다하게 몰리게 된다. 그렇기 때문에 주기적으로 트래픽 합을 측정하고, 대역폭이상으로 트래픽이 몰릴 것으로 예상되는 경우에는 해당 Backup path의 우선순위를 감소시킨다. 그 결과를 저장소 업데이터에게 전달함으로써 경로 저장소를 새로 업데이트한다.

여섯 가지 컴포넌트들 중에서 경로 계산기와 경로 저장소는 기존의 네트워크 하이퍼바이저 내부에 이미 구현되어 있는 컴포넌트들이지만, 우리가 제안하는 새로운 알고리즘과 시스템을 적용하기 위해 기존 컴포넌트들을 일부 수정할 필요가 있다. 기존의 경로 계산기는 Dijkstra 알고리즘 기반으로 Primary path와 Backup path들을 생성했지만, 시스템을 수정함으로써 Primary Path는 Dijkstra 알고리즘 기반, Backup path는 우리가 제안한 알고리즘 기반으로 생성된다. 기존의 경로 저장소는 단순히 우선순위와 함께 Backup path가 나열되어 저장되는 방식이다. 하지만 Primary path를 구성하는 링크 중 어떤 링크가 끊길지 미리 예측할 수 없기 때문에, 우리는 각 링크마다 끊겼을 경우를 대비한 Backup path를 우선순위와 함께 저장하는 방식으로 경로 저장소를 수정한다.

그림 3. 동적인 장애 복구 시스템 구조

Fig. 3. Dynamic failover system architecture

Ⅳ. 결과 및 검증

4.1. 실험 환경

본 연구에서 제안한 가상 네트워크 상에서 동적인 장애 복구 방법을 검증하기 위하여 우리는 네트워크 에뮬레이터인 Mininet을 이용하여 물리 네트워크 토폴로지를 구성하였다. 그리고 네트워크 가상화를 위한 하이퍼바이저로는 OpenVirtex-0.0-MAINT를 이용하였다.

그림3의 OpenVirteX 아래 부분은 물리 네트워크 토폴로지다. 물리 네트워크에서 E1에서 E60까지는 S1(스위치 1)에서 S11로 토폴로지를 확장하기 위한 추가적인 스위치이다. 추가적인 스위치를 배치함으로써 Primary path와 비교했을 때 Backup path에서 변경되는 스위치가 많아지도록 토폴로지를 구성했다. 이 토폴로지를 이용해서 기존 장애 복구방법과 제안한 장애 복구 방법의 수행시간을 비교하는 실험을 진행하였다. 그림3의 OpenVirteX 위 부분은 가상 네트워크이다. 서로 고립되어있는 두 개의 가상 네트워크가 생성되어 있고, 각 가상 네트워크는 두 개의 가상 스위치와 이들을 연결하는 가상 링크로 구성된다.

그림 4. 실험을 위한 토폴로지 구성도

Fig. 4. Topology map for experiments

4.2. 실험 시나리오

제안 된 아이디어의 유효성을 확인하기 위해 두 가지 시나리오를 진행했다.

첫 번째 시나리오는 Primary path와 비교하여 물리 링크의 변경을 최소화하면서 Backup path가 제대로 생성되었는지 검증하기 위한 것이다. 두 번째 시나리오는 트래픽 모니터링을 통해 Backup path가 동적으로 업데이트되는지 확인하는 것이다. 이 시나리오에서는 두 개의 가상 네트워크 안에 있는 두 호스트 간 가상 링크를 만들어 트래픽을 전송한다.

첫 번째 시나리오에서 가상 네트워크1에는 S1과 S6을 연결하는 가상 링크가 1개 있다. 물리 네트워크에서 S2와 S3을 연결하는 물리 링크가 끊겼을 때, OVX는 미리 만들어 놓은 Backup path들 중에서 가장 우선순위가 높은 Backup path를 선택해서 Primary path와 바꿔준다. 이렇게 함으로써, 가상 네트워크1은 아무 문제없이 네트워크를 운용할 수 있다. 이 시나리오에서 기존의 장애 복구 방법은 S1-S2-S8-S9-S10-S11-S5-S6 순서로 Backup path를 만든다. 기본 장애 복구 방법은 S2-S3링크를 제외한 다른 모든 물리링크들은 제대로 동작하고 있지만 모든 물리링크들을 변경하기 때문에, Backup path를 이용할 때 불필요한 링크변경을 야기한다. 반면에 우리가 제안된 장애 복구 방법을 이용해서 Backup path를 만들면, Backup path는 S1-S2-S8-S9-S3-S4-S5-S6 순서로 생성된다. 이렇게 만들어지면 모든 링크가 변하지 않고 일부만 변경되기 때문에, Flow-Mod 메시지의 수를 줄일 수 있으며, 이에 따라 지연시간을 감소 시킬 수 있다. 그림4는 S1의 호스트 1에서 S6의 호스트 2로 ping을 보냈을 때, S2-S3링크가 끊어져서 장애 복구 을 하는데 걸린 서비스 중단 시간을 측정한 결과를 비교한 것이다. 서비스 중단 시간은 ping명령의 결과를 사용해서 측정되었다.

그림4, 5는 제안된 방법의 지연시간이 더 적음을 보여준다. 그림4의 그래프는 서비스 중단 시간에 대한 그래프이고, ping 명령의 결과로 얻을 수 있다. 서비스 중단 시간이 짧을수록 지연은 줄어든다. 따라서 제안 된 장애 복구 방법이 기존 장애 장애 복구 방법보다 낫다는 것을 확인할 수 있다. 또한, 그림5의 그래프는 Flow-Mod 메시지의 수와 대한 것이고, 제안된 방법이 더 적은 Flow-Mod 메시지를 생성한다는 것을 보여준다. ping 명령을 실행하는 동안에, 중간 링크(S2-S3)의 연결을 끊은 후 장애 조치를 수행하는 과정에서 Flow-Mod 메시지 수를 계산했다. 그 결과, 우리는 제안된 장애 복구 방법이 Flow-Mod 메시지를 덜 생성하기 때문에 기존 장애 극복 방법보다 낫다는 것을 검증 할 수 있다. 이는 Flow-Mod 메시지의 수가 감소했기 때문에 오버 헤드가 감소되었음을 의미한다.

그림 5. 장애 발생 후 복구까지의 서비스 중단 시간

Fig. 5. Service downtime for failover after the failure occurs

그림 6. 장애 발생 후 복구하기 위해서 발생하는 Flow-Mod 메시지 개수

Fig. 6. The number of generated Flow-Mod message for failover after the failure occurs

두 번째 시나리오는 Backup path가 트래픽 모니터링(traffic monitoring)을 통해서 동적으로 업데이트가 되는지를 검증하기 위한 것이다. 시나리오는 두 개의 가상 네트워크에서 각각 두 호스트 사이에 연결을 만들어서 트래픽을 보내는 것이다. 우선 가상 네트워크1에서 S1과 연결되어있는 호스트1에서 S6과 연결되어있는 호스트2에 대역폭(bandwidth) 600Mbps로 UDP 트래픽을 전송했다. 이때 S1와 S6을 연결하는 가상 링크에 대한 Backup path는 첫 번째 시나리오와 마찬가지로 S1-S2-S8-S9-S3-S4-S5-S6 순서로 생성된다. 이런 상황과 더불어, 가상 네트워크2에서 S9와 연결되어있는 host3에서 S3과 연결되어있는 호스트4에 대역폭 700Mbps로 UDP 트래픽을 전송했다. 이렇게 하면 S4-S3 물리 링크의 대역폭이 임계값(threshold)인 1G을 초과하고, 트래픽 모니터에서는 이를 주기적으로 모니터링 한다. 한계점을 넘었기 때문에, 가상 네트워크에서 S1와 S6을 연결하는 가상 링크의 Backup path의 우선순위가 변경되며, 가장 높은 우선 순위를 갖는 Backup bath는 S4-S3링크를 거쳐가지 않는 S1-S2-S3-S9-S10-S11-S5-S6 가 된다. 이렇게 제안된 방법은 트래픽 혼잡을 미리 탐지하고, 다른 Backup path를 선택할 수 있다. 실험 결과는 Log를 통해서 path가 잘 바뀌는 것으로 확인 할 수 있었다. 이 실험에서 트래픽을 생성하기 위해서 Mininet에 있는 iperf를 이용했다.

Ⅴ. 결  론

본 논문에서는 SDN 기반 가상 네트워크을 위한 동적인 장애 복구 방법을 제안했다. 제안한 방법의 설계 및 구현은 OVX를 기반으로 한다. 이 시스템의 주요 목적은 장애 극복 메커니즘을 개선하는 것이다. 경로 계산기에서는 물리링크의 변경을 줄이는 Backup path들이 만들어지며, 이에 따라서 Flow-Mod 메시지 수가 감소한다. 우선순위 조절기에서는 다른 모듈에서 수집 한 트래픽 정보를 사용하여, 트래픽이 임계값을 초과하면 Backup path의 우선 순위를 변경한다. 따라서 장애 극복을 보다 동적으로 실행할 수 있다. 제안한 시스템을 평가한 실험에서 동적 장애 극복이 기존의 것보다 낮은 지연 및 적은 Flow-Mod 메시지 수를 갖는다는 것을 확인할 수 있다.

마지막으로 본 논문을 확장시키기 위한 향후 연구 방향을 다음과 같다. 먼저 진행해야 하는 작업으로 앞의 실험을 토대로 얻은 결과를 좀 더 다양한 시나리오에서 검증하는 것이 있다. 또한 현재 구현내용이 OVX에 종속되어 있지만, 이것을 다른 네트워크 하이퍼바이저에도 적용될 수 있도록 확장시켜야 한다.

References

[1] J.-P. Vasseur, M. Pickavet, and P. Demeester, Network recovery: protection and restoration of optical, SONET-SDH, IP, and MPLS, 2004.

[2] A. Khan, A. Zugenmaier, D. Jurca, and W. Kellerer, “Network virtualization: a hypervisor for the Internet?” IEEE Communications Magazine, vol. 50, no. 1, pp. 136–143, 2012.

[3] A. Al-Shabibi, M. De Leenheer, M. Gerola, A. Koshibe, G. Parulkar, E. Salvadori, and B. Snow, “OpenVirteX: Make your virtual SDNs programmable,” in Proceedings of the third workshop on Hot topics in software defined networking, 2014, pp. 25–30.

[4] R. Sherwood, G. Gibb, K.-K. Yap, G. Appenzeller, M. Casado, N. McKeown, and G. Parulkar, “Flowvisor: A network virtualization layer,” OpenFlow Switch Consortium, Tech. Rep, pp. 1–13, 2009.

[5] D.A. Drutskoy. Software-defined network virtualization with flown. Master Thesis, 2012. ftp://ftp.cs.princeton.edu/techreports/2012/929.pdf

[6] R. Doriguzzi Corin, M. Gerola, R. Riggio, F. De Pellegrini, and E. Salvadori. VeRTIGO: network virtualization and beyond. In EWSDN, pages 24–29. IEEE, 2012.

[7] J. Kempf, E. Bellagamba, A. Kern, D. Jocha, A. Tak´acs, and P. Sk¨oldstr¨om, “Scalable fault management for OpenFlow,” in 2012 IEEE International Conference on Communications (ICC), pp. 6606–6610.

[8] S. Sharma, D. Staessens, D. Colle, M. Pickavet, and P. Demeester, “Enabling fast failure recovery in OpenFlow networks,” in Design of Reliable Communication Networks (DRCN), 2011 8th International Workshop on the, 2011, pp. 164–171.

[9] J. Li, J. Hyun, J.-H. Yoo, S. Baik, and J. W.-K. Hong, “Scalable failover method for data center networks using OpenFlow,” in 2014 IEEE Network Operations and Management Symposium (NOMS), 2014.

[10] A. Sgambelluri, A. Giorgetti, F. Cugini, F. Paolucci, and P. Castoldi, “OpenFlow-based segment protection in Ethernet networks,” Journal of Optical Communications and Networking, vol. 5, no. 9, 2013.

[11] G. Rakoshitz, A. Vaid, A. Pandit, and S. Putta, “Traffic monitoring tool for bandwidth management,” Jun. 10 2003, uS Patent 6,578,077.

고 경 찬 (Kyung-Chan Ko)

2016 동국대학교, 정보통신공학과 학사

2016 ~ 현재 포항공과대학교, 컴퓨터공학과 석사과정

<관심분야> SDN, 네트워크 관리

손 동 호 (Dong-ho Son)

2016 한양대학교 ERICA, 컴퓨터공학과 학사

2016 ~ 현재 포항공과대학교, 컴퓨터공학과 석사과정

<관심분야> 네트워크 관리, 네트워크 보안

현 종 환 (Jong-hwan Hyun)

2011 포항공과대학교, 컴퓨터공학과 학사

2011 ~ 현재 포항공과대학교, 컴퓨터공학과 석/박사 통합과정

<관심분야> 네트워크 트래픽 모니터링, SDN

이 건 (Jian Li)

2007 연변과학기술대학교, 전자통신공학과 학사

2012 포항공과대학교, 컴퓨터공학과 석사

2016 포항공과대학교, 정보전자융합공학부 박사

2016 ~ 현재 포항공과대학교, 컴퓨터공학과 박사 후 연구원

<관심분야> SDN, OpenFlow, 클라우드 컴퓨팅, 모바일 장치 관리, 스마트 그리드

한 윤 선(Yoon-seon Han)

2009 포항공과대학교, 컴퓨터공학과 학사

2009 ~ 현재 포항공과대학교, 정보전자융합과 석/박사 통합과정

<관심분야> SDN, 네트워크관리, 정보 모델링, 자율 컴퓨팅

홍 원 기(James Won-Ki Hong)

1983 Univ. of Western Ontario, BSc in Computer Science

1985 Univ. of Western Ontario, MS in Computer Science

1985 ~ 1986 Univ. of Western Ontario, Lecturer

1986 ~ 1991 Univ. of Waterloo, PhD in Computer Science

1991 ~ 1992 Univ. of Waterloo, Post-Doc Fellow

1992 ~ 1995 Univ. of Western Ontario, 연구교수

1995 ~ 현재 포항공과대학교, 컴퓨터공학과 교수

2007 ~ 2011 포항공과대학교, 정보통신대학원장

2007 ~ 2010 포항공과대학교, 정보통신연구소 연구소장

2008 ~ 2010 포항공과대학교, 컴퓨터공학과 주임교수

2008 ~ 2012 포항공과대학교, 정보전자융합공학부장

2012 ~ 2014 KT 종합기술원, 원장

<관심분야> 네트워크 트래픽 모니터링, 네트워크 및 시스템 관리