KR101586151B1 - 컨트롤러와 네트워크 장치 간 재연결 방법 - Google Patents

컨트롤러와 네트워크 장치 간 재연결 방법 Download PDF

Info

Publication number
KR101586151B1
KR101586151B1 KR1020140111763A KR20140111763A KR101586151B1 KR 101586151 B1 KR101586151 B1 KR 101586151B1 KR 1020140111763 A KR1020140111763 A KR 1020140111763A KR 20140111763 A KR20140111763 A KR 20140111763A KR 101586151 B1 KR101586151 B1 KR 101586151B1
Authority
KR
South Korea
Prior art keywords
controller
connection
network device
switch
main connection
Prior art date
Application number
KR1020140111763A
Other languages
English (en)
Other versions
KR20150026894A (ko
Inventor
안태진
최현기
한경아
이세희
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of KR20150026894A publication Critical patent/KR20150026894A/ko
Application granted granted Critical
Publication of KR101586151B1 publication Critical patent/KR101586151B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity

Abstract

보조 연결을 이용하여 컨트롤러와 네트워크 장치 간에 재연결하는 방법이 개시된다. 컨트롤러와 네트워크 장치 간 재연결 방법은, 소프트웨어 정의 네트워크에서 컨트롤러가 네트워크 장치와 재연결하는 방법에 있어서, 컨트롤러가 네트워크 장치와의 메인 연결에 대한 상태를 확인하는 단계와, 메인 연결이 비정상으로 확인됨에 따라, 컨트롤러가 네트워크 장치와의 보조 연결에 대한 상태를 확인하는 단계와, 보조 연결이 정상으로 확인됨에 따라, 컨트롤러가 상기 보조 연결을 통하여 네트워크 장치로 재연결 요청 메시지를 전송하여 메인 연결을 재연결하는 단계를 포함한다. 따라서, 컨트롤러와 스위치 간의 메인 연결에 대한 재연결을 신속하게 설정함으로써, 컨트롤러가 스위치를 제어하는데 신뢰성을 높여 줄 수 있다.

Description

컨트롤러와 네트워크 장치 간 재연결 방법{METHOD FOR RECONNECTION BETWEEN CONTROLLERS AND NETWORK APPARATUS}
본 발명은 소프트웨어 정의 네트워킹(SDN: Software Defined Networking)에 관한 것으로, 더욱 상세하게는 보조 연결을 이용하여 컨트롤러와 네트워크 장치 간에 재연결하는 방법에 관한 것이다.
최근 들어, 스위치의 트래픽 포워딩 기능과 스위치의 제어 기능을 분리하여 통신 시스템을 효율적으로 운용하는 기술에 대한 표준화가 ONF(Open Networking Foundation), IETF(Internet Engineering Task Force), ETSI(European Telecommunications Standards Institute) ISG NFV(Network Function Virtualization) 및 ITU-T(International Telecommunications Union Telecommunication) 등을 중심으로 진행되고 있다.
SDN(Software Defined Network)은 라우터나 스위치 등의 기본 네트워크 장치에 관계없이 사용자가 통제 권한을 가지며, 별도의 소프트웨어 컨트롤러가 트래픽 흐름을 제어하는 사용자 중심의 네트워크를 의미한다.
SDN의 기술 중의 하나인 OpenFlow 기술에 대한 표준화를 추진하고 있는 표준화 단체들 중 ONF는 하드웨어(예: 스위치)와 컨트롤러(예: Network OS) 사이를 연결하는 인터페이스를 정의하고 있다. 이는 네트워크를 통해 데이터 패킷을 어떻게 전달할 것인지 제어하기 위한 기능(Control Plane)을 물리적 네트워크와 분리하여 데이터 전달 기능(Data Plane)과 상호 작용하기 위한 프로토콜을 정의한다.
ONF 내의 Extensibility 워킹그룹에서 SDN 핵심 표준 권고안인 OpenFlow 표준안(OF 1.x)에 대한 작성을 주도하고 있다. OpenFlow 표준안의 OpenFlow Channel 항목은 스위치와 컨트롤러 간의 연결 방식 및 메시지 프로토콜에 대해서 정의하고 있으며, 기본적으로 TCP 연결을 유지하거나, 상호 인증 및 암호화를 위해 TLS 방식을 이용할 수 있다.
OpenFlow 표준안에 따른 OpenFlow Channel은 메인 연결과 다수의 보조 연결로 구성되어 있다. 보조 연결은 스위치가 만들고 스위치의 처리성능에 도움을 준다. 보조 연결은 메인 연결과 같은 소스 IP 주소를 사용하지만, 다른 전송 프로토콜을 사용할 수 있으며, 사용하는 프로토콜로는 TLS, TCP, DTLS, UDP 등이 있다.
현재 표준안에 따르면 보조 연결은 데이터만 전달하고 있다. 또한, 현재 OpenFlow 표준안에는 컨트롤러와 스위치 간 연결 상태(liveness)를 확인하기 위한 목적으로 OFP_ECHO_REQUEST와 OFP_ECHO_REPLY 사용을 권고하고 있다. 컨트롤러는 스위치에서 OFP_ECHO_REPLY 이 오지 않을 경우, 스위치가 연결이 끊어진것으로 보고, 토폴로지 정보에서 제외시킨다. 또한 스위치는 컨트롤러로부터 OFP_ECHO_REPLY가 오지 않을 경우, 다른 컨트롤러로 마스터 변경절차를 시작하고, 새로 지정된 마스터 컨트롤러와 새로운 연결을 하여 각종 정보를 받는다.
그러나, 컨트롤러와 스위치 간에 메인 연결에 문제가 생길 경우, 보조 연결을 통한 재연결 절차나 메시지 등에 대한 규격은 정의되어 있지 않은 상황이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 보조 연결을 이용하여 메인 연결을 재연결하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 보조 연결을 메인 연결로 변경하는 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간 재연결 방법은, 소프트웨어 정의 네트워크에서 컨트롤러가 네트워크 장치와 재연결하는 방법에 있어서, 컨트롤러가 네트워크 장치와의 메인 연결에 대한 상태를 확인하는 단계와, 메인 연결이 비정상으로 확인됨에 따라, 컨트롤러가 네트워크 장치와의 보조 연결에 대한 상태를 확인하는 단계와, 보조 연결이 정상으로 확인됨에 따라, 컨트롤러가 상기 보조 연결을 통하여 네트워크 장치로 재연결 요청 메시지를 전송하여 메인 연결을 재연결하는 단계를 포함한다.
여기에서, 상기 컨트롤러와 네트워크 장치 간 재연결 방법은, 상기 재연결 요청 메시지를 전송하기에 앞서서, 컨트롤러가 정상으로 확인된 메인 연결을 끊는 단계를 더 포함할 수 있다.
여기에서, 상기 컨트롤러와 네트워크 장치 간 재연결 방법은, 컨트롤러가 재연결된 메인 연결에 대한 정보에 기반하여 네트워크 장치로 플로우 테이블 동기화 요청을 하는 단계를 더 포함할 수 있다.
여기에서, 상기 재연결 요청 메시지는, 네트워크 장치가 접속할 컨트롤러의 IP 주소(Internet Protocol Address) 및 포트 정보를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 컨트롤러와 네트워크 장치 간 재연결 방법은, 소프트웨어 정의 네트워크에서 컨트롤러와 네트워크 장치가 재연결하는 방법에 있어서, 컨트롤러가 네트워크 장치와의 메인 연결에 대한 상태를 확인하는 단계와, 메인 연결이 비정상으로 확인됨에 따라, 컨트롤러가 네트워크 장치와의 보조 연결에 대한 상태를 확인하는 단계와, 보조 연결이 정상으로 확인됨에 따라, 컨트롤러가 보조 연결을 메인 연결로 변경하기 위해 네트워크 장치로 연결 변경 메시지를 전송하는 단계를 포함한다.
여기에서, 상기 컨트롤러와 네트워크 장치 간 재연결 방법은, 연결 변경 메시지를 수신한 네트워크 장치가 보조 연결을 메인 연결로 변경하는 단계를 더 포함할 수 있다.
여기에서, 상기 컨트롤러와 네트워크 장치 간 재연결 방법은, 컨트롤러가 변경된 메인 연결에 대한 정보에 기반하여 네트워크 장치로 플로우 테이블 동기화 요청을 하는 단계와, 네트워크 장치가 플로우 테이블 동기화 요청에 따라 네트워크 장치의 플로우 테이블을 동기화하는 단계를 더 포함할 수 있다.
여기에서, 상기 연결 변경 메시지는, 연결 변경을 요청하는 주체 및 방향에 대한 정보를 포함할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 컨트롤러와 네트워크 장치 간 재연결 방법은, 소프트웨어 정의 네트워크에서 컨트롤러와 네트워크 장치가 재연결하는 방법에 있어서, 네트워크 장치가 컨트롤러와의 메인 연결에 대한 상태를 확인하는 단계와, 메인 연결이 비정상으로 확인됨에 따라, 네트워크 장치가 컨트롤러와의 보조 연결에 대한 상태를 확인하는 단계와, 보조 연결이 정상으로 확인됨에 따라, 네트워크 장치가 보조 연결을 메인 연결로 변경하기 위해 컨트롤러로 연결 변경 메시지를 전송하는 단계를 포함한다.
상기와 같은 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간 재연결 방법은 컨트롤러와 스위치 간의 메인 연결에 장애가 있을 경우, 보조 연결을 이용하여 메인 연결을 재연결하거나 보조 연결을 메인 연결로 대체함으로써 메인 연결의 연속성을 유지시킬 수 있다.
또한, 컨트롤러와 스위치 간의 메인 연결에 장애가 있을 경우, 복잡한 절차로 컨트롤러와 스위치 간에 연결을 재시도하지 않고, 보조 연결을 이용하여 컨트롤러와 스위치 간의 메인 연결에 대한 재연결을 신속하게 설정함으로써, 컨트롤러가 스위치를 제어하는데 신뢰성을 높여 줄 수 있다.
도 1은 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간 재연결을 수행하는 컨트롤러와 스위치의 예시적 구성을 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간의 메인 연결 및 보조 연결을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따라 보조 연결을 이용하여 메인 연결을 재연결하는 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 실시예에 따른 재연결 요청 메시지의 데이터 구조를 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따라 네트워크 장치가 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 순서도이다.
도 6은 본 발명의 실시예에 따라 컨트롤러가 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 순서도이다.
도 7은 본 발명의 실시예에 따른 연결 변경 메시지의 데이터 구조를 설명하기 위한 예시도이다.
도 8은 본 발명의 실시예에 따른 플로우 테이블 동기화 요청 메시지의 데이터 구조를 설명하기 위한 예시도이다.
도 9는 본 발명의 실시예에 따라 재연결 요청 메시지를 수신한 네트워크 장치에서 수행되는 절차를 설명하기 위한 예시도이다.
도 10은 본 발명의 실시예에 따라 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하, 본 발명에서 언급되는 컨트롤러는 통합 SDN 컨트롤러(Unified SDN controller)로, 트래픽의 흐름을 제어하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미할 수 있다.
또한, 컨트롤러는 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. 예를 들어, 컨트롤러는 ONF(OpenFlow), IETF(Internet Engineering Task Force), ETSI(European Telecommunication Standards Institute) 및/또는 ITU-T(International Telecommunication Union Telecommunication) 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미할 수 있다.
본 발명에서 언급되는 네트워크 장치는 '스위치(switch)' 또는 '라우터(router)'와 같이 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미할 수 있다. 따라서, 본 발명에서 네트워크 장치는 스위치 또는 라우터로 명명될 수 있다.
예를 들어, 네트워크 장치는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소(Switching Element), 라우터 요소(Routing Element), 포워딩 요소(Forwarding Element) 등을 의미할 수 있다.
본 발명의 실시예들에서는 컨트롤러와 네트워크 장치 간 재연결을 위한 동작 과정에서 ONF에서 정의된 파라미터 및/또는 메시지 형태(예를 들면, Echo Request/Reply)를 이용하는 것으로 예를 들어 도시하였으나, 본 발명의 기술적 사상이 ONF에 정의된 내용으로만 한정되는 것은 아니며 컨트롤러와 네트워크 장치 간 재연결을 위한 동작 과정에서 컨트롤러와 네트워크 장치를 구분할 수 있는 다양한 파라미터를 이용할 수 있다. 또한, 플로우 테이블을 동기화하기 위해 사용되는 메시지들은 후술하는 특정 메시지에 한정되는 것은 아니다.
또한, 본 발명에서 언급되는 '메인 연결(main connection)'은 컨트롤러와 스위치 간에 제어 메시지를 교환하는 연결을 말하며, '보조 연결(auxiliary connection)'은 메인 연결 외에 컨트롤러와 스위치 간에 다양한 프로토콜을 사용하여 각종 메시지를 교환하는데 사용될 수 있다.
도 1은 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간 재연결을 수행하는 컨트롤러와 스위치의 예시적 구성을 나타내는 블록도이다.
도 1을 참조하면, 컨트롤러(100)는 연결 관리부(110), 스위치 연동 처리부(120), 스위치 제어부(130), 메시지 처리부(140), 재연결 이벤트 처리부(150) 및 플로우 테이블 처리부(160)를 포함한다.
연결 관리부(110)는 컨트롤러(100)와 스위치(200) 간에 메인 연결과 보조 연결의 상태를 모니터링할 수 있다.
스위치 연동 처리부(120)는 컨트롤러(100)가 스위치(200)와 통신할 수 있도록 프로토콜을 처리할 수 있다.
스위치 제어부(130)는 스위치 연동 처리부(120)를 통하여 컨트롤러(100)와 통신하는 스위치(200)를 제어할 수 있다.
메시지 처리부(140)는 메시지(예를 들어, 재연결 요청 메시지, 연결 변경 메시지 및 플로우 테이블 동기화 요청 메시지 등)를 스위치(200)와 교환할 수 있도록 한다.
재연결 이벤트 처리부(150)는 스위치(200)로부터 연결 변경 메시지 등을 수신하여 처리할 수 있다.
플로우 테이블 처리부(160)는 스위치(200)에 대한 플로우 테이블을 동기화를 위한 정보를 관리하고 처리할 수 있다.
스위치(200)는 연결 관리부(210), 컨트롤러 연동 처리부(220), 스위치 제어부(230), 메시지 처리부(240), 재연결 이벤트 처리부(250) 및 플로우 테이블 처리부(260)를 포함한다.
연결 관리부(210)는 컨트롤러(100)와 스위치(200) 간에 메인 연결과 보조 연결의 상태를 모니터링할 수 있다.
컨트롤러 연동 처리부(210)는 스위치(200)가 컨트롤러(100)와 통신할 수 있도록 프로토콜을 처리할 수 있다.
스위치 제어부(230)는 컨트롤러(100)로부터 제어 명령을 수신하여 실행하거나 자체적으로 스위치(200)를 제어할 수 있다.
메시지 처리부(240)는 메시지(예를 들어, 재연결 요청 메시지, 연결 변경 메시지 및 플로우 테이블 동기화 요청 메시지 등)를 컨트롤러(100)와 교환할 수 있도록 한다.
재연결 이벤트 처리부(250)는 컨트롤러(100)로부터 재연결 요청 메시지, 연결 변경 메시지 및 플로우 테이블 동기화 요청 메시지 등을 수신하여 처리할 수 있다.
플로우 테이블 처리부(260)는 스위치(100)에 대한 플로우 테이블을 동기화를 위한 정보를 관리하고 처리할 수 있다.
도 2는 본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간의 메인 연결 및 보조 연결을 설명하기 위한 순서도이다.
도 2를 참조하여 컨트롤러와 스위치 사이의 메인 연결과 보조 연결을 설명한다.
컨트롤러와 스위치 간에는 메인 연결과 보조 연결이 설정될 수 있다. 메인 연결은 컨트롤러와 스위치 간에 제어 메시지를 교환할 수 있는 주연결을 말하며, 보조 연결은 메인 연결을 보조하는 연결로 메인 연결과 병렬적으로 연결될 수 있다. 또한, 컨트롤러와 스위치 간에는 다수의 보조 연결이 병렬적으로 설정될 수 있다.
먼저, 컨트롤러와 스위치 간의 메인 연결을 설명한다.
컨트롤러와 스위치는 메인 연결을 위한 TCP 연결 설정을 시도한다(S210). 즉, 컨트롤러와 스위치는 TCP 3 way handshaking 과정을 거쳐서 TCP 연결을 설정함으로써 메인 연결을 설정할 수 있다. 여기서, 연결 설정은 TCP/IP 외에 컨트롤러와 스위치 간 상호 통신이 가능한 전송 계층 프로토콜이 사용할 수 있다.
컨트롤러와 스위치는 서로 간의 통신을 위한 프로토콜 버전 정보를 상호 확인할 수 있고(S212), 서로의 장비 상태 및 특성 정보를 요청 및 응답하여 교환할 수 있다(S214). 또한, 컨트롤러는 스위치로 제어에 필요한 설정값을 요청하고, 스위치는 이러한 요청에 따른 설정을 한 후, 설정 결과를 컨트롤러로 응답할 수 있다.
컨트롤러와 스위치는 메인 연결에 대한 상태를 확인하기 위한 요청 및 응답을 수행할 수 있다(S216). 예를 들어, 컨트롤러는 메인 연결 상태 확인을 위한 요청을 스위치에 할 수 있고, 스위치는 이에 대한 응답을 할 수 있다. 또한, 스위치가 메인 연결 상태 확인을 위한 요청을 컨트롤러에 할 수 있고, 컨트롤러는 이에 대한 응답을 할 수도 있다. 여기서, 메인 연결에 대한 상태를 확인하기 위한 요청 및 응답은 주기적으로 반복되어 수행될 수 있다.
다음으로, 컨트롤러와 스위치 간의 보조 연결을 설명한다.
컨트롤러와 스위치는 보조 연결을 위한 TCP 연결 설정을 시도한다(S220). 즉, 컨트롤러와 스위치는 TCP 3 way handshaking 과정을 거쳐서 TCP 연결을 설정함으로써 보조 연결을 설정할 수 있다. 여기서, 연결 설정은 TCP/IP 외에 컨트롤러와 스위치 간 상호 통신이 가능한 전송 계층 프로토콜이 사용할 수 있다.
컨트롤러와 스위치는 서로 간의 통신을 위한 프로토콜 버전 정보를 상호 확인할 수 있고(S222), 서로의 장비 상태 및 특성 정보를 요청 및 응답하여 교환할 수 있다(S224).
컨트롤러와 스위치는 보조 연결에 대한 상태를 확인하기 위한 요청 및 응답을 수행할 수 있다(S226). 예를 들어, 컨트롤러는 보조 연결 상태 확인을 위한 요청을 스위치에 할 수 있고, 스위치는 이에 대한 응답을 할 수 있다. 또한, 스위치가 보조 연결 상태 확인을 위한 요청을 컨트롤러에 할 수 있고, 컨트롤러는 이에 대한 응답을 할 수도 있다. 여기서, 보조 연결에 대한 상태를 확인하기 위한 요청 및 응답은 주기적으로 반복되어 수행될 수 있다.
도 3은 본 발명의 실시예에 따라 보조 연결을 이용하여 메인 연결을 재연결하는 방법을 설명하기 위한 순서도이고, 도 4는 본 발명의 실시예에 따른 재연결 요청 메시지의 데이터 구조를 설명하기 위한 예시도이다.
도 3을 참조하면, 컨트롤러는 스위치와의 메인 연결의 상태를 확인할 수 있고, 보조 연결을 이용하여 메인 연결을 재연결할 수 있다.
컨트롤러는 스위치와의 메인 연결에 대한 상태를 확인할 수 있다. 컨트롤러는 메인 연결이 비정상으로 확인되면(S310), 스위치와의 보조 연결이 정상인지 확인할 수 있다(S320). 여기서, 메인 연결에 대한 상태 확인은 에코 응답(EHCO RESPONSE)를 통하여 수행될 수 있다.
컨트롤러는 보조 연결이 정상인 것으로 확인되면, 비정상으로 확인된 메인 연결을 끊을 수 있고(S330), 보조 연결을 통해 재연결 요청 메시지를 스위치로 전송할 수 있다(S340).
재연결 요청 메시지를 수신한 스위치는 메인 연결에 대한 재연결을 요청할 수 있다(S350). 즉, 스위치는 컨트롤러와의 메인 연결을 다시 설정하기 위하여 도 2에서 설명한 절차를 다시 수행할 수 있다.
예를 들어, 컨트롤러와 스위치는 메인 연결을 위한 TCP 연결 설정을 시도한다(S360). 즉, 컨트롤러와 스위치는 TCP 3 way handshaking 과정을 거쳐서 TCP 연결을 설정함으로써 메인 연결을 재설정할 수 있다.
컨트롤러와 스위치는 서로 간의 통신을 위한 프로토콜 버전 정보를 상호 확인할 수 있고(S362), 서로의 장비 상태 및 특성 정보를 요청 및 응답하여 교환할 수 있다(S364).
컨트롤러와 스위치는 메인 연결에 대한 상태를 확인하기 위한 요청 및 응답을 수행할 수 있다(S366). 여기서, 메인 연결에 대한 상태를 확인하기 위한 요청 및 응답은 주기적으로 반복되어 수행될 수 있다.
또한, 컨트롤러는 스위치와 재연결이 되면, 재연결된 메인 연결에 대한 정보에 기반하여 플로우 테이블 동기화 요청을 스위치에 할 수 있다(S368).
도 4를 참조하면, 도 3에 따른 절차를 수행하기 위해 필요한 재연결 요청 메시지는 스위치가 접속할 컨트롤러의 IP 주소 및 포트 정보를 포함할 수 있다.
상세하게는, msg_type는 메시지의 타입을 나타내는 것으로 1 byte로 표현될 수 있다. ipadress는 스위치가 접속할 컨트롤러의 IP 주소를 나타내는 것으로 20 byte로 표현될 수 있다. 또한, port_no는 스위치가 접속할 컨트롤러의 포트를 나타내는 것으로 2 byte로 표현될 수 있다.
도 5는 본 발명의 실시예에 따라 네트워크 장치가 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 순서도이고, 도 6은 본 발명의 실시예에 따라 컨트롤러가 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 순서도이다.
또한, 도 7은 본 발명의 실시예에 따른 연결 변경 메시지의 데이터 구조를 설명하기 위한 예시도이며, 도 8은 본 발명의 실시예에 따른 플로우 테이블 동기화 요청 메시지의 데이터 구조를 설명하기 위한 예시도이다.
먼저, 도 5를 참조하여 스위치가 주체가 되어 보조 연결을 메인 연결로 변경하는 절차를 설명한다.
스위치는 컨트롤러와의 메인 연결에 대한 상태를 확인할 수 있다. 스위치는 메인 연결이 비정상으로 확인되면(S510), 컨트롤러와의 보조 연결이 정상인지 확인할 수 있다(S520). 여기서, 연결에 대한 상태 확인은 에코 응답(EHCO RESPONSE)를 통하여 수행될 수 있다.
스위치는 보조 연결이 정상인 것으로 확인되면, 비정상으로 확인된 메인 연결을 끊을 수 있고(S530), 보조 연결을 메인 연결로 변경하기 위한 연결 변경 메시지를 컨트롤러로 전송할 수 있다(S540). 즉, 스위치는 연결 변경 메시지를 컨트롤러로 전송하기에 앞서서, 비정상으로 확인된 메인 연결을 끊을 수 있다.
연결 변경 메시지를 수신한 컨트롤러는 보조 연결을 메인 연결로 변경할 수 있다(S550).
또한, 컨트롤러는 변경된 메인 연결에 대한 정보에 기반하여 스위치로 플로우 테이블 동기화 요청을 할 수 있고(S560), 스위치는 플로우 테이블 동기화 요청에 따라 스위치의 플로우 테이블을 동기화할 수 있다(S570).
다음으로, 도 6를 참조하여 컨트롤러가 주체가 되어 보조 연결을 메인 연결로 변경하는 절차를 설명한다.
컨트롤러는 스위치와의 메인 연결에 대한 상태를 확인할 수 있다. 컨트롤러는 메인 연결이 비정상으로 확인되면(S610), 스위치와의 보조 연결이 정상인지 확인할 수 있다(S620). 여기서, 연결에 대한 상태 확인은 에코 응답(EHCO RESPONSE)를 통하여 수행될 수 있다.
컨트롤러는 보조 연결이 정상인 것으로 확인되면, 비정상으로 확인된 메인 연결을 끊을 수 있고(S630), 보조 연결을 메인 연결로 변경하기 위한 연결 변경 메시지를 스위치로 전송할 수 있다(S640). 즉, 컨트롤러는 연결 변경 메시지를 스위치로 전송하기에 앞서서, 비정상으로 확인된 메인 연결을 끊을 수 있다.
연결 변경 메시지를 수신한 스위치는 보조 연결을 메인 연결로 변경할 수 있다(S650).
또한, 컨트롤러는 변경된 메인 연결에 대한 정보에 기반하여 스위치로 플로우 테이블 동기화 요청을 할 수 있고(S660), 스위치는 플로우 테이블 동기화 요청에 따라 스위치의 플로우 테이블을 동기화할 수 있다(S670).
도 7에 따른 연결 변경 메시지 및 도 8에 따른 플로우 테이블 동기화 요청 메시지는 상술한 도 5 및 도 6에 따른 절차를 수행하는데 활용될 수 있다.
도 7을 참조하여 본 발명의 실시예에 따른 연결 변경 메시지의 데이터 구조를 설명한다.
msg_type는 메시지의 타입을 나타내는 것으로 1 byte로 표현될 수 있다. 즉, msg_type에 의해 연결 변경 메시지임이 표현될 수 있다.
initiator은 연결 변경을 요청하는 주체를 나타내는 것으로 1 byte로 표현될 수 있다. 예를 들어, 연결 변경을 요청하는 주체는 컨트롤러 또는 스위치가 될 수 있다.
direction은 연결 변경을 요청하는 방향을 나타나는 것으로 1 byte로 표현될 수 있다. 예를 들어, 연결 변경을 요청하는 방향은 컨트롤러에서 스위치로 또는 스위치에서 컨트로러로 설정될 수 있으며, 이는 연결 변경을 요청하는 주체에 따라 결정될 수 있다.
도 8을 참조하여 본 발명의 실시예에 따른 플로우 테이블 동기화 요청 메시지의 데이터 구조를 설명한다.
msg_type는 메시지의 타입을 나타내는 것으로 1 byte로 표현될 수 있다. 즉, msg_type에 의해 플로우 테이블 동기화 요청 메시지임이 표현될 수 있다.
switch_id는 스위치를 식별할 수 있는 아이디를 나타내는 것으로 1 byte로 표현될 수 있다. switch_id는 플로우 테이블에 대한 동기화를 수행할 스위치를 식별할 수 있도록 한다.
flow_table_ver는 컨트롤러가 가진 플로우 테이블의 버전을 나타내는 것으로 2 byte로 표현될 수 있다.
flow_table는 컨트롤러가 스위치로 전달하는 플로우 테이블 동기화를 위한 데이터를 나타내는 것으로 100 byte로 표현될 수 있다. 스위치는 컨트롤러로부터 수신한 flow_table_ver 및 flow_table을 이용하여 플로우 테이블을 동기화할 수 있다.
도 9는 본 발명의 실시예에 따라 재연결 요청 메시지를 수신한 네트워크 장치에서 수행되는 절차를 설명하기 위한 예시도이다.
도 9를 참조하여 도 3에 따른 보조 연결을 이용하여 메인 연결을 재연결하는 방법을 수행하는데 있어 스위치(200)에서 수행되는 절차를 설명한다.
즉, 보조 연결을 이용하여 메인 연결을 재연결하기 위해 스위치(200)의 구성 요소인 컨트롤러 연동 처리부(220), 메시지 처리부(240) 및 재연결 이벤트 처리부(250)에서 수행되는 절차를 설명한다.
메시지 처리부(240)가 재연결 요청 메시지를 수신하면, 재연결 요청 메시지의 수신을 감지한 프로세서가 이벤트를 발생시켜 재연결 요청 메시지를 재연결 이벤트 처리부(250)로 전달한다.
재연결 이벤트 처리부(250)는 수신한 재연결 요청 메시지를 분석하여 재연결할 컨트롤러의 IP주소와 포트 정보를 추가하여 저장할 수 있으며, 이를 컨트롤러 연동 처리부(220)로 전달할 수 있다.
컨트롤러 연동 처리부(220)는 기존의 메인 연결을 끊고, 컨트롤러의 IP주소와 포트 정보를 이용하여 메인 연결을 재연결할 수 있다.
도 10은 본 발명의 실시예에 따라 보조 연결을 메인 연결로 변경하는 절차를 설명하기 위한 예시도이다.
도 10을 참조하면, 보조 연결을 메인 연결로 변경하는 절차는 컨트롤러(100)와 스위치(200)가 연동하여 수행할 수 있다.
또한, 보조 연결을 메인 연결로 변경하는 절차는 수행하는 주체는 도 5 및 도 6과 같이 스위치(200) 또는 컨트롤러(100)가 될 수 있다.
먼저, 스위치(200)가 주체가 되는 경우를 설명하면, 연결 변경 메시지가 스위치(200)의 메시지 처리부(240)로 전송될 수 있고, 스위치(200)의 재연결 이벤트 처리부(250)는 연결 변경 메시지에 기반하여 보조 연결을 메인 연결로 변경하는 요청을 스위치(200)의 컨트롤러 연동 처리부(220)에 할 수 있다.
스위치(200)의 컨트롤러 연동 처리부(220)는 보조 연결을 메인 연결로 변경하는 요청에 기반하여 기존의 메인 연결을 끊고, 보조 연결을 메인 연결로 변경할 수 있다.
다음으로, 컨트롤러(100)가 주체가 되는 경우를 설명하면, 연결 변경 메시지가 컨트롤러(100)의 메시지 처리부(140)로 전송될 수 있고, 컨트롤러(100)의 재연결 이벤트 처리부(150)는 연결 변경 메시지에 기반하여 보조 연결을 메인 연결로 변경하는 요청을 컨트롤러(100)의 컨트롤러 연동 처리부(120)에 할 수 있다.
컨트롤러(100)의 컨트롤러 연동 처리부(120)는 보조 연결을 메인 연결로 변경하는 요청에 기반하여 기존의 메인 연결을 끊고, 보조 연결을 메인 연결로 변경할 수 있다.
본 발명의 실시예에 따른 컨트롤러와 네트워크 장치 간 재연결 방법은 컨트롤러와 스위치 간의 메인 연결에 장애가 있을 경우, 보조 연결을 이용하여 메인 연결을 재연결하거나 보조 연결을 메인 연결로 대체함으로써 메인 연결의 연속성을 유지시킬 수 있다.
또한, 컨트롤러와 스위치 간의 메인 연결에 장애가 있을 경우, 복잡한 절차로 컨트롤러와 스위치 간에 연결을 재시도하지 않고, 보조 연결을 이용하여 컨트롤러와 스위치 간의 메인 연결에 대한 재연결을 신속하게 설정함으로써, 컨트롤러가 스위치를 제어하는데 신뢰성을 높여 줄 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 컨트롤러 110, 210: 연결 관리부
120: 스위치 연동 처리부 130, 230: 스위치 제어부
140, 240: 메시지 처리부 150, 250: 재연결 이벤트 처리부
160, 260: 플로우 테이블 처리부 200: 스위치
220: 컨트롤러 연동 처리부

Claims (14)

  1. 소프트웨어 정의 네트워크에서 컨트롤러가 네트워크 장치와 재연결하는 방법에 있어서,
    상기 컨트롤러가 상기 네트워크 장치와의 메인 연결에 대한 상태를 확인하는 단계;
    상기 메인 연결이 비정상으로 확인됨에 따라, 상기 컨트롤러가 상기 네트워크 장치와의 보조 연결에 대한 상태를 확인하는 단계;
    상기 보조 연결이 정상으로 확인됨에 따라, 상기 컨트롤러가 상기 보조 연결을 통하여 상기 네트워크 장치로 재연결 요청 메시지를 전송하여 상기 메인 연결을 재연결하는 단계; 및
    상기 컨트롤러가 재연결된 메인 연결에 대한 정보에 기반하여 상기 네트워크 장치로 플로우 테이블 동기화를 요청하는 단계를 포함하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  2. 청구항 1에 있어서,
    상기 재연결 요청 메시지를 전송하기에 앞서서,
    상기 컨트롤러가 상기 비정상으로 확인된 메인 연결을 끊는 단계를 더 포함하는 것을 특징으로 하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 재연결 요청 메시지는,
    상기 네트워크 장치가 접속할 컨트롤러의 IP 주소(Internet Protocol Address) 및 포트 정보를 포함하는 것을 특징으로 하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  5. 소프트웨어 정의 네트워크에서 컨트롤러와 네트워크 장치가 재연결하는 방법에 있어서,
    상기 컨트롤러가 상기 네트워크 장치와의 메인 연결에 대한 상태를 확인하는 단계;
    상기 메인 연결이 비정상으로 확인됨에 따라, 상기 컨트롤러가 상기 네트워크 장치와의 보조 연결에 대한 상태를 확인하는 단계;
    상기 보조 연결이 정상으로 확인됨에 따라, 상기 컨트롤러가 상기 비정상으로 확인된 메인 연결을 끊는 단계; 및
    상기 보조 연결을 메인 연결로 변경하기 위해 상기 컨트롤러가 상기 네트워크 장치로 연결 변경 메시지를 전송하는 단계를 포함하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  6. 삭제
  7. 삭제
  8. 청구항 5에 있어서,
    상기 컨트롤러가 변경된 메인 연결에 대한 정보에 기반하여 상기 네트워크 장치로 플로우 테이블 동기화를 요청하는 단계를 더 포함하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  9. 청구항 5에 있어서,
    상기 연결 변경 메시지는,
    연결 변경을 요청하는 주체 및 방향에 대한 정보를 포함하는 것을 특징으로 하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  10. 소프트웨어 정의 네트워크에서 컨트롤러와 네트워크 장치가 재연결하는 방법에 있어서,
    상기 네트워크 장치가 상기 컨트롤러와의 메인 연결에 대한 상태를 확인하는 단계;
    상기 메인 연결이 비정상으로 확인됨에 따라, 상기 네트워크 장치가 상기 컨트롤러와의 보조 연결에 대한 상태를 확인하는 단계;
    상기 보조 연결이 정상으로 확인됨에 따라, 상기 보조 연결을 메인 연결로 변경하기 위해 상기 네트워크 장치가 상기 컨트롤러로 연결 변경 메시지를 전송하는 단계; 및
    상기 네트워크 장치가 상기 컨트롤러로부터 변경된 메인 연결에 대한 정보에 기반하여 플로우 테이블 동기화 요청을 수신하는 단계를 포함하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  11. 청구항 10에 있어서,
    상기 연결 변경 메시지를 전송하기에 앞서서,
    상기 네트워크 장치가 상기 비정상으로 확인된 메인 연결을 끊는 단계를 더 포함하는 것을 특징으로 하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  12. 삭제
  13. 청구항 10에 있어서,
    상기 네트워크 장치가 상기 플로우 테이블 동기화 요청에 따라 상기 네트워크 장치의 플로우 테이블을 동기화하는 단계를 더 포함하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
  14. 청구항 10에 있어서,
    상기 연결 변경 메시지는,
    연결 변경을 요청하는 주체 및 방향에 대한 정보를 포함하는 것을 특징으로 하는,
    컨트롤러와 네트워크 장치 간 재연결 방법.
KR1020140111763A 2013-08-28 2014-08-26 컨트롤러와 네트워크 장치 간 재연결 방법 KR101586151B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130102715 2013-08-28
KR20130102715 2013-08-28

Publications (2)

Publication Number Publication Date
KR20150026894A KR20150026894A (ko) 2015-03-11
KR101586151B1 true KR101586151B1 (ko) 2016-01-18

Family

ID=53022638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140111763A KR101586151B1 (ko) 2013-08-28 2014-08-26 컨트롤러와 네트워크 장치 간 재연결 방법

Country Status (1)

Country Link
KR (1) KR101586151B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200067810A1 (en) * 2017-05-26 2020-02-27 New H3C Technologies Co., Ltd. State detection of netconf session

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101985580B1 (ko) * 2016-12-30 2019-09-04 주식회사 빅솔론 Pos시스템의 트래픽 제어를 위한 포스 허브 전자기기 및 포스 호스트

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064283B1 (ko) 2010-04-09 2011-09-14 코위버(주) MSPP를 사용한 EoS 회선 및 라우터의 이중화 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101064283B1 (ko) 2010-04-09 2011-09-14 코위버(주) MSPP를 사용한 EoS 회선 및 라우터의 이중화 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200067810A1 (en) * 2017-05-26 2020-02-27 New H3C Technologies Co., Ltd. State detection of netconf session
US11843534B2 (en) * 2017-05-26 2023-12-12 New H3C Technologies Co., Ltd. State detection of NETCONF session

Also Published As

Publication number Publication date
KR20150026894A (ko) 2015-03-11

Similar Documents

Publication Publication Date Title
EP2523403B1 (en) Network system and network redundancy method
JP3636399B2 (ja) プロトコル変換システム及びプロトコル変換方法
EP2696542A1 (en) Method, ToR switch, and system for implementing protection switchover based on TRILL network
CN102624745B (zh) 一种路径计算单元通信协议会话建立方法及装置
US10523547B2 (en) Methods, systems, and computer readable media for multiple bidirectional forwarding detection (BFD) session optimization
EP2553870B1 (en) An operations, administrations and management proxy and a method for handling operations, administrations and management messages
EP2383942A1 (en) Communication system and communication controller
EP2597821A1 (en) Method and system for auto-configuration, and network node
US9191312B2 (en) Method and system for implementing PW control bit capability negotiation
US7860027B2 (en) Extending an IP everywhere network over a plurality of flooding domains
CN103490951A (zh) 基于bfd的多跳链路中双向转发检测方法
KR101586151B1 (ko) 컨트롤러와 네트워크 장치 간 재연결 방법
WO2015035851A1 (zh) 一种传输数据的方法及设备
KR100431700B1 (ko) 에스지에스엔과 지지에스엔간의 시각 동기화 시스템 및 방법
JP5983733B2 (ja) 通信システム、制御装置、通信装置、情報中継方法及びプログラム
CN112887312B (zh) 一种慢协议报文处理方法及相关装置
WO2014019165A1 (zh) 一种多机间进行业务备份的方法、装置及系统
US8737413B2 (en) Relay server and relay communication system
JP2012165269A (ja) 中継サーバ及び中継通信システム
KR101625399B1 (ko) 소프트웨어 정의 네트워크에서의 tcp 연결 제어 방법 및 장치
CN111934912B (zh) 双主机隔离网关的热备冗余系统及控制方法
KR101587332B1 (ko) 컨트롤러와 네트워크 장치 간 연결 상태 확인 방법
EP2725738B1 (en) Method, device and system for transmitting data streams
WO2011143891A1 (zh) 用户业务信息备份方法和装置
KR101717363B1 (ko) Sdn 환경에서 컨트롤러의 역할을 변경하는 방법 및 이를 수행하는 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5