KR20190001495A - Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치 - Google Patents

Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20190001495A
KR20190001495A KR1020170178058A KR20170178058A KR20190001495A KR 20190001495 A KR20190001495 A KR 20190001495A KR 1020170178058 A KR1020170178058 A KR 1020170178058A KR 20170178058 A KR20170178058 A KR 20170178058A KR 20190001495 A KR20190001495 A KR 20190001495A
Authority
KR
South Korea
Prior art keywords
rule
domain
flow rule
flow
sdn controller
Prior art date
Application number
KR1020170178058A
Other languages
English (en)
Inventor
구범모
김택희
박지수
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of KR20190001495A publication Critical patent/KR20190001495A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 SDN 환경에서 도메인별 플로우 룰의 적용 상태를 분석하여 선택적으로 플로우 룰을 이전 상태로 복원하는 플로우 룰 복원 방법 및 이를 위한 장치에 관한 것이다. 본 발명에 따른 SDN 환경에서 각 도메인에 적용되는 플로우 룰을 제어하는 장치는, 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여, 플로우 룰을 각 도메인에서 적용시키는 룰 적용부; 및 각 도메인의 SDN 컨트롤러로부터 수신한 상기 플로우 룰의 적용 결과를 분석하여 상기 플로우 룰이 각 도메인에 성공적으로 적용되었는지 여부를 판별하고, 상기 판별 결과 적용에 실패한 도메인 존재하면, 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 플로우 룰을 직전에 적용된 플로우 룰로 복원시키는 룰 복원부를 포함한다.

Description

SDN 환경에서 플로우 룰 복원 방법 및 이를 위한 장치{Method for restoring flow rule in Software Defined Networking environment and apparatus therefor}
본 발명은 SDN 환경에서 플로우 룰을 제어하는 기술에 관한 것으로서, 더욱 상세하게는 SDN 환경에서 도메인별 플로우 룰의 적용 상태를 분석하여 선택적으로 플로우 룰을 이전 상태로 복원하는 플로우 룰 복원 방법 및 이를 위한 장치에 관한 것이다.
SDN(Software Defined Networking) 기술은 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 운용관리를 편리하게 처리할 수 있는 기술을 의미한다. SDN 환경에서는, 네트워크 장비를 데이터 플레인(Data Plane)과 컨트롤 플레인(Control Plane)으로 분리해 네트워크 장비에 대한 관리, 모니터링 및 제어에 관련된 처리를 실시간으로 수행한다.
컨트롤 플레인에 해당하는 SDN 컨트롤러(Controller)는 네트워크 장비 간의 통신에서 국제 표준인 오픈 플로우(Open Flow) 프로토콜을 사용한다. 즉, SDN 컨트롤러는 네트워크 상에 SFC(Service Function Chain)를 생성하기 위해 특정 플로우 룰(Flow Rule)을 데이터 플레인에 속하는 스위치들에게 전송하고, 스위치들은 자신이 받은 플로우 룰(Flow Rule)을 바탕으로 정해진 특정 규칙에 동작을 수행하게 된다. 예컨대, 스위치들은, 상기 플로우 룰을 근거로, 유입된 패킷을 다른 스위치로 전달하거나 정의되어 있지 않은 규칙의 패킷이 들어오면 상위 컨트롤러에게 전달하는 동작 등을 수행하게 된다. 나아가, 스위치들은, 상기 플로우 룰에 근거하여 실시간으로 스위치 상태정보(스위치별 Flow Rule 정보, 포트별 UP/Down 상태, Tx/Rx 트래픽 처리량, 전송속도 등)를 감지하여 실시간 장애 대처도 가능하게 된다. 오픈 플로우 룰(Open Flow Rule)을 지원하는 스위치 및 라우터는 기존의 물리 장비가 될 수 있으며, Open Virtual Switch(OVS)와 같은 가상 스위치도 그 제어의 대상이 될 수 있다.
한편, 대규모 SDN 환경에서, 지역 또는 서비스 유형에 따라서, 복수의 SDN 도메인이 존재하기도 한다. 이러한 대규모 SDN 환경에서 각 도메인에 이미 구축된 스위치 장치로 변경된 플로우 룰 또는 신규 플로우 룰을 적용시키는 상황이 발생할 수 있으며, 또한 기존의 플로우 룰을 삭제하는 상황이 발생할 수 있다.
이렇게 도메인 별로 분산되어 있는 복수의 스위치 장치로 신규 또는 변경 플로우 룰을 적용하는 과정에서, 일부 스위치 장치에서 신규 또는 변경 플로우 룰이 적용되지 않은 상황이 발생할 수 있다. 즉, 네트워크 장치의 자원 부족, 트래픽 부족, 내부적인 오류 등으로 인하여, 일부 네트워크 장치에서 신규 또는 변경 플로우 룰이 적용되지 않은 상황이 발생할 수 있다.
이렇게 전체 아니라 일부의 스위치 장치에서 신규 또는 플로우 룰이 적용되면, SFC의 일관성이 상실되고 또한 네트워크 트래픽 처리에서의 충돌이 발생할 수도 있다. 또한, 사업자 입장에서는 서비스 정책에 대한 신뢰성을 상실할 수 있는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 복수의 SDN 도메인에 대해서 플로우 룰을 적용하는 과정에서 플로우 룰 적용이 실패된 SDN 도메인이 감지되면, 상기 SDN 도메인의 플로우 룰을 이전의 플로우 룰로 원복시켜 SFC의 일관성을 유지하는 플로우 룰 복원 방법 및 이를 위한 장치를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제1측면에 따른, SDN 환경에서 각 도메인에 적용되는 플로우 룰을 제어하는 장치는, 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여, 플로우 룰을 각 도메인에서 적용시키는 룰 적용부; 및 각 도메인의 SDN 컨트롤러로부터 수신한 상기 플로우 룰의 적용 결과를 분석하여 상기 플로우 룰이 각 도메인에 성공적으로 적용되었는지 여부를 판별하고, 상기 판별 결과 적용에 실패한 도메인 존재하면, 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 플로우 룰을 직전에 적용된 플로우 룰로 복원시키는 룰 복원부를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제2측면에 따른, 오케스트레이터가 SDN 환경에서 플로우 룰을 복원하는 방법은, 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여, 각 도메인별로 플로우 룰을 적용시키는 단계: 각 도메인의 SDN 컨트롤러로부터 상기 플로우 룰의 적용 결과를 수신하는 단계; 상기 수신한 상기 플로우 룰의 적용 결과를 분석하여 상기 플로우 룰이 각 도메인에 성공적으로 적용되었는지 여부를 판별하는 단계; 및 상기 판별 결과 적용에 실패한 도메인 존재하면, 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 플로우 룰을 직전에 적용된 플로우 룰로 복원시키는 단계를 포함한다.
본 발명은 SDN 도메인별로 플로우 룰을 적용하는 과정에서, 플로우 룰이 미적용되는 도메인이 감지되면, 각 도메인의 플로우 룰을 바로 직전의 적용된 플로우 룰로 원복함으로써, 플로우 룰이 일관적으로 변경되지 않은 상황에서 발생하는 서비스 일관성 상실을 방지하고 더불어 서비스 신뢰성을 향상시키는 장점이 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 대규모 SDN 환경에서 SFC를 관리하는 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, SDN 오케스트레이터의 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 신규 플로우 룰 적용 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 변동 플로우 룰 적용 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 플로우 룰 삭제 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 대규모 SDN 환경에서 SFC를 관리하는 시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른, SFC 관리 시스템은, 복수의 SDN 도메인(200, 300, 400) 및 SDN 오케스트레이터(Orchestrator)(100)를 포함한다.
각 SDN 도메인은 서로 상이한 지역을 설치될 수 있으며, 서비스 유형 또는 기능에 따라 논리적으로 구분될 수도 있다. 예컨대, SDN 도메인#1(200)는 A 지역에서 SDN 서비스를 담당하고, SDN 도메인#2(300)는 B 지역에서 SDN 서비스를 담당하고, SDN 도메인#3(400)은 C 지역에서 SDN 서비스를 담당할 수 있다.
각 SDN 도메인(200, 300, 400)에는 SDN 컨트롤러(210, 310, 410)가 포함되고, 복수의 네트워크 장치(NE: Network Equipment)가 포함된다. 상기 네트워크 장치는 스위치, 라우터 등과 같이, 패킷 경로를 설정하고 패킷을 처리하는 장치이다. 또한, 네트워크 장치는 물리적인 스위치 장치 또는 라우터일 수도 있고, 또는 가상의 네트워크 장치일 수도 있다. 네트워크 장치가 가상으로 구현되는 경우, 네트워크 장치의 기능이 가상 머신 형태로 클라우드 컴퓨팅 시스템에 탑재될 수 있다.
네트워크 장치(NE)는 플로우 룰 아이디와 플로우 룰이 매핑된 룰 테이블을 저장하며, 룰 테이블에 저장된 플로우 룰에 근거하여 유입되는 패킷을 처리한다. 즉, 네트워크 장치는 플로우 룰에 근거하여 패킷의 전송 경로를 설정하고, 포트별 대역폭을 설정한다. 또한, 네트워크 장치는 플로우 룰에 따라, 특정 패킷을 폐기하기도 하며, 특정 패킷에 상대적인 자원을 많이 할당하여 해당 패킷을 우선적으로 처리하기도 한다. 또한, 각 네트워크 장치는 자신과 동일 도메인에 속하는 SDN 컨트롤러로 자신의 상태 정보를 지속적으로 전달한다. 특히, 네트워크 장치는 신규 플로우 룰 또는 변경 플로우 룰을 SDN 컨트롤러로부터 수신하면 해당 플로우 룰을 룰 테이블에 반영시킨 후, 플로우 룰의 적용 결과를 SDN 컨트롤러로 보고한다. 또한, 네트워크 장치는 SDN 오케스트레이터(100)의 제어에 의해, 룰 테이블에서 플로우 룰을 삭제하여, 해당 플로우 룰의 적용을 중단할 수 있다.
여기서, 신규 플로우 룰은 기존의 플로우을 변경시키지 않고 새롭게 적용되는 플로우 룰로서, 신규 고객을 위한 서비스가 필요한 경우나 기존 고객으로부터 새로운 서비스가 추가적으로 요청되는 경우에 SDN 오케스트레이터(100)에서 생성된다. 또한, 변경 플로우 룰은 이미 적용되고 있는 플로우 룰을 업데이트할 때 사용되는 플로우 룰로서, 기존 고객의 요청에 따라 서비스가 변경되는 경우에 SDN 오케스트레이터(100)에서 생성될 수 있다.
한편, 네트워크 장치는 SDN 오케스트레이터(100)의 제어에 의해서, 바로 직전의 룰 테이블로 롤백(rollback)하여, 최근에 적용되는 신규 플로우 룰을 삭제하거나, 삭제된 플로우 룰을 복구하거나, 업데이트된 플로우 룰을 바로 직전으로 원복시킬 수 있다.
SDN 컨트롤러(210, 310, 410)는 동일 도메인에 속하는 네트워크 장치를 모니터링하고 관리하는 장치로서, 물리적인 형태로 구현되거나 가상 머신 형태로 클라우드 컴퓨팅 시스템에 탑재될 수도 있다. 상기 SDN 컨트롤러(210, 310, 410)는 동일 도메인에 속하는 각 네트워크 장치로부터 상태 정보를 수신하여, 네트워크 장치별 트래픽량, 포트 상태, 포트별 데이터 처리량 등을 모니터링한다.
SDN 컨트롤러(210, 310, 410)는 SDN 오케스트레이터(100)로부터 신규/변경 플로우 룰을 수신하면, 신규/변경 플로우 룰을 네트워크 장치(NE)로 전송하여, 신규/변경 플로우 룰이 네트워크 장치에서 적용되게 한다. 또한, SDN 컨트롤러(210, 310, 410)는 SDN 오케스트레이터(100)로부터 플로우 룰의 삭제를 지시받으면, 해당 플로우 룰의 삭제를 네트워크 장치(NE)로 지시하여, 지정된 플로우 룰이 네트워크 장치에서 적용되지 않게 제어한다.
SDN 오케스트레이터(100)는 플로우 룰 제어 장치로서, 각 SDN 도메인(200, 300, 400)에 포함된 각각의 SDN 컨트롤러(210, 310, 410)를 제어하여, 전체적인 SDN 서비스를 제어한다. 즉, SDN 컨트롤러(210, 310, 410)는 자신의 속한 도메인의 네트워크 장치를 관리하고, SDN 오케스트레이터(100)는 SDN 컨트롤러(210, 310, 410)를 제어하여, 전체적인 SDN 서비스를 제어하고 관리한다. 상기 SDN 오케스트레이터(100)는 각 SDN 도메인에 적용되는 플로우 룰을 관리함으로써, 각 SDN 도메인(200, 300, 400)별로 적용되는 서비스를 제어할 수 있다.
상기 SDN 오케스트레이터(100)는 SFC(Service Function Chain)가 추가되거나 변경되거나 삭제되면, 해당 SFC 추가/변경/삭제를 구현하기 위해, 네트워크 장치(NE)의 플로우 룰을 적용(또는 삭제)시키는 프로세스를 진행한다.
상기 SFC는 SDN 기반 네트워킹 서비스를 제공하기 위해, 네트워크 장치 또는 애플리케이션의 기능(즉, 서비스 기능)들을 그룹핑하고, 이러한 기능들에 대한 동작순서와 트래픽 조정 과정을 추상화한 것이다. 예컨대, 상기 SFC는 특정 서비스(예컨대, 방화벽 서비스, 네트워크 주소 변환 서비스, 전용망 서비스 등)를 실행하기 위해 필요한 기능들과 이들 간의 적용 순서를 추상화할 수 있다. 상기 SFC는 구현하기 위해서, 플로우 룰이 다수의 네트워크 장치(NE)로 전달되고, 상기 다수의 네트워크 장치(NE)는 플로우 룰에 따라 데이터를 처리함으로써, 상기 SFC를 실현한다.
한편, SDN 오케스트레이터(100)는 복수의 도메인으로 플로우 룰 적용 또는 중단를 지시하고, 적용 결과를 각각의 도메인으로부터 획득한다. SDN 오케스트레이터(100)는 플로우 룰 적용이 실패한 도메인이 존재하면, 플로우 룰의 롤백을 결정하여 네트워크 장치(NE)에 저장된 룰 테이블을 이전의 상태로 원복한다.
즉, SDN 오케스트레이터(100)는 플로우 룰 적용에 실패한 도메인이 확인되면, 이전의 플로우 룰(구 버전의 플로우 룰)이 적용되거나, 삭제된 플로우 룰을 원복시키거나 새롭게 적용된 플로우 룰을 삭제시키는 프로세스를 진행하여, 이전 상태의 룰 테이블을 통해서 네트워크 장치가 트래픽을 처리하게 제어한다.
도 2는 본 발명의 일 실시예에 따른, SDN 오케스트레이터의 구성을 나타내는 도면이다.
SDN 오케스트레이터(100)는 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 이러한 구성요소는 하나 이상의 통신 버스 또는 신호선을 통하여 통신하고, 하나 이상의 신호 처리 및/또는 애플리케이션 전용 집적 회로(application specific integrated circuit)를 포함하여, 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어 둘의 조합으로 구현될 수 있다.
메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 일부 실시예에서, 메모리는 하나 이상의 프로세서로부터 멀리 떨어져 위치하는 저장 장치, 예를 들어 RF 회로와, 인터넷, 인트라넷, LAN(Local Area Network), WLAN(Wide LAN), SAN(Storage Area Network) 등, 또는 이들의 적절한 조합과 같은 통신 네트워크(도시하지 않음)를 통하여 액세스되는 네트워크 부착형(attached) 저장 장치를 더 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 장치의 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다.
주변 인터페이스는 장치의 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 시스템을 위한 여러 기능을 수행하고 데이터를 처리한다.
일부 실시예에서, 주변 인터페이스, 프로세서 및 메모리 제어기는 칩과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예에서, 이들은 별개의 칩으로 구현될 수 있다.
I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 장치의 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다.
디스플레이 장치는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있고, 이러한 디스플레이 장치는 용량형, 저항형, 적외선형 등의 터치 디스플레이일 수 있다. 터치 디스플레이는 시스템과 사용자 사이에 출력 인터페이스 및 입력 인터페이스를 제공한다. 터치 디스플레이는 사용자에게 시각적인 출력을 표시한다. 시각적 출력은 텍스트, 그래픽, 비디오와 이들의 조합을 포함할 수 있다. 시각적 출력의 일부 또는 전부는 사용자 인터페이스 대상에 대응할 수 있다. 터치 디스플레이는 사용자 입력을 수용하는 터치 감지면을 형성한다.
프로세서는 시스템에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 시스템의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다.
일부 실시예에서, 소프트웨어 구성요소는 운영 체제, 그래픽 모듈(명령어 세트), 본 발명을 위한 동작을 수행하기 위한 프로그램이 탑재(설치)된다.
운영 체제는, 예를 들어, 다윈(Darwin), RTXC, LINUX, UNIX, OS X, WINDOWS 또는 VxWorks, 안드로이드, iOS 등과 같은 내장 운영체제일 수 있고, 일반적인 시스템 태스크(task)(예를 들어, 메모리 관리, 저장 장치 제어, 전력 관리 등)를 제어 및 관리하는 다양한 소프트웨어 구성요소 및/또는 장치를 포함하고, 다양한 하드웨어와 소프트웨어 구성요소 사이의 통신을 촉진시킨다.
그래픽 모듈은 디스플레이 장치상에 그래픽을 제공하고 표시하기 위한 주지의 여러 소프트웨어 구성요소를 포함한다. "그래픽(graphics)"이란 용어는 텍스트, 웹 페이지, 아이콘(예컨대, 소프트 키를 포함하는 사용자 인터페이스 대상), 디지털 이미지, 비디오, 애니메이션 등을 제한 없이 포함하여, 사용자에게 표시될 수 있는 모든 대상을 포함한다.
도 2에 도시된 바와 같이, SDN 오케스트레이터(100)는 저장부(110), 장치 식별부(120), 룰 적용부(130) 및 룰 복원부(140)를 포함하고, 이들은 앞서 설명한 하드웨어 또는/및 소프트웨어의 결합에 의해 구현될 수 있고, 소프트웨어로 구현되어 메모리에 저장되고 프로세서에 의해 실행될 수 있다.
저장부(110)는 SFC(Service Function Chain)와 관련된 도메인 식별정보 및 네트워크 장치 식별정보가 매핑된 체인 정보를 저장한다. 즉, 저장부(110)는 각 SFC와 관련되어 네트워킹 서비스를 제공하는 도메인 식별정보와 네트워크 장치 식별정보를 저장한다. 또한, 저장부(110)는 현재 적용중인 플로우 룰과 바로 전에 적용된 플로우 룰이 기록되는 복원 테이블을 저장한다.
장치 식별부(120)는 저장부(110)의 체인 정보를 토대로, 특정 SFC와 관련된 SDN 도메인과 네트워크 장치를 식별하는 기능을 수행한다. 구체적으로, 장치 식별부(120)는 새롭게 생성되거나 변경되거나 삭제되는 SFC(Service Function Chain)를 수신하면, 이 SFC와 관련된 도메인 식별정보와 네트워크 장치 식별정보를 저장부(110)의 체인 정보에서 식별한다.
룰 적용부(130)는 변경 또는 신규 플로우 룰이 포함되거나 삭제 대상이 되는 플로우 룰 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러(210, 310, 410)로 전송하여, 각 SDN도메인(200, 300, 400)에서 플로우 룰이 적용되게 제어한다.
구체적으로, 룰 적용부(130)는 신규/변경 플로우 룰이 포함된 룰 적용 메시지를 해당 도메인(200, 300, 400)의 SDN 컨트롤러(210, 310, 410)로 전송하여, 신규/변경 플로우 룰이 각 도메인(200, 300, 400)에 적용되게 제어한다. 또한, 룰 적용부(130)는 삭제 대상인 플로우 룰 식별정보가 포함된 룰 적용 메시지를 해당 도메인(200, 300, 400)의 SDN 컨트롤러(210, 310, 410)로 전송하여, 해당 플로우 룰의 적용이 각 도메인(200, 300, 400)에서 중단되게 제어할 수 있다.
한편, 룰 적용부(130)는 플로우 룰이 변경되는 경우, 변경되는 전의 구 버전 플로우 룰, 신 버전의 플로우 룰 및 플로우 룰의 식별정보를 매핑시켜 저장부(110)의 복원 테이블에 기록한다.
또한, 룰 적용부(130)는 신규 플로우 룰이 적용되는 경우, 이 신규 플로우 룰와 이 신규 플로우 룰의 식별정보를 매핑하여 저장부(110)의 복원 테이블에 기록한다. 룰 적용부(130)는 플로우 룰의 삭제가 진행되는 경우, 삭제 대상이 되는 플로우 룰의 식별정보와 이 플로우 룰을 매핑하여 상기 저장부(110)의 복원 테이블에 기록한다.
룰 복원부(140)는 각 도메인(200, 300, 400)의 SDN 컨트롤러(210, 310, 410)로부터 플로우 룰 처리 결과를 수신하고, 이 중에서 정상적으로 플로우 룰이 처리되는 않은 도메인이 발생하면, 바로 직전의 플로우 룰 상태로 플로우 룰을 원복시키는 절차를 수행한다.
구체적으로, 룰 복원부(140)는 도메인들(100, 200, 300)에서 어느 하나라도 신규 플로우 룰의 적용에 실패하면, 신규 플로우 룰을 적용한 도메인의 SDN 컨트롤러(210, 310, 410)로 복원 메시지를 전송하여, 상기 신규 플로우 룰을 도메인에서 삭제시킴으로써 상기 신규 플로우 룰의 적용을 중단시킨다. 또한, 룰 복원부(140)는 도메인들(100, 200, 300)에서 어느 하나라도 플로우 룰 중단에 실패하면, 플로우 중단에 성공한 도메인의 SDN 컨트롤러(210, 310, 410)로 복원 메시지를 전송하여, 삭제된 기존 플로우 룰을 해당 도메인들에서 복구시키고, 이 복구된 기존 플로우 룰이 각 도메인에서 다시 적용되게 한다. 한편, 룰 복원부(140)는 도메인들(100, 200, 300)에서 어느 하나라도 플로우 룰 갱신에 실패하면, 플로우 룰 갱신에 성공한 도메인의 SDN 컨트롤러(210, 310, 410)로 복원 메시지를 전송하여, 각 도메인에서 구 버전의 플로우 룰을 복구시키고, 이 구 버전의 플로우 룰이 각 도메인에서 다시 적용되게 한다.
도 3 내지 도 5를 참조한 설명에서는, SDN 도메인#1(200)의 네트워크 장치#1-1(220-1), SDN 도메인#2(300)의 네트워크 장치#2-2(320-2) 및 SDN 도메인#3(400)의 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2)가 신규 또는 변경 플로우 룰이 적용되거나 플로우 룰이 삭제되는 대상 장치인 것으로 가정한다. 또한, 도 3 내지 도 5를 참조한 설명에서는, 룰 적용에 실패한 네트워크 장치가 네트워크 장치#3-2(420-2)인 것으로 가정한다.
도 3은 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 신규 플로우 룰 적용 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
도 3을 참조하면, 오케스트레이터(100)의 장치 식별부(120)는 새롭게 생성되거나 SFC(Service Function Chain)를 관리자로부터 수신한다(S301). 그러면, 오케스트레이터(100)의 장치 식별부(120)는 상기 SFC와 관련된 도메인 식별정보와 네트워크 장치 식별정보를 저장부(110)의 체인 정보에서 식별한다(S303). 도 3에서는 장치 식별부(120)가 상기 SFC와 관련된 도메인이 SDN 도메인#1(200), SDN 도메인#2(300) 및 SDN 도메인#3(400)임을 식별하고, 더불어 상기 SFC와 관련된 네트워크 장치가 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 및 네트워크 장치#3-2(420-2)인 것으로 설명된다.
이어서, SDN 오케스트레이터(100)의 룰 적용부(130)는 S301 단계에서 관리자로부터 수신한 신규 SFC를 확인하여, 이 신규 SFC를 구현하기 위한 신규 플로우 룰을 생성한다. 그리고 룰 적용부(130)는 상기 신규 플로우 룰에 대한 식별정보를 할당하고, 신규 플로우 룰 및 신규 플로우 룰 식별정보를 매핑하여 저장부(110)의 복원 테이블에 저장한다.
이어서, 룰 적용부(130)는 신규 플로우 룰 및 신규 플로우 룰의 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S307, S309, S311). 이때, SDN 오케스트레이터(100)의 룰 적용부(130)는 룰 적용 대상인 네트워크 장치의 식별정보를 룰 적용 메시지에 기록한다. 즉, 룰 적용부(130)는 네트워크 장치#1-1(220-1)의 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러#1(210)로 전송하고, 네트워크 장치#2-2(320-2)의 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러#2(310)로 전송하며, 네트워크 장치#3-1(420-1)의 식별정보와 네트워크 장치#3-2(420-2)의 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러#3(410)로 전송한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 룰 적용 메시지에 포함된 신규 플로우 룰, 신규 플로우 룰 식별정보 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 신규 플로우 룰 및 신규 플로우 룰 식별정보를 전송한다(S313a ~ S313d). 즉, SDN 컨트롤러#1(210)은 신규 플로우 룰 및 신규 플로우 룰 식별정보를 네트워크 장치#1-1(220-1)로 전송하고(S313a), SDN 컨트롤러#2(310)는 신규 플로우 룰 및 신규 플로우 룰 식별정보를 네트워크 장치#2-2(320-2)로 전송한다(S313b). 또한, SDN 컨트롤러#3(410)은 신규 플로우 룰 및 신규 플로우 룰 식별정보를 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각으로 전송한다(S313c, S313d).
다음으로, 신규 플로우 룰을 수신한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 상기 신규 플로우 룰과 신규 플로우 룰 식별정보를 자신의 룰 테이블에 매핑하여 저장하고, 상기 룰 테이블에 저장된 신규 플로우 룰에 따라 패킷을 처리한다.
신규 플로우 룰을 수신한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 상기 신규 플로우 룰에 대한 적용 결과를 SDN 컨트롤러로 보고한다(S313e ~ S313h). 즉, 네트워크 장치#1-1(220-1)은, 신규 플로우 룰이 정상적으로 적용되면, 적용 성공 메시지를 SDN 컨트롤러#1(210)로 전송하고(S313e), 네트워크 장치#2-2(320-2)는 신규 플로우 룰이 정상적으로 적용되면 적용 성공 메시지를 SDN 컨트롤러#2(310)로 전송한다(S313f). 또한, 네트워크 장치#3-1(420-1)은 신규 플로우 룰이 정상적으로 적용되면, 적용 성공 메시지를 SDN 컨트롤러#3(410)로 전송한다(S313g). 한편, 네트워크 장치#3-2(420-2)은 신규 플로우 룰이 정상적으로 적용되지 않음에 따라, 적용 실패 메시지를 SDN 컨트롤러#3(410)로 전송한다(S313h).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 적용 결과를 보고한다(S315 ~ S319). 즉, SDN 컨트롤러#1(210)는 SDN 도메인#1(200)에서 정상적으로 신규 플로우 룰의 적용이 완료되었을 의미하는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S315). 또한, SDN 컨트롤러#2(310)는 SDN 도메인#2(300)에서 정상적으로 신규 플로우 룰의 적용이 완료되었을 의미하는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S317). 반면에, SDN 컨트롤러#3(410)는 네트워크 장치#3-2(420-2)에서 신규 룰 적용에 실패되고, 네트워크 장치#3-1(420-1)에서 신규 룰 적용에 성공하였음을 나타내는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S319).
그러면, SDN 오케스트레이터(100)의 룰 복원부(140)는 각 SDN 컨트롤러로부터 수신한 적용 결과를 취합하여 모든 도메인에 신규 플로우 룰이 정상적으로 적용되었는지 여부를 판별한다. SDN 오케스레이터(100)의 룰 복원부(140)는 상기 신규 플로우 룰이 모든 도메인에서 정상적으로 적용된 것으로 확인되면, 롤백을 진행하지 않고 상기 신규 플로우 룰이 계속적으로 적용되게 제어한다. 반면에, 룰 복원부(140)는 상기 신규 플로우 룰이 어느 한 도메인에서라도 적용되지 않으면, 플로우 룰에 대한 롤백(rollback)을 결정한다(S321). 도 3을 참조한 설명에는, 도메인#3(400)에서 신규 플로우 룰이 완전하게 적용되지 않았으므로, 상기 룰 복원부(140)는 신규 플로우 룰에 대한 롤백을 결정한다.
롤백을 결정한 룰 복원부(140)는 각각의 SDN 컨트롤러(210, 310, 410)로부터 수신한 적용 결과 보고를 토대로, 상기 신규 플로우 룰이 정상적으로 적용된 장치가 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2) 및 네트워크 장치#3-1(420-1)임을 인식한다. 이어서, 룰 복원부(140)는 상기 신규 플로우 룰에 대한 식별정보를 저장부(110)의 복원 테이블에서 확인한 후, 이 신규 플로우 룰의 식별정보 및 룰 삭제 명령문이 포함된 복원 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S323, S325, S327). 이때, SDN 오케스트레이터(100)의 룰 복원부(140)는 룰 삭제 대상인 네트워크 장치의 식별정보를 룰 적용 메시지에 기록한다. 즉, 룰 복원부(140)는 네트워크 장치#1-1(220-1)의 식별정보, 신규 플로우 룰 식별정보 및 룰 삭제 명령문이 포함된 룰 삭제 메시지를 SDN 컨트롤러#1(210)로 전송하고, 네트워크 장치#2-2(320-2)의 식별정보, 신규 플로우 룰 식별정보 및 룰 삭제 명령문이 포함된 복원 메시지를 SDN 컨트롤러#2(310)로 전송하며, 네트워크 장치#3-1(420-1)의 식별정보, 신규 플로우 룰 식별정보 및 룰 삭제 명령문이 포함된 복원 메시지를 SDN 컨트롤러#3(410)로 전송한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 복원 메시지에 포함된 신규 플로우 룰 식별정보, 룰 삭제 명령문 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 룰 삭제 메시지를 전송한다(S329a ~ S329c). 부연하면, 복원 메시지에 룰 삭제 명령문이 포함됨에 따라, SDN 컨트롤러#1(210)은 신규 플로우 룰 식별정보가 포함된 룰 삭제 메시지를 네트워크 장치#1-1(220-1)로 전송하고(S329d), SDN 컨트롤러#2(310)는 신규 플로우 룰 식별정보가 포함된 룰 삭제 메시지를 네트워크 장치#2-2(320-2)로 전송한다(S329e). 또한, SDN 컨트롤러#3(410)은 신규 플로우 룰 식별정보가 포함된 룰 삭제 메시지를 네트워크 장치#3-1(420-1)로 전송한다(S329f).
다음으로, 룰 삭제 메시지를 수신한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 신규 플로우 룰와 매핑된 데이터를 자신의 룰 테이블에 삭제함으로써, 신규 플로우 룰 적용을 중단한다.
이어서, 신규 플로우 룰을 삭제한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 신규 플로우 룰의 삭제 결과를 SDN 컨트롤러로 보고한다(S329d ~ S329f).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 삭제 결과를 보고한다(S331 ~ S335).
이어서, SDN 오케스트레이터(100)의 룰 복원부(140)는 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각으로부터 수신한 룰 삭제 결과를 취합하여, 플로우 룰의 복원이 정상적으로 진행되었는지 여부를 판별한다. 이어서, 룰 복원부(140)는 복원이 정상적으로 이루어지지 않은 네트워크 장치가 존재하면, 상기 신규 플로우 룰을 해당 네트워크 장치에서 삭제시키기 위해, 플로우 룰이 삭제되지 않은 도메인의 SDN 컨트롤러로 상기 복원 메시지를 계속적으로 전송한다.
도 4는 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 변동 플로우 룰 적용 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
도 4를 참조한 설명에서, 도 3을 참조한 설명과 중복되는 부분은 압축하여 요약하기로 한다.
도 4를 참조하면, 오케스트레이터(100)의 장치 식별부(120)는 변경되는 SFC(Service Function Chain)를 관리자로부터 수신한다(S401). 그러면, 오케스트레이터(100)의 장치 식별부(120)는 상기 SFC와 관련된 도메인 식별정보와 네트워크 장치 식별정보를 저장부(110)의 체인 정보에서 식별한다(S403). 도 4에서는 장치 식별부(120)가 상기 SFC와 관련된 도메인이 SDN 도메인#1(200), SDN 도메인#2(300) 및 SDN 도메인#3(400)임을 식별하고, 더불어 상기 SFC와 관련된 네트워크 장치가 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 및 네트워크 장치#3-2(420-2)인 것으로 설명된다.
이어서, SDN 오케스트레이터(100)의 룰 적용부(130)는 S401 단계에서 관리자로부터 수신한 변경 SFC를 확인하여, 이 변경 SFC를 구현하기 위한 변경 플로우 룰(즉, 신 버전의 플로우 룰)을 생성한다(S405). 이어서, 룰 적용부(130)는 변경 대상(즉, 업데이트 대상)이 되는 기존의 플로우 룰(즉, 구 버전의 플로우 룰)과 구 버전의 플로우 룰 식별정보를 확인한다. 이어서, 룰 적용부(130)는 변경 플로우 룰(즉, 신 버전의 플로우 룰), 상기 플로우 룰의 식별정보 및 구 버전의 플로우 룰을 매핑하여 저장부(110)의 복원 테이블에 저장한다(S407).
이어서, 룰 적용부(130)는 플로우 룰의 식별정보 및 변경 대상 플로우 룰(즉, 신 버전의 플로우 룰)이 포함된 룰 적용 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S409, S411, S413). 이때, SDN 오케스트레이터(100)의 룰 적용부(130)는 룰 적용 대상인 네트워크 장치의 식별정보를 룰 적용 메시지에 기록한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 룰 적용 메시지에 포함된 변경 플로우 룰(신 버전의 플로우 룰), 플로우 룰의 식별정보 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 변경 플로우 룰(신 버전의 플로우 룰) 및 플로우 룰의 식별정보를 전송한다(S415a ~ S415d).
다음으로, 변경 플로우 룰을 수신한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 수신한 플로우 룰 식별정보와 대응되는 플로우 룰(즉, 구 버전의 플로우 룰)을 상기 수신한 변경 플로우 룰(즉, 신 버전의 플로우 룰)로 변경함으로써, 자신의 룰 테이블에 저장된 플로우 룰을 갱신하고, 이 갱신된 플로우 룰에 따라 패킷을 처리하여 변경된 플로우 룰이 해당 SDN 도메인에서 적용되게 한다.
이어서, 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 상기 변경 플로우 룰 적용 결과를 SDN 컨트롤러로 보고한다(S415e ~ S415h). 도 4를 참조한 설명에서는, 네트워크 장치#3-2(420-2)은 변경 플로우 룰이 정상적으로 적용되지 않음에 따라, 적용 실패 메시지를 SDN 컨트롤러#3(410)로 전송한 것으로 설명된다(S415h).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 적용 결과를 보고한다(S417 ~ S421). 즉, SDN 컨트롤러#1(210) 및 SDN 컨트롤러#2(310)는 정상적으로 변경 플로우 룰의 적용이 완료되었을 의미하는 적용 결과를 SDN 오케스트레이터(100)로 각각 보고한다(S417, S419). 반면에, SDN 컨트롤러#3(410)는 네트워크 장치#3-1(420-1)에서 변경 플로우 룰 적용에 성공하였으나, 네트워크 장치#3-2(420-2)에서 변경 플로우 룰 적용에 실패되었음을 나타내는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S421).
그러면, SDN 오케스트레이터(100)의 룰 복원부(140)는 각 SDN 컨트롤러로부터 수신한 적용 결과를 취합하여 모든 도메인에 변경 플로우 룰이 정상적으로 적용되었는지 여부를 판별한다. SDN 오케스레이터(100)의 룰 복원부(140)는 상기 변경 플로우 룰이 모든 도메인에서 정상적으로 적용된 것으로 확인되면, 롤백을 진행하지 않고 상기 변경 플로우 룰이 계속적으로 적용되게 한다. 반면에, 룰 복원부(140)는 상기 변경 플로우 룰이 어느 한 도메인에서라도 적용되지 않으면, 플로우 룰에 대한 롤백(rollback)을 결정한다(S423).
롤백을 결정한 룰 복원부(140)는 각각의 SDN 컨트롤러(210, 310, 410)로부터 수신한 적용 결과 보고를 토대로, 상기 변경 플로우 룰이 적용된 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2) 및 네트워크 장치#3-1(420-1)임을 인식한다. 이어서, 룰 복원부(140)는 바로 직전에 적용된 구 버전의 플로우 룰 및 상기 플로우 룰의 식별정보를 저장부(110)의 복원 테이블에서 확인한 후, 상기 플로우 룰의 식별정보 및 상기 구 버전의 플로우 룰이 포함된 복원 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S425, S427, S429). 이때, SDN 오케스트레이터(100)의 룰 복원부(140)는 룰 적용 대상인 네트워크 장치의 식별정보를 룰 적용 메시지에 기록한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 룰 적용 메시지에 포함된 구 버전의 플로우 룰, 플로우 룰 식별정보 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 구 버전의 플로우 룰과 플로우 룰 식별정보를 전송한다(S431a ~ S431c).
다음으로, 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 플로우 룰의 식별정보와 대응되어 룰 테이블에 저장된 플로우 룰(즉, 신 버전의 플로우 룰)을 상기 수신한 구 버전의 플로우 룰로 변경함으로써, 신 버전의 플로우 룰 적용을 중단하고 구 버전의 플로우 룰을 다시 적용한다.
이어서, 기존 플로우 룰(구 버전의 플로우 룰)을 다시 적용한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 플로우 룰 적용 결과를 SDN 컨트롤러로 보고한다(S431d ~ S431f).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 적용 결과를 보고한다(S433, S435, S437).
다음으로, SDN 오케스트레이터(100)의 룰 복원부(140)는 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각으로부터 수신한 룰 적용 결과를 취합하여, 플로우 룰의 롤백이 정상적으로 진행되었는지 여부를 판별한다. 이어서, SDN 오케스트레이터(100)의 룰 복원부(140)는 상기 판별 결과 롤백이 정상적으로 이루어지지 않은 네트워크 장치가 존재하면, 상기 기존의 플로우 룰이 해당 네트워크 장치에서 다시 적용되도록, 롤백이 정상적으로 진행되지 않은 도메인의 SDN 컨트롤러로 상기 복원 메시지를 계속적으로 전송한다.
도 5는 본 발명의 일 실시예에 따른, SDN 오케스트레이터에서 플로우 룰 삭제 실패에 따라 플로우 룰을 복원하는 과정을 설명하는 흐름도이다.
도 5를 참조하면, 오케스트레이터(100)의 장치 식별부(120)는 삭제되는 SFC(Service Function Chain)를 관리자로부터 수신한다(S501). 그러면, 오케스트레이터(100)의 장치 식별부(120)는 상기 SFC와 관련된 도메인 식별정보와 네트워크 장치 식별정보를 저장부(110)의 체인 정보에서 식별한다(S503).
이어서, SDN 오케스트레이터(100)의 룰 적용부(130)는 S501 단계에서 관리자로부터 수신한 SFC를 확인하여, 이 삭제 대상인 SFC와 관련된 플로우 룰을 확인하고, 이 플로우 룰의 식별정보와 플로우 룰을 저장부(110)의 복원 테이블에 저장한다(S505).
이어서, 룰 적용부(130)는 삭제 대상이 되는 플로우 룰의 식별정보가 포함된 룰 적용 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S507, S509, S511). 이때, SDN 오케스트레이터(100)의 룰 적용부(130)는 룰 적용 대상인 네트워크 장치의 식별정보를 룰 적용 메시지에 기록한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 룰 적용 메시지에 포함된 플로우 룰의 식별정보 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 삭제 대상 플로우 룰의 식별정보가 포함된 룰 삭제 메시지를 전송한다(S513a ~ S513d).
다음으로, 룰 삭제 메시지를 수신한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 상기 플로우 룰과 플로우 룰 식별정보를 자신의 룰 테이블에 삭제함으로서, 해당 플로우 룰의 적용을 중단한다.
그리고 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1), 네트워크 장치#3-2(420-2) 각각은, 상기 플로우 룰 적용 결과를 SDN 컨트롤러로 보고한다(S513e ~ S513h). 즉, 네트워크 장치#1-1(220-1)은, 플로우 룰이 정상적으로 삭제되면, 적용 성공 메시지를 SDN 컨트롤러#1(210)로 전송하고(S513e), 네트워크 장치#2-2(320-2)는 플로우 룰이 정상적으로 삭제되면, 적용 성공 메시지를 SDN 컨트롤러#2(310)로 전송한다(S513f). 또한, 네트워크 장치#3-1(420-1)은 플로우 룰이 정상적으로 삭제되면, 적용 성공 메시지를 SDN 컨트롤러#3(410)로 전송한다(S513g). 한편, 네트워크 장치#3-2(420-2)는 플로우 룰이 정상적으로 삭제되지 않음에 따라, 적용 실패 메시지를 SDN 컨트롤러#3(410)로 전송한다(S513h).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 적용 결과를 보고한다(S515 ~ S519). 즉, SDN 컨트롤러#1(210)는 SDN 도메인#1(200)에서 정상적으로 플로우 룰의 적용이 중단되었을 의미하는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S515). 또한, SDN 컨트롤러#2(310)는 SDN 도메인#2(300)에서 정상적으로 플로우 룰의 적용이 중단되었을 의미하는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S317). 반면에, SDN 컨트롤러#3(410)는 네트워크 장치#3-2(420-2)에서 룰 적용의 중단에 실패되고, 네트워크 장치#3-1(420-1)에서 룰 적용 중단에 성공하였음을 나타내는 적용 결과를 SDN 오케스트레이터(100)로 보고한다(S519).
그러면, SDN 오케스트레이터(100)의 룰 복원부(140)는 각 SDN 컨트롤러로부터 수신한 적용 결과를 취합하여 모든 도메인에 플로우 룰이 정상적으로 중단되었는지 여부를 판별한다. SDN 오케스레이터(100)의 룰 복원부(140)는 상기 플로우 룰이 모든 도메인에서 정상적으로 중단된 것으로 확인되면, 롤백을 진행하지 않는다. 반면에, 룰 복원부(140)는 상기 플로우 룰이 어느 한 도메인에서라도 정상적으로 중단되지 않으면, 플로우 룰에 대한 롤백(rollback)을 결정한다(S521).
롤백을 결정한 룰 복원부(140)는 각각의 SDN 컨트롤러(210, 310, 410)로부터 수신한 적용 결과 보고를 토대로, 플로우 룰 적용이 중단된 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2) 및 네트워크 장치#3-1(420-1)임을 인식한다. 이어서, 룰 복원부(140)는 상기 중단된 플로우 룰에 대한 식별정보와 플로우 룰을 저장부(110)의 복원 테이블에서 확인한 후, 이 플로우 룰의 식별정보와 플로우 룰이 포함된 복원 메시지를 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410)으로 각각 전송한다(S523, S525, S527). 이때, SDN 오케스트레이터(100)의 룰 복원부(140)는 룰 적용 대상인 네트워크 장치의 식별정보를 복원 메시지에 기록한다.
이어서, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 복원 메시지에 포함된 플로우 룰 식별정보, 플로우 룰 및 네트워크 장치 식별정보를 확인하고, 식별정보에 해당하는 네트워크 장치로 상기 플로우 룰 식별정보와 플로우 룰을 전송한다(S529a ~ S529c).
다음으로, 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 플로우 룰 및 상기 플로우 룰 식별정보를 자신의 룰 테이블에 기록함으로써, 중단되었던 플로우 룰을 다시 적용하여 트래픽을 처리한다.
이어서, 플로우 룰을 재적용한 네트워크 장치#1-1(220-1), 네트워크 장치#2-2(320-2), 네트워크 장치#3-1(420-1) 각각은, 상기 플로우 룰의 적용 결과를 SDN 컨트롤러로 보고한다(S529d ~ S529f).
다음으로, SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각은 SDN 오케스트레이터(100)로 룰 적용 결과를 보고한다(S531 ~ S535).
이어서, SDN 오케스트레이터(100)의 룰 복원부(140)는 SDN 컨트롤러#1(210), SDN 컨트롤러#2(310), SDN 컨트롤러#3(410) 각각으로부터 수신한 룰 적용 결과를 취합하여, 플로우 룰에 대한 롤백이 정상적으로 진행되었는지 여부를 판별한다. 룰 복원부(140)는 롤백이 정상적으로 이루어지지 않은 네트워크 장치가 존재하는 결과, 기존의 플로우 룰이 해당 네트워크 장치에서 다시 적용되도록, 롤백에 실패한 도메인의 SDN 컨트롤러로 상기 복원 메시지를 계속적으로 전송한다.
상술한 바와 같이 본 발명은 SDN 도메인별로 플로우 룰을 적용하는 과정에서, 플로우 룰이 미적용되는 도메인이 감지되면, 각 도메인의 플로우 룰을 바로 직전의 적용된 플로우 룰로 원복함으로써, 플로우 룰이 일관적으로 변경되지 않은 상황에서 발생하는 서비스 일관성 상실을 방지하고 더불어 서비스 신뢰성을 향상시킨다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : SDN 오케스트레이터 110 : 저장부
120 : 장치 식별부 130 : 룰 적용부
140 : 룰 복원부
200,300,400 : SDN 도메인 210, 310, 410 : SDN 컨트롤러
220, 320, 420 : 네트워크 장치

