KR20160018412A - Method and apparatus for changing role of controller in software defined networking environment - Google Patents

Method and apparatus for changing role of controller in software defined networking environment Download PDF

Info

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

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]

Landscapes

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

Abstract

Disclosed are a method and an apparatus for changing a role of a controller in an SDN environment consisting of multiple controllers. The method for changing a role of a controller is performed by a switch for changing the role of the controller in the SDN environment and includes the following steps: receiving a roll change message from a first controller for requesting master authority; and changing the first controller into a master controller by transmitting a role change response message including transaction information of a packet, which is finally processed by the switch, to the first controller. Therefore, a method and a time for transmitting a message for notifying that a role has been changed from a master to a slave to a controller which has functioned as the master are specified. Consequently, continuity of a server can be ensured.

Description

SDN 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치{METHOD AND APPARATUS FOR CHANGING ROLE OF CONTROLLER IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}[0001] METHOD AND APPARATUS FOR CHANGING ROLE OF CONTROLLER IN SOFTWARE DEFINED NETWORKING ENVIRONMENT [0002]

본 발명은 SDN(Software Defined Networking) 기술에 관한 것으로, 더욱 상세하게는 다중 컨트롤러로 구성되는 SDN 환경에서 컨트롤러의 역할을 변경하는 방법 및 장치에 관한 것이다.The present invention relates to SDN (Software Defined Networking) technology, and more particularly, to a method and apparatus for changing the role of a controller in an SDN environment composed of multiple controllers.

SDN(Software Defined Networking)은 제어 평면(control plane)과 데이터 평면(data plane)이 물리적으로 완전히 분리된 형태의 네트워크 아키텍처로서 최근 통신시장에서 이슈화되고 있는 차세대 네트워킹 기술이다. SDN (Software Defined Networking) is a network architecture in which the control plane and the data plane are physically separated from each other, and is a next generation networking technology that has recently become an issue in the communication market.

SDN 기반에서는 제어 평면을 소프트웨어적으로 프로그래밍하여 네트워크 장비의 원격 자동 제어가 가능하기 때문에 통신 사업자는 보다 유연하게 네트워크를 운용할 수 있다.On the SDN basis, the control plane can be programmed by software to enable remote automatic control of the network equipment, which enables the carrier to operate the network more flexibly.

최근 들어, 스위치의 트래픽 포워딩 기능과 스위치의 제어 기능을 분리하여 통신 시스템을 효율적으로 운용하는 기술에 대한 표준화가 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) 등을 중심으로 진행되고 있다.In recent years, the standardization of technologies for efficiently operating the communication system by separating the traffic forwarding function of the switch and the control function of the switch has been carried out by the Open Networking Foundation (ONF), Internet Engineering Task Force (IETF), European Telecommunications Standards Institute (ETSI) ISG NFV (Network Function Virtualization) and ITU-T (International Telecommunications Union Telecommunication).

이들 중, SDN 기술 중의 하나인 OpenFlow 기술 표준화를 추진하고 있는 ONF(Open Networking Foundation) 표준화 단체만을 간단히 언급하면, SDN 환경은 다수의 SDN 컨트롤러로 구성되고 스위치는 하나 이상의 SDN 컨트롤러와 연결될 수 있다. 여기에서, SDN 컨트롤러들은 Master, Slave, Equal과 같은 세가지 역할로 구분되며 별도의 채널을 통해 SDN 컨트롤러들 간에 정보를 교환할 수 있다.Among these, the Open Networking Foundation (ONF) standardization group which is one of the SDN technologies, OpenFlow technology standardization, is briefly mentioned simply. The SDN environment consists of a plurality of SDN controllers and the switches can be connected to one or more SDN controllers. Here, SDN controllers are divided into three roles: Master, Slave, Equal, and can exchange information between SDN controllers through separate channels.

그러나, ONF 뿐만 아니라 다른 표준화 단체에서도 다수의 초기 Master 역할의 컨트롤러에게 Slave 역할로 상태가 변경되었음을 알리는 메시지를 보내는 시기에 대한 정의가 없으며, 이로 인하여 초기 Master 역할의 컨트롤러가 자신의 역할이 Slave로 변경되었음을 통보받기 전에 스위치로 보내는 제어 메시지들은 스위치에서 무시되는 문제점이 있다.However, there is no definition of a time when a message indicating that the state has been changed to the slave role is given to a controller having a plurality of initial master roles in the ONF as well as other standardization bodies. As a result, the controller of the initial master role is changed to the slave The control messages sent to the switch are ignored by the switch before being notified.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 다수의 컨트롤러로 구성되는 SDN 환경에서 스위치가 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화하는 방법을 제공하는데 있다.In order to solve the above problems, an object of the present invention is to provide a method and system for transmitting a message informing that a switch has changed roles from a master to a slave to a controller that has previously served as a master in an SDN environment including a plurality of controllers And a method for embodying the same.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄이는 방법을 제공하는데 있다.Another object of the present invention is to provide a method of reducing a loss caused by transferring a control message to a switch in a state in which a controller that has previously acted as a master has not recognized that its role is changed to a slave .

상기 목적들을 달성하기 위한 본 발명의 일 측면에 따른 컨트롤러의 역할 변경 방법은, 소프트웨어 정의 네트워킹 환경에서 스위치가 컨트롤러의 역할을 변경하는 방법에 있어서, 마스터 권한을 요청하는 제1 컨트롤러로부터 역할 변경 메시지를 수신하는 단계와; 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method for changing a role of a controller in a software defined networking environment, the method comprising: receiving a role change message from a first controller requesting a master authority; Receiving; And changing the first controller to the master controller by transmitting a role change response message including the transaction information of the packet that the switch last processed to the first controller.

여기에서, 상기 역할 변경 응답 메시지는, 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP 주소를 더 포함할 수 있다. Here, the role change response message may further include an IP address of a second controller which is an existing master controller.

여기에서, 상기 방법은, 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 더 포함할 수 있다. Here, the method may further include setting a second controller as a slave controller by transmitting a status setting message for setting a second controller, which is an existing master controller, as a slave controller to the second controller.

여기에서, 상기 상태 설정 메시지는, 스위치 또는 마스터 컨트롤러로 변경된 제1 컨트롤러에 의해 제2 컨트롤러로 전송될 수 있다. Here, the status setting message may be transmitted to the second controller by a first controller that is changed to a switch or a master controller.

여기에서, 상기 상태 설정 메시지는, 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함할 수 있다. Here, the status setting message may include transaction information of a packet finally processed by the switch.

여기에서, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는, 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상태 설정 메시지를 제2 컨트롤러로 전송함에 의해 수행될 수 있다. Here, the step of setting the second controller as the slave controller may be performed by changing the first controller to the master controller and then transmitting the status setting message to the second controller after a predetermined time has elapsed.

여기에서, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는, 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 제2 컨트롤러가 상기 스위치로 제어 메시지를 전송한 경우에, 상태 설정 메시지를 제2 컨트롤러로 전송함에 의해 수행될 수 있다. Here, the step of setting the second controller as a slave controller may include switching a first controller to a master controller, and then, when the second controller transmits a control message to the switch, And transmitting it.

상기 목적들을 달성하기 위한 본 발명의 다른 측면에 따른 컨트롤러의 역할 변경 방법은, 소프트웨어 정의 네트워킹 환경에서 마스터 권한을 요청하는 제1 컨트롤러에 의해 수행되는 컨트롤러의 역할 변경 방법에 있어서, 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송하는 단계와; 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 스위치로부터 수신함으로써 마스터 컨트롤러로 역할을 변경하는 단계와; 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method of changing roles of a controller, the method comprising: a first controller requesting a master authority in a software defined networking environment; Transmitting a role change message to a switch; Changing a role to a master controller by receiving a role change response message including a transaction information of a packet that the switch has finally processed from the switch; And setting a second controller as a slave controller by transmitting a status setting message for setting a second controller, which is an existing master controller, as a slave controller to the second controller.

여기에서, 상기 방법은, 상태 설정 메시지에 대한 응답으로 상기 스위치가 처리할 패킷 정보를 제2 컨트롤러로부터 수신하는 단계와; 스위치가 처리할 패킷 정보에 따라 스위치가 패킷을 처리하도록 제어하는 단계를 더 포함할 수 있다. The method includes receiving packet information to be processed by the switch from a second controller in response to a status setting message; And controlling the switch to process the packet according to the packet information to be processed by the switch.

상기 목적들을 달성하기 위한 본 발명의 또 다른 측면에 따른 컨트롤러의 역할 변경 방법은, 소트웨어 정의 네트워킹 환경에서 기존의 마스터 컨트롤러인 제2 컨트롤러에서 수행되는 컨트롤러의 역할 변경 방법에 있어서, 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 상태 설정 메시지를 수신함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계와; 상태 설정 메시지에 대한 응답으로 스위치가 처리할 패킷 정보를 마스터 컨트롤러로 변경된 제1 컨트롤러로 전송하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method for changing roles of a controller, the method comprising: a controller for performing a role change in a controller performed in a second controller that is an existing master controller in a software defined networking environment, Setting a second controller as a slave controller by receiving a status setting message including transaction information of one packet; And transmitting the packet information to be processed by the switch to the first controller changed to the master controller in response to the status setting message.

여기에서, 상기 상태 설정 메시지는, 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 미리 설정된 시간이 경과한 후에 수신될 수 있다. Here, the status setting message may be received after a predetermined time elapses after the first controller is changed to the master controller.

여기에서, 상기 상태 설정 메시지는, 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 제2 컨트롤러가 스위치로 제어 메시지를 전송한 경우에 수신될 수 있다. Here, the status setting message may be received when the second controller transmits a control message to the switch after the first controller is changed to the master controller.

상기와 같은 본 발명에 따른 컨트롤러의 역할 변경 방법은, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄일 수 있다. The method of changing the role of the controller according to the present invention as described above includes a step of storing the transaction information of the packet finally processed by the switch in the message informing that the role has changed from the master to the slave to the controller, The controller can reduce the loss caused by transferring the control message to the switch without recognizing that the role of the controller has changed to the slave.

또한, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화함으로써, 서비스의 연속성을 보장할 수 있다. In addition, it is possible to guarantee continuity of service by specifying the transmission technique and timing of the message informing that the role which has been changed from the master to the slave to the controller which has previously served as the master has been changed.

도 1은 컨트롤러와 스위치간 연결 설정 과정을 나타내는 순서도이다.
도 2는 컨트롤러의 역할 변경의 일반적 과정을 설명하기 위한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다
도 4는 본 발명의 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 장치의 구성을 설명하기 위한 블록도이다.
도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 위한 메시지를 설명하기 위한 예시도이다.
1 is a flowchart showing a process of establishing a connection between a controller and a switch.
Fig. 2 is a flowchart for explaining a general process of changing roles of the controller.
3 is a flowchart illustrating a process of changing a role of a controller according to an embodiment of the present invention
4 is a flowchart illustrating a process of changing roles of a controller according to another embodiment of the present invention.
5 is a flowchart illustrating a process of changing roles of a controller according to another embodiment of the present invention.
6 is a block diagram for explaining a configuration of an apparatus for performing a role change of a controller according to an embodiment of the present invention.
7 is an exemplary diagram for explaining a message for performing a role change of a controller according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에서 언급되는 컨트롤러는 SDN 서비스를 안정적으로 제공하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미하는 것으로, 물리적인 구현 형태나 구현 위치 등에 한정되지 않는다. 예를 들어, 컨트롤러는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미한다. Hereinafter, the controller referred to in the present invention refers to a functional entity that controls related components (for example, a switch, a router, and the like) to stably provide an SDN service. And the like. For example, a controller means a controller functional entity defined by ONF, IETF, ETSI, and / or ITU-T.

또한, 본 발명에서 언급되는 네트워크 장치는 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미하는 것으로, ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소, 라우터 요소, 포워딩 요소 등을 의미한다. The network device referred to in the present invention refers to a functional element that substantially forwards, switches, or routes traffic (or packets). The network device includes switches, routers, and routers defined by ONF, IETF, ETSI and / or ITU- Switch element, router element, forwarding element, and the like.

또한, 본 발명에서 언급되는 마스터(Master) 역할의 컨트롤러(마스터 컨트롤러)는 적어도 하나의 스위치를 일차적으로 제어하는 컨트롤러를 의미하는 것으로 하나 이상으로 구성될 수 있다. 그리고, 슬레이브/이퀄(Slave/Equal) 역할의 컨트롤러(슬레이브/이퀄 컨트롤러)는 마스터 컨트롤러가 다양한 원인으로 인하여 스위치의 제어 기능을 수행할 수 없는 경우, 마스터 컨트롤러의 기능을 대체하여 수행하는 컨트롤러를 의미한다. In addition, the controller (master controller) serving as a master referred to in the present invention means a controller that primarily controls at least one switch, and may be constituted by one or more. The slave / equal controller (slave / equal controller) means a controller that replaces the function of the master controller when the master controller can not control the switch due to various reasons. do.

또한, 본 발명의 실시예들에서는 컨트롤러의 역할 변경을 위한 동작이 ONF에서 정의된 파라미터 및/또는 메시지 형태(예를 들면, Flow table entry)를 이용하는 것으로 도시하였으나, 본 발명의 기술적 사상이 ONF에 정의된 내용으로만 한정되는 것은 아니다. Also, in the embodiments of the present invention, the operation for changing the role of the controller is shown using the parameters and / or message type (e.g., a flow table entry) defined in the ONF. However, But is not limited to the defined contents.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 컨트롤러와 스위치간 연결 설정 과정을 나타내는 순서도이고, 도 2는 컨트롤러의 역할 변경의 일반적 과정을 설명하기 위한 순서도이다. FIG. 1 is a flowchart illustrating a process of establishing a connection between a controller and a switch, and FIG. 2 is a flowchart illustrating a general process of changing a role of a controller.

도 1을 참조하면, 스위치는 SDN 컨트롤러의 IP 주소에 대해 3-way handshake를 시작하여 TCP 연결을 설정할 수 있다(S110). 여기서, SDN 환경의 구성을 위하여 사전에 스위치를 제어할 SDN 컨트롤러의 IP 주소를 스위치에 설정할 수 있다. Referring to FIG. 1, the switch may initiate a 3-way handshake on the IP address of the SDN controller to establish a TCP connection (S110). Here, for the configuration of the SDN environment, the IP address of the SDN controller to control the switch in advance can be set in the switch.

TCP 연결을 설정한 후, SDN 컨트롤러와 스위치는 오픈플로우 프로토콜의 버전을 확인하기 위해 Hello 메시지를 교환할 수 있다(S121, S123). After establishing the TCP connection, the SDN controller and the switch may exchange the Hello message to verify the version of the open flow protocol (S121, S123).

오픈플로우 프로토콜의 버전을 확인한 후, 스위치가 지원하는 기능을 확인하기 위해 FeaturesRequest와 FeaturesReply 메시지를 교환할 수 있다(S131, S133).After confirming the version of the open flow protocol, the FeaturesRequest message and the FeaturesReply message can be exchanged (S131, S133) to confirm the functions supported by the switch.

스위치가 지원하는 기능을 확인한 후에, SDN 컨트롤러는 스위치에게 필요한 설정을 보내기 위해 SetConfiguration 메시지를 스위치로 통지할 수 있다(S140).After confirming the functions supported by the switch, the SDN controller can notify the switch of a SetConfiguration message to send the necessary settings to the switch (S140).

마지막으로, 스위치의 상태를 확인하기 위해 StatusRequest와 StatusReply 메시지를 교환할 수 있다(S151, S153). Finally, StatusRequest and StatusReply messages can be exchanged to check the status of the switch (S151, S153).

도 2를 참조하면, SDN 컨트롤러와 스위치는 도 1의 절차를 통해 연결이 설정되어 통신 준비가 갖추어진 상태에서 컨트롤러의 역할을 변경하기 위한 메시지를 주고 받을 수 있다. Referring to FIG. 2, the SDN controller and the switch are connected through a procedure shown in FIG. 1, and a message for changing the role of the controller can be exchanged in a state where communication is ready.

스위치는 다수의 컨트롤러와 연결될 수 있고, 다수의 컨트롤러에 의한 제어를 받을 수 있다. The switch can be connected to a plurality of controllers and can be controlled by a plurality of controllers.

예를 들어, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100). For example, the switch can be established with the first controller and the second controller through the procedure shown in FIG. 1 (S100).

도 2에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다. 2, the first controller means a controller whose role is changed from a slave controller to a master controller, and the second controller means a controller whose role is changed from a master controller to a slave controller.

먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S211). First, the first controller acting as a slave controller can transmit a role change message requesting the master authority to the switch (S211).

스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S213). 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락할 수 있다. The switch may change the first controller to the master controller by sending a role change response message to the first controller in response to the role change message of the first controller (S213). That is, the switch may accept the role change by sending a role change response message to the first controller.

따라서, 스위치는 제1 컨트롤러를 마스터 컨트롤러로 인식함과 동시에 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 인식하게 된다. Therefore, the switch recognizes the first controller as the master controller and the second controller as the master controller as the slave controller.

그러나, 스위치가 제2 컨트롤러를 슬레이브 컨트롤러로 인식하더라도, 제2 컨트롤러는 자신의 역할이 슬레이브 컨트롤러로 변경되었는 Controller role status 메시지를 스위치로부터 받지 못한 상태일 수 있다. However, even if the switch recognizes the second controller as a slave controller, the second controller may not have received a controller role status message that the role of the second controller has changed to the slave controller from the switch.

즉, 제2 컨트롤러는 자신의 역할이 슬레이브 컨트롤러로 변경되었음을 인식하지 못한 상태이기 때문에 스위치로 제어 메시지를 전송할 수 있고, 이러한 경우, 스위치는 제2 컨트롤러의 제어 메시지를 무시할 수 있다(S220).That is, since the second controller does not recognize that its role is changed to the slave controller, it can transmit a control message to the switch. In this case, the switch can ignore the control message of the second controller (S220).

따라서, 스위치가 제어 메시지를 수신한 후에, 제2 컨트롤러의 역할이 슬레이브 컨트롤러로 변경되었는 Controller role status 메시지를 제2 컨트롤러로 전송하는 경우가 발생할 수 있으며(S230), 이로 인하여 패킷 제어를 위한 메시지의 누락이 발생할 수 있는 문제점이 발생한다.
Accordingly, after the switch receives the control message, a case may occur in which the controller role status message in which the role of the second controller is changed to the slave controller is transmitted to the second controller (S230). As a result, There arises a problem that omission may occur.

도 3은 본 발명의 일 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다 3 is a flowchart illustrating a process of changing a role of a controller according to an embodiment of the present invention

도 3을 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100). Referring to FIG. 3, the switch can be established with the first controller and the second controller through the procedure shown in FIG. 1 (S100).

도 3에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다. 3, the first controller means a controller whose role is changed from a slave controller to a master controller, and the second controller means a controller whose role is changed from a master controller to a slave controller.

먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S311). First, the first controller acting as the slave controller can transmit a role change message requesting the master authority to the switch (S311).

스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 제2 컨트롤러의 IP 및 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S213). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다. 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 제2 컨트롤러에 대한 정보 및 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다. The switch transmits a role change response message to the first controller in response to the role change message of the first controller, including the IP of the second controller and the transaction information of the packet finally processed by the switch, (S213). Here, the transaction information of the packet finally processed by the switch may mean a transaction ID. That is, the switch accepts the role change by transmitting the role change response message to the first controller, and at the same time, the information of the second controller and the information of the transaction finally processed by the switch can be transmitted to the first controller converted into the master controller have.

제1 컨트롤러는 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S321).The first controller can set the second controller as a slave controller by transmitting a status setting message for setting a second controller, which is an existing master controller, as a slave controller to the second controller (S321).

여기서, 상태 설정 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써, 제2 컨트롤러는 스위치가 처리할 패킷 정보를 제1 컨트롤러로 전송할 수 있다(S323). In this case, the second controller may transmit the packet information to be processed by the switch to the first controller by including the transaction information of the packet finally processed by the switch in the status setting message (S323).

따라서, 제1 컨트롤러는 제2 컨트롤러로부터 수신한 스위치가 처리할 패킷 정보에 기반하여 미처리 상태의 패킷을 처리하기 위하여 스위치와 메시지를 교환할 수 있다(S330).
Accordingly, the first controller may exchange messages with the switch to process the unprocessed packet based on the packet information to be processed by the switch received from the second controller (S330).

도 4는 본 발명의 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다. 4 is a flowchart illustrating a process of changing roles of a controller according to another embodiment of the present invention.

도 4를 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100). Referring to FIG. 4, the switch can be connected to the first controller and the second controller through the procedure shown in FIG. 1 (S100).

도 4에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다. 4, the first controller means a controller whose role is changed from a slave controller to a master controller, and the second controller means a controller whose role is changed from a master controller to a slave controller.

제1 컨트롤러와 제2 컨트롤러는 별도의 채널을 통해 상호 협상을 하여 SDN 네트워크의 토폴로지 맵(컨트롤러와 스위치간 연결 정보)과 같은 정보를 상호 공유할 수 있다(S401). The first controller and the second controller negotiate with each other over a separate channel to share information such as a topology map (connection information between the controller and the switch) of the SDN network (S401).

슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S411). The first controller acting as the slave controller can transmit a role change message requesting the master authority to the switch (S411).

스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S413). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다. The switch can change the first controller to the master controller by transmitting a role change response message including the transaction information of the packet finally processed by the switch to the first controller in response to the role change message of the first controller (S413) . Here, the transaction information of the packet finally processed by the switch may mean a transaction ID.

스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다. 즉, S401를 통하여 토폴로지 맵에 대한 정보를 상호 공유함으로써, 역할 변경 응답 메시지는 제2 컨트롤러의 IP에 대한 정보를 포함할 필요가 없을 수 있다. The switch may transmit the role change response message to the first controller to accept the role change and finally transmit the information of the transaction processed by the switch to the first controller converted to the master controller. That is, by mutually sharing the information about the topology map through S401, the role change response message may not need to include information about the IP of the second controller.

제1 컨트롤러는 기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 제2 컨트롤러로 전송함으로써, 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S421).The first controller may set the second controller as a slave controller by transmitting a status setting message to the second controller to set the second controller as a slave controller as an existing master controller (S421).

여기서, 상태 설정 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써, 제2 컨트롤러는 스위치가 처리할 패킷 정보를 제1 컨트롤러로 전송할 수 있다(S423). Here, the second controller may transmit the packet information to be processed by the switch to the first controller by including the transaction information of the packet finally processed by the switch in the status setting message (S423).

따라서, 제1 컨트롤러는 제2 컨트롤러로부터 수신한 스위치가 처리할 패킷 정보에 기반하여 미처리 상태의 패킷을 처리하기 위하여 스위치와 메시지를 교환할 수 있다(S430).
Accordingly, the first controller may exchange messages with the switch to process the unprocessed packet based on the packet information to be processed by the switch received from the second controller (S430).

도 5는 본 발명의 또 다른 실시예에 따른 컨트롤러의 역할 변경 과정을 설명하기 위한 순서도이다. 5 is a flowchart illustrating a process of changing roles of a controller according to another embodiment of the present invention.

도 5를 참조하면, 스위치는 도 1에 따른 절차를 통하여 제1 컨트롤러 및 제2 컨트롤러와 연결이 설정될 수 있다(S100). Referring to FIG. 5, the switch can be established with the first controller and the second controller through the procedure according to FIG. 1 (S100).

도 5에서 제1 컨트롤러는 슬레이브 컨트롤러에서 마스터 컨트롤러로 역할이 변경되는 컨트롤러를 의미하고, 제2 컨트롤러는 마스터 컨트롤러에서 슬레이브 컨트롤러로 역할이 변경되는 컨트롤러를 의미한다. 5, the first controller means a controller whose role is changed from a slave controller to a master controller, and the second controller means a controller whose role is changed from a master controller to a slave controller.

먼저, 슬레이브 컨트롤러의 역할을 하던 제1 컨트롤러는 마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송할 수 있다(S511). First, the first controller acting as the slave controller can transmit a role change message requesting the master authority to the switch (S511).

스위치는 제1 컨트롤러의 역할 변경 메시지에 대한 응답으로 제2 컨트롤러의 IP 및 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써, 제1 컨트롤러를 마스터 컨트롤러로 변경할 수 있다(S513). 여기서, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 트랜잭션 ID를 의미할 수 있다. 즉, 스위치는 역할 변경 응답 메시지를 제1 컨트롤러로 전송함으로써 역할 변경을 수락함과 동시에 제2 컨트롤러에 대한 정보 및 최종적으로 스위치에서 처리한 트랜잭션의 정보를 마스터 컨트롤러로 변환된 제1 컨트롤러로 전송할 수 있다. The switch transmits a role change response message to the first controller in response to the role change message of the first controller, including the IP of the second controller and the transaction information of the packet finally processed by the switch, (S513). Here, the transaction information of the packet finally processed by the switch may mean a transaction ID. That is, the switch accepts the role change by transmitting the role change response message to the first controller, and at the same time, the information of the second controller and the information of the transaction finally processed by the switch can be transmitted to the first controller converted into the master controller have.

스위치는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 타이머(timer)를 동작시킬 수 있다(S520). The switch may operate the timer after changing the first controller to the master controller (S520).

스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단할 수 있다(S531).The switch can determine that a preset time has elapsed according to the operation of the timer (S531).

스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단되면, 상태 설정 메시지를 제2 컨트롤러로 전송함으로써 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S533).If it is determined that the preset time has elapsed according to the operation of the timer, the switch can set the second controller as the slave controller by transmitting the status setting message to the second controller (S533).

또한, 스위치는 타이머의 동작에 따라 미리 설정된 시간이 경과한 것으로 판단되지 않으면, 스위치가 제2 컨트롤러로부터 제어 메시지를 수신하였는지 판단할 수 있다(S541). If it is not determined that the predetermined time has elapsed according to the operation of the timer, the switch can determine whether the switch has received the control message from the second controller (S541).

스위치는 제2 컨트롤러로부터 제어 메시지를 수신한 것으로 판단된 경우에 상태 설정 메시지를 제2 컨트롤러로 전송함으로써 제2 컨트롤러를 슬레이브 컨트롤러로 설정할 수 있다(S534). If it is determined that the control message is received from the second controller, the switch can set the second controller as the slave controller by transmitting the status setting message to the second controller (S534).

또한, 스위치는 제2 컨트롤러로부터 제어 메시지를 수신할 때까지 타이머의 시간을 감소시킬 수 있고(S550), 이를 통하여 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과하였는지 계속적으로 판단할 수 있다.
In addition, the switch may decrease the time of the timer until receiving the control message from the second controller (S550), and after the first controller is changed to the master controller, the switch continuously determines whether a predetermined time has elapsed .

도 6은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 장치의 구성을 설명하기 위한 블록도이다. 6 is a block diagram for explaining a configuration of an apparatus for performing a role change of a controller according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 실시예에 따른 컨트롤러의 역할을 변경하는 방법은 컨트롤러(100)와 스위치(200)가 연동하여 수행될 수 있다. Referring to FIG. 6, a method of changing the role of the controller according to an embodiment of the present invention may be performed by interlocking the controller 100 and the switch 200.

먼저, 컨트롤러(100)는 플로우 테이블 관리부(110), 스위치 연동 처리부(120) 및 역할 변경 처리부(130)를 포함한다. First, the controller 100 includes a flow table management unit 110, a switch interlock processing unit 120, and a role change processing unit 130. [

플로우 테이블 관리부(110)는 다수의 스위치(200)에 대한 플로우 테이블을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.The flow table management unit 110 may store and manage parameters and flow tables for synchronizing the flow tables for the plurality of switches 200. [

스위치 연동 처리부(120)는 다수의 스위치(200)와 컨트롤러(100)가 통신할 수 있도록 프로토콜을 처리한다. The switch interlocking processing unit 120 processes the protocol so that the plurality of switches 200 and the controller 100 can communicate with each other.

역할 변경 처리부(130)는 스위치(200)에 대한 컨트롤러(100)의 역할을 설정, 변경 등을 하기 위해 역할 변경 메시지, 상태 설정 메시지를 송수신하는 기능을 수행할 수 있다. 즉, 역할 변경 처리부(130)는 역할 변경 메시지를 스위치(200)로 송신하도록 하거나, 스위치(200)로부터 수신한 상태 설정 메시지를 처리하여 컨트롤러(100)의 역할을 마스터에서 슬레이브로 또는 슬레이브에서 마스터로 설정/변경할 수 있다. The role change processing unit 130 may perform a function of transmitting and receiving a role change message and a status setting message in order to set, change, etc. the role of the controller 100 with respect to the switch 200. [ That is, the role change processing unit 130 transmits the role change message to the switch 200 or processes the status setting message received from the switch 200 to change the role of the controller 100 from master to slave, Can be set / changed.

다음으로, 스위치(200)는 플로우 테이블 관리부(210), 컨트롤러 연동 처리부(220), 컨트롤러 역할 관리부(230) 및 타이머 관리부(240)를 포함한다. Next, the switch 200 includes a flow table management unit 210, a controller interlock processing unit 220, a controller role management unit 230, and a timer management unit 240.

플로우 테이블 관리부(210)는 스위치(200) 자신에 대한 플로우 테이블을 동기화하기 위한 파라미터와 플로우 테이블을 저장하고 관리할 수 있다.The flow table management unit 210 may store and manage parameters and flow tables for synchronizing the flow table for the switch 200 itself.

컨트롤러 연동 처리부(220)는 컨트롤러(100)와 스위치(200)가 통신할 수 있도록 프로토콜을 처리한다. The controller interlock processing unit 220 processes the protocol so that the controller 100 and the switch 200 can communicate with each other.

컨트롤러 역할 관리부(230)는 스위치(200)에 대한 컨트롤러(100)의 역할을 설정, 변경 등을 하기 위해 역할 변경 메시지, 상태 설정 메시지를 송수신하는 기능을 수행한다. 즉, 컨트롤러 역할 관리부(230)는 역할 변경 메시지를 컨트롤러(100)로부터 수신하여 처리하거나, 상태 설정 메시지를 컨트롤러(100)로 전송하여 컨트롤러(100)의 역할을 마스터에서 슬레이브로 또는 슬레이브에서 마스터로 설정/변경할 수 있다.The controller role management unit 230 transmits and receives a role change message and a status setting message to set, change, and so on the role of the controller 100 with respect to the switch 200. [ That is, the controller role management unit 230 receives the role change message from the controller 100 and processes the status change message, or transmits the status setting message to the controller 100 to change the role of the controller 100 from master to slave or from slave to master Can be set / changed.

타이머 관리부(240)는 기존에 슬레이브 컨트롤러이었던 제1 컨트롤러를 마스터 컨트롤러로 변경한 후에 경과하는 시간을 확인할 수 있도록 한다. 예를 들어, 타이머 관리부(240)는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 경우, 이를 컨트롤러 역할 관리부(230)에 알릴 수 있다. The timer management unit 240 allows the elapsed time to be checked after changing the first controller, which was a slave controller, to the master controller. For example, after the first controller is changed to the master controller, the timer management unit 240 may notify the controller role management unit 230 of a predetermined time.

따라서, 컨트롤러 역할 관리부(230)는 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상태 설정 메시지를 기존에 마스터 컨트롤러이었던 제2 컨트롤러로 전송할 수 있다. Therefore, the controller role managing unit 230 may change the first controller to the master controller, and then transmit the status setting message to the second controller, which is the master controller, after a preset time has elapsed.

상술한 본 발명의 실시예에 따른 컨트롤러(100) 및 스위치(200)의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.The configurations of the controller 100 and the switch 200 according to the embodiment of the present invention are described as being arranged in the respective constituent parts for convenience of explanation. However, at least two of the constituent parts may be combined to form one constituent part, The constituent parts can be divided into a plurality of constituent parts to carry out the function and the case of the integrated and separate embodiments of each constituent part is also included in the scope of the present invention unless the essence of the present invention is satisfied.

또한, 본 발명의 실시예에 따른 컨트롤러(100) 및 스위치(200)의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
In addition, the operation of the controller 100 and the switch 200 according to the embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. The computer-readable recording medium may also be distributed and distributed in a networked computer system so that a computer-readable program or code can be stored and executed in a distributed manner.

도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경을 수행하는 위한 메시지를 설명하기 위한 예시도이다.7 is an exemplary diagram for explaining a message for performing a role change of a controller according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 컨트롤러의 역할 변경 방법을 표준에 근거하여 실행하기 위하여 예시적으로 ONF OpenFlow 표준안(v1.4)에서 정의될 수 있는 컨트롤러의 역할 변경 요청 및 응답을 위한 메시지의 주요 파라미터에 대한 예시를 나타낸다. FIG. 7 is a flowchart illustrating a method for changing a role of a controller according to an exemplary embodiment of the present invention. Referring to FIG. 7, An example of the main parameters is shown.

상세하게는, 컨트롤러의 역할 변경 요청 및 이에 대한 응답 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보 및 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP에 대한 정보를 추가적으로 정의할 수 있다. In detail, transaction information of a packet finally processed by the switch and information on the IP of the second controller, which is an existing master controller, can be additionally defined in the controller change request and response message.

예를 들어, 스위치가 최종 처리한 패킷의 트랜잭션 정보는 ‘unit32_t xid; /* Transaction id associated with final processed packet. */’로 표현되고, 기존의 마스터 컨트롤러인 제2 컨트롤러의 IP는 ‘unit32_t controller_ip; /* IP address of the master controller. */’로 표현될 수 있다. For example, the transaction information of the last packet processed by the switch is' unit32_t xid; / * Transaction id associated with final processed packet. * / ', And the IP of the second controller, which is an existing master controller, is represented by' unit32_t controller_ip; / * IP address of the master controller. * / '.

도 7은 OpenFlow 표준안의 메시지를 예시적으로 설명하지만 이는 본 발명의 기술적 사상을 표준 관점에서 구체적으로 설명하기 위해 특정 표준안을 선택한 것일 뿐, 본 발명의 사상이 OpenFlow 표준안에 부합하는 메시지 형태로만 한정되는 것은 아니며, 다른 표준화 단체에서 정의하고 있는 각종 메시지 형태로 표현될 수 있음은 자명하다.
FIG. 7 exemplarily illustrates the message of the OpenFlow standard, but it is only a specific standard selected to describe the technical idea of the present invention from a standard viewpoint, and the idea of the present invention is limited to a message format conforming to the OpenFlow standard But it can be expressed in various message formats defined by other standardization bodies.

상술한 본 발명의 실시예에 따른 컨트롤러의 역할 변경 방법은, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함시킴으로써 기존에 마스터 역할을 하던 컨트롤러가 자신의 역할이 슬레이브로 변경되었음을 인지하지 못한 상태에서 스위치로 제어 메시지를 전달함에 의해 발생하는 손실을 줄일 수 있다. The method of changing the role of the controller according to the embodiment of the present invention includes a step of storing the transaction information of the packet finally processed by the switch in a message informing that the role has changed from the master to the slave to the controller, It is possible to reduce the loss caused by transmitting a control message to the switch in a state in which the controller acting as a master does not recognize that its role is changed to a slave.

또한, 기존에 마스터의 역할을 하던 컨트롤러에게 마스터에서 슬레이브로 역할이 변경되었음 알리는 메시지에 대한 전송 기법 및 시기를 구체화함으로써, 서비스의 연속성을 보장할 수 있다.In addition, it is possible to guarantee continuity of service by specifying the transmission technique and timing of the message informing that the role which has been changed from the master to the slave to the controller which has previously served as the master has been changed.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

100: 컨트롤러 110: 플로우 테이블 관리부
120: 스위치 연동 처리부 130: 역할 변경 처리부
200: 스위치 210: 플로우 테이블 관리부
220: 컨트롤러 연동 처리부 230: 컨트롤러 역할 관리부
240: 타이머 관리부
100: controller 110: flow table management unit
120: switch interlock processing unit 130: role change processing unit
200: Switch 210: Flow table management unit
220: controller interlock processing unit 230: controller role management unit
240:

Claims (15)

소프트웨어 정의 네트워킹 환경에서 스위치가 컨트롤러의 역할을 변경하는 방법에 있어서,
마스터 권한을 요청하는 제1 컨트롤러로부터 역할 변경 메시지를 수신하는 단계; 및
상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 상기 제1 컨트롤러로 전송함으로써, 상기 제1 컨트롤러를 마스터 컨트롤러로 변경하는 단계를 포함하는,
컨트롤러의 역할 변경 방법.
In a software defined networking environment where the switch changes the role of the controller,
Receiving a role change message from a first controller requesting a master authority; And
And changing the first controller to a master controller by sending a role change response message including transaction information of a packet that the switch last processed to the first controller.
How to change the role of the controller.
청구항 1에 있어서,
상기 역할 변경 응답 메시지는,
기존의 마스터 컨트롤러인 제2 컨트롤러의 IP 주소를 더 포함하는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method according to claim 1,
The role change response message includes:
Further comprising an IP address of a second controller which is an existing master controller,
How to change the role of the controller.
청구항 1에 있어서,
기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 상기 제2 컨트롤러로 전송함으로써, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 더 포함하는,
컨트롤러의 역할 변경 방법.
The method according to claim 1,
Further comprising setting the second controller as a slave controller by transmitting a status setting message for setting a second controller as a slave controller, which is an existing master controller, to the second controller.
How to change the role of the controller.
청구항 3에 있어서,
상기 상태 설정 메시지는,
상기 스위치 또는 마스터 컨트롤러로 변경된 상기 제1 컨트롤러에 의해 상기 제2 컨트롤러로 전송되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 3,
The status setting message includes:
And the first controller is changed to the switch or the master controller and is transmitted to the second controller.
How to change the role of the controller.
청구항 4에 있어서,
상기 상태 설정 메시지는,
상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 4,
The status setting message includes:
Characterized in that the switch comprises transaction information of the last processed packet.
How to change the role of the controller.
청구항 3에 있어서,
상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는,
상기 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 미리 설정된 시간이 경과한 후에 상기 상태 설정 메시지를 상기 제2 컨트롤러로 전송함에 의해 수행되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 3,
Wherein the step of setting the second controller as a slave controller comprises:
Wherein the first controller is changed to a master controller and then the status setting message is transmitted to the second controller after a preset time elapses.
How to change the role of the controller.
청구항 3에 있어서,
상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계는,
상기 제1 컨트롤러를 마스터 컨트롤러로 변경한 후, 상기 제2 컨트롤러가 상기 스위치로 제어 메시지를 전송한 경우에, 상기 상태 설정 메시지를 상기 제2 컨트롤러로 전송함에 의해 수행되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 3,
Wherein the step of setting the second controller as a slave controller comprises:
When the second controller transmits a control message to the switch after changing the first controller to the master controller, transmitting the status setting message to the second controller.
How to change the role of the controller.
소프트웨어 정의 네트워킹 환경에서 마스터 권한을 요청하는 제1 컨트롤러에 의해 수행되는 컨트롤러의 역할 변경 방법에 있어서,
마스터 권한을 요청하는 역할 변경 메시지를 스위치로 전송하는 단계;
상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 역할 변경 응답 메시지를 상기 스위치로부터 수신함으로써 마스터 컨트롤러로 역할을 변경하는 단계; 및
기존의 마스터 컨트롤러인 제2 컨트롤러를 슬레이브 컨트롤러로 설정하기 위한 상태 설정 메시지를 상기 제2 컨트롤러로 전송함으로써, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계를 포함하는,
컨트롤러의 역할 변경 방법.
A method of changing a role of a controller performed by a first controller requesting a master authority in a software defined networking environment,
Transmitting a role change message requesting a master right to a switch;
Changing a role to a master controller by receiving a role change response message including transaction information of a packet finally processed by the switch from the switch; And
And setting the second controller as a slave controller by transmitting a status setting message for setting a second controller as a slave controller as an existing master controller to the second controller.
How to change the role of the controller.
청구항 8에 있어서,
상기 역할 변경 응답 메시지는,
기존의 마스터 컨트롤러인 제2 컨트롤러의 IP 주소를 더 포함하는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 8,
The role change response message includes:
Further comprising an IP address of a second controller which is an existing master controller,
How to change the role of the controller.
청구항 8에 있어서,
상기 상태 설정 메시지는,
상기 스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하여 전송되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 8,
The status setting message includes:
And the transaction is transmitted including the transaction information of the last processed packet.
How to change the role of the controller.
청구항 8에 있어서,
상기 상태 설정 메시지에 대한 응답으로 상기 스위치가 처리할 패킷 정보를 상기 제2 컨트롤러로부터 수신하는 단계; 및
상기 스위치가 처리할 패킷 정보에 따라 상기 스위치가 패킷을 처리하도록 제어하는 단계를 더 포함하는,
컨트롤러의 역할 변경 방법.
The method of claim 8,
Receiving packet information to be processed by the switch from the second controller in response to the status setting message; And
Further comprising controlling the switch to process the packet according to packet information to be processed by the switch,
How to change the role of the controller.
소트웨어 정의 네트워킹 환경에서 기존의 마스터 컨트롤러인 제2 컨트롤러에서 수행되는 컨트롤러의 역할 변경 방법에 있어서,
스위치가 최종 처리한 패킷의 트랜잭션 정보를 포함하는 상태 설정 메시지를 수신함으로써, 상기 제2 컨트롤러를 슬레이브 컨트롤러로 설정하는 단계; 및
상기 상태 설정 메시지에 대한 응답으로 상기 스위치가 처리할 패킷 정보를 마스터 컨트롤러로 변경된 제1 컨트롤러로 전송하는 단계를 포함하는,
컨트롤러의 역할 변경 방법.
In a method of changing a role of a controller performed in a second controller which is an existing master controller in a software defined networking environment,
Setting the second controller as a slave controller by receiving a status setting message including transaction information of a packet finally processed by the switch; And
And transmitting the packet information to be processed by the switch to the first controller changed to the master controller in response to the status setting message.
How to change the role of the controller.
청구항 12에 있어서,
상기 상태 설정 메시지는,
상기 스위치 또는 상기 제1 컨트롤러로부터 수신하는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 12,
The status setting message includes:
And the second controller receives the signal from the switch or the first controller.
How to change the role of the controller.
청구항 12에 있어서,
상기 상태 설정 메시지는,
상기 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 미리 설정된 시간이 경과한 후에 수신되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 12,
The status setting message includes:
Wherein the first controller is changed to a master controller and then received after a predetermined time elapses.
How to change the role of the controller.
청구항 12에 있어서,
상기 상태 설정 메시지는,
상기 제1 컨트롤러를 마스터 컨트롤러로 변경된 후, 상기 제2 컨트롤러가 상기 스위치로 제어 메시지를 전송한 경우에 수신되는 것을 특징으로 하는,
컨트롤러의 역할 변경 방법.
The method of claim 12,
The status setting message includes:
Wherein the controller is received when the second controller transmits a control message to the switch after the first controller is changed to the master controller.
How to change the role of the controller.
KR1020150110987A 2014-08-07 2015-08-06 Method and apparatus for changing role of controller in software defined networking environment KR101717363B1 (en)

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015344A Division KR20170017967A (en) 2014-08-07 2017-02-03 Method and apparatus for changing role of controller in software defined networking environment

Publications (2)

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

Family

ID=55457605

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020150110987A KR101717363B1 (en) 2014-08-07 2015-08-06 Method and apparatus for changing role of controller in software defined networking environment
KR1020170015344A KR20170017967A (en) 2014-08-07 2017-02-03 Method and apparatus for changing role of controller in software defined networking environment

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020170015344A KR20170017967A (en) 2014-08-07 2017-02-03 Method and apparatus for changing role of controller in software defined networking environment

Country Status (1)

Country Link
KR (2) KR101717363B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101681516B1 (en) * 2016-05-31 2016-12-01 아토리서치(주) Method, apparatus and computer program for operating dual-ring in software defined networking environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090077407A (en) * 2008-01-11 2009-07-15 에스케이 텔레콤주식회사 Apparatus and method for transmission in mobile telecommunication environment
JP2012238083A (en) * 2011-05-10 2012-12-06 Nec Corp Database system, master slave management method, and master slave management program
JP2013046290A (en) * 2011-08-25 2013-03-04 Buffalo Inc Communication device, communication system, and method for sharing communication setting information
KR20140039014A (en) * 2014-02-24 2014-03-31 연세대학교 산학협력단 Switch migration method for software-defined-networks with a plurality of controllers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090077407A (en) * 2008-01-11 2009-07-15 에스케이 텔레콤주식회사 Apparatus and method for transmission in mobile telecommunication environment
JP2012238083A (en) * 2011-05-10 2012-12-06 Nec Corp Database system, master slave management method, and master slave management program
JP2013046290A (en) * 2011-08-25 2013-03-04 Buffalo Inc Communication device, communication system, and method for sharing communication setting information
KR20140039014A (en) * 2014-02-24 2014-03-31 연세대학교 산학협력단 Switch migration method for software-defined-networks with a plurality of controllers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101681516B1 (en) * 2016-05-31 2016-12-01 아토리서치(주) Method, apparatus and computer program for operating dual-ring in software defined networking environment

Also Published As

Publication number Publication date
KR20170017967A (en) 2017-02-15
KR101717363B1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
US8369244B2 (en) Method for operating an ethernet-capable field-bus device
WO2016165463A1 (en) Software defined network-based link failure reporting method and forwarding device
EP2688240A1 (en) Method, system and device for switching and selecting clock source device
CN104243239B (en) The condition detection method and device of controller in a kind of SDN clusters
US10432501B2 (en) SDN architecture and method for forwarding message based on SDN architecture
CN111669333B (en) Data transmission method, device, computing equipment and storage medium
CN108810129A (en) Internet of Things network control system and method, terminal device and local network services equipment
CN106664247B (en) Communication device, communication system, and communication method
KR101717363B1 (en) Method and apparatus for changing role of controller in software defined networking environment
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
CN109120520B (en) Fault processing method and equipment
JP6118464B2 (en) Port status synchronization method, related device, and system
CN105471619A (en) Network node devices and master-slave configuration method and system thereof
US8737413B2 (en) Relay server and relay communication system
US10263915B2 (en) Method for processing event between controller and network device
KR101586151B1 (en) Method for reconnection between controllers and network apparatus
CN107005473B (en) Communication path switching apparatus, method of controlling communication path switching apparatus
KR101740799B1 (en) Method of failover for network service in software defined networking environment
KR101737697B1 (en) Method and apparatus for distributing controller load in software defined networking environment
WO2015100978A1 (en) Method and system for automatic discovery of controller in software defined network and controller
KR101520250B1 (en) High Fast Traffic Process Scheme Method and Apparatus for High Availability Distributed Embedded Network Transmission
KR101735622B1 (en) High availability system and time synchronization method thereof
JP2008048100A (en) Radio base station, radio base station program, and control method
JP5121789B2 (en) Data transmission system and computer

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