KR101527786B1 - 하이브리드 sdn 네트워크 관리 방법 - Google Patents

하이브리드 sdn 네트워크 관리 방법 Download PDF

Info

Publication number
KR101527786B1
KR101527786B1 KR1020130169240A KR20130169240A KR101527786B1 KR 101527786 B1 KR101527786 B1 KR 101527786B1 KR 1020130169240 A KR1020130169240 A KR 1020130169240A KR 20130169240 A KR20130169240 A KR 20130169240A KR 101527786 B1 KR101527786 B1 KR 101527786B1
Authority
KR
South Korea
Prior art keywords
open flow
legacy
packet
routing
flow
Prior art date
Application number
KR1020130169240A
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 KR1020130169240A priority Critical patent/KR101527786B1/ko
Application granted granted Critical
Publication of KR101527786B1 publication Critical patent/KR101527786B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

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

Abstract

본 발명은 SDN(Software Defined Network) 기반의 네트워크와 기존의 레거시 네트워크와 상호 운용 가능한 하이브리드 SDN 플랫폼에 관한 것이다. 이에 본 발명에 따른 하이브리드 SDN 시스템은, 플로우 테이블에 기초하여 패킷을 목적지로 전송하는 복수의 오픈플로우 스위치, 상기 복수의 오픈플로우 스위치의 패킷 제어 정보를 구비하며, 상기 패킷 제어 정보를 이용하여 상기 복수의 오픈플로우 스위치의 플로우 테이블이 업데이트 되도록 하며, 상기 복수의 오픈플로우 스위치 중 제1 스위치로부터 수신한 패킷이 레거시 프로토콜 메시지인지 판단하며, 레거싱 라우팅 경로에 연관된 오픈플로우 포워딩 구문에 기초하여 상기 복수의 오픈플로우 스위치의 적어도 하나의 플로우 테이블이 업데이트 되도록 하는 컨트롤러, 라우팅 어플리케이션용 레거시 메시지를 이용하여 레거시 라우팅 경로를 생성하며, 상기 복수의 오픈플로우 스위치 각각에 대응하는 가상화된 복수의 라우팅 어플리케이션으로서, 상기 복수의 라우팅 어플리케이션 중 제1 라우팅 어플리케이션은 상기 제1 오픈플로우 스위치에서 수신한 패킷에 연관된 라우팅 어플리케이션 레거시 메시지를 이용하는, 상기 복수의 라우팅 어플리케이션, 및 상기 수신 패킷을 상기 라우팅 어플리케이션용 레거시 메시지로 변환하는 컴파일러를 포함할 수 있다.

Description

하이브리드 SDN 네트워크 관리 방법 {METHOD FOR MANAGING HYBRID SDN NETWORK}
본 발명은 SDN(Software Defined Network) 기반의 네트워크와 기존의 레거시 네트워크와 상호 운용 가능한 하이브리드 SDN 플랫폼에 관한 것이다.
휴대 장치 서버 가상화의 현재 폭발적인 증가와 클라우드 서비스의 출현으로, 네트워크 수요가 늘어났으며, 비즈니스 조건의 변화에도 응해야 한다. SDN은 어플리케이션에서 추상화된 기본적인 네트워크 인프라 구조이며, 논리적으로 중앙 집중적인 네트워크 인텔리전스(network intelligence)이며, 제어 플레인과 데이터 플레인이 분리되어 있는 것을 특징으로 한다.
혁신적인 프로토콜을 배포하는 개방형 표준으로 알려진 Openflow는, 보다 유연하고 예측 가능한 네트워크 제어 할 수 있는 네트워크 스위치의 첫 번째 표준 통신 인터페이스로 취급된다. 오픈 플로우는 고속 패킷 전달과 높은 레벨의 라우팅 결정 기능들을 분리한다. 패킷 포워딩 플레인은 여전히 스위치 단에 관여되며, 반면 고수준 라우팅 결정은 분리된 컨트롤러에서 관여되며, 이들은 오픈 플로우 프로토콜을 통해 통신한다.
다른 제어 플레인과의 통합을 위한 하이브리드 SDN 방식으로, Generalized MPLS(Mutiprotocol Label Switching)(이하, 'GMPLS') 제어 플레인과 SDN과의 통합 방식이 있다. SDN 컨트롤러에 GMPLS 에이전트를 임베딩하여 GMPLS 컨트롤러와 SDN 컨트롤러 사이의 상호 연결되도록 하는 방식이다. 그러나, GMPLS는 현재 기존의 네트워크에서 일반 제어 플레인이 아니다. SDN에 기존의 제어 플레이 프로토콜 스택을 사용하기 위해, 포워딩 및 제어 평면의 효과적인 분리를 통해 중앙 집중 방식으로 원격 IP 라우팅 서비스가 가능하도록 하는 아키텍쳐가 있다. 이 아키텍쳐에서, 가상 네트워크를 기반으로 한라우팅 엔진은, Quagga 라우팅 엔진에 따라, RIB(Routing Information Base) 및 FIB(Forwarding Information Base)를 생성한다. 차례로, Openflow를 지원하는 관련된 데이터 플레인 장치로 업데이트하기 위해, RIB/FIB 정보는 Openflow 규칙으로 변환된다. 제어 플레인에서 데이터 플레인으로의 정보가 업데이트되어도, 물리적인 이유에 의한 반대 방향으로의 전환과 기존 네트워크와의 통합을 지원하지는 않는다.
기존 네트워크에서 SDN으로의 전환 과도기로서, 기존 프로토콜과 장치와 상호 작용하는 소프트웨어 정의 네트워크의 필요성이 있다.
따라서, 본 발명의 목적은 기존의 레거시 프로토콜과 SDN 어플리케이션에 기초한 유저 정의 프로토콜 모두를 지원하는 하이브리드 SDN을 지원하는 아키텍쳐를 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 하이브리드 SDN 네트워크 관리 방법는, SDN(Software Defined Network) 아키텍쳐의 코어 네트워크를 구성하는 오픈플로우 스위치에서 패킷을 수신 여부를 감지하는 단계, 상기 오픈플로우 스위치에서 상기 수신 패킷이 상기 오픈플로우 스위치의 플로우 테이블에 해당 조건이 있는지 판단하는 단계, 상기 수신 패킷에 대한 상기 플로우 테이블의 해당 조건이 없으면 상기 수신 패킷을 상기 오픈플로우 스위치에서 상기 오픈플로우 스위치를 포함하는 복수의 오픈플로우 스위치를 관리하는 컨트롤러로 오픈플로우 프로토콜을 통해 전송하는 단계, 상기 수신 패킷이 레거시 프로토콜 메시지인지 판단하는 단계, 상기 수신 패킷이 레거시 프로토콜 메시지이면 라우팅 어플리케이션용 메시지로 변환하는 단계, 상기 변환된 라우팅 어플리케이션용 메시지를 상기 오픈플로우 스위치에 대응하는 레거시 라우팅 어플리케이션으로 전달하는 단계, 상기 레거시 라우팅 어플리케이션에서 상기 라우팅 어플리케이션 메시지를 이용하여 레거시 라우팅 패스를 생성하여 상기 컨트롤러로 전송하는 단계, 상기 레거시 라우팅 패스를 오픈플로우 프로토콜 플로우로 변환하는 단계, 및 상기 오픈플로우 프로토콜 플로우를 기초로 상기 오픈플로우 스위치의 플로우 테이블을 업데이트하는 단계를 포함할 수 있다.
한편, 본 발명에 따른 하이브리드 SDN 시스템은, 플로우 테이블에 기초하여 패킷을 목적지로 전송, 수정, 및 폐기 중 어느 하나를 수행하는 복수의 오픈플로우 스위치, 상기 복수의 오픈플로우 스위치의 패킷 제어 정보를 구비하며, 상기 패킷 제어 정보를 이용하여 상기 복수의 오픈플로우 스위치의 플로우 테이블이 업데이트 되도록 하며, 상기 복수의 오픈플로우 스위치 중 제1 스위치로부터 수신한 패킷이 레거시 프로토콜 메시지인지 판단하며, 레거싱 라우팅 경로에 연관된 오픈플로우 포워딩 구문에 기초하여 상기 복수의 오픈플로우 스위치의 적어도 하나의 플로우 테이블이 업데이트 되도록 하는 컨트롤러, 라우팅 어플리케이션용 레거시 메시지를 이용하여 레거시 라우팅 경로를 생성하며, 상기 복수의 오픈플로우 스위치 각각에 대응하는 가상화된 복수의 라우팅 어플리케이션으로서, 상기 복수의 라우팅 어플리케이션 중 제1 라우팅 어플리케이션은 상기 제1 오픈플로우 스위치에서 수신한 패킷에 연관된 라우팅 어플리케이션 레거시 메시지를 이용하는, 상기 복수의 라우팅 어플리케이션, 및 상기 수신 패킷을 상기 라우팅 어플리케이션용 레거시 메시지로 변환하는 컴파일러를 포함할 수 있다.
본 발명에 따른 하이브리드 SDN 네트워크 시스템은, 유연하게 레거시 라우팅 프로토콜과 SDN에 기초한 유저 정의 프로토콜 모두를 만족할 수 있다. 또한 제어 플레인 및 데이터 플레인 사이에 정보가 서로 왕래될 수 있다. 또한 서비스 제공자는 새로운 기능을 쉽게 시도할 수 있으며 기존 네트워크 상에 새로운 어플리케이션 및 서비스를 개발할 수 있도록 할 수 있다.
도 1은 본 발명의 일실시예에 따른 SDN 아키텍쳐의 블록 구성도(block diagram),
도 2는 본 발명의 일실시예에 따른 하이브리드 SDN 시스템의 블록 구성도, 및
도 3은 본 발명의 일실시예에 따른 하이브리드 SDN 네트워크 관리 방법으로 도시한 순서도이다.
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다.
클라우드 환경에서는 간단한 사용자 조작으로 네트워크 부하를 분산하고 트래픽을 모니터링하며 서로 다른 데이터 센터나 서로 다른 지역 또는 서로 다른 국가에서 운영 중인 서버에 대해 네트워크를 관리할 수 있도록 하는 기술이 필요하다. 클라우드 서비스에는 하나의 물리 서버에서 하나 이상의 가상 머신(virtual machine; VM)을 제공하는 서버 가상화 기술뿐만 아니라, 물리 네트워크에서 가상의 네트워크 환경을 제공하는 네트워크 가상화 기술이 적용되어야 한다. 이러한 클라우드 환경에서는 보안(security), 자동화(automation), 확장성(ssalability)가 만족되어야 한다. 이러한 요건을 만족할 수 있는 아키텍처로 SDN(Software Defined Network)가 있다.
도 1은 본 발명의 일실시예에 따른 SDN 아키텍쳐의 블록 구성도(block diagram)이다. 도 1을 참조하면, 네트워크 디바이스를 포함하는 인프라 계층(30)은 단순히 패킷을 전달하는 역할을 한다. SDN 컨트롤러(10)가 패킷의 흐름을 제어한다. 즉 SDN에서는 패킷이 발생한 경우, 네트워크 장비(31)는 패킷을 어디로 전달할 지 SDN 컨트롤러(10)로 요청하고, 그 결과를 반영하여 패킷을 전송하는 경로와 방식을 결정한다. 이러한 SDN을 구현하기 위해 오픈플로우(OpenFlow)가 이용된다.
오픈플로우는 오픈플로우 스위치 및 오픈플로우 컨트롤러로 구성될 수 있다. 오픈플로우는 흐름(flow) 정보를 제어하여 패킷의 전달 경로 및 방식을 결정한다. 오픈플로우 스위치와 오픈플로우 컨트롤러는 오픈플로우 프로토콜을 통해 서로 통신할 수 있다. 도 1에서 네트워크 장비(10)는 오픈프롤우 스위치에, SDN 컨트롤러(10)는 오픈플로우 컨트롤러에 대응될 수 있다.
오픈플로우 스위치(31) 내부에는 패킷 전달 경로와 방식에 대한 정보를 가지고 있는 플로우 테이블(Flow Table)을 포함한다. 패킷이 발생하면 제일 먼저 프로우 테이블이 해당 패킷에 대한 정보를 가지고 있는지 확인한다. 오픈플로우 스위치(31)는 패킷에 대한 정보가 존재하면 그에 맞춰 패킷을 처리하고, 정보가 존재하지 않으면 해당 패킷에 대한 제어 정보를 컨트롤러(10)에 문의한다.
오픈플로우 스위치(31)로부터 제어 정보를 요청 받은 컨트롤러(10)는 내부에 존재하는 패킷 제어 정보를 확인하고, 해당 결과를 오픈플로우 스위치(31)에 전달한다. 컨트롤러(10) 내의 패킷 제어 정보는 외부의 프로그램(어플리케이션)에서 API를 통해 입력 받을 수 있다. 오픈플로우 스위치(31)는 컨트롤러(10)로부터 전달 받은 제어 정보를 플로우 테이블에 저장하고, 이후 동일한 패킷이 발생하면 플로우 테이블에 있는 정보를 활용하여 패킷을 전달한다.
플로우 테이블은 헤더 필드(Header Fields; 또는 match field), 카운터(Counters), 액션(Actions)으로 구성된 플로우 엔트리(flow entry)들이 모인 것이다. 헤더 필드는 스위치 포트, 이더넷 및 프로토콜 정보, 출발지/목적지의 MAC/IP 주소/포트/우선 순위 등의 튜플(tuple)을 포함할 수 있다. 헤더 필드 정보와 패킷의 정보가 일치하는 지 여부에 따라, 발생한 패킷이 플로우 테이블에 존재하는지 결정한다. 액션은 패킷 정보가 헤더 필드 정보와 일치할 때 어떻게 패킷을 처리할지에 대한 정보를 담고 있다. 액션 처리 방식은 스위치에 정의되어 있는 경로에 따라 패킷 전달, 정해진 하나의 포트 또는 여러 개의 포트로 패킷 전달(전달 경로 변경), 및 패킷이 더 이상 전달되지 못하도록 차단(drop) 방식이 있다. 카운터는 플로우 테이블에 제어 정보가 등록된 순간부터 현재까지의 시간을 측정하는 용도 또는 플로우 엔트리 별로 송수신되는 트래픽의 양을 패킷의 수와 바이트로 나타내어 경로 계산 시 매개 변수로 이용할 수도 있다.
스위치(31)와 컨트롤러(10)간 연결설정은 다음과 같다. OpenFlow 스위치(31)를 OpenFlow 네트워크에 최초로 설치할 때에는 사전에 스위치를 제어할 컨트롤러(10)의 IP 주소를 설정해 두어야 한다. 케이블이 연결되면 스위치(31)는 컨트롤러의 착신 IP주소에 대해 3-way handshake를 시작하여 TCP connection을 확립한다. TCP connection 이 확립되면, 컨트롤러(10)와 스위치(31)의 사이에 OpenFlow 프로토콜을 사용한 메세지의 교환이 시작된다. 우선 서로 대응하는 프로토콜의 버젼을 확인하기 위해 Hello 메시지를 교환한다. 그 다음에, 컨트롤러(10)와 스위치간(31)에 FeaturesRequest 와 FeaturesReply 메시지를 교환하여 스위치(31)가 지원하는 기능을 확인한다. 그 후, 컨트롤러(10)가 스위치(31)에게 필요한 설정을 보내거나 스위치(31)의 상태를 확인 한다. 이어서 컨트롤러(10)는 연결된 스위치들에게 LLDP(Link Layer Discovery Protocol) request를 보낸다. 이 요청을 받은 각 스위치들은 LLDP 응답을 보내고 컨트롤러는 그 응답을 모아 토폴로지 맵을 작성한다. 그 다음은 각 스위치가 자신에게 연결되어 있는 단말들의 정보를 ARP 로 검출하고, 스위치를 식별하는 ID, 포트번호 등을 추가하여 컨트롤러(10)에게 보낸다. 이로써 컨트롤러(10)는 단말을 포함한 토폴로지 맵을 작성하게 된다. 이러한 절차를 통해 OpenFlow 연결이 성립되고 통신 준비가 갖추어 진 상태가 된다.
프레임의 전송 과정은 다음과 같다. 2 가지 패턴이 있는데, 첫째는 스위치(31)가 해당 프레임에 대한 플로우 엔트리를 이미 가지고 있는 경우로, 연결이 성립되면 OpenFlow 컨트롤러(10)가 플로우의 등록, 변경 또는 삭제를 요구하는 FlowModify 메세지를 스위치(31)에게 보내어 플로우 엔트리들의 등록을 통합하여 지시한다. 둘째는, 이전에 수신한 적이 없는 새로운 프레임을 받은 순간에 OpenFlow 스위치(31)가 컨트롤러(10)에 플로우 엔트리를 조회하는 방식이다. 스위치(31)는 단말로부터 받은 프레임을 일단 버퍼에 저장하고 컨트롤러(10)에 적합한 플로우 엔트리를 문의한다. 이때, PacketIn 메세지로 수신 프레임의 일부 데이터를 컨트롤러(10)에게 송신한다. 컨트롤러(10)는 이 데이터를 기반으로 하여 경로를 계산하고, FlowModify 메세지로 플로우 엔트리를 써넣도록 지시한다. 그리고 프레임의 착신지를 PacketOut 메세지로 지정해 준다. 이 지정에 따라 스위치(31)는 버퍼에 저장하고 있던 프레임을 착신지로 송신한다. 이후 같은 패킷을 받으면 OpenFlow 스위치(31)는 플로우 테이블에 저장된 플로우 엔트리를 참조하면 되므로 다시 컨트롤러에 문의할 필요는 없다.
도 2는 본 발명의 일실시예에 따른 하이브리드 SDN 시스템의 블록 구성도이다. 도 1을 참조한다.
도 2를 참조하면, 하이브리드 SDN 시스템(100)은 제어 플레인의 컨트롤러(10), SDN 아키텍쳐와 기존의 레거시 네트워크 아키텍쳐 사이의 메시지를 서로 변환하는 컴파일러(15), 레거시 네트워크 장비로 유입되는 패킷이 올바른 물리적 포트로 출력될 수 있도록 경로를 설정, 관리 및 해제하는 제1 내지 제3 라우팅 어플리케이션(210, 212, 214), 및 제1 내지 제3 오픈플로우 스위치(110, 112, 114)를 포함할 수 있다. 레거시 네트워크는 기존의 데이터 플레인과 제어 플레인이 결합되어 있는 장비에 의한 네트워크를 의미한다. 이하 ‘레거시’는 명세서 전반에 이러한 의미로 사용한다. 본 실시예에서 제1 내지 제3 라우팅 어플리키에션(210, 212, 214)은 제1 내지 제3 오픈플로우 스위치(110, 112, 114)에 대응하여 생성될 수 있다.
제1 내지 제3 오픈플로우 스위치(110, 112, 114) 각각은 컨트롤러(10)의 명령에 따라 패킷을 목적지로 전송하거나 수정, 폐기하는 등의 처리를 한다. 각 스위치의 주요 부분에 대한 구성은 동일할 수 있다.
제1 스위치(110)는 에이전트(120), 플로우 테이블(130), 및 복수의 포트(140, 145, 147)를 구비할 수 있다. 에이전트(120)는 일종의 어플리케이션 모듈일 수 있다. 에이전트(120)는 오픈플로우 TCP를 통해 컨트롤러(10)와 통신할 수 있다. 에이전트(120)는 포트(140, 145, 147)에 패킷이 유입되는 감지할 수 있다. 에이전트(120)는 제1 포트(140)를 통해 유입된 패킷에 대해 플로우 테이블(130)에 처리 조건(플로우 엔트리)이 있는지 확인하여, 해당 조건이 있으면 플로우 테이블(130)을 참조하여 유입 패킷을 처리할 수 있다. 에이전트(120)는 해당 조건이 플로우 테이블(130)에 없으면, 유입 패킷의 일부 또는 전부를 컨트롤러(10)로 전송하며 컨트롤러(10)에 플로우 엔트리를 조회할 수 있다. 본 실시예의 경우, 에이전트(120)는 유입되는 패킷 전부를 컨트롤러(10)로 전송하는 것이 바람직하다. 에이전트(120)는 컨트롤러(10)로부터 수신한 제어 명령을 기초로 플로우 테이블(130)의 플로우 엔트리를 등록, 변경, 삭제 등의 수정 작업을 할 수 있다.
컨트롤러(10)는 제1 스위치(110)로부터 수신한 메시지의 종류를 판단할 수 있다. 컨트롤러(10)는 제1 스위치(110)로부터 수신한 메시지가 기존 아키텍쳐인 레거시 라우팅 프로토콜 메시지인 경우 컴파일러(15)로 전송할 수 있다. 제1 스위치(110)로부터 수신한 메시지가 SDN 아키텍쳐 메시지인 경우, 컨트롤러(10)는 도 1에서 설명한 바와 같이 패킷의 제어 정보를 참조하여 제1 스위치(110)로 플로우 제어 명령을 전송한다.
컴파일러(15)는 오픈플로우 프로토콜 메시지와 라우팅 어플리케이션(210, 212, 214)에서 인식할 수 있는 메시지를 상호 변환할 수 있다. 예를 들어, 컨트롤러(10)로부터 수신한 오픈플로우 프로토콜의 메시지를 라우팅 어플리케이션(210, 212, 213)이 인식할 수 있는 메시지로 변환하여 컨트롤러(10)를 통해 해당 메시지를 발송한 스위치에 대응하는 라우팅 어플리케이션으로 전송할 수 있다. 예를 들어 제1 스위치(110)가 수신한 메시지는 컴파일러(15)에 의해 라우팅 어플리케이션이 인식할 수 있는 메시지로 변환된 후, 제1 라우팅 어플리케이션(210)로 전달될 수 있다. 또한 컴파일러(15)는 기존의 라우팅 어플리케이션에 의한 포워딩 규칙을 오픈플로우 포워딩 구문으로 변환할 수 있다.
라우팅 어플리케이션(210, 212, 214)은 레거시 네트워크에서의 라우팅을 결정하는 모듈로, 서드 파티 라우팅 프로토콜 스택이 이용될 수 있다. 각 라우팅 어플리케이션(210, 212, 214)은 경로 결정을 위해 각각 RIB(Routing Information Base) 테이블을 포함할 수 있다.
도 3은 본 발명의 일실시예에 따른 하이브리드 SDN 네트워크 관리 방법으로 도시한 순서도이다. 도 1 및 도 2를 참조한다.
도 3을 참조하면, 임의의 오픈플로우 스위치, 예를 들어, 제1 스위치(110)는 제1 포트(149)로 패킷이 유입되는 것을 알 수 있다(S310).
패킷이 유입되면, 제1 스위치(110)는 수신 패킷을 분석하여 플로우 테이블(130)에 대응하는 조건이 있는 지 판단할 수 있다(S320). 수신 패킷에 대한 해당 조건이 있는 경우, 제1 스위치(110)는 플로우 테이블(130)를 참조하여 수신 패킷을 처리할 수 있다(S325). 수신 패킷에 대한 플로우 엔트리가 없는 경우, 제1 스위치(110)는 수신 패킷의 일부 또는 전부를 컨트롤러(10)로 전송할 수 있다. 이 경우 제1 스위치(110)는 수신 패킷을 버퍼(미도시)에 임시 저장해 놓은 후, 플로우 테이블이 업데이트 되면 플로우 테이블에 따라 출력 포트로 내보낼 수 있다.
컨트롤러(10)는 제1 스위치(110)을 통해 수신한 수신 패킷이 레거시 프로토콜 메시지인지 판단할 수 있다(S330). 수신 패킷이 SDN 아키텍쳐 메시지인 경우, 컨트롤러(10)는 패킷 제어 정보를 참조하여 제1 스위치(110)의 플로우 테이블(130)이 업데이트 되도록 할 수 있다(S335). 수신 패킷이 레거시 프로토콜인 경우, 컨트롤러(10)는, 컴파일러(15)을 이용하여, 수신 패킷이 제1 라우팅 어플리케이션(210)이 인식할 수 있는 라우팅 어플리케이션용 메시지로 변환시킬 수 있다(S340).
컨트롤러(10)는 컴파일러(15)로부터 수신한 라우팅 어플리케이션용 메시지를 제1 스위치(110)에 대응하는 제1 라우팅 어플리케이션(210)으로 전송할 수 있다. 제1 라우팅 어플리케이션(210)은 수신한 라우팅 어플리케이션용 메시지와 RIB 테이블을 이용하여 기존의 레거시 포워딩 규칙을 생성하여 컨트롤러(10)로 전송할 수 있다(S350).
컨트롤러(10)는 수신한 레거시 포워딩 규칙을 컴파일러(15)로 전송하며, 컴파일러(15)는 레거시 포워딩 규칙을 오픈플로우 포워딩 구문으로 변환할 수 있다(S360). 본 실시예에서 컴파일러(15)가 레거시 포워딩 규칙을 오픈플로우 포워딩 구문으로 변환한다고 하였으나 이에 한정되지 않는다. 예를 들어 컨트롤러(10)에서 변환 작업이 이루어질 수 있다.
컨트롤러(10)는 컴파일러(15)로부터 수신한 오픈플로우 포워딩 구문을 기초로 제1 스위치(110)에 플로우 수정 메시지를 보낼 수 있다. 제1 스위치(110)는 플로우 수정 메시지에 기초하여 플로우 테이블을 업데이트 할 수 있다(S370). 제1 스위치(110)는 업데이트된 플로우 테이블에 기초하여, 버퍼에 임시 저장된 수신 패킷을 제2 포트(145) 또는 제3 포트(147)을 통해 제2 스위치(112) 또는 제3 스위치(114)로 각각 패킷을 송신할 수 있다.
상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.
10: 컨트롤러 15: 컴파일러
110, 112, 114: 오픈플로우 스위치
210, 212, 214: 라우팅 어플리케이션

Claims (8)

  1. SDN(Software Defined Network) 아키텍쳐의 코어 네트워크를 구성하는 오픈플로우 스위치에서 패킷의 수신 여부를 감지하는 단계;
    상기 오픈플로우 스위치에서 상기 수신 패킷이 상기 오픈플로우 스위치의 플로우 테이블에 해당 조건이 있는지 판단하는 단계;
    상기 수신 패킷에 대한 상기 플로우 테이블의 해당 조건이 없으면 상기 수신 패킷을 상기 오픈플로우 스위치에서 상기 오픈플로우 스위치를 포함하는 복수의 오픈플로우 스위치를 관리하는 컨트롤러로 오픈플로우 프로토콜을 통해 전송하는 단계;
    상기 컨트롤러에서 상기 수신 패킷이 레거시 프로토콜 메시지인지 판단하는 단계;
    상기 컨트롤러에서 상기 수신 패킷이 레거시 프로토콜 메시지이면 상기 컨트롤러에 연결된 컴파일러를 이용하여 라우팅 어플리케이션용 메시지로 변환하는 단계;
    상기 변환된 라우팅 어플리케이션용 메시지를 상기 컨트롤러에서 상기 오픈플로우 스위치에 대응하는 레거시 라우팅 어플리케이션으로 전달하는 단계;
    상기 레거시 라우팅 어플리케이션에서 상기 라우팅 어플리케이션 메시지를 이용하여 레거시 라우팅 패스를 생성하여 상기 컨트롤러로 전송하는 단계;
    상기 컨트롤러에서 상기 컴파일러를 이용하여 상기 레거시 라우팅 패스를 오픈플로우 프로토콜 플로우로 변환하는 단계; 및
    상기 컨트롤러에서 상기 오픈플로우 프로토콜 플로우를 기초로 상기 오픈플로우 스위치의 플로우 테이블이 업데이트되도록 하는 단계를 포함하는 하이브리드 SDN 네트워크 관리 방법.
  2. 제 1 항에 있어서,
    상기 플로우 테이블에 해당 조건이 있으면 상기 해당 조건에 연관된 액션을 상기 오픈플로우 스위치에서 처리하는 단계를 더 포함하는 하이브리드 SDN 네트워크 관리 방법.
  3. 제 1 항에 있어서,
    상기 수신 패킷이 SDN 아키텍쳐 메시지인 경우, 패킷 제어 정보를 참조하여 상기 오픈플로우 스위치의 플로우 테이블을 업데이트 하는 단계를 더 포함하는 하이브리드 SDN 네트워크 관리 방법.
  4. 플로우 테이블에 기초하여 패킷을 목적지로 전송, 수정, 및 폐기 중 어느 하나를 수행하는 복수의 오픈플로우 스위치;
    상기 복수의 오픈플로우 스위치의 패킷 제어 정보를 구비하며, 상기 패킷 제어 정보를 이용하여 상기 복수의 오픈플로우 스위치의 플로우 테이블이 업데이트 되도록 하며, 상기 복수의 오픈플로우 스위치 중 제1 스위치로부터 수신한 패킷이 레거시 프로토콜 메시지인지 판단하며, 레거싱 라우팅 경로에 연관된 오픈플로우 포워딩 구문에 기초하여 상기 복수의 오픈플로우 스위치의 적어도 하나의 플로우 테이블이 업데이트 되도록 하는 컨트롤러;
    라우팅 어플리케이션용 레거시 메시지를 이용하여 레거시 라우팅 경로를 생성하며, 상기 복수의 오픈플로우 스위치 각각에 대응하는 가상화된 복수의 라우팅 어플리케이션으로서, 상기 복수의 라우팅 어플리케이션 중 제1 라우팅 어플리케이션은 상기 제1 오픈플로우 스위치에서 수신한 패킷에 연관된 라우팅 어플리케이션 레거시 메시지를 이용하는, 상기 복수의 라우팅 어플리케이션; 및
    상기 수신 패킷을 상기 라우팅 어플리케이션용 레거시 메시지로 변환하는 컴파일러를 포함하고,
    상기 컴파일러는 상기 레거시 라우팅 경로에 따른 레거시 포워딩 규칙을 오픈플로우 포워딩 구문으로 변환하는 것을 특징으로 하는 하이브리드 SDN 시스템.
  5. 제 4 항에 있어서,
    상기 복수의 오픈플로우 스위치는 수신 패킷에 해당하는 플로우 테이블이 존재하는 경우 상기 플로우 테이블의 플로우 엔트리에 따라 수신 패킷을 처리하며, 수신 패킷에 해당하는 플로우 테이블이 존재하지 않는 경우 상기 컨트롤러로 상기 수신 패킷의 적어도 일부를 전달하는 것을 특징으로 하는 하이브리드 SDN 시스템.
  6. 삭제
  7. 삭제
  8. 제 4 항에 있어서,
    상기 복수의 라우팅 어플리케이션은 서드 파티 라우팅 프로토콜 스택인 것을 특징으로 하는 하이브리드 SDN 시스템.
KR1020130169240A 2013-12-31 2013-12-31 하이브리드 sdn 네트워크 관리 방법 KR101527786B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130169240A KR101527786B1 (ko) 2013-12-31 2013-12-31 하이브리드 sdn 네트워크 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130169240A KR101527786B1 (ko) 2013-12-31 2013-12-31 하이브리드 sdn 네트워크 관리 방법

Publications (1)

Publication Number Publication Date
KR101527786B1 true KR101527786B1 (ko) 2015-06-09

Family

ID=53504156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130169240A KR101527786B1 (ko) 2013-12-31 2013-12-31 하이브리드 sdn 네트워크 관리 방법

Country Status (1)

Country Link
KR (1) KR101527786B1 (ko)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (ko) * 2015-08-17 2016-11-08 성균관대학교산학협력단 오픈플로우 스위치 및 플로우 테이블 관리 방법
KR101729939B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR101729945B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법
KR101729944B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템의 ip 주소 제공 방법
KR101740456B1 (ko) * 2015-12-04 2017-05-26 성균관대학교산학협력단 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법
KR101740381B1 (ko) * 2015-08-21 2017-05-29 고려대학교 산학협력단 4g 또는 차세대 네트워크와 레거시 네트워크 서비스를 통합 운용하기 위한 데이터 처리 방법
WO2017122848A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템 및 멀티 테넌트 지원 방법
WO2017122847A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법 및 그 시스템
KR101763653B1 (ko) * 2016-01-04 2017-08-14 아토리서치(주) 네트워크 자원을 인식하고 관리하는 방법 및 장치
KR101806376B1 (ko) * 2016-01-12 2017-12-08 쿨클라우드(주) Ip 주소 제공하는 sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR20180080787A (ko) * 2017-01-05 2018-07-13 쿨클라우드(주) Sdn 기반의 통합 라우팅에 의한 피씨 전원 제어 방법
US10159018B2 (en) 2015-08-21 2018-12-18 Korea University Research And Business Foundation Data processing method for accommodating legacy network service in 4G or next generation network
US10411990B2 (en) * 2017-12-18 2019-09-10 At&T Intellectual Property I, L.P. Routing stability in hybrid software-defined networking networks
US10798222B2 (en) 2018-06-25 2020-10-06 Hyundai Motor Company Apparatus for managing SDN-based in-vehicle network and control method thereof
CN114500276A (zh) * 2020-11-13 2022-05-13 中兴通讯股份有限公司 数据处理方法、装置、系统和计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130050356A (ko) * 2010-09-08 2013-05-15 닛본 덴끼 가부시끼가이샤 스위치 시스템, 스위치 제어 방법 및 기억 매체
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130050356A (ko) * 2010-09-08 2013-05-15 닛본 덴끼 가부시끼가이샤 스위치 시스템, 스위치 제어 방법 및 기억 매체
US20130318243A1 (en) * 2012-05-23 2013-11-28 Brocade Communications Systems, Inc. Integrated heterogeneous software-defined network

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (ko) * 2015-08-17 2016-11-08 성균관대학교산학협력단 오픈플로우 스위치 및 플로우 테이블 관리 방법
US10159018B2 (en) 2015-08-21 2018-12-18 Korea University Research And Business Foundation Data processing method for accommodating legacy network service in 4G or next generation network
KR101740381B1 (ko) * 2015-08-21 2017-05-29 고려대학교 산학협력단 4g 또는 차세대 네트워크와 레거시 네트워크 서비스를 통합 운용하기 위한 데이터 처리 방법
KR101740456B1 (ko) * 2015-12-04 2017-05-26 성균관대학교산학협력단 IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법
KR101763653B1 (ko) * 2016-01-04 2017-08-14 아토리서치(주) 네트워크 자원을 인식하고 관리하는 방법 및 장치
KR101729944B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템의 ip 주소 제공 방법
WO2017122848A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템 및 멀티 테넌트 지원 방법
WO2017122847A1 (ko) * 2016-01-12 2017-07-20 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법 및 그 시스템
KR101729945B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법
KR101806376B1 (ko) * 2016-01-12 2017-12-08 쿨클라우드(주) Ip 주소 제공하는 sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR101729939B1 (ko) * 2016-01-12 2017-04-25 쿨클라우드(주) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR20180080787A (ko) * 2017-01-05 2018-07-13 쿨클라우드(주) Sdn 기반의 통합 라우팅에 의한 피씨 전원 제어 방법
KR101934908B1 (ko) 2017-01-05 2019-01-04 쿨클라우드(주) Sdn 기반의 통합 라우팅에 의한 피씨 전원 제어 방법
US10411990B2 (en) * 2017-12-18 2019-09-10 At&T Intellectual Property I, L.P. Routing stability in hybrid software-defined networking networks
US10798222B2 (en) 2018-06-25 2020-10-06 Hyundai Motor Company Apparatus for managing SDN-based in-vehicle network and control method thereof
CN114500276A (zh) * 2020-11-13 2022-05-13 中兴通讯股份有限公司 数据处理方法、装置、系统和计算机可读存储介质

Similar Documents

Publication Publication Date Title
KR101527786B1 (ko) 하이브리드 sdn 네트워크 관리 방법
US9948553B2 (en) System and method for virtual network-based distributed multi-domain routing control
KR101703088B1 (ko) Sdn 기반의 통합 라우팅 방법 및 그 시스템
US20190230039A1 (en) Method and system for extracting in-tunnel flow data over a virtual network
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
US8677011B2 (en) Load distribution system, load distribution method, apparatuses constituting load distribution system, and program
CN105264493B (zh) 信息中心网络上的动态虚拟机迁移
CN103873378B (zh) 具有集中控制的聚合网络
JP6538986B2 (ja) 仮想マシンパケット制御
JP5874726B2 (ja) 通信制御システム、制御サーバ、転送ノード、通信制御方法および通信制御プログラム
US9407560B2 (en) Software defined network-based load balancing for physical and virtual networks
US9544182B2 (en) Monitoring gateway systems and methods for openflow type networks
WO2012133290A1 (ja) コンピュータシステム、及び通信方法
JP5994851B2 (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
KR101803332B1 (ko) 사물 인터넷 네트워크 시스템
CN104272656A (zh) 软件定义网络中的网络反馈
JP2016535904A (ja) ミドルウェアおよびアプリケーションの実行のためにエンジニアド・システムにおいてデータサービスを提供するためのシステムおよび方法
EP3289728B1 (en) Distribution of internal routes for virtual networking
EP3982596A1 (en) Processing a flow at the egress node in segment routing
JP5691782B2 (ja) ネットワークシステム及びフレーム通信方法
WO2022089169A1 (zh) 计算路由信息发送方法、装置、设备及存储介质
CN107566277B (zh) 拓扑确定方法、消息响应方法、控制器以及交换机
KR101729944B1 (ko) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템의 ip 주소 제공 방법
KR20180058594A (ko) Sdn/tap 어플리케이션
WO2014126094A1 (ja) 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190610

Year of fee payment: 5