KR20150056159A - SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치 - Google Patents

SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치 Download PDF

Info

Publication number
KR20150056159A
KR20150056159A KR1020130138798A KR20130138798A KR20150056159A KR 20150056159 A KR20150056159 A KR 20150056159A KR 1020130138798 A KR1020130138798 A KR 1020130138798A KR 20130138798 A KR20130138798 A KR 20130138798A KR 20150056159 A KR20150056159 A KR 20150056159A
Authority
KR
South Korea
Prior art keywords
information
switch
flow entry
session
controller
Prior art date
Application number
KR1020130138798A
Other languages
English (en)
Other versions
KR102118687B1 (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 KR1020130138798A priority Critical patent/KR102118687B1/ko
Priority to PCT/KR2014/010741 priority patent/WO2015072709A1/ko
Priority to US15/037,046 priority patent/US10205681B2/en
Publication of KR20150056159A publication Critical patent/KR20150056159A/ko
Application granted granted Critical
Publication of KR102118687B1 publication Critical patent/KR102118687B1/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/555Error detection
    • 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/0654Management of faults, events, alarms or notifications using network fault recovery
    • 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/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV

Landscapes

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

Abstract

본 발명의 실시예들은 SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치를 제공한다. 본 발명의 일 실시예에 따르면, SDN에서 네트워크 장애 해소를 위한 컨트롤러의 동작방법은, 적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리정보 및 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하고, 상기 생성된 플로우 엔트리정보 및 상기 BFD 기능을 위한 설정을 지시하는 세션 설정신호를 상기 스위치로 전송하는 과정; 및 상기 스위치로부터 전송된 상기 BFD 기능에 의한 세션 상태에 따라, 상기 생성된 플로우 엔트리정보를 업데이트하는 과정을 포함한다.

Description

SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치{A method operating of a controller and a switch to resolve network error, and the controller and the switch therefor}
본 발명은 SDN(Software-defined networking)에서의 데이터의 전송 경로를 설정하는 기술에 관한 것으로, 특히, SDN에서 네트워크 장애가 발생하였을 경우, 최대한 빠른 시간 내에 네트워크 장애를 감지하여 intelligent protection을 제공하기 위한 기술에 관한 것이다.
SDN은 분산 또는 클라우드 시스템에서 네트워크의 개념을 추상화하여 데이터를 전달간 제어 및 관리를 통해 QoS(Quality of Service)를 제공하는 소프트웨어 기술이다. SDN 기술은 컨트롤러를 스위치와 물리적으로 decouple을 통하여 network-centric한 관리 기술을 제공함으로써 네트워크 비용 및 복잡성을 근본적으로 해결하기 위한 기술이다.
SDN은 기존의 라우터나 스위치 등 하드웨어에 의존하는 네트워크 체계에서 속도, 안정성, 에너지 효율, 보안 등을 소프트웨어적으로 개선하기 위해 개발된 기술로 Open Flow라는 개념을 바탕으로 한다. Open Flow는 네트워크 장비의 패킷 포워딩 기능과 컨트롤러 기능을 표준 인터페이스로 분리하여 네트워크의 개방성을 제공하는 기술로 컨트롤러(controller)와 스위치들(switches) 사이의 패킷 데이터 프로토콜을 정의한다.
SDN에서는 스위치의 각 플로우 엔트리 정보(flow entry information)에 따라서 전송 경로를 결정한다. 이때, 네트워크의 장애 발생시 컨트롤러는 스위치로부터 전달된 이벤트 메시지를 전달받게 되면 해당 메시지 정보를 반영하여, 컨트롤러의 라우팅(routing) 정책 및 알고리즘에 따라서 패킷 포워딩(packet forwarding)을 위한 새로운 플로우 엔트리정보를 생성하여 하위 스위치들에게 해당 플로우 엔트리정보들을 제공한다.
그런데, 기존의 SDN에서는 네트워크 장애가 발생하게 되면, 해당 스위치들은 컨트롤러와 빈번하게 이벤트 메시지를 주고 받게 된다. 실제 스위치들과 컨트롤러 사이의 거리는 물리적으로 멀리 떨어져 있기 때문에 메시지 교환 시에 상당히 큰 전달 지연(propagation delay)가 발생한다. 또한, 플로우 엔트리정보 생성을 위해, 컨트롤러에서는 내부 알고리즘 계산을 위한 프로세싱 지연(processing delay)도 발생하게 되는데 이런 요소들은 빠른 패킷 포워딩(packet forwarding) 시 상당한 오버 헤드(overhead) 요인이 될 수 있다.
이로 인해, SDN에서는 다음과 같은 문제점들이 자주 발생한다.
첫 번째로, 컨트롤러에서 관리해야 할 스위치들의 개수가 많아지고 컨트롤러의 coverage가 넓어짐에 따라서 컨트롤러와 스위치 간의 물리적 거리는 점점 더 멀어지게 되며, 그 결과 스위치에서는 이벤트 발생 시에 컨트롤러에 메시지를 전달할 때 propagation delay가 점점 더 커지게 된다.
두 번째로, 컨트롤러는 내부 라우팅(routing) 알고리즘에 따라 shortest path forwarding을 수행한다. 하지만 STP(Spanning Tree Protocol)에 의한 topology 변화, Link timeout으로 인한 topology 변화, Flow expiration notification, 그 외 스위치에서 발생하는 다양한 이벤트로 인해, 컨트롤러에 오버헤드(overhead)가 생기며 그에 따라서 네트워크 장애 발생 시 fail-over time이 길어지는 결과를 초래할 수 있다. 즉, SDN은 스위치에서 루프가 발생하는 것을 방지하기 위해 이중화로 구성된 라인을 논리적인 한 부분의 포트를 막으며, 해당 포트에 문제 발생 시 막은 포트를 다시 열면서 topology 변화를 상위 컨트롤러에 전달한다. 또한, topology table에 있는 link가 몇 초(예를 들어, 3초) 이상 발견되지 않은 경우, link timeout로 인한 topology table에 변화를 컨트롤러에 전달한다. 특정 플로우에 대해 일정 시간 동안 패킷이 수신되지 않아서 해당 플로우에 대해 종료하게 되면, ‘Flow Removal’메시지를 컨트롤러에 전달한다. 그리고 그 외 스위치에서 발생하는 다양한 이벤트를 컨트롤러에 전달하게 된다. 컨트롤러는 이와 같은 여러 가지 이벤트를 빈번하게 받아서 라우팅(routing) 정보를 재계산하며, 그 결과에 따라 해당되는 flow table을 수시로 하위 스위치에 업데이트(삭제 및 생성)함으로써 장애에 대한 복구 동작을 제공한다. 이것은 궁극적으로 컨트롤러 자체의 프로세싱 지연(processing delay)를 발생시킴으로써 네트워크 처리 비용을 증가시키게 된다.
따라서 본 발명이 해결하고자 하는 과제는 Software-defined networking에서 발생하는 네트워크 장애에 대해, IETF에서 표준화한 BFD(Bidirectional Forwarding Detection) 프로토콜을 이용하여 신속하게 장애를 감지할 수 있도록 하며, 컨트롤러에 집중되는 오버헤드(overhead)를 각 스위치에 분산시킬 수 있는 환경을 제공하는 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치에 관한 것이다.
즉, 기존 SDN기술에서 컨트롤러가 수행하던 복잡한 라우팅(routing) 계산 및 내부 processing overhead time을 줄임으로써, 장애에 대한 repairing time을 개선하는 기능을 제공하는 것이다. 또한, 간결하고 단순한 BFD Protocol을 활용하여 장애 발생 시 컨트롤러를 통한 플로우(flow) 변경이 아닌 스위치 자체적으로도 해당 flow table을 즉각적으로 업데이트할 수 있도록 함으로써, propagation delay time을 효과적으로 개선할 수 있는 서비스 복구 환경을 제공하는 것이다.
본 발명의 일 실시예에 따르면, SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러의 동작방법은, 적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리(flow entry)정보 및 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하고, 상기 생성된 플로우 엔트리정보 및 상기 BFD 기능을 위한 설정을 지시하는 세션 설정신호를 상기 스위치로 전송하는 과정; 및 상기 스위치로부터 전송된 상기 BFD 기능에 의한 세션 상태에 따라, 상기 생성된 플로우 엔트리정보를 업데이트하는 과정을 포함한다.
본 발명의 또 다른 실시예에 따르면, SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 스위치의 동작방법은, 상기 SDN 상의 데이터 경로설정을 제어하는 컨트롤러로부터 프로토콜 정보를 요청받으면, 상기 프로토콜 정보에 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 부가하여 상기 컨트롤러로 전송하는 과정; 및 상기 컨트롤러로부터 상기 데이터의 전송 경로에 관한 플로우 엔트리정보 및 상기 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 상기 세션 설정신호에 의한 세션 설정에 따라 다른 스위치들과의 사이에서 네트워크 상태를 모니터링하는 과정을 포함한다.
본 발명의 또 다른 실시예에 따르면, SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러는, 적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리(flow entry)정보를 생성하는 플로우 정보 생성부; 상기 BFD수행능력정보에 따라, 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하는 세션 매핑정보 생성부; 생성된 상기 플로우 엔트리정보 및 상기 세션 매핑정보를 저장하는 컨트롤러 메모리부; 상기 BFD 기능의 설정을 위한 세션 설정신호를 상기 스위치로 전송하도록 제어하는 제어부; 및 상기 플로우 엔트리정보 및 상기 세션 설정신호를 상기 스위치로 전송하는 컨트롤러 인터페이스부를 포함하고, 상기 제어부는 상기 스위치로부터 전송된 상기 BFD 기능에 의한 세션 상태에 따라, 상기 플로우 엔트리정보를 업데이트하도록 상기 플로우 정보 생성부를 제어하는 것을 특징으로 한다.
본 발명의 또 다른 실시예에 따르면, SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 스위치는, BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보가 부가된 프로토콜 정보를 관리하는 프로토콜 정보 관리부; 상기 SDN 상의 데이터 경로설정을 제어하는 컨트롤러로부터 상기 데이터의 전송 경로에 관한 플로우 엔트리정보를 수신하면, 수신된 상기 플로우 엔트리정보를 관리하는 플로우 정보 관리부; 상기 컨트롤러로부터 상기 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 상기 세션 설정신호를 수신한 다른 스위칭 단말들과의 사이에서 세션을 설정하는 세션 설정부; 세션 설정에 따라, 상기 다른 스위칭 단말들과의 네트워크 상태를 모니터링하는 모니터링부; 상기 컨트롤러로부터 프로토콜 정보를 요청받으면 상기 프로토콜 정보를 상기 컨트롤러로 전송하고, 상기 컨트롤러로부터 상기 플로우 엔트리정보 및 상기 세션 설정신호를 수신하는 스위치 인터페이스부; 및 상기 프로토콜 정보, 상기 플로우 엔트리정보 및 상기 세션 설정신호에 따른 세션 설정정보를 저장하는 스위치 메모리부를 포함한다.
본 발명에 따르면, SDN(Software-defined networking)의 복잡한 환경에서도 독립적으로 장애를 감지할 수 있는 환경을 제공할 수 있다.
또한, Open flow 표준 protocol의 개선을 통해서 기존에 컨트롤러에 집중된 이벤트를 줄이고 컨트롤러 자체의 알고리즘 계산 복잡도를 줄일 수 있다.
또한, 종래 legacy에 존재하는 BFD protocol을 그대로 이용함으로써 기존에 존재하는 자원을 새로운 자원의 투입 없이 활용 가능하다.
또한, 스위치의 topology 환경에 따라서 그에 적합한 알고리즘을 적용함으로써 상황 별 최적화된 서비스를 제공함으로 인해, 사용자에게 편리한 네트워크 환경을 제공한다.
지속적인 기능 및 서비스에 대한 요구의 증대에 따라서 컨트롤러의 기능 및 복잡도가 증가하는 것을 대비해 컨트롤러의 부하를 줄여 줌으로써 컨트롤러가 보다 정교하게 동작할 수 있는 환경을 제공한다.
본 발명 및 그의 효과에 대한 보다 완벽한 이해를 위해, 첨부되는 도면들을 참조하여 하기의 설명들이 이루어질 것이고, 여기서 동일한 참조 부호들은 동일한 부분들을 나타낸다.
도 1은 SDN(Software-defined networking)로 구성되는 네트워크에 적용되는 BFD 기능을 설명하기 위한 일 실시예의 참조도이다.
도 1은 SDN으로 구성되는 네트워크에 적용하기 위한 BFD 기능을 설명하기 위한 일 실시예의 참조도이다.
도 2는 본 발명에서 BFD 기능이 적용된SDN에서의 장애 감지 및 복구를 위한 전체적인 흐름을 나타낸 참조도이다.
도 3은 도 2에 도시된 각 과정에 대해 컨트롤러와 스위치 사이에서 수행하는 동작을 설명하기 위한 참조도이다.
도 4는 장애 발생 시 컨트롤러의 processing time을 줄이기 위한 알고리즘을 설명하기 위한 플로차트이다.
도 5는 본 발명에 따른 컨트롤러의 내부 동작 방식을 설명하기 위한 플로차트이다.
도 6은 본 발명에 따른 스위치의 내부 동작 방식을 설명하기 위한 플로차트이다.
도 7은 BFD 기능이 적용된SDN에서의 장애 해소를 위한 컨트롤러와 스위치 사이의 동작 절차를 설명하는 참조도이다.
도 8은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 컨트롤러의 동작 방법을 설명하는 일 실시예의 플로차트이다.
도 9는 도 8에 도시된 플로우 엔트리정보 및 세션 매핑정보를 생성하는 과정에 대해 설명하기 위한 일 실시예의 플로차트이다.
도 10은 컨트롤러에서 스위치로 전송하는 프로토콜 정보의 요청을 위한 리퀘스트 신호의 일 예를 나타내는 패킷 구조이다.
도 11은 스위치에서 컨트롤러로 전송하는 프로토콜 정보의 일 예를 나타내는 패킷 구조이다.
도 12는 컨트롤러에서 생성하는 플로우 엔트리정보의 일 예를 나타내는 테이블 정보이다.
도 13은 컨트롤러에서 생성하는 세션 설정정보의 일 예를 나타내는 테이블 정보이다.
도 14는 컨트롤러에서 생성하는 세션 매핑정보의 일 예를 나타내는 테이블 정보이다.
도 15는 컨트롤러가 스위치로 전송하는 세션 설정신호의 일 예를 나타내는 패킷 구조이다.
도 16은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 스위치의 동작 방법을 설명하는 일 실시예의 플로차트이다.
도 17은 도 16에 도시된 네트워크 상태를 모니터링하는 과정에 대해 설명하기 위한 일 실시예의 플로차트이다.
도 18은 스위치가 컨트롤러로 전송하는 세션 상태신호의 일 예를 나타내는 패킷 구조이다.
도 19는 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 컨트롤러를 설명하는 일 실시예의 블록도이다.
도 20은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 스위치를 설명하는 일 실시예의 블록도이다.
본 특허 명세서에서 본 발명의 원리들을 설명하기 위해 사용되는 도 1 내지 도 20은 단지 예시를 위한 것인 바, 발명의 범위를 제한하는 어떠한 것으로도 해석되서는 안된다. 당해 분야에서 통상의 지식을 가진 자는 본 발명의 원리들이 적절하게 배치된 임의의 무선 통신시스템에서도 구현될 수 있음을 이해할 것이다.
본 발명은 Software-defined networking 구조에 기존 legacy 시스템에서 활발히 적용되고 있는 BFD(Bidirectional Forwarding Detection) protocol 자원을 최대한 활용하여 기존의 동작하는 routing 알고리즘을 개선함으로써 빠르게 장애를 감지하고 지능적으로 장애를 복구하는 기능으로 구성되어 있다. 따라서, 본 발명에서는 SDN으로 구성되어 있는 네트워크에서 각 스위치는 서로간에 BFD Protocol을 활용하여 빠르게 장애를 감지하며, 또한, 컨트롤러와 스위치 간에 protocol message를 확장하여 장애에 대한 복구 시간을 최대한 짧게 할 수 있는 동작 및 알고리즘을 제공한다.
도 1은 SDN으로 구성되는 네트워크에 적용하기 위한 BFD 기능을 설명하기 위한 일 실시예의 참조도이다. BFD프로토콜은 양방향 전송 감지에 관한 것으로, 두개의 전송 엔진(라우터) 간 양방향 경로에서 오류를 감지하는데 사용되는 프로토콜이다. BFD는 링크가 다운되자 마자 이웃 오류 감지 기능을 제공한다. BFD는 프로토콜 계층에서 활발한 감지 기능에 사용될 수 있는 단일 메커니즘을 제공한다. 양방향에서 오류 검색 BFD는 데이터 플레인 넥스트 홉(data plane next hop)으로 커뮤니케이션 오류를 감지한다. BFD를 지원하는 프로토콜로는 OSPF(Open Shortest Path First), IS-IS(Intermediate System-to-Intermediate System), EIGRP(Enhanced Interior Gateway Routing Protocol), BGP(Border Gateway Protocol)가 있다. BFD가 시작되면, 클라이언트 프로토콜은 BFD 측에 요청해 클라이언트 이웃에게 인접성(adjacencies)을 만들어준다. BFD 프로세스는 이웃을 위해 인접 구조를 만들고, 세션 구성을 시도한다. 세션이 만들어져서 상태 변화가 ‘Up'으로 되면, 설정된 전송 수신 인터벌 값이 사용된다. BFD 컨트롤 패킷을 시기 적절하게 전송하기 위해서, BFD 컨트롤 패킷 전송과 링크다운 감지 기능이 모조 선제(pseudo-preemptive) BFD 프로세스에 의해 실행된다. BFD 패킷은 직접 연결된 두 곳의 이웃 간에 일대일 전송(unicast)을 한다.
도 1에 도시된 바와 같이, 라우터 B와 라우터 D 의 해당 구간 사이에 BFD 기능을 위한 BFD 세션(Session)을 생성한다. 세션이 생성되면, 라우터 B와 라우터 D 는 서로에게 고속으로 패킷을 교환하면서, 해당 세션에서의 네트워크 장애 여부를 판단한다. 그 후, 해당 세션에서 네트워크 장애가 발생하면(101), Session UP 상태에서 Session Down 상태로 변화되며(102), 그 후 해당 세션을 통해 더 이상 네트워크를 형성할 수 없다는 세션 상태정보를 클라이언트 측에 전달한다(103). 그 후, 라우터 B와 라우터 D 의 이웃 관계는 종료되고(104), 새로운 전송 경로를 검색하여, 라우터 C를 통한 전송 경로가 새로이 생성된다(105).
도 2는 본 발명에서 BFD 기능이 적용된SDN에서의 장애 감지 및 복구를 위한 전체적인 흐름을 나타낸 참조도이고, 도 3은 도 2에 도시된 각 과정에 대해 컨트롤러와 스위치 사이에서 수행하는 동작을 설명하기 위한 참조도이다.
도 2 및 도 3의 내용을 참조하면, 전체적인 동작 절차는 다음과 같다.
컨트롤러는 각 스위치에 feature request를 요청하고, 각 스위치는 feature request에 응답하여 reply message를 컨트롤러에 전송함으로써, 컨트롤러가 각 스위치의 BFD 기능에 대한 capability를 확인한다(201).
그 후, 컨트롤러는 각 스위치들에 대한 각각의 flow entry를 생성 및 제공한다(202).
그 후, 컨트롤러는 각 스위치들에 BFD 기능 동작을 위한 설정 message를 전송하며(203), 각 스위치들은 우선하는 flow entry에 따라 스위치에 수신된 패킷을 전송하며(204), 한편으로, 컨트롤러로부터 전송된 BFD 설정 message에 따라, BFD Protocol에 의한 session을 생성하고 네트워크 장애 여부에 대한 fault detection을 수행한다(205). 즉, 각 스위치들은 각 이웃하는 스위치들과의 세션을 형성(Session Establishment)하고, 네트워크 장애 감지를 위한 BFD 패킷의 교환 시간을 확인(Timer Negotiation)하고, 이 후 네트워크 장애를 감지(Fault Detection)한다.
만일, OpenFlow 스위치 2과 OpenFlow 스위치 3 사이에서 Session 장애가 발생(Traffic Loss)하게 되면, OpenFlow 스위치 2및/또는 OpenFlow 스위치 3은 컨트롤러에게 session status message를 전달한다(206).
그 후, 컨트롤러는 해당 session status message에 있는 정보를 이용하여 flow entry를 재검색하여, flow entry를 업데이트 하고(207), 업데이트된 flow entry를 각 switch에 전달한다(208).
그 후, 업데이트된 flow entry를 수신한 스위치는 자신이 기 저장하고 있던 flow entry를 컨트롤러로부터 전송된 업데이트된 flow entry로 변경한다(209).
그 후, 업데이트된 flow entry에 따라, 수신된 패킷을 목적지로 전송한다(210).
도 4는 컨트롤러에서의 flow entry 생성 및 BFD session설정을 위한 알고리즘을 설명하기 위한 플로차트이다.
컨트롤러는 패킷(packet) 수신을 하면(301), 해당 모든 Child 스위치들에 대해서 목적지(destination)에 대한 flow entry를 생성한다(302).
컨트롤러는 BFD 동작을 지원하는 모든 스위치들에 해당되는 모든 BFD session을 생성한다(303). 단, 해당 session id는 각각의 match되는 switch에 대한 flow id 정보를 가지고 있어야 한다.
그 후, 컨트롤러는 flow entry에 따른 스위치가 Parent 스위치에 해당하는 경우에, Parent 스위치의 flow ID와 세션 설정에 따른 Session ID를 매핑한다(304).
도 5는 본 발명에 따른 컨트롤러의 내부 동작 방식을 설명하기 위한 플로차트이다.
컨트롤러는 스위치로부터 이벤트에 해당하는session status message를 수신한다(401).
그 후, Session status message를 수신한 컨트롤러는 Topology Change 여부, 즉, 네트워크 장애가 발생하였는지 여부를 판단한다.
만일, Topology 변화가 발생하였다면, 컨트롤러는 intelligent protection enable 동작을 수행할 것인지 여부에 대해 판단한다(403). intelligent protection enable 동작은 본 발명에 따른 Parent 스위치의 flow ID와 세션 설정에 따른 Session ID의 매핑된 정보를 사용하여, 업데이트할 flow entry에 대응하는 Parent 스위치를 검색하고, 업데이트된 flow entry를 전송하는 과정을 수행하는 것을 의미한다.
만일, intelligent protection enable 동작이 요청되는 것이라면, Parent 스위치의 flow ID와 세션 설정에 따른 Session ID의 매핑된 정보를 사용하여, Parent 스위치를 검색한다(404).
그 후, 컨트롤러는 기 설정되어 있는 flow entry를 업데이트하고, 업데이트된 flow entry를 스위치로 전송한다(407).
그러나, intelligent protection enable 동작이 요청되지 않는다면, 컨트롤러는 일반적인 경로 검색을 위해Dijkstra Calculation을 수행한다(407). Dijkstra 알고리즘은 가중치가 있는 그래프의 최단 경로를 구하는 알고리즘이다. Dijkstra 알고리즘은 출발 정점에서 시작하여 현재의 정점까지의 값과 인접한 정점의 가중치 합이 가장 작은 정점을 다음 정점으로 선택하고 그 경로를 최단 경로에 포함시키며, 이 과정을 모든 정점이 선택될 때까지 반복한다. 컨트롤러는Dijkstra Calculation을 수행한 후에, 407 단계로 진행한다.
한편, 컨트롤러는 스위치로부터 flow entry request를 수신하면(405), 각 스위치들로 패킷을 전송하여(406), 경로 검색을 위한 407 단계로 진행한다.
도 6은 본 발명에 따른 스위치의 내부 동작 방식을 설명하기 위한 플로차트이다.
스위치는 패킷을 수신하면(501), 패킷에 대응하는 목적지에 대한 flow entry정보가 검색되는지 여부를 판단한다(502).
만일, 해당 목적지에 대한 flow entry정보가 검색된다면, flow entry정보 중에서 우선 순위에 해당하는 flow entry가 존재하는지 판단한다(503).
우선 순위에 해당하는 flow entry가 존재한다면, 해당 우선 순위에 해당하는 flow entry 정보를 요청 및 조회하여(504, 505), 해당 패킷을 검색된 flow entry 정보에 따라 포워딩한다(506).
그러나, 502 단계에서, 해당 목적지에 대한 flow entry정보가 검색되지 않는다면 컨트롤러에게 flow entry정보를 요청한다(507).
한편, 스위치는 link timeout 또는 session timeout 이벤트 발생 시(508), 스위치 자신이 Parent 스위치인지 여부를 확인한다(509).
스위치 type이 Parent 스위치인 경우에는, 자체적으로 flow entry 를 업데이트 할 것인지를 판단한다(510).
빠른 장애 복구를 원한다면, 스위치 자체적으로 flow entry 를 업데이트한 후에(511, 512, 513), Parent 스위치인지 판단한 후(514, 515), 변경된 flow entry 를 컨트롤러에 전송한다(516).
한편, 509 단계에서, 스위치 type이 Child 스위치인 경우에, 컨트롤러에게 link failure 즉, 네트워크 장애를 의미하는 session status 정보를 전송한다(517). 이에 따라, 컨트롤러는 복잡한 알고리즘 동작을 수행하지 않고, 자체적으로 flow entry를 바로 업데이트할 수 있다.
도 7은 BFD 기능이 적용된Software Defined Networking에서의 장애 해소를 위한 컨트롤러와 스위치 사이의 동작 절차를 설명하는 참조도이다.
첫번째 과정은, 컨트롤러에서 스위치의 Capabilities를 체크하는 과정으로, 컨트롤러가 OpenFlow Protocol에 따른 스위치의 Feature Request를 스위치로 요청하면, 스위치는 자신이 BFD 기능을 수행할 수 있음을 의미하는 BFD Func. Capability정보를 갖는 Feature Reply를 컨트롤러로 전송한다. 그러면, 컨트로러는 스위치의 BFD Func. Capability정보를 저장한다.
두번째 과정은, 컨트롤러에서 Flow entry table을 생성하는 과정으로, Flow Entry를 생성하고, 생성된 Flow Entry를 스위치로 전송하면, 스위치는 전송된 Flow Entry에 따라 모든 전송 경로에 대한 Flow Entry를 추가한다.
세번째 과정은, 컨트롤러에서 세션을 설정하는 과정으로, 컨트롤러가BFD 기능에 관한 세션 정보를 형성한 후에, 세션 설정을 위한 신호를 스위치로 전송하면, 스위치는 자신과 이웃하는 다른 스위치들 사이에서 세션을 설정한다.
네번째 과정은, 스위치 중 자식 스위치 사이에서 네트워크 장애가 발생한 경우에 이를 해소하기 위한 과정으로, 자식 스위치가 세션 상태의 변화(Up에서 Down으로 변화)를 감지하였다면 네트워크 장애로 판단하고, 이에 대한 세션 상태신호를 컨트롤러로 전송한다. 세션 상태신호를 수신한 컨트롤러는 이전에 생성하여 저장하고 있던 Flow Entry 정보에서 데이터 전송에 대한 우선 순위에 해당하는 Priority를 변경함으로써, Flow Entry 정보를 업데이트한다. 그 후, 컨트롤러가 업데이트된 Flow Entry 정보를 스위치로 전송하면, 스위치는 컨트롤러에서 전송된 업데이트 Flow Entry 정보에 따라 이전에 가지고 있던 Flow Entry 정보를 변경한다.
도 8은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 컨트롤러의 동작 방법을 설명하는 일 실시예의 플로차트이다.
복수의 스위치들 중 적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리(flow entry)정보 및 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하고, 상기 생성된 플로우 엔트리정보 및 상기 BFD 기능을 위한 설정을 지시하는 세션 설정신호를 상기 스위치로 전송한다(S600 단계).
상기 플로우 엔트리정보 및 상기 세션 설정정보를 생성하는 과정은 도 8에 도시된 바와 같다.
도 9는 도 8에 도시된 플로우 엔트리정보 및 세션 매핑정보를 생성하는 과정에 대해 설명하기 위한 일 실시예의 플로차트이다.
먼저, 컨트롤러는 스위치로 프로토콜 정보를 요청한다(S700 단계). 도 10은 컨트롤러에서 스위치로 전송하는 프로토콜 정보의 요청을 위한 리퀘스트 신호의 일 예를 나타내는 패킷 구조이다. 도 10에 도시된 리퀘스트 신호는 기존의 일반적인 OpenFlow Protocol 에 의한 신호와 동일하다.
S700 단계 후에, 컨트롤러는 스위치로부터 수신한 프로토콜 정보에 포함된 BFD 수행능력정보를 확인한다(S702 단계). 여기서 프로토콜 정보는 SDN(Software-defined networking)에서 컨트롤러와 스위치 사이의 통신을 위한 OpenFlow Protocol에 의해 정의된 정보이다.
도 11은 스위치에서 컨트롤러로 전송하는 프로토콜 정보의 일 예를 나타내는 패킷 구조이다. 도 11 도시된 내용에서, 패킷이 포함하고 있는 정보는OpenFlow Protocol에 의해 정의된 정보와 동일하며, 다만 본원발명의 특징이 되는 부분은 스위치의 Capability와 관련한 정보 중에서, 해당 스위치가 BFD(Bidirectional Forwarding Detection) 기능에 관한 것을 수행할 수 있음을 의미하는 BFD 수행능력정보(예를 들어, 식별번호 720으로 표시되는 "OFPC_BFD_SINGLE = 1<<9/*BFD single-hop func*/"를 더 포함하고 있는 것이다. 컨트롤러는 프로토콜 정보 중에 포함된 BFD 수행능력정보를 확인함으로써, 해당 스위치가 BFD 기능을 수행할 수 있음을 알 수 있다.
S702 단계 후에, 컨트롤러는 스위치로 수신되는 데이터의 전송 경로에 해당하는 플로우 엔트리정보를 생성한다(S704 단계). 여기서, 플로우 엔트리정보는 스위치의 식별정보, 스위치에 수신되는 데이터에 대한 목적지 주소정보, 스위치의 포트정보 및 포트정보가 적어도 2개 이상에 해당하는 경우에 상기 데이터 전송을 위한 우선 순위를 나타내는 포트에 대한 우선순위정보를 포함하고 있다.
도 12는 컨트롤러에서 생성하는 플로우 엔트리정보의 일 예를 나타내는 테이블 정보이다. 도 12에 도시된 바와 같이, 플로우 헤더정보로서, 목적지에 대한 IP주소(예를 들어, Dst ip:Host X), 스위치의 포트정보(예를 들어, Output to Port 1 또는 Output to Port 2), 데이터 전송을 위한 우선 순위를 나타내는 포트에 대한 우선순위정보(예를 들어, Priority : 1 또는 2)를 포함하고 있다. 또한, 플로우 엔트리 정보는 Link timeout에 해당하는 값(예를 들어, 1 second)도 가지고 있으며, 이러한 플로우 엔트리 정보에 대응하는 스위치의 식별정보(미도시)도 포함하고 있다.
S704 단계 후에, 컨트롤러는 BFD수행능력정보에 따라 세션 설정정보를 생성한다(S706 단계). 세션 설정정보는 스위치 사이에 형성되는 세션에 대한 속성과 관련한 정보이다.
도 13은 컨트롤러에서 생성하는 세션 설정정보의 일 예를 나타내는 테이블 정보로서, 스위치에 설정되는 세션 식별정보(예를 들어, Session ID: 1 또는 2), 스위치의 포트정보에 할당된 로컬(Local) IP정보(예를 들어, Local IP: A.A.A.A 또는 C.C.C.C), 및 스위치와 연결된 다른 스위치의 피어(Peer) IP정보(예를 들어, Peer IP: A.A.A.B 또는 C.C.C.D)를 포함한다.
S706 단계 후에, 컨트롤러는 생성된 플로우 엔트리정보와 세션 설정정보를 이용하여 세션 매핑정보를 생성한다(S708 단계). 세션 매핑정보는 플로우 엔트리에 따른 스위치와 세션 설정에 따른 스위치 간의 매핑된 정보를 의미한다. 이때, 컨트롤러는 스위치가 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 부모 스위치의 식별정보와 세션 설정정보에 따른 세션 식별정보를 매핑한다.
도 14는 컨트롤러에서 생성하는 세션 매핑정보의 일 예를 나타내는 테이블 정보로서, 전술한 세션 설정정보 이외에, 세션 식별정보와 매핑되는 스위치의 식별정보를 포함한다. 즉, 스위치에 설정되는 세션 식별정보(예를 들어, Session ID: 1 또는 2), 스위치의 포트정보에 할당된 로컬(Local) IP정보(예를 들어, Local IP: A.A.A.A 또는 C.C.C.C), 및 스위치와 연결된 다른 스위치의 피어(Peer) IP정보(예를 들어, Peer IP: A.A.A.B 또는 C.C.C.D) 이외에, 부모 스위치의 식별정보와 세션 설정정보에 따른 세션 식별정보가 매핑된 정보(예를 들어, Parent Flow ID: Switch-1)를 포함한다.
컨트롤러는 생성된 플로우 엔트리정보와 함께 세션 설정신호를 스위치로 전송한다. 여기서, 세션 설정신호는 BFD 기능을 위한 설정을 스위치에게 지시하는 신호를 의미한다.
도 15는 컨트롤러가 스위치로 전송하는 세션 설정신호의 일 예를 나타내는 패킷 구조이다. 도 15에 도시된 바와 같이, Session Flag정보는 스위치에게 세션을 설정하도록 할 것인지 여부에 대한 enable 값 또는 disable값에 해당하는 것으로, enable 값이 "1"에 해당하는 경우에 세션 설정하도록 지시하는 명령에 해당한다. 또한, 세션 설정신호는 스위치의 포트 정보 즉, Port ID를 함께 전송함으로써, 해당 스위치의 어느 포트에서 세션을 설정하도록 할 것인지를 지정한다.
이 후에, 플로우 엔트리정보와 함께 세션 설정신호를 수신한 스위치는 세션을 설정하고, 네트워크 장애 여부를 감지한다. 이에 대한 상세한 내용은 후술한다.
S600 단계 후에, 컨트롤러는 스위치로부터 전송된 BFD 기능에 의한 세션 상태에 따라, 이전에 생성된 플로우 엔트리정보를 업데이트한다(S602 단계). 예를 들어, 컨트롤러가 도 12에 해당하는 플로우 엔트리정보를 가지고 있는 상태에서 네트워크 장애라고 판단되는 세션 상태신호를 스위치로부터 수신하면, 컨트롤러는 네트워크 장애를 해소하기 위해, 이전에 생성하여 가지고 있던 플로우 엔트리정보를 업데이트한다. 즉, 이전의 플로우 엔트리정보로서, 데이터 전송을 위한 우선 순위를 나타내는 Port 1에 대한 우선 순위 Priority: 1을 Priority: 2로 변경하고, Port 2에 대한 우선 순위 Priority: 2를 Priority: 1로 변경한다.
한편, 컨트롤러는 전술한 바와 같이 스위치로부터 세션 상태정보를 수신할 수도 있지만, 네트워크 장애에 따라 스위치(특히, 부모 스위치)에서 자체적으로 업데이트된 플로우 엔트리정보를 수신할 수도 있다. 이에 따라, 컨트롤러는 업데이트된 플로우 엔트리정보를 스위치(특히, 부모 스위치)로부터 수신하면, 이전에 생성되어 있던 플로우 엔트리정보를 스위치로부터 업데이트된 플로우 엔트리정보에 대응하도록 업데이트한다. 예를 들어, 스위치에서도 도 12 에 해당하는 플로우 엔트리정보를 저장하고 있다는 점에서, 스위치에서 자체적으로 업데이트된 플로우 엔트리정보 즉, Port 1에 대한 우선 순위 Priority: 1가 Priority: 2로 업데이트되고, Port 2에 대한 우선 순위 Priority: 2가 Priority: 1로 업데이트된 플로우 엔트리정보를 컨트롤러로 전송하면, 컨트롤러는 자신이 가지고 있던 이전의 플로우 엔트리정보를 이러한 업데이트 플로우 엔트리정보와 대응하도록 변경한다.
S602 단계 후에, 컨트롤러는 업데이트된 플로우 엔트리정보를 스위치로 전송한다(S604 단계). 특히, 컨트롤러는 스위치가 업데이트된 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 세션 매핑정보를 사용하여 업데이트된 플로우 엔트리정보를 부모 스위치로 전송한다. 업데이트된 플로우 엔트리정보를 수신한 부모 스위치는 기 보관하고 있던 플로우 엔트리정보를 업데이트된 엔트리정보로 변경한다. 이에 따르면, 업데이트된 플로우 엔트리정보를 자식 스위치로 전송할 필요 없이, 직접 부모 스위치로만 전송하더라도, 부모 스위치를 통해 업데이트된 플로우에 따라 데이터를 목적지로 전송할 수 있으므로, 네트워크 장애를 신속하게 해소할 수 있다.
도 16은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 스위치의 동작 방법을 설명하는 일 실시예의 플로차트이다.
SDN 상의 데이터 경로설정을 제어하는 컨트롤러로부터 프로토콜 정보를 요청받으면, 스위치는 프로토콜 정보에 BFD 기능에 관한 BFD 수행능력정보를 부가하여 상기 컨트롤러로 전송한다(S800 단계). 전술한 도 11은 스위치가 컨트롤러로 전송하는 프로토콜 정보를 예시한 것으로, 프로토콜 정보에 BFD 기능에 관한 BFD 수행능력정보(예를 들어,"OFPC_BFD_SINGLE = 1<<9/*BFD single-hop func*/"를 포함하고 있다.
S800 단계 후에, 컨트롤러로부터 데이터의 전송 경로에 관한 플로우 엔트리정보 및 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 스위치는 세션 설정신호에 의한 세션 설정에 따라 다른 스위치들과의 사이에서 네트워크 상태를 모니터링한다(S802 단계).
세션 설정에 따라 다른 스위치들과의 사이에서 네트워크 상태를 모니터링하는 과정은 도 17에 도시된 바와 같다.
도 17은 도 16에 도시된 네트워크 상태를 모니터링하는 과정에 대해 설명하기 위한 일 실시예의 플로차트이다.
먼저, 세션 설정신호에 따라, BFD 기능을 수행하기 위해 상기 다른 스위치들과의 사이에서 세션을 설정한다(S900 단계). 컨트롤러로부터 전송된 세션 설정신호에 따라, 스위치는 이웃하는 스위치들과의 세션을 형성(Session Establishment)하고, 네트워크 장애 감지를 위한 BFD 패킷의 교환 시간을 확인(Timer Negotiation)한다. 세션이 생성되어 상태 변화가 ‘Up'으로 되면, 설정된 교환 시간이 패킷 교환 인터벌 값으로 사용된다.
S900 단계 후에, 세션 설정에 따라, 다른 스위치들 각각의 양단간 네트워크 장애 여부를 판단하기 위한 BFD 패킷을 주기적으로 교환하여 네트워크 상태를 모니터링한다(S902 단계). BFD 패킷을 적절하게 전송하기 위해서, BFD 컨트롤 패킷 전송과 링크다운 감지 기능이 실행된다. 스위치는BFD 패킷을 직접 연결된 두 곳의 이웃 스위치 간에 일대일 전송함으로써, 네트워크 상태를 모니터링한다.
S902 단계 후에, 모니터링을 수행 중에 세션 상태의 변화를 감지하면(S904 단계), SDN에 대한 네트워크 장애라고 판단하여 세션 상태신호를 출력한다(S906단계). 세션 상태가 정상적인 값에 해당하는 ‘Up'으로 설정되어 있다가 'Down'으로 상태가 변화되면, SDN에 대한 네트워크 장애를 의미하는 세션 상태신호를 출력한다.
도 18은 스위치가 컨트롤러로 전송하는 세션 상태신호의 일 예를 나타내는 패킷 구조이다. 도 18에 도시된 바와 같이, 식별번호 910은 세션 상태가 ‘Up'으로 설정되어 있다가 'Down'으로 상태가 변화하였음을 나타내고, 식별번호 920은 세션 상태가 변화한 세션 ID에 대한 정보를 나타낸다.
S802 단계 후에, 모니터링한 결과 SDN에 대한 네트워크 장애라고 판단되면, 스위치는 자신이 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단한다(S804 단계). 스위치는 자신이 가지고 있는 2개 이상의 포트로부터 분기되는 자식 스위치들이 존재하는지 여부를 확인함으로써, 부모 스위치 여부를 판단한다. 자신이 부모 스위치가 아니라면 자식 스위치로 판단한다.
만일, S804 단계에서, 스위치가 부모 스위치에 해당한다면, 해당 부모 스위치는 이전에 수신된 플로우 엔트리정보의 데이터 전송을 위한 우선 순위를 재조정하여 플로우 엔트리정보를 업데이트한다(S806 단계). 예를 들어, 스위치가 이전의 플로우 엔트리정보로서 도 12에 해당하는 플로우 엔트리정보를 가지고 있었다면, 데이터 전송을 위한 우선 순위를 나타내는 Port 1에 대한 우선 순위 Priority: 1을 Priority: 2로 변경하고, Port 2에 대한 우선 순위 Priority: 2를 Priority: 1로 변경한다.
S806 단계 후에, 스위치는 업데이트된 플로우 엔트리정보를 컨트롤러로 전송한다(S808 단계). 예를 들어, 스위치가 Port 1에 대한 우선 순위 Priority: 1를 Priority: 2로 업데이트하고, Port 2에 대한 우선 순위 Priority: 2를 Priority: 1로 업데이트한 플로우 엔트리정보를 컨트롤러로 전송한다. 그 후, 컨트롤러는 스위치로부터 전송된 업데이트된 플로우 엔트리정보에 따라 이전에 생성하였던 플로우 엔트리정보를 업데이트된 플로우 엔트리정보와 대응하도록 변경한다.
한편, S804 단계에서, 스위치가 자식 스위치에 해당한다면, 해당 자식 스위치는 네트워크 장애를 의미하는 세션 상태정보를 컨트롤러로 전송한다(S810 단계).
S810 단계 후에, 컨트롤러로부터 업데이트된 플로우 엔트리정보를 수신하면, 이전에 수신되었던 플로우 엔트리정보를 업데이트된 플로우 엔트리정보에 따라 업데이트한다(S812 단계). 예를 들어, 컨트롤러가 도 12 에 도시된 플로우 엔트리정보에 대해, Port 1에 대한 우선 순위 Priority: 1를 Priority: 2로 업데이트하고, Port 2에 대한 우선 순위 Priority: 2를 Priority: 1로 업데이트한 플로우 엔트리정보를 스위치로 전송하면, 스위치는 자신이 가지고 있던 이전의 플로우 엔트리정보를 컨트롤러로부터 전송된 업데이트 플로우 엔트리정보와 대응하도록 변경한다.
도 19는 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 컨트롤러를 설명하는 일 실시예의 블록도로서, 플로우 정보 생성부(1000), 세션 매핑정보 생성부(1010), 컨트롤러 메모리부(1020), 제어부(1030) 및 컨트롤러 인터페이스부(1040)를 포함한다.
플로우 정보 생성부(1000)는 적어도 하나 이상의 스위치로부터 전송된 BFD 기능에 관한 BFD수행능력정보를 포함하는 프로토콜 정보에 따라, 플로우 엔트리정보를 생성한다. 여기서 BFD수행능력정보는 스위치의 Capability와 관련한 정보 중에서, 해당 스위치가 BFD(Bidirectional Forwarding Detection) 기능에 관한 것을 수행할 수 있음을 의미하는 정보이다.
제어부(1030)가 스위치로 프로토콜 정보의 요청을 위한 리퀘스트 신호를 스위치로 전송하면, 스위치는 리퀘스트 신호에 응답하여 BFD 수행능력정보를 포함하는 프로토콜 정보를 컨트롤러로 전송한다. 그러면, 제어부(1030)는 프로토콜 정보에 포함된 BFD 수행능력정보를 확인하고, 플로우 정보 생성부(1000)에게 플로우 엔트리정보를 생성하도록 지시한다. 이에 따라, 플로우 정보 생성부(1000)는 스위치의 식별정보, 스위치에 수신되는 데이터에 대한 목적지 주소정보, 스위치의 포트정보 및 포트정보가 적어도 2개 이상에 해당하는 경우에 상기 데이터 전송을 위한 우선 순위를 나타내는 포트에 대한 우선순위정보 등을 포함하는 플로우 엔트리정보를 생성한다. 예를 들어, 도 12에 도시된 바와 같이, 컨트롤러의 제어부(1020)는 플로우 헤더정보로서, 목적지에 대한 IP주소(예를 들어, Dst ip:Host X), 스위치의 포트정보(예를 들어, Output to Port 1 또는 Output to Port 2), 데이터 전송을 위한 우선 순위를 나타내는 포트에 대한 우선순위정보(예를 들어, Priority : 1 또는 2), Link timeout에 해당하는 값(예를 들어, 1 second) 및 스위치의 식별정보를 생성한다.
세션 매핑정보 생성부(1010)는 BFD수행능력정보에 따라, BFD 기능을 위해 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성한다. 제어부(1030)가 프로토콜 정보의 수신에 따라, 세션 매핑정보 생성부(1010)에게 세션 매핑정보를 생성하도록 지시하면, 우선, 세션 매핑정보 생성부(1010)는 BFD수행능력정보에 대응하는 세션 설정정보를 생성한다. 도 13에 도시된 바와 같이, 세션 매핑정보 생성부(1010)는 스위치 사이에 형성되는 세션에 대한 속성과 관련한 세션 설정정보를 생성한다.
그 후에, 세션 매핑정보 생성부(1010)는 생성된 플로우 엔트리정보와 세션 설정정보를 이용하여 세션 매핑정보를 생성한다. 세션 매핑정보는 플로우 엔트리에 따른 스위치와 세션 설정에 따른 스위치 간의 매핑된 정보를 의미한다. 이때, 세션 매핑정보 생성부(1010)는 스위치가 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 부모 스위치의 식별정보와 세션 설정정보에 따른 세션 식별정보를 매핑한다.
예를 들어, 도 14에 도시된 바와 같이, 세션 매핑정보 생성부(1010)는 스위치에 설정되는 세션 식별정보(예를 들어, Session ID: 1 또는 2), 스위치의 포트정보에 할당된 로컬(Local) IP정보(예를 들어, Local IP: A.A.A.A 또는 C.C.C.C), 및 스위치와 연결된 다른 스위치의 피어(Peer) IP정보(예를 들어, Peer IP: A.A.A.B 또는 C.C.C.D) 이외에, 부모 스위치의 식별정보와 세션 설정정보에 따른 세션 식별정보가 매핑된 정보(예를 들어, Parent Flow ID: Switch-1)를 생성한다.
컨트롤러 메모리부(1020)는 플로우 정보 생성부(1000)에서 생성된 플로우 엔트리정보 및 세션 매핑정보 생성부(1010)에서 생성된 세션 매핑정보를 각각 별도의 저장공간에 저장한다.
제어부(1030)는 생성된 플로우 엔트리정보 및/또는 BFD 기능의 설정을 위한 세션 설정신호를 스위치로 전송하도록 제어한다. 제어부(1030)는 생성된 플로우 엔트리정보를 스위치로 전송하도록 컨트롤러 인터페이스부(1040)에게 지시한다. 한편, 제어부(1030)는 BFD 기능을 위한 설정을 스위치에게 지시하는 세션 설정신호를 생성하고, 생성된 세션 설정신호를 전송하도록 컨트롤러 인터페이스부(1040)에게 지시한다.
이에 따라, 컨트롤러 인터페이스부(1040)는 플로우 엔트리정보 및/또는 세션 설정신호를 스위치로 전송한다.
이 후에, 플로우 엔트리정보와 함께 세션 설정신호를 수신한 스위치는 세션을 설정하고, 네트워크 장애 여부를 감지한다. 스위치는 세션 상태에 관한 정보를 컨트롤러에게 전송하거나, 스위치에서 자체적으로 업데이트한 플로우 엔트리정보를 컨트롤러로 전송한다.
컨트롤러 인터페이스부(1040)가 스위치로부터 세션 상태에 관한 정보를 수신하면, 제어부(1030)는 BFD 기능에 의한 세션 상태에 따라, 이전에 생성된 플로우 엔트리정보를 업데이트하도록 플로우 정보 생성부(1000)를 제어한다. 즉, 제어부(1030)는 네트워크 장애라고 판단되는 세션 상태신호를 스위치로부터 수신하면, 네트워크 장애를 해소하기 위해, 이전에 생성하여 컨트롤러 메모리(1020)에 저장하고 있던 플로우 엔트리정보를 업데이트하도록 지시한다. 이에 따라, 플로우 정보 생성부(1000)는 스위치의 식별정보, 스위치에 수신되는 데이터에 대한 목적지 주소정보, 스위치의 포트정보 및 포트정보가 적어도 2개 이상에 해당하는 경우에 상기 데이터 전송을 위한 우선 순위를 나타내는 포트에 대한 우선순위정보 등을 포함하는 플로우 엔트리정보를 업데이트한다.
한편, 컨트롤러 인터페이스부(1040)가 네트워크 장애에 따라 스위치(특히, 부모 스위치)에서 자체적으로 업데이트된 플로우 엔트리정보를 수신하면, 제어부(1030)는 이전에 생성되어 있던 플로우 엔트리정보를 스위치로부터 전송된 업데이트 플로우 엔트리정보에 대응하도록 업데이트하도록 제어한다. 이에 따라, 플로우 정보 생성부(1000)는 이전에 생성하여 컨트롤러 메모리(1020)에 저장하고 있던 플로우 엔트리정보를 업데이트한다.
제어부(1030)는 업데이트된 플로우 엔트리정보를 스위치로 전송하도록 컨트롤러 인터페이스부(1040)을 제어한다. 특히, 제어부(1030)는 스위치가 업데이트된 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 세션 매핑정보를 사용하여 업데이트된 플로우 엔트리정보를 부모 스위치로 전송하도록 제어한다. 이에 따라, 컨트롤러 인터페이스부(1040)는 업데이트된 플로우 엔트리정보를 스위치(특히, 부모 스위치)로 전송한다.
업데이트된 플로우 엔트리정보를 수신한 스위치는 기 보관하고 있던 플로우 엔트리정보를 업데이트된 엔트리정보로 변경한다. 이에 따르면, 업데이트된 플로우 엔트리정보를 자식 스위치로 전송할 필요 없이, 직접 부모 스위치로만 전송하더라도, 부모 스위치를 통해 업데이트된 플로우에 따라 데이터를 목적지로 전송할 수 있으므로, 네트워크 장애를 신속하게 해소할 수 있다.
도 20은 본 발명에 따른 SDN에서 네트워크 장애 해소를 위한 스위치를 설명하는 일 실시예의 블록도로서, 프로토콜 정보 관리부(1100), 플로우 정보 관리부(1110), 세션 설정부(1120), 스위치 메모리부(1130), 모니터링부(1140) 및 스위치 인터페이스부(1150)를 포함한다.
프로토콜 정보 관리부(1100)는 BFD 기능에 관한 BFD 수행능력정보가 부가된 프로토콜 정보를 관리한다. 전술한 도 11은 프로토콜 정보 관리부(1100)가 관리하는 프로토콜 정보를 예시한 것으로, 프로토콜 정보에 BFD 기능에 관한 BFD 수행능력정보를 포함하고 있다.
플로우 정보 관리부(1110)는 컨트롤러로부터 플로우 엔트리정보를 수신하면, 수신된 플로우 엔트리정보를 관리 및 저장하도록 하며, 또한 플로우 엔트리정보의 업데이트를 관리한다.
세션 설정부(1120)는 컨트롤러로부터 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 세션 설정신호를 수신한 다른 스위칭 단말들과의 사이에서 세션을 설정한다. 세션 설정부(1120)는 컨트롤러로부터 전송된 세션 설정신호에 따라, 이웃하는 스위치들과의 세션을 형성(Session Establishment)하고, 네트워크 장애 감지를 위한 BFD 패킷의 교환 시간을 확인(Timer Negotiation)한다. 세션 설정부(1120)는 세션이 생성되어 상태 변화가 ‘Up'으로 되면, 설정된 교환 시간을 패킷 교환 인터벌 값으로 사용한다.
스위치 메모리부(1130)는 프로토콜 정보, 플로우 엔트리정보 및 세션 설정신호에 따른 세션 설정정보를 저장한다.
모니터링부(1140)는 세션 설정에 따라, 다른 스위칭 단말들과의 네트워크 상태를 모니터링한다. 모니터링부(1140)는 다른 스위치들 각각의 양단간 네트워크 장애 여부를 판단하기 위한 BFD 패킷을 주기적으로 교환하여 네트워크 상태를 모니터링한다. 모니터링부(1140)는 BFD 패킷을 직접 연결된 두 곳의 이웃 스위치 간에 일대일 전송함으로써, 네트워크 상태를 모니터링한다.
모니터링부(1140)는 세션 상태가 정상적인 값에 해당하는 ‘Up'으로 설정되어 있다가 'Down'으로 세션 상태가 변화되면, SDN에 대한 네트워크 장애를 의미하는 세션 상태신호를 출력한다.
모니터링부(1140)는 모니터링한 결과 SDN에 대한 네트워크 장애라고 판단되면, 자신의 스위치가 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단한다. 모니터링부(1140)는 자신의 스위치가 가지고 있는 2개 이상의 포트로부터 분기되는 자식 스위치들이 존재하는지 여부를 확인함으로써, 부모 스위치 여부를 판단한다. 모니터링부(1140)는 자신이 부모 스위치가 아니라면 자식 스위치로 판단한다.
자신의 스위치가 부모 스위치라고 판단하면, 모니터링부(1140)는 플로우 엔트리정보의 업데이트를 플로우 정보 관리부(1110)에 지시한다. 이에 따라, 플로우 정보 관리부(1110)는 모니터링부(1140)의 지시에 따라, 스위치 메모리(1130)에 저장된 플로우 엔트리정보의 데이터 전송을 위한 우선 순위를 재조정하여 플로우 엔트리정보를 업데이트한다. 예를 들어, 스위치 메모리(1130)가 도 12에 해당하는 플로우 엔트리정보를 저장하고 있었다면, 플로우 정보 관리부(1110)는 데이터 전송을 위한 우선 순위를 나타내는 Port 1에 대한 우선 순위 Priority: 1을 Priority: 2로 변경하고, Port 2에 대한 우선 순위 Priority: 2를 Priority: 1로 변경한다.
모니터링부(1140)는 플로우 정보 관리부(1110)에서 업데이트된 플로우 엔트리정보에 대해 컨트롤러로 전송하도록 스위치 인터페이스부(1150)를 제어한다. 이에 따라, 스위치 인터페이스부(1150)는 업데이트된 플로우 엔트리정보를 컨트롤러로 전송한다.
한편, 자신의 스위치가 자식 스위치라고 판단하면, 모니터링부(1140)는 네트워크 장애를 의미하는 세션 상태정보를 컨트롤러로 전송하도록 스위치 인터페이스부(1150를 제어한다. 이에 따라, 스위치 인터페이스부(1150)는 세션 상태정보를 컨트롤러로 전송한다.
컨트롤러로부터 업데이트된 플로우 엔트리정보를 스위치 인터페이스부(1150)가 수신하면, 모니터링부(1140)는 플로우 엔트리정보를 업데이트하도록 플로우 정보 관리부(1110)에 지시한다. 플로우 정보 관리부(1110)는 모니터링부(1140)의 지시에 따라, 스위치 메모리(1130)에 저장되어 있던 플로우 엔트리정보를 컨트롤러로부터 전송된 업데이트 플로우 엔트리정보와 대응하도록 변경한다.
스위치 인터페이스부(1150)는 스위치 메모리부(1130)에 저장된 프로토콜 정보에 대해 컨트롤러로부터 리퀘스트신호를 수신받으면, 리퀘스트 신호에 응답하여 프로토콜 정보를 컨트롤러로 전송한다. 또한, 스위치 인터페이스부(1150)는 컨트롤러로부터 전송된 플로우 엔트리정보 및 세션 설정신호를 수신한다. 또한, 전술한 바와 같이, 스위치 인터페이스부(1150)는 플로우 정보 관리부(1110)에서 업데이트된 플로우 엔트리정보를 컨트롤러로 전송하거나, 컨트롤러에서 업데이트된 플로우 엔트리정보를 수신한다. 또한, 스위칭 인터페이스부(1150)는 모니터링부(1140)에서 생성된 센션 상태정보를 컨트롤러로 전송한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 일 예로, 본 발명의 실시예들에서는 경우로 설명하였으나 본 발명의 보호범위는 반드시 이에 한정되지는 않을 것이다.
본 발명은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령이 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판단 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM이나 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 본 발명에서 설명된 기지국 또는 릴레이의 전부 또는 일부가 컴퓨터 프로그램으로 구현된 경우 상기 컴퓨터 프로그램을 저장한 컴퓨터 판독 가능 기록 매체도 본 발명에 포함된다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000: 플로우 정보 생성부
1010: 세션 매핑정보 생성부
1020: 컨트롤러 메모리부
1030: 제어부
1040: 컨트롤러 인터페이스부
1100: 프로토콜 정보 관리부
1110: 플로우 정보 관리부
1120: 세션 설정부
1130: 스위치 메모리부
1140: 모니터링부
1150: 스위치 인터페이스부

Claims (30)

  1. SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러의 동작방법은
    적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리(flow entry)정보 및 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하고, 상기 생성된 플로우 엔트리정보 및 상기 BFD 기능을 위한 설정을 지시하는 세션 설정신호를 상기 스위치로 전송하는 과정; 및
    상기 스위치로부터 전송된 상기 BFD 기능에 의한 세션 상태에 따라, 상기 생성된 플로우 엔트리정보를 업데이트하는 과정을 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 플로우 엔트리정보 및 상기 세션 설정정보를 생성하는 과정은
    상기 스위치로 상기 프로토콜 정보를 요청하는 과정;
    상기 스위치로부터 수신한 상기 프로토콜 정보에 포함된 상기 BFD 수행능력정보를 확인하는 과정;
    상기 스위치로 수신되는 데이터의 전송 경로에 해당하는 상기 플로우 엔트리정보를 생성하는 과정;
    상기 BFD수행능력정보에 따라, 상기 세션 설정정보를 생성하는 과정; 및
    상기 생성된 플로우 엔트리정보와 상기 생성된 세션 설정정보를 이용하여 상기 세션 매핑정보를 생성하는 과정을 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 세션 매핑정보를 생성하는 과정은
    상기 스위치가 상기 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 상기 부모 스위치의 식별정보와 상기 세션 설정정보에 따른 세션 식별정보를 사용해 매핑하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 플로우 엔트리정보는 상기 스위치의 식별정보, 상기 스위치에 수신되는 상기 데이터에 대한 목적지 주소정보, 상기 스위치의 목적지로 가는 포트정보가 적어도 2개 이상에 해당하는 경우에 상기 데이터 전송을 위한 우선 순위를 나타내는 상기 포트정보의 우선순위정보를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 세션 매핑정보는 상기 스위치에 설정되는 세션 식별정보, 상기 스위치의 포트정보에 할당된 로컬(Local) IP정보, 상기 스위치와 연결된 다른 스위치의 피어(Peer) IP정보 및 상기 플로우 엔트리정보에 따른 상기 스위치의 부모 스위치에 해당하는 부모 스위치 식별정보를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서, 상기 플로우 엔트리정보를 업데이트하는 과정은
    상기 SDN에서의 네트워크 장애라고 판단되는 세션 상태신호를 상기 스위치로부터 수신하면, 상기 생성된 플로우 엔트리정보를 업데이트하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 플로우 엔트리정보를 업데이트하는 과정은
    상기SDN에서의 네트워크 장애에 따라 업데이트된 플로우 엔트리정보를 상기 스위치로부터 수신하면, 상기 생성된 플로우 엔트리정보를 상기 업데이트된 플로우 엔트리정보에 대응하도록 업데이트하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 컨트롤러의 동작방법은
    상기 생성된 플로우 엔트리정보를 업데이트한 후에, 상기 업데이트된 플로우 엔트리정보를 상기 스위치로 전송하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서, 상기 업데이트된 플로우 엔트리정보를 상기 스위치로 전송하는 과정은
    상기 스위치가 상기 업데이트된 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 상기 세션 매핑정보를 사용하여 상기 업데이트된 플로우 엔트리정보를 상기 부모 스위치로 전송하는 것을 특징으로 하는 방법.
  10. SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 스위치의 동작방법은
    상기 SDN 상의 데이터 경로설정을 제어하는 컨트롤러로부터 프로토콜 정보를 요청받으면, 상기 프로토콜 정보에 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보를 부가하여 상기 컨트롤러로 전송하는 과정; 및
    상기 컨트롤러로부터 상기 데이터의 전송 경로에 관한 플로우 엔트리정보 및 상기 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 상기 세션 설정신호에 의한 세션 설정에 따라 다른 스위치들과의 사이에서 네트워크 상태를 모니터링하는 과정을 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서, 상기 네트워크 상태를 모니터링하는 과정은
    상기 세션 설정신호에 따라, 상기 BFD 기능을 수행하기 위해 상기 다른 스위치들과의 사이에서 세션을 설정하는 과정; 및
    세션 설정에 따라, 상기 다른 스위치들 각각의 양단간 네트워크 장애 여부를 판단하기 위한 BFD 패킷을 주기적으로 교환하여 네트워크 상태를 모니터링하는 과정; 및
    모니터링을 수행 중에 세션 상태의 변화를 감지하면, 상기 SDN에 대한 네트워크 장애라고 판단하여 세션 상태신호를 출력하는 과정을 포함하는 것을 특징으로 하는 방법.
  12. 제10항에 있어서, 상기 스위치의 동작방법은
    상기 모니터링한 결과 상기 SDN에 대한 네트워크 장애라고 판단되면, 상기 스위치는 자신이 상기 수신된 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단하는 과정; 및
    상기 스위치가 상기 부모 스위치에 해당한다면, 상기 부모 스위치는 상기 컨트롤러로부터 이전 수신된 상기 플로우 엔트리정보의 데이터 전송을 위한 우선 순위를 재조정하여 상기 플로우 엔트리정보를 업데이트하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 상기 스위치의 동작방법은
    상기 업데이트된 플로우 엔트리정보를 상기 컨트롤러로 전송하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  14. 제10항에 있어서, 상기 스위치의 동작방법은
    상기 모니터링한 결과 상기 SDN에 대한 네트워크 장애라고 판단되면, 상기 스위치는 자신이 상기 수신된 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단하는 과정; 및
    상기 스위치가 상기 자식 스위치에 해당한다면, 상기 자식 스위치가 네트워크 장애를 의미하는 세션 상태정보를 상기 컨트롤러로 전송하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서, 상기 스위치의 동작방법은
    상기 컨트롤러로부터 업데이트된 플로우 엔트리정보를 수신하면, 이전에 수신되었던 상기 플로우 엔트리정보를 상기 업데이트된 플로우 엔트리정보에 따라 업데이트하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  16. SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러는
    적어도 하나 이상의 스위치로부터 전송된 BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD수행능력정보를 포함하는 프로토콜 정보에 따라, 스위치들을 경유하는 데이터의 전송 경로에 관한 플로우 엔트리(flow entry)정보를 생성하는 플로우 정보 생성부;
    상기 BFD수행능력정보에 따라, 상기 BFD 기능을 위해 상기 플로우 엔트리정보와 매핑된 세션 매핑정보를 생성하는 세션 매핑정보 생성부;
    생성된 상기 플로우 엔트리정보 및 상기 세션 매핑정보를 저장하는 컨트롤러 메모리부;
    상기 BFD 기능의 설정을 위한 세션 설정신호를 상기 스위치로 전송하도록 제어하는 제어부; 및
    상기 플로우 엔트리정보 및 상기 세션 설정신호를 상기 스위치로 전송하는 컨트롤러 인터페이스부를 포함하고,
    상기 제어부는 상기 스위치로부터 전송된 상기 BFD 기능에 의한 세션 상태에 따라, 상기 플로우 엔트리정보를 업데이트하도록 상기 플로우 정보 생성부를 제어하는 것을 특징으로 하는 컨트롤러.
  17. 제16항에 있어서, 상기 제어부는
    상기 스위치로 상기 프로토콜 정보를 요청하고, 상기 스위치로부터 상기 프로토콜 정보를 수신하면, 상기 프로토콜 정보에 포함된 상기 BFD수행능력정보를 확인하고, 상기 플로우 정보 생성부에게 상기 플로우 엔트리정보를 생성하도록 지시하며, 상기 세션 매핑정보 생성부에게 상기 세션 매핑정보를 생성하도록 지시하는 것을 특징으로 하는 컨트롤러.
  18. 제16항에 있어서, 상기 세션 매핑정보 생성부는
    상기 스위치가 상기 플로우 엔트리정보에 따른 부모 스위치에 해당하는 경우에, 상기 부모 스위치의 식별정보와 상기 세션 설정정보에 따른 세션 식별정보를 사용해 매핑하는 것을 특징으로 하는 컨트롤러.
  19. 제16항에 있어서, 상기 플로우 엔트리정보는
    상기 스위치의 식별정보, 상기 스위치에 수신되는 상기 데이터에 대한 목적지 주소정보, 상기 스위치의 목적지로 가는 포트정보가 적어도 2개 이상에 해당하는 경우에 상기 데이터 전송을 위한 우선 순위를 나타내는 상기 포트정보의 우선순위정보를 포함하는 것을 특징으로 하는 컨트롤러.
  20. 제16항에 있어서, 상기 세션 매핑정보는
    상기 스위치에 설정되는 세션 식별정보, 상기 스위치의 포트정보에 할당된 로컬(Local) IP정보, 상기 스위치와 연결된 다른 스위치의 피어(Peer) IP정보 및 상기 플로우 엔트리정보에 따른 상기 스위치의 부모 스위치에 해당하는 부모 스위치 식별정보를 포함하는 것을 특징으로 하는 컨트롤러.
  21. 제16항에 있어서,
    상기 SDN에서의 네트워크 장애라고 판단되는 세션 상태신호를 상기 스위치로부터 수신하면, 상기 제어부는 상기 플로우 정보 생성부에게 상기 플로우 정보를 업데이트하도록 지시하고,
    상기 플로우 정보 생성부는 상기 제어부의 지시에 따라, 상기 플로우 엔트리정보를 업데이트하는 것을 특징으로 하는 컨트롤러.
  22. 제16항에 있어서,
    상기SDN에서의 네트워크 장애에 따라 업데이트된 플로우 엔트리정보를 상기 스위치로부터 수신하면, 상기 제어부는 상기 플로우 정보 생성부에게 상기 플로우 엔트리정보를 업데이트하도록 지시하고,
    상기 플로우 정보 생성부는 상기 제어부의 지시에 따라, 상기 컨트롤러 메모리부에 저장되어 있는 상기 플로우 엔트리정보를 수신된 상기 업데이트된 플로우 엔트리정보와 대응하도록 업데이트하는 것을 특징으로 하는 컨트롤러.
  23. 제16항에 있어서, 상기 제어부는
    상기 플로우 엔트리정보가 업데이트되면, 상기 업데이트된 플로우 엔트리정보를 상기 스위치로 전송하도록 제어하고,
    상기 컨트롤러 인터페이스부가 상기 업데이트된 플로우 엔트리정보를 상기 스위치로 전송하는 것을 특징으로 하는 컨트롤러.
  24. 제23항에 있어서, 상기 제어부는
    상기 스위치가 상기 업데이트된 플로우 엔트리정보의 부모 스위치에 해당하는 경우에, 상기 세션 매핑정보를 사용하여 상기 업데이트된 플로우 엔트리정보를 상기 부모 스위치로 전송하도록 제어하는 것을 특징으로 하는 컨트롤러.
  25. SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 스위치는
    BFD(Bidirectional Forwarding Detection) 기능에 관한 BFD 수행능력정보가 부가된 프로토콜 정보를 관리하는 프로토콜 정보 관리부;
    상기 SDN 상의 데이터 경로설정을 제어하는 컨트롤러로부터 상기 데이터의 전송 경로에 관한 플로우 엔트리정보를 수신하면, 수신된 상기 플로우 엔트리정보를 관리하는 플로우 정보 관리부;
    상기 컨트롤러로부터 상기 BFD 기능의 설정을 위한 세션 설정신호를 수신하면, 상기 세션 설정신호를 수신한 다른 스위치 단말들과의 사이에서 세션을 설정하는 세션 설정부;
    세션 설정에 따라, 상기 다른 스위치 단말들과의 네트워크 상태를 모니터링하는 모니터링부;
    상기 컨트롤러로부터 프로토콜 정보를 요청받으면 상기 프로토콜 정보를 상기 컨트롤러로 전송하고, 상기 컨트롤러로부터 상기 플로우 엔트리정보 및 상기 세션 설정신호를 수신하는 스위치 인터페이스부; 및
    상기 프로토콜 정보, 상기 플로우 엔트리정보 및 상기 세션 설정신호에 따른 세션 설정정보를 저장하는 스위치 메모리부를 포함하는 것을 특징으로 하는 스위치.
  26. 제25항에 있어서, 상기 모니터링부는
    상기 다른 스위치들 각각의 양단간 네트워크 장애 여부를 판단하기 위한 BFD 패킷을 주기적으로 교환하여 네트워크 상태를 모니터링하고, 모니터링을 수행 중에 세션 상태 변화를 감지하면 상기 SDN에 대한 네트워크 장애라고 판단하여 세션 상태신호를 출력하는 것을 특징으로 하는 스위치.
  27. 제25항에 있어서,
    상기 SDN에 대한 네트워크 장애라고 판단되면, 상기 모니터링부는 자신의 스위치가 상기 수신된 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단하고, 상기 자신의 스위치가 상기 부모 스위치에 해당한다면, 상기 스위치 메모리부에 저장된 상기 플로우 엔트리정보를 업데이트 하도록 상기 플로우 정보 관리부에 지시하고,
    상기 플로우 정보 관리부는 상기 모니터링부의 지시에 따라, 상기 스위치 메모리에 저장된 상기 플로우 엔트리정보의 데이터 전송을 위한 우선 순위를 재조정하여 상기 플로우 엔트리정보를 업데이트하는 것을 특징으로 하는 스위치.
  28. 제27항에 있어서, 상기 스위치 인터페이스부는
    상기 업데이트된 플로우 엔트리정보를 상기 컨트롤러로 전송하는 것을 특징으로 하는 스위치.
  29. 제25항에 있어서,
    상기 SDN에 대한 네트워크 장애라고 판단되면, 상기 모니터링부는 자신의 스위치가 상기 수신된 플로우 엔트리정보에 의한 부모 스위치 또는 자식 스위치 중 어느 스위치에 해당하는가를 판단하고, 상기 자신의 스위치가 상기 자식 스위치에 해당한다면 네트워크 장애를 의미하는 세션 상태정보를 상기 컨트롤러로 전송하도록 상기 스위치 인터페이스부를 제어하고,
    상기 스위칭 인터페이스부가 상기 세션 상태정보를 상기 컨트롤러로 전송하는 것을 특징으로 하는 스위치.
  30. 제29항에 있어서, 상기 플로우 정보 관리부는
    상기 컨트롤러로부터 업데이트된 플로우 엔트리정보를 수신하면, 상기 스위치 메모리부에 저장된 상기 플로우 엔트리정보를 상기 업데이트된 플로우 엔트리정보에 따라 업데이트하는 것을 특징으로 하는 스위치.

KR1020130138798A 2013-11-15 2013-11-15 SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치 KR102118687B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130138798A KR102118687B1 (ko) 2013-11-15 2013-11-15 SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치
PCT/KR2014/010741 WO2015072709A1 (ko) 2013-11-15 2014-11-10 Sdn에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치
US15/037,046 US10205681B2 (en) 2013-11-15 2014-11-10 Method for operating controller and switch for relieving network failure from SDN, and controller and switch therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130138798A KR102118687B1 (ko) 2013-11-15 2013-11-15 SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치

Publications (2)

Publication Number Publication Date
KR20150056159A true KR20150056159A (ko) 2015-05-26
KR102118687B1 KR102118687B1 (ko) 2020-06-03

Family

ID=53057601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130138798A KR102118687B1 (ko) 2013-11-15 2013-11-15 SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치

Country Status (3)

Country Link
US (1) US10205681B2 (ko)
KR (1) KR102118687B1 (ko)
WO (1) WO2015072709A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030531A1 (en) * 2015-08-14 2017-02-23 Hewlett Packard Enterprise Development Lp Implementing forwarding behavior based on communication activity between a controller and a network device
KR20170044313A (ko) * 2015-10-15 2017-04-25 에스케이텔레콤 주식회사 Epc 네트워크 환경에서 끊어짐 없는 트래픽 처리 방법 및 장치
KR20180017120A (ko) * 2015-06-10 2018-02-20 노키아 솔루션스 앤드 네트웍스 게엠베하 운트 코. 카게 Sdn 보안
KR102030599B1 (ko) * 2018-04-18 2019-10-10 에스케이브로드밴드주식회사 액세스장치 및 액세스장치의 동작 방법
KR20200006824A (ko) * 2018-07-11 2020-01-21 삼성전자주식회사 Sdn네트워크에서 라우팅 제어 장치 및 방법
KR102172232B1 (ko) * 2019-10-01 2020-10-30 고려대학교 산학협력단 프로그래밍 가능한 네트워크 가상화에서의 대역폭을 고려한 링크 장애 우회 장치 및 방법
KR20230059429A (ko) * 2021-10-26 2023-05-03 인천대학교 산학협력단 인공지능 기반 컴퓨터 이상 탐지 시스템

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067220B (zh) * 2012-12-19 2016-02-10 中兴通讯股份有限公司 参数更新情况下双向链路转发检测方法及装置
DE102015107073A1 (de) * 2014-09-08 2016-03-10 Rheinmetall Defence Electronics Gmbh Vorrichtung und Verfahren zur Steuerung eines Kommunikationsnetzwerks
US10158559B2 (en) * 2015-01-29 2018-12-18 Futurewei Technologies, Inc. Capacity-aware heuristic approach for placing software-defined networking (SDN) switches in hybrid SDN networks for single link/node failure
US10742719B2 (en) 2015-10-13 2020-08-11 International Business Machines Corporation Contextualized analytics platform
KR20170056879A (ko) * 2015-11-16 2017-05-24 한국전자통신연구원 Sdn 다중 오케스트레이터
CN106817301A (zh) * 2015-11-30 2017-06-09 中兴通讯股份有限公司 故障恢复方法及装置、控制器、软件定义网络
KR102284953B1 (ko) * 2016-01-13 2021-08-03 삼성전자 주식회사 소프트웨어 정의 네트워크 기반 이동통신 시스템에서 제어 메시지 전송 방법 및 장치
US10149193B2 (en) 2016-06-15 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for dynamically managing network resources
WO2018004639A1 (en) * 2016-07-01 2018-01-04 Hewlett Packard Enterprise Development Lp Load balancing
US10454836B2 (en) 2016-11-01 2019-10-22 At&T Intellectual Property I, L.P. Method and apparatus for dynamically adapting a software defined network
US10284730B2 (en) 2016-11-01 2019-05-07 At&T Intellectual Property I, L.P. Method and apparatus for adaptive charging and performance in a software defined network
US10505870B2 (en) 2016-11-07 2019-12-10 At&T Intellectual Property I, L.P. Method and apparatus for a responsive software defined network
US10469376B2 (en) 2016-11-15 2019-11-05 At&T Intellectual Property I, L.P. Method and apparatus for dynamic network routing in a software defined network
US10039006B2 (en) 2016-12-05 2018-07-31 At&T Intellectual Property I, L.P. Method and system providing local data breakout within mobility networks
US10103968B2 (en) * 2016-12-13 2018-10-16 Industrial Technology Research Institute Tree recovery method, controller and recording medium for software-defined network
CN106534220A (zh) * 2016-12-30 2017-03-22 北京奇虎科技有限公司 一种流数据的双向传输方法和装置
US10264075B2 (en) * 2017-02-27 2019-04-16 At&T Intellectual Property I, L.P. Methods, systems, and devices for multiplexing service information from sensor data
US10469286B2 (en) 2017-03-06 2019-11-05 At&T Intellectual Property I, L.P. Methods, systems, and devices for managing client devices using a virtual anchor manager
US10212289B2 (en) 2017-04-27 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for managing resources in a software defined network
US10749796B2 (en) 2017-04-27 2020-08-18 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a software defined network
US10673751B2 (en) 2017-04-27 2020-06-02 At&T Intellectual Property I, L.P. Method and apparatus for enhancing services in a software defined network
US10819606B2 (en) 2017-04-27 2020-10-27 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a converged network
US10382903B2 (en) 2017-05-09 2019-08-13 At&T Intellectual Property I, L.P. Multi-slicing orchestration system and method for service and/or content delivery
US10257668B2 (en) 2017-05-09 2019-04-09 At&T Intellectual Property I, L.P. Dynamic network slice-switching and handover system and method
US10855805B2 (en) * 2017-05-26 2020-12-01 Dell Products L.P. Centralized storage-connected switch port auto-configuration system
US10070344B1 (en) 2017-07-25 2018-09-04 At&T Intellectual Property I, L.P. Method and system for managing utilization of slices in a virtual network function environment
US10104548B1 (en) 2017-12-18 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines
US10938632B2 (en) 2018-12-28 2021-03-02 Vmware, Inc. Query failure diagnosis in software-defined networking (SDN) environments
US11005745B2 (en) * 2018-12-28 2021-05-11 Vmware, Inc. Network configuration failure diagnosis in software-defined networking (SDN) environments
EP4140106A1 (en) * 2020-04-23 2023-03-01 Juniper Networks, Inc. Session monitoring using metrics of session establishment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180104A1 (en) * 2006-01-30 2007-08-02 Clarence Filsfils Technique for enabling bidirectional forwarding detection between edge devices in a computer network
JP2010220037A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 通信装置および監視パケット転送方法
KR20130093732A (ko) * 2011-12-26 2013-08-23 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
US20140181292A1 (en) * 2012-12-20 2014-06-26 Dell Products L.P. Systems and methods for topology discovery and application in a border gateway protocol based data center
EP2874355A2 (en) * 2012-12-19 2015-05-20 ZTE Corporation Method and device for bidirectional forwarding detection under condition of parameter update

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100389571C (zh) * 2005-03-25 2008-05-21 华为技术有限公司 检测混合网络中端到端节点间链路故障的方法
CN101150587B (zh) * 2007-10-24 2010-07-07 华为技术有限公司 一种多协议标签交换流量工程流量切换的方法、设备及系统
US8139479B1 (en) 2009-03-25 2012-03-20 Juniper Networks, Inc. Health probing detection and enhancement for traffic engineering label switched paths
JP5386745B2 (ja) * 2010-03-25 2014-01-15 株式会社日立製作所 ネットワーク監視サーバ及びネットワーク監視システム
WO2011144495A1 (en) 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network
US8804490B2 (en) 2011-07-29 2014-08-12 Telefonaktiebolaget L M Ericsson (Publ) Controller placement for fast failover in the split architecture
US9231838B2 (en) * 2011-11-09 2016-01-05 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for detecting and locating network connection failures
TWI484789B (zh) * 2011-12-30 2015-05-11 Ind Tech Res Inst 主控裝置、被控裝置、及其網路通訊方法
US9184998B2 (en) * 2013-03-14 2015-11-10 Qualcomm Incorporated Distributed path update in hybrid networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180104A1 (en) * 2006-01-30 2007-08-02 Clarence Filsfils Technique for enabling bidirectional forwarding detection between edge devices in a computer network
JP2010220037A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 通信装置および監視パケット転送方法
KR20130093732A (ko) * 2011-12-26 2013-08-23 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
EP2874355A2 (en) * 2012-12-19 2015-05-20 ZTE Corporation Method and device for bidirectional forwarding detection under condition of parameter update
US20140181292A1 (en) * 2012-12-20 2014-06-26 Dell Products L.P. Systems and methods for topology discovery and application in a border gateway protocol based data center

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180017120A (ko) * 2015-06-10 2018-02-20 노키아 솔루션스 앤드 네트웍스 게엠베하 운트 코. 카게 Sdn 보안
WO2017030531A1 (en) * 2015-08-14 2017-02-23 Hewlett Packard Enterprise Development Lp Implementing forwarding behavior based on communication activity between a controller and a network device
US10530681B2 (en) 2015-08-14 2020-01-07 Hewlett Packard Enterprise Development Lp Implementing forwarding behavior based on communication activity between a controller and a network device
KR20170044313A (ko) * 2015-10-15 2017-04-25 에스케이텔레콤 주식회사 Epc 네트워크 환경에서 끊어짐 없는 트래픽 처리 방법 및 장치
KR102030599B1 (ko) * 2018-04-18 2019-10-10 에스케이브로드밴드주식회사 액세스장치 및 액세스장치의 동작 방법
KR20200006824A (ko) * 2018-07-11 2020-01-21 삼성전자주식회사 Sdn네트워크에서 라우팅 제어 장치 및 방법
KR102172232B1 (ko) * 2019-10-01 2020-10-30 고려대학교 산학협력단 프로그래밍 가능한 네트워크 가상화에서의 대역폭을 고려한 링크 장애 우회 장치 및 방법
KR20230059429A (ko) * 2021-10-26 2023-05-03 인천대학교 산학협력단 인공지능 기반 컴퓨터 이상 탐지 시스템

Also Published As

Publication number Publication date
KR102118687B1 (ko) 2020-06-03
US10205681B2 (en) 2019-02-12
US20160294734A1 (en) 2016-10-06
WO2015072709A1 (ko) 2015-05-21

Similar Documents

Publication Publication Date Title
KR102118687B1 (ko) SDN(Software-defined networking)에서 네트워크 장애 해소를 위한 컨트롤러 및 스위치의 동작 방법과, 이를 위한 컨트롤러 및 스위치
CN111587580B (zh) 内部网关协议洪泛最小化
EP2933979B1 (en) Dht-based control network implementation method and system, and network controller
US9667524B2 (en) Method to check health of automatically discovered controllers in software defined networks (SDNs)
US9054956B2 (en) Routing protocols for accommodating nodes with redundant routing facilities
EP2432164B1 (en) Node device and communication method
US7035202B2 (en) Network routing using link failure information
CN100581127C (zh) 用于对各种路由域之间的链路故障快速做出反应的方法
US10439880B2 (en) Loop-free convergence in communication networks
JP5450665B2 (ja) ブロードキャストネットワークのためのldpigp同期
US7864666B2 (en) Communication control apparatus, method and program thereof
WO2009018728A1 (fr) Réseau en anneau ip, dispositif de routage de réseau en anneau et procédé pour transmettre un message
JP5194233B2 (ja) 経路制御方法およびノード装置
US8667174B2 (en) Method and system for survival of data plane through a total control plane failure
WO2012062069A1 (zh) 双向转发检测报文的发送方法及设备
WO2015045466A1 (ja) 通信制御装置、通信制御システム、通信制御方法及び通信制御プログラム
US20110013539A1 (en) System and method for managing internetwork communications among a plurality of networks
CN111385138A (zh) 用于拼接多宿主evpn和l2电路的逻辑隧道的核心隔离
EP1185041B1 (en) OSPF autonomous system with a backbone divided into two sub-areas
EP1964330B1 (en) Method for reducing fault detection time in a telecommunication network
WO2021004213A1 (zh) 融合网络的路径标签确定方法及装置、存储介质及电子装置
JP6042838B2 (ja) 管理システム、管理サーバ、および管理方法
US11888596B2 (en) System and method for network reliability
CN114430387B (zh) 一种节点的配置方法、控制器和节点
JP2010028464A (ja) 通信システム及び転送装置

Legal Events

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