Claims (9)

  1. SDN 환경에서 각 도메인에 적용되는 플로우 룰을 제어하는 장치에 있어서,
    룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여, 플로우 룰을 각 도메인에서 적용시키는 룰 적용부; 및
    각 도메인의 SDN 컨트롤러로부터 수신한 상기 플로우 룰의 적용 결과를 분석하여 상기 플로우 룰이 각 도메인에 성공적으로 적용되었는지 여부를 판별하고, 상기 판별 결과 적용에 실패한 도메인 존재하면, 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 플로우 룰을 직전에 적용된 플로우 룰로 복원시키는 룰 복원부;를 포함하는 플로우 룰 제어 장치.
  2. 제1항에 있어서,
    상기 룰 적용부는, 구 버전의 플로우 룰을 복원 테이블에 저장하고, 신 버전의 플로우 룰이 포함된 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 신 버전의 플로우 룰을 각 도메인에서 적용시키고,
    상기 룰 복원부는, 상기 신 버전의 플로우 룰의 적용에 실패한 도메인이 존재하면, 상기 복원 테이블에 저장중인 구 버전의 플로우 룰이 포함된 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 구 버전의 플로우 룰을 각 도메인에서 복원시키는 것을 특징으로 하는 플로우 룰 제어 장치.
  3. 제1항에 있어서,
    상기 룰 적용부는, 삭제 대상인 플로우 룰을 복원 테이블에 저장하고, 삭제 대상인 플로우 룰의 식별정보가 포함된 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 플로우 룰의 삭제를 각 도메인에서 적용시키고,
    상기 룰 복원부는, 상기 플로우 룰의 삭제에 실패한 도메인이 존재하면, 상기 복원 테이블에 저장중인 상기 플로우 룰이 포함된 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 플로우 룰을 각 도메인에서 복원시키는 것을 특징으로 하는 룰 제어 장치.
  4. 제1항에 있어서,
    상기 룰 적용부는, 상기 신규 플로우 룰이 포함된 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 신규 플로우 룰을 각 도메인에서 적용시키고,
    상기 룰 복원부는, 상기 신규 플로우 룰의 적용에 실패한 도메인이 존재하면, 상기 신규 플로우 룰의 삭제를 지시하는 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 적용된 상기 신규 플로우 룰을 삭제하고 적용을 중단하는 것을 특징으로 하는 룰 제어 장치.
  5. 제1항에 있어서,
    상기 플로우 룰이 적용되는 하나 이상의 네트워크 장치를 식별하는 장치 식별부;를 더 포함하고,
    상기 룰 적용부는, 상기 식별한 네트워크 장치가 속하는 도메인의 SDN 컨트롤러로 상기 룰 적용 메시지를 전송하는 것을 특징으로 하는 룰 제어 장치.
  6. 오케스트레이터가 SDN 환경에서 플로우 룰을 복원하는 방법으로서,
    룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여, 각 도메인별로 플로우 룰을 적용시키는 단계:
    각 도메인의 SDN 컨트롤러로부터 상기 플로우 룰의 적용 결과를 수신하는 단계;
    상기 수신한 상기 플로우 룰의 적용 결과를 분석하여 상기 플로우 룰이 각 도메인에 성공적으로 적용되었는지 여부를 판별하는 단계; 및
    상기 판별 결과 적용에 실패한 도메인 존재하면, 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 플로우 룰을 직전에 적용된 플로우 룰로 복원시키는 단계;를 포함하는 플로우 룰 복원 방법.
  7. 제6항에 있어서,
    상기 적용하는 단계는, 신 버전의 플로우 룰이 포함된 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 신 버전의 플로우 룰을 각 도메인에서 적용시키고,
    상기 복원시키는 단계는, 상기 신 버전의 플로우 룰이 적용되기 전에 적용된 구 버전의 플로우 룰을 확인하고, 이 구 버전의 플로우 룰이 포함된 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 구 버전의 플로우 룰을 각 도메인에서 복원시키는 것을 특징으로 하는 플로우 룰 복원 방법.
  8. 제6항에 있어서,
    상기 적용하는 단계는, 플로우 룰을 삭제시키기 위한 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 플로우 룰의 삭제를 각 도메인에서 적용시키고,
    상기 복원시키는 단계는, 상기 플로우 룰이 포함된 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 플로우 룰을 각 도메인에서 복원시키는 것을 특징으로 하는 플로우 룰 복원 방법.
  9. 제6항에 있어서,
    상기 적용하는 단계는, 신규 플로우 룰이 포함된 룰 적용 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 상기 신규 플로우 룰을 각 도메인에서 적용시키고,
    상기 복원시키는 단계는, 상기 신규 플로우 룰의 삭제를 지시하는 복원 메시지를 각 도메인의 SDN 컨트롤러로 전송하여 각 도메인의 적용된 상기 신규 플로우 룰을 삭제하고 적용을 중단하는 것을 특징으로 하는 플로우 룰 복원 방법.
KR1020170178058A 2017-06-27 2017-12-22 Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치 KR20190001495A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170081203 2017-06-27
KR1020170081203 2017-06-27

Publications (1)

Publication Number Publication Date
KR20190001495A true KR20190001495A (ko) 2019-01-04

Family

ID=65018324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170178058A KR20190001495A (ko) 2017-06-27 2017-12-22 Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR20190001495A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220041708A (ko) 2020-09-25 2022-04-01 아프로비에이 주식회사 차량용 테일게이트 텐트

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220041708A (ko) 2020-09-25 2022-04-01 아프로비에이 주식회사 차량용 테일게이트 텐트

Similar Documents

Publication Publication Date Title
US10671545B2 (en) Asynchronous encryption and decryption of virtual machine memory for live migration
US11481249B2 (en) Service migration method, apparatus, and server that are used in software upgrade in NFV architecture
US9588796B2 (en) Live migration with pre-opened shared disks
US20040049553A1 (en) Information processing system having data migration device
US20190319896A1 (en) Packet Forwarding Method And Physical Host
CN104871493B (zh) 用于高性能计算网络中的通信信道故障切换的方法和设备
CN100399274C (zh) 一种虚拟机系统输入/输出设备动态分配的方法及其设备
US10110418B2 (en) Cloud computing service architecture
US20110072080A1 (en) Computing system and method of changing i/o configuration thereof
EP3462671B1 (en) Virtual network function resource management method and device
EP2821925A1 (en) Distributed data processing method and apparatus
US20200319983A1 (en) Redundancy Method, Device, and System
CN104094229A (zh) 用于基于扩展的主机信道适配器(hca)模型支持虚拟机的动态迁移的系统和方法
EP3188008B1 (en) Virtual machine migration method and device
US10496294B2 (en) Data migration method and computer system
EP3358790B1 (en) Network function virtualization resource processing method and virtualized network function manager
CN104991811B (zh) 隔离系统切换时进程运行状态的调整方法以及智能终端
US20150071091A1 (en) Apparatus And Method For Monitoring Network Performance
US20080115127A1 (en) Apparatus and method for carrying out information processing by virtualization
KR20190001495A (ko) Sdn 환경에서 플로우 룰 복원 방법 및 이를 위한 장치
US11349702B2 (en) Communication apparatus, system, rollback method, and non-transitory medium
WO2018192475A1 (zh) 虚机规格调整方法及装置
KR20190000757A (ko) Sdn 환경에서 플로우 룰 적용 방법 및 이를 위한 장치
WO2018015983A1 (en) Communication apparaus, system, rollback method, and program
US20160366013A1 (en) Network system