KR20180093175A - Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법 - Google Patents

Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법 Download PDF

Info

Publication number
KR20180093175A
KR20180093175A KR1020170018372A KR20170018372A KR20180093175A KR 20180093175 A KR20180093175 A KR 20180093175A KR 1020170018372 A KR1020170018372 A KR 1020170018372A KR 20170018372 A KR20170018372 A KR 20170018372A KR 20180093175 A KR20180093175 A KR 20180093175A
Authority
KR
South Korea
Prior art keywords
host
packet
switch
intermediate switch
sdn
Prior art date
Application number
KR1020170018372A
Other languages
English (en)
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 KR1020170018372A priority Critical patent/KR20180093175A/ko
Publication of KR20180093175A publication Critical patent/KR20180093175A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/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
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • 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/08Configuration management of networks or network elements
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

연결 상태 확인 시스템이 SDN 네트워크에서, 제1 호스트와 제2 호스트 사이를 연결하는 적어도 하나 이상의 SDN 스위치 중 선정된 중간 스위치로 패킷 요청 신호를 전송한다. 패킷 요청 신호를 토대로 중간 스위치가 생성한 요청 패킷에 대하여, 제1 호스트 또는 제2 호스트에서 생성한 응답 패킷을 중간 스위치를 통해 수신하였는지 확인한다. 응답 패킷이 수신되지 않으면, 중간 스위치에서 제1 호스트 사이의 제1 경로 또는 중간 스위치에서 제2 호스트 사이의 제2 경로 또는 제1 경로나 제2 경로에 위치한 적어도 하나 이상의 SDN 스위치 중 어느 하나의 스위치에 장애가 발생한 것으로 탐지한다.

Description

