KR101717363B1 - Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치 - Google Patents

Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR101717363B1
KR101717363B1 KR1020150110987A KR20150110987A KR101717363B1 KR 101717363 B1 KR101717363 B1 KR 101717363B1 KR 1020150110987 A KR1020150110987 A KR 1020150110987A KR 20150110987 A KR20150110987 A KR 20150110987A KR 101717363 B1 KR101717363 B1 KR 101717363B1
Authority
KR
South Korea
Prior art keywords
controller
role
switch
master
message
Prior art date
Application number
KR1020150110987A
Other languages
English (en)
Other versions
KR20160018412A (ko
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 KR20160018412A publication Critical patent/KR20160018412A/ko
Application granted granted Critical
Publication of KR101717363B1 publication Critical patent/KR101717363B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

다중 컨트롤러로 구성되는 SDN 환경에서 컨트롤러의 역할을 변경하는 방법 및 장치에 관한 기술이 개시된다. 컨트롤러의 역할 변경 방법은, 소프트웨어 정의 네트워킹 환경에서 스위치가 컨트롤러의 역할을 변경하는 방법에 있어서, 마스터 권한을 요청하는 제1 컨트롤러로부터 역할 변경 메시지를 수신하는 단계와; 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경하는 단계를 포함한다. 따라서, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화함으로써, 서비스의 연속성을 보장할 수 있다.

Description

SDN 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치{METHOD AND APPARATUS FOR CHANGING ROLE OF CONTROLLER IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}
본 발명은 SDN(Software Defined Networking) 기술에 관한 것으로, 더욱 상세하게는 다중 컨트롤러로 구성되는 SDN 환경에서 컨트롤러의 역할을 변경하는 방법 및 장치에 관한 것이다.
SDN(Software Defined Networking)은 제어 평면(control plane)과 데이터 평면(data plane)이 물리적으로 완전히 분리된 형태의 네트워크 아키텍처로서 최근 통신시장에서 이슈화되고 있는 차세대 네트워킹 기술이다.
SDN 기반에서는 제어 평면을 소프트웨어적으로 프로그래밍하여 네트워크 장비의 원격 자동 제어가 가능하기 때문에 통신 사업자는 보다 유연하게 네트워크를 운용할 수 있다.
최근 들어, 스위치의 트래픽 포워딩 기능과 스위치의 제어 기능을 분리하여 통신 시스템을 효율적으로 운용하는 기술에 대한 표준화가 ONF(Open Networking Foundation), IETF(Internet Engineering Task Force), ETSI(European Telecommunications Standards Institute) ISG NFV(Network Function Virtualization) 및 ITU-T(International Telecommunications Union Telecommunication) 등을 중심으로 진행되고 있다.
이들 중, SDN 기술 중의 하나인 OpenFlow 기술 표준화를 추진하고 있는 ONF(Open Networking Foundation) 표준화 단체만을 간단히 언급하면, SDN 환경은 다수의 SDN 컨트롤러로 구성되고 스위치는 하나 이상의 SDN 컨트롤러와 연결될 수 있다. 여기에서, SDN 컨트롤러들은 Master, Slave, Equal과 같은 세가지 역할로 구분되며 별도의 채널을 통해 SDN 컨트롤러들 간에 정보를 교환할 수 있다.
그러나, ONF 뿐만 아니라 다른 표준화 단체에서도 다수의 초기 Master 역할의 컨트롤러에게 Slave 역할로 상태가 변경되었음을 알리는 메시지를 보내는 시기에 대한 정의가 없으며, 이로 인하여 초기 Master 역할의 컨트롤러가 자신의 역할이 Slave로 변경되었음을 통보받기 전에 스위치로 보내는 제어 메시지들은 스위치에서 무시되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 다수의 컨트롤러로 구성되는 SDN 환경에서 스위치가 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄이는 방법을 제공하는데 있다.
상기 목적들을 달성하기 위한 본 발명의 일 측면에 따른 컨트롤러의 역할 변경 방법은, 소프트웨어 정의 네트워킹 환경에서 스위치가 컨트롤러의 역할을 변경하는 방법에 있어서, 마스터 권한을 요청하는 제1 컨트롤러로부터 역할 변경 메시지를 수신하는 단계와; 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경하는 단계를 포함한다.
여기에서, 상기 역할 변경 응답 메시지는, 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP 주소를 더 포함할 수 있다.
여기에서, 상기 방법은, 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 더 포함할 수 있다.
여기에서, 상기 상태 설정 메시지는, 스위치 또는 마스터 컨트롤러로 변경된 제1 컨트롤러에 의해 제2 컨트롤러로 전송될 수 있다.
여기에서, 상기 상태 설정 메시지는, 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함할 수 있다.
여기에서, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는, 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상태 설정 메시지를 제2 컨트롤러로 전송함에 의해 수행될 수 있다.
여기에서, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는, 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 제2 컨트롤러가 상기 스위치로 제어 메시지를 전송한 경우에, 상태 설정 메시지를 제2 컨트롤러로 전송함에 의해 수행될 수 있다.
상기 목적들을 달성하기 위한 본 발명의 다른 측면에 따른 컨트롤러의 역할 변경 방법은, 소프트웨어 정의 네트워킹 환경에서 마스터 권한을 요청하는 제1 컨트롤러에 의해 수행되는 컨트롤러의 역할 변경 방법에 있어서, 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송하는 단계와; 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 스위치로부터 수신함으로써 마스터 컨트롤러로 역할을 변경하는 단계와; 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 포함한다.
여기에서, 상기 방법은, 상태 설정 메시지에 대한 응답으로 상기 스위치가 처리할 패킷 정보를 제2 컨트롤러로부터 수신하는 단계와; 스위치가 처리할 패킷 정보에 따라 스위치가 패킷을 처리하도록 제어하는 단계를 더 포함할 수 있다.
상기 목적들을 달성하기 위한 본 발명의 또 다른 측면에 따른 컨트롤러의 역할 변경 방법은, 소트웨어 정의 네트워킹 환경에서 기존의 마스터 컨트롤러인 제2 컨트롤러에서 수행되는 컨트롤러의 역할 변경 방법에 있어서, 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 상태 설정 메시지를 수신함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계와; 상태 설정 메시지에 대한 응답으로 스위치가 처리할 패킷 정보를 마스터 컨트롤러로 변경된 제1 컨트롤러로 전송하는 단계를 포함한다.
여기에서, 상기 상태 설정 메시지는, 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 미리 설정된 시간이 경과한 후에 수신될 수 있다.
여기에서, 상기 상태 설정 메시지는, 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 제2 컨트롤러가 스위치로 제어 메시지를 전송한 경우에 수신될 수 있다.
상기와 같은 본 발명에 따른 컨트롤러의 역할 변경 방법은, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄일 수 있다.
또한, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화함으로써, 서비스의 연속성을 보장할 수 있다.
도 1은 컨트롤러와 스위치간 연결 설정 과정을 나타내는 순서도이다.
도 2는 컨트롤러의 역할 변경의 일반적 과정을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다
도 4는 본 발명의 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 장치의 구성을 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 위한 메시지를 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에서 언급되는 컨트롤러는 SDN 서비스를 안정적으로 제공하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미하는 것으로, 물리적인 구현 형태나 구현 위치 등에 한정되지 않는다. 예를 들어, 컨트롤러는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미한다.
또한, 본 발명에서 언급되는 네트워크 장치는 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미하는 것으로, ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소, 라우터 요소, 포워딩 요소 등을 의미한다.
또한, 본 발명에서 언급되는 마스터(Master) 역할의 컨트롤러(마스터 컨트롤러)는 적어도 하나의 스위치를 일차적으로 제어하는 컨트롤러를 의미하는 것으로 하나 이상으로 구성될 수 있다. 그리고, 슬레이브/이퀄(Slave/Equal) 역할의 컨트롤러(슬레이브/이퀄 컨트롤러)는 마스터 컨트롤러가 다양한 원인으로 인하여 스위치의 제어 기능을 수행할 수 없는 경우, 마스터 컨트롤러의 기능을 대체하여 수행하는 컨트롤러를 의미한다.
또한, 본 발명의 실시예들에서는 컨트롤러의 역할 변경을 위한 동작이 ONF에서 정의된 파라미터 및/또는 메시지 형태(예를 들면, Flow table entry)를 이용하는 것으로 도시하였으나, 본 발명의 기술적 사상이 ONF에 정의된 내용으로만 한정되는 것은 아니다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 컨트롤러와 스위치간 연결 설정 과정을 나타내는 순서도이고, 도 2는 컨트롤러의 역할 변경의 일반적 과정을 설명하기 위한 순서도이다.
도 1을 참조하면, 스위치는 SDN 컨트롤러의 IP 주소에 대해 3-way handshake를 시작하여 TCP 연결을 설정할 수 있다(S110). 여기서, SDN 환경의 구성을 위하여 사전에 스위치를 제어할 SDN 컨트롤러의 IP 주소를 스위치에 설정할 수 있다.
TCP 연결을 설정한 후, SDN 컨트롤러와 스위치는 오픈플로우 프로토콜의 버전을 확인하기 위해 Hello 메시지를 교환할 수 있다(S121, S123).
오픈플로우 프로토콜의 버전을 확인한 후, 스위치가 지원하는 기능을 확인하기 위해 FeaturesRequest와 FeaturesReply 메시지를 교환할 수 있다(S131, S133).
스위치가 지원하는 기능을 확인한 후에, SDN 컨트롤러는 스위치에게 필요한 설정을 보내기 위해 SetConfiguration 메시지를 스위치로 통지할 수 있다(S140).
마지막으로, 스위치의 상태를 확인하기 위해 StatusRequest와 StatusReply 메시지를 교환할 수 있다(S151, S153).
도 2를 참조하면, SDN 컨트롤러와 스위치는 도 1의 절차를 통해 연결이 설정되어 통신 준비가 갖추어진 상태에서 컨트롤러의 역할을 변경하기 위한 메시지를 주고 받을 수 있다.
스위치는 다수의 컨트롤러와 연결될 수 있고, 다수의 컨트롤러에 의한 제어를 받을 수 있다.
예를 들어, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100).
도 2에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다.
먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S211).
스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S213). 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락할 수 있다.
따라서, 스위치는 제1 컨트롤러를 마스터 컨트롤러로 인식함과 동시에 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 인식하게 된다.
그러나, 스위치가 제2 컨트롤러를 슬레이브 컨트롤러로 인식하더라도, 제2 컨트롤러는 자신의 역할이 슬레이브 컨트롤러로 변경되었는 Controller role status 메시지를 스위치로부터 받지 못한 상태일 수 있다.
즉, 제2 컨트롤러는 자신의 역할이 슬레이브 컨트롤러로 변경되었음을 인식하지 못한 상태이기 때문에 스위치로 제어 메시지를 전송할 수 있고, 이러한 경우, 스위치는 제2 컨트롤러의 제어 메시지를 무시할 수 있다(S220).
따라서, 스위치가 제어 메시지를 수신한 후에, 제2 컨트롤러의 역할이 슬레이브 컨트롤러로 변경되었는 Controller role status 메시지를 제2 컨트롤러로 전송하는 경우가 발생할 수 있으며(S230), 이로 인하여 패킷 제어를 위한 메시지의 누락이 발생할 수 있는 문제점이 발생한다.
도 3은 본 발명의 일 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다
도 3을 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100).
도 3에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다.
먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S311).
스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 제2 컨트롤러의 IP 및 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S213). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다. 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 제2 컨트롤러에 대한 정보 및 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다.
제1 컨트롤러는 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S321).
여기서, 상태 설정 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써, 제2 컨트롤러는 스위치가 처리할 패킷 정보를 제1 컨트롤러로 전송할 수 있다(S323).
따라서, 제1 컨트롤러는 제2 컨트롤러로부터 수신한 스위치가 처리할 패킷 정보에 기반하여 미처리 상태의 패킷을 처리하기 위하여 스위치와 메시지를 교환할 수 있다(S330).
도 4는 본 발명의 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 4를 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100).
도 4에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다.
제1 컨트롤러와 제2 컨트롤러는 별도의 채널을 통해 상호 협상을 하여 SDN 네트워크의 토폴로지 맵(컨트롤러와 스위치간 연결 정보)과 같은 정보를 상호 공유할 수 있다(S401).
슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S411).
스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S413). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다.
스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다. 즉, S401를 통하여 토폴로지 맵에 대한 정보를 상호 공유함으로써, 역할 변경 응답 메시지는 제2 컨트롤러의 IP에 대한 정보를 포함할 필요가 없을 수 있다.
제1 컨트롤러는 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S421).
여기서, 상태 설정 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써, 제2 컨트롤러는 스위치가 처리할 패킷 정보를 제1 컨트롤러로 전송할 수 있다(S423).
따라서, 제1 컨트롤러는 제2 컨트롤러로부터 수신한 스위치가 처리할 패킷 정보에 기반하여 미처리 상태의 패킷을 처리하기 위하여 스위치와 메시지를 교환할 수 있다(S430).
도 5는 본 발명의 또 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 5를 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100).
도 5에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다.
먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S511).
스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 제2 컨트롤러의 IP 및 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S513). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다. 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 제2 컨트롤러에 대한 정보 및 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다.
스위치는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 타이머(timer)를 동작시킬 수 있다(S520).
스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단할 수 있다(S531).
스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단되면, 상태 설정 메시지를 제2 컨트롤러로 전송함으로써 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S533).
또한, 스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단되지 않으면, 스위치가 제2 컨트롤러로부터 제어 메시지를 수신하였는지 판단할 수 있다(S541).
스위치는 제2 컨트롤러로부터 제어 메시지를 수신한 것으로 판단된 경우에 상태 설정 메시지를 제2 컨트롤러로 전송함으로써 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S534).
또한, 스위치는 제2 컨트롤러로부터 제어 메시지를 수신할 때까지 타이머의 시간을 감소시킬 수 있고(S550), 이를 통하여 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과하였는지 계속적으로 판단할 수 있다.
도 6은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 장치의 구성을 설명하기 위한 블록도이다.
도 6을 참조하면, 본 발명의 실시예에 따른 컨트롤러의 역할을 변경하는 방법은 컨트롤러(100)와 스위치(200)가 연동하여 수행될 수 있다.
먼저, 컨트롤러(100)는 플로우 테이블 관리부(110), 스위치 연동 처리부(120) 및 역할 변경 처리부(130)를 포함한다.
플로우 테이블 관리부(110)는 다수의 스위치(200)에 대한 플로우 테이블을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.
스위치 연동 처리부(120)는 다수의 스위치(200)와 컨트롤러(100)가 통신할 수 있도록 프로토콜을 처리한다.
역할 변경 처리부(130)는 스위치(200)에 대한 컨트롤러(100)의 역할을 설정, 변경 등을 하기 위해 역할 변경 메시지, 상태 설정 메시지를 송수신하는 기능을 수행할 수 있다. 즉, 역할 변경 처리부(130)는 역할 변경 메시지를 스위치(200)로 송신하도록 하거나, 스위치(200)로부터 수신한 상태 설정 메시지를 처리하여 컨트롤러(100)의 역할을 마스터에서 슬레이브로 또는 슬레이브에서 마스터로 설정/변경할 수 있다.
다음으로, 스위치(200)는 플로우 테이블 관리부(210), 컨트롤러 연동 처리부(220), 컨트롤러 역할 관리부(230) 및 타이머 관리부(240)를 포함한다.
플로우 테이블 관리부(210)는 스위치(200) 자신에 대한 플로우 테이블을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.
컨트롤러 연동 처리부(220)는 컨트롤러(100)와 스위치(200)가 통신할 수 있도록 프로토콜을 처리한다.
컨트롤러 역할 관리부(230)는 스위치(200)에 대한 컨트롤러(100)의 역할을 설정, 변경 등을 하기 위해 역할 변경 메시지, 상태 설정 메시지를 송수신하는 기능을 수행한다. 즉, 컨트롤러 역할 관리부(230)는 역할 변경 메시지를 컨트롤러(100)로부터 수신하여 처리하거나, 상태 설정 메시지를 컨트롤러(100)로 전송하여 컨트롤러(100)의 역할을 마스터에서 슬레이브로 또는 슬레이브에서 마스터로 설정/변경할 수 있다.
타이머 관리부(240)는 기존에 슬레이브 컨트롤러이었던 제1 컨트롤러를 마스터 컨트롤러로 변경한 후에 경과하는 시간을 확인할 수 있도록 한다. 예를 들어, 타이머 관리부(240)는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 경우, 이를 컨트롤러 역할 관리부(230)에 알릴 수 있다.
따라서, 컨트롤러 역할 관리부(230)는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상태 설정 메시지를 기존에 마스터 컨트롤러이었던 제2 컨트롤러로 전송할 수 있다.
상술한 본 발명의 실시예에 따른 컨트롤러(100) 및 스위치(200)의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 본 발명의 실시예에 따른 컨트롤러(100) 및 스위치(200)의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 위한 메시지를 설명하기 위한 예시도이다.
도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경 방법을 표준에 근거하여 실행하기 위하여 예시적으로 ONF OpenFlow 표준안(v1.4)에서 정의될 수 있는 컨트롤러의 역할 변경 요청 및 응답을 위한 메시지의 주요 파라미터에 대한 예시를 나타낸다.
상세하게는, 컨트롤러의 역할 변경 요청 및 이에 대한 응답 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보 및 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP에 대한 정보를 추가적으로 정의할 수 있다.
예를 들어, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 ‘unit32_t xid; /* Transaction id associated with final processed packet. */’로 표현되고, 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP는 ‘unit32_t controller_ip; /* IP address of the master controller. */’로 표현될 수 있다.
도 7은 OpenFlow 표준안의 메시지를 예시적으로 설명하지만 이는 본 발명의 기술적 사상을 표준 관점에서 구체적으로 설명하기 위해 특정 표준안을 선택한 것일 뿐, 본 발명의 사상이 OpenFlow 표준안에 부합하는 메시지 형태로만 한정되는 것은 아니며, 다른 표준화 단체에서 정의하고 있는 각종 메시지 형태로 표현될 수 있음은 자명하다.
상술한 본 발명의 실시예에 따른 컨트롤러의 역할 변경 방법은, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄일 수 있다.
또한, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화함으로써, 서비스의 연속성을 보장할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 컨트롤러 110: 플로우 테이블 관리부
120: 스위치 연동 처리부 130: 역할 변경 처리부
200: 스위치 210: 플로우 테이블 관리부
220: 컨트롤러 연동 처리부 230: 컨트롤러 역할 관리부
240: 타이머 관리부

