KR101969304B1 - Method and computer program for handling trouble using packet-out message in software defined networking environment - Google Patents

Method and computer program for handling trouble using packet-out message in software defined networking environment Download PDF

Info

Publication number
KR101969304B1
KR101969304B1 KR1020170140172A KR20170140172A KR101969304B1 KR 101969304 B1 KR101969304 B1 KR 101969304B1 KR 1020170140172 A KR1020170140172 A KR 1020170140172A KR 20170140172 A KR20170140172 A KR 20170140172A KR 101969304 B1 KR101969304 B1 KR 101969304B1
Authority
KR
South Korea
Prior art keywords
packet
arp
arp request
request packet
controller
Prior art date
Application number
KR1020170140172A
Other languages
Korean (ko)
Inventor
박현우
김지원
박범수
김재호
황인욱
송용주
Original Assignee
아토리서치(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아토리서치(주) filed Critical 아토리서치(주)
Priority to KR1020170140172A priority Critical patent/KR101969304B1/en
Application granted granted Critical
Publication of KR101969304B1 publication Critical patent/KR101969304B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]

Abstract

The present invention relates to a method for processing faults generated when a network interface is bound in a software-defined networking environment, and a computer program. According to the present invention, a method for fault recovery of a controller managing a host having a network interface bound thereto in a software-defined networking environment, comprises the steps of: when the host transmits a first ARP request packet containing a predetermined first logical address to any network device, receiving a packet-in message for the ARP request packet from the network device; generating an ARP packet containing a first physical address corresponding to the first logical address or using the first ARP request packet to generate a second ARP request packet; and transmitting a packet-out message containing the ARP packet or the second ARP request packet to the network device. According to the present invention, when a network interface of a terminal is bound in a software-defined networking environment, a fault generated between network devices and a controller can be easily detected.

Description

패킷-아웃 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램{METHOD AND COMPUTER PROGRAM FOR HANDLING TROUBLE USING PACKET-OUT MESSAGE IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}METHODS AND COMPUTER PROGRAM FOR HANDLING TROUBLE USING PACKET-OUT MESSAGE IN SOFTWARE DEFINED NETWORKING ENVIRONMENT}

본 발명은 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법에 관한 것으로, 보다 자세하게는 소프트웨어 정의 네트워킹 환경에서 컨트롤러가 생성하는 패킷-아웃 메시지를 이용하여 네트워크 인터페이스 본딩 시 발생할 수 있는 네트워크 장애를 처리하는 방법 및 컴퓨터 프로그램에 관한 것이다. The present invention relates to a failure handling method in a software defined networking environment, and more particularly, a method and a computer for handling a network failure that may occur when bonding a network interface using a packet-out message generated by a controller in a software defined networking environment. It's about the program.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다. SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.Software Defined Networking (hereinafter referred to as SDN) refers to a technology for managing all network equipment of a network by an intelligent central management system. In the SDN technology, a controller provided in software forms a control operation related to packet processing performed by an existing hardware network device on its behalf, so that various functions can be developed and assigned than an existing network structure. The SDN system generally includes a controller server controlling the entire network, a plurality of open flow switches controlled by the controller server and processing packets, and a host corresponding to a lower layer of the open flow switch. In this case, the open flow switch is in charge of the transmission / reception of packets only, and the routing, management, and control of the packets are all performed at the controller server. In other words, it is a basic structure of the SDN system that separates the data plane and control plane constituting the network equipment.

한편, 네트워크 본딩(Bonding)은 여러 개의 네트워크 인터페이스를 하나로 묶어 네트워크 인터페이스 장애 또는 링크 단절에 대비하기 위한 기술로, 레거시 네트워크(legacy network)에서 네트워크의 장애 허용 시스템(Fault tolerant system) 구현 내지는 로드밸런스 구현을 위해 사용되고 있다. On the other hand, network bonding is a technology for preparing a network interface failure or link disconnection by tying several network interfaces together, and implementing a fault tolerant system or load balancing of a network in a legacy network. It is being used for

임의의 단말에 구성된 하나 이상의 네트워크 인터페이스에 대하여 본딩이 이루어지면, 해당 컴퓨터는 활성화된 네트워크 인터페이스(이하, 본딩 인터페이스)는 기 설정된 임의의 IP(이하, 타겟 IP라 함)에 대해 정기적으로 ARP 요청을 전송하고, 일정 시간 내에 타겟 IP와 관련된 ARP 패킷이 수신되지 않으면 사용되지 않는 인터페이스를 본딩 인터페이스로 설정함으로써 장애 상황을 극복한다. (도 1 참조) When bonding is made to one or more network interfaces configured in an arbitrary terminal, the corresponding computer periodically sends an ARP request to a predetermined IP (hereinafter, referred to as a target IP). If the ARP packet related to the target IP is not received within a certain time, the unused interface is set as the bonding interface to overcome the failure situation. (See Figure 1)

그러나 소프트웨어 정의 네트워킹 환경(이하, SDN 환경이라 함)에서는 종래의 방법으로 장애를 감지하는 데 한계가 있다. SDN 환경에서는 링크나 스위치의 장애 뿐 아니라, 컨트롤러와 네트워크 장비 간의 관리 네트워크 장애도 감지해야하기 때문이다. 도 2와 같이 서버의 활성화 본딩 인터페이스와 연결된 스위치와 컨트롤러 사이의 링크가 끊어졌을 때, 종래 방식에 의하면 이러한 링크 단절이 감지되지 않아 문제가 발생할 수 있다. 따라서 SDN 환경에서 단말의 네트워크 인터페이스를 본딩하는 경우 네트워크에서 발생되는 장애를 감지할 수 있는 방법이 요구된다. However, in a software defined networking environment (hereinafter referred to as an SDN environment), there is a limit in detecting a failure by a conventional method. This is because in SDN environments, not only link or switch failures, but also management network failures between the controller and network equipment must be detected. When the link between the switch and the controller connected to the activating bonding interface of the server is broken as shown in FIG. 2, according to the conventional method, such a link disconnection is not detected and a problem may occur. Therefore, when bonding the network interface of the terminal in the SDN environment, a method for detecting a failure occurring in the network is required.

본 발명은 전술한 문제점을 해결하기 위한 것으로서, 소프트웨어 정의 네트워킹 환경에서 단말의 네트워크 인터페이스를 본딩한 경우 네트워크 장비와 컨트롤러 사이에서 발생되는 장애를 용이하게 감지할 수 있는 방법을 제공하는 것을 일 목적으로 한다. An object of the present invention is to provide a method for easily detecting a failure occurring between a network device and a controller when bonding a network interface of a terminal in a software defined networking environment. .

소프트웨어 정의 네트워킹 환경에서도 단말이 네트워크 인터페이스를 본딩할 수 있게 되어, 보다 안정적인 네트워크 관리를 가능하게 하는 것을 다른 목적으로 한다. It is another object of the present invention to enable a terminal to bond network interfaces in a software defined networking environment, thereby enabling more stable network management.

이러한 목적을 달성하기 위한 본 발명은 소프트웨어 정의 네트워킹 환경에서 네트워크 인터페이스가 본딩(Bonding)된 호스트를 관리하는 컨트롤러의 장애 처리 방법에 있어서, 상기 호스트가 기 설정된 제1 논리 주소를 포함하는 제1 ARP 요청 패킷을 임의의 네트워크 장비에 전송하면, 상기 네트워크 장비로부터 상기 ARP 요청 패킷에 대한 패킷-인 메시지를 수신하는 단계, 상기 제1 논리 주소에 대응되는 제1 물리 주소를 포함하는 ARP 패킷을 생성하거나, 제1 ARP 요청 패킷을 이용하여 제2 ARP 요청 패킷을 생성하는 단계, 상기 ARP 패킷 또는 제2 ARP 요청 패킷을 포함하는 패킷-아웃 메시지를 상기 네트워크 장비에 전송하는 단계를 포함하는 것을 일 특징으로 한다. In order to achieve the above object, the present invention provides a method for handling a failure of a controller managing a host bonded to a network interface in a software defined networking environment, the host including a first ARP request including a preset first logical address. Sending a packet to any network equipment, receiving a packet-in message for the ARP request packet from the network equipment, generating an ARP packet including a first physical address corresponding to the first logical address, or Generating a second ARP request packet by using a first ARP request packet, and transmitting a packet-out message including the ARP packet or the second ARP request packet to the network equipment. .

전술한 바와 같은 본 발명에 의하면 소프트웨어 정의 네트워킹 환경에서 단말의 네트워크 인터페이스를 본딩하는 경우 네트워크 장비와 컨트롤러 사이에서 발생되는 장애를 용이하게 감지할 수 있다.According to the present invention as described above, when bonding the network interface of the terminal in the software-defined networking environment, it is possible to easily detect a failure occurring between the network equipment and the controller.

또한, 본 발명에 의하면 소프트웨어 정의 네트워킹 환경에서도 단말이 네트워크 인터페이스를 본딩할 수 있게 되어, 보다 안정적인 네트워크 관리가 가능해지는 장점이 있다. In addition, the present invention has the advantage that the terminal can bond the network interface in the software-defined networking environment, more stable network management.

도 1은 레거시 네트워크에서의 네트워크 인터페이스 본딩시 장애 처리 방법을 설명하기 위한 도면,
도 2는 소프트웨어 정의 네트워킹 환경에서의 종래 기술 적용의 한계를 설명하기 위한 도면,
도 3은 본 발명의 소프트웨어 정의 네트워킹 환경에서 단말의 네트워크 인터페이스를 본딩한 경우 발생되는 장애 처리 방법의 일 실시 예를 설명하기 위한 도면,
도 4는 본 발명의 일 실시 예에 따른 패킷 아웃 메시지를 이용한 장애 처리 방법을 설명하기 위한 도면이다.
1 is a view illustrating a failure handling method when bonding a network interface in a legacy network;
2 is a view for explaining a limitation of the prior art application in a software defined networking environment;
FIG. 3 is a view for explaining an embodiment of a failure handling method generated when a network interface of a terminal is bonded in a software defined networking environment of the present invention; FIG.
4 is a diagram illustrating a failure processing method using a packet out message according to an embodiment of the present invention.

전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다. The above objects, features, and advantages will be described in detail with reference to the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. In describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings are used to indicate the same or similar components, all combinations described in the specification and claims may be combined in any way. And unless specified otherwise, reference to the singular may include one or more, and reference to the singular may also include the plural expression.

도 2는 소프트웨어 정의 네트워킹 환경에서의 장애 발생 상황을 설명하기 위한 도면이다. 도 2를 참조하면, 소프트웨어 정의 네트워킹 환경은 컨트롤러(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.2 is a diagram illustrating a failure occurrence situation in a software defined networking environment. 2, a software defined networking environment may include a controller 100, network equipment 200, and host 300. The network device 200 and the host 300 may be referred to as a node, and a link may mean a connection between two nodes.

컨트롤러(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)은 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 애플리케이션(소프트웨어)가 탑재된 형태로 구현될 수 있다. 본 명세서에서 특별한 언급이 없다면 컨트롤러(100)가 실행하는 장애 처리의 각 단계는 애플리케이션에 의해 실행되는 것으로 이해될 수 있다. The controller 100 functions to manage the network equipment 200, and centrally manages and controls the plurality of network equipment 200. In more detail, the controller 100 is an application (software) for functions such as topology management, path management related to packet processing, link discovery, and flow management as a packet flow. It may be implemented in a mounted form. Unless otherwise specified herein, it may be understood that each step of the failure processing executed by the controller 100 is executed by an application.

네트워크 장비(200)는 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 도면에 도시된 스위치(200)는 패킷 처리를 위한 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 라우터 등과 같은 네트워크 장비로도 교환 가능하다. 다만 설명의 편의를 위해 네트워크 장비가 스위치(200)인 경우를 도시하였으며, 본 발명의 일 실시 예에 따른 스위치(200)는 오픈플로우 스위치(200)인 경우를 중심으로 설명한다.The network equipment 200 functions to process packets under the control of the controller 100. The switch 200 illustrated in the drawing may be exchanged with network equipment such as a mobile communication base station, a base station controller, a gateway device, a router, and the like for packet processing. However, for convenience of description, the case in which the network equipment is the switch 200 is illustrated, and the switch 200 according to an embodiment of the present invention will be described based on the case of the open flow switch 200.

소프트웨어 정의 네트워킹 환경에서 컨트롤러(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러(100)과 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In a software defined networking environment, the controller 100 and the open flow switch 200 should exchange information with each other, and an open flow protocol is widely used as a protocol for this. That is, the open flow protocol is a standard standard that can communicate with each other between the controller 100 and the open flow switch 200.

보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)과 정보를 교환한다. 상기 보안 채널은 오픈플로우 스위치(200)와 원거리에 위치한 컨트롤러(100) 간 통신 채널이며, 컨트롤러(100)과 오픈플로우 스위치(200)간 교환되는 정보는 암호화된다.In more detail, the open flow switch 200 is largely divided into a software layer and a hardware layer. The software layer exchanges information with the controller 100 via a secure channel. The secure channel is a communication channel between the open flow switch 200 and the controller 100 located remotely, and information exchanged between the controller 100 and the open flow switch 200 is encrypted.

상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다. 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭한다. 그리고 플로우 엔트리는 크게 세 가지 정보, 즉 플로우를 정의하는 패킷 헤더 정보(Rule), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계 정보(Stats)를 포함할 수 있다.In the hardware layer, there is a flow table that defines and processes the packet and includes statistical information related to the packet. The flow table is composed of a flow rule for defining packet processing, and the flow rule is generated by a flow mode message generated by the controller 100 and transmitted to the open flow switch 200. It can be added, modified or deleted. The open flow switch 200 processes the packet by referring to the flow table. Each row constituting the flow table is called a flow entry. The flow entry may largely include three pieces of information: packet header information (Rule) defining a flow, action information (Action) defining a packet processing, and statistical information (Stats) for each flow.

호스트(300)는 오픈플로우 스위치(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워킹 환경에서 다른 호스트에 보내고자 하는 패킷을 생성하고, 상기 패킷을 네트워크 인터페이스의 포트를 통해 오픈플로우 스위치(200)로 전송할 수 있다. 본 명세서에서는 호스트(300)의 네트워크 인터페이스가 본딩된 경우의 장애 처리 방법을 개시한다. 따라서 본 명세서에 설명된 각 실시 예에서 호스트(300)는 하나 이상의 네트워크 카드를 가지며, 하나 이상의 네트워크 카드는 본딩된 것으로 이해될 수 있다. The host 300 refers to a terminal corresponding to a lower layer of the open flow switch 200, and may be used to mean a client and a server. The host 300 may generate a packet to be sent to another host in a software defined networking environment, and transmit the packet to the openflow switch 200 through a port of the network interface. In the present specification, a failure handling method when the network interface of the host 300 is bonded is disclosed. Thus, in each embodiment described herein, the host 300 may have one or more network cards, and one or more network cards may be understood to be bonded.

도 2에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 환경에서 네트워크 인터페이스가 본딩된 호스트(300)는 기 설정된 논리 주소를 타겟 주소로 하는 ARP 요청 패킷을 주기적으로 오픈플로우 스위치(200)에 보낼 수 있다. 이는 본딩 인터페이스를 유지 여부를 판단하기 위한 것으로, 호스트(300)는 ARP 요청 패킷에 대응되는 패킷을 수신하지 못하면 활성화 인터페이스를 전환한다. As shown in FIG. 2, in a software-defined networking environment, the host 300 in which the network interface is bonded is configured to periodically open an ARP request packet having a predetermined logical address as a target address. 200). This is for determining whether to maintain the bonding interface, and if the host 300 does not receive a packet corresponding to the ARP request packet, the host 300 switches the activation interface.

예를 들어, 호스트(300)는“bond-arp-ip-target 10.0.0.1”와 같은 코드를 사용하여 타겟 IP(10.0.0.1)로 ARP 요청 패킷을 주기적으로 전송할 수 있다. 도 2의 NIC 1과 NIC 2 가 본딩되었으며, NIC 1을 통해서 현재 패킷이 송수신되고 있다고 가정하자. 이 경우, NIC 1을 통해 지속적으로 전송되는 ARP 요청 패킷에 대응되는 응답이 수신되지 않으면, 호스트(300)는 본딩 인터페이스를 NIC 1에서 NIC 2로 변경할 수 있다. 따라서 이 후에 호스트(300)에서 전송되거나 호스트(300)로 입력되는 데이터는 NIC 2를 통해 송수신 된다. For example, the host 300 may periodically transmit the ARP request packet to the target IP (10.0.0.1) using a code such as “bond-arp-ip-target 10.0.0.1”. Assume that NIC 1 and NIC 2 of FIG. 2 are bonded, and a packet is currently transmitted and received through NIC 1. FIG. In this case, if a response corresponding to the ARP request packet continuously transmitted through NIC 1 is not received, the host 300 may change the bonding interface from NIC 1 to NIC 2. Therefore, data transmitted from the host 300 or input to the host 300 is then transmitted and received through the NIC 2.

ARP 요청 패킷은 상대방 호스트 혹은 라우터의 MAC 주소를 알기위해, 해당 노드의 IP 주소를 타겟으로하여 (Target IP address 필드에 타겟 주소를 넣어) 전송하는 것으로, 일반적으로 ARP 패킷은 이더넷 헤더 필드(목적지 물리 주소, 출발지 물리 주소, 타입), ARP 요청 또는 응답 페이로드(payload), 패딩 필드, CRC 필드를 포함할 수 있으며, ARP 요청 또는 응답 페이로드에는 하드웨어 타입(Hardware type), 프로토콜 타입(Protocol type), 물리 주소 길이(Hardware address length), 논리 주소 길이(Protocol address length), 오퍼레이션 코드(Operation code), 출발지 물리 주소(Source hardware address), 출발지 논리 주소(Source protocol address), 타겟(목적지) 물리 주소(Targer hardware address), 타겟(목적지) 논리 주소(Target protocol address)가 포함된다. The ARP request packet is transmitted by targeting the IP address of the node (putting the target address in the Target IP address field) to know the MAC address of the other host or router. Generally, the ARP packet is an Ethernet header field (destination physical). Address, source physical address, type), ARP request or response payload, padding field, and CRC field.ARP request or response payload may include a hardware type and a protocol type. , Hardware address length, protocol address length, operation code, source hardware address, source logical address, source physical address, target physical address (Targer hardware address) and target (destination) target protocol address.

한편, 오픈플로우 스위치(200)는 임의의 패킷을 수신하면, 상기 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우에는 오픈플로우 스위치(200)가 해당 규정대로 패킷을 처리한다. 그러나 오픈플로우 스위치(200)에 상기 패킷에 관한 플로우 테이블이 없는 경우, 오픈플로우 스위치(200)는 컨트롤러(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다. 컨트롤러(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 상기 패킷의 처리를 규정하는 플로우 테이블을 생성하여 오픈플로우 스위치(200)로 전송하고, 오픈플로우 스위치(200)는 상기 플로우 테이블을 수신하고 이에 기반하여 상기 패킷을 처리한다. On the other hand, when the open flow switch 200 receives an arbitrary packet, when there is a flow table that defines the processing of the packet, the open flow switch 200 processes the packet as specified. However, if there is no flow table for the packet in the open flow switch 200, the open flow switch 200 transmits a packet-in message informing the controller 100 of the packet inflow. The controller 100 generates a flow table defining the processing of the packet according to an operator's policy or a predetermined algorithm, and transmits the flow table to the open flow switch 200, and the open flow switch 200 receives the flow table and Based on the packet processing.

패킷-아웃 메시지(Packet-out Message)는 컨트롤러(100)가 오픈플로우 스위치(200)가 지정된 포트에서 패킷을 출력하도록 오픈플로우 스위치(200)에 전송하는 메시지 또는 패킷-인 메시지를 통해 수신된 패킷을 전달(forward)하기 위한 메시지이다. 패킷-아웃 메시지는 전체 패킷 또는 버퍼 ID를 포함하며, 패킷-아웃 메시지(Packet-out Message)를 수신한 오픈플로우 스위치(200)는 패킷-아웃 메시지의 목적지로 패킷-아웃 메시지에 포함된 패킷을 전달한다. A packet-out message is a packet received through a message or a packet-in message sent by the controller 100 to the openflow switch 200 so that the openflow switch 200 outputs a packet at a designated port. Message to forward. The packet-out message includes the entire packet or buffer ID, and the OpenFlow switch 200 receiving the packet-out message sends the packet included in the packet-out message to the destination of the packet-out message. To pass.

이하에서는 도 3 내지 도 4를 이용하여 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 환경에서 호스트(단말)의 네트워크 인터페이스를 본딩한 경우, 패킷-아웃 메시지를 이용하여 장애를 처리하는 방법을 설명한다. Hereinafter, when a network interface of a host (terminal) is bonded in a software defined networking environment according to an embodiment of the present invention using FIGS. 3 to 4, a method of handling a failure by using a packet-out message will be described. .

먼저 도 3을 참조하면, 소프트웨어 정의 네트워킹 환경에서 네트워크 인터페이스가 본딩(Bonding)된 호스트가 기 설정된 제1 논리 주소를 포함하는 제1 ARP 요청 패킷을 임의의 네트워크 장비에 전송하면, 컨트롤러는 네트워크 장비로부터 ARP 요청 패킷에 대한 패킷-인 메시지를 수신한다(S100). ARP 요청 패킷에 대한 패킷-인 메시지를 수신한 컨트롤러(100)는 제1 논리 주소에 대응되는 제1 물리 주소를 포함하는 ARP 패킷을 생성하거나, 제1 ARP 요청 패킷을 이용하여 제2 ARP 요청 패킷을 생성할 수 있다(S200). 다음으로, 컨트롤러(100)는 ARP 패킷 또는 제2 ARP 요청 패킷을 포함하는 패킷-아웃 메시지를 네트워크 장비에 전송한다(S300). First, referring to FIG. 3, in a software-defined networking environment, when a host bonded to a network interface transmits a first ARP request packet including a preset first logical address to an arbitrary network device, the controller receives the network device from the network device. A packet-in message for the ARP request packet is received (S100). Receiving the packet-in message for the ARP request packet, the controller 100 generates an ARP packet including the first physical address corresponding to the first logical address, or uses the first ARP request packet to generate the second ARP request packet. It may be generated (S200). Next, the controller 100 transmits a packet-out message including the ARP packet or the second ARP request packet to the network equipment (S300).

도 4를 참조하여 단계 200에서 생성되는 패킷의 종류를 보다 자세하게 설명하면 다음과 같다. The kind of the packet generated in step 200 will be described in more detail with reference to FIG. 4 as follows.

(1) 컨트롤러(100)가 ARP 응답 패킷을 생성(1) the controller 100 generates an ARP response packet

첫째로, ARP 요청 패킷에 관한 패킷-인 메시지가 컨트롤러(100)로 수신되었을 때, 컨트롤러(100)가 호스트를 목적지로 하는 ARP 응답 패킷을 생성하여 패킷-아웃 메시지로 전송할 수 있다. First, when a packet-in message regarding an ARP request packet is received by the controller 100, the controller 100 may generate an ARP response packet destined for a host and transmit the packet-out message.

예를 들어, [표 1]과 같은 ARP 요청 패킷이 오픈플로우 스위치(200)에 수신되어, 오픈플로우 스위치(200)로부터 패킷 유입을 알리는 패킷-인 메시지가 컨트롤러에 수신되었다고 가정하자. 각 필드에서 ETH_SRC는 이더넷 헤더 필드에 포함되는 출발지 물리 주소, ETH_DST는 이더넷 헤더 필드에 포함되는 목적지 물리 주소, ARP_OP는 오퍼레이션 코드, ARP_SHA는 출발지 물리 주소, ARP_SPA는 출발지 논리 주소, ARP_THA는 목적지 물리 주소, ARP_TPA는 목적지 논리 주소를 의미한다. For example, suppose that an ARP request packet as shown in Table 1 is received at the openflow switch 200, so that a packet-in message indicating a packet inflow from the openflow switch 200 is received at the controller. In each field, ETH_SRC is the source physical address included in the Ethernet header field, ETH_DST is the destination physical address included in the Ethernet header field, ARP_OP is the operation code, ARP_SHA is the source physical address, ARP_SPA is the source logical address, ARP_THA is the destination physical address, ARP_TPA means the destination logical address.

Figure 112017105998857-pat00001
Figure 112017105998857-pat00001

[표 1]의 ARP 요청 패킷은 10.0.0.5의 논리 주소와 11:22:33:44:55:66의 물리 주소를 갖는 호스트(300)에서 전송된 것으로, 목적지 논리 주소는 10.0.0.1이다. 여기서 목적지 논리 주소인 10.0.0.1은 실제 존재하는 호스트일 수도 있으나, 본 발명에 의한 소프트웨어 정의 네트워크 환경에서 본딩 장애 처리를 위해 미리 약속된 임의의 논리 주소일 수 있다. ARP 요청 패킷은 임의의 호스트의 물리 주소를 알기 위한 패킷이므로, 목적지 물리주소는 FF:FF:FF:FF와 같이 브로드캐스트 주소로 설정된다. The ARP request packet of Table 1 is transmitted from a host 300 having a logical address of 10.0.0.5 and a physical address of 11: 22: 33: 44: 55: 66, and the destination logical address is 10.0.0.1. In this case, the destination logical address 10.0.0.1 may be an existing host, but may be any logical address previously promised for bonding failure handling in a software defined network environment according to the present invention. Since the ARP request packet is a packet for knowing the physical address of an arbitrary host, the destination physical address is set to a broadcast address such as FF: FF: FF: FF.

ARP 요청 패킷(A)을 수신한 컨트롤러(100)는 이에 대응하는 ARP 응답 패킷(B)을 [표 2]와 같이 생성할 수 있다. 컨트롤러(100)는 출발지 물리 주소 필드에 미리 설정된 물리 주소를 입력하여 ARP 응답 패킷(B)을 생성할 수 있다. ARP_OP는 2로 응답 패킷을 의미하며, 각 필드는 설정된 주소 값으로 채워진다. ARP 응답 패킷(B)은 10.0.0.1의 논리 주소를 갖는 호스트의 물리주소는 6c:3b:e5:5a:6c:1c 라는 것을 알려주며, 이를 기 설정된 시간 내에 수신한 호스트(300)는 본딩 인터페이스를 유지한다.The controller 100 receiving the ARP request packet A may generate an ARP response packet B corresponding thereto as shown in [Table 2]. The controller 100 may generate an ARP response packet B by inputting a preset physical address in the source physical address field. ARP_OP means a response packet as 2, and each field is filled with the set address value. The ARP response packet (B) indicates that the physical address of the host having a logical address of 10.0.0.1 is 6c: 3b: e5: 5a: 6c: 1c. Keep it.

Figure 112017105998857-pat00002
Figure 112017105998857-pat00002

(2) 컨트롤러(100)가 GARP 패킷을 생성(2) the controller 100 generates a GARP packet

패킷-아웃 메시지(B)로, 컨트롤러가 GARP 패킷을 생성하여 전송할 수 있다. 상술한 바와 같은 ARP 요청 패킷이 수신된 경우, 컨트롤러(100)가 [표 3]과 같이 GARP 패킷을 생성할 수 있다. In the packet-out message (B), the controller may generate and send a GARP packet. When the ARP request packet as described above is received, the controller 100 may generate a GARP packet as shown in [Table 3].

Figure 112017105998857-pat00003
Figure 112017105998857-pat00003

GARP 패킷은 Gratuitous ARP라고도 불리며, 자신의 IP 주소를 타겟으로 하여 ARP 요청를 보내는 것이다. 레거시 네트워크에서 GARP 패킷은 IP 주소 충돌을 감지하기 위해 사용되거나, ARP 테이블을 갱신하는데 이용되나, 본 발명은 호스트(300)가 본딩된 경우의 장애를 감지하는데 GARP 패킷을 이용하여 장애가 간단한 설정으로 처리될 수 있도록 한다. GARP packets, also called Gratuitous ARP, send an ARP request targeting their IP address. In legacy networks, GARP packets are used to detect IP address collisions, or are used to update the ARP table. However, the present invention uses GARP packets to detect failures when the host 300 is bonded. To be possible.

컨트롤러(100)는 ARP 요청에 대응하여 GARP 패킷의 형태를 갖는 패킷을 생성하여 전송할 수 있는데, 이 때, 목적지 논리 주소는 요청 받은 논리 주소인 10.0.0.1이 되고, 목적지 물리 주소는 브로드캐스트 주소로 설정된다. 그 결과 컨트롤러(100)는 GARP 패킷은 네트워크에 브로드캐스팅되며, 컨트롤러(100)의 관리 대상에 포함되는 호스트(300)에도 GARP 패킷이 도달한다. 본 발명의 일 실시 예에 따르면 호스트(300)는 GARP 패킷이 수신되면 목적지 논리 주소(출발지 논리 주소)를 확인하도록 설정될 수 있으며, 목적지 논리 주소에 기 설정된 논리 주소가 포함되어 있으면 이를 ARP 요청 패킷에 대한 응답으로 보아 본딩 인터페이스를 유지할 수 있다.  The controller 100 may generate and transmit a packet having a form of a GARP packet in response to an ARP request. At this time, the destination logical address becomes 10.0.0.1, the requested logical address, and the destination physical address is a broadcast address. Is set. As a result, the controller 100 broadcasts the GARP packet to the network, and the GARP packet arrives at the host 300 included in the management object of the controller 100. According to an embodiment of the present disclosure, when the GARP packet is received, the host 300 may be configured to check a destination logical address (origin logical address), and if the destination logical address includes a preset logical address, the host ARP request packet may be set. In response, we can maintain the bonding interface.

(3) 컨트롤러(100)가 ARP 요청 패킷을 생성(3) the controller 100 generates an ARP request packet

또 다른 실시 예로 패킷-아웃 메시지(B)로 컨트롤러가 ARP 요청 패킷을 생성할 수 있다. 상술한 실시 예에서 오픈플로우 스위치(200)가 수신하는 ARP 요청 패킷을 제1 ARP 요청 패킷이라고 하자. 컨트롤러(100)는 제1 ARP 요청 패킷에 기반하여 [표 4]과 같이 제2 ARP 요청 패킷을 생성할 수 있다. In another embodiment, the controller may generate an ARP request packet with a packet-out message (B). In the above-described embodiment, it is assumed that the ARP request packet received by the open flow switch 200 is a first ARP request packet. The controller 100 may generate a second ARP request packet based on the first ARP request packet as shown in [Table 4].

Figure 112017105998857-pat00004
Figure 112017105998857-pat00004

제2 ARP 요청 패킷은 오픈플로우 스위치(200)에서 수신한 제1 ARP 요청 패킷에서, 이더넷 헤더 필드에 포함된 출발지 물리 주소만을 변경한 것으로, 컨트롤러(100)는 제1 ARP 요청 패킷의 이더넷 헤더 필드에 포함된 출발지 물리 주소(ETH_SRC)를 상기 호스트의 물리 주소와 다르게 설정하여 상기 제2 ARP 요청 패킷을 생성할 수 있다.The second ARP request packet changes only the source physical address included in the Ethernet header field in the first ARP request packet received by the openflow switch 200, and the controller 100 changes the Ethernet header field of the first ARP request packet. The second ARP request packet may be generated by setting a source physical address ETH_SRC different from the physical address of the host.

[표 4]에는 ETH_SRC가 00:00:00:00:00:01인 것으로 기재되어 있는데, 이는 일 실시 예에 불과하며, 출발지 물리 주소는 호스트(300)의 물리 주소와 다르다면 어떤 것이든 무관하다. In Table 4, ETH_SRC is described as 00: 00: 00: 00: 00: 01, which is only an example, and the source physical address is irrelevant if it is different from the physical address of the host 300. Do.

제2 ARP 요청 패킷은 호스트(300)에 전송된다. 제2 ARP 요청 패킷을 수신한 호스트(300)는 도착지 논리 주소가 10.0.0.1인 것을 확인하면, 자신이 송신한 제1 ARP 요청 패킷에 대한 응답으로 인식하고 활성화된 본딩 인터페이스를 그대로 유지할 수 있다. The second ARP request packet is transmitted to the host 300. When the host 300 receiving the second ARP request packet confirms that the destination logical address is 10.0.0.1, the host 300 may recognize the response as the response to the first ARP request packet transmitted by the host 300 and maintain the activated bonding interface.

상술한 패킷-아웃 메시지를 이용하는 세 개의 실시 예에서, 호스트(300)는 기 설정된 시간 내에 ARP 패킷(ARP 응답 패킷, GARP 패킷) 또는 제2 ARP 요청 패킷이 수신되지 않으면, 활성화된 본딩 인터페이스를 전환하도록 설정될 수 있다. In three embodiments using the above-described packet-out message, the host 300 switches the activated bonding interface if an ARP packet (ARP response packet, GARP packet) or a second ARP request packet is not received within a preset time. It can be set to.

전술한 장애 처리 방법은 각 실시 예 중 어느 하나를 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 장애 처리 응용 프로그램을 통해 컨트롤러(100)에서 구현될 수 있다. The above-described fault handling method may be implemented in the controller 100 through a fault handling application program stored in a computer readable medium in order to execute any one of the embodiments.

본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.Some embodiments omitted in the present specification may be equally applicable to the same subject matter. In addition, the above-described present invention can be variously substituted, modified, and changed within the scope without departing from the spirit of the present invention for those skilled in the art to which the present invention pertains to the above-described embodiments and attached It is not limited by the drawings.

100: 컨트롤러
200: 스위치
300: 호스트(단말)
100: controller
200: switch
300: host (terminal)

Claims (6)

소프트웨어 정의 네트워킹 환경에서 네트워크 인터페이스가 본딩(Bonding)된 호스트를 관리하는 컨트롤러의 장애 처리 방법에 있어서,
상기 호스트가 기 설정된 제1 논리 주소를 목적지 논리 주소로 하는 제1 ARP 요청 패킷을 임의의 네트워크 장비에 전송하면, 상기 컨트롤러는 상기 네트워크 장비로부터 상기 제1 ARP 요청 패킷에 대한 패킷-인 메시지를 수신하는 단계;
상기 컨트롤러는 상기 제1 ARP 요청 패킷을 수신하면 상기 제1 논리 주소에 대응되는 제1 물리 주소를 포함하는 ARP 패킷을 생성하거나, 상기 제1 ARP 요청 패킷에서 이더넷 헤더 필드에 포함된 출발지 물리 주소만 상기 호스트의 물리 주소와 다르게 설정하여 제2 ARP 요청 패킷을 생성하는 단계;
상기 컨트롤러는 상기 ARP 패킷 또는 상기 제2 ARP 요청 패킷을 포함하는 패킷-아웃 메시지를 상기 네트워크 장비에 전송하는 단계;
상기 호스트는 상기 ARP 패킷 또는 상기 제2 ARP 요청 패킷을 수신하여 상기 ARP 패킷 또는 상기 제2 ARP 요청 패킷의 목적지 논리 주소에 상기 제1 논리 주소가 포함되어 있으면 이를 상기 제1 ARP 요청 패킷에 대한 응답으로 보아 본딩 인터페이스를 유지하는 단계를 포함하는 장애 처리 방법.
In a failure handling method of a controller managing a host in which a network interface is bonded in a software defined networking environment,
When the host transmits a first ARP request packet having a preset first logical address as a destination logical address to any network equipment, the controller receives a packet-in message for the first ARP request packet from the network equipment. Doing;
When the controller receives the first ARP request packet, the controller generates an ARP packet including a first physical address corresponding to the first logical address, or only the source physical address included in the Ethernet header field in the first ARP request packet. Generating a second ARP request packet by setting a different address from the physical address of the host;
The controller sending a packet-out message including the ARP packet or the second ARP request packet to the network equipment;
The host receives the ARP packet or the second ARP request packet and responds to the first ARP request packet if the destination logical address of the ARP packet or the second ARP request packet includes the first logical address. And maintaining the bonding interface.
제1항에 있어서, 상기 ARP 패킷의 이더넷 헤더 필드에 포함된 목적지 물리 주소는 브로드캐스트 주소이며, 상기 ARP 패킷의 목적지 논리 주소는 상기 제1 논리 주소로 설정된 GARP 패킷인 장애 처리 방법.
The method of claim 1, wherein the destination physical address included in the Ethernet header field of the ARP packet is a broadcast address, and the destination logical address of the ARP packet is a GARP packet set to the first logical address.
제1항에 있어서,
상기 호스트는 기 설정된 시간 내에 상기 ARP 패킷 또는 상기 제2 ARP 요청 패킷이 수신되지 않으면 활성화된 본딩 인터페이스를 전환하도록 설정된 장애 처리 방법.
The method of claim 1,
And the host is configured to switch an activated bonding interface if the ARP packet or the second ARP request packet is not received within a preset time.
제1항 내지 제3항의 방법 중 어느 하나의 방법을 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 컨트롤러 응용 프로그램.
A controller application program stored on a computer readable medium for executing any one of the methods of claims 1 to 3.
삭제delete 삭제delete
KR1020170140172A 2017-10-26 2017-10-26 Method and computer program for handling trouble using packet-out message in software defined networking environment KR101969304B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170140172A KR101969304B1 (en) 2017-10-26 2017-10-26 Method and computer program for handling trouble using packet-out message in software defined networking environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170140172A KR101969304B1 (en) 2017-10-26 2017-10-26 Method and computer program for handling trouble using packet-out message in software defined networking environment

Publications (1)

Publication Number Publication Date
KR101969304B1 true KR101969304B1 (en) 2019-08-20

Family

ID=67807358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170140172A KR101969304B1 (en) 2017-10-26 2017-10-26 Method and computer program for handling trouble using packet-out message in software defined networking environment

Country Status (1)

Country Link
KR (1) KR101969304B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102122959B1 (en) * 2019-09-30 2020-06-15 한화시스템 주식회사 Redundancy method for communicating with equipment using one-to-one TCP communication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150030099A (en) * 2013-09-11 2015-03-19 한국전자통신연구원 System and method for address resolution
KR101710385B1 (en) * 2015-10-12 2017-02-27 아토리서치(주) Method, apparatus and computer program for managing arp packet

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150030099A (en) * 2013-09-11 2015-03-19 한국전자통신연구원 System and method for address resolution
KR101710385B1 (en) * 2015-10-12 2017-02-27 아토리서치(주) Method, apparatus and computer program for managing arp packet

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102122959B1 (en) * 2019-09-30 2020-06-15 한화시스템 주식회사 Redundancy method for communicating with equipment using one-to-one TCP communication

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US10728094B2 (en) Control traffic in software defined networks
US10044830B2 (en) Information system, control apparatus, method of providing virtual network, and program
KR101530594B1 (en) Communication system, information processing device, communication node, communication method, and computer-readable storage medium storing program
CN105337853A (en) Instance establishing method and apparatus in software defined network (SDN)
KR101658824B1 (en) Method, apparatus and computer program for updating flow rules of software defined network
CN108989218B (en) Data forwarding device and method based on network convergence architecture
US9560174B2 (en) Network routing overlay
KR101969304B1 (en) Method and computer program for handling trouble using packet-out message in software defined networking environment
JP6191191B2 (en) Switch device and control method of switch device
US10171346B2 (en) Method, apparatus and system for transmitting information
KR101610031B1 (en) Method for controlling openflow switch embedded controller in software defined network and apparatus thereof
CN104320322A (en) Message control method and equipment
KR20160072718A (en) System and method for neighbor discovery based on ethernet in the software defined networks
WO2017164068A1 (en) Transport network control device, communication system, transfer node control method, and program
EP3038308B1 (en) Information processing system and control method for information processing system
KR101802037B1 (en) Method and system of transmitting oam message for service function chaining in software defined network environment
KR101625399B1 (en) Method and apparatus for controlling tcp connection in software defined network
KR20190001402A (en) SDN controller and method for generating of failover group using the same and method for failover in SDN
KR101931543B1 (en) Method and computer program for handling trouble using flow-mod message in software defined networking environment
KR101931139B1 (en) Method, apparatus, and computer program for verifying host status information in a software defined network
KR20190024267A (en) Method, system and computer program for applying user setting flow rule in software defined networking environment
JP2017158103A (en) Communication management device, communication system, communication management method and program