SDN 네트워크의 종단간 연결 상태 확인 시스템 및 방법{System and method for end-to-end connection checking of SDN network}
본 발명은 SDN 네트워크의 종단간 연결 상태 확인 시스템 및 방법에 관한 것이다.
소프트웨어 정의 방식(SDN: Software Defined Network)의 네트워크의 구조는 중앙 집중식 구조를 나타낸다. 기존 네트워크 장비의 데이터 평면(Data plane)과 제어 평면(Control plane)을 분리하고, 네트워크에 대한 관리, 모니터링, 제어 처리를 하나의 집중화된 제어기에서 처리하도록 한다.
일반적으로 스위치 또는 라우터와 같은 네트워크 장비는 제어 평면의 기능을 장비 내에 탑재되어 있는 어플리케이션에서 수행한다. 제어 편면은 장비로 유입되는 트래픽에 대한 처리 방법을 결정한다.
반면에, SDN 방식의 네트워크에서는 장비 외부에 존재하는 어플리케이션에서 네트워크 장비의 제어 평면에 해당되는 기능을 수행한다. 예를 들면, SDN 방식의 네트워킹에서는 기존 네트워크 장비에서 수행되던 제어 평면의 기능인 MAC Learning, 라우팅 동작, 그리고 ARP(Address Resolution Protocol) 테이블 관리 등을 외부에 존재하는 어플리케이션이 중앙 집중 방식으로 처리한다. 여기서, 장비 외부에 존재하여 장비의 제어 평면 기능을 수행하는 어플리케이션들을 SDN 제어기라고 정의한다.
SDN 제어기는 중앙 집중 방식으로 네트워크를 제어하기 위해 필수적인 스위치들의 상태 관리, 스위치 간의 연결 정보 관리, 장비의 패킷 전달 정책 관리 등의 동작을 수행한다. SDN 제어기는 중앙 제어 방식으로 단일 처리 로직에서 전체 네트워크의 구성을 설정하기 때문에, 기존의 방식에 보다 효율적인 자원관리와 빠른 정책 적용이 가능하며, 네트워크 전체에 대한 높은 가시성을 확보하게 된다.
SDN 제어기의 경우 다양한 오픈 소스 및 상용 솔루션 형태로 존재하며, 대다수의 SDN 제어기는 ONF(Open Networking Foundation)에서 정의한 오픈 플로우(OpenFlow) 프로토콜을 사용하여 장비와 제어기 간에 통신을 수행한다. 상용 SDN 솔루션의 경우 오픈 플로우를 수정하여 각 제조사의 요구사항을 반영하여 사용하고 있기도 하지만, 기본적인 오픈 플로우의 동작 방식을 크게 벗어나진 않는다.
SDN 기능을 지원하는 스위치들을 대부분 1.3.1 버전의 오픈 플로우를 지원하고 있다. 일부 스위치의 경우에는 제어기와의 통신은 오픈 플로우의 프로토콜을 사용하지만, 스위치에서의 동작은 제조사에서 정의한 방법에 의해서 동작하는 경우도 있다. 예를 들면 A 사의 스위치의 경우에는 다이렉트 플로우(DirectFlow) 동작 방식을 지원하는 경우에는, 오픈 플로우를 통해 제어기와 통신하지만 스위치에서는 MAC 테이블, 라우팅 테이블을 통해 패킷을 전달하는 식으로 동작한다.
이러한 종래의 SDN 제어기를 이용하는 경우, 단 하나의 어플리케이션이 잘못된 동작을 하게 되면 전체 스위치들의 패킷 처리 정책이 잘못 설정될 수 있으며, 정책이 올바르게 스위치에 탑재될지라도 SDN 스위치의 비정상 적인 동작으로 인해 정책에 따라 패킷이 전달되지 않을 수 있다.
그리고 SDN 제어기가 전달한 LLDP(Link Layer Discovery Protocol)를 토대로 종단간 링크들이 정상적으로 동작한다고 간주하여도, 실제 종단간 링크 사이에 데이터 패킷들도 정상적으로 송수신한다고 보장하기 어렵다. 또한, SDN 네트워크에서는 기존의 네트워크 장비에서 사용하던 다양한 토폴로지 탐지 기법 및 도구들을 사용하기 어렵다.
그리고, SDN 기법을 활용하여 네트워크를 구성 시, 기존 네트워크 관리 기법 및 도구를 사용하지 못하고, 빈번한 네트워크 정책 변경에 대한 실제적인 정상 동작 여부를 확인하기 어렵다. 또한, SDN 기술 성숙도로 인해 SDN 제어기 및 스위치 모두 잦은 버그가 감지되고 있는 상황으로, 기존의 네트워크보다 안정적으로 네트워크를 구성하지 못한다는 단점이 있다.
따라서, SDN 네트워크에서 호스트들간의 종단간 연결 상태를 확인하는 연결 상태 확인 시스템 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 연결 상태 확인 시스템이 SDN 네트워크에서 종단의 호스트간 연결 상태를 확인하는 방법은,
제1 호스트와 제2 호스트 사이를 연결하는 적어도 하나 이상의 SDN 스위치 중 중간 스위치를 선정하는 단계; 상기 중간 스위치로 패킷 요청 신호를 전송하는 단계; 상기 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 요청 패킷에 대하여, 상기 제1 호스트 또는 제2 호스트에서 생성한 응답 패킷을 상기 중간 스위치를 통해 수신하였는지 확인하는 단계; 및 상기 응답 패킷이 수신되지 않으면, 상기 중간 스위치에서 상기 제1 호스트 사이의 제1 경로 또는 상기 중간 스위치에서 상기 제2 호스트 사이의 제2 경로 또는 제1 경로나 제2 경로에 위치한 적어도 하나 이상의 SDN 스위치 중 어느 하나의 스위치에 장애가 발생한 것으로 탐지하는 단계를 포함한다.
상기 중간 스위치를 선정하는 단계는, 상기 제1 호스트와 제2 호스트 각각의 주소 정보와 상기 제1 호스트로부터 제2 호스트까지의 경로 정보를 수신하는 단계; 상기 제1 호스트를 시작 호스트로, 상기 제2 호스트를 목적지 호스트로 하여 장애 탐지 구간을 설정하는 단계; 상기 제1 호스트로부터 제2 호스트 사이에 연결된 SDN 스위치가 적어도 둘 이상인지 확인하는 단계; 및 상기 연결된 SDN 스위치가 둘 이상이면, 둘 이상의 SDN 스위치 중 상기 중간 스위치를 선정하는 단계를 포함할 수 있다.
상기 중간 스위치로 동작 정책이 포함되어 있는 패킷 요청 신호를 전송하는 단계는, 상기 중간 스위치로 패킷을 전송하는 단계; 및 상기 중간 스위치로 패킷 요청 신호를 전송하는 단계를 포함하고, 상기 패킷은 FlowMod 패킷으로, 상기 중간 스위치가 상기 제1 호스트에서 생성되어 상기 제2 호스트로 향하는 제1 응답 패킷을 수신한 경우 이를 처리할 동작 정책 또는, 상기 중간 스위치가 상기 제2 호스트에서 생성되어 상기 제1 호스트로 향하는 제2 응답 패킷을 수신한 경우 이를 처리할 동작 정책이 포함되어 있을 수 있다.
상기 패킷 요청 신호를 전송하는 단계는, 출발지 주소를 목적지 호스트인 제1 호스트, 목적지 주소를 소스 호스트인 제2 호스트가 되도록 제1 ICMP 패킷 요청 신호를 생성하고, 출발지 주소를 상기 제2 호스트, 목적지 주소는 상기 제1 호스트가 되도록 제2 ICMP 패킷 요청 신호를 생성할 수 있다.
상기 장애가 발생한 것으로 탐지하는 단계는, 상기 중간 스위치로부터 상기 제1 응답 패킷을 전달받지 못하면, 상기 제1 ICMP 패킷 요청 신호에 대한 재송신 횟수를 하나 증가시키는 단계; 및 하나 증가된 재송신 횟수가 미리 설정한 임계 횟수보다 많으면, 상기 제1 경로 또는 상기 제1 경로상의 적어도 하나 이상의 SDN 스위치 중 어느 하나의 SDN 스위치에 장애가 발생한 것으로 확인하고 장애 탐지 구간을 재설정하는 단계를 포함할 수 있다.
상기 장애가 발생한 것으로 탐지하는 단계는, 상기 중간 스위치로부터 상기 제1 응답 패킷을 전달받으면, 상기 중간 스위치로 패킷을 전송하는 단계; 상기 제2 ICMP 패킷 요청 신호를 상기 중간 스위치로 전송하는 단계; 상기 중간 스위치로부터 상기 제2 응답 패킷을 전달받지 못하면, 상기 제2 ICMP 패킷 요청 신호에 대한 재송신 횟수를 하나 증가시키는 단계; 및 하나 증가된 재송신 횟수가 미리 설정한 임계 횟수보다 많으면, 상기 제2 경로 또는 상기 제2 경로상의 적어도 하나 이상의 SDN 스위치 중 어느 하나의 SDN 스위치에 장애가 발생한 것으로 확인하고 장애 탐지 구간을 재설정하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 오픈플로우 기반의 SDN 네트워크에서 종단의 호스트간의 연결 상태를 확인하는 시스템은,
제1 호스트와 제2 호스트 사이를 연결하는 적어도 하나 이상의 SDN 스위치 중 선정된 중간 스위치로 패킷 또는 패킷 요청 신호를 전송하고, 상기 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 요청 패킷에 대하여 상기 제1 호스트 또는 제2 호스트에서 전송하는 응답 패킷을 상기 중간 스위치로부터 수신하는 인터페이스; 및 상기 하나 이상의 SDN 스위치 중 중간 스위치를 선정하고, 상기 중간 스위치로 전송할 상기 패킷과 패킷 요청 신호를 생성하며, 상기 중간 스위치로부터 상기 응답 패킷의 수신 여부에 따라 상기 제1 호스트와 제2 호스트간의 연결 상태를 확인하는 프로세서를 포함한다.
상기 프로세서는, 상기 제1 호스트와 제2 호스트 각각의 주소 정보와 상기 제1 호스트로부터 제2 호스트까지의 경로 정보를 토대로 상기 중간 스위치를 선정할 수 있다.
상기 프로세서는, 상기 제1 ICMP 패킷 요청 신호의 출발지 주소는 목적지 호스트인 제1 호스트, 목적지 주소는 소스 호스트인 제2 호스트를 갖도록 생성하고, 상기 제2 ICMP 패킷 요청 신호의 출발지 주소는 제2 호스트, 목적지 주소는 제1 호스트를 갖도록 생성할 수 있다.
상기 프로세서는, 상기 중간 스위치로부터 미리 설정한 시간 내에 상기 제1 응답 패킷 또는 제2 응답 패킷이 미리 설정한 횟수 이상 수신되지 않으면, 상기 중간 스위치로부터 상기 제1 호스트 사이의 제1 경로나 제1 경로상의 임의의 SDN 스위치, 또는 상기 중간 스위치로부터 상기 제2 호스트 사이의 제2 경로나 제2 경로상의 임의의 SDN 스위치 중 어느 하나에 장애가 발생한 것으로 판단할 수 있다.
상기 프로세서는, 제1 경로나 제1 경로상의 임의의 SDN 스위치에서 장애가 발생한 것으로 판단하면, 상기 제1 호스트를 시작 노드로 상기 중간 스위치를 종료 노드로 하여 장애 탐지 구간을 재설정하고, 제2 경로나 제2 경로상의 임의의 SDN 스위치에서 장애가 발생한 것으로 판단하면, 상기 중간 스위치를 시작 노드로 상기 제2 호스트를 종료 노드로 하여 장애 탐지 구간을 재설정할 수 있다.
상기 중간 스위치는, 상기 인터페이스를 통해 전송되는 상기 패킷을 수신하면, 상기 패킷에 포함된 동작 정책에 따라, 상기 제1 호스트로부터 전송되는 제1 응답 패킷 또는 상기 제2 호스트로부터 전송되는 제2 응답 패킷을 상기 인터페이스를 통해 프로세서로 전달하며, 상기 패킷은 FlowMod 패킷일 수 있다.
상기 중간 스위치는, 상기 인터페이스를 통해 전송되는 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호를 수신하면, 상기 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호에 각각 포함되어 있는 주소 정보를 토대로 ICMP 요청 패킷을 생성할 수 있다.
본 발명에 따르면 호스트들간의 연결 상태 확인을 연결 상태 확인 시스템을 이용하여 실제 호스트들간에 핑(Ping) 테스트 하는 것과 같은 수준의 테스트를 수행함으로써, SDN 네트워크를 기존의 네트워크와 유사한 수준의 안정성을 충족시킬 수 있다.
또한, SDN 방식 네트워크에서 존재하는 다양한 SDN 어플리케이션에 대해서도 실제 동작 여부를 실시간으로 확인할 수 있게 됨으로써, 보다 빠른 SDN 어플리케이션의 테스트와 개발이 가능하다.
도 1은 일반적인 SDN 제어기의 토폴로지 탐색을 위한 예시도이다.
도 2는 일반적인 종단간 정상 연결 확인을 위한 핑 테스트 과정에 대한 예시도이다.
도 3은 본 발명의 실시예에 따른 연결 상태 확인 시스템이 적용된 환경의 예시도이다.
도 4는 본 발명의 실시예에 따른 연결 상태 확인 시스템의 구조도이다.
도 5는 본 발명의 실시예에 따른 연결 상태 확인 방법에 대한 흐름도이다.
도 6은 본 발명의 실시예에 따른 중간 스위치로부터 소스 호스트까지의 정상 연결 확인을 위한 패킷 흐름의 예시도이다.
도 7은 본 발명의 실시예에 따른 링크 장애 탐지 과정에 대한 예시도이다.
도 8은 본 발명의 실시예에 따른 SDN 스위치의 비정상 동작 탐지 과정에 대한 예시도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 도면을 참조로 하여 본 발명의 실시예에 따른 SDN 네트워크의 종단간 연결 상태 확인 시스템 및 방법에 대해 설명한다. 본 발명의 실시예에 대해 설명하기 앞서, 일반적인 환경에서 토폴로지 탐색 예와 종단간 연결 확인을 위한 핑 테스트에 대해 도 1 및 도 2를 참조로 먼저 설명한다.
기존의 네트워크 장비의 동작 방식과는 다르게, SDN 방식의 네트워크에서는 SDN 제어기가 스위치/라우터 장비 정보를 취합한다. 그리고 해당 네트워크의 패킷 전달 경로를 결정하여 스위치로 적용 시킨다.
이를 위하여 SDN 제어기는 관리하는 네트워크 장비의 토폴로지가 어떻게 구성되어 있는지 빠르고, 정확하게 인지하는 기능이 가장 필수적으로 필요하다. 그리고 장비의 비 정상 동작 그리고 장비간의 연결 실패를 정확하고 빠르게 탐지하는 것이 기존의 네트워크 보다 훨씬 중요하다.
따라서, SDN 제어기들은 정확한 토폴로지 정보 관리를 위하여 다음의 세 가지 방식을 사용한다. 이에 대해 도 1을 참조로 설명한다.
도 1은 일반적인 SDN 제어기의 토폴로지 탐색을 위한 예시도이다.
도 1에 도시된 바와 같이, SDN 제어기(10)는 SDN 제어기(10)에 연결되어 있는 복수의 SDN 스위치(S1, S2, Sn)로 LLDP 패킷을 생성하고 전달한다. 그리고 LLDP 패킷의 정상적인 전달 유무를 기준으로 SDN 스위치들의 연결 상태를 확인한다.
이 때, SDN 제어기(10)가 생성한 LLDP 패킷의 목적지 주소는 FF:FF:FF:FF:FF:FF 혹은 브리지 필터 멀티캐스트(bridge-filtered multicast) MAC 주소인 01:80:C2:00:00:0E이다. 따라서, SDN 스위치(S1, S2)들 사이에 L2 스위치(L2)로 연결되어 있더라도, 제1 SDN 스위치(S1)에서 제2 SDN 스위치(S2)로 LLDP 패킷이 전달된다. 여기서 SDN 제어기(10)는 오픈 플로우 프로토콜에서 정의되어 있는 패킷 아웃(Packet-out) 메시지를 통해 LLDP 패킷을 SDN 스위치로 전달하고, 특정 포트로 전달하게 한다.
두 번째 방법으로 SDN 제어기(10)는 SDN 스위치 상태를 주기적/비주기적으로 확인한다. SDN 제어기(10)는 주기적으로 오픈 플로우에 정의되어 있는 멀티파트 요청(Multipart request) 메시지를 통해, 스위치의 포트 상태, 장비 사태, 스위치의 정책 현황 등을 요청하고, 스위치로부터 수신되는 해당 정보를 통해 SDN 스위치(S1, S2, Sn)의 상태를 확인한다.
또한, SDN 제어기(10)는 SDN 스위치(S1, S2, Sn)의 TCP 세션 연결 상태를 상시 확인하여 제어기와 스위치 간의 연결 상태를 확인한다. 그리고, SDN 제어기(10)는 오픈 플로우 이외의 관리 평면(management plane)에 해당되는 SNMP(Simple Network Management Protocol)와 Netconf와 같은 프로토콜을 통해 오픈 플로우로 확인하기 어려운 SDN 스위치(S1, S2, Sn)의 상태 및 설정 상태를 확인한다.
세 번째 방법으로 SDN 제어기(10)는 SDN 장비에 연결되어 있는 호스트(h1, h2)들에 대한 정보를 저장하며, 연결 상태 여부를 패킷이 전달 될 때마다 갱신한다. SDN 제어기(10)는 SDN 스위치(S1, S2, Sn)들로부터 패킷의 처리 경로에 대해서 문의를 받을 때, 이에 대한 출발지 주소를 기준으로 호스트(h1, h2)의 정보를 갱신한다.
SDN 제어기는 새로운 호스트가 등록 될 경우 다른 모든 호스트들과의 연결 경로를 미리 계산해 놓는다. 이는 SDN 스위치로부터 패킷의 처리 방법을 질의 받을 때 처리 속도를 빠르게 하기 위함이다. 또한, SDN 제어기로 일정 시간 이상 호스트로부터 패킷이 전달되지 않으면 해당 호스트에 대한 정보를 삭제해 버린다.
이와 같이 종래의 방식으로 토폴로지 정보를 관리하는 과정에서, 대다수의 SDN 제어기들은 상기에서 설명한 방식으로 네트워크 토폴로지에 대한 노드 정보(스위치, 호스트), 링크 정보(스위치간 연결)를 수집하고 처리하며, 장애의 유무를 판단한다.
즉, SDN 네트워크는 SDN 제어기(10)에 탑재된 다수의 SDN 어플리케이션들을 통해 SDN 스위치들의 패킷 전달 정책을 중앙 집중 방식으로 제어한다. 이러한 방식은 네트워크 장비 외부에서 SDN 스위치들 각각의 패킷 전달 정책을 관리하기 때문에, 기존의 방식보다 보다 빠르고 유연한 정책 관리가 가능하게 한다.
하지만, 중앙 집중 방식의 제어는 빈번한 장비 정책의 변경, 그리고 장비 정책에 대한 다수의 제어 주체가 발생한다는 점에서, 기존의 네트워크 보다 더 정확한 네트워크 정보가 필요하다. 그리고, SDN 네트워크에서 새롭게 발생되는 다음의 세 가지 문제점들에 대해서 감지할 방법이 필요하다.
첫 번째 문제점으로는 SDN 제어기(10)의 오동작 혹은 SDN 어플리케이션의 논리 오류로 인해, SDN 제어기(10)가 SDN 스위치로 잘못된 정책을 할당하는 장애에 대한 문제이다. SDN 제어기(10)에는 다수의 SDN 어플리케이션이 존재하며, 각 SDN 어플리케이션들은 SDN 스위치의 패킷 처리 정책에 대한 설정 권한을 모두 갖고 있다. 이는 단 하나의 어플리케이션이 잘못된 동작을 하게 되면, 전체 SDN 스위치들의 패킷 처리 정책을 잘못 설정할 수 있는 문제를 발생한다.
두 번째 문제점으로는 SDN 제어기(10)로부터 SDN 스위치로 올바른 정책이 할당 되더라도, 스위치 자체적인 오동작으로 인하여 패킷 전달을 실패하는 경우에 대한 문제이다. SDN 제어기(10)로부터 올바른 정책이 할당되더라도, 스위치 자체의 오류로 인해 할당된 정책이 삭제될 수 있으며, 실제 운용 환경에서 이와 같은 문제가 발생된 사례가 있다. 또한, 정책이 올바르게 스위치에 탑재될지라도 SDN 스위치의 비정상적인 동작으로 인해 잘못된 정책으로 인식하여, 패킷이 전달되지 않을 수 있다.
세 번째 문제점으로는 SDN 스위치들을 연결하는 링크들이 비정상적으로 동작을 하는 경우에 대한 문제이다. SDN 스위치들은 스위치들간 연결이 단일 라인으로만 구성 되는 것이 아니라, L2 스위치들로 구성되는 경우가 많다. 이때, L2 스위치가 SDN 제어기(10)로부터 수신한 LLDP를 정상적으로 수신하여 링크가 정상이라고 판단한다 하더라도, 실제 데이터 패킷들이 정상적으로 전달된다고 보장할 수 없다.
또한, SDN 네트워크에서는 기존의 네트워크 장비에서 사용하던 다양한 토폴로지 탐지 기법 및 도구들을 사용하기 어렵다. 예를 들면 트레이스 라우트(traceroute)와 같은 테스팅 도구들은 SDN 네트워크에서 동작하지 않는다. 이러한 문제점들은 기존의 SDN 제어기(10)가 사용하는 토폴로지 상태 확인 방법으로는 확인하기 어렵다. 그리고, 실제로 호스트들간에 데이터 패킷을 전달하면서 종단간 정상 연결 확인을 위한 별도의 테스트가 수행되어야 한다. 이에 대해 도 2를 참조로 설명한다.
도 2는 일반적인 종단간 정상 연결 확인을 위한 핑 테스트 과정에 대한 예시도이다.
도 2에 도시된 바와 같이, 소스 호스트(hsrc)와 목적지 호스트(hdest)의 종단간 연결이 정상적으로 연결되어 있는지 확인하기 위해서, 소스 호스트(hsrc)는 목적지 호스트(hdest)로 ICMP 요청(Internet Control Message Protocol Request) 메시지를 전송한다. 소스 호스트(hsrc)와 목적지 호스트(hdest) 사이에는 복수의 SDN 스위치(S1 ∼ Sn)들이 연결되어 있고, ICMP 요청 메시는 각각의 SDN 스위치(S1 ∼ Sn)들을 거쳐 목적지 호스트(hdest)로 전송된다.
목적지 호스트(hdest)는 소스 호스트(hsrc)에서 전송한 ICMP 요청 메시지를 수신하였음을 알리는 ICMP 응답(reply) 메시지를 ICMP 요청 메시지를 전송한 패킷 송신 호스트인 소스 호스트(hsrc)로 전송한다.
이와 같은 테스트 과정을 통해서 종단간 정상 연결을 확인하는 절차는, 네트워크를 운용하는 조직인 서버 장비들에서 트래픽을 발생시키고, 종단간에 ICMP 요청 메시지 또는 ICMP 응답 메시지를 정상적으로 수신했는지 확인하기 어렵다. 또한, 각각의 스위치에서 종단간 정상 연결을 확인할 수 있는 권한을 소유한다고 해도, 다양한 형태의 호스트들을 모두 제어할 수 있는 별도의 관리 소프트웨어를 갖추는 것은 거의 불가능하다.
그리고 SDN 네트워크에서 장애가 발생되었다고 통보를 받은 상황에서, 어느 장비에서 장애가 발생했는지 확인하는 것은 매우 어려운 작업이다. 이는 장애가 발생되었다고 통보 받은 경로에 해당되는 모든 라인, 장비를 확인해야 하기 때문이다.
따라서, 본 발명의 실시예에서는 호스트들간의 연결 상태를 실제 호스트들간의 핑 테스트를 수행하는 것과 같은 수준의 테스트를 통해 연결 상태를 확인할 수 있도록 하는 연결 상태 확인 시스템과 방법에 대하여 도 3 내지 도 5를 참조로 설명한다.
본 발명의 실시예에서는 SDN 제어기(10) 내에 연결 상태 확인 시스템(100)이 포함되어 있는 것을 예로 하여 설명한다. 그러나, SDN 제어기(10) 자체가 종단의 호스트들간의 연결 상태를 확인할 수도 있으며, 어느 하나의 방법으로 한정하지 않는다. 또한, 본 발명의 실시예에서는 SDN 네트워크가 오픈플로우(OpenFlow) 기반의 SDN 네트워크인 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다.
도 3은 본 발명의 실시예에 따른 연결 상태 확인 시스템이 적용된 환경의 예시도이다.
도 3에 도시된 바와 같이, 연결 상태 확인 시스템(100)이 포함된 SDN 제어기(10)는 임의의 패킷을 생성하고 SDN 제어기(10)에 연결된 스위치로 생성한 패킷을 전달한다. 그리고, 스위치로부터 유입되는 특정 패킷을 토대로 호스트들간의 연결성을 확인한다.
즉, 연결 상태 확인 시스템(100)은 종단의 호스트(h1, h2)들과 호스트 사이의 경로에 위치한 SDN 스위치(S1 ∼ Sn)간의 연결성을 확인하기 위하여, ICMP 패킷 요청 신호를 생성한다. 그리고 호스트들 간의 경로의 중간에 위치하여 연결 상태 확인 시스템(100)이 중간 스위치로 선정한 임의의 SDN 스위치(Si)로 ICMP 패킷 요청 신호를 전송한다.
ICMP 패킷 요청 신호의 전송을 통해, 연결 상태 확인 시스템(100)은 SDN 스위치(S1 ∼ Sn)와 호스트(h1, h2)의 정상적인 동작을 확인한다. 그리고, 연결 상태 확인 시스템(100)은 호스트(h1, h2)가 응답하는 ICMP 응답 패킷을 수신하여, 해당 경로에 위치한 호스트(h1, h2), SDN 스위치(S1 ∼ Sn), 그리고 링크에 존재하는 기타 네트워크 장비의 정상 동작을 확인한다.
또한, 연결 상태 확인 시스템(100)은 장애 탐지 구간을 좁혀나가는 기법인 바이너리 검색(Binary Search) 방식의 장애 구간 탐지 기법을 이용하여, 장애 발생 시 장애 발생 구간을 특정 링크 레벨로 추정하도록 한다. 여기서, ICMP 패킷 요청 신호나 ICMP 응답 패킷에 대한 사항은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
중간 스위치(Si)는 연결 상태 확인 시스템(100)으로부터 FlowMod 오픈 플로우 패킷을 수신하면, FlowMod 오픈 플로우 패킷에 포함되어 있는 동작 정책을 저장하거나, 저장되어 있는 동작 정책을 삭제한다. 그리고, 중간 스위치(Si)는 연결 상태 확인 시스템(100)으로부터 ICMP 패킷 요청 신호를 수신하면, 호스트(h1, h2) 방향으로 전송할 ICMP 요청 패킷을 생성하여 전달한다. 또한, 중간 스위치(Si)는 호스트(h1, h2)로부터 ICMP 응답 패킷을 수신하면, 저장되어 있는 동작 정책을 토대로 연결 상태 확인 시스템(100)으로 ICMP 응답 패킷을 전달한다.
이와 같이, 종단간 호스트들 사이의 경로에 위치한 장비들의 연결 상태를 확인하고, 장애가 발생한 경우 장애 구간을 탐지하는 연결 상태 확인 시스템(100)의 구조에 대해 도 4를 참조로 설명한다.
도 4는 본 발명의 실시예에 따른 연결 상태 확인 시스템의 구조도이다.
도 4에 도시된 바와 같이, 연결 상태 확인 시스템(100)은 인터페이스(110)와 프로세서(120)를 포함한다.
인터페이스(110)는 복수의 SDN 스위치(S1 ∼ Sn)와 연결되어 있으며, SDN 제어기의 경로 관리 모듈(도면 미도시)과도 연동한다. 인터페이스(110)를 통해 연결 상태 확인 시스템(100)은 호스트의 주소 정보와 경로 정보를 경로 관리 모듈로부터 수신한다. 그리고, 프로세서(120)에서 생성된 ICMP 패킷 요청 신호를 인터페이스(110)를 통해 중간 스위치로 선정된 SDN 스위치로 전송한다. 또한, 인터페이스(110)는 중간 스위치로부터 전송되는 ICMP 응답 패킷을 수신하여 프로세서(120)로 전달한다.
프로세서(120)는 경로 관리 모듈로부터 전송되는 호스트의 주소 정보와 경로 정보를 토대로 복수의 SDN 스위치 중 중간 스위치를 선정한다. 프로세서(120)가 복수의 SDN 스위치 중 중간 스위치를 선정하는 방법은 여러 방법으로 수행할 수 있으며, 본 발명의 실시예에서는 다음 수학식 1을 통해 중간 스위치를 선정한다.
Figure pat00001
여기서, Scenter는 중간 스위치를 의미하고, Send는 제1 호스트에 바로 연결된 제1 SDN 스위치, Sstart는 제2 호스트에 바로 연결된 제2 SDN 스위치를 의미한다.
그리고, 프로세서(120)는 중간 스위치로 전송할 제1 FlowMod 오픈 플로우 패킷과 제2 FlowMod 오픈 플로우 패킷을 생성한다. 제1 FlowMod 오픈 플로우 패킷과 제2 FlowMod 오픈 플로우 패킷은 각각 중간 스위치가 ICMP 응답 패킷을 수신할 경우, 이를 어떻게 처리할지에 대한 동작 정책을 포함하고 있다.
또한, 프로세서(120)는 중간 스위치로 전송할 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호를 생성한다. 제1 ICMP 패킷 요청 신호의 출발지 주소는 목적지 호스트인 제1 호스트, 목적지 주소는 소스 호스트인 제2 호스트를 갖는다. 반대로 제2 ICMP 패킷 요청 신호의 출발지 주소는 제2 호스트, 목적지 주소는 제1 호스트를 갖는다.
프로세서(120)는 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호를 중간 스위치로 각각 전송한 후 제1 호스트 또는 제2 호스트로부터 ICMP 응답 패킷이 미리 설정한 시간 내에 전송되는지 확인한다. 만약 ICMP 응답 패킷이 ICMP 패킷 요청 신호가 전송된 후 미리 설정된 시간 내에 수신되지 않으면, 프로세서(120)는 ICMP 응답 패킷이 전달되지 않은 경로로 ICMP 패킷 요청 신호를 다시 전송하고, 재송신 횟수를 하나 증가시킨다.
그리고, 하나 증가된 재송신 횟수가 미리 설정한 임계값 보다 많으면, 해당 경로에 장애가 발생한 것으로 판단하고 장애 탐지 과정을 수행한다. 프로세서(120)가 수행하는 장애 탐지 과정은 SDN 스위치의 링크 장애 탐지 과정과, SDN 스위치의 비정상 동작 탐지 과정으로 구분할 수 있다.
이상에서 설명한 연결 상태 확인 시스템(100)을 통해 종단간 호스트의 정상 연결을 확인하는 방법에 대해 도 5를 참조로 설명한다.
도 5는 본 발명의 실시예에 따른 연결 상태 확인 방법에 대한 흐름도이다.
도 5에 도시된 바와 같이, 연결 상태 확인 시스템(100)은 SDN 제어기로부터 네트워크 토폴로지 상의 노드 정보인 호스트 각각의 주소 정보와 경로 정보를 수신하고 탐지 구간을 설정한다(S100). 여기서 경로 정보에는 제1 호스트와 제2 호스트 사이에 연결되어 있는 SDN 스위치의 식별 정보와 SDN 스위치 간의 연결 관계 정보 등이 포함되어 있으며, 호스트 각각의 주소 정보와 경로 정보의 형태를 어느 하나로 한정하지 않는다. 그리고, 탐지 구간은 제1 호스트를 소스 호스트, 제2 호스트를 목적지 호스트로 설정한다.
연결 상태 확인 시스템(100)은 S100 단계에서 수신한 노드 정보를 토대로, 제1 호스트와 제2 호스트를 연결하는 SDN 스위치의 수가 적어도 두 개 이상인지 확인한다(S101). SDN 스위치의 수를 확인하는 방법은 여러 방법으로 수행할 수 있으며, 본 발명의 실시예에서는 어느 하나로 한정하지 않는다.
S101 단계에서 확인한 결과, 제1 호스트와 제2 호스트를 연결하는 SDN 스위치가 한 개 이하인 경우, 연결 상태 확인 시스템(100)은 시스템의 운영자의 단말(도면 미도시)로 연결되어 있는 SDN 스위치의 정보를 반환하여 알린다(S102). 이는 제1 호스트와 제2 호스트가 하나의 SDN 스위치로만 연결되어 있는 경우, 본 발명의 실시예에 따른 장애 위치를 추정할 필요 없이 하나의 SDN 스위치만을 정비하면 되기 때문이다.
그러나, S101 단계에서 확인한 결과 SDN 스위치가 두 개 이상인 경우, 연결 상태 확인 시스템(100)은 복수의 SDN 스위치 중 중간 스위치를 선정한다(S103). 연결 상태 확인 시스템(100)은 제1 FlowMod 오픈 플로우 패킷을 생성하여 S103 단계에서 선정한 중간 스위치로 전송한다(S104).
제1 FlowMod 오픈 플로우 패킷에는 중간 스위치가 ICMP 패킷을 수신할 때 이를 처리할 동작 정책이 포함되어 있다. 여기서 동작 정책은, 소스 IP가 소스 호스트 IP이고, 목적지 IP가 목적지 호스트 IP를 가지는 ICMP 응답 패킷을 수신하면, ICMP 응답 패킷을 연결 상태 확인 시스템(100)이 위치한 SDN 제어기로 전달할 것을 요청하는 정책이다.
연결 상태 확인 시스템(100)은 제1 FlowMod 오픈 플로우 패킷을 중간 스위치로 전송한 후, 제1 ICMP 패킷 요청 신호를 생성하여 중간 스위치로 전송한다(S105). 제1 ICMP 패킷 요청 신호에는 ICMP 요청 패킷에 포함될 주소 정보가 포함되어 있다. 여기서, 주소 정보는 중간 스위치가 생성하는 ICMP 요청 패킷의 소스 IP는 목적지 호스트 IP, 목적지 주소는 소스 호스트 IP에 해당한다.
S105 단계에 따라 제1 ICMP 패킷 요청 신호가 중간 스위치로 전송된 뒤, 연결 상태 확인 시스템(100)은 미리 설정된 시간 내에 ICMP 응답 패킷을 수신하였는지 확인한다(S106). 만약 미리 설정된 시간 내에 ICMP 응답 패킷을 수신하지 못하였다면, 재송신 횟수(retry)를 하나 증가시킨다(S107).
S107 단계에서 하나 증가된 재송신 횟수가 미리 설정한 임계 횟수보다 많은지 확인하고(S108), 하나 증가된 재송신 횟수가 미리 설정된 임계 횟수보다 적으면 S105 단계 이후의 절차를 반복한다. 그러나 하나 증가된 재송신 횟수가 임계 횟수보다 많으면, 연결 상태 확인 시스템(100)은 중간 스위치로부터 소스 호스트 사이에 장애가 발생한 것으로 확인한다.
따라서, 연결 상태 확인 시스템(100)은 중간 스위치로 S104 단계에서 전송한 제1 FlowMod 오픈 플로우 패킷에 따라 중간 스위치가 설정한 정책의 삭제를 요청하는 오픈 플로우 패킷을 전송한다(S109). 그리고 중간 스위치로부터 소스 호스트의 경로에 발생한 장애 구간을 탐지하기 위한 장애 탐지 구간을 설정한다(S110).
S110 단계에서 재설정하는 장애 탐지 구간은 소스 호스트에서부터 중간 스위치 사이에 발생한 장애 구간 중 정확한 위치를 탐지하기 위해, 연결 상태 확인 시스템(100)은 시작 노드를 소스 호스트, 종료 노드를 중간 스위치로 설정한다. 그리고 S101 단계부터 반복 수행한다.
여기서, 소스 호스트에서 중간 스위치 사이의 정상 연결을 확인하는 과정의 패킷 흐름에 대해 도 6을 참조로 먼저 설명한다. 본 발명의 실시예에서는 소스 호스트에서 중간 스위치 사이의 정상 연결을 확인하는 예에 대해서만 도시하였으나, 이후 설명할 중간 스위치에서 목적지 호스트 사이의 정상 연결을 확인하는 예도 동일하게 적용된다.
도 6은 본 발명의 실시예에 따른 중간 스위치로부터 소스 호스트까지의 정상 연결 확인을 위한 패킷 흐름의 예시도이다.
도 6에 도시된 바와 같이, 연결 상태 확인 시스템(100)이 중간 스위치로 FlowMod 오픈 플로우 패킷을 전달하면, 중간 스위치는 FlowMod에 포함된 처리 정책을 확인한다. 그리고, 연결 상태 확인 시스템(100)이 PACKET-OUT 메시지를 통해 ICMP 요청 패킷을 생성할 것을 알리는 신호를 중간 스위치로 전송하면, 중간 스위치는 ICMP 요청 패킷을 생성하여 소스 호스트 방향으로 패킷을 전송한다. 이때, ICMP 요청 패킷의 목적지 IP는 소스 호스트이고, 소스 IP는 목적지 호스트가 된다.
소스 호스트는 ICMP 요청 패킷을 수신하면, ICMP 응답 패킷을 생성하여 ICMP 요청 패킷을 전송한 것으로 판단하는 목적지 호스트 방향으로 ICMP 응답 패킷이 전송되도록 SDN 스위치로 전달한다. 여기서 ICMP 응답 패킷의 소스 IP는 소스 호스트이고, 목적지 IP는 목적지 호스트가 된다.
중간 스위치는 FlowMod 오픈 플로우 패킷을 통해 목적지 IP가 목적지 호스트, 소스 IP가 소스 호스트, 그리고 패킷의 형태가 ICMP 응답 패킷인 경우 해당 패킷을 SDN 스위치가 아닌 연결 상태 확인 시스템(100)으로 전달하도록 하는 정책에 따라, ICMP 응답 패킷이 전달되면 이를 연결 상태 확인 시스템(100)으로 전달한다.
연결 상태 확인 시스템(100)이 ICMP 응답 패킷을 미리 설정된 시간 내에 수신하면, 중간 스위치로부터 소스 호스트까지의 연결은 장애 없이 정상 연결되어 있는 것으로 확인한다.
한편, 상기 도 5를 이어 설명하면, S106 단계에서 연결 상태 확인 시스템(100)이 미리 설정된 시간 내에 ICMP 응답 패킷을 수신하였다면, 소스 호스트에서 중간 스위치까지는 장애가 발생하지 않은 것으로 인지한다(S111). 따라서, 중간 스위치로부터 목적지 호스트까지의 장애 발생 여부를 확인한다. 연결 상태 확인 시스템(100)은 제2 FlowMod 오픈 플로우 패킷을 생성하여 S103 단계에서 선정한 중간 스위치로 전송한다(S112).
제2 FlowMod 오픈 플로우 패킷에는 중간 스위치가 ICMP 패킷을 수신할 때 이를 처리할 동작 정책이 포함되어 있다. 여기서 동작 정책은, 소스 IP가 목적지 호스트 IP이고, 목적지 IP가 소스 호스트 IP를 가지는 ICMP 응답 패킷을 수신하면, ICMP 응답 패킷을 연결 상태 확인 시스템(100)이 위치한 SDN 제어기로 전달할 것을 요청하는 정책이다.
연결 상태 확인 시스템(100)은 제2 FlowMod 오픈 플로우 패킷을 중간 스위치로 전송한 후, 제2 ICMP 패킷 요청 신호를 생성하여 중간 스위치로 전송한다(S113). 제2 ICMP 패킷 요청 신호에는 ICMP 요청 패킷에 포함될 주소 정보가 포함되어 있다. 여기서, 주소 정보는 중간 스위치가 생성하는 ICMP 요청 패킷의 소스 IP는 소스 호스트 IP, 목적지 주소는 목적지 호스트 IP에 해당한다.
S113 단계에 따라 제2 ICMP 패킷 요청 신호가 중간 스위치로 전송된 뒤, 연결 상태 확인 시스템(100)은 미리 설정된 시간 내에 ICMP 응답 패킷을 수신하였는지 확인한다(S114). 만약 미리 설정된 시간 내에 ICMP 응답 패킷을 수신하지 못하였다면, 재송신 횟수(retry)를 하나 증가시킨다(S115).
그리고 하나 증가된 재송신 횟수가 미리 설정된 임계 횟수보다 많은지 확인한다(S116). 만약 하나 증가된 재송신 횟수가 미리 설정된 임계 횟수보다 적으면, S113 단계 이후의 절차를 반복한다. 그러나 하나 증가된 재송신 횟수가 임계 횟수보다 많으면, 연결 상태 확인 시스템(100)은 중간 스위치로부터 목적지 호스트 사이에 장애가 발생한 것으로 확인한다.
따라서, 연결 상태 확인 시스템(100)은 중간 스위치로 S112 단계에서 전송한 제2 FlowMod 오픈 플로우 패킷에 따라 중간 스위치가 설정한 정책의 삭제를 요청하는 오픈 플로우 패킷을 전송한다(S117). 그리고 중간 스위치로부터 소스 호스트의 경로에 발생한 장애 구간을 탐지하기 위한 장애 탐지 구간을 설정한다(S118).
S118 단계에서 재설정하는 장애 탐지 구간은 중간 스위치에서부터 목적지 호스트 사이에 발생한 장애 구간 중 정확한 위치를 탐지하기 위해, 연결 상태 확인 시스템(100)은 시작 노드를 중간 스위치, 종료 노드를 목적지 호스트로 설정한다. 그리고 S101 단계부터 반복 수행한다.
이상의 절차를 통해 중간 스위치를 중심으로 하여 소스 호스트로부터 중간 스위치 사이, 중간 스위치에서 목적지 호스트 사이의 링크 장애를 탐지하거나 SDN 스위치의 비정상 동작을 탐지하는 과정에 대해 도 7 및 도 8을 참조로 설명한다.
도 7은 본 발명의 실시예에 따른 링크 장애 탐지 과정에 대한 예시도이다.
도 7에는 총 6대의 SDN 스위치(S1 ∼ S6)로 연결된 SDN 네트워크에서 제4 SDN 스위치(S4)와 제5 SDN 스위치(S5)를 연결하는 케이블 혹은 L2 장비의 비정상 동작으로 인한 문제를 탐지하는 과정을 나타내었다.
도 7의 (b)에 도시된 바와 같이, 연결 상태 확인 시스템(100)은 총 6대의 SDN 스위치 중 제3 SDN 스위치(S3)를 중간 스위치로 선정한다. 그 후 연결 상태 확인 시스템(100)은 중간 스위치(S3)에서 소스 호스트(Hsrc)로 연결된 포트를 향해, 소스 호스트(Hsrc)에 대한 ICMP 요청 패킷을 생성하여 전달한다. 여기서 ICMP 요청 패킷을 생성하는 방법이나 전달 방법 등은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
전달된 ICMP 요청 패킷은 제2 SDN 스위치(S2), 제1 SDN 스위치(S1) 순서대로 거쳐, 소스 호스트(Hsrc)까지 전달되며, 이 과정을 통해 제2 SDN 스위치(S2)와 제1 SDN 스위치(S1)의 정상 동작과 링크간의 연결 상태를 확인하게 된다. 이와 동일하게 연결 상태 확인 시스템(100)은 중간 스위치에서 목적지 호스트(Hdest)로 연결된 포트를 향해 목적지 호스트(Hdest)에 대한 ICMP 요청 패킷을 생성하여 전달한다.
이때, 도 7의 (a)에 나타낸 바와 같이 제4 SDN 스위치(S4)와 제5 SDN 스위치(S5) 사이의 링크에 장애가 발생한 상황을 예로 하여 설명하므로, 도 7의 (b)에 나타낸 바와 같이 연결 상태 확인 시스템(100)에서 발생한 ICMP 요청 패킷은 제5 SDN 스위치(S5)로 정상적으로 전달되지 못한다. 이를 통해 연결 상태 확인 시스템(100)은 제3 SDN 스위치(S3)와 목적지 호스트(Hdest) 사이에 장애가 발생함을 인지한다.
따라서, 연결 상태 확인 시스템(100)은 장애의 발생 범위를 기존 제1 SDN 스위치(S1)로부터 제6 SDN 스위치(S6)에서, 제3 SDN 스위치(S3)로부터 제6 SDN 스위치(S6)까지 절반으로 줄이고, 도 7의 (c)에 나타낸 바와 같이 중간 스위치를 제4 SDN 스위치(S4)로 재설정한 후, 장애 발생 여부를 다시 예측한다. 이러한 과정을 도 7의 (d)에 나타낸 바와 같이 반복적으로 수행하고, 최종적으로 도 7의 (e)에 나타낸 바와 같이 스위치 제4 SDN 스위치(S4)와 제5 SDN 스위치(S5)로 장애 범위를 축소 할 수 있으며, 이를 운용자의 단말로 통보해 준다.
도 8은 본 발명의 실시예에 따른 SDN 스위치의 비정상 동작 탐지 과정에 대한 예시도이다.
도 8에서는 총 6대의 SDN 스위치(S1 ∼ S6)로 연결된 SDN 네트워크에서, 제4 SDN 스위치(S4)의 장애로 인해 발생한 문제를 탐지하는 과정을 나타낸 것이다.
도 8의 (a)에 도시된 바와 같이, 연결 상태 확인 시스템(100)은 총 6대의 스위치 중 제3 SDN 스위치(S3)를 중간 스위치로 선정한다. 그 후 연결 상태 확인 시스템(100)은 중간 스위치(S3)에서 소스 호스트(Hsrc)로 연결된 포트를 향해, 소스 호스트(Hsrc)에 대한 ICMP 요청 패킷을 생성하여 전달한다.
전달된 ICMP 요청 패킷은 제2 SDN 스위치(S2), 제1 SDN 스위치(S1) 순서대로 거쳐, 소스 호스트(Hsrc)까지 전달되며, 이 과정을 통해 제2 SDN 스위치(S2)와 제1 SDN 스위치(S1)의 정상 동작과 링크간의 연결 상태를 확인하게 된다. 이와 동일하게 연결 상태 확인 시스템(100)은 중간 스위치에서 목적지 호스트(Hdest)로 연결된 포트를 향해 목적지 호스트(Hdest)에 대한 ICMP 요청 패킷을 생성하여 전달한다.
이때, 도 8의 (a)에 나타낸 바와 같이 제4 SDN 스위치(S4)에 장애가 발생한 상황을 예로 하여 설명하므로, 도 8의 (b)에 나타낸 바와 같이 연결 상태 확인 시스템(100)에서 발생한 ICMP 요청 패킷은 제5 SDN 스위치(S5)로 정상적으로 전달되지 못한다. 이를 통해 연결 상태 확인 시스템(100)은 제3 SDN 스위치(S3)와 목적지 호스트(Hdest) 사이에 장애가 발생함을 인지한다.
따라서, 연결 상태 확인 시스템(100)은 장애의 발생 범위를 기존 제1 SDN 스위치(S1)로부터 제6 SDN 스위치(S6)에서, 제3 SDN 스위치(S3)로부터 제6 SDN 스위치(S6)까지 절반으로 줄이고, 도 8의 (c)에 나타낸 바와 같이 중간 스위치를 제4 SDN 스위치(S4)로 설정한 후, 다시 예측하게 된다. 즉, 연결 상태 확인 시스템(100)은 중간 스위치를 제4 SDN 스위치(S4)를 중간 스위치로 다시 선정한 후, 소스 호스트(Hsrc)와 목적지 호스트(Hdest)로 다시 ICMP 요청 패킷을 생성하여 전달해 준다.
이때, 제4 SDN 스위치(S4)가 장애가 발생한 것을 예로 하여 설명하고 있으므로, 소스 호스트(Hsrc)로 전달한 ICMP 요청 패킷이 정상적으로 전달되지 않는다. 따라서, 연결 상태 확인 시스템(100)은 도 8의 (d)에 나타낸 바와 같이 장애의 범위를 제3 SDN 스위치(S3) 또는 제4 SDN 스위치(S4)로 축소한 후, 이들 두 SDN 스위치가 장애 발생 위치로 추정됨을 운용자의 단말로 통보해 준다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (18)

  1. 연결 상태 확인 시스템이 SDN 네트워크에서 종단의 호스트간 연결 상태를 확인하는 방법에 있어서,
    제1 호스트와 제2 호스트 사이를 연결하는 적어도 하나 이상의 SDN 스위치 중 중간 스위치를 선정하는 단계;
    상기 중간 스위치로 패킷 요청 신호를 전송하는 단계;
    상기 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 요청 패킷에 대하여, 상기 제1 호스트 또는 제2 호스트에서 생성한 응답 패킷을 상기 중간 스위치를 통해 수신하였는지 확인하는 단계; 및
    상기 응답 패킷이 수신되지 않으면, 상기 중간 스위치에서 상기 제1 호스트 사이의 제1 경로 또는 상기 중간 스위치에서 상기 제2 호스트 사이의 제2 경로 또는 제1 경로나 제2 경로에 위치한 적어도 하나 이상의 SDN 스위치 중 어느 하나의 스위치에 장애가 발생한 것으로 탐지하는 단계
    를 포함하는 연결 상태 확인 방법.
  2. 제1항에 있어서,
    상기 중간 스위치를 선정하는 단계는,
    상기 제1 호스트와 제2 호스트 각각의 주소 정보와 상기 제1 호스트로부터 제2 호스트까지의 경로 정보를 수신하는 단계;
    상기 제1 호스트를 시작 호스트로, 상기 제2 호스트를 목적지 호스트로 하여 장애 탐지 구간을 설정하는 단계;
    상기 제1 호스트로부터 제2 호스트 사이에 연결된 SDN 스위치가 적어도 둘 이상인지 확인하는 단계; 및
    상기 연결된 SDN 스위치가 둘 이상이면, 둘 이상의 SDN 스위치 중 상기 중간 스위치를 선정하는 단계
    를 포함하는 연결 상태 확인 방법.
  3. 제1항에 있어서,
    상기 중간 스위치로 동작 정책이 포함되어 있는 패킷 요청 신호를 전송하는 단계는,
    상기 중간 스위치로 패킷을 전송하는 단계; 및
    상기 중간 스위치로 패킷 요청 신호를 전송하는 단계
    를 포함하고,
    상기 패킷은 FlowMod 패킷으로, 상기 중간 스위치가 상기 제1 호스트에서 생성되어 상기 제2 호스트로 향하는 제1 응답 패킷을 수신한 경우 이를 처리할 동작 정책 또는, 상기 중간 스위치가 상기 제2 호스트에서 생성되어 상기 제1 호스트로 향하는 제2 응답 패킷을 수신한 경우 이를 처리할 동작 정책이 포함되어 있는 연결 상태 확인 방법.
  4. 제3항에 있어서,
    상기 패킷 요청 신호를 전송하는 단계는,
    출발지 주소를 목적지 호스트인 제1 호스트, 목적지 주소를 소스 호스트인 제2 호스트가 되도록 제1 ICMP 패킷 요청 신호를 생성하고,
    출발지 주소를 상기 제2 호스트, 목적지 주소는 상기 제1 호스트가 되도록 제2 ICMP 패킷 요청 신호를 생성하는 연결 상태 확인 방법.
  5. 제4항에 있어서,
    상기 응답 패킷은,
    상기 제1 ICMP 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 ICMP 요청 패킷에 대하여 상기 제1 호스트가 생성한 제1 응답 패킷 또는 상기 제2 ICMP 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 ICMP 요청 패킷에 대하여 상기 제2 호스트가 생성한 제2 응답 패킷 중 어느 하나인 연결 상태 확인 방법.
  6. 제5항에 있어서,
    상기 장애가 발생한 것으로 탐지하는 단계는,
    상기 중간 스위치로부터 상기 제1 응답 패킷을 전달받지 못하면, 상기 제1 ICMP 패킷 요청 신호에 대한 재송신 횟수를 하나 증가시키는 단계; 및
    하나 증가된 재송신 횟수가 미리 설정한 임계 횟수보다 많으면, 상기 제1 경로 또는 상기 제1 경로상의 적어도 하나 이상의 SDN 스위치 중 어느 하나의 SDN 스위치에 장애가 발생한 것으로 확인하고 장애 탐지 구간을 재설정하는 단계
    를 포함하는 연결 상태 확인 방법.
  7. 제6항에 있어서,
    상기 장애 탐지 구간을 설정하는 단계는,
    상기 중간 스위치로부터 제1 호스트의 경로에 발생한 장애 구간을 탐지하기 위하여, 상기 중간 스위치를 종료 노드로 상기 제1 호스트를 시작 노드로 하는 장애 탐지 구간을 재설정하는 연결 상태 확인 방법.
  8. 제6항에 있어서,
    상기 장애가 발생한 것으로 탐지하는 단계는,
    상기 중간 스위치로부터 상기 제1 응답 패킷을 전달받으면, 상기 중간 스위치로 패킷을 전송하는 단계;
    상기 제2 ICMP 패킷 요청 신호를 상기 중간 스위치로 전송하는 단계;
    상기 중간 스위치로부터 상기 제2 응답 패킷을 전달받지 못하면, 상기 제2 ICMP 패킷 요청 신호에 대한 재송신 횟수를 하나 증가시키는 단계; 및
    하나 증가된 재송신 횟수가 미리 설정한 임계 횟수보다 많으면, 상기 제2 경로 또는 상기 제2 경로상의 적어도 하나 이상의 SDN 스위치 중 어느 하나의 SDN 스위치에 장애가 발생한 것으로 확인하고 장애 탐지 구간을 재설정하는 단계
    를 포함하는 연결 상태 확인 방법.
  9. 제8항에 있어서,
    상기 장애 탐지 구간을 설정하는 단계는,
    상기 중간 스위치로부터 제2 호스트의 경로에 발생한 장애 구간을 탐지하기 위하여, 상기 중간 스위치를 시작 노드로 상기 제2 호스트를 종료 노드로 하는 장애 탐지 구간을 재설정하는 연결 상태 확인 방법.
  10. 오픈플로우 기반의 SDN 네트워크에서 종단의 호스트간의 연결 상태를 확인하는 시스템에 있어서,
    제1 호스트와 제2 호스트 사이를 연결하는 적어도 하나 이상의 SDN 스위치 중 선정된 중간 스위치로 패킷 또는 패킷 요청 신호를 전송하고, 상기 패킷 요청 신호를 토대로 상기 중간 스위치가 생성한 요청 패킷에 대하여 상기 제1 호스트 또는 제2 호스트에서 전송하는 응답 패킷을 상기 중간 스위치로부터 수신하는 인터페이스; 및
    상기 하나 이상의 SDN 스위치 중 중간 스위치를 선정하고, 상기 중간 스위치로 전송할 상기 패킷과 패킷 요청 신호를 생성하며, 상기 중간 스위치로부터 상기 응답 패킷의 수신 여부에 따라 상기 제1 호스트와 제2 호스트간의 연결 상태를 확인하는 프로세서
    를 포함하는 연결 상태 확인 시스템.
  11. 제10항에 있어서,
    상기 패킷은 상기 중간 스위치가 상기 제1 호스트에서 생성되어 상기 제2 호스트로 향하는 제1 응답 패킷 또는 상기 제2 호스트에서 생성되어 상기 제1 호스트로 향하는 제2 응답 패킷을 수신하면, 응답 패킷을 상기 프로세서로 전달하도록 하는 동작 정책을 포함하는 제1 패킷과 제2 패킷을 포함하는 연결 상태 확인 시스템.
  12. 제11항에 있어서,
    상기 패킷 요청 신호는 상기 제1 호스트와 제2 호스트를 출발지 주소 또는 목적지 주소로 각각 설정되어 있는 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호를 포함하는 연결 상태 확인 시스템.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 제1 호스트와 제2 호스트 각각의 주소 정보와 상기 제1 호스트로부터 제2 호스트까지의 경로 정보를 토대로 상기 중간 스위치를 선정하는 연결 상태 확인 시스템.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 제1 ICMP 패킷 요청 신호의 출발지 주소는 목적지 호스트인 제1 호스트, 목적지 주소는 소스 호스트인 제2 호스트를 갖도록 생성하고,
    상기 제2 ICMP 패킷 요청 신호의 출발지 주소는 제2 호스트, 목적지 주소는 제1 호스트를 갖도록 생성하는 연결 상태 확인 시스템.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 중간 스위치로부터 미리 설정한 시간 내에 상기 제1 응답 패킷 또는 제2 응답 패킷이 미리 설정한 횟수 이상 수신되지 않으면, 상기 중간 스위치로부터 상기 제1 호스트 사이의 제1 경로나 제1 경로상의 임의의 SDN 스위치, 또는 상기 중간 스위치로부터 상기 제2 호스트 사이의 제2 경로나 제2 경로상의 임의의 SDN 스위치 중 어느 하나에 장애가 발생한 것으로 판단하는 연결 상태 확인 시스템.
  16. 제15항에 있어서,
    상기 프로세서는,
    제1 경로나 제1 경로상의 임의의 SDN 스위치에서 장애가 발생한 것으로 판단하면, 상기 제1 호스트를 시작 노드로 상기 중간 스위치를 종료 노드로 하여 장애 탐지 구간을 재설정하고,
    제2 경로나 제2 경로상의 임의의 SDN 스위치에서 장애가 발생한 것으로 판단하면, 상기 중간 스위치를 시작 노드로 상기 제2 호스트를 종료 노드로 하여 장애 탐지 구간을 재설정하는 연결 상태 확인 시스템.
  17. 제15항에 있어서,
    상기 중간 스위치는,
    상기 인터페이스를 통해 전송되는 상기 패킷을 수신하면, 상기 패킷에 포함된 동작 정책에 따라, 상기 제1 호스트로부터 전송되는 제1 응답 패킷 또는 상기 제2 호스트로부터 전송되는 제2 응답 패킷을 상기 인터페이스를 통해 프로세서로 전달하며,
    상기 패킷은 FlowMod 패킷인 연결 상태 확인 시스템.
  18. 제17항에 있어서,
    상기 중간 스위치는,
    상기 인터페이스를 통해 전송되는 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호를 수신하면, 상기 제1 ICMP 패킷 요청 신호와 제2 ICMP 패킷 요청 신호에 각각 포함되어 있는 주소 정보를 토대로 ICMP 요청 패킷을 생성하는 연결 상태 확인 시스템.
KR1020170018372A 2017-02-09 2017-02-09 Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법 KR20180093175A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170018372A KR20180093175A (ko) 2017-02-09 2017-02-09 Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170018372A KR20180093175A (ko) 2017-02-09 2017-02-09 Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20180093175A true KR20180093175A (ko) 2018-08-21

Family

ID=63453959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170018372A KR20180093175A (ko) 2017-02-09 2017-02-09 Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20180093175A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102221052B1 (ko) * 2020-11-30 2021-02-25 윤동권 Sdn 오픈플로우 프로토콜을 지원하는 네트워크 장비의 장애처리 시스템
KR102411419B1 (ko) 2021-08-17 2022-06-22 주식회사 피오텍 네트워크 통합 배선 장애 관리 시스템 및 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102221052B1 (ko) * 2020-11-30 2021-02-25 윤동권 Sdn 오픈플로우 프로토콜을 지원하는 네트워크 장비의 장애처리 시스템
KR102411419B1 (ko) 2021-08-17 2022-06-22 주식회사 피오텍 네트워크 통합 배선 장애 관리 시스템 및 그 방법
KR102411423B1 (ko) 2021-08-17 2022-06-22 주식회사 피오텍 이종 네트워크 통합 배선 장애 관리 시스템 및 그 방법
KR20230026245A (ko) 2021-08-17 2023-02-24 정인택 단일 서버 기반의 이종 네트워크 통합 배선 장애 관리 시스템

Similar Documents

Publication Publication Date Title
US8804719B2 (en) In-band multicast trace in IP and MPLS networks
CN108123824B (zh) 一种网络故障检测方法及装置
CN105052083A (zh) 用于网络的可编程管理引擎
JP2006229967A (ja) 高速マルチキャスト・パス切り替え
CN110224883B (zh) 一种应用于电信承载网的灰色故障诊断方法
CN101471822A (zh) 一种定位网络故障的方法和系统
EP2822234A1 (en) Relay device, relay device control method, and network system
KR20140072343A (ko) Sdn 망의 장애 대처 방법
WO2007073649A1 (fr) Procede et systeme pour obtenir une unite de transfert maximale de voie dans un reseau
EP2553870B1 (en) An operations, administrations and management proxy and a method for handling operations, administrations and management messages
JP4510751B2 (ja) ネットワーク障害検出装置
EP2712135A1 (en) Network system, transmission device, and fault information delivery method
JP2012054622A (ja) ネットワークシステム、管理サーバ及びoam試験管理方法
US20150236920A1 (en) Method and apparatus for determining connection information of a link
US6931441B1 (en) Method and apparatus for managing a network using link state information
KR20180093175A (ko) Sdn 네트워크의 종단간 연결 상태 확인 시스템 및 방법
CN105939215B (zh) Vrrp备份组状态切换的方法及装置
TWI587661B (zh) 混合式軟體定義網路的虛擬區域網路復原方法、系統及其裝置
US7593323B2 (en) Apparatus and methods for managing nodes on a fault tolerant network
WO2012070274A1 (ja) 通信システムおよびネットワーク障害検出方法
KR101589384B1 (ko) Bgp 라우팅에 대한 장애 처리 방법
JP2013046164A (ja) ネットワークシステムおよびネットワーク故障回避方法
KR101625399B1 (ko) 소프트웨어 정의 네트워크에서의 tcp 연결 제어 방법 및 장치
KR20190001402A (ko) 소프트웨어 정의 네트워크에서의 소프트웨어 정의 네트워크 제어기, 이를 이용한 장애 복구 그룹 생성 방법 및 장애 복구 방법
KR101969304B1 (ko) 패킷-아웃 메시지를 이용한 소프트웨어 정의 네트워킹 환경에서의 장애 처리 방법 및 컴퓨터 프로그램