Claims (15)

  1. 소프트웨어 정의 네트워킹 환경에서 스위치가 컨트롤러의 역할을 변경하는 방법에 있어서,
    마스터 권한을 요청하는 제1 컨트롤러로부터 역할 변경 메시지를 수신하는 단계;
    상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 상기 제1 컨트롤러로 전송함으로써, 상기 제1 컨트롤러를 마스터 컨트롤러로 변경하는 단계; 및
    기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 상기 제2 컨트롤러로 전송함으로써, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 포함하고,
    상기 상태 설정 메시지는, 상기 스위치 또는 마스터 컨트롤러로 변경된 상기 제1 컨트롤러에 의해 상기 제2 컨트롤러로 전송되며, 상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는,
    컨트롤러의 역할 변경 방법.
  2. 청구항 1에 있어서,
    상기 역할 변경 응답 메시지는,
    기존의 마스터 컨트롤러인 제2 컨트롤러의 IP 주소를 더 포함하는 것을 특징으로 하는,
    컨트롤러의 역할 변경 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 청구항 1에 있어서,
    상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는,
    상기 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상기 상태 설정 메시지를 상기 제2 컨트롤러로 전송함에 의해 수행되는 것을 특징으로 하는,
    컨트롤러의 역할 변경 방법.
  7. 청구항 1에 있어서,
    상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는,
    상기 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 상기 제2 컨트롤러가 상기 스위치로 제어 메시지를 전송한 경우에, 상기 상태 설정 메시지를 상기 제2 컨트롤러로 전송함에 의해 수행되는 것을 특징으로 하는,
    컨트롤러의 역할 변경 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020150110987A 2014-08-07 2015-08-06 Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치 KR101717363B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140101954 2014-08-07
KR1020140101954 2014-08-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015344A Division KR20170017967A (ko) 2014-08-07 2017-02-03 Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치

Publications (2)

Publication Number Publication Date
KR20160018412A KR20160018412A (ko) 2016-02-17
KR101717363B1 true KR101717363B1 (ko) 2017-03-16

Family

ID=55457605

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020150110987A KR101717363B1 (ko) 2014-08-07 2015-08-06 Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치
KR1020170015344A KR20170017967A (ko) 2014-08-07 2017-02-03 Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020170015344A KR20170017967A (ko) 2014-08-07 2017-02-03 Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (2) KR101717363B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101681516B1 (ko) * 2016-05-31 2016-12-01 아토리서치(주) 소프트웨어 정의 네트워킹 환경에서 이중화 망을 운용하는 방법, 장치 및 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012238083A (ja) * 2011-05-10 2012-12-06 Nec Corp データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
JP2013046290A (ja) * 2011-08-25 2013-03-04 Buffalo Inc 通信装置、通信システムおよび通信設定情報の共有方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100961387B1 (ko) * 2008-01-11 2010-06-07 에스케이 텔레콤주식회사 이동통신 환경에서의 전송 장치 및 방법
KR101478944B1 (ko) * 2014-02-24 2015-01-02 연세대학교 산학협력단 복수의 컨트롤러를 구비한 소프트웨어 정의 네트워크에서 스위치 접속 변경 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012238083A (ja) * 2011-05-10 2012-12-06 Nec Corp データベースシステム、マスタースレーブ管理方法およびマスタースレーブ管理プログラム
JP2013046290A (ja) * 2011-08-25 2013-03-04 Buffalo Inc 通信装置、通信システムおよび通信設定情報の共有方法

Also Published As

Publication number Publication date
KR20160018412A (ko) 2016-02-17
KR20170017967A (ko) 2017-02-15

Similar Documents

Publication Publication Date Title
KR101221551B1 (ko) 로컬 호스트 및 관리 제어기 사이에 패스 스로우 통신 메커니즘에 기초한 네트워크 제어기
US8369244B2 (en) Method for operating an ethernet-capable field-bus device
EP2924932A1 (en) Link keepalive method, controller and switch
CN105450779B (zh) 一家电设备连接多服务器的方法
EP3197109B1 (en) Sdn architecture, sdn architecture-based message forwarding method
KR101946173B1 (ko) 통신 장치, 통신 시스템 및 통신 방법
KR101717363B1 (ko) Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치
US7860090B2 (en) Method for processing LMP packets, LMP packet processing unit and LMP packet processing node
US9596129B2 (en) Communication system, control apparatus, communication apparatus, information-relaying method, and program
CN111669333A (zh) 数据传输方法、装置、计算设备和存储介质
CN109120520B (zh) 一种故障处理方法和设备
US8737413B2 (en) Relay server and relay communication system
US10263915B2 (en) Method for processing event between controller and network device
KR20150085464A (ko) 서버 연결 장치 및 방법
EP3224997B1 (en) Communication path switching apparatus, method for controlling communication path switching apparatus, and computer program product
KR101740799B1 (ko) Sdn 환경에서 네트워크 서비스를 위한 장애 극복 방법
KR101737697B1 (ko) Sdn 환경에서 컨트롤러의 부하 분산 방법 및 장치
KR101969304B1 (ko) 패킷-아웃 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램
WO2015100978A1 (zh) 软件自定义网络中自动发现控制器的方法、控制器及系统
JP7000955B2 (ja) 制御装置、arp応答機器、通信システム、および同期方法
KR101735622B1 (ko) 고가용성 시스템 및 그의 시간 동기화 방법
KR20160024762A (ko) 컨트롤러와 네트워크 장치 간에 번들 능력을 통보하는 방법 및 장치
WO2016084314A1 (en) Communication path switching apparatus, method for controlling communication path switching apparatus, and computer program product
KR102207936B1 (ko) 스위치 간의 정보 동기화 방법 및 시스템
WO2019027043A1 (ja) 通信ノード、通信用エントリの管理方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant