KR102404112B1 - Network device and method for handling failure of sdn controller server in software defined network enviroment - Google Patents
Network device and method for handling failure of sdn controller server in software defined network enviroment Download PDFInfo
- Publication number
- KR102404112B1 KR102404112B1 KR1020200111119A KR20200111119A KR102404112B1 KR 102404112 B1 KR102404112 B1 KR 102404112B1 KR 1020200111119 A KR1020200111119 A KR 1020200111119A KR 20200111119 A KR20200111119 A KR 20200111119A KR 102404112 B1 KR102404112 B1 KR 102404112B1
- Authority
- KR
- South Korea
- Prior art keywords
- flow rule
- sdn controller
- controller server
- flow
- network
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법이 제공된다. 상기 방법은 SDN 컨트롤러 서버와 접속된 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버로부터 제 1 플로우 룰을 수신하는 단계; 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제1 플로우 룰에 기초하여 패킷을 처리하는 단계; 상기 SDN 컨트롤러 서버로부터 상기 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하는 단계; 상기 복수의 네트워크 장비 중 적어도 하나의 네트워크 장비에서 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 단계; 및 상기 확인 결과 연결이 단절된 경우 상기 제2 플로우 룰에 기초하여 패킷을 처리하는 단계를 포함하며, 상기 복수의 네트워크 장비는 상기 제1 플로우 룰 및 제2 플로우 룰 중 어느 하나에 기초하여 패킷을 처리한다.A method for handling in a network device when an SDN controller server failure occurs in a software-defined network environment is provided. The method includes the steps of: receiving, by a plurality of network devices connected to the SDN controller server, a first flow rule from the SDN controller server; processing a packet based on the first flow rule in a state in which the connection to the SDN controller server is normal; periodically receiving and storing a second flow rule different from the first flow rule from the SDN controller server; checking whether at least one network device among the plurality of network devices is disconnected from the SDN controller server; and processing a packet based on the second flow rule when the connection is disconnected as a result of the check, wherein the plurality of network devices process the packet based on any one of the first flow rule and the second flow rule do.
Description
본 발명은 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비 및 방법에 관한 것이다.The present invention relates to a network equipment and method for handling an SDN controller server failure in a software-defined network environment.
SDN(Software Defined networking, 소프트웨어 정의 네트워킹, 이하 SDN) 기술은 네트워크의 모든 장비를 지능화된 중앙 관리 시스템에 의해 관리하는 기술을 말한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신 처리하게 함으로써, 기존 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.SDN (Software Defined Networking, hereinafter SDN) technology refers to a technology that manages all devices in a network by an intelligent central management system. The SDN technology has the advantage of being able to develop and provide various functions compared to the existing network structure by having the controller provided in the form of software handle the control operation related to packet processing performed by itself in the existing hardware type network equipment instead.
한편, SDN 컨트롤러 서버를 통한 중앙집중제어 시스템의 가장 큰 취약점 중 하나는 SDN 컨트롤러 서버 자체에서 발생하는 장애로 인한 문제이다. On the other hand, one of the biggest weaknesses of the centralized control system through the SDN controller server is the problem caused by the failure occurring in the SDN controller server itself.
또한, SDN 컨트롤러 서버의 이중화 등을 통해 시스템의 안정성을 향상시킬 수 있으나, 최악의 경우 모든 SDN 컨트롤러 서버에 장애가 발생한 경우, 이는 네트워크 시스템 전체에 영향을 끼치게 된다.In addition, system stability can be improved through redundancy of the SDN controller server, but in the worst case, if all SDN controller servers fail, this affects the entire network system.
이와 더불어, 실제 사용자 입장에서는 SDN 컨트롤러 등 시스템에 장애가 발생한 경우 스위치와 같은 네트워크 장비를 리부팅하는 경우가 많으며, 이 경우 네트워크 장비에 저장된 플로우 룰이 삭제되어 서비스 이용 중 일시적인 통신 장애 상태가 되는 문제가 있었다.In addition, from the point of view of actual users, when a system failure such as the SDN controller occurs, network equipment such as a switch is often rebooted. .
본 발명이 해결하고자 하는 과제는 SDN 컨트롤러 서버와 네트워크 장비 간의 정상 연결 상태에서는 일반적인 플로우 룰에 기초하여 패킷을 처리하되, 스위치가 리부팅되거나 컨트롤러와 스위치 간 연결이 단절되는 장애 상태시, 네트워크 장비에 별도로 저장된 플로우 룰을 적용하여 호스트에게 계속하여 서비스를 제공할 수 있는, 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비 및 방법을 제공하는 것이다.The problem to be solved by the present invention is that, in a normal connection state between the SDN controller server and network equipment, packets are processed based on a general flow rule, but when the switch is rebooted or the connection between the controller and the switch is cut off An object of the present invention is to provide a network device and method for processing an SDN controller server failure in a software-defined network environment, which can continuously provide a service to a host by applying a stored flow rule.
다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problems to be solved by the present invention are not limited to the problems described above, and other problems may exist.
상술한 과제를 해결하기 위한 본 발명의 제1 측면에 따른 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법은 SDN 컨트롤러 서버와 접속된 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버로부터 제 1 플로우 룰을 수신하는 단계; 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제1 플로우 룰에 기초하여 패킷을 처리하는 단계; 상기 SDN 컨트롤러 서버로부터 상기 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하는 단계; 상기 복수의 네트워크 장비 중 적어도 하나의 네트워크 장비에서 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 단계; 및 상기 확인 결과 연결이 단절된 경우 상기 제2 플로우 룰에 기초하여 패킷을 처리하는 단계를 포함한다. 이때, 상기 복수의 네트워크 장비는 상기 제1 플로우 룰 및 제2 플로우 룰 중 어느 하나에 기초하여 패킷을 처리한다.According to the first aspect of the present invention for solving the above problems, a method for processing in a network device when an SDN controller server failure occurs in a software-defined network environment is provided by a plurality of network devices connected to the SDN controller server from the SDN controller server. 1 Receiving a flow rule; processing a packet based on the first flow rule in a state in which the connection to the SDN controller server is normal; periodically receiving and storing a second flow rule different from the first flow rule from the SDN controller server; checking whether at least one network device among the plurality of network devices is disconnected from the SDN controller server; and processing the packet based on the second flow rule when the connection is disconnected as a result of the check. In this case, the plurality of network devices process the packet based on any one of the first flow rule and the second flow rule.
본 발명의 일부 실시예에서, 상기 제1 플로우 룰은 상기 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제2 플로우 룰보다 높은 우선 순위를 갖을 수 있다.In some embodiments of the present invention, the first flow rule may have a higher priority than the second flow rule in a state in which the plurality of network devices have a normal connection to the SDN controller server.
본 발명의 일부 실시예에서. 상기 제2 플로우 룰이 수신 및 저장됨에 따라, 상기 제1 플로우 룰에 포함된 최하위 우선 순위를 갖는 플로우 엔트리는 상기 제2 플로우 룰에 포함된 최상위 우선 순위를 갖는 플로우 엔트리보다 높은 우선 순위를 갖도록 변경될 수 있다.In some embodiments of the present invention. As the second flow rule is received and stored, the flow entry having the lowest priority included in the first flow rule is changed to have a higher priority than the flow entry having the highest priority included in the second flow rule can be
본 발명의 일부 실시예에서, 상기 SDN 컨트롤러 서버로부터 상기 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하는 단계는, 상기 SDN 컨트롤러 서버가 상기 제2 플로우 룰을 주기적으로 업데이트함에 따라, 상기 복수의 네트워크 장비는 업데이트된 제2 플로우 룰을 주기적으로 수신하여 상기 제1 플로우 룰이 저장되는 영역과 상이한 내부 메모리 상에 별도로 저장할 수 있다.In some embodiments of the present invention, the step of periodically receiving and storing a second flow rule different from the first flow rule from the SDN controller server includes: As the SDN controller server periodically updates the second flow rule , the plurality of network devices may receive the updated second flow rule periodically and separately store it in an internal memory different from an area in which the first flow rule is stored.
본 발명의 일부 실시예에서, 상기 제1 플로우 룰은 상기 SDN 컨트롤러 서버와의 연결이 단절된 시점으로부터 소정의 시간 경과 후 상기 네트워크 장비 내에서 삭제될 수 있다.In some embodiments of the present invention, the first flow rule may be deleted from the network equipment after a predetermined time has elapsed from the point in time when the connection with the SDN controller server is cut off.
본 발명의 일부 실시예에서, 상기 복수의 네트워크 장비 중 적어도 하나의 네트워크 장비에서 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 단계는, 상기 소정의 시간이 경과하여 상기 제1 플로우 룰이 삭제된 후, 상기 제2 플로우 룰의 적용 여부를 통해 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인할 수 있다.In some embodiments of the present invention, the step of checking whether the connection with the SDN controller server is disconnected from at least one of the plurality of network devices includes the deletion of the first flow rule after the predetermined time has passed. Thereafter, it is possible to check whether the connection with the SDN controller server is disconnected through whether the second flow rule is applied.
본 발명의 일부 실시예는, 상기 네트워크 장비가 상기 제2 플로우 룰에 기초하여 패킷 처리 중, 상기 SDN 컨트롤러 서버로부터 제1 플로우 룰을 재수신하는 단계; 상기 제2 플로우 룰을 대신하여 상기 제1 플로우 룰을 적용시키는 단계; 및 상기 재수신한 제1 플로우 룰에 기초하여 패킷을 처리하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, the method includes: re-receiving, by the network equipment, a first flow rule from the SDN controller server during packet processing based on the second flow rule; applying the first flow rule in place of the second flow rule; and processing the packet based on the re-received first flow rule.
또한, 본 발명의 제2 측면에 따른 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비는 적어도 하나의 호스트 및 SDN 컨트롤러 서버와 패킷을 송수신하는 통신모듈, 상기 SDN 기반 네트워크 환경에서의 장애 발생 여부에 따라 제1 및 제2 플로우 룰 중 어느 하나를 적용하여 패킷을 처리하기 위한 프로그램이 저장된 메모리 및 상기 메모리에 저장된 프로그램을 실행시키는 프로세서를 포함한다. 이때, 상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 통신모듈을 통해 SDN 컨트롤러 서버로부터 제1 플로우 룰을 수신 및 적용하여 패킷을 처리하고, 상기 통신모듈을 통해 SDN 컨트롤러 서버로부터 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하며, 상기 SDN 컨트롤러 서버와의 연결이 단절되는 경우 상기 제2 플로우 룰에 기초하여 패킷을 처리한다.In addition, the network equipment that handles the occurrence of an SDN controller server failure in a software-defined network environment according to the second aspect of the present invention includes at least one host and a communication module for transmitting and receiving packets to and from the SDN controller server, in the SDN-based network environment. and a memory in which a program for processing a packet by applying any one of the first and second flow rules according to whether a failure occurs, and a processor in which the program stored in the memory is stored. In this case, as the program is executed, the processor receives and applies a first flow rule from the SDN controller server through the communication module in a state in which the connection with the SDN controller server is normal, processes the packet, and performs the communication The module periodically receives and stores a second flow rule different from the first flow rule from the SDN controller server, and when the connection with the SDN controller server is cut off, the packet is processed based on the second flow rule.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.A computer program according to another aspect of the present invention for solving the above problems is combined with a computer that is hardware to execute a processing method in a network device when an SDN controller server failure occurs in the software-defined network environment, and a computer readable record stored on the medium.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
상술한 본 발명에 의하면, 네트워크 장비가 SDN 컨트롤러 서버와 연결 단절시 또는 네트워크 장비의 리부팅시에도 패킷 처리가 가능한바, 기존의 서비스 이용 중이던 호스트가 장애 시에도 지속적으로 서비스를 이용할 수 있도록 할 수 있다.According to the present invention described above, packet processing is possible even when the network equipment is disconnected from the SDN controller server or when the network equipment is rebooted, so that the host that is using the existing service can continue to use the service even in the event of a failure. .
또한, 네트워크 장비는 일반적인 상황에서도 SDN 컨트롤러 서버로부터 주기적으로 플로우 정보를 수신 및 저장하고, 장애 발생시 저장된 플로우 정보에 기초하여 패킷을 처리함으로써, 장애 발생 상황을 최소화할 수 있다는 장점이 있다.In addition, the network equipment has the advantage of being able to minimize the occurrence of a failure by periodically receiving and storing flow information from the SDN controller server even in a general situation, and processing packets based on the stored flow information when a failure occurs.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법의 순서도이다.
도 3은 네트워크 장비 내에서 제1 및 제2 플로우 룰을 저장한 예시를 설명하기 위한 도면이다.
도 4는 네트워크 장비 내 제1 플로우 룰이 타임아웃되어 삭제되는 내용을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에서의 일 예시를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 네트워크 장비를 설명하기 위한 도면이다.1 is a diagram for explaining the configuration of a software-defined network in an embodiment of the present invention.
2 is a flowchart of a processing method in a network device when an SDN controller server failure occurs according to an embodiment of the present invention.
3 is a diagram for explaining an example of storing first and second flow rules in a network device.
4 is a diagram for explaining the contents of the first flow rule in the network equipment being deleted due to a timeout.
5 is a diagram for explaining an example in an embodiment of the present invention.
6 is a diagram for explaining a network device according to an embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless otherwise specified in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.
도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.1 is a diagram for explaining the configuration of a software-defined network in an embodiment of the present invention.
도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 SDN 컨트롤러 서버(100), 네트워크 장비(200) 및 호스트(300)를 포함한다. 이때, 네트워크 장비(200)와 호스트(300)는 노드(Node)라 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미한다.Referring to FIG. 1 , a software defined network includes an
SDN 컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하며, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 SDN 컨트롤러 서버(100)는 토폴로지 관리(topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다.The SDN
네트워크 장비(200)는 SDN 컨트롤러 서버(100)의 제어어 따라 패킷을 처리하는 기능을 수행한다. 이때, 네트워크 장비(200)의 일 예로는 이통 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크 스위치, 라우터 등일 수 있다. 다만, 설명의 편의를 위해 이하에서는 네트워크 장비(200)는 오픈플로우 스위치인 경우를 중심으로 설명하며, 동일한 도면 부호를 병기하도록 한다.The
소프트웨어 정의 네트워크에서 SDN 컨트롤러 서버(100)와 네트워크 장비(200)는 상호간에 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 SDN 컨트롤러 서버(100)와 네트워크 장비(200) 간 서로 통신할 수 있는 표준 규격이다.In a software-defined network, the
보다 구체적으로 설명하면, 네트워크 장비(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. More specifically, the
상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 SDN 컨트롤러 서버(100)와 정보를 교환한다. 보안 채널은 네트워크 장비(200)와 원거리에 위치한 SDN 컨트롤러 서버(100) 간 통신 채널이며, SDN 컨트롤러 서버와 네트워크 장비(200) 간 교환되는 정보는 암호화된다.The software layer exchanges information with the
상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 플로우 룰은 SDN 컨트롤러 서버(100)가 생성하여 네트워크 장비(200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 네트워크 장비(200)는 플로우 테이블을 참조하여 패킷을 처리한다.In the hardware layer, a flow table defines and processes a packet and includes statistical information related to the packet. The flow table consists of flow rules that define packet processing, and the flow rules are added by a flow-mod message generated by the
플로우 테이블은 플로우를 정의하는 패킷 헤더 정보(Rule), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계 정보(Stats)를 포함한다. 여기에서, 플로우 테이블을 구성하는 각 행을 플로우 엔트리(Flow Entry)라 칭한다.The flow table includes packet header information (Rule) defining a flow, action information (Action) defining packet processing, and statistical information (Stats) for each flow. Here, each row constituting the flow table is referred to as a flow entry.
호스트(300)는 네트워크 장비(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 패킷을 네트워크 인터페이스의 포트를 통해 네트워크 장비(200)로 전송할 수 있다.The
예컨대, 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제1 호스트(300a)는 보내고자 하는 패킷을 생성하고, 해당 패킷을 제1 호스트(300a)와 연결된 네트워크 장비(200)로 전송한다. 네트워크 장비(200)에 해당 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우, 네트워크 장비(200)가 규정대로 패킷을 처리한다.For example, when the first host 300a wants to send a packet to the second host 300b, the first host 300a first generates a packet to be sent, and connects the packet to the first host 300a. It is transmitted to the
하지만, 네트워크 장비(200)에 해당 패킷과 관련된 플로우 테이블이 없는 경우, 네트워크 장비(200)는 SDN 컨트롤러 서버(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다.However, when the
SDN 컨트롤러 서버(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 패킷의 처리를 규정하는 플로우 모드 메시지를 생성하여 네트워크 장비(200)로 전송하고, 네트워크 장비(200)는 플로우 모드 메시지에 의해 변경된 플로우 테이블을 참조하여 해당 패킷을 처리한다.The
한편, 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보낼 수 있는 경로는 다양하다. 전체 네트워크에는 복수의 네트워크 장비(200) 및 호스트가 존재하므로 각 노드마다 복수의 링크를 가지기 때문이다. 이때, SDN 컨트롤러 서버(100)는 전체 네트워크 토폴로지 맵에 기반하여 패킷을 보낼 수 있는 복수 개의 경로 중에서 최적 경로를 연산한다. 그리고 SDN 컨트롤러 서버(100)는 연산된 최적 경로에 대한 정보를 네트워크 장비(200)에 전송하고, 네트워크 장비(200)는 최적 경로로 패킷을 처리하는 것이 일반적이다.Meanwhile, there are various paths through which the first host 300a can transmit a packet to the second host 300b. This is because, since a plurality of
이하에서는 도 2 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버(100) 장애 발생시 네트워크 장비(200)에서의 처리 방법에 대하여 설명하도록 한다.Hereinafter, a processing method in the
도 2는 본 발명의 일 실시예에 따른 SDN 컨트롤러 서버(100) 장애 발생시 네트워크 장비(200)에서의 처리 방법의 순서도이다.2 is a flowchart of a processing method in the
먼저, SDN 컨트롤러 서버(100)는 복수의 네트워크 장비(200)로 제1 플로우 룰을 전송하며, 네트워크 장비(200)는 제1 플로우 룰을 수신한다(S110). 그리고 SDN 컨트롤러 서버(100)와의 연결 접속이 정상인 상태에서 네트워크 장비(200)는 제1 플로우 룰에 기초하여 패킷을 처리한다(S120).First, the
여기에서 제1 플로우 룰은 해당 업계의 통상의 입장에서 소프트웨어 정의 네트워크에서 SDN 컨트롤러 서버(100)가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 즉, 제1 플로우 룰은 SDN 컨트롤러 서버(100)가 연결된 상태에서 적용되는 플로우 룰이며, SDN 컨트롤러 서버(100)에 의해 중앙 집중적으로 패킷 처리가 제어되는 플로우 엔트리가 정의된 룰이다. Here, the first flow rule should be understood to mean a network policy applied by the
SDN 컨트롤러 서버(100)는 네트워크 장비(200) 및 호스트(300)가 등록 또는 삭제됨에 따라 동적으로 제1 플로우 룰을 상응하는 네트워크 장비(200)로 전송하여 갱신하거나 또는 삭제할 수 있다. 이러한, 제1 플로우 룰은 네트워크 토폴로지가 변화하는 상황에 따라 동적으로 운용되어야 하는바, 디스크에 기록되는 제2 플로우 룰과는 달리 메모리 상에 기록된다.As the
일반적으로 네트워크 장비(200)가 리부팅될 경우, SDN 컨트롤러 서버(100)로부터 수신한 제1 플로우 룰은 메모리 상에서 삭제되며, 리부팅이 완료된 후 SDN 컨트롤러 서버(100)와 연결 접속됨에 따라 네트워크 장비(200)는 제1 플로우 룰을 다시 수신하게 된다.In general, when the
이때, 리부팅이 사용자에 의해 수행된 경우, 사용자는 일시적인 통신 장애가 발생할 것을 미리 알고 있기 때문에 큰 문제가 되지 않는다. 하지만, 시스템의 장애로 인한 리부팅의 경우, 또는 SDN 컨트롤러 서버(100)에 의한 장애로 연결 접속이 단절되는 경우, SDN 컨트롤러 서버(100)는 네트워크 장비(200)를 제어할 수 없게 되며, 이에 따라 상호 간에 다시 연결 접속될 때까지 서비스의 이용이 불가하다.At this time, when the reboot is performed by the user, it is not a big problem because the user knows in advance that a temporary communication failure will occur. However, in the case of a reboot due to a system failure or when the connection is disconnected due to a failure due to the
본 발명의 일 실시예는 사용자에 의해 리부팅되는 경우뿐만 아니라, 장애로 인한 연결 접속이 단절되는 경우까지도, 별도의 플로우 룰을 통한 패킷 처리가 가능하도록 하여 호스트(300)에게 지속적인 서비스 이용이 가능하게끔 할 수 있다.An embodiment of the present invention enables the
구체적으로, 네트워크 장비(200)는 SDN 컨트롤러 서버(100)로부터 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신하여 저장한다(S130). 이때, 제1 플로우 룰과 제2 플로우 룰은 반드시 순차적으로 전송 및 수신되는 것은 아니며 동시에 전송 및 수신되어도 무방하다. 한편, 본 발명의 설명 및 도면에서는 편의상 제1 플로우 룰이 수신된 이후 제2 플로우 룰이 수신되는 것으로 설명하였으나 반드시 이에 한정되는 것은 아니다.Specifically, the
도 3은 네트워크 장비(200) 내에서 제1 및 제2 플로우 룰을 저장한 예시를 설명하기 위한 도면이다.FIG. 3 is a diagram for explaining an example of storing the first and second flow rules in the
여기에서 제2 플로우 룰은 SND 컨트롤러 서버(100)와의 연결이 단절된 상태에서 적용되는 룰로, 네트워크 장비(200) 즉 L2 스위치 또는 L3 스위치에 직접 대응하는 플로우 엔트리가 정의된 룰로 제1 플로우 룰과는 그 성격이 상이하다.Here, the second flow rule is a rule applied in a state in which the connection with the
복수의 네트워크 장비(200)는 제1 플로우 룰과 제2 플로우 룰 중 어느 하나만을 적용하여 패킷을 처리한다. The plurality of
일 실시예로, 제1 플로우 룰은 복수의 네트워크 장비(200)가 SDN 컨트롤러 서버(100)와의 연결이 접속된 상태에서 제2 플로우 룰보다 높은 우선 순위를 갖는다. 따라서, 네트워크 장비(200)는 제1 플로우 룰과 제2 플로우 룰을 동시에 저장하고 있는 상태에서, 제1 플로우 룰이 존재하는 한 제2 플로우 룰은 적용하지 않고 제1 플로우 룰만 적용하여 패킷을 처리한다.In one embodiment, the first flow rule has a higher priority than the second flow rule in a state in which the plurality of
한편, SDN 컨트롤러 서버(100)는 네트워크 장비(200) 내에서 최신 정책이 유지되도록 제2 플로우 룰을 주기적으로 업데이트하여 네트워크 장비(200)로 전송하며, 네트워크 장비(200)는 업데이트된 제2 플로우 룰을 주기적으로 수신한다. 네트워크 장비(200)는 제2 플로우 룰을 수신함에 따라, 제1 플로우 룰이 저장되는 영역과 상이한 내부 메모리 상에 별도로 저장할 수 있다. 즉, 제2 플로우 룰은 네트워크 장비(200)의 내부 디스크에 파일 형태로 저장된다.Meanwhile, the
이에 따라, 네트워크 장비(200)는 재부팅되더라도 제1 플로우 룰과 달리, 내부 디스크에 저장된 제2 플로우 룰에 상응하는 파일을 독출하여 다시 메모리 상으로 이동시키기 때문에, SDN 컨트롤러 서버(200)와의 연결이 단절된 상태에서도 패킷 처리에 가장 적합한 제2 플로우 룰을 유지함으로써 호스트(300)의 서비스를 위한 패킷을 처리할 수 있다.Accordingly, even if the
다음으로, 복수의 네트워크 장비(200) 중 적어도 하나의 네트워크 장비(200)에서 SDN 컨트롤러 서버(100)와의 연결 단절 여부를 확인하고(S140), 확인 결과 연결이 단절된 경우 제2 플로우 룰에 기초하여 패킷을 처리한다(S150).Next, at least one of the plurality of
도 4는 네트워크 장비(200) 내 제1 플로우 룰이 타임아웃되어 삭제되는 내용을 설명하기 위한 도면이다.FIG. 4 is a diagram for explaining the contents of the first flow rule in the
일 실시예로, 제1 플로우 룰은 SDN 컨트롤러 서버(100)에 의하여 설정된 타임아웃을 포함하고 있으며, 이에 따라 제1 플로우 룰은 SDN 컨트롤러 서버(100)와의 연결이 단절된 시점으로부터 소정의 시간이 경과한 후(Timeout) 네트워크 장비(200) 내에서 삭제된다.In one embodiment, the first flow rule includes a timeout set by the
이와 같이 제1 플로우 룰이 삭제되는 것은 제1 플로우 룰이 제2 플로우 룰보다 높은 우선 순위를 갖기 때문이다. 만약 SDN 컨트롤러 서버(100)와 네트워크 장비(200) 간 연결 접속이 단절된 상태에서 제1 플로우 룰이 네트워크 장비(200) 내에서 삭제되지 않을 경우, 제1 플로우 룰이 제2 플로우 룰보다 계속하여 우선 적용되기 때문에 네트워크 장비(200)는 패킷 처리가 불가하게 된다. 따라서, 네트워크 장비(200)와 SDN 컨트롤러 서버(100) 간의 연결 접속이 단절될 경우 제1 플로우 룰은 타임아웃되어 삭제된다.The reason that the first flow rule is deleted in this way is because the first flow rule has a higher priority than the second flow rule. If the first flow rule is not deleted in the
이때, 소정의 시간이 경과하여 제1 플로우 룰이 삭제됨에 따라, 네트워크 장비(200)는 제2 플로우 룰의 적용 여부를 통해 SDN 컨트롤러 서버(100)와의 연결 단절 여부를 확인할 수 있다.In this case, as the first flow rule is deleted after a predetermined time elapses, the
전술한 바와 같이, 제2 플로우 룰은 제1 플로우 룰보다 우선 순위가 낮도록 설정된다. 이를 위해 SDN 컨트롤러 서버(100)는 네트워크 장비(200)에서 제1 플로우 룰을 통해 패킷이 처리되고 있는 상태에서 제2 플로우 룰을 수신 및 저장함에 따라, 제1 플로우 룰에 포함된 최하위 우선 순위를 갖는 플로우 엔트리를 제2 플로우 룰에 포함된 최상위 우선 순위를 갖는 플로우 엔트리보다 높은 우선 순위를 갖도록 변경할 수 있다.As described above, the second flow rule is set to have a lower priority than the first flow rule. To this end, the
이와 같은 일련의 과정을 통해, 본 발명의 일 실시예는 SDN 컨트롤러 서버(100)가 다운된 상태에서도 호스트(300)에게 동일한 서비스를 제공하는 헤드리스 모드(Headless Mode)로 동작이 가능하다. Through such a series of processes, an embodiment of the present invention can operate in a headless mode that provides the same service to the
즉, 본 발명의 일 실시예는 SDN 컨트롤러 서버(100)와 네트워크 장비(200) 간 정상 접속 상태에서는 제1 플로우 룰을 통해 패킷을 송수신하여 모든 호스트(300)가 정상적인 통신이 가능하도록 한다. That is, in an embodiment of the present invention, in a normal connection state between the
이와 달리, 연결 접속이 단절된 상태에서는 새롭게 연결되는 호스트에 대한 서비스 불가능, 기존의 호스트가 이동시 서비스 불가능, 등록 또는 삭제된 호스트에 대한 기존 정책이 남아 있음으로 인한 플로우 테이블 비효율성 증가 등의 장애 및 이슈가 발생하게 된다. On the other hand, failures and issues such as inability to service a newly connected host when connection is disconnected, inability to service when an existing host is moved, and increase in flow table inefficiency due to existing policies for registered or deleted hosts remain will occur
따라서, 본 발명의 일 실시예는 SDN 컨트롤러 서버(100)와의 연결 접속이 단절될 경우, 제1 플로우 룰이 삭제되도록 한 후, 제2 플로우 룰을 통해 패킷이 송수신되게끔 함으로써, 호스트(300)가 해당 네트워크 망을 통해 이용 중인 서비스를 계속하여 이용 가능하도록 할 수 있다.Therefore, in an embodiment of the present invention, when the connection with the
도 5는 본 발명의 일 실시예에서의 일 예시를 설명하기 위한 도면이다.5 is a diagram for explaining an example in an embodiment of the present invention.
도 5의 예시에 따른 SDN 환경에서의 토폴로지는 SDN 컨트롤러 서버, spine-leaf 구조의 네트워크 장비(200a, 200b), 그리고 네트워크 장비(200)와 연결된 호스트(300)로 구성되어 있다.The topology in the SDN environment according to the example of FIG. 5 includes an SDN controller server,
일 예로, 네트워크 장비(200) 중 제2 네트워크 스위치(200b-2)는 SDN 컨틀로러 서버(100)와 연결 접속됨에 따라 다음 표 1과 같은 제1 플로우 룰과 제2 플로우 룰을 수신하고, 제1 플로우 룰에 기초하여 패킷을 처리한다.As an example, as the
이때, SDN 컨트롤러 서버(100)가 전송한 제2 플로우 룰은 제2 네트워크 스위치(200b-2)의 내부 메모리 상의 디스크에 파일 형태로 기록된다.At this time, the second flow rule transmitted by the
한편, 제1 플로우 룰의 각 플로우 엔트리에는 타임아웃(네트워크 다운타임)이 설정되어 있으며, 제2 플로우 룰보다 더 높은 우선 순위를 갖는다.Meanwhile, a timeout (network downtime) is set in each flow entry of the first flow rule, and has a higher priority than the second flow rule.
[표 1][Table 1]
이후, 제2 네트워크 스위치(200b-2)는 SDN 컨트롤러 서버(100)와의 연결이 단절되는 것을 확인함에 따라, 제2 플로우 룰에 기초하여 패킷을 처리한다. 이때, 제2 네트워크 스위치(200b-2)에 저장된 기존의 제1 플로우 룰을 타임아웃됨에 따라 삭제되며, 이에 따라 제2 네트워크 스위치(200b-2)는 우선 순위가 조정된 제2 플로우 룰에 기초하여 패킷을 처리한다. 이와 같이 수정된 플로우 테이블은 표 2와 같다.Thereafter, the
[표 2][Table 2]
이후, 제2 네트워크 스위치(200b-2)는 제2 플로우 룰에 기초하여 패킷 처리 중 SDN 컨트롤러 서버(100)와 다시 연결됨에 따라 제1 플로우 룰을 재수신한다. 그리고 우선 순위에 따라 제2 플로우 룰을 대신하여 제1 플로우 룰을 적용시키고, 재수신한 제1 플로우 룰에 기초하여 패킷을 처리한다.한편, 상술한 설명에서, 단계 S110 내지 S150은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 5의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법의 내용은 후술하는 도 6의 내용에도 적용될 수 있다.Thereafter, the
이하에서는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비(200, 이하 네트워크 장비)에 대하여 설명하도록 한다.Hereinafter, a network device 200 (hereinafter referred to as a network device) that handles an SDN controller server failure in a software-defined network environment according to an embodiment of the present invention will be described.
도 6은 본 발명의 일 실시예에 따른 네트워크 장비(200)를 설명하기 위한 도면이다.6 is a diagram for explaining the
도 6을 참조하면, 본 발명의 일 실시예에 따른 네트워크 장비(200)는 통신모듈(210), 메모리(220) 및 프로세서(230)를 포함한다.Referring to FIG. 6 , the
통신모듈(210)은 적어도 하나의 호스트(300) 및 SDN 컨트롤러 서버(100)와 연결 접속되어 패킷을 송수신한다.The
메모리(220)에는 SDN 기반 네트워크 환경에서의 장애 발생 여부에 따른 제1 및 제2 플로우 룰 중 어느 하나를 적용하여 패킷을 처리하기 위한 프로그램이 저장된다.The
프로세서(230)는 메모리(220)에 저장된 프로그램을 실행시킴에 따라, SDN 컨트롤러 서버(100)와의 연결 접속이 정상인 상태에서 통신모듈을 통해 SDN 컨트롤러 서버(100)로부터 제1 플로우 룰을 수신 및 적용하여 패킷을 처리하고, SDN 컨트롤러 서버(100)로부터 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하며, SDN 컨트롤러 서버(100)와의 연결이 단절되는 경우 제2 플로우 룰에 기초하여 패킷을 처리한다.As the
도 6을 참조하여 설명한 네트워크 장비(200)는 상술한 서버의 구성요소로 제공될 수 있다.The
이상에서 전술한 본 발명의 일 실시예에 따른 SDN 컨트롤러 서버 장애 발생시 처리 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The above-described SDN controller server failure handling method according to an embodiment of the present invention may be implemented as a program (or application) and stored in a medium to be executed in combination with a computer, which is hardware.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program, in order for the computer to read the program and execute the methods implemented as a program, C, C++, JAVA, Ruby, which the processor (CPU) of the computer can read through the device interface of the computer; It may include code coded in a computer language such as machine language. Such code may include functional code related to a function defining functions necessary for executing the methods, etc., and includes an execution procedure related control code necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, this code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer should be referenced. have. In addition, when the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the functions, the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and an optical data storage device. That is, the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user. In addition, the medium may be distributed in a computer system connected to a network, and a computer-readable code may be stored in a distributed manner.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.
100: SDN 컨트롤러 서버
200: 네트워크 장비
210: 통신모듈
220: 메모리
230: 프로세서
300: 호스트100: SDN controller server
200: network equipment
210: communication module
220: memory
230: processor
300: host
Claims (8)
SDN 컨트롤러 서버와 접속된 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버로부터 제 1 플로우 룰을 수신하는 단계;
상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제1 플로우 룰에 기초하여 패킷을 처리하는 단계;
상기 SDN 컨트롤러 서버로부터 상기 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하는 단계;
상기 복수의 네트워크 장비 중 적어도 하나의 네트워크 장비에서 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 단계; 및
상기 확인 결과 연결이 단절된 경우, 상기 SDN 컨트롤러와 단절된 상태에서 상기 제2 플로우 룰에 기초하여 호스트의 서비스를 위한 패킷을 처리하는 단계를 포함하며,
상기 복수의 네트워크 장비는 상기 제1 플로우 룰 및 제2 플로우 룰 중 어느 하나에 기초하여 패킷을 처리하고,
상기 제1 플로우 룰은 상기 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제2 플로우 룰보다 높은 우선 순위를 갖으며,
상기 제2 플로우 룰이 수신 및 저장됨에 따라, 상기 제1 플로우 룰에 포함된 최하위 우선 순위를 갖는 플로우 엔트리는 상기 제2 플로우 룰에 포함된 최상위 우선 순위를 갖는 플로우 엔트리보다 높은 우선 순위를 갖도록 변경되고,
상기 복수의 네트워크 장비 중 적어도 하나의 네트워크 장비에서 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 단계는,
소정의 시간이 경과하여 상기 제1 플로우 룰이 삭제된 후, 상기 제2 플로우 룰의 적용 여부를 통해 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 것인,
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법.
In the case of an SDN controller server failure in a software-defined network environment, a processing method in a network device, the method comprising:
receiving, by a plurality of network devices connected to the SDN controller server, a first flow rule from the SDN controller server;
processing a packet based on the first flow rule in a state in which the connection to the SDN controller server is normal;
periodically receiving and storing a second flow rule different from the first flow rule from the SDN controller server;
checking whether at least one network device among the plurality of network devices is disconnected from the SDN controller server; and
When the connection is disconnected as a result of the check, processing a packet for a service of a host based on the second flow rule in a state in which the connection is disconnected from the SDN controller;
The plurality of network equipment processes a packet based on any one of the first flow rule and the second flow rule,
The first flow rule has a higher priority than the second flow rule in a state in which the plurality of network devices have a normal connection to the SDN controller server,
As the second flow rule is received and stored, the flow entry having the lowest priority included in the first flow rule is changed to have a higher priority than the flow entry having the highest priority included in the second flow rule become,
The step of checking whether the connection with the SDN controller server is disconnected in at least one network device among the plurality of network devices includes:
After a predetermined time has elapsed and the first flow rule is deleted, whether the connection with the SDN controller server is disconnected is checked through whether the second flow rule is applied or not,
How to deal with SDN controller server failures in software-defined network environments in network devices.
상기 SDN 컨트롤러 서버로부터 상기 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하는 단계는,
상기 SDN 컨트롤러 서버가 상기 제2 플로우 룰을 주기적으로 업데이트함에 따라, 상기 복수의 네트워크 장비는 업데이트된 제2 플로우 룰을 주기적으로 수신하여 상기 제1 플로우 룰이 저장되는 영역과 상이한 내부 메모리 상에 별도로 저장하는 것인,
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법.
According to claim 1,
The step of periodically receiving and storing a second flow rule different from the first flow rule from the SDN controller server comprises:
As the SDN controller server periodically updates the second flow rule, the plurality of network devices periodically receive the updated second flow rule and separately on an internal memory different from the area in which the first flow rule is stored. to save,
In the event of an SDN controller server failure in a software-defined network environment, the network device handles it.
상기 제1 플로우 룰은 상기 SDN 컨트롤러 서버와의 연결이 단절된 시점으로부터 소정의 시간 경과 후 상기 네트워크 장비 내에서 삭제되는 것인,
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 네트워크 장비에서의 처리 방법.
According to claim 1,
The first flow rule will be deleted from the network equipment after a predetermined period of time has elapsed from the point in time when the connection with the SDN controller server is cut off,
In the event of an SDN controller server failure in a software-defined network environment, the network device handles it.
상기 네트워크 장비가 상기 제2 플로우 룰에 기초하여 패킷 처리 중, 상기 SDN 컨트롤러 서버로부터 제1 플로우 룰을 재수신하는 단계;
상기 제2 플로우 룰을 대신하여 상기 제1 플로우 룰을 적용시키는 단계; 및
상기 재수신한 제1 플로우 룰에 기초하여 패킷을 처리하는 단계를 더 포함하는,
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 처리 방법.
According to claim 1,
receiving, by the network equipment, a first flow rule from the SDN controller server during packet processing based on the second flow rule;
applying the first flow rule in place of the second flow rule; and
Further comprising the step of processing the packet based on the re-received first flow rule,
How to handle an SDN controller server failure in a software-defined network environment.
적어도 하나의 호스트 및 SDN 컨트롤러 서버와 패킷을 송수신하는 통신모듈,
SDN 기반 네트워크 환경에서의 장애 발생 여부에 따라 제1 및 제2 플로우 룰 중 어느 하나를 적용하여 패킷을 처리하기 위한 프로그램이 저장된 메모리 및
상기 메모리에 저장된 프로그램을 실행시키는 프로세서를 포함하며,
상기 프로세서는 상기 프로그램을 실행시킴에 따라, 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 통신모듈을 통해 SDN 컨트롤러 서버로부터 제1 플로우 룰을 수신 및 적용하여 패킷을 처리하고,
상기 통신모듈을 통해 SDN 컨트롤러 서버로부터 제1 플로우 룰과 상이한 제2 플로우 룰을 주기적으로 수신 및 저장하며, 상기 SDN 컨트롤러 서버와의 연결이 단절되는 경우, 상기 SDN 컨트롤러 서버와 단절된 상태에서 상기 제2 플로우 룰에 기초하여 호스트의 서비스를 위한 패킷을 처리하고,
상기 제1 플로우 룰은 상기 복수의 네트워크 장비가 상기 SDN 컨트롤러 서버와의 연결 접속이 정상인 상태에서 상기 제2 플로우 룰보다 높은 우선 순위를 갖으며,
상기 제2 플로우 룰이 수신 및 저장됨에 따라, 상기 제1 플로우 룰에 포함된 최하위 우선 순위를 갖는 플로우 엔트리는 상기 제2 플로우 룰에 포함된 최상위 우선 순위를 갖는 플로우 엔트리보다 높은 우선 순위를 갖도록 변경되고,
상기 프로세서는 소정의 시간이 경과하여 상기 제1 플로우 룰이 삭제된 후, 상기 제2 플로우 룰의 적용 여부를 통해 상기 SDN 컨트롤러 서버와의 연결 단절 여부를 확인하는 것인,
소프트웨어 정의 네트워크 환경에서의 SDN 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비.In the case of SDN controller server failure in a software-defined network environment, in the network equipment for handling it,
A communication module for transmitting and receiving packets to and from at least one host and SDN controller server;
A memory in which a program for processing packets by applying any one of the first and second flow rules according to the occurrence of a failure in the SDN-based network environment is stored;
A processor for executing the program stored in the memory;
When the processor executes the program, the processor receives and applies a first flow rule from the SDN controller server through the communication module in a state in which the connection to the SDN controller server is normal, and processes the packet;
Periodically receive and store a second flow rule different from the first flow rule from the SDN controller server through the communication module, and when the connection with the SDN controller server is cut off, the second flow rule is disconnected from the SDN controller server Processes a packet for a service of the host based on the flow rule,
The first flow rule has a higher priority than the second flow rule in a state in which the plurality of network devices have a normal connection to the SDN controller server,
As the second flow rule is received and stored, the flow entry having the lowest priority included in the first flow rule is changed to have a higher priority than the flow entry having the highest priority included in the second flow rule become,
After a predetermined time elapses and the first flow rule is deleted, the processor determines whether the connection with the SDN controller server is disconnected through whether the second flow rule is applied.
Network equipment that handles SDN controller server failures in a software-defined network environment.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020200111119A KR102404112B1 (en) | 2020-09-01 | 2020-09-01 | Network device and method for handling failure of sdn controller server in software defined network enviroment |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020200111119A KR102404112B1 (en) | 2020-09-01 | 2020-09-01 | Network device and method for handling failure of sdn controller server in software defined network enviroment |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20220029143A KR20220029143A (en) | 2022-03-08 |
| KR102404112B1 true KR102404112B1 (en) | 2022-06-02 |
Family
ID=80813262
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020200111119A Active KR102404112B1 (en) | 2020-09-01 | 2020-09-01 | Network device and method for handling failure of sdn controller server in software defined network enviroment |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102404112B1 (en) |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101579006B1 (en) * | 2013-08-21 | 2015-12-18 | 주식회사 케이티 | Method for synchronizing flow table between controllers and network apparatus |
| KR20160002270A (en) | 2014-06-30 | 2016-01-07 | 한국전자통신연구원 | SDN-based service disability recovery apparatus and method therefor |
| KR101799340B1 (en) * | 2016-01-26 | 2017-11-20 | 아토리서치(주) | Method for emergency recovery of network function virtualization |
| KR101870146B1 (en) * | 2016-10-12 | 2018-06-25 | 아토리서치(주) | Method and apparatus for destination based packet forwarding control in software defined networking of leaf-spine architecture |
-
2020
- 2020-09-01 KR KR1020200111119A patent/KR102404112B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| KR20220029143A (en) | 2022-03-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10530641B2 (en) | Uninterrupted flow processing by a software defined network (SDN) appliance despite a lost or disrupted connection with an SDN controller | |
| US8429255B1 (en) | Determining reorder commands for remote reordering of policy rules | |
| JP3910613B2 (en) | Network attached storage SNMP single system image | |
| US12316544B2 (en) | Method and apparatus for controlling data packet sending, model training method and apparatus, and system | |
| JP2017516417A (en) | System and method for controlling a network switch using a switch modeling interface in a controller | |
| US20160094657A1 (en) | Event-driven synchronization in snmp managed networks | |
| US20250247366A1 (en) | Distributed firewall definition method and system | |
| US9210073B2 (en) | System and method for message routing in a network | |
| US10462064B2 (en) | Maximum transmission unit installation for network traffic along a datapath in a software defined network | |
| US20130250797A1 (en) | Communication control system, control device, communication control method, and communication control program | |
| KR101658824B1 (en) | Method, apparatus and computer program for updating flow rules of software defined network | |
| KR102277554B1 (en) | Controller and method for providing switch migration in software defined networking | |
| JP5229007B2 (en) | Monitoring system, network device, monitoring information providing method and program | |
| US7440458B2 (en) | System for determining network route quality using sequence numbers | |
| US20100098089A1 (en) | Packet transfer device and method | |
| KR20220029142A (en) | Sdn controller server and method for analysing sdn based network traffic usage thereof | |
| KR102404112B1 (en) | Network device and method for handling failure of sdn controller server in software defined network enviroment | |
| CN115426250A (en) | Dual-computer hot standby switching method and device for target range finger control | |
| JP2003507976A (en) | Comprehensive alignment process in multi-manager environment | |
| KR102346417B1 (en) | Method for selecting leader controller node in decentralized software-defined network | |
| CN113596109B (en) | Business request operation method, system, device, equipment and storage medium | |
| US11881997B1 (en) | Determining reorder commands for remote reordering of policy rules | |
| JP5915755B2 (en) | Information processing device | |
| KR101783094B1 (en) | Method and apparatus for reporting bundle capabilities between controller and network equipments | |
| CN109450794A (en) | A kind of communication means and equipment based on SDN network |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20200901 |
|
| PA0201 | Request for examination | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20210713 Patent event code: PE09021S01D |
|
| PG1501 | Laying open of application | ||
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20220524 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20220526 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20220527 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |

