KR102166876B1 - 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법 - Google Patents

소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법 Download PDF

Info

Publication number
KR102166876B1
KR102166876B1 KR1020140113500A KR20140113500A KR102166876B1 KR 102166876 B1 KR102166876 B1 KR 102166876B1 KR 1020140113500 A KR1020140113500 A KR 1020140113500A KR 20140113500 A KR20140113500 A KR 20140113500A KR 102166876 B1 KR102166876 B1 KR 102166876B1
Authority
KR
South Korea
Prior art keywords
received packet
transmitting
controller
packet
flow table
Prior art date
Application number
KR1020140113500A
Other languages
English (en)
Other versions
KR20160025960A (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 KR1020140113500A priority Critical patent/KR102166876B1/ko
Publication of KR20160025960A publication Critical patent/KR20160025960A/ko
Application granted granted Critical
Publication of KR102166876B1 publication Critical patent/KR102166876B1/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages

Landscapes

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

Abstract

소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법은 컨트롤러의 장애가 발생하면, 상기 플로우 테이블에 포함된 모든 플로우의 체류 시간을 무한대로 변경하는 단계, 그리고 패킷이 수신되면, 상기 플로우 테이블로부터 획득한 상기 패킷의 목적지에 해당하는 플로우에 포함된 포트 정보를 이용하여 수신된 패킷을 전송하는 단계를 포함한다.

Description

소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법{CONTROL SWITCH METHOD FOR SOLVING PROBLEM OF CONTROLLER IN SOFTWARE DEFINED NETWORK}
본 발명은 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법에 관한 것이다.
오픈플로우(OpenFlow) 기술은 고비용 문제를 해결하면서 사용자 또는 개발자에게 개방형 표준 인터페이스를 제공하기 위해 출현하였다. 오픈플로우 기술은 네트워크 스위치의 패킷 포워딩 기능과 제어 기능을 분리하고 상기 두 기능간의 통신을 위한 프로토콜을 제공함으로써, 외부 제어장치에 의하여 구동되는 소프트웨어가 장비 제조사에 무관하게 스위치 내의 패킷 경로를 결정할 수 있도록 한다.
오픈플로우 시스템은 스위치(switch)와 컨트롤러(controller)를 포함하며, 스위치와 컨트롤러간에는 표준화된 오픈플로우 프로토콜을 사용하도록 구성하여 현재의 네트워크 기능을 수행하도록 구성한 것이 소프트웨어 정의 네트워크(Software Defined Network, 이하, SDN이라 약칭함) 망이다.
이러한 SDN은 기존의 일체형 네트워크에서 제어 평면(Control Plane)과 데이터 평면(Data Plane)을 분리하고, 이를 추상화함으로써 소프트웨어 프로그래밍을 이용한 중앙 집중식 네트워크 제어 구조를 제공한다.
종래에 SDN 망의 장애와 관련하여 스위치의 포트 장애 발생시 장애를 감지하고 우회 포트 정보를 획득한 후 장애가 발생한 포트에서 우회 포트로 스위칭함으로써, 이를 통해 포트 장애시 신속하게 대처하고 트래픽 전송의 연속성을 보장하는 기술이 제안되어 있다.
그러나, 종래 기술은 컨트롤러가 여전히 동작하고 있는 상황을 고려하고 있다. 즉, 컨트롤러에 장애가 있는 경우를 고려하고 있지 않고 있다. 따라서, 컨트롤러의 장애시에는 트래픽 전송의 연속성을 보장하지 못한다는 문제가 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 소프트웨어 정의 네트워크(Software Defined Network, SDN)에서 컨트롤러의 장애시에도 패킷 전송의 단절없이 원활한 통신이 이루어지도록 하는 스위치 제어 방법을 제공하는 것이다.
본 발명의 하나의 특징에 따르면, 스위치 제어 방법은 플로우 테이블을 관리하는 컨트롤러 및 상기 컨트롤러가 생성한 플로우 테이블을 이용하여 패킷 송수신을 제어하는 복수의 스위치로 구성된 소프트웨어 정의 네트워크에서 상기 컨트롤러의 장애시 스위치 제어 방법으로서, 상기 컨트롤러의 장애가 발생하면, 상기 플로우 테이블에 포함된 모든 플로우의 체류 시간을 무한대로 변경하는 단계, 그리고 패킷이 수신되면, 상기 플로우 테이블로부터 획득한 상기 패킷의 목적지에 해당하는 플로우에 포함된 포트 정보를 이용하여 수신된 패킷을 전송하는 단계를 포함한다.
상기 패킷을 전송하는 단계는,
패킷을 수신하는 단계, 수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하는지 판단하는 단계, 상기 해당하는 플로우에 포함된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계, 그리고 상기 수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하지 않으면, 상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계는,
상기 수신된 패킷의 목적지 IP 서브넷과 동일한 서브넷이 상기 플로우 테이블에 존재하는지 판단하는 단계, 상기 동일한 서브넷이 상기 플로우 테이블에 존재하면, 상기 동일한 서브넷에 할당된 포트로 상기 수신된 패킷을 전송하는 단계, 그리고 상기 동일한 서브넷이 상기 플로우 테이블에 존재하지 않으면, 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
상기 스위치의 모든 포트로 상기 수신된 패킷을 브로드캐스팅하는 단계를 포함할 수 있다.
상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
상기 스위치의 복수의 포트 중에서 랜덤하게 선택된 포트로 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 무한대로 변경하는 단계 이전에,
상기 컨트롤러에게 헬로우 메시지를 주기적으로 전송하는 단계, 그리고 상기 헬로우 메시지에 대한 응답이 수신되지 않으면, 상기 컨트롤러의 장애를 감지하는 단계를 더 포함할 수 있다.
본 발명의 다른 특징에 따르면, 스위치 제어 방법은 플로우 테이블을 관리하는 컨트롤러, 상기 컨트롤러없이 동작하는 레거시 스위치 및 상기 컨트롤러와 연계하여 동작하는 제1 모드 또는 상기 컨트롤러없이 동작하는 동작하는 제2 모드로 동작하는 하이브리드 스위치가 혼재하는 소프트웨어 정의 네트워크에서 상기 컨트롤러의 장애시 스위치 제어 방법으로서, 상기 컨트롤러의 장애가 발생하면, 상기 하이브리드 스위치가 복수의 포트 중 상기 제1 모드로 동작하는 포트들의 모드를 상기 제2 모드로 변경하는 단계, 그리고 패킷이 수신되면, 라우팅 테이블에 포함된 라우팅 정보를 이용하여 수신된 패킷을 전송하는 단계를 포함한다.
상기 수신된 패킷을 전송하는 단계는,
상기 수신된 패킷에 대한 라우팅 정보가 상기 라우팅 테이블에 존재하는지 판단하는 단계, 상기 라우팅 테이블에 존재하면, 상기 라우팅 테이블로부터 획득한 라우팅 정보를 이용하여 수신된 패킷을 전송하는 단계, 그리고 상기 라우팅 테이블에 존재하지 않으면, 상기 플로우 테이블을 이용하여 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 제2 모드로 변경하는 단계 이전에,
상기 컨트롤러의 장애가 감지되면, 상기 플로우 테이블에 포함된 모든 플로우의 체류 시간을 무한대로 변경하는 단계를 더 포함하고,
상기 플로우 테이블을 이용하여 상기 수신된 패킷을 전송하는 단계는,
수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하는지 판단하는 단계, 상기 해당하는 플로우에 포함된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계, 그리고 상기 수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하지 않으면, 상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계는,
상기 수신된 패킷의 목적지 IP 서브넷과 동일한 서브넷이 상기 플로우 테이블에 존재하는지 판단하는 단계, 상기 동일한 서브넷이 상기 플로우 테이블에 존재하면, 상기 동일한 서브넷에 할당된 포트로 상기 수신된 패킷을 전송하는 단계, 그리고 상기 동일한 서브넷이 상기 플로우 테이블에 존재하지 않으면, 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
상기 하이브리드 스위치의 모든 포트로 상기 수신된 패킷을 브로드캐스팅하는 단계를 포함할 수 있다.
상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
상기 하이브리드 스위치의 복수의 포트 중에서 랜덤하게 선택된 포트로 상기 수신된 패킷을 전송하는 단계를 포함할 수 있다.
상기 무한대로 변경하는 단계 이전에,
상기 컨트롤러에게 헬로우 메시지를 주기적으로 전송하는 단계, 그리고 상기 헬로우 메시지에 대한 응답이 수신되지 않으면, 상기 컨트롤러의 장애를 감지하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 스위치에 기능을 추가하여 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시에도 패킷 전송의 단절없이 원활한 통신이 이루어지도록 한다.
또한, 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시 비상 전송기법을 이용한 운영 방법으로 패킷 전송이 이루어지므로, 스위치의 소프트웨어(S/W)만 일부 변경하면 되어 별도의 장비가 필요치 않다. 따라서, 컨트롤러 장애시에도 망의 변경이나 별도의 장비 추가없이 단절없는 서비스를 지원할 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 소프트웨어 정의 네트워크(SDN)의 조를 나타낸다.
도 2는 도 1의 SDN 스위치의 구성을 나타낸 블록도이다.
도 3은 도 1의 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시 스위치 제어 방법을 나타낸 순서도이다.
도 4는 본 발명의 다른 실시예에 따른 소프트웨어 정의 네트워크(SDN)의 조를 나타낸다.
도 5는 도 4의 하이브리드 스위치의 구성을 나타낸 블록도이다.
도 6은 도 4의 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시 스위치 제어 방법을 나타낸 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법에 대하여 상세히 설명한다.
소프트웨어 정의 네트워크(Software Defined Network, 이하, SDN이라 약칭함)의 오픈플로우 규격에 따르면, 스위치는 표 1과 같이 세가지 종류가 있다.
스위치 종류 설명
레거시 스위치 컨트롤러 없이 스스로 동작하는 스위치
SDN 스위치 컨트롤러와 연계하여 동작하는 스위치
하이브리드 스위치 레거시 모드 또는 SDN 모드로 동작하는 스위치
표 1과 같은 스위치 중에서 컨트롤러(Controller)에 장애가 발생한 경우, 패킷 전달 차단 문제가 발생하는 스위치는 SDN 스위치와 하이브리드 스위치이다.
SDN 스위치와 하이브리드 스위치 모두 중앙에서 컨트롤러가 망을 관리하는 중앙 집중식 SDN에 속하며, 이때, 컨트롤러의 역할은 절대적이다. 컨트롤러는 모든 플로우 경로의 계산을 통해 얻어진 경로를 각 SDN 스위치 및 SDN 모드로 동작하는 하이브리드 스위치로 전달한다. 그리고 SDN 스위치 및 SDN 모드로 동작하는 하이브리드 스위치는 이 메시지를 받은 후에 패킷을 전송한다. 그러나 컨트롤러의 장애 발생시 SDN 스위치 및 SDN 모드로 동작하는 하이브리드 스위치는 더 이상 동작하지 못하는 즉, 패킷을 전송할 수 없는 상태가 된다.
본 발명의 실시예에서는 이와 같이, 컨트롤러 자체에 장애가 발생하더라도 스위치 스스로 패킷 전송 경로를 설정하여 패킷 전달 차단 문제를 방지하는 기술에 대해 실시예 별로 설명한다.
도 1은 본 발명의 하나의 실시예에 따른 소프트웨어 정의 네트워크(SDN)의 조를 나타낸다.
도 1을 참조하면, SDN 망은 SDN 컨트롤러(100) 및 복수의 SDN 스위치(200)로 구성된다. SDN 컨트롤러(100)는 복수의 SDN 스위치(200)와 각각 연결되어 통신이 가능하다. 그리고 복수의 SDN 스위치(200)는 인접한 다른 SDN 스위치(200)와 연결되어 통신이 가능하다.
여기서, SDN 컨트롤러(100)는 오픈플로우 프로토콜에 의하여 복수의 SDN 스위치(200) 내부의 플로우 테이블(flow table)을 생성하거나, 새로운 플로우의 등록 및 삭제를 수행한다. 예를 들면, SDN 컨트롤러(100)는 SDN 스위치(200)로부터 플로우의 첫 패킷이 캡슐화된 오픈플로우 메시지(OpenFlow Encapsulation된 Packet)를 수신한다. 그러면 플로우의 경로 또는 처리 방식을 결정하여 경로 상의 SDN 스위치들(200)에게 알리고, 플로우 엔트리 생성을 명령한다.
복수의 SDN 스위치(200)는 내부의 플로우 테이블에 등록된 엔트리에 기초하여 패킷을 전송하도록 구성된다. 여기서, 플로우 엔트리의 룰은 패킷의 각 프로토콜층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port) 및 송신원 포트(Source Port) 중 어느 하나 또는 모두의 다양한 조합에 기초하여 정의되고 식별 가능하다.
SDN 스위치(200)는 수신한 패킷을 플로우로 구분하고 플로우 테이블에 정의된 규칙에 따라 패킷을 처리한 후, 목적지 포트로 전달한다. 즉, 인입되는 패킷에 대하여 플로우 테이블에 지정된 포트(port)로 포워딩(forwarding)함으로써 패킷을 처리한다.
도 1과 같은 SDN 모드만 지원하는 SDN 스위치들로만 구성된 SDN 망에서는 SDN 컨트롤러의 장애 발생시 SDN 스위치들 간에 패킷을 전송하기 위해서 독립적으로 패킷의 전송이 가능해야 한다. 이를 위해서 SDN 스위치(200)는 두가지 기능이 추가된다. 추가되는 하나의 기능은 SDN 컨트롤러(100)의 장애가 발생했을 경우 플로우의 체류 시간 값을 변경하는 기능이다. SDN 스위치(200)는 장애가 발생된 상황을 빨리 파악하고, 체류시간값을 무한대로 변경하여 플로우 테이블에서 보관하고 있는 플로우 정보들이 유실되지 않도록 한다. SDN 스위치(200)에 추가되는 다른 기능은 미리 설정된 정책대로 패킷을 전송하는 비상 전송 기능이다. SDN 컨트롤러(100) 장애시 SDN 스위치(200)에 패킷이 인입되면, 목적지 정보를 플로우 테이블의 플로우 정보와 매칭하는 작업을 통해 패킷의 출력 포트를 결정한다.
이러한 기능의 추가는 SDN 스위치의 소프트웨어 업그레이드를 통해 이루어질 수 있다.
도 2는 도 1의 SDN 스위치의 구성을 나타낸 블록도이다.
도 2를 참조하면, SDN 스위치(200)는 패킷 처리부(201), 플로우 테이블(203), 장애 감지부(205), 체류시간 변경부(207) 및 비상 전송 제어부(209)를 포함한다.
패킷 처리부(201)는 패킷이 유입(In)되면, 유입된 패킷에 해당하는 플로우를 플로우 테이블(203)로부터 검색한다. 그리고 플로우에 할당된 출력 포트로 패킷을 출력한다.
이때, 패킷 처리부(201)는 SDN 컨트롤러(100) 장애시 유입된 패킷을 비상 전송 제어부(209)로부터 전달받은 포트 정보를 이용하여 출력한다.
플로우 테이블(203)는 SDN 컨트롤러(100)로부터 등록된 플로우 정보를 저장한다. 여기서, 플로우 테이블(203)에 저장된 플로우들은 일정 시간이 되면 삭제되도록 시간이 설정되도록 체류 시간이 설정되어 있다.
여기서, SDN 스위치(200)는 복수의 출력 포트를 포함하며, 패킷은 이러한 출력 포트를 통해 외부로 출력된다. 그리고 플로우 테이블(203)에는 패킷을 복수의 포트 중 어느 포트로 출력할지에 관한 정보가 저장되어 있다. 예컨대 유입된 패킷에 해당하는 플로우, 즉, 이전 전송된 패킷 정보가 포함된 플로우가 존재하면 해당 플로우에 포함된 포트로 패킷을 출력한다.
장애 감지부(205)는 SDN 컨트롤러(100)와 통신이 두절되는지, 즉 SDN 컨트롤러(100)의 장애가 발생하면 이를 감지한다.
체류시간 변경부(207)는 장애 감지부(205)가 SDN 컨트롤러(100)의 장애를 감지하면, 플로우 테이블(203)내의 플로우 들의 체류 시간을 모두 무한대(
Figure 112014082435382-pat00001
)로 변경한다.
비상 전송 제어부(209)는 장애 감지부(205)가 SDN 컨트롤러(100)의 장애를 감지하면, 기 정의된 정책에 따라 패킷을 전송한다.
도 3은 도 1의 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시 스위치 제어 방법을 나타낸 순서도로서, 도 1 및 도 2의 구성과 연계하여 동일한 도면 부호를 사용하여 설명한다.
도 3을 참조하면, 장애 감지부(205)는 주기적으로 SDN 컨트롤러(100)에게 헬로우(Hello) 메시지를 전송한다(S101).
장애 감지부(205)는 S101 단계에서 전송한 헬로우 메시지에 대한 응답이 수신되는지를 판단한다(S103).
이때, 응답이 수신되지 않으면, 체류시간 변경부(207)는 플로우 테이블(203)내에 존재하는 모든 플로우의 체류시간을 무한대로 변경한다(S105).
이후, 패킷이 유입(S107)되면, 비상 전송 제어부(209)는 유입된 패킷의 목적지에 해당하는 플로우가 플로우 테이블(203)에 존재하는지를 판단한다(S109).
이때, 플로우가 존재하면, 비상 전송 제어부(209)는 해당 플로우의 포트로 패킷을 전송한다(S111).
반면, 플로우가 존재하지 않으면, 비상 전송 제어부(209)는 패킷의 목적지 IP 서브넷을 확인(S113)하여 확인한 서브넷과 동일한 서브넷이 플로우 테이블(203)에 존재하는지 판단한다(S115).
이때, 패킷의 목적지 IP와 동일한 서브넷이 플로우 테이블(203)에 존재하면, 비상 전송 제어부(209)는 그 서브넷에 할당된 포트로 패킷을 전송한다(S117).
반면, 패킷의 목적지 IP와 동일한 서브넷이 플로우 테이블(203)에 존재하지 않으면, 비상 전송 제어부(209)는 사전 정의된 정책에 따라 패킷을 전송한다(S119). 하나의 실시예에 따르면, 모든 포트로 패킷을 브로드캐스팅할 수 있다. 다른 실시예에 따르면, 복수의 포트 중에서 랜덤하게 결정된 포트로 패킷을 전송할 수 있다.
한편, 도 4는 본 발명의 다른 실시예에 따른 소프트웨어 정의 네트워크(SDN)의 구조를 나타낸다.
도 4를 참조하면, SDN 망은 SDN 컨트롤러(300), 레거시 관리 장비(400), 레거시 스위치(500) 및 하이브리드 스위치(600)로 구성된다.
여기서, SDN 컨트롤러(300)는 도 1에서 설명한 바와 동일하므로 자세한 설명은 생략한다.
레거시 관리 장비(400)는 OAM(Operation Administration Maintenance) 장비로서, 장비나 서비스의 안정적인 운용(Operation), 운용의 효율적 관리(Administration), 서비스 상태감시 및 신속한 복구를 위한 유지보수 (Maintenance)를 수행한다. 주요 기능은 고장/불량의 신속한 발견, 발견된 고장의 국지화(고장의 여파가 주변의 장비로 가지 않도록 방지), 서비스 성능 모니터링(성능 감시), 장비/서비스 보호를 수행한다.
레거시 스위치(500)는 전술한 바와 같이 레거시 관리 장비(400)과 연결되고, SDN 컨트롤러(300) 없이 독립적으로 동작한다.
하이브리드 스위치(600)는 SDN 컨트롤러(300)와 연결되어 동작하는 SDN 모드 또는 레거시 스위치(500)와 같이 동작하는 레거시 모드로 동작하는 스위치이다. 이때, 하이브리드 스위치(600)의 복수의 포트 별로 각각 SDN 모드 또는 레거시 모드가 각각 설정될 수 있다.
하이브리드 스위치(600)는 SDN 컨트롤러(300) 및 레거시 스위치(500)와 연결되어 통신이 가능하다.
도 4와 같은 레거시 스위치(500)와 하이브리드 스위치(600)가 혼재하는 SDN 망에서는 SDN 컨트롤러(300)의 장애가 발생하는 경우, 모든 하이브리드 스위치(600)는 레거시 모드로 동작한다. 하이브리드 스위치(600)는 OSPF(Open Shortest Path First)와 같은 라우팅 프로토콜을 실행하면서 RIB(Routing Information Base)를 생성하고, 라우팅 테이블을 기초로 패킷을 각 포트로 전송한다. 레거시 관리 장비(400)와의 정보 교환이 필요한 경우, 레거시 관리 장비(400)와 메시지 교환이 이루어진다. 이때, 만약 레거시 모드로 전환된 초기에 라우팅 정보를 가지고 있지 않다면, 도 2 및 도 3에서 설명한 SDN 스위치와 동일하게 동작한다.
이러한 하이브리드 스위치(600)에는 두가지 기능이 추가되며 소프트웨어 업그레이드로 추가가 가능하다. 추가되는 하나의 기능은 포트당 SDN 모드 또는 레거시 모드 두가지 중에 한가지로 설정하게 되어 있는데, SDN 모드에서 컨트롤러 장애가 났을 경우, 레거시 모드로 자동 변환하는 기능이다. 하이브리드 스위치(600)는 레거시 모드로 자동으로 변경될 경우 라우팅 프로토콜이 활성화되어 패킷을 전송할 수 있다.
추가되는 다른 기능은 레거시 모드로 변경된 초기에 라우팅 정보가 없을 경우, 앞서 기술했던 SDN 스위치(200)의 동작과 동일한 기능이다.
도 5는 도 4의 하이브리드 스위치의 구성을 나타낸 블록도이다.
도 5를 참조하면, 하이브리드 스위치(600)는 패킷 처리부(601), 플로우 테이블(603), 라우팅 테이블(605), 장애 감지부(607), 체류시간 변경부(609), 모드 변경부(611) 및 비상 전송 제어부(613)를 포함한다.
패킷 처리부(601)는 도 2에서 설명한 패킷 처리부(201)와 동일한 동작이므로, 그 설명은 생략한다.
플로우 테이블(603)은 도 2에서 설명한 플로우 테이블(203)과 동일한 동작이므로, 그 설명은 생략한다.
라우팅 테이블(605)은 OSPF(Open Shortest Path First)와 같은 라우팅 프로토콜을 실행하면서 생성된 라우팅 정보(RIB)를 저장한다.
여기서, 라우팅 정보(RIB)는 기존망에서 받은 라우팅 정보를 저장하는 데이터베이스로서 어드레스(Address), 메트릭(Metric) 및 타이머(Timer)를 포함한다. 어드레스(Address)는 호스트 또는 네트워크 IP 주소이다. 메트릭(Metric)은 목적지까지의 거리를 나타내는 정보이다. 타이머(Timer)는 엔트리 정보가 갱신된 최근 시간을 나타낸다.
장애 감지부(607)는 SDN 컨트롤러(300)와 통신이 두절되는지, 즉 SDN 컨트롤러(300)의 장애가 발생하면 이를 감지한다.
체류시간 변경부(609)는 SDN 컨트롤러(300)와 통신이 두절되면, 플로우 테이블(603)의 모든 플로우의 체류 시간을 무한대로 변경한다.
모드 변경부(611)는 장애 감지부(607)로부터 SDN 컨트롤러(300)의 장애가 감지되면, SDN 모드로 설정된 포트들의 모드를 레거시 모드로 변경한다.
비상 전송 제어부(613)는 SDN 컨트롤러(300)와 통신이 두절된 후, 패킷이 유입되면 라우팅 테이블(605)에 저장된 라우팅 정보(RIB)를 토대로 패킷을 전송한다. 이때, 라우팅 정보(RIB)가 존재하지 않으면, 도 2 및 도 3에서 설명한 바와 같이 SDN 스위치(200)와 동일하게 동작한다.
도 6은 도 4의 소프트웨어 정의 네트워크(SDN)에서 컨트롤러 장애시 스위치 제어 방법을 나타낸 순서도로서, 도 4 및 도 5의 구성과 연계하여 동일한 도면 부호를 사용하여 설명한다.
도 6을 참조하면, 장애 감지부(607)는 주기적으로 SDN 컨트롤러(300)에게 헬로우(Hello) 메시지를 전송한다(S201).
장애 감지부(607)는 S201 단계에서 전송한 헬로우 메시지에 대한 응답이 수신되는지를 판단한다(S203).
이때, 응답이 수신되지 않으면, 체류시간 변경부(609)는 플로우 테이블(603)내에 존재하는 모든 플로우의 체류시간을 무한대로 변경한다(S205).
모드 변경부(611)는 SDN 모드로 동작하는 각 포트의 모드를 레거시 모드로 변경한다(S207).
이후, 패킷이 유입(S209)되면, 비상 전송 제어부(613)는 라우팅 테이블(605)에 패킷의 라우팅 정보가 존재하는지 판단한다(S211).
이때, 라우팅 정보가 존재하면, 비상 전송 제어부(613)는 패킷 목적지에 대응하는 라우팅 정보를 이용하여 패킷을 전송한다(S213).
반면, S211 단계에서 라우팅 정보가 존재하지 않으면, 비상 전송 제어부(613)는 패킷 목적지가 플로우 테이블(603)에 존재하는지를 판단한다(S215).
이때, 플로우가 존재하면, 비상 전송 제어부(613)는 해당 플로우의 포트로 패킷을 전송한다(S217).
반면, 플로우가 존재하지 않으면, 비상 전송 제어부(613)는 패킷의 목적지 IP 서브넷을 확인(S219)하여 패킷의 목적지 IP와 동일한 서브넷이 플로우 테이블(603)에 존재하는지 판단한다(S221).
이때, 패킷의 목적지 IP와 동일한 서브넷이 플로우 테이블(603)에 존재하면, 비상 전송 제어부(613)는 그 서브넷에 할당된 포트로 패킷을 전송한다(S223).
반면, 패킷의 목적지 IP와 동일한 서브넷이 플로우 테이블(603)에 존재하지 않으면, 비상 전송 제어부(613)는 사전 정의된 정책에 따라 패킷을 전송한다(S225). 하나의 실시예에 따르면, 모든 포트로 패킷을 브로드캐스팅할 수 있다. 다른 실시예에 따르면, 복수의 포트 중에서 랜덤하게 결정된 포트로 패킷을 전송할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (13)

  1. 플로우 테이블을 관리하는 컨트롤러 및 상기 컨트롤러가 생성한 플로우 테이블을 이용하여 패킷 송수신을 제어하는 복수의 스위치로 구성된 소프트웨어 정의 네트워크에서 상기 컨트롤러의 장애시 스위치 제어 방법으로서,
    상기 컨트롤러의 장애가 발생하면, 상기 플로우 테이블에 포함된 모든 플로우의 체류 시간을 무한대로 변경하는 단계, 그리고
    패킷이 수신되면, 상기 플로우 테이블로부터 획득한 상기 패킷의 목적지에 해당하는 플로우에 포함된 포트 정보를 이용하여 수신된 패킷을 전송하는 단계를 포함하고,
    상기 패킷을 전송하는 단계는,
    패킷을 수신하는 단계,
    수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하는지 판단하는 단계,
    상기 해당하는 플로우에 포함된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계, 그리고
    상기 수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하지 않으면, 상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계
    를 포함하는 스위치 제어 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계는,
    상기 수신된 패킷의 목적지 IP 서브넷과 동일한 서브넷이 상기 플로우 테이블에 존재하는지 판단하는 단계,
    상기 동일한 서브넷이 상기 플로우 테이블에 존재하면, 상기 동일한 서브넷에 할당된 포트로 상기 수신된 패킷을 전송하는 단계, 그리고
    상기 동일한 서브넷이 상기 플로우 테이블에 존재하지 않으면, 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계
    를 포함하는 스위치 제어 방법.
  4. 제3항에 있어서,
    상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
    상기 스위치의 모든 포트로 상기 수신된 패킷을 브로드캐스팅하는 단계를 포함하는 스위치 제어 방법.
  5. 제3항에 있어서,
    상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
    상기 스위치의 복수의 포트 중에서 랜덤하게 선택된 포트로 상기 수신된 패킷을 전송하는 단계를 포함하는 스위치 제어 방법.
  6. 제1항에 있어서,
    상기 무한대로 변경하는 단계 이전에,
    상기 컨트롤러에게 헬로우 메시지를 주기적으로 전송하는 단계, 그리고
    상기 헬로우 메시지에 대한 응답이 수신되지 않으면, 상기 컨트롤러의 장애를 감지하는 단계
    를 더 포함하는 스위치 제어 방법.
  7. 플로우 테이블을 관리하는 컨트롤러, 상기 컨트롤러없이 동작하는 레거시 스위치 및 상기 컨트롤러와 연계하여 동작하는 제1 모드 또는 상기 컨트롤러없이 동작하는 제2 모드로 동작하는 하이브리드 스위치가 혼재하는 소프트웨어 정의 네트워크에서 상기 컨트롤러의 장애시 스위치 제어 방법으로서,
    상기 컨트롤러의 장애가 감지되면, 상기 레거시 스위치 또는 상기 하이브리드 스위치의 플로우 테이블에 포함된 모든 플로우의 체류 시간을 무한대로 변경하는 단계,
    상기 컨트롤러의 장애가 발생하면, 상기 하이브리드 스위치가 복수의 포트 중 상기 제1 모드로 동작하는 포트들의 모드를 상기 제2 모드로 변경하는 단계, 그리고
    패킷이 수신되면, 라우팅 테이블에 포함된 라우팅 정보를 이용하여 수신된 패킷을 전송하는 단계를 포함하고,
    상기 수신된 패킷을 전송하는 단계는,
    수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하는지 판단하는 단계,
    상기 플로우 테이블에 존재하면 상기 해당하는 플로우에 포함된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계,
    상기 수신된 패킷의 목적지에 해당하는 플로우가 상기 플로우 테이블에 존재하지 않으면, 상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계
    를 포함하는 스위치 제어 방법.
  8. 제7항에 있어서,
    상기 판단하는 단계 이전에,
    상기 수신된 패킷에 대한 라우팅 정보가 상기 라우팅 테이블에 존재하는지 판단하는 단계, 그리고
    상기 라우팅 테이블에 존재하면, 상기 라우팅 테이블로부터 획득한 라우팅 정보를 이용하여 수신된 패킷을 전송하는 단계를 더 포함하고,
    상기 판단하는 단계는,
    상기 수신된 패킷에 대한 라우팅 정보가 상기 라우팅 테이블에 존재하지 않으면 수행되는, 스위치 제어 방법.
  9. 삭제
  10. 제8항에 있어서,
    상기 수신된 패킷의 목적지 IP 서브넷에 할당된 포트 정보를 이용하여 상기 수신된 패킷을 전송하는 단계는,
    상기 수신된 패킷의 목적지 IP 서브넷과 동일한 서브넷이 상기 플로우 테이블에 존재하는지 판단하는 단계,
    상기 동일한 서브넷이 상기 플로우 테이블에 존재하면, 상기 동일한 서브넷에 할당된 포트로 상기 수신된 패킷을 전송하는 단계, 그리고
    상기 동일한 서브넷이 상기 플로우 테이블에 존재하지 않으면, 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계
    를 포함하는 스위치 제어 방법.
  11. 제10항에 있어서,
    상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
    상기 하이브리드 스위치의 모든 포트로 상기 수신된 패킷을 브로드캐스팅하는 단계를 포함하는 스위치 제어 방법.
  12. 제10항에 있어서,
    상기 사전 정의된 정책에 따라 상기 수신된 패킷을 전송하는 단계는,
    상기 하이브리드 스위치의 복수의 포트 중에서 랜덤하게 선택된 포트로 상기 수신된 패킷을 전송하는 단계를 포함하는 스위치 제어 방법.
  13. 제7항에 있어서,
    상기 무한대로 변경하는 단계 이전에,
    상기 컨트롤러에게 헬로우 메시지를 주기적으로 전송하는 단계, 그리고
    상기 헬로우 메시지에 대한 응답이 수신되지 않으면, 상기 컨트롤러의 장애를 감지하는 단계
    를 더 포함하는 스위치 제어 방법.
KR1020140113500A 2014-08-28 2014-08-28 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법 KR102166876B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140113500A KR102166876B1 (ko) 2014-08-28 2014-08-28 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140113500A KR102166876B1 (ko) 2014-08-28 2014-08-28 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법

Publications (2)

Publication Number Publication Date
KR20160025960A KR20160025960A (ko) 2016-03-09
KR102166876B1 true KR102166876B1 (ko) 2020-10-16

Family

ID=55536432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140113500A KR102166876B1 (ko) 2014-08-28 2014-08-28 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법

Country Status (1)

Country Link
KR (1) KR102166876B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107171884A (zh) * 2017-03-31 2017-09-15 武汉绿色网络信息服务有限责任公司 一种实现vxlan虚拟网络中流稳定性的方法
CN107395510A (zh) * 2017-08-29 2017-11-24 迈普通信技术股份有限公司 提高流转发性能的方法、装置及网络设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100990831B1 (ko) * 2004-04-09 2010-10-29 엘지에릭슨 주식회사 차세대 망에서의 장애 극복을 위한 소프트스위치 및 그 방법
JP2008098798A (ja) * 2006-10-10 2008-04-24 Nec Corp 通信システムにおけるデータ伝送状況判定方法および通信装置
KR20140072343A (ko) * 2012-12-03 2014-06-13 한국전자통신연구원 Sdn 망의 장애 대처 방법

Also Published As

Publication number Publication date
KR20160025960A (ko) 2016-03-09

Similar Documents

Publication Publication Date Title
US20140153924A1 (en) Method and Apparatus for Connectivity Control in a Data Center Network
EP3082309B1 (en) Sdn controller, data centre system and router connection method
CN102904818B (zh) 一种arp信息表项更新方法及装置
US7941837B1 (en) Layer two firewall with active-active high availability support
EP2643940B1 (en) Method of shrinking a data loss window in a packet network device
EP2533475B1 (en) Method and system for host route reachability in packet transport network access ring
US11799801B2 (en) Transfer device, transfer system, transfer method, and program
JP6388955B2 (ja) OpenFlowスイッチのグレースフル・リスタート処理方法及びOpenFlowコントローラ
US9628324B2 (en) Openflow switch and failure recovery method in openflow network
KR101691759B1 (ko) 가상 섀시 시스템 제어 프로토콜
KR20140072343A (ko) Sdn 망의 장애 대처 방법
KR20130055392A (ko) 점 대 다점 네트워크에서의 보호 절체 방법 및 장치
KR20150124369A (ko) 중계 시스템 및 스위치 장치
US10193617B2 (en) Relay method, relay system, recording medium, and method
US8203934B2 (en) Transparent automatic protection switching for a chassis deployment
JP5338428B2 (ja) 通信装置及びその方法並びに通信システム及びその方法
US9984036B2 (en) Communication system, control apparatus, communication method, and program
KR102166876B1 (ko) 소프트웨어 정의 네트워크에서 컨트롤러 장애시 스위치 제어 방법
CN112995002B (zh) 一种交换机环网的设计方法、交换机及存储介质
US9225667B2 (en) Communication system and network relay apparatus
JP2013046090A (ja) 通信装置および通信システム
EP4009592A1 (en) Method for configuring port state and network device
US7869351B2 (en) Communication techniques and generic layer 3 automatic switching protection
Huynh et al. RRR: Rapid ring recovery submillisecond decentralized recovery for ethernet ring
JP4614846B2 (ja) ループ制御ブリッジ装置およびそれを用いるシステムにおける単数および複数ループ検出時の制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant