KR20180080787A - Method for controlling of pc power by aggregated routing based on sdn - Google Patents

Method for controlling of pc power by aggregated routing based on sdn Download PDF

Info

Publication number
KR20180080787A
KR20180080787A KR1020170001741A KR20170001741A KR20180080787A KR 20180080787 A KR20180080787 A KR 20180080787A KR 1020170001741 A KR1020170001741 A KR 1020170001741A KR 20170001741 A KR20170001741 A KR 20170001741A KR 20180080787 A KR20180080787 A KR 20180080787A
Authority
KR
South Korea
Prior art keywords
virtual
packet
network
routing
switch
Prior art date
Application number
KR1020170001741A
Other languages
Korean (ko)
Other versions
KR101934908B1 (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 KR1020170001741A priority Critical patent/KR101934908B1/en
Publication of KR20180080787A publication Critical patent/KR20180080787A/en
Application granted granted Critical
Publication of KR101934908B1 publication Critical patent/KR101934908B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • H04L49/405Physical details, e.g. power supply, mechanical construction or backplane of ATM switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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
    • H04L61/2015
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/5014Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]

Landscapes

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

Abstract

The present invention relates to a method of controlling a PC power supply by an integrated routing based on a software defined network (SDN) and a system thereof. The present invention enables unified routing to enable packet flow between an existing legacy network and an SDN network, enabling flexible network operation using a plurality of virtual routers. The present invention also relates to a method for supporting multi-tenancy through a plurality of routers and controlling the power of PCs belonging to a specific tenant according to a scheduling policy in a network supporting multi-tenants.

Description

SDN 기반의 통합 라우팅에 의한 피씨 전원 제어 방법{METHOD FOR CONTROLLING OF PC POWER BY AGGREGATED ROUTING BASED ON SDN}[0001] METHOD FOR CONTROLLING OF PC POWER BY AGGREGATED ROUTING BASED ON SDN [0002]

본 발명은 SDN(Software Defined Network) 기반의 통합 라우팅에 의한 피씨 전원 제어 방법 및 그 시스템에 관한 것으로, 기존의 레거시 네트워크와 SDN 네트워크 사이의 패킷 흐름을 가능하도록 하는 통합 라우팅이 가능하여, 복수의 가상 라우터를 이용하여 탄력적인 네트워크 운용이 가능하고, 복수의 라우터를 통해 멀티 테넌시를 지원하며, 멀티 테넌트를 지원하는 네트워크에서 특정 테넌트에 속하는 피씨들의 전원을 스케쥴링 정책에 따라 제어하는 방법에 관한 것이다.The present invention relates to a method and system for controlling PC power by integrated routing based on SDN (Software Defined Network), and it is possible to perform integrated routing that enables packet flow between existing legacy network and SDN network, The present invention relates to a method of controlling a power of a PC belonging to a specific tenant according to a scheduling policy in a network supporting a multi-tenancy through a plurality of routers.

휴대 장치 및 서버 가상화의 폭발적인 증가와 클라우드 서비스의 출현으로, 네트워크 수요가 늘어났다. SDN(Software-Defined Network)은 어플리케이션에서 추상화된 기본적인 네트워크 인프라 구조이며, 논리적으로 중앙 집중적인 네트워크 인텔리전스(network intelligence)이며, 제어 플레인과 데이터 플레인이 분리되어 있다. SDN은 네트워크 관리자가 낮은 레벨 기능의 추상화를 통해 네트워크 서비스를 관리할 수 있는 컴퓨터 네트워킹에의 접근이다. 이는 선택된 목적지로 트래픽을 포워딩하는 근본적인 시스템(데이터 평면; data plane)으로부터 트래픽이 어디로 전송될 것인지에 대한 결정을 하는 시스템(제어 평면; control plane)을 분리함으로써 달성할 수 있다.With the explosive growth of mobile devices and server virtualization and the emergence of cloud services, network demand has increased. SDN (Software-Defined Network) is a basic network infrastructure abstracted from an application, logically centralized network intelligence, and has separate control plane and data plane. SDN is an approach to computer networking that enables network administrators to manage network services through an abstraction of low-level functionality. This can be accomplished by separating the system (control plane) that determines where the traffic will be sent from the underlying system (data plane) that forwards the traffic to the selected destination.

오픈 플로우는 고속 패킷 전달과 높은 레벨의 라우팅 결정 기능들을 분리한다. 패킷 포워딩 플레인은 여전히 스위치 단에 관여되며, 반면 고수준 라우팅 결정은 분리된 컨트롤러에서 관여되며, 이들은 오픈 플로우 프로토콜을 통해 통신한다.Open flows separate high-speed packet delivery and high-level routing decision functions. The packet forwarding plane is still involved in the switch stage, while the high level routing decisions are involved in a separate controller, which communicates through the open flow protocol.

그러나 기존 네트워크에서 SDN으로의 전환 과도기로서, 기존 프로토콜과 장치와 상호 작용하는 소프트웨어 정의 네트워크의 필요성이 있다. 이러한 하이브리드 SDN 네트워크를 구성하는 장비는 컴퓨팅 자원이나 네트워킹 자원 소모가 적으며, 단순한 구조와 운영이 필요하다.However, as a transition from an existing network to an SDN, there is a need for a software defined network that interacts with existing protocols and devices. Such a hybrid SDN network requires less computing resources and networking resources, and requires simple structure and operation.

기존의 가상 라우터의 경우 제어 평면과 데이터 평면이 공존하고, 기존 라우터를 가상 머신 형태로 옮긴 경우가 많다. 이는 가상화 기술에 의존적일 수 밖에 없고, 기존 하드웨어 라우터에 비해 성능이 낮을 수 밖에 없다. 또한 기존 라우터의 경우 라우터 마다 개별 관리를 해야 하고, 네트워크의 요구 변화에 능동적으로 대응하지 못하였다.In the case of existing virtual routers, the control plane and the data plane coexist, and the existing routers are often moved to the virtual machine form. It is dependent on virtualization technology and has a lower performance than existing hardware routers. In the case of existing routers, individual routers must be managed separately, and they are not actively responding to changes in network requirements.

기존 클라우드 환경에서 DHCP 핸들링을 통한 네트워크 관리는 클라우드 컨트롤 노드에서 이루어진다. 클라우드 환경을 SDN 네트워크 기반에서 운용하는 경우, 기존 SDN 네트워크를 관리하는 SDN 제어기의 정보와 클라우드 내부 네트워크를 관리하는 DHCP 정보의 분산으로 관리에 어려움이 있다.In an existing cloud environment, network management through DHCP handling takes place in the cloud control node. When the cloud environment is operated on the SDN network, it is difficult to manage the cloud environment by distributing the information of the SDN controller managing the existing SDN network and the DHCP information managing the cloud internal network.

또한 기존 대규모의 피씨들을 단일화된 관리를 위해 노하드 서비스가 널리 퍼졌다. 이는 PC방, 캠퍼스 PC실, 사내 PC실 등 공용으로 사용하는 다수의 PC들의 손쉬운 관리를 위한 서비스이다. 노하드 서비스는 초기 설정값에 따라 자동으로 피씨가 리셋되도록 하는데, 이를 일반적으로 동적으로 수행할 수 없다. 또한 업데이트시 대행 업체가 일일이 작업을 해야하는 어려움이 있다. 또한 캠퍼스나 학교의 PC실과 같이 수업 시간에 따라 다른 상태의 컴퓨터 실행 환경을 제공하기 곤란하였다.Also, noh hard service has become widespread for the unified management of existing large scale PCs. It is a service for easy management of a large number of PCs in common use such as a PC room, a campus PC room, and an in-house PC room. The NoHard service automatically resets the PC according to the initial settings, which can not be performed dynamically in general. In addition, there is a difficulty for the agency to work on the update. In addition, it was difficult to provide a computer running environment in different states depending on the class time, such as a campus or a PC room in a school.

1. 등록특허공보 제10-1493936호 (2015.02.16)1. Registration Patent Publication No. 10-1493936 (Feb. 2. 등록특허공보 제10-1438212호 (2014.09.04)2. Registration patent publication No. 10-1438212 (2014.09.04) 3. 공개특허공보 제10-2014-0102398호 (2014.08.22)3. Published Japanese Patent Application No. 10-2014-0102398 (Aug. 21, 2014)

1. OpenFlow Switch Specification version 1.4.0(Wire Protocol 0x05), October 14, 2013 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.4.0.pdf]1. OpenFlow Switch Specification version 1.4.0 (Wire Protocol 0x05), October 14, 2013 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec- v1.4.0.pdf] 2. Software-Defined Networking: The New Norm for Netwrks, ONF White Paper, April 13, 2012 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-newnorm.pdf]2. Software-Defined Networking: The New Norm for Netwrks, ONF White Paper, April 13, 2012 [https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn- newnorm.pdf] 3. ETSI GS NFV 002 v1.1.1 (2013-10)3. ETSI GS NFV 002 v1.1.1 (2013-10) [http://www.etsi.org/deliver/etsi_gs/NFV/001_099/002/01.01.01_60/gs_NFV002v010101p.pdf][http://www.etsi.org/deliver/etsi_gs/NFV/001_099/002/01.01.01_60/gs_NFV002v010101p.pdf]

본 발명의 목적은 원격으로 피씨의 전원 관리 및 네트워크의 동적 관리를 통한 부팅 이미지 스케쥴링을 제공하며, 멀티 테넌트를 제공하기 위해 DHCP 서버의 IP 동적 할당이 되도록 SDN 프로토콜을 이용하여 피씨 전원을 관리하는 방법을 제공함에 있다.An object of the present invention is to provide boot image scheduling by remote management of PC power management and dynamic management of network and to manage power of PC using SDN protocol so as to achieve IP dynamic allocation of DHCP server to provide multi- .

본 발명에 따른 SDN(Software Defined Network) 기반의 멀티 테넌트 지원 네트워크 시스템의 IP 주소 제공 방법은, SDN 기반의 복수의 스위치를 제어하는 제어기; 상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 가상 라우터; 가상 라우터 생성 요청 메시지를 수신하면, 컴퓨팅 자원을 할당하여 상기 가상 라우터를 가상화 기술을 이용하여 생성하는 가상 라우팅 앱; 및 상기 복수의 스위치 중 에지 스위치에 연결된 피씨(PC)의 전원을 제어하는 PC 전원 제어 앱을 포함하는 시스템으로서, 상기 가상 라우팅 앱은 상기 복수의 스위치로 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자를 기초로 가상 라우터를 복수개 생성하고, 상기 슬라이싱 식별자는 상기 복수의 스위치에 연결된 복수의 테넌트(tenant) 중 어느 한 테넌트에 대응하는 상기 시스템에 의한 IP 주소 제공 방법으로서, 상기 PC 전원 제어 앱이 상기 피씨로 네트워크를 통한 원격 전원 스위칭 신호를 전송하는 단계; 상기 피씨가 꺼짐 상태인 경우, 상기 원격 전원 스위칭 신호를 수신하면 상기 피씨의 전원이 켜짐 상태로 전환되는 단계; 상기 가상 라우터가 상기 피씨에서 전송한 동적 호스트 구성 프로토콜(DHCP; Dynamic Host Configuration Protocol) 요청 패킷을 수신하는 단계; 상기 가상 라우터에 생성된 가상 DHCP 서버가 상기 DHCP 요청 패킷에 대응하여 IP 주소 및 부팅 이미지 식별자를 구비하는 DHCP 응답 패킷을 상기 피씨로 전송하는 단계; 및 상기 피씨가 상기 수신한 DHCP 응답 패킷의 부팅 이미지 식별자를 기초로 상기 에지 스위치로 부팅 이미지 요청 패킷을 전송하는 단계를 포함할 수 있다.A method of providing an IP address of a multi-tenant supporting network system based on SDN (Software Defined Network) according to the present invention includes: a controller for controlling a plurality of SDN-based switches; A virtual router for treating a switch group including at least some switches among the plurality of switches as a virtual router and generating routing information for a packet to be input to one of the switches; A virtual routing application that, when receiving a virtual router creation request message, allocates computing resources to create the virtual router using virtualization technology; And a PC power control application for controlling a power of a PC connected to an edge switch among the plurality of switches, wherein the virtual routing application includes a slicing identifier which is specific information based on a packet that is input to the plurality of switches The method comprising: generating a plurality of virtual routers based on a plurality of switches, wherein the slicing identifier is an IP address providing method by the system corresponding to a tenant among a plurality of tenants connected to the plurality of switches, Transmitting a remote power switching signal over the network; Switching the power of the PC to an on state when receiving the remote power switching signal when the PC is in an off state; Receiving a Dynamic Host Configuration Protocol (DHCP) request packet transmitted by the virtual router from the PC; Transmitting, by the virtual DHCP server, a DHCP response packet having the IP address and the boot image identifier to the PC corresponding to the DHCP request packet; And transmitting the boot image request packet to the edge switch based on the boot image identifier of the DHCP response packet received by the PC.

또한, 상기 복수의 가상 라우터는 서로 격리된 네트워크를 형성할 수 있다.In addition, the plurality of virtual routers may form an isolated network from each other.

또한, 상기 가상 라우팅 앱은 패킷의 슬라이싱 식별자에 연관된 네임 스페이스 식별자를 구비하는 네트워크 정보를 상기 가상 라우터에 지정할 수 있다.In addition, the virtual routing application may assign network information to the virtual router having a namespace identifier associated with the slicing identifier of the packet.

또한, 상기 가상 라우팅 앱은 수신한 상기 DHCP 요청 패킷에서 슬라이싱 식별자를 추출하여, 상기 추출된 슬라이싱 식별자에 대응하는 네임 스페이스 식별자를 구비하는 가상 라우터에 상기 DHCP 요청 패킷을 전달하는 단계를 더 포함할 수 있다.The virtual routing application may further include extracting a slicing identifier in the received DHCP request packet and delivering the DHCP request packet to a virtual router having a namespace identifier corresponding to the extracted slicing identifier have.

또한, 상기 피씨 전원 제어 앱은 기설정된 스케쥴링 정책에 따라 상기 가상 라우터의 DHCP 서버가 구비한 부팅 이미지 식별자를 수정하는 단계를 더 포함할 수 있다.The PC power control application may further include modifying a boot image identifier of the DHCP server of the virtual router according to a predetermined scheduling policy.

또한, 상기 에지 스위치가 상기 부팅 이미지 요청 패킷을 부팅 이미지를 저장하는 복수의 이미지 서버의 부하를 조절하는 로드 제어 앱으로 전송하는 단계; 및 상기 로드 제어 앱이 상기 복수의 이미지 서버 중 상기 부팅 이미지 요청 패킷에 구비된 부팅 이미지 식별자를 가지는 이미지 서버 그룹 중 기설정된 부하 분산 정책에 기초하여 특정 이미지 서버로 상기 부팅 이미지 요청 패킷을 전송하는 단계를 더 포함할 수 있다.Transmitting the boot image request packet to a load control application that controls load of a plurality of image servers storing a boot image; And transmitting the boot image request packet to a specific image server based on a predetermined load balancing policy of the image server group having the boot image identifier included in the boot image request packet among the plurality of image servers As shown in FIG.

본 발명에 따른 피씨 전원 제어 방법은, SDN(Software Defined Network) 기반의 복수의 스위치를 제어하는 제어기; 가상 라우팅 기능을 제공하는 가상 라우터; 및 상기 가상 라우터를 생성하는 가상 라우팅 앱을 구비하는 멀티 테넌트 네트워크 시스템의 피씨 전원 제어 방법으로서, 상기 가상 라우팅 앱에서, 라우팅 요청 메시지를 수신하는 단계; 상기 가상 라우팅 앱에서, 컴퓨팅 자원을 할당하여 상기 가상 라우터를 생성하는 단계; 상기 가상 앱에서, 상기 가상 라우터에 네임 스페이스 식별자를 구비하는 네트워크 정보를 지정하는 단계; 및 상기 가상 라우터에서, 상기 네트워크 정보를 이용하여 가상 라우팅 기능을 준비하는 단계를 포함하고, 상기 네임 스페이스 식별자는 상기 복수의 스위치에 연결된 복수의 테넌트(tenant) 중 어느 한 테넌트에 대응하고, 상기 가상 라우팅 앱은 가상 라우터를 복수개 생성하고, 상기 네임 스페이스 식별자는 상기 복수의 스위치에 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자에 대응하고, 상기 제어기의 제어부에서, 상기 복수의 스위치 중 어느 한 스위치에 인입된 패킷의 처리 정보가 없는 경우, 상기 인입 패킷을 상기 가상 라우팅 앱으로 전달하는 단계; 상기 가상 라우팅 앱에서, 상기 인입 패킷으로부터 슬라이싱 식별자를 추출하는 단계; 상기 가상 라우팅 앱에서, 상기 복수의 가상 라우터 중 상기 추출된 슬라이싱 식별자에 대응하는 네임 스페이스 식별자를 구비한 가상 라우터로 상기 인입 패킷을 전달하는 단계; 상기 가상 라우터에서 상기 인입 패킷이 동적 호스트 구성 프로토콜(DHCP; Dynamic Host Configuration Protocol)인 경우, 가상 DHCP 서버 기능을 이용하여 IP 주소를 생성하는 단계; 및 상기 IP 주소 및 기저장된 부팅 이미지 식별자를 구비한 응답 패킷을 생성하는 단계를 더 포함할 수 있다.A PC power control method according to the present invention includes: a controller for controlling a plurality of SDN (Software Defined Network) based switches; A virtual router providing a virtual routing function; And a virtual routing application for generating the virtual router, the method comprising: receiving a routing request message in the virtual routing application; In the virtual routing application, allocating computing resources to create the virtual router; Designating, in the virtual application, network information having a namespace identifier in the virtual router; And in the virtual router, preparing a virtual routing function using the network information, wherein the namespace identifier corresponds to a tenant of a plurality of tenants connected to the plurality of switches, The routing application creates a plurality of virtual routers, wherein the namespace identifier corresponds to a slicing identifier which is specific information based on a packet to be transmitted to the plurality of switches, and wherein, in a controller of the controller, Forwarding the incoming packet to the virtual routing application if there is no processing information of the received packet; Extracting a slicing identifier from the incoming packet in the virtual routing application; Transferring the incoming packet to a virtual router having a namespace identifier corresponding to the extracted slicing identifier among the plurality of virtual routers in the virtual routing application; Generating an IP address by using a virtual DHCP server function when the incoming packet is a dynamic host configuration protocol (DHCP) in the virtual router; And generating a response packet including the IP address and the pre-stored boot image identifier.

본 발명에 따르면, 동적 PC 전원 스케쥴링 정책을 쉽게 실현할 수 있으며, 중앙 집권적이고 원격으로 피씨들의 전원을 제어할 수 있으며, 스케쥴링 정책에 의해 자동화가 가능하여, 관리가 간소해 질 수 있다. 또한 관리자 정의형 서비스가를 가능하도록 하여, 실습 과목에 따라 동적으로 피씨 환경을 변경할 수 있다.According to the present invention, it is possible to easily realize the dynamic PC power scheduling policy, to centrally control the power of the PC remotely, to automate the scheduling policy, and to simplify management. In addition, administrator-defined services can be enabled, and the PC environment can be changed dynamically according to the course.

도 1은 SDN 네트워크 시스템의 구조도, 도 2는 도 1의 네트워크 시스템의 제어기의 블록 구성도(block diagram), 도 3은 도 1의 네트워크 시스템의 스위치의 블록 구성도, 도 4는 플로우 엔트리의 필드 테이블 및 플로우 엔트리에 따른 동작 종류를 나타내는 동작 테이블, 도 5는 그룹 및 미터 테이블의 필드 테이블이다.
도 6은 본 발명의 일 실시예에 따른 통합 라우팅 시스템을 포함하는 네트워크 시스템의 블록 구성도, 도 7은 도 6의 네트워크 시스템의 가상화한 블록 구성도, 도 8은 본 발명의 다른 실시예에 따른 SDN 제어기의 블록 구성도, 도 9는 도 6의 제어기 제어부의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도, 도 10은 본 발명의 일 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 도 11는 본 발명의 다른 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 및 도 12은 본 발명의 일 실시예에 따른 플로우 테이블이다.
도 13은 본 발명의 일 실시예에 따른 멀티 테넌트 지원 네트워크 시스템에 대한 구조도, 도 14는 도 13의 네트워크 시스템의 구성요소에 대한 블록 구성도, 도 15는 본 발명의 다른 실시예에 따른 가상 라우터의 블록 구성도, 도 16은 가상 라우터 생성 방법에 대한 순서도, 도 17은 도 16의 라우팅 기능 준비 방법을 구체화한 순서도이고, 도 18은 가상 라우터의 다양한 인터페이스를 도시한 구조도, 도 19는 본 발명의 다른 실시예에 따른 네트워크 구조도이고, 도 20은 도 19에 따른 가상 라우터의 구조도, 도 21은 도 13의 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도, 도 22는 가상 라우터에서 인입 패킷에 대한 처리 방법의 순서도이고, 도 23은 도 22의 라우팅 처리가 아닌 일례에 대한 순서도이다.
도 24는 본 발명의 일실시예에 따른 통합 라우팅에 의한 피씨 전원 제어 시스템의 네트워크 구성도이고, 도 25는 도 24의 시스템의 피씨 제어 신호 흐름도이고, 및 도 26은 도 25의 피씨 전원 스케쥴링 제어하는 방법에 대한 순서도이다.
1 is a block diagram of a controller of the network system of FIG. 1, FIG. 3 is a block diagram of a switch of the network system of FIG. 1, FIG. FIG. 5 is a field table of a group and a meter table; FIG. 5 is an operation table showing an operation type according to a field table and a flow entry;
FIG. 6 is a block diagram of a network system including an integrated routing system according to an embodiment of the present invention; FIG. 7 is a block diagram of a virtualized system of the network system of FIG. 6; and FIG. FIG. 10 is a signal flow diagram according to an integrated routing method according to an embodiment of the present invention. FIG. 11 is a block diagram of the SDN controller. FIG. 11 is a flowchart of a method of determining whether or not legacy routing is performed for the flow of the controller control unit of FIG. FIG. 12 is a flow chart according to an embodiment of the present invention. FIG. 12 is a flow chart according to an integrated routing method according to another embodiment of the present invention, and FIG.
FIG. 13 is a structural view of a multi-tenant supporting network system according to an embodiment of the present invention, FIG. 14 is a block diagram of components of the network system of FIG. 13, and FIG. 17 is a flowchart showing a method of preparing a routing function in Fig. 16, Fig. 18 is a structure diagram showing various interfaces of a virtual router, Fig. 19 is a diagram showing a configuration of a virtual router, FIG. 20 is a structure diagram of a virtual router according to another embodiment of the present invention, FIG. 20 is a structure diagram of a virtual router according to FIG. 19, FIG. 21 is a flow chart of a method of determining whether or not legacy routing is performed for a flow of a controller in FIG. FIG. 23 is a flow chart of an example, not the routing process of FIG. 22. FIG.
FIG. 24 is a network configuration diagram of a PC power control system according to an embodiment of the present invention, FIG. 25 is a PC control signal flow chart of the system of FIG. 24, and FIG. 26 is a PC power scheduling control How to do it.

이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. The term " and / or " includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Also, the fact that the first component and the second component on the network are connected or connected means that data can be exchanged between the first component and the second component by wire or wirelessly.

또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다. "모듈", "부", 및 "앱"에 의한 구성요소는 컴퓨터 논리 장치 또는 컴퓨터 판독 가능 매체에 저장된 프로그램, 테이블과 같은 데이터 구조, 및/또는 여러 데이터 등으로 구현될 수 있다.In addition, suffixes "module" and " part "for the components used in the following description are given merely for convenience of description, and do not give special significance or role in themselves. Accordingly, the terms "module" and "part" may be used interchangeably. Components by "module", "part", and "app" may be embodied in a computer logic device or a computer-readable medium, such as a program, a data structure such as a table, and / or various data.

이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 도면 전체를 통하여 동일하거나 유사한 구성요소에 대해서는 동일한 도면 부호를 부여하였고, 동일한 도면 부호를 가지는 구성요소에 대한 자세한 설명은 전술한 구성요소에 대한 설명으로 대체되어 생략될 수 있다.When such components are implemented in practical applications, two or more components may be combined into one component, or one component may be divided into two or more components as necessary. The same reference numerals are given to the same or similar components throughout the drawings, and detailed descriptions of components having the same reference numerals can be omitted and replaced with descriptions of the above-described components.

SDN은 패킷을 전달하는 데이터 플레인과 패킷의 흐름을 제어하는 제어 플레을 분리된 개념이다. SDN에서 패킷이 발생했을 때, 네트워크 장비는 패킷을 어디로 전달할지 SDN 제어 소프트웨어(제어기)에게 물어보고, 그 결과를 반영하여 패킷을 전송하는 경로와 방식을 결정한다. SDN은 이론적인 개념으로, 실제로 적용하기 위해 오픈플로우(Openflow)가 등장하였다. 즉 오픈플로우는 SDN을 구현하기 위해 제정된 표준 인터페이스이다. 오픈플로우는 오픈플로우 제어기와 오픈플로우 스위치로 구성되어, 플로우 정보를 제어하여 패킷의 전달 경로 및 방식을 결정한다. 본 명세서 전반에서, 오픈플로우와 SDN는 서로 동일한 의미로 사용되거나 혼용하여 사용될 수 있다.SDN is a concept that separates the data plane that carries the packet and the control plane that controls the flow of the packet. When a packet occurs in the SDN, the network device asks the SDN control software (controller) where to transmit the packet, and determines the path and method for transmitting the packet based on the result. SDN is a theoretical concept, and Openflow has emerged to actually apply it. That is, Open Flow is a standard interface established to implement SDN. An open flow is composed of an open flow controller and an open flow switch, and controls the flow information to determine a delivery path and a method of a packet. Throughout this specification, open flows and SDNs may be used interchangeably or in combination.

플로우(flow)는 하나의 스위치 관점에서 적어도 하나의 헤더 필드의 값을 공유하는 일련의 패킷들 또는 다중 스위치의 여러 플로우 엔트리(flow entry)들의 조합에 따른 특정 경로의 패킷 흐름을 의미할 수 있다. 오픈플로우 네트워크는 플로우 단위로 경로 제어, 장애 회복, 부하 분산 및 최적화를 행할 수 있다.A flow may refer to a packet flow of a particular path according to a series of packets sharing a value of at least one header field from a single switch or a combination of multiple flow entries of multiple switches. The open-flow network can perform path control, fault recovery, load balancing and optimization on a flow-by-flow basis.

본 명세서에서 특정 용어는 다음의 기술에 의해 정의되거나 본래의 의미 이외의 의미를 더 구비할 수 있다. "플로우"는 해당 스위치에서 처리할 패킷 자체를 의미할 수 있다. "플로우"는 해당 스위치에서 처리할 패킷과 메타데이터(패킷이 인입한 인입 포트, 패킷이 다른 스위치로부터 인입한 경우 상기 다른 스위치의 인입 포트 등)를 포함하는 것을 의미할 수도 있다. "플로우 처리 정보"는 스위치에서 유입된 패킷을 처리할 정보로, 패킷 또는 패킷의 메타데이터를 수정하는데 필요한 정보 및/또는 패킷이 유출될 특정 네트워크 인터페이스(포트) 등을 의미할 수 있다. 플로우 처리 정보는 플로우 테이블의 플로우 엔트리의 내용 또는 플로우 엔트리에 적용될 내용과 동일할 수 있으며, 플로우 엔트리 그 자체를 의미할 수 있다. "플로우 처리"는 위 플로우 처리 정보에 기초하여 패킷 또는 플로우를 스위치에서 처리함을 의미할 수 있다.In the present specification, a specific term may be defined by the following description or may have a meaning other than the original meaning. "Flow" may mean the packet itself to be processed by the switch. The "flow" may include a packet to be processed by the switch and meta data (an incoming port from which the packet is received, or an incoming port from the other switch when the packet is received from another switch). The "flow processing information" may be information for processing a packet received from the switch, information necessary for modifying the packet or the metadata of the packet, and / or a specific network interface (port) through which the packet will flow. The flow processing information may be the same as the content of the flow entry of the flow table or the content to be applied to the flow entry, and may mean the flow entry itself. The "flow processing" may mean processing the packet or flow in the switch based on the above flow processing information.

기본적인 SDN은 제어평면과 전달평면을 분리하는 개념이다. 즉, 기존 네트워크 장비에서 공존해 있던 제어 및 전달 기능을 분리하여 스위치/라우터에서 하드웨어가 처리하던 데이터 포워딩 기능을 소프트웨어 부분인 컨트롤러(제어기)에 의해 제어되게 한다. 이러한 레거시망에서 개별적으로 이루어지던 기능들이 중앙의 제어기로 모두 모이기 때문에 네트워크 글로벌 뷰를 가지게 되고 네트워크 혼잡을 사전에 방지할 수 있다. 즉, 중앙집중식 제어기는 전지적인 관점에서 트래픽 관리를 할 수 있다. 이하, 기존 네트워크 및 기존 스위치/라우터 등에 대해 레거시 네트워크 및 레거시 스위치/라우터 등으로 지칭하기로 한다.The basic SDN is the concept of separating the control plane from the transmission plane. That is, the control and forwarding functions coexisting in the existing network equipment are separated, and the data forwarding function which is processed by the hardware in the switch / router is controlled by the controller (controller) which is a software part. Since the functions that are individually performed in the legacy network are collected by the central controller, the network global view is obtained and network congestion can be prevented in advance. That is, the centralized controller can manage traffic from a battery point of view. Hereinafter, an existing network and an existing switch / router will be referred to as a legacy network and a legacy switch / router.

도 1은 SDN 네트워크 시스템의 구조도, 도 2는 도 1의 네트워크 시스템의 제어기의 블록 구성도(block diagram), 도 3은 도 1의 네트워크 시스템의 스위치의 블록 구성도, 도 4는 플로우 엔트리의 필드 테이블 및 플로우 엔트리에 따른 동작 종류를 나타내는 동작 테이블, 도 5는 그룹 및 미터 테이블의 필드 테이블이다.1 is a block diagram of a controller of the network system of FIG. 1, FIG. 3 is a block diagram of a switch of the network system of FIG. 1, FIG. FIG. 5 is a field table of a group and a meter table; FIG. 5 is an operation table showing an operation type according to a field table and a flow entry;

도 1(a)를 참조하면, SDN 네트워크 시스템은 제어기(contoller)(10), 복수의 스위치(20) 및 복수의 네트워크 디바이스(30)를 포함할 수 있다.Referring to FIG. 1 (a), an SDN network system may include a controller 10, a plurality of switches 20, and a plurality of network devices 30.

네트워크 디바이스(30)는 데이터나 정보를 주고 받고자 하는 사용자 단말 장치, 또는 특정 기능을 수행하는 물리 장치 또는 가상 장치를 포함할 수 있다. 하드웨어 관점에서, 네트워크 디바이스(30)는 PC, 클라이언트 단말기, 서버, 워크스테이션, 수퍼컴퓨터, 이동통신 단말기, 스마트폰, 스마트패드 등이 있을 수 있다. 또한 네트워크 디바이스(30)는 물리 장치 상에 생성된 가상 머신(VM)일 수 있다. The network device 30 may include a user terminal device for exchanging data or information, or a physical device or a virtual device for performing a specific function. From a hardware standpoint, the network device 30 may be a PC, a client terminal, a server, a workstation, a supercomputer, a mobile communication terminal, a smart phone, a smart pad, or the like. The network device 30 may also be a virtual machine (VM) created on a physical device.

네트워크 디바이스(30)는 네트워크 상의 여러가지 기능을 수행하는 네트워크 기능(network function)으로 지칭될 수 있다. 네트워크 기능은 안티(anti) DDoS, 침입 감지/차단(IDS/IPS), 통합 보안 서비스, 가상 사설망 서비스, 안티 바이러스, 안티 스팸, 보안 서비스, 접근관리 서비스, 방화벽, 로드 밸런싱, QoS, 비디오 최적화 등을 포함할 수 있다. 이러한 네트워크 기능은 가상화될 수 있다.The network device 30 may be referred to as a network function that performs various functions on the network. Network features include anti-DDoS, intrusion detection / blocking (IDS / IPS), integrated security services, virtual private network services, anti-virus, anti-spam, security services, access management services, firewalls, load balancing, . ≪ / RTI > These network functions can be virtualized.

가상화된 네트워크 기능으로 ETSI(유럽전기통신표준협회)에서 발행한 NFV 관련 백서(비특허문헌 3 참조)에서 정의된 네트워크 기능 가상화(Network Function Virtualiztion; NFV)가 있다. 본 명세서에서 네트워크 기능(NF)은 네트워크 기능 가상화(NFV)와 혼용하여 사용될 수 있다. NFV는 테넌트(tenant)별 필요한 L4-7 서비스 연결을 동적으로 생성하여 필요한 네트워크 기능을 제공하거나, DDoS 공격의 경우 정책 기반으로 필요한 방화벽, IPS 및 DPI 기능 등을 일련의 서비스 체이닝으로 빠르게 제공되는데 이용될 수 있다. 또한 NFV는 방화벽이나 IDS/IPS를 쉽게 온오프 할 수 있으며, 자동으로 프로비저닝(provisioning)할 수 있다. NFV는 오버 프로비저닝의 필요성도 줄일 수 있다.A virtualized network function, published by the European Telecommunications Standards Institute (ETSI) There is a Network Function Virtualization (NFV) defined in the NFV related white paper (see Non-Patent Document 3). The network function (NF) may be used herein in combination with network function virtualization (NFV). NFV provides necessary network functions by dynamically generating necessary L4-7 service connection for each tenant, and provides firewall, IPS and DPI functions necessary for policy-based DDoS attacks quickly through a series of service chaining . NFVs can also easily turn on and off firewalls or IDS / IPS and provision them automatically. NFV can also reduce the need for overprovisioning.

제어기(controller)(10)는 SDN 시스템을 제어하는 일종의 지휘 컴퓨터로서, 다양하고 복잡한 기능들, 예를 들어, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. 제어기(10)는 하위 계층의 복수의 스위치(20)에서 발생하는 패킷의 플로우를 정의할 수 있다. 제어기(10)는 네트워크 정책 상 허용되는 플로우에 대해 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로(데이터 경로)를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. 제어기(10)는 특정 프로토콜, 예를 들어, 오픈플로우 프로토콜을 이용하여 스위치(20)와 통신할 수 있다. 제어기(10)와 스위치(20)의 통신 채널은 SSL에 의해 암호화 될 수 있다.A controller 10 is a kind of command computer that controls the SDN system and can perform various complex functions such as routing, policy declaration, and security check. The controller 10 can define the flow of packets occurring in the plurality of switches 20 in the lower layer. The controller 10 may calculate a path (data path) to be flowed by referring to a network topology or the like with respect to a flow allowed in the network policy, and then set an entry of the flow on a switch on the path. The controller 10 may communicate with the switch 20 using a specific protocol, e.g., an open flow protocol. The communication channel between the controller 10 and the switch 20 can be encrypted by SSL.

도 2를 참조하면, 제어기(10)는 스위치(20)와 통신하는 스위치 통신부(110), 제어부(100), 및 저장부(190)를 포함할 수 있다.2, the controller 10 may include a switch communication unit 110, a control unit 100, and a storage unit 190, which communicate with the switch 20.

저장부(190)는 제어부(100)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부(190)는 입력되거나 출력되는 데이터들(패킷, 메시지 등)을 임시 저장을 위한 기능을 수행할 수 있다. 저장부(190)는 플로우 엔트리를 저장하는 엔트리 데이터베이스(DB)(191)를 포함할 수 있다.The storage unit 190 may store a program for processing and controlling the control unit 100. [ The storage unit 190 may perform a function for temporarily storing input or output data (packet, message, etc.). The storage unit 190 may include an entry database (DB) 191 for storing flow entries.

제어부(100)는 통상적으로 상기 각 부의 동작을 제어하여 제어기(10)의 전반적인 동작을 제어할 수 있다. 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135) 및 메시지 관리 모듈(130)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다.The controller 100 may control the overall operation of the controller 10 by controlling the operations of the respective units. The control unit 100 may include a topology management module 120, a path calculation module 125, an entry management module 135, and a message management module 130. Each module may be configured in hardware in the control unit 100 and may be configured in software separate from the control unit 100. [

토폴로지 관리 모듈(120)은 스위치 통신부(110)를 통하여 수집된 스위치(20)의 접속 관계를 기초로 네트워크 토폴로지 정보를 구축 및 관리 할 수 있다. 네트워크 토폴로지 정보는 스위치들 사이의 토폴로지 및 각 스위치에 연결되어 있는 네트워크 디바이스들의 토폴로지를 포함할 수 있다. 토폴로지 정보는 저장부(190)에 저장될 수 있다.The topology management module 120 can construct and manage network topology information based on the connection relationship of the switches 20 collected through the switch communication unit 110. [ The network topology information may include a topology between switches and a topology of network devices connected to each switch. The topology information may be stored in the storage unit 190.

경로 계산 모듈(125)은 토폴로지 관리 모듈(120)에서 구축된 네트워크 토폴로지 정보를 기초로 스위치 통신부(110)를 통해 수신한 패킷의 데이터 경로 및 상기 데이터 경로 상의 스위치에서 실행될 액션 열을 구할 수 있다.The path calculation module 125 can obtain the data path of the packet received through the switch communication unit 110 and the action column to be executed in the switch on the data path based on the network topology information established in the topology management module 120.

엔트리 관리 모듈(135)는 경로 계산 모듈(125)에서 계산된 결과, QoS 등의 정책, 사용자 지시 등을 기초로 플로우 테이블, 그룹 테이블, 및 미터 테이블 등의 엔트리로서 엔트리 DB(191)에 등록할 수 있다. 엔트리 관리 모듈(135)은 스위치(20)에 미리 각 테이블의 엔트리가 등록되도록 하거나(proactive), 스위치(20)로부터의 엔트리의 추가 또는 갱신 요구에 응답(reactive)할 수 있다. 엔트리 관리 모듈(135)은 필요에 따라 또는 스위치(10)의 엔트리 소멸 메시지 등에 의해 엔트리 DB(191)의 엔트리를 변경하거나 삭제할 수 있다.The entry management module 135 registers the entry in the entry DB 191 as an entry such as a flow table, a group table, and a meter table based on the result calculated by the route calculation module 125, a policy such as QoS, . The entry management module 135 may proactively register an entry in each table in the switch 20 and react to an addition or update request of an entry from the switch 20. [ The entry management module 135 may change or delete entries in the entry DB 191 as needed or in accordance with an entry disappearance message of the switch 10. [

메시지 관리 모듈(130)은 스위치 통신부(110)를 통해 수신한 메시지를 해석하거나, 스위치 통신부(110)를 통해 스위치로 전송되는 후술할 제어기-스위치 메시지를 생성할 수 있다. 제어기-스위치 메시지 중 하나인 상태 변경 메시지는 엔트리 관리 모듈(135)에 의해 생성된 엔트리 또는 엔트리 DB(191)에 저장된 엔트리에 기초하여 생성될 수 있다.The message management module 130 may interpret a message received through the switch communication unit 110 or may generate a controller-switch message to be transmitted to the switch through the switch communication unit 110, which will be described later. The status change message, which is one of the controller-switch messages, may be generated based on the entry generated by the entry management module 135 or the entry stored in the entry DB 191. [

스위치(20)는 오픈플로우 프로토콜을 지원하는 물리적인 스위치 또는 가상 스위치일 수 있다. 스위치(20)는 수신한 패킷을 처리하여, 네트워크 디바이스(30) 사이의 플로우를 중계할 수 있다. 이를 위해 스위치(20)는 하나의 플로우 테이블 또는 비특허문헌 1에 상술되어 있는 파이프라인(pipeline) 처리를 위해 다중 플로우 테이블을 구비할 수 있다.The switch 20 may be a physical switch or a virtual switch supporting an open flow protocol. The switch 20 can process the received packet and relay the flow between the network devices 30. [ To this end, the switch 20 may comprise a single flow table or a multiple flow table for pipeline processing as described in non-patent document 1. [

플로우 테이블은 네트워크 디바이스(30)의 플로우를 어떻게 처리할 지의 규칙을 정의한 플로우 엔트리를 포함할 수 있다.The flow table may include a flow entry defining rules for how to handle the flow of network device 30. [

스위치(20)는 다중 스위치의 조합에 따른 플로우의 입구 및 출구 측 에지 스위치(edge switch)(ingress switch and egress switch)와 에지 스위치 사이의 코어 스위치(core switch)로 구분될 수 있다.The switch 20 can be divided into a core switch between an ingress and egress edge switch and an edge switch between a flow according to the combination of multiple switches.

도 3을 참조하면, 스위치(20)는 다른 스위치 및/또는 네트워크 디바이스와 통신하는 포트부(205), 제어기(10)와 통신하는 제어기 통신부(210), 스위치 제어부(200), 및 저장부(290)를 포함할 수 있다.3, the switch 20 includes a port portion 205 for communicating with other switches and / or network devices, a controller communication portion 210 for communicating with the controller 10, a switch control portion 200, and a storage portion 290).

포트부(205)는 스위치 또는 네트워크 디바이스와 연결된 한 쌍의 포트를 다수 구비할 수 있다. 한 쌍의 포트는 하나의 포트로 구현될 수 있다.The port unit 205 may include a plurality of pairs of ports connected to a switch or a network device. A pair of ports can be implemented as one port.

저장부(290)는 스위치 제어부(200)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부(290)는 입력되거나 출력되는 데이터들(패킷, 메시지 등)을 임시 저장을 위한 기능을 수행할 수 있다. 저장부(290)는 플로우 테이블, 그룹 테이블, 및 미터 테이블 등의 테이블(291)을 구비할 수 있다. 테이블(230) 또는 테이블의 엔트리는 제어기(10)의 메시지에 기초하여 추가, 수정, 삭제될 수 있다. 테이블 엔트리는 스위치(20)에 의해 자체적으로 파기될 수 있다.The storage unit 290 may store a program for processing and controlling the switch control unit 200. [ The storage unit 290 may perform a function for temporarily storing input or output data (packets, messages, etc.). The storage unit 290 may include a table 291 such as a flow table, a group table, and a meter table. An entry in the table 230 or table may be added, modified or deleted based on the message of the controller 10. [ The table entry may be discarded by the switch 20 itself.

플로우 테이블은 오픈플로우의 파이프라인(pipeline)을 처리하기 위해 다중 플로우 테이블로 구성될 수 있다. 도 4를 참조하면, 플로우 테이블의 플로우 엔트리는 패킷과 매치하는 조건(대조 규칙)을 기술한 매치 필드(match fields), 우선 순위(priority), 매치되는 패킷이 있는 경우 업데이트되는 카운터(counters), 플로우 엔트리에 매치되는 패킷이 있으면 발생하는 다양한 액션들의 집합인 인스트럭션(instruction), 스위치에서 파기될 시간을 기술하는 타임아웃(timeouts), 제어기에 의해 선택되어지는 오파큐(opaque) 타입으로, 제어기에 의해 플로우 통계, 플로우 변경, 및 플로우 삭제를 필터하기 위해 사용될 수 있으며, 패킷 처리시 사용되지 않는 쿠키(cookie) 등의 튜플(tuple)을 포함할 수 있다.The flow table can be composed of multiple flow tables to handle the pipeline of open flows. 4, a flow entry of a flow table includes match fields describing conditions (matching rules) to match a packet, a priority, counters to be updated when there are packets to be matched, An instruction that is a set of various actions that occurs when there is a packet matched to a flow entry, timeouts that describe the time to be discarded in the switch, and an opaque type that is selected by the controller. Can be used to filter flow statistics, flow changes, and flow deletions, and can include tuples such as cookies that are not used in packet processing.

인스트럭션(instruction)은 다른 플로우 테이블로 패킷을 전달하는 것과 같은 파이프라인 프로세싱을 변경할 수 있다. 또한 인스트럭션은 액션 셋(action set)에 액션을 더하는 액션(action)들의 집합, 또는 패킷에 바로 적용하기 위한 액션들의 리스트를 포함할 수 있다. 액션(action)은 특정 포트로 패킷을 전송하거나, TTL 필드를 감소시키는 것과 같이 패킷을 수정하는 작업을 의미할 수 있다. 액션은 플로우 엔트리와 연관된 인스트럭션 집합의 일부 또는 그룹 엔트리와 연관된 액션 버킷에 속할 수 있다. 액션 셋(action set)은 각 테이블에서 지시된 액션이 누적된 집합을 의미한다. 액션 셋은 매치되는 테이블이 없을 때 수행될 수 있다. 도 5는 플로우 엔트리에 의한 여러 패킷 처리를 예시한다.An instruction may change pipeline processing such as forwarding a packet to another flow table. The instructions may also include a collection of actions to add an action to an action set, or a list of actions to apply directly to a packet. An action can be an action that modifies a packet, such as sending a packet to a specific port, or decreasing the TTL field. The action may be part of an instruction set associated with the flow entry or belonging to an action bucket associated with the group entry. An action set is an aggregated set of actions indicated in each table. An action set can be performed when no table is matched. 5 illustrates various packet processing by a flow entry.

파이프라인(pipleline)은 패킷과 플로우 테이블 사이의 일련의 패킷 처리 과정을 의미한다. 스위치(20)에 패킷이 유입되면, 스위치(20)는 첫번째 플로우 테이블의 우선 순위가 높은 순서대로 패킷과 매칭되는 플로우 엔트리를 탐색한다. 매칭이 되면 해당 엔트리의 인스트럭션을 수행한다. 인스트럭션은 매칭되면 바로 수행하는 명령(apply-action), 액션 셋의 내용을 지우거나 추가/수정하는 명령(clear-action; write-action), 메타데이터(metadata) 수정 명령(write-metadata), 지정된 테이블로 메타데이터와 함께 패킷을 이동시키는 고우투 명령(goto-table) 등이 있다. 패킷과 매칭되는 플로우 엔트리가 없는 경우, 테이블 설정에 따라 패킷을 폐기(drop)하거나 제어기(10)로 패킷을 패킷-인 메시지(packet-in message)에 실어서 보낼 수 있다.A pipeline is a sequence of packets between a packet and a flow table. When a packet is input to the switch 20, the switch 20 searches for a flow entry matching the packet in the order of higher priority of the first flow table. When the matching is performed, the instruction of the entry is executed. An instruction may be an apply-action that is immediately matched, a command to clear or add / modify an action set, a write-action, a write-metadata command, And a goto-table that moves packets along with metadata to a table. If there is no flow entry matched with the packet, the packet may be dropped according to the table setting, or the packet may be sent to the controller 10 in a packet-in message.

그룹 테이블은 그룹 엔트리들을 포함할 수 있다. 그룹 테이블은 플로우 엔트리에 의해 지시되어 추가적인 포워딩 방법들을 제시할 수 있다. 도 5(a)를 참조하면, 그룹 테이블의 그룹 엔트리는 다음과 같은 필드를 구비할 수 있다. 그룹 엔트리를 구분할 수 있는 그룹 식별자(group identifier), 그룹 엔트리에 정의된 액션 버킷들을 일부(select) 또는 전부(all) 수행할 것이 여부에 대한 규칙을 명시한 그룹 타입(group type), 플로우 엔트리의 카운터와 같이 통계를 위한 카운터(counters), 및 그룹을 위해 정의된 파라미터들과 연관된 액션들의 집합인 액션 버킷(action buckets)을 포함할 수 있다.The group table may include group entries. The group table may be indicated by a flow entry to suggest additional forwarding methods. Referring to FIG. 5A, the group entry of the group table may include the following fields. A group identifier for identifying a group entry, a group type for specifying a rule for performing a select or all action buckets defined in the group entry, a counter for a flow entry , And action buckets, which are a set of actions associated with the parameters defined for the group.

미터 테이블(meter table)은 미터 엔트리들(meter entries)로 구성되며, 플로우 미터-당(per-flow meters)을 정의한다. 플로우 미터-당은 오픈플로우가 다양한 QoS 작동을 적용될 수 있도록 할 수 있다. 미터(meter)는 패킷의 레이트(rate of packets)를 측정 및 제어할 수 있는 일종의 스위치 요소이다. 도 5(b)를 참조하면, 미터 테이블(meter table)은 미터를 식별하는 미터 식별자(meter identifier), 밴드(band)에 지정된 속도와 패킷 동작 방법을 나타내는 미터 밴드(meter bands), 및 패킷이 미터에서 동작될 때 업데이트되는 카운터(counters) 필드들로 구성된다. 미터 밴드(meter bands)는 패킷이 어떻게 처리되는 지를 나타내는 밴드 타입(band type), 미터에 의해 미터 밴드를 선택하는데 사용되는 레이트(rate), 미터 밴드에 의해 패킷들이 처리될 때 업데이트되는 카운터(counters), 및 선택적인 아규먼트(argument)를 가지는 배드 타입들인 특정 아규먼트 타입(type specific argument)과 같은 필드들로 구성될 수 있다.A meter table is composed of meter entries and defines per-flow meters. The flow meter-party can allow open flows to be applied to various QoS operations. A meter is a kind of switch element that can measure and control the rate of packets. Referring to FIG. 5 (b), a meter table includes a meter identifier for identifying a meter, a rate specified in a band and meter bands indicating a method of packet operation, And counters fields that are updated when operated on the meter. Meter bands include a band type indicating how the packet is to be processed, a rate used to select the meter band by the meter, counters that are updated when the packets are processed by the meter band, ), And a type specific argument, which is a bad type with optional arguments.

스위치 제어부(200)는 통상적으로 상기 각 부의 동작을 제어하여 스위치(20)의 전반적인 동작을 제어할 수 있다. 스위치 제어부(200)는 테이블(291)을 관리하는 테이블 관리 모듈(240), 플로우 검색 모듈(220), 플로우 처리 모듈(230), 및 패킷 처리 모듈(235)를 포함할 수 있다. 각 모듈은 제어부(200) 내에 하드웨어로 구성될 수 있고, 제어부(200)와 별개의 소프트웨어로 구성될 수도 있다.The switch control unit 200 can control the overall operation of the switch 20 by controlling the operations of the respective units. The switch control unit 200 may include a table management module 240 that manages the table 291, a flow search module 220, a flow processing module 230, and a packet processing module 235. Each module may be configured in hardware in the control unit 200 and may be configured in software separate from the control unit 200. [

테이블 관리 모듈(240)은 제어기 통신부(210)를 통해 제어기(10)로부터 수신한 엔트리를 적절한 테이블에 추가하거나, 타임 아웃(time out)된 엔트리를 주기적으로 제거할 수 있다.The table management module 240 may add the entry received from the controller 10 to the appropriate table through the controller communication unit 210 or periodically remove the time-out entry.

플로우 검색 모듈(220)은 유저 트래픽으로서 수신한 패킷으로부터 플로우 정보를 추출할 수 있다. 플로우 정보는 에지 스위치의 패킷 유입 포트인 입구 포트(ingress port)의 식별 정보, 해당 스위치의 패킷 유입 포트(incoming port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등), 및 메타데이터 등을 포함할 수 있다. 메타데이터는 이전 테이블에서 선택적으로 추가되거나, 다른 스위치에서 추가된 데이터일 수 있다. 플로우 검색 모듈(220)은 추출한 플로우 정보를 참조하여 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 있는지 검색할 수 있다. 플로우 검색 모듈(220)은 플로우 엔트리가 검색되면, 플로우 처리 모듈(260)에 검색된 플로우 엔트리에 따라 수신 패킷을 처리하도록 요청할 수 있다. 만일 플로우 엔트리 검색이 실패하면, 플로우 검색 모듈(220)은 수신 패킷 또는 수신 패킷의 최소한의 데이터를 제어기 통신부(210)를 통해 제어기(10)로 전송할 수 있다.The flow search module 220 may extract flow information from the received packet as user traffic. The flow information includes identification information of an ingress port as a packet inflow port of the edge switch, identification information of an incoming port of the switch of the switch, packet header information (IP address of the source and destination, MAC address, port, And VLAN information, etc.), metadata, and the like. The metadata may be optionally added in the previous table or may be data added in another switch. The flow search module 220 can search the table 291 for a flow entry for a received packet by referring to the extracted flow information. The flow search module 220 may request the flow processing module 260 to process the received packet according to the retrieved flow entry, if a flow entry is found. If the flow entry search fails, the flow search module 220 may transmit the minimum data of the received packet or the received packet to the controller 10 via the controller communication unit 210.

플로우 처리 모듈(230)는 플로우 검색 모듈(220)에서 검색된 엔트리에 기술된 절차에 따라 패킷을 특정 포트 또는 다중 포트로 출력하거나, 드롭시키거나 또는 특정 헤더 필드를 수정하는 등의 액션을 처리할 수 있다.The flow processing module 230 may process an action, such as outputting a packet to a specific port or multiple ports, dropping it, or modifying a specific header field, in accordance with the procedure described in the entry retrieved from the flow search module 220 have.

플로우 처리 모듈(230)는 플로우 엔트리의 파이프라인 프로세스를 처리하거나 액션을 변경하기 위한 인스트럭션을 실행하거나 다중 플로우 테이블에서 더 이상 다음 테이블로 갈 수 없을 때 액션 세트를 실행할 수 있다.The flow processing module 230 may execute an action set to execute a pipeline process of a flow entry, execute an instruction to change an action, or execute a set of actions when it is no longer possible to go to the next table in a multi-flow table.

패킷 처리 모듈(235)은 플로우 처리 모듈(230)에 의해 처리된 패킷을 플로우 처리 모듈(230)에서 지정한 포트부(205)의 하나 또는 2 이상의 포트로 실제로 출력할 수 있다.The packet processing module 235 may actually output the packet processed by the flow processing module 230 to one or more ports of the port unit 205 designated by the flow processing module 230. [

도 1(b)를 참조하면, SDN 네트워크 시스템은 오케스트레이터(1)를 더 포함할 수 있다. 오케스트레이터(1)는 가상 네트워크 디바이스, 가상 스위치 등을 생성, 변경 및 삭제할 수 있다. 오케스트레이터(1)에서 가상 네트워크 디바이스를 생성하는 경우, 오케스트레이터(1)는 가상 네트워크가 접속할 스위치의 식별 정보, 해당 스위치에 연결되는 포트 식별 정보, MAC 주소, IP 주소, 터넨트(tenant) 식별 정보 및 네트워크 식별 정보 등의 네트워크 디바이스의 정보를 제어기(10)로 제공할 수 있다.Referring to FIG. 1 (b), the SDN network system may further include an orchestrator 1. The orchestrator 1 can create, change and delete virtual network devices, virtual switches, and the like. When the virtual network device is created in the orchestrator 1, the orchestrator 1 identifies the switch to be connected to the virtual network, the port identification information connected to the switch, the MAC address, the IP address, the tenant identification Information of the network device such as information and network identification information to the controller 10. [

제어기(10) 및 스위치(20)는 오케스트레이터(1)와 별도의 인터페이스로 통신하거나, 제어기(10)의 스위치 통신부(110) 및 스위치(20)의 제어기 통신부(210)를 통해 오케스트레이터(1)와 통신할 수 있다. 스위치(20)는 제어기(10)를 통해 오케스트레이터(1)와 메시지를 주고 받을 수 있다.The controller 10 and the switch 20 communicate with each other through an interface different from the orchestrator 1 or through the controller communication unit 210 of the switch communication unit 110 and the switch 20 of the controller 10, ). ≪ / RTI > The switch 20 can send and receive messages to the orchestrator 1 via the controller 10.

제어기(10)와 스위치(20)는 다양한 정보를 주고 받는데, 이를 오픈플로우 프로토콜 메시지(openflow protocol message)라 칭한다. 이러한 오픈플로우 메시지는 제어기-스위치 메시지(controller-to-switch message), 비동기 메시지(asynchronous message), 및 대칭 메시지(symmetric message) 등의 타입이 있다. 각 메시지는 엔트리를 식별하는 트랜잭션 식별자(transaction id; xid)를 헤더에 구비할 수 있다.The controller 10 and the switch 20 exchange various information, which is called an open flow protocol message. Such an open flow message may be of a type such as a controller-to-switch message, an asynchronous message, and a symmetric message. Each message may have a transaction identifier (transaction id; xid) in the header that identifies the entry.

제어기-스위치 메시지는 제어기(10)가 생성하여 스위치(20)에 전달하는 메시지로써, 주로 스위치(20)의 상태를 관리하거나 점검하기 위해 사용된다. 제어기-스위치 메시지는 제어기(10)의 제어부(100), 특히 메시지 관리 모듈(130)에 의해 생성될 수 있다.The controller-switch message is a message generated by the controller 10 and transmitted to the switch 20, which is mainly used for managing or checking the state of the switch 20. [ The controller-switch message may be generated by the controller 100 of the controller 10, and in particular by the message management module 130.

제어기-스위치 메시지는 스위치의 능력(capabilities)을 문의하는 기능(features), 스위치(20)의 구성 매개 변수 등의 설정을 문의하고 설정하기 위한 설정(configuration), 오픈플로우 테이블의 플로우/그룹/미터 엔트리들을 추가/삭제/수정하기 위한 상태 변경 메시지(modify state message), 패킷-인 메시지를 통해 스위치로부터 수신한 패킷을 해당 스위치 상의 특정한 포트로 전송하도록 하는 패킷-아웃 메시지(packet-out message) 등이 있다. 상태 변경 메시지는 플로우 테이블 변경 메시지(modify flow table message), 플로우 엔트리 변경 메시지(modify flow entry message), 그룹 엔트리 변경 메시지(modify group entry message), 포트 변경 메시지(prot modification message), 및 미터 엔트리 변경 메시지(meter modification message) 등이 있다.The controller-switch message includes features inquiring about the capabilities of the switch, configuration for inquiring and setting the settings of the configuration parameters of the switch 20, flow / group / meter of the open flow table, A modify state message for adding / deleting / modifying entries, a packet-out message for transmitting a packet received from the switch through a packet-in message to a specific port on the switch, and the like . The state change message includes a modify flow table message, a modify flow entry message, a modify group entry message, a prot modification message, and a meter entry change message. Message (meter modification message).

비동기 메시지는 스위치(20)가 생성하는 메시지로서, 스위치의 상태 변경 및 네트워크 이벤트 등을 제어기(10)에서 업테이트하기 위해 사용된다. 비동기 메시지는 스위치(20)의 제어부(200), 특히 플로우 검색 모듈(220)에 의해 생성될 수 있다.The asynchronous message is a message generated by the switch 20, and is used to update the state of the switch, the network event, and the like in the controller 10. The asynchronous message may be generated by the control unit 200 of the switch 20, in particular by the flow search module 220.

비동기 메시지로 패킷-인 메시지(packet-in message), 플로우 삭제 메시지(flow-removed), 에러 메시지 등이 있다. 패킷-인 메시지는 스위치(20)가 제어기(10)에게 패킷을 전송하여 패킷에 대한 제어를 받기 위해 사용된다. 패킷-인 메시지는 스위치(20)가 미지의 패킷을 수신한 경우, 데이터 경로를 요구하기 위해, 오픈플로우 스위치(20)에서 제어기(10)로 전송되는 수신 패킷 또는 그 사본의 전부 또는 일부를 포함하는 메시지이다. 유입 패킷에 연관된 엔트리의 액션이 제어기로 보내라고 정해져 있을 때에도 패킷-인 메시지가 사용된다. 삭제된 플로우(flow-removed) 메시지는 플로우 테이브에서 삭제할 플로우 엔트리 정보를 제어기(10)로 전달하기 위해 사용된다. 이 메시지는 제어기(10)가 스위치(20)에 해당 플로우 엔트리 삭제를 요청하였거나 플로우 타임아웃(timeout)에 의한 플로우 만기 처리(flow expiry process)에서 발생한다.Asynchronous messages include packet-in messages, flow-removed messages, and error messages. The packet-in message is used by the switch 20 to send a packet to the controller 10 to receive control of the packet. The packet-in message includes all or part of the received packet, or a copy thereof, sent from the open flow switch 20 to the controller 10 to request the data path when the switch 20 receives an unknown packet Message. A packet-in message is used even when the action of the entry associated with the incoming packet is determined to be sent to the controller. The deleted flow-removed message is used to forward the flow entry information to the controller 10 to be deleted from the flow table. This message occurs when the controller 10 requests the switch 20 to delete the corresponding flow entry or in a flow expiry process by a flow timeout.

대칭 메시지는 제어기(10) 및 스위치(20) 모두에서 생성되며, 상대방의 요청이 없어도 전송되는 특징이 있다. 제어기와 스위치 간에 연결을 개시할 때 사용되는 헬로(hello), 제어기 및 스위치 간 연결에 이상이 없음을 확인하기 위한 에코(echo), 및 제어기나 스위치에 의해 사용되며 문제를 반대측에 알리기 위한 에러 메시지(error message) 등을 포함할 수 있다. 에러 메시지는 대부분 제어기에 의해 개시된 요청에 따른 실패를 나타나기 위해 스위치에서 사용된다.The symmetric message is generated in both the controller 10 and the switch 20, and is transmitted even when there is no request from the other party. A hello used to initiate the connection between the controller and the switch, an echo to confirm that there is no abnormality in the connection between the controller and the switch, and an error message used by the controller or switch to inform the other side of the problem an error message, and the like. The error message is mostly used in the switch to indicate a failure in response to a request initiated by the controller.

도 6은 본 발명의 일 실시예에 따른 통합 라우팅 시스템을 포함하는 네트워크 시스템의 블록 구성도, 도 7은 도 6의 네트워크 시스템의 가상화한 블록 구성도, 도 8은 본 발명의 다른 실시예에 따른 SDN 제어기의 블록 구성도이다.FIG. 6 is a block diagram of a network system including an integrated routing system according to an embodiment of the present invention; FIG. 7 is a block diagram of a virtualized system of the network system of FIG. 6; and FIG. SDN controller.

도 6에 도시된 네트워크는 복수의 스위치(SW1-SW5)로 구성된 스위치 그룹 중 오픈플로우 스위치의 플로우를 제어하는 제어기(10)를 포함하는 SDN 기반의 네트워크와 제1 내지 제3 레거시 라우터(R1-R3)의 레거시 네트워크가 혼용되어 있다.The network shown in Fig. 6 includes an SDN-based network including the controller 10 for controlling the flow of the open flow switch among the switch groups constituted by the plurality of switches SW1 to SW5 and the first to third legacy routers R1- R3 are mixed with each other.

본 명세서에서 SDN 기반의 네트워크는 오픈플로우 스위치로만 구성되거나, 오픈플로우 스위치와 기존의 스위치로 구성된 독립 네트워크를 의미한다. SDN 기반의 네트워크가 오픈플로우 스위치와 기존의 스위치로 구성되어 있는 경우, 스위치 그룹 중 네트워크 도메인의 에지에 배치되는 오픈플로우 스위치로 구성되는 것이 바람직하다. 본 실시예에서 레거시 네트워크를 혼용한 것 등은 본 발명의 실시예를 구체적으로 설명하기 위한 것으로, 본 발명은 레거시 라우터 또는 기존의 스위치가 없이도 실시될 수 있다.In this specification, the SDN-based network means only an open-flow switch, or an independent network composed of an open-flow switch and an existing switch. When the SDN-based network is composed of an open-flow switch and an existing switch, it is preferable that the open-flow switch is arranged at an edge of a network domain of the switch group. The present invention may be embodied without requiring a legacy router or a conventional switch. The present invention may be embodied in other forms without departing from the spirit or essential characteristics thereof.

도 6을 참조하면, 본 발명에 따른 SDN 기반의 통합 라우팅 시스템은 제1 내지 제5 스위치(SW1-SW5)를 구비하는 스위치 그룹, 및 제어기(10)를 포함할 수 있다. 동일하거나 유사한 구성요소에 대한 자세한 설명은 도 1 내지 도 5를 참조한다.Referring to FIG. 6, the SDN-based integrated routing system according to the present invention may include a switch group having first through fifth switches SW1-SW5, and a controller 10. [ Reference is made to Figs. 1 to 5 for a detailed description of the same or similar components.

제1 내지 제5 스위치(SW1-SW5) 중 외부 네트워크와 연결된 에지 스위치인 제1 및 제3 스위치(SW1, SW5)는 오픈플로우 프로토콜을 지원하는 오픈플로우 스위치이다. 오픈플로우 스위치는 물리적인 하드웨어, 가상화된 소프트웨어, 또는 하드웨어와 소프트웨어가 혼합된 형태일 수 있다.The first and third switches SW1 and SW5, which are the edge switches connected to the external network among the first to fifth switches SW1 to SW5, are open flow switches that support the open flow protocol. The open flow switch may be physical hardware, virtualized software, or a mixture of hardware and software.

본 실시예에서, 제1 스위치(SW1)는 제11 포트(port 11)을 통해 제1 레거시 라우터(R1)에 연결된 에지 스위치이며, 제3 스위치(SW3)는 제32 및 제33 포트(port 32, port 33)를 통해 제2 및 제3 레거시 라우터(R2, R3)에 연결된 에지 스위치이다. 스위치 그룹은 제1 내지 제5 스위치에 연결된 복수의 네트워크 디바이스(미도시)를 더 포함할 수 있다.In this embodiment, the first switch SW1 is an edge switch connected to the first legacy router R1 through the eleventh port (port 11), and the third switch SW3 is an edge switch connected to the 32nd port 33 , and port 33 to the second and third legacy routers R2 and R3. The switch group may further include a plurality of network devices (not shown) connected to the first to fifth switches.

도 8을 참조하면, 제어기(10)는 스위치(20)와 통신하는 스위치 통신부(110), 제어기 제어부(100), 저장부(190), 및 가상 라우팅 앱(300)을 포함할 수 있다.8, the controller 10 may include a switch communication unit 110, a controller control unit 100, a storage unit 190, and a virtual routing application 300, which communicate with the switch 20.

제어기 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), 메시지 관리 모듈(130), 및 라우팅앱 인터페이스 모듈(150)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다. 동일한 도면 부호의 구성요소에 대한 설명은 도 2를 참조한다.The controller control unit 100 may include a topology management module 120, a path calculation module 125, an entry management module 135, a message management module 130, and a routing application interface module 150. Each module may be configured in hardware in the control unit 100 and may be configured in software separate from the control unit 100. [ Reference is made to Fig. 2 for a description of the components of the same reference numerals.

스위치 그룹이 오픈플로우 스위치로만 구성된 경우, 토폴로지 관리 모듈(120) 및 경로 계산 모듈(125)의 기능은 도 1 내지 도 5에서 설명한 것과 동일하다. 스위치 그룹이 오픈플로우 스위치와 기존의 레거시 스위치로 구성된 경우, 토폴로지 관리 모듈(120)은 오픈플로우 스위치를 통해 레거시 스위치와의 접속 정보를 얻을 수 있다.When the switch group is composed only of an open flow switch, the functions of the topology management module 120 and the path calculation module 125 are the same as those described in Figs. When the switch group is composed of the open flow switch and the existing legacy switch, the topology management module 120 can obtain the connection information with the legacy switch through the open flow switch.

라우팅앱 인터페이스 모듈(150)은 가상 라우팅 앱(300)과 통신할 수 있다. 라우팅앱 인터페이스 모듈(150)은 토폴로지 관리 모듈(120)에서 구축한 스위치 그룹의 토폴로지 정보를 가상 라우팅 앱(300)로 전송할 수 있다. 토폴로지 정보는 제1 내지 제5 스위치(SW1-SW5)의 접속 관계 정보 및 제1 내지 제5 스위치(SW1-SW5)에 연결되어 있는 복수의 네트워크 디바이스의 연결 또는 접속 정보를 포함할 수 있다.The routing app interface module 150 may communicate with the virtual routing app 300. The routing application interface module 150 can transmit the topology information of the switch group established by the topology management module 120 to the virtual routing application 300. The topology information may include connection information of the first to fifth switches SW1 to SW5 and connection or connection information of a plurality of network devices connected to the first to fifth switches SW1 to SW5.

메시지 관리 모듈(130)은 오픈플로우 스위치로부터 수신한 플로우 문의 메시지에 구비된 플로우의 처리 규칙을 생성할 수 없는 경우, 해당 플로우를 라우팅앱 인터페이스 모듈(150)을 통해 가상 라우팅 앱(300)으로 전송할 수 있다. 해당 플로우는 오픈플로우 스위치에서 수신한 패킷 및 패킷을 수신한 스위치의 포트 정보를 포함할 수 있다. 플로우의 처리 규칙을 생성할 수 없는 경우는 수신 패킷이 레거시 프로토콜로 구성되어 해석할 수 없는 경우, 및 경로 계산 모듈(125)이 레거시 패킷에 대한 경로를 계산할 수 없는 경우 등이 있을 수 있다.If the message management module 130 can not generate the processing rule of the flow included in the flow inquiry message received from the open flow switch, the message management module 130 transmits the flow to the virtual routing application 300 through the routing app interface module 150 . The flow may include the packet received at the open flow switch and the port information of the switch receiving the packet. A case where the processing rule of the flow can not be generated, a case where the received packet is configured as a legacy protocol and can not be interpreted, and the case where the path calculation module 125 can not calculate the path to the legacy packet, and the like.

도 8을 참조하면, 가상 라우팅 앱(300)은 SDN 인터페이스 모듈(310), 가상 라우터 생성부(320), 가상 라우터(340), 패킷 처리부(330), 및 라우팅 정보 저장부(390)을 포함할 수 있다.8, the virtual routing application 300 includes an SDN interface module 310, a virtual router creation unit 320, a virtual router 340, a packet processing unit 330, and a routing information storage unit 390 can do.

SDN 인터페이스 모듈(310)은 제어기(10)와 통신할 수 있다. 라우팅앱 인터페이스 모듈(150) 및 SDN 인터페이스 모듈(310) 각각은 제어기(10)와 가상 라우팅 앱(300)의 인터페이스 역할을 할 수 있다. 라우팅앱 인터페이스 모듈(150) 및 SDN 인터페이스 모듈(310)은 특정 프로토콜이나 특정 언어로 통신할 수 있다. 라우팅앱 인터페이스 모듈(150) 및 SDN 인터페이스 모듈(310)은 제어기(10)와 가상 라우팅 앱(300)이 주고 받는 메시지를 번역하거나 해석할 수 있다.The SDN interface module 310 may communicate with the controller 10. Each of the routing application interface module 150 and the SDN interface module 310 may serve as an interface between the controller 10 and the virtual routing application 300. The routing app interface module 150 and the SDN interface module 310 may communicate in a specific protocol or in a specific language. The routing application interface module 150 and the SDN interface module 310 can translate or interpret messages exchanged between the controller 10 and the virtual routing application 300. [

가상 라우터 생성부(320)는 SDN 인터페이스 모듈(310)을 통해 수신한 스위치 그룹의 토폴로지 정보를 이용하여 가상 라우터(340)를 생성 및 관리할 수 있다. 가상 라우터(340)를 통해, 외부 레거시 네트워크 즉 제1 내지 제3 라우터(R1-R3)에서 스위치 그룹이 레거시 라우터로 취급될 수 있다.The virtual router creation unit 320 can create and manage the virtual router 340 using the topology information of the switch group received through the SDN interface module 310. [ Via the virtual router 340, the switch group in the external legacy networks, i.e., the first to third routers R1-R3, can be treated as a legacy router.

가상 라우터 생성부(320)는 가상 라우터(340)를 복수 개 생성할 수 있다. 도 7(a)는 가상 라우터(340)가 하나인 가상 레거시 라우터(v-R0)인 경우를, 도 7(b)는 가상 라우터(340)가 복수인 가상 레거시 라우터(v-R1, v-R2)인 경우를 도시한다.The virtual router generating unit 320 may generate a plurality of virtual routers 340. 7A shows a case where the virtual router 340 is a virtual legacy router v-R0 and FIG. 7B shows a case where the virtual router 340 has a plurality of virtual legacy routers v-R1, v- R2).

가상 라우터 생성부(320)는 가상 라우터(340)가 라우터 식별자, 예를 들어, 룩백(lookback) IP 주소를 구비하도록 할 수 있다.The virtual router creation unit 320 may allow the virtual router 340 to have a router identifier, for example, a lookback IP address.

가상 라우터 생성부(320)는 가상 라우터(340)가 스위치 그룹의 에지 스위치 즉 제1 및 제3 에지 스위치(SW1, SW3)의 에지 포트들과 대응하는 가상 라우터용 포트를 구비하도록 수 있다. 예를 들어 도 7(a)의 경우와 같이, v-R0 가상 레거시 라우터의 포트는 제1 스위치(SW1)의 제11 포트(port 11), 및 제3 스위치(SW3)의 제32 및 33 포트(port 32, port 33)의 정보를 그대로 이용할 수 있다.The virtual router creation unit 320 may be configured such that the virtual router 340 has the ports for the virtual routers corresponding to the edge ports of the switch groups, that is, the edge ports of the first and third edge switches SW1 and SW3. For example, as in the case of FIG. 7A, the port of the v-R0 virtual legacy router is connected to the eleventh port (port 11) of the first switch SW1, and the port 32 of the third switch SW3 (port 32, port 33) can be used as it is.

가상 라우터(340)의 포트는 패킷의 식별 정보에 연관될 수 있다. 패킷의 식별 정보는 패킷의 vLAN 정보, 이동통신망을 통해 접속되는 경우 패킷에 부가되는 터널(tunnel) 아이디 등의 태그 정보일 수 있다. 이 경우 오픈플로우 에지 스위치의 실질적인 포트 하나로 다수의 가상 라우터 포트를 생성할 수 있다. 패킷의 식별 정보에 연관되는 가상 라우터 포트는 가상 라우터(340)가 복수의 가상 레거시 라우터로 작동하도록 하는데 기여할 수 있다. 에지 스위치의 물리적 포트(실제 포트)만으로 가상 라우터를 생성하는 경우, 물리적 포트의 수에 제한을 받게 된다. 그러나 패킷 식별 정보에 연관시키는 경우, 이러한 제약 사항이 없어진다. 또한 기존의 레거시 네트워크에서의 패킷 흐름과 유사하게 작동되도록 할 수 있다. 또한 사용자 또는 사용자 그룹 별로 가상의 레거시 라우터를 구동할 수 있다. 사용자 또는 사용자 그룹은 vLAN 또는 터널 아이디와 같은 패킷 식별 정보로 구분될 수 있다. 도 7(b)를 참조하면, 스위치 그룹은 복수의 가상 레거시 라우터(v-R1, v-R2)로 가상화되며, 복수의 가상 레거시 라우터(v-R1, v-R2)의 각 포트(vp 11~13, vp 21~23)는 패킷의 식별 정보에 각각 연관될 수 있다.The port of the virtual router 340 may be associated with the identification information of the packet. The identification information of the packet may be tag information such as vLAN information of the packet and a tunnel ID added to the packet when connected through the mobile communication network. In this case, one virtual port of the open flow edge switch can create multiple virtual router ports. The virtual router port associated with the identification information of the packet may contribute to allowing the virtual router 340 to operate as a plurality of virtual legacy routers. If you create a virtual router with only the physical ports (physical ports) of the edge switch, you will be limited by the number of physical ports. However, when associated with packet identification information, such constraints are eliminated. It can also be made to work similar to packet flow in legacy legacy networks. It can also drive virtual legacy routers per user or user group. The user or user group can be identified by packet identification information such as vLAN or tunnel ID. Referring to Fig. 7 (b), the switch group is virtualized into a plurality of virtual legacy routers v-R1 and v-R2, and each port vp11 of the plurality of virtual legacy routers v- 13, vp 21-23) may be associated with the identification information of the packet, respectively.

도 7(b)를 참조하면, 복수의 가상 레거시 라우터(v-R1, v-R2)와 레거시 라우터의 접속은 제1 레거시 라우터(R1)의 하나의 실제 인터페이스가 분리된 여러개의 서브 인터페이스로 접속되거나, 제2 및 제3 레거시 라우터(R2, R3) 처럼 복수의 실제 인터페이스로 접속될 수 있다.Referring to FIG. 7 (b), connection between a plurality of virtual legacy routers (v-R1, v-R2) and a legacy router is established by connecting a plurality of subinterfaces in which one real interface of the first legacy router Or may be connected to a plurality of physical interfaces, such as the second and third legacy routers R2 and R3.

가상 라우터 생성부(320)는, 제1 내지 제3 라우터(R1-R3)가 제1 내지 제5 스위치(SW1-SW5)에 연결된 복수의 네트워크 디바이스를 가상 라우터(340)에 연결된 외부 네트워크(vN)로 취급되도록 할 수 있다. 이를 통해 레거시 네트워크는 오픈플로우 스위치 그룹의 네트워크 디바이스들에 접근할 수 있다. 도 7(a)의 경우, 가상 라우터 생성부(320)는 제0 가상 레거시 라우터(v-R0)에 제0 포트(port 0)를 생성하였다. 도 7(b)의 경우, 가상 라우터 생성부(320)는 제1 및 제2 가상 레거시 라우터(v-R1, v-R2)에 제10 및 제20 포트(vp 10, vp 20)를 생성하였다. 생성된 각 포트(port 0, vp 10, vp 20)는 스위치 그룹에 복수의 네트워크 디바이스가 연결된 것과 같은 정보를 구비할 수 있다. 외부 네트워크(vN)은 복수의 네트워크 디바이스 전부 또는 그 일부로 구성될 수 있다.The virtual router generating unit 320 generates a virtual router by connecting a plurality of network devices connected to the first to fifth switches SW1 to SW5 to the external network vN ). ≪ / RTI > This allows the legacy network to access the network devices of the open flow switch group. In the case of FIG. 7A, the virtual router creation unit 320 has created the 0th port (port 0) in the 0th virtual legacy router (v-R0). 7 (b), the virtual router generating unit 320 generates the tenth and twentieth ports vp 10 and vp 20 in the first and second virtual legacy routers v-R1 and v-R2 . The generated ports (port 0, vp 10, vp 20) may have the same information as a plurality of network devices connected to the switch group. The external network vN may be configured with all or a part of a plurality of network devices.

가상 라우터용 포트(port 0, por 11v, port 32v, port 33v, vp 10~13, vp 20~23)의 정보는 레거시 라우터가 가지는 포트 정보를 가질 수 있다. 예를 들어, 가상 라우터용 포트 정보는 각 가상 라우터용 포트의 MAC 주소, IP 주소, 포트 이름, 연결되어 있는 네트워크 주소 범위, 레거시 라우터 정보를 포함하며, vLAN 범위, 터널 아이디 범위 등을 더 포함할 수 있다.이러한 포트 정보는 상술한 바와 같이 제1 및 제3 에지 스위치(SW1, SW3)의 에지 포트 정보를 상속 받거나, 가상 라우터 생성부(320)에 의해 지정될 수 있다.The information of the virtual router ports (port 0, por 11v, port 32v, port 33v, vp 10 ~ 13, vp 20 ~ 23) may have port information of the legacy router. For example, the port information for the virtual router includes MAC address, IP address, port name, connected network address range, and legacy router information of each virtual router port, and further includes a vLAN range, a tunnel ID range, The port information may be inherited by the edge port information of the first and third edge switches SW1 and SW3 or may be designated by the virtual router generating unit 320 as described above.

가상 라우터(340)에 생성된 가상라우터(340)에 의한 도 6의 네트워크의 데이터 평면(data plane)은 도 7(a) 또는 도 7(b)와 같이 가상화될 수 있다. 예를 들어 도 7(a)의 경우, 가상화된 네트워크는 제1 내지 제5 스위치(SW1~SW5)가 가상 레거시 라우터(v-R0)로 가상화되고, 제0 가상 레거시 라우터(v-R0)의 제11v, 제32v, 및 제33v 포트(port 11v, 32v, 33v)는 제1 내지 제3 레거시 라우터(R1~R3)와 연결되고, 제0 가상 레거시 라우터(v-R0)의 제0 포트(port 0)는 복수의 네트워크 디바이스의 적어도 일부인 외부 네트워크(vN)와 연결될 수 있다.The data plane of the network of Fig. 6 by the virtual router 340 generated in the virtual router 340 can be virtualized as shown in Fig. 7 (a) or Fig. 7 (b). For example, in the case of FIG. 7A, the virtualized network is configured such that the first to fifth switches SW1 to SW5 are virtualized into the virtual legacy router v-R0, and the virtualized legacy router v- The 11th, 32v, and 33v ports (ports 11v, 32v, and 33v) are connected to the first to third legacy routers R1 to R3 and are connected to the 0th port of the 0th virtual legacy router (v- port 0) may be connected to an external network (vN) which is at least a part of a plurality of network devices.

패킷 처리부(330)은 가상 라우터(340)가 생성되면 라우팅 정보 저장부(390)를 생성할 수 있다. 라우팅 정보 저장부(390)는 레거시 라우터에서 라우팅에 참조되기 위해 사용되는 라우팅 정보를 포함할 수 있다. 라우팅 정보는 라우팅 테이블을 포함할 수 있다. 라우팅 테이블은 RIB, FIB, 및 ARP 테이블 등의 일부 또는 전부로 구성될 수 있다. 라우팅 테이블은 패킷 처리부(330)에 의해 수정되거나 업데이트 될 수 있다.The packet processor 330 may generate the routing information storage unit 390 when the virtual router 340 is created. The routing information storage unit 390 may include routing information used for referring to routing in a legacy router. The routing information may include a routing table. The routing table may consist of some or all of the RIB, FIB, and ARP tables. The routing table may be modified or updated by the packet processing unit 330.

패킷 처리부(330)은 제어기(10)에서 문의한 플로우에 대한 레거시 라우팅 경로를 생성할 수 있다. 패킷 처리부(330)은 플로우에 구비된 오픈플로우 스위치에서 수신한 수신 패킷, 수신 패킷이 유입된 포트 정보, 가상 라우터(340) 정보, 및 라우팅 정보 저장부(390) 등의 일부 또는 전부를 이용하여 레거시 라우팅 정보를 생성할 수 있다.The packet processing unit 330 may generate a legacy routing path for the flow inquired by the controller 10. [ The packet processing unit 330 uses a part or all of the received packet received from the open flow switch included in the flow, the port information into which the received packet is input, the virtual router 340 information, and the routing information storage unit 390 Can generate legacy routing information.

패킷 처리부(330)은 레거시 라우팅을 결정하기 위해 서드 파티 라우팅 프로토콜 스택을 포함할 수 있다.The packet processing unit 330 may include a third party routing protocol stack to determine legacy routing.

도 9는 도 6의 제어기 제어부의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도이다. 도 6 내지 도 8을 참조한다.FIG. 9 is a flowchart of a method of determining whether legacy routing is performed for the flow of the controller control unit of FIG. 6. FIG. 6 to 8.

플로우에 대한 레거시 라우팅 여부 판단 방법은, SDN 제어부(100)가 오픈플로우 스위치로부터 수신한 플로우에 대해 일반적인 SDN 제어를 할 것인지 또는 가상 라우팅 앱(300)에 플로우 제어를 문의해야 하는지를 의미한다.The legacy routing determination method for the flow refers to whether the SDN control unit 100 performs general SDN control or flow inquiry to the virtual routing application 300 for the flow received from the open flow switch.

도 9를 참조하면, SDN 제어부(100)는 플로우 인입 포트가 에지 포트인지 판단한다(S510). 플로우 인입 포트가 에지 포트가 아닌 경우, SDN 제어부(100)는 일반적인 오픈플로우 패킷에 대한 경로를 계산하는 등 SDN 기반의 플로우 제어를 할 수 있다(S520).Referring to FIG. 9, the SDN control unit 100 determines whether the flow-in port is an edge port (S510). If the flow-in port is not an edge port, the SDN control unit 100 may perform an SDN-based flow control by calculating a path to a general open flow packet (S520).

플로우 인입 포트가 에지 포트인 경우, SDN 제어부(100)는 해당 플로우의 패킷이 해석 가능한지 판단한다(S512). 패킷을 해석할 수 없는 경우, SDN 제어부(100)는 플로우를 가상 라우팅 앱(300)로 전달할 수 있다(S516). 패킷이 레거시 네트워크에서만 사용하는 프로토콜 메시지의 경우, SDN 기반의 일반적인 제어기는 패킷을 해석을 할 수 없기 때문이다.If the flow-in port is an edge port, the SDN control unit 100 determines whether packets of the flow can be interpreted (S512). If the packet can not be interpreted, the SDN control unit 100 can forward the flow to the virtual routing application 300 (S516). In the case of a protocol message used only in a legacy network, a general SDN-based controller can not interpret a packet.

수신 패킷이 제1 레거시 네트워크에서 제2 레거시 네트워크로 전송되는 것과 같은 레거시 패킷인 경우, SDN 제어부(100)는 유입된 레거시 패킷의 라우팅 경로를 계산할 수 없다. 따라서 레거시 패킷과 같이 SDN 제어부(100)에서 경로를 계산할 수 없는 경우, SDN 제어부(100)는 레거시 패킷을 가상 라우팅 앱(300)로 보내는 것이 바람직하다. 다만 레거시 패킷의 유출될 에지 포트와 레거시 패킷의 최종 처리 방법을 알면, 플로우 수정을 통해 SDN 제어부(100)에서 레거시 패킷을 처리할 수 있다. 이에 패킷을 해석할 수 있는 경우, SDN 제어부(100)는 해당 플로우의 경로를 계산할 수 있는지 또는 엔트리 테이블에 엔트리가 있는지 등의 플로우 경로를 검색한다(S514). 경로를 검색할 수 없으면, SDN 제어부(100)는 해당 플로우를 가상 라우팅 앱(300)로 전달할 수 있다(S516). 경로를 검색할 수 있으면, SDN 제어부(100)는 패킷의 출력을 지정하는 패킷-아웃 메시지를 생성하여 패킷 문의한 오픈플로우 스위치로 전송할 수 있다(S518). 이에 대한 자세한 예는 도 10 및 도 11에서 후술한다.If the received packet is a legacy packet such as that transmitted from the first legacy network to the second legacy network, the SDN control unit 100 can not calculate the routing path of the incoming legacy packet. Therefore, if the SDN control unit 100 can not calculate the path like the legacy packet, the SDN control unit 100 preferably sends the legacy packet to the virtual routing application 300. However, knowing the final processing method of the edge port and the legacy packet to which the legacy packet will flow, the SDN control unit 100 can process the legacy packet through the flow modification. If the packet can be analyzed, the SDN control unit 100 searches for a flow path such as whether the path of the flow can be calculated or whether there is an entry in the entry table (S514). If the path can not be retrieved, the SDN control unit 100 can forward the flow to the virtual routing application 300 (S516). If the path can be searched, the SDN control unit 100 can generate a packet-out message designating the output of the packet and transmit it to the open flow switch inquiring the packet (S518). A detailed example of this will be described later in Fig. 10 and Fig.

도 10은 본 발명의 일 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 도 11는 본 발명의 다른 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 및 도 12은 본 발명의 일 실시예에 따른 플로우 테이블이다. 도 6 내지 도 9를 참조한다.FIG. 10 is a signal flow diagram according to an integrated routing method according to an embodiment of the present invention, FIG. 11 is a signal flow diagram according to an integrated routing method according to another embodiment of the present invention, and FIG. Flow table. 6 to 9.

도 10은 레거시 프로토콜 메시지를 본 발명이 적용된 SDN 기반의 네트워크에서 처리하는 흐름을 도시한다. 도 10은 그 일례로 제1 에지 스위치(SW1)에서 OSPF(Open Shortest Path First) 프로토콜의 헬로 메시지를 받은 경우이다.10 shows a flow of processing a legacy protocol message in an SDN-based network to which the present invention is applied. FIG. 10 shows a case where a hello message of OSPF (Open Shortest Path First) protocol is received by the first edge switch SW1.

본 일례는 제어기(10)에 의해 오픈플로우 스위치 그룹은 도 7(a)와 같이 가상화되어 있다고 가정한다.In this example, it is assumed that the open-flow switch group is virtualized by the controller 10 as shown in Fig. 7 (a).

도 10을 참조하면, 제1 레거시 라우터(R1)와 제1 에지 스위치(SW1)가 연결되면 제1 레거시 라우터(R1)은 제1 에지 스위치(SW1)에게 OSPF 프로토콜의 헬로 메시지(Hello1)를 전송할 수 있다(S521).Referring to FIG. 10, when the first legacy router R1 and the first edge switch SW1 are connected, the first legacy router R1 transmits a hello message (Hello1) of the OSPF protocol to the first edge switch SW1 (S521).

제1 에지 스위치(SW1)의 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 없으므로, 제1 에지 스위치(SW1)는 알지 못하는 패킷(unkown packet)을 알리는 패킷-인 메시지를 SDN 제어부(100)로 전송한다(S522). 패킷-인 메시지는 Hello1 패킷 및 인입 포트(port 11) 정보를 구비하는 플로우를 포함하는 것이 바람직하다.Since there is no flow entry for the received packet in the table 291 of the first edge switch SW1, the first edge switch SW1 sends a packet-in message to the SDN control unit 100 informing of the unkown packet (S522). The packet-in message preferably comprises a flow comprising a Hello1 packet and an incoming port (port 11) information.

SDN 제어부(100)의 메시지 관리 모듈(130)은 해당 플로우에 대한 처리 규칙을 생성할 수 있는지 판단할 수 있다(S523). 판단 방법에 대한 자세한 사항은 도 9를 참조한다. 본 예에서, OSPF 프로토콜 메시지는 SDN 제어부(100)가 해석할 수 없는 패킷이므로, SDN 제어부(100)는 가상 라우팅 앱(300)로 해당 플로우를 전달할 수 있다(S524).The message management module 130 of the SDN control unit 100 can determine whether the processing rule for the flow can be generated (S523). See FIG. 9 for details of the determination method. In this example, since the OSPF protocol message is a packet that the SDN control unit 100 can not interpret, the SDN control unit 100 can forward the flow to the virtual routing application 300 (S524).

가상 라우팅 앱(300)의 SDN 인터페이스 모듈(310)은 SDN 제어부(100)로부터 전달 받은 Hello1 패킷을 플로우에 구비된 제1 에지 스위치(SW1)의 인입 포트(port 11)와 대응하는 가상 라우터(340)의 포트(port 11v)로 전송할 수 있다. 가상 라우터(340)가 Hello1 패킷을 수신하면, 패킷 처리부(330)은 라우팅 정보 저장부(390)에 기반하여 Hello1 패킷의 레거시 라우팅 정보를 생성할 수 있다(S525). 본 실시예에서 패킷 처리부(330)은 Hello1 메시지에 대응하는 Hello2 메시지를 생성하고, Hello2 패킷이 제1 레거시 라우터(R1)로 전송되도록 출력 포트를 제11v 포트(port 11v)로 지정하는 라우팅 경로를 생성할 수 있다. Hello2 메시지는 제1 레거시 라우터(R1)인 목적지 및 기지정된 가상 라우터 식별자를 구비한다. 레거시 라우팅 정보는 Hello2 패킷, 및 제11v 포트인 출력 포트를 포함할 수 있다. 본 실시예에서 가상 라우터(340)에 Hello1 패킷이 인입되는 것으로 기술하였지만 이에 한정되지 않고, 패킷 처리부(330)이 가상 라우터(340)의 정보를 이용하여 레거시 라우팅 정보를 생성할 수 있다.The SDN interface module 310 of the virtual routing application 300 transmits the Hello1 packet received from the SDN control unit 100 to the virtual router 340 corresponding to the port 11 of the first edge switch SW1 provided in the flow ) Port (port 11v). When the virtual router 340 receives the Hello1 packet, the packet processing unit 330 can generate the legacy routing information of the Hello1 packet based on the routing information storage unit 390 (S525). In this embodiment, the packet processing unit 330 generates a Hello2 message corresponding to the Hello1 message and specifies a routing path for designating the output port as the 11v port (port 11v) so that the Hello2 packet is transmitted to the first legacy router R1 Can be generated. The Hello2 message has a destination which is the first legacy router R1 and a pre-designated virtual router identifier. The legacy routing information may include a Hello2 packet, and an output port that is an eleventh port. The packet processor 330 may generate the legacy routing information by using the information of the virtual router 340. In this case,

SDN 인터페이스 모듈(310)은 생성된 레거시 라우팅 정보를 SDN 제어부(100)의 라우팅앱 인터페이스 모듈(150)로 전달할 수 있다(S526). SDN 인터페이스 모듈(310) 및 라우팅앱 인터페이스 모듈(150) 중 어느 하나는 출력 포트인 제11v 포트(port 11v)를 제1 에지 스위치(SW1)의 제11 포트(port 11)로 변환할 수 있다. 또는 제11v 포트와 제11 포트의 이름을 동일하게 하여, 포트 변환을 생략할 수 있다.The SDN interface module 310 may forward the generated legacy routing information to the routing app interface module 150 of the SDN control unit 100 (S526). Either the SDN interface module 310 or the routing application interface module 150 may convert the 11v port (port 11v), which is the output port, to the 11th port (port 11) of the first edge switch SW1. Or the 11th port and the 11th port are the same, and port conversion can be omitted.

SDN 제어부(100)의 경로 계산 모듈(125)은 라우팅앱 인터페이스 모듈(150)을 통해 수신한 레거시 라우팅 정보를 이용하여 Hello2 패킷이 제1 레거시 라우터(R1)의 제11 포트(port 11)로 출력되도록 하는 경로를 설정할 수 있다(S527).The path calculation module 125 of the SDN control unit 100 outputs the Hello2 packet to the 11th port (port 11) of the first legacy router R1 using the legacy routing information received through the routing app interface module 150 (S527).

메시지 관리 모듈(130)은 설정된 경로와 레거시 라우팅 정보를 이용하여, Hello2 패킷이 인입 포트인 제11 포트(port 11)로 출력되도록 하는 패킷-아웃 메시지를 생성하여 제1 레거시 라우터(R1)로 전송할 수 있다(S528).The message management module 130 generates a packet-out message to output the Hello2 packet to the 11th port (port 11), which is an incoming port, using the set path and the legacy routing information, and transmits the packet-out message to the first legacy router R1 (S528).

본 실시예에서, 외부 레거시 라우터의 Hello 메시지에 대응하는 것으로 서술하였지만 이에 한정되지 않는다. 예를 들어, 가상 라우팅 앱(300)은 능동적으로 에지 스위치의 에지 포트로 출력되도록 하는 OSPF 헬로 메시지를 생성하여, SDN 제어부(100)로 전송할 수 있다. 이 경우 SDN 제어부(100)는 패킷-아웃 메시지로 헬로 패킷을 오픈플로우 스위치로 전송할 수 있다. 그리고, 패킷-인 메시지에 대응하지 않는 패킷-아웃 메시지라도 오픈플로우 스위치가 패킷-아웃 메시지의 지시대로 하도록 세팅함으로써 본 실시예를 구현할 수 있다.In the present embodiment, it is described as corresponding to the Hello message of the external legacy router, but is not limited thereto. For example, the virtual routing application 300 can actively generate an OSPF hello message to be output to the edge port of the edge switch and send it to the SDN control unit 100. In this case, the SDN control unit 100 may transmit the hello packet to the open flow switch using a packet-out message. It is also possible to implement this embodiment by setting a packet-out message that does not correspond to a packet-in message such that the open-flow switch follows the packet-out message.

도 11은 일반적인 레거시 패킷이 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)로 전송되는 경우를 도시한다.Fig. 11 shows a case where a general legacy packet is transmitted from the first edge switch SW1 to the third edge switch SW3.

제1 에지 스위치(SW1)은 제1 레거시 라우터(R1)로부터 목적지 IP 주소가 오픈플로우 스위치 그룹에 속하지 않는 레거시 패킷 P1을 수신하는 것으로 시작한다(S531).The first edge switch SW1 starts receiving the legacy packet P1 whose destination IP address does not belong to the open flow switch group from the first legacy router R1 (S531).

제1 에지 스위치(SW1)는 패킷 P1에 대한 플로우 엔트리가 없으므로, 패킷 P1을 제어기(10)로 전송하며 플로우 처리를 문의(패킷-인 메시지)할 수 있다(S532).Since there is no flow entry for packet P1, first edge switch SW1 may forward packet P1 to controller 10 and query flow processing (packet-in message) (S532).

SDN 제어부(100)의 메시지 관리 모듈(130)은 해당 플로우에 대한 SDN 제어가 가능한지 판단할 수 있다(S533). 본 예에서, 패킷 P1은 해석 가능하나 레거시 네트워크를 향하므로, SDN 제어부(100)는 패킷 P1의 경로를 생성할 수 없다. 이에 SDN 제어부(100)는, 라우팅앱 인터페이스 모듈(150)을 통해, 패킷 P1 및 인입 포트인 제11 포트를 가상 라우팅 앱(300)로 전송할 수 있다(S534).The message management module 130 of the SDN control unit 100 may determine whether SDN control for the flow is possible (S533). In this example, the packet P1 is interpretable but is directed to the legacy network, so that the SDN control unit 100 can not generate the path of the packet P1. The SDN control unit 100 can transmit the packet P1 and the eleventh port, which is an incoming port, to the virtual routing application 300 through the routing app interface module 150 (S534).

가상 라우팅 앱(300)의 패킷 처리부(330)는, SDN 제어부(100)로부터 전달 받은 패킷 P1에 대해, 가상 라우터(340)의 정보 및 라우팅 정보 저장부(390)에 기초하여 패킷 P1의 레거시 라우팅 정보를 생성할 수 있다(S535). 본 예에서 패킷 P1이 가상 라우터의 제32v 포트(port 32v)로 출력되어야 한다고 가정한다. 이 경우, 레거시 라우팅 정보는 패킷 P1에 대해 제32v 포트(port 32v)인 출력 포트, 제2 레거시 라우터(R2)의 MAC 주소인 목적지 MAC 주소, 및 제32v 포트의 MAC 주소인 소스(source) MAC 주소를 포함할 수 있다. 이러한 정보는 레거시 라우터에서 출력되는 패킷의 헤더 정보이다. 예를 들어, 제1 레거시 라우터(R1)에서 가상 레거시 라우터(v-R0)를 레거시 라우터로 보고 패킷 P1을 전송하는 경우, 패킷 P1의 헤더 정보는 다음과 같다. 소스 및 목적지 IP 주소는 패킷 P1이 생성하였을 때의 헤더 정보와 동일하므로, 본 설명에서 제하기로 한다. 패킷 P1의 소스 MAC 주소는 라우터(R1)의 출력 포트의 MAC 주소이다. 패킷 P1의 목적지 MAC 주소는 가상 레거시 라우터(v-R0)의 제11v 포트(port 11v)의 MAC 주소이다. 기존의 라우터라면, 가상 레거시 라우터(v-R0)의 제32v 포트(port 32v)로 출력되는 패킷 P1'는 다음과 같은 헤더 정보를 가질 수 있다. 패킷 P1'의 소스 MAC 주소는 가상 레거시 라우터(v-R0)의 제32v 포트(port 32v)의 MAC 주소이고, 목적지 MAC 주소는 제2 레거시 라우터의 인입 포트의 MAC 주소가 된다. 즉 레거시 라우팅시 패킷 P1의 헤더 정보의 일부가 변하게 된다.The packet processing unit 330 of the virtual routing application 300 transmits the packet P1 received from the SDN control unit 100 to the virtual router 340 based on the information of the virtual router 340 and the routing information storage unit 390, Information can be generated (S535). In this example, it is assumed that the packet P1 is output to the 32v port (port 32v) of the virtual router. In this case, the legacy routing information includes an output port that is the 32v port (port 32v), a destination MAC address that is the MAC address of the second legacy router R2, and a source MAC Address. This information is the header information of the packet output from the legacy router. For example, when the first legacy router R1 reports the virtual legacy router v-R0 to the legacy router and transmits the packet P1, the header information of the packet P1 is as follows. The source and destination IP addresses are the same as the header information when the packet P1 is generated, and thus will be omitted from the description. The source MAC address of packet P1 is the MAC address of the output port of router R1. The destination MAC address of the packet P1 is the MAC address of the 11v port (port 11v) of the virtual legacy router (v-R0). In the existing router, the packet P1 'output to the port 32v of the virtual legacy router (v-R0) can have the following header information. The source MAC address of the packet P1 'is the MAC address of the 32v port (port 32v) of the virtual legacy router v-R0, and the destination MAC address is the MAC address of the incoming port of the second legacy router. That is, part of the header information of the packet P1 changes during the legacy routing.

레거시 라우팅과 대응되도록 하기 위해, 패킷 처리부(330)은 패킷 P1의 헤더 정보를 조정한 패킷 P1'를 생성하여 레거시 라우팅 정보에 포함시킬 수 있다. In order to correspond to the legacy routing, the packet processing unit 330 may generate the packet P1 'adjusted with the header information of the packet P1 and include the packet P1' in the legacy routing information.

그러나, 패킷 처리부(330)은 패킷 P1의 헤더 정보를 변경하는 패킷 P1'을 생성하지 않는 것이 더 바람직하다. 패킷 처리부(330)에서 패킷의 헤더 정보를 조정하는 경우, 동일한 패킷, 또는 목적지 주소 범위가 동일한 유사한 패킷에 대해 매번 제어기(10) 또는 가상 라우팅 앱(300)에서 유입 패킷을 처리해야 한다. 따라서, 패킷이 기존의 라우팅 이후의 포맷으로 변화시키는 단계는 가상 라우팅 앱(300) 보다 패킷을 외부 레거시 네트워크로 출력하는 에지 스위치(본 예에서, 제3 에지 스위치(SW3))에서 패킷 조작을 하는 것이 바람직하다. 이를 위해, 앞서 설명한 레거시 라우팅 정보는 소스 및 목적지 MAC 주소를 포함할 수 있다. SDN 제어부(100)는 이러한 라우팅 정보를 이용하여, 제3 에지 스위치에 패킷 P1의 헤더 정보를 변경하도록 하는 플로우 변경(flow-Mod) 메시지를 전송할 수 있다.However, it is preferable that the packet processing unit 330 does not generate the packet P1 'that changes the header information of the packet P1. When adjusting the header information of a packet in the packet processing unit 330, the controller 10 or the virtual routing application 300 must process the incoming packet every time a similar packet or a similar packet having the same destination address range is processed. Therefore, the step of changing the packet to the format after the existing routing is performed by the edge switch (in this example, the third edge switch SW3) that outputs the packet to the external legacy network than the virtual routing application 300 . To this end, the legacy routing information described above may include source and destination MAC addresses. The SDN control unit 100 may use this routing information to transmit a flow-mod message to the third edge switch to change the header information of the packet P1.

SDN 인터페이스 모듈(310)은 생성된 레거시 라우팅 정보를 SDN 제어부(100)의 라우팅앱 인터페이스 모듈(150)로 전달할 수 있다(S536). 본 단계에서 출력 포트는 맵핑되는 에지 포트로 변환될 수 있다.The SDN interface module 310 may forward the generated legacy routing information to the routing app interface module 150 of the SDN control unit 100 (S536). In this step, the output port can be converted to the edge port to be mapped.

SDN 제어부(100)는 라우팅앱 인터페이스 모듈(150)을 통해 수신한 레거시 라우팅 정보, 특히 레거시 라우팅 정보의 레거시 경로를 이용하여 오픈플로우 스위치 그룹 내부의 플로우 처리 규칙을 생성할 수 있다. The SDN control unit 100 can generate the flow processing rule in the open flow switch group using the legacy routing information received through the routing app interface module 150, in particular, the legacy route of the legacy routing information.

SDN 제어부(100)의 경로 계산 모듈(125)은 레거시 경로를 이용하여 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)의 제32 포트로 출력되도록 하는 경로를 계산할 수 있다(S537).The path calculation module 125 of the SDN control unit 100 may calculate a path to be output from the first edge switch SW1 to the 32nd port of the third edge switch SW3 using the legacy path at step S537.

메시지 관리 모듈(130)은 계산된 경로를 기초로, 제1 에지 스위치(SW1)에 패킷 P1에 대한 출력 포트를 지정하는 패킷-아웃 메시지를 전송하고(S538), 해당 경로의 오픈플로우 스위치에 플로우 변경(flow-Mod) 변경 메시지를 전송할 수 있다(S539, S540). 메시지 관리 모듈(130)은 제1 에지 스위치(SW1)로 동일한 플로우에 대한 처리를 규정하도록 플로우 변경(flow-Mod) 메시지도 전송할 수 있다.The message management module 130 transmits a packet-out message to the first edge switch SW1 to specify an output port for the packet P1 based on the calculated path (S538) (Flow-mode) change message (S539, S540). The message management module 130 may also send a flow-Mod message to the first edge switch SW1 to define processing for the same flow.

플로우 처리 규칙에 따른 플로우 엔트리는 패킷 P1의 패스(path)을 관리하는 플로우에 대응하는 데이터-패킷임을 식별하는 식별자에 기초하는 것이 바람직하다. 즉, 패킷 P1에 대한 플로우 처리는 레거시 플로우임을 식별할 수 있는 식별자에 기초하여 이루어 지는 것이 바람직하다. 이를 위해 제1 에지 스위치(SW1)으로 전송되는 패킷-아웃 메시지에 레거시 식별자(tunnel ID)가 부가된 패킷 P1을 포함하도록 하고, 플로우 변경 메시지는 레거시 식별자(tunnel ID)가 부가되도록 하는 플로우 엔트리를 포함하도록 할 수 있다.The flow entry according to the flow processing rule is preferably based on an identifier that identifies the data-packet corresponding to the flow managing the path of the packet P1. That is, the flow process for the packet P1 is preferably based on an identifier that can identify the legacy flow. To this end, a packet P1 to which a legacy identifier (tunnel ID) is added is included in a packet-out message transmitted to the first edge switch SW1, and a flow entry for attaching a legacy identifier (tunnel ID) .

각 스위치의 플로우 테이블의 일례는 도 12를 참조한다. 도 12(a)는 제1 에지 스위치(SW1)의 플로우 테이블이다. 예를 들어, 도 12(a)의 테이블 0은 제2 레거시 라우터(R2)로 향하는 플로우에 레거시 식별자로 tunnel2를 플로우에 부가하고 테이블 1로 플로우가 이동되도록 한다. 레거시 식별자는 메타필드나 다른 필드에 기입될 수 있다. 테이블 1은 tunnel2를 가지는 플로우가 제14 포트(제4 스위치(SW4)와 연결된 제1 스위치(SW1)의 포트 정보)로 출력되도록 하는 플로우 엔트리를 구비한다. 도 12(b)는 제4 스위치(SW4)의 플로우 테이블의 예시이다. 도 12(b)의 테이블은 플로우 정보 중 레거시 식별자가 tunnel2인 플로우가 제3 스위치(SW3)와 연결된 제43 포트(port 43)로 출력되도록 한다. 도 12(c)는 제3 스위치(SW3)의 플로우 테이블의 예시이다. 도 12(c)의 테이블 0은 레거시 식별자가 tunnel2인 플로우의 레거시 식별자를 제거하고 해당 플로우를 테이블 1로 이동되도록 한다. 테이블 1은 해당 플로우를 제32포트로 출력하도록 한다. 이와 같이 다중 테이블을 이용하면, 경우의 수를 줄일 수 있다. 이는 신속한 검색을 가능하게 하고, 메모리 등의 자원 소모를 줄일 수 있다.An example of a flow table of each switch is shown in Fig. 12 (a) is a flow table of the first edge switch SW1. For example, Table 0 in FIG. 12 (a) adds tunnel 2 as a legacy identifier to the flow towards the second legacy router R2 and causes the flow to move to Table 1. The legacy identifier may be entered in a meta field or other field. Table 1 has a flow entry in which the flow having the tunnel 2 is output to the 14th port (port information of the first switch SW1 connected to the fourth switch SW4). 12 (b) is an example of a flow table of the fourth switch SW4. In the table of FIG. 12 (b), the flow whose legacy identifier is tunnel2 among the flow information is output to the 43rd port (port 43) connected to the third switch SW3. 12 (c) is an example of a flow table of the third switch SW3. Table 0 in FIG. 12 (c) removes the legacy identifier of the flow whose legacy identifier is tunnel2 and causes the flow to move to Table 1. Table 1 outputs the flow to port 32. By using multiple tables in this way, the number of cases can be reduced. This makes it possible to perform a quick search and reduce resource consumption of memory and the like.

제1 에지 스위치(SW1)는 레거시 식별자(tunnel ID)를 패킷 P1에 부가하거나(S541), 레거시 식별자(tunnel ID)가 부가된 패킷을 코어 네트워크로 전송할 수 있다(S542). 코어 네트워크는 에지 스위치(SW1, SW3)가 아닌 오픈플로우 스위치(SW2, SW4, SW5)로 구성된 네트워크를 의미한다.The first edge switch SW1 adds a legacy identifier (tunnel ID) to the packet P1 (S541), and transmits a packet to which the legacy identifier (tunnel ID) is added to the core network (S542). The core network means a network composed of the open flow switches SW2, SW4 and SW5, not the edge switches SW1 and SW3.

코어 네트워크는 해당 플로우를 제3 에지 스위치(SW3)로 전송할 수 있다(S543). 제3 에지 스위치(SW3)는 레거시 식별자를 제거하고 지정된 포트로 패킷 P1을 출력할 수 있다(S544). 이 경우, 도 12의 플로우 테이블에 도시하지는 않았지만, 제3 스위치(SW3)의 플로우 테이블은 패킷 P1의 목적지 및 소스 MAC 주소를 변경하도록 하는 플로우 엔트리를 구비하는 것이 바람직하다.The core network can transmit the flow to the third edge switch SW3 (S543). The third edge switch SW3 may remove the legacy identifier and output packet P1 to the designated port (S544). In this case, although not shown in the flow table of Fig. 12, the flow table of the third switch SW3 preferably includes a flow entry for changing the destination and the source MAC address of the packet P1.

도 13은 본 발명의 일 실시예에 따른 멀티 테넌트 지원 네트워크 시스템에 대한 구조도, 도 14는 도 13의 네트워크 시스템의 구성요소에 대한 블록 구성도이다. 동일하거나 유사한 구성요소에 대한 자세한 설명은 도 1 내지 도 12를 참조한다.FIG. 13 is a structural view of a multi-tenant supporting network system according to an embodiment of the present invention, and FIG. 14 is a block diagram of components of the network system of FIG. Reference is made to Figs. 1 to 12 for a detailed description of the same or similar components.

도 13을 참조하면, 네트워크 시스템은 복수의 스위치(SW1~5), 및 제어기(10)를 포함할 수 있다.Referring to Fig. 13, the network system may include a plurality of switches SW1 to SW5, and a controller 10.

복수의 스위치(SW1-SW5) 중 적어도 일부는 SDN(Software Defined Network) 기반의 스위치로 오픈플로우 프로토콜을 지원하는 물리적인 스위치 또는 가상 스위치일 수 있다. 복수의 스위치(SW1-SW5)는 오픈플로우 스위치와 기존의 레거시 스위치의 혼용으로 구성될 수 있는데, 이 경우 에지 스위치는 오픈플로우 스위치인 것이 바람직하다.At least some of the plurality of switches SW1 to SW5 may be physical switches or virtual switches that support an open flow protocol with SDN (Software Defined Network) based switches. The plurality of switches SW1 to SW5 may be configured as a combination of an open flow switch and a conventional legacy switch, in which case the edge switch is preferably an open flow switch.

복수의 스위치(SW1-SW5)는 서로 연결될 수 있다. 복수의 스위치(SW1-SW5) 중 에지 스위치는 각 포트들(p21, p22, p31, p32, p41, p42)을 통해 네트워크 디바이스들과 연결되거나, 외부 네트워크(레거시 라우터, 게이트웨이 등)와 연결될 수 있다.The plurality of switches SW1 to SW5 may be connected to each other. The edge switch among the plurality of switches SW1 to SW5 may be connected to the network devices through the ports p21 to p42 or may be connected to an external network (a legacy router, a gateway, etc.) .

제어기(10)는 SDN(Software Defined Network) 기반의 복수의 스위치를 제어할 수 있다. The controller 10 can control a plurality of SDN (Software Defined Network) based switches.

도 14를 참조하면, 제어기(10)는 제어기 제어부(100), 가상 라우팅 앱(300), 및 복수의 가상 라우터(340)를 포함할 수 있다.14, the controller 10 may include a controller control unit 100, a virtual routing application 300, and a plurality of virtual routers 340. [

제어기(10)의 제어기 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), 메시지 관리 모듈(130), 및 라우팅앱 인터페이스 모듈(150)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다. 동일한 도면 부호의 구성요소에 대한 설명은 도 2 및/또는 도 8을 참조한다.The controller control unit 100 of the controller 10 includes a topology management module 120, a path calculation module 125, an entry management module 135, a message management module 130, and a routing application interface module 150 . Each module may be configured in hardware in the control unit 100 and may be configured in software separate from the control unit 100. [ Reference will be made to Figs. 2 and / or 8 for a description of the components of the same reference numerals.

스위치 그룹이 오픈플로우 스위치로만 구성된 경우, 토폴로지 관리 모듈(120) 및 경로 계산 모듈(125)의 기능은 도 1 내지 도 5에서 설명한 것과 동일하다. 스위치 그룹이 오픈플로우 스위치와 기존의 레거시 스위치로 구성된 경우, 토폴로지 관리 모듈(120)은 오픈플로우 스위치를 통해 레거시 스위치와의 접속 정보를 얻을 수 있다.When the switch group is composed only of an open flow switch, the functions of the topology management module 120 and the path calculation module 125 are the same as those described in Figs. When the switch group is composed of the open flow switch and the existing legacy switch, the topology management module 120 can obtain the connection information with the legacy switch through the open flow switch.

라우팅앱 인터페이스 모듈(150)은 가상 라우팅 앱(300)과 통신할 수 있다. 라우팅앱 인터페이스 모듈(150)은 토폴로지 관리 모듈(120)에서 구축한 스위치 그룹의 토폴로지 정보를 레거시 라우팅 컨테이너(300)로 전송할 수 있다. 토폴로지 정보는 제1 내지 제5 스위치(SW1-SW5)의 접속 관계 정보 및 제1 내지 제5 스위치(SW1-SW5)에 연결되어 있는 네트워크 디바이스들 및 네트워크 장치들(레거시 스위치, 레거시 라우터 등) 각각의 또는 서로의 연결 또는 접속 정보를 포함할 수 있다.The routing app interface module 150 may communicate with the virtual routing app 300. The routing application interface module 150 may transmit the topology information of the switch group constructed by the topology management module 120 to the legacy routing container 300. [ The topology information includes connection relationship information of the first to fifth switches SW1 to SW5 and network devices and network devices (legacy switch, legacy router, etc.) connected to the first to fifth switches SW1 to SW5 Or connection or connection information of each other.

라우팅앱 인터페이스 모듈(150)은 복수의 스위치(SW1-SW5) 중 어느 한 스위치를 통해 수신한 인입 패킷에 대해 해석이 불가능한 경우, 경로 지정이 불가능한 경우, 및 정책상 지정되어 있는 경우 중 어느 한 경우에 인입 패킷을 가상 라우팅 앱(300)로 전달할 수 있다.The routing application interface module 150 may be configured to determine whether an incoming packet received through one of the plurality of switches SW1 to SW5 can not be interpreted, can not be routed, To the virtual routing application 300.

패킷의 해석 불가능 또는 경로 지정 불가능의 예는 인입 패킷이 레거시 프로토콜로 구성되어 해석할 수 없거나, 레거시 네트워크와 연결되어 경로 계산 모듈(125)이 수신 패킷에 대한 경로를 지정할 수 없는 경우 등이 있다.An unexplainable or non-pathable example of a packet is such that the incoming packet can not be constructed or interpreted as a legacy protocol, or the path computation module 125 can not specify a path to a received packet in connection with a legacy network.

정책상 인입 패킷을 앱(300)으로 전송해야 하는 경우는, 복수의 스위치(SW1-SW5)에 연결된 네트워크를 멀티 테넌트로 구성해야 하는 경우, 또는 네트워크를 탄력적으로 운용하기 위해 다수의 가상 라우터로 구성해야 하는 경우 등이 있다. 이는 관리자 또는 사용자의 제어나 요청에 의해 발생된 가상 라우터 생성 요청 메시지에 의해 트리거될 수 있다. 가상 라우팅 앱(300)은 가상 라우터 생성 요청 메시지를 오픈플로우 스위치나 오케스트레이터(1)를 통해 수신할 수 있다. 멀티 테넌트 및 다수의 가상 라우터에 관해서는 후술한다.In the case where it is necessary to transmit the incoming packet to the application 300 in the policy, when the network connected to the plurality of switches SW1 to SW5 needs to be configured as a multi-tenant, or to configure a plurality of virtual routers If you need to. This can be triggered by a virtual router creation request message generated by an administrator or user's control or request. The virtual routing application 300 can receive the virtual router creation request message through the open flow switch or the orchestrator 1. The multi-tenant and the plurality of virtual routers will be described later.

라우팅앱 인터페이스 모듈(150)은 오픈플로우 스위치로부터 수신한 플로우 문의 메시지에 구비된 플로우의 처리 규칙을 생성할 수 없는 경우, 해당 플로우를 가상 라우팅 앱(300)로 전송할 수 있다. 해당 플로우는 오픈플로우 스위치에서 수신한 패킷 및 패킷을 수신한 스위치의 포트 정보를 포함하는 것이 바람직하다.If the routing application interface module 150 can not generate the processing rule of the flow included in the flow inquiry message received from the open flow switch, the routing application interface module 150 may transmit the flow to the virtual routing application 300. The flow preferably includes the port information of the switch that received the packet and the packet received from the open flow switch.

라우팅앱 인터페이스 모듈(150)은 후술할 가상 라우터(340)에서 생성된 라우팅 경로 정보를 오픈플로우(OpenFlow) 프로토콜로 변환할 수 있다.The routing application interface module 150 can convert the routing path information generated by the virtual router 340, which will be described later, into an OpenFlow protocol.

도 14를 참조하면, 가상 라우팅 앱(300)은 패킷 처리부(330), 토폴로지 모듈(380), SDN 인터페이스 모듈(310), 및 가상 라우터 생성부(320)을 포함할 수 있다. 가상 라우팅 앱(300)은 별도의 장치에서 구동되거나, 제어기(10)에서 구동될 수 있다.Referring to FIG. 14, the virtual routing application 300 may include a packet processing unit 330, a topology module 380, an SDN interface module 310, and a virtual router creation unit 320. The virtual routing application 300 may be run on a separate device or may be run on the controller 10.

SDN 인터페이스 모듈(310)은 제어기 제어부(100)와 통신할 수 있다. 제어기 제어부(100)의 레거시 인터페이스 모듈(140) 및 가상 라우팅 앱(300)의 SDN 인터페이스 모듈(310) 각각은 제어기 제어부(100)와 레거시 라우팅 컨테이너(300)의 인터페이스 역할을 할 수 있다. 레거시 인터페이스 모듈(140) 및 SDN 인터페이스 모듈(310)은 특정 프로토콜이나 특정 언어로 통신할 수 있다.The SDN interface module 310 can communicate with the controller control unit 100. Each of the legacy interface module 140 of the controller control unit 100 and the SDN interface module 310 of the virtual routing application 300 may serve as an interface between the controller control unit 100 and the legacy routing container 300. Legacy interface module 140 and SDN interface module 310 may communicate in a particular protocol or in a particular language.

레거시 인터페이스 모듈(140) 및 SDN 인터페이스 모듈(310) 모두 또는 어느 하나는 제어기(10)와 레거시 라우팅 컨테이너(300)가 주고 받는 메시지를 번역하거나 해석할 수 있다. 예를 들어, 레거시 프로토콜 메시지를 오픈플로우 프로토콜 메시지로 변환할 수 있다.Both or both of the legacy interface module 140 and the SDN interface module 310 may translate or interpret messages exchanged between the controller 10 and the legacy routing container 300. For example, legacy protocol messages can be converted into open flow protocol messages.

토폴로지 모듈(380)은 제어기 제어부(100)로부터 전달받은 복수의 스위치(SW1-SW5)에 관련된 토폴로지 정보 등의 네트워크 정보를 저장할 수 있다. 토폴로지 모듈(380)은 정책상 생성할 다수의 가상 라우터 또는 멀티 테넌트에 대한 네트워크 토폴로지를 생성할 수 있다. 토폴로지 모듈(380)의 다수의 가상 라우터 또는 멀티 테넌트(이하, '멀티 테넌트 등'이라고 칭함)에 대한 네트워크 토폴로지 등과 같은 멀티 테넌트 등의 생성용 정보는 정책에 의해 생성될 뿐만 아니라 사용자의 요청이나 관리자의 제어에 의해 생성될 수 있다.The topology module 380 may store network information such as topology information related to the plurality of switches SW1 to SW5 received from the controller control unit 100. [ The topology module 380 may create a network topology for multiple virtual routers or multi-tenants to be created on a policy basis. The information for generation of multi-tenants, such as a plurality of virtual routers of the topology module 380 or a network topology for multi-tenants (hereinafter referred to as 'multi-tenants') is not only generated by policy, Lt; / RTI >

복수의 가상 라우터는 네트워크의 용량을 탄력적으로 조절할 수 있게 한다. 데이터 센터와 같이 클라우드 환경을 제공해야 하는 경우 네트워크 용량 조절이 용이할 수 있다. 다양한 사용자에게 클라우드 환경을 제공해야 하는 경우, 복수의 가상 라우터는 사용자에 따라 가상 라우터를 지원할 수 있으며 사용자의 사용량에 따른 과금 정책을 용이하게 할 수 있다. 복수의 가상 라우터 각각이 제어하는 네트워크 환경을 서로 독립적으로 하는 경우, 각각의 테넌트가 가지는 자원은 독립성이 보장되어 다른 테넌트와 공유되지 않도록 하는 멀티 테넌시를 지원할 수 있다.A plurality of virtual routers allow the capacity of the network to be resiliently adjusted. If you need to provide a cloud environment like a data center, network capacity can be easily adjusted. When a cloud environment needs to be provided to various users, a plurality of virtual routers can support a virtual router according to a user, and can facilitate a charging policy according to a usage amount of a user. When the network environments controlled by each of the plurality of virtual routers are independent of each other, the resources of each tenant can support multi-tenancy so that independence is ensured so that they are not shared with other tenants.

멀티 테넌트 등의 생성용 정보(이하, '생성 정보')는 네트워크 토폴로지 이외에 가상 라우터에 연결될 네트워크 디바이스의 개수나 종류 위치 및 네트워크 정보, 사용자들의 그룹 정책, 생성될 가상 라우터에 부여될 네트워크 자원이나 컴퓨팅 자원 할당 정책, 가상 라우터의 루프백(loopback) IP 주소나 포트 정보(링크 주소, 맥 주소 등) 등이 포함될 수 있다. 네트워크 또는 컴퓨팅 자원의 할당 정책은 기본 정책 이외에, 관리자의 지정 또는 사용자의 요청에 의해 결정될 수 있다. 생성 정보의 일부는 위에서 언급한 가상 라우터 생성 메시지에 포함되어 있을 수 있다.In addition to the network topology, the information for generation of multi-tenants (hereinafter, 'generation information') includes information such as the number and type of network devices to be connected to the virtual router, network information, group policies of users, Resource allocation policy, loopback IP address or port information (link address, MAC address, etc.) of the virtual router. The allocation policy of the network or computing resource may be determined by a designation of an administrator or a request of a user, in addition to the basic policy. Some of the generated information may be included in the virtual router creation message mentioned above.

가상 라우터 생성부(320)은 토폴로지 모듈(380)의 생성 정보에 기초하여 라우팅 기능을 가지는 가상 라우터(340)을 생성 및/또는 관리 할 수 있다. 가상 라우터 생성부(320)은 제어기 제어부(100)로부터 가상 라우터 생성 메시지를 수신하면, 가상 라우터(340)을 생성하기 위한 준비를 한다.The virtual router generating unit 320 may generate and / or manage the virtual router 340 having the routing function based on the generation information of the topology module 380. [ Upon receiving the virtual router creation message from the controller control unit 100, the virtual router creation unit 320 prepares to create the virtual router 340.

우선, 가상 라우터 생성부(320)은 생성 정보의 네트워크 또는 컴퓨팅 자원 할당 정책에 기초하여 생성될 가상 라우터(340)에 컴퓨팅 자원을 할당하고, 가상 라우터(340)을 생성할 수 있다. 가상 라우터(340)을 생성하는 기술은 다양한 가상화 기술이 사용될 수 있다.First, the virtual router generating unit 320 may allocate computing resources to the virtual router 340 to be generated based on the network of the generated information or the computing resource allocation policy, and may generate the virtual router 340. [ Various virtualization techniques can be used for generating the virtual router 340.

가상 라우터 생성부(320)은 가상 라우터(340)에 필요한 네트워크 정보를 패킷 처리부(330)을 통해 가상 라우터(340)로 전달하거나 지정할 수 있다. 필요한 네트워크 정보는 생성 정보에서 추출될 수 있다.The virtual router creation unit 320 can forward or specify the network information required for the virtual router 340 to the virtual router 340 through the packet processing unit 330. [ The required network information can be extracted from the generated information.

가상 라우터 생성부(320)은 가상 라우터(340)에 다른 가상 라우터와 구별되거나 그 자체로 식별될 수 있는 네임 스페이스 식별자를 지정할 수 있다.The virtual router creation unit 320 can designate a namespace identifier that can be distinguished from or identifiable to other virtual routers in the virtual router 340. [

가상 라우터 생성부(320)은 복수의 가상 라우터(341, 342, 343)을 생성할 수 있다. 가상 라우터 생성부(320)은 복수의 스위치(SW1-SW5)에 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자를 기초로 가상 라우터를 복수개 생성할 수 있다.The virtual router creation unit 320 can create a plurality of virtual routers 341, 342, and 343. The virtual router generating unit 320 can generate a plurality of virtual routers based on the slicing identifiers that are specific information based on the packets that are input to the plurality of switches SW1 to SW5.

인입 패킷에 기반한 특정 정보는 인입 패킷이 인입된 오픈플로우 에지 스위치의 인입 포트 정보, 인입 패킷의 vLAN 이나 vxLAN과 같은 태그 정보 등이 있다. 즉, 슬라이싱 식별자는 인입 패킷의 인입 포트, vLAN, vxLAN 정보 등을 포함할 수 있다. 인입 패킷의 태그 정보는 패킷의 소스 디바이스에서 지정되거나, 오픈플로우 스위치 또는 제어기(10)에서 지정될 수 있다. 패킷이 이동통신망을 통해 접속되는 경우, 슬라이싱 식별자는 패킷에 부가되는 터널(tunnel) 아이디 등의 태그 정보를 포함할 수 있다.Specific information based on the incoming packet includes incoming port information of the open flow edge switch to which the incoming packet is input, and tag information such as vLAN or vxLAN of the incoming packet. That is, the slicing identifier may include an incoming port of the incoming packet, vLAN, vxLAN information, and the like. The tag information of the incoming packet may be specified in the source device of the packet, or may be specified in the open flow switch or the controller 10. [ When a packet is connected through a mobile communication network, the slicing identifier may include tag information such as a tunnel ID added to the packet.

슬라이싱 식별자는 네임 스페이스 식별자에 연관될 수 있다. 이에 의해, 슬라이싱 식별자와 네임 스페이스 식별자는 서로 대응될 수 있다.The slicing identifier may be associated with a namespace identifier. Thereby, the slicing identifier and the namespace identifier can correspond to each other.

복수의 가상 라우터(341, 342, 343)은 서로 격리된 네트워크를 형성할 수 있다. 이로 인해 본 발명에 따른 네트워크 시스템은 멀티 테넌트를 지원할 수 있다.The plurality of virtual routers 341, 342, and 343 can form a network isolated from each other. Thus, the network system according to the present invention can support multi-tenants.

복수의 스위치(SW1-SW5)에 연결된 네트워크 디바이스들이 멀티 테넌트를 구성하는 경우, 각각의 테넌트는 슬라이싱 식별자 또는 네임 스페이스 식별자에 각각 대응될 수 있다.When the network devices connected to the plurality of switches SW1 to SW5 constitute a multi-tenant, each tenant may correspond to a slicing identifier or a namespace identifier, respectively.

네임 스페이스 식별자는 가상 라우터에서 기능하는 가상 라우터의 루프백 주소, 또는 vLAN, vxLAN 정보와 같은 태그 정보와 동일하도록 지정할 수 있다. 네임 스페이스 식별자는 임의의 값이나 가상 라우터의 루프백 주소를 사용할 수 있다.The namespace identifier can be specified to be the same as the loopback address of the virtual router functioning in the virtual router, or tag information such as vLAN, vxLAN information. The namespace identifier can be any value or the loopback address of the virtual router.

패킷 처리부(330)은 가상 라우터(340)의 인터페이스 역할을 한다. 오픈플로우 스위치에 인입된 인입 패킷에 대한 라우팅 제어를 위해 제어기 제어부(100)가 인입 패킷을 가상 라우팅 앱(300)로 전달하면, 패킷 처리부(330)은 수신한 인입 패킷이 복수의 가상 라우터(341, 342, 343) 중 어느 가상 라우터로 전달해야할지 결정할 수 있다. 이를 위해, 패킷 처리부(330)은 인입 패킷으로부터 슬라이싱 식별자를 추출하고, 복수의 가상 라우터(341, 342, 343) 중 슬라이싱 식별자에 연관된 네임 스페이스 식별자를 가진 가상 라우터로 인입 패킷을 전달할 수 있다. 패킷 처리부(330)은 슬라이싱 식별자의 하나의 값 또는 여러 값들의 조합과 하나의 네임 스페이스 식별자를 한 쌍으로 연관시켜 연관 리스트로 저장할 수 있다.The packet processing unit 330 serves as an interface of the virtual router 340. When the controller control unit 100 transmits the incoming packet to the virtual routing application 300 for controlling the routing of the incoming packet to the open flow switch, the packet processing unit 330 transmits the received incoming packet to the plurality of virtual routers 341 , 342, and 343 to which virtual router. To this end, the packet processor 330 may extract the slicing identifier from the incoming packet and forward the incoming packet to the virtual router having the namespace identifier associated with the slicing identifier among the plurality of virtual routers 341, 342, and 343. The packet processing unit 330 may associate one value of the slicing identifier or a combination of a plurality of values and one namespace identifier as a pair and store the association list.

패킷 처리부(330)은 가상 라우터(340)로부터 후술할 라우팅 정보를 수신하여, SDN 인터페이스 모듈(310)로 전달할 수 있다.The packet processing unit 330 may receive the routing information to be described later from the virtual router 340, and may transmit the routing information to the SDN interface module 310.

도 14를 참조하면, 가상 라우터(340)은 네임 스페이스부(350), 라우팅 처리부(332), 및 라우팅 정보 저장부(392)를 포함할 수 있다.Referring to FIG. 14, the virtual router 340 may include a namespace unit 350, a routing processing unit 332, and a routing information storage unit 392.

네임 스페이스부(350)는, 컨트롤러 생성부(350)에 의해 가상 라우터가 생성되면, 가상 라우터의 네트워크 환경을 설정한다. 가상 라우터의 네트워크 환경은 가상 라우터가 가상 라우터로서 기능할 수 있도록 네트워크 인터페이스나 기능할 가상 라우터의 포트 인터페이스 등이 있다. 즉 네임 스페이스부(350)은 외부와의 인터페이스인 네트워크 환경을 구축할 수 있다.When the virtual router is created by the controller generating unit 350, the namespace unit 350 sets the network environment of the virtual router. The network environment of a virtual router is a network interface or a port interface of a virtual router to function so that a virtual router can function as a virtual router. That is, the namespace unit 350 can establish a network environment that is an interface with the outside.

네임 스페이스부(350)은 리눅스의 네임 스페이스 기술을 사용할 수 있다. 이 경우, 컨트롤러 생성부(350)의 지시에 의해, 네임 스페이스부(350)이 가상 라우터를 생성할 수 있다.The namespace unit 350 can use Linux's namespace technology. In this case, the namespace unit 350 can create a virtual router by the instruction of the controller generation unit 350. [

네임 스페이스부(350)은 가상 라우팅 앱(300)의 인터페이스 역할을 한다. 네임 스페이스부(350)은 가상 라우팅 앱(300)부터 수신한 네트워크 정보를 이용하여 가상 라우터의 네트워크 환경을 설정할 수 있다. 네임 스페이스부(350)은 다른 가상 라우터와의 네트워크와 별도의 독립된 네트워크 환경을 설정할 수 있다.The namespace unit 350 serves as an interface of the virtual routing application 300. The namespace unit 350 can set the network environment of the virtual router using the network information received from the virtual routing application 300. The namespace unit 350 may establish a separate network environment separate from the network with other virtual routers.

네임 스페이스부(350)은 가상 라우팅 앱(300)부터 수신한 네트워크 정보를 이용하여 가상 라우터가 가상의 라우터로 기능하도록 할 수 있다. 네임 스페이스부(350)는, 라우팅 기능에 필요한 가상 라우터의 네트워크 환경, 즉, 네트워크 노드들의 정보나 노드들의 토폴로지 정보를 가상 라우팅 앱(300)부터 수신하여, 라우팅 정보 저장부(392)에 저장할 수 있다. 네트워크 노드들은 복수의 스위치(SW1-SW5) 중 가상 라우팅 기능이 관여할 스위치들의 정보, 스위치들에 연결된 네트워크 디바이스들이나 외부 네트워크를 포함할 수 있다.The namespace unit 350 may allow the virtual router to function as a virtual router using the network information received from the virtual routing application 300. [ The namespace unit 350 receives the network environment of the virtual router required for the routing function, that is, the information of the network nodes and the topology information of the nodes from the virtual routing application 300 and stores the information in the routing information storage unit 392 have. The network nodes may include information of switches among the plurality of switches SW1 to SW5 to be involved in the virtual routing function, network devices connected to the switches, or an external network.

라우팅 처리부(430)는 라우팅 정보 저장부(392)에 저장된 네트워크 토폴로지 정보나 네트워크 정보를 이용하여 라우팅 테이블(RIB, FIB, ARP 테이블)을 생성할 수 있다. 라우팅 테이블은 라우팅 처리부(332)에 의해 수정되거나 삭제되는 등 업데이트될 수 있다.The routing processor 430 may generate a routing table (RIB, FIB, ARP table) using network topology information or network information stored in the routing information storage 392. [ The routing table can be updated, such as modified or deleted by the routing processing unit 332. [

이를 위해, 라우팅 처리부(332)는 레거시 프로토콜을 이용하여 외부와 메시지를 주고 받을 수 있다. 생성된 테이블은 라우팅 정보 저장부(392)에 저장될 수 있다.For this purpose, the routing processor 332 can exchange messages with the outside using a legacy protocol. The generated table may be stored in the routing information storage unit 392.

라우팅 정보 저장부(392)는 네임 스페이스 식별자를 저장할 수 있다. 네임 스페이스부(350)은 가상 라우팅 앱(300)을 통해 수신한 인입 패킷에 대해 네임 스페이스 식별자를 이용하여 드롭 여부를 결정할 수도 있다.The routing information storage unit 392 may store the namespace identifier. The namespace unit 350 may determine whether to drop the incoming packet received through the virtual routing application 300 using the namespace identifier.

라우팅 정보 저장부(392)는 가상 라우터가 제공하는 가상 라우터의 인터페이스를 저장함으로써, 라우팅 정보 저장부(392)는 복수의 스위치(SW1-SW5) 중 일부의 스위치를 포함하는 스위치 군을 외부에서 가상 라우터로 보이도록 할 수 있다.The routing information storage unit 392 stores the interface of the virtual router provided by the virtual router so that the routing information storage unit 392 stores the switch group including some switches among the plurality of switches SW1- It can be seen as a router.

라우팅 정보 저장부(392)에 저장되는 가상 라우터의 인터페이스는 다양할 수 있다.The interfaces of the virtual routers stored in the routing information storage unit 392 may vary.

도 15는 본 발명의 다른 실시예에 따른 가상 라우터의 블록 구성도이다. 도 1 내지 도 5를 참조한다.15 is a block diagram of a virtual router according to another embodiment of the present invention. Please refer to Figs. 1 to 5.

도 15를 참조하면, 가상 라우터는 네임 스페이스부(350), 라우팅 처리부(332), 라우팅 정보 저장부(392), 및 DHCP 가상 서버(360)를 포함할 수 있다. 동일한 구성요소에 대한 설명은 도 14를 참조한다.Referring to FIG. 15, the virtual router may include a namespace unit 350, a routing processing unit 332, a routing information storage unit 392, and a DHCP virtual server 360. Refer to Fig. 14 for a description of the same components.

DHCP 가상 서버(360)은 네임 스페이스부(350)에서 수신한 인입 패킷이 DHCP(Dynamic Host Configuration Protocol) 프로토콜인 경우, 요청한 네트워크 디바이스에서 사용할 IP 주소를 생성할 수 있다. 즉 네트워크 디바이스에서 IP 주소 요청이 있는 경우, DHCP 가상 서버(360)은 요청한 네트워크 디바이스에 IP 주소를 발송할 수 있다. DHCP 가상 서버(360)은 가상 라우터가 DHCP 서버 기능을 가능하도록 할 수 있다.If the incoming packet received in the namespace unit 350 is a DHCP (Dynamic Host Configuration Protocol) protocol, the DHCP virtual server 360 can generate an IP address to be used in the requested network device. That is, if there is an IP address request in the network device, the DHCP virtual server 360 can send the IP address to the requested network device. The DHCP virtual server 360 may enable the virtual router to enable the DHCP server function.

도 16은 가상 라우터 생성 방법에 대한 순서도이다. 도 1 내지 도 15를 참조한다.16 is a flowchart of a virtual router creation method. 1 to 15.

도 16을 참조하면, 가상 라우팅 앱(300)에서 가상 라우터 생성 요청 메시지를 수신하면(S561), 가상 라우팅 앱(300)은 네트워킹 자원 또는/및 컴퓨팅 자원을 생성될 가상 라우터를 위해 할당할 수 있다(S562).Referring to FIG. 16, when the virtual routing application 300 receives a virtual router creation request message (S561), the virtual routing application 300 can allocate networking resources and / or computing resources for a virtual router to be created (S562).

가상 라우팅 앱(300)은 할당된 자원을 이용하여 가상 라우터를 생성할 수 있다(S563). 이 후, 가상 라우팅 앱(300)은 네임 스페이스 식별자 및 가상 라우팅 기능에 필요한 네트워크 인터페이스, 네트워크 토폴로지 정보 등의 네트워크 정보를 생성된 가상 라우터(340)에 전달 또는/및 지정할 수 있다(S564).The virtual routing application 300 can create a virtual router using the allocated resources (S563). After that, the virtual routing application 300 can forward and / or specify the network information such as the network interface and the network topology information required for the namespace identifier and the virtual routing function to the generated virtual router 340 (S564).

앞서 서술한 바와 같이, 가상 라우터의 생성은 가상 라우팅 앱(300)의 가상 라우터 생성부(320)에서 네임 스페이스부(350)을 생성하고, 네임 스페이스부(350)에서 가상 라우터의 나머지 전반적인 부분을 생성할 수도 있다.As described above, the creation of the virtual router is performed by creating the namespace unit 350 in the virtual router creation unit 320 of the virtual routing application 300, and replacing the remaining overall portion of the virtual router in the namespace unit 350 with .

네임 스페이스부(350)은 가상 라우팅 앱(300)부터 수신한 네트워크 정보를 이용하여, 가상 라우터가 가상 라우터로 기능하도록 가상 라우터를 구축하여, 가상 라우터의 인터페이스 및 네트워크 토폴로지 정보 등을 라우팅 정보 저장부(392)에 저장할 수 있다.The namespace unit 350 constructs a virtual router so that the virtual router functions as a virtual router by using the network information received from the virtual routing application 300 and transmits the interface and network topology information of the virtual router to the routing information storage unit 300. [ Lt; RTI ID = 0.0 > 392 < / RTI >

라우팅 처리부(332)는 라우팅 정보 저장부(392)에 저장된 정보를 이용하여, 가상 라우터가 라우팅 기능을 하도록 라우팅 테이블이나 포워딩 테이블을 작성할 수 있다. 이에 의해 가상 라우터(340)은 라우팅 기능을 제공할 준비가 완료된다(S565).The routing processor 332 can use the information stored in the routing information storage 392 to create a routing table or a forwarding table so that the virtual router can perform the routing function. Thereby, the virtual router 340 is ready to provide the routing function (S565).

도 17은 도 16의 라우팅 기능 준비 방법을 구체화한 순서도이고, 도 18은 가상 라우터의 다양한 인터페이스를 도시한 구조도이다. 도 1 내지 도 16을 참조한다.FIG. 17 is a flowchart illustrating a routing function preparation method of FIG. 16, and FIG. 18 is a structural diagram illustrating various interfaces of a virtual router. Please refer to Figs. 1 to 16.

도 17을 참조하면, 네임 스페이스부(350)은 생성된 가상 라우터가 라우터로서 기능하도록 라우팅 기능을 생성할 수 있다(S566). 이를 위해, 네임 스페이스부(350)는 가상 라우터의 인터페이스를 지정하고, 각 인터페이스에 네트워크 디바이스를 포함하는 네트워크 노드들의 인터페이스와 연결되도록 지정할 수 있다.Referring to FIG. 17, the namespace unit 350 may generate a routing function so that the generated virtual router functions as a router (S566). To this end, the namespace unit 350 may specify an interface of a virtual router and designate that each interface is connected to an interface of network nodes including a network device.

네임 스페이스부(350)은 복수의 스위치(SW1-SW5) 중 해당 가상 라우팅에 이용될 스위치 군을 지정하고, 스위치 군에 속하는 스위치들의 인터페이스와 가상 라우터의 인터페이스가 맵핑되도록 할 수 있다(S567).The namespace unit 350 may designate a switch group to be used for virtual routing among the plurality of switches SW1 to SW5, and may map the interfaces of the switches belonging to the switch group and the interfaces of the virtual router to each other (S567).

도 18을 참조하면, 다양한 인터페이스를 가지는 가상 라우터를 볼 수 있다.Referring to FIG. 18, a virtual router having various interfaces can be seen.

도 18(a)를 보면, 복수의 스위치(SW1-SW5) 중 에지 스위치의 포트들 중 일부와 제1 가상 라우터(v-R1)의 포트가 대응되도록 가상 라우터의 인터페이스가 구축될 수 있다. 이 경우, 슬라이싱 식별자는 포트 p21, p31, p41, 및 p51가 될 수 있다. 네임 스페이스 식별자는 포트 p21, p31, p41, 및 p51의 조합과 대응하는 값, 예를 들어, v-R3로 지정될 수 있다. 즉 네임 스페이스 식별자는 슬라이싱 식별자 값들의 리스트와 대응될 수 있다.18A, the interface of the virtual router can be constructed such that a part of the ports of the edge switch among the plurality of switches SW1 to SW5 corresponds to the port of the first virtual router (v-R1). In this case, the slicing identifier may be ports p21, p31, p41, and p51. The namespace identifier may be assigned a value corresponding to the combination of ports p21, p31, p41, and p51, for example, v-R3. That is, the namespace identifier may correspond to a list of slicing identifier values.

도 18(b)를 참조하면, 복수의 스위치(SW1-SW5) 중 일부 에지 스위치의 포트들이 제2 가상 라우터(v-R2)의 포트와 대응되도록 가상 라우터의 인터페이스가 구축될 수 있다.Referring to FIG. 18 (b), an interface of the virtual router can be established such that the ports of some of the plurality of switches SW1-SW5 correspond to the ports of the second virtual router v-R2.

도 18(c) 내지 (f)를 참조하면, 가상 라우터의 인터페이스는 패킷의 vLAN 또는 vxLAN 값과 대응되도록 설정될 수 있다. 에지 스위치의 물리적 포트(실제 포트)만으로 가상 라우터를 생성하는 경우, 물리적 포트의 수에 제한을 받게 된다. 그러나 패킷 식별 정보(vLAN 또는 vxLAN)에 연관시키는 경우, 이러한 제약 사항이 없어진다. 또한 기존의 패킷의 레거시 네트워크에서의 흐름과 유사하게 작동되도록 할 수 있다. 또한 사용자 또는 사용자 그룹 별로 가상의 레거시 라우터를 구동할 수 있다. 사용자 또는 사용자 그룹은 vLAN, vxLAN 또는 터널 아이디와 같은 패킷 식별 정보로 구분될 수 있다.18 (c) to (f), the interface of the virtual router can be set to correspond to the vLAN or vxLAN value of the packet. If you create a virtual router with only the physical ports (physical ports) of the edge switch, you will be limited by the number of physical ports. However, when associated with packet identification information (vLAN or vxLAN), such constraints are eliminated. It can also be made to work similar to the flow of legacy packets in legacy networks. It can also drive virtual legacy routers per user or user group. The user or user group can be identified by packet identification information such as vLAN, vxLAN, or tunnel ID.

네임 스페이스부(350)는 네트워크 정보를 이용하여 라우팅 정보를 생성할 수 있다(S568). 네트워크 정보는 가상 라우팅 앱(300)으로부터 수신할 수 있다.The namespace unit 350 may generate routing information using the network information (S568). The network information may be received from the virtual routing application 300.

도 19는 본 발명의 다른 실시예에 따른 네트워크 구조도이고, 도 20은 도 19에 따른 가상 라우터의 구조도이다. 도 1 내지 도 18을 참조한다.FIG. 19 is a network structure diagram according to another embodiment of the present invention, and FIG. 20 is a structural diagram of a virtual router according to FIG. Please refer to Figs. 1 to 18.

도 19를 참조하면, 본 네트워크는 멀티 테넌시를 지원하며, 네트워크 디바이스(VM)들은 멀티 테넌트 각각에 속해있다. 제1 테넌트는 제21 및 제22 스위치(SW21, SW22)의 포트 p21n(p21_1, p21_2, ..., p12_n) 및 포트 p22n을 통해 연결되어 있다고 가정하며, 나머지 디바이스들은 포트 p23n, 및 p24n을 통해 제23 및 제24 스위치(SW23, SW24)와 연결되도록 정책이 성립되었다고 가정한다.Referring to FIG. 19, the network supports multi-tenancy, and network devices (VMs) belong to each of the multi-tenants. It is assumed that the first tenant is connected through ports p21n (p21_1, p21_2, ..., p12_n) and port p22n of the twenty-first and twenty-second switches SW21 and SW22 and the remaining devices are connected through ports p23n and p24n It is assumed that the policy is established to be connected to the twenty-third and twenty-fourth switches SW23 and SW24.

두 개의 테넌트를 지원하기 위해, 도 20과 같이 독립된 두 개의 가상 라우터 기능이 제공되도록 제1 및 제2 가상 라우터가 생성될 수 있다.To support two tenants, the first and second virtual routers may be created such that two independent virtual router functions are provided as in FIG.

슬라이싱 식별자는 vLAN 값으로 지정하는 것이 바람직하다. 즉 제1 테넌트는 vLAN이 101인 값이고, 제2 테넌트는 vLAN 값이 102인 것이 될 수 있다. 네임 스페이스 식별자(nsID)는 vLAN 값과 각각 동일하게 지정될 수 있다.The slicing identifier is desirably designated by the vLAN value. That is, the first tenant may have a value of vLAN 101 and the second tenant may have a vLAN value of 102. [ The namespace identifier (nsID) may be specified to be equal to the vLAN value, respectively.

가상 라우터의 포트 인터페이스와 에지 스위치들의 포트 인터페이스는 1:1로 대응되도록 하거나, 다양한 조합으로 연관되도록 할 수 있다.The port interface of the virtual router and the port interface of the edge switches may correspond to each other in 1: 1, or may be associated in various combinations.

도 21은 도 13의 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도이다. 도 13 내지 도 18을 참조한다.FIG. 21 is a flowchart illustrating a method of determining whether legacy routing is performed for the flow of the controller of FIG. 13 to 18.

플로우에 대한 레거시 라우팅 여부 판단 방법은, 제어기(10)가 오픈플로우 스위치로부터 수신한 플로우에 대해 일반적인 SDN 제어를 할 것인지 또는 레거시 라우팅 컨테이너(300)에 플로우 제어를 문의해야 하는지를 의미한다.The method of determining the legacy routing for the flow indicates whether the controller 10 should perform general SDN control or flow control to the legacy routing container 300 for the flow received from the open flow switch.

도 21을 참조하면, 가상 라우터(340)에서 가상 라우팅 기능 준비가 완료되면, 제어기(10)는 오픈플로우 스위치를 통해 네트워크 디바이스의 패킷을 플로우로 수신할 수 있다(S571).Referring to FIG. 21, when preparation for the virtual routing function is completed in the virtual router 340, the controller 10 may receive the packet of the network device through the open flow switch (S571).

제어기(10)는 플로우의 인입 패킷이 해석 가능한지 판단한다(S572). 인입 패킷을 해석할 수 없는 경우, 제어기(10)는 플로우를 레거시 라우팅 컨테이너 앱(300)으로 전달할 수 있다(S575). 패킷이 레거시 네트워크에서만 사용하는 프로토콜 메시지의 경우, SDN 기반의 일반적인 제어기는 패킷을 해석을 할 수 없기 때문이다.The controller 10 determines whether the incoming packet of the flow can be interpreted (S572). If the incoming packet can not be interpreted, the controller 10 may forward the flow to the legacy routing container app 300 (S575). In the case of a protocol message used only in a legacy network, a general SDN-based controller can not interpret a packet.

인입 패킷이 외부의 제1 레거시 네트워크에서 외부의 제2 레거시 네트워크로 전송되는 것과 같은 레거시 패킷인 경우, SDN 기반의 제어기(10)는 유입된 레거시 패킷의 라우팅 경로를 계산할 수 없다. 따라서 레거시 패킷과 같이 제어기(10)에서 경로를 계산할 수 없는 경우, 제어기(10)는 레거시 패킷을 레거시 라우팅 컨테이너 앱(300)으로 전달할 수 있다. 레거시 패킷에 대한 레거시 라우팅 경로는 가상 라우터(340)의 라우팅 처리부(332)에 의해 계산될 수 있다. 다만 레거시 패킷의 유출될 에지 포트와 레거시 패킷의 최종 처리 방법을 알면, 플로우 수정을 통해 제어기(10)에서 레거시 패킷을 처리할 수 있다.The SDN-based controller 10 can not calculate the routing path of the incoming legacy packet if the incoming packet is a legacy packet, such as being sent from an external first legacy network to an external second legacy network. Thus, if the controller 10 can not compute the path, such as a legacy packet, the controller 10 may forward the legacy packet to the legacy routing container app 300. The legacy routing path for the legacy packet can be calculated by the routing processing section 332 of the virtual router 340. [ However, knowing the final processing method of the edge port and the legacy packet to which the legacy packet will flow, the controller 10 can process the legacy packet through the flow modification.

이에 패킷을 해석할 수 있는 경우, 제어기(10)는 해당 플로우의 경로를 계산할 수 있는지 또는 엔트리 테이블에 엔트리가 있는지 등의 플로우 경로를 검색한다(S573). 경로를 검색할 수 없으면, 제어기(10)는 해당 플로우를 레거시 라우팅 컨테이너 앱(300)으로 전달한다(S575). 경로를 검색할 수 있으면, 제어기(10)는 패킷의 출력을 지정하는 패킷-아웃 메시지를 생성하여 패킷 문의한 오픈플로우 스위치로 전송할 수 있다(S574).If the packet can be analyzed, the controller 10 searches the flow path such as whether the path of the flow can be calculated or whether there is an entry in the entry table (S573). If the path can not be retrieved, the controller 10 transfers the flow to the legacy routing container application 300 (S575). If the path can be searched, the controller 10 may generate a packet-out message specifying the output of the packet and transmit it to the open flow switch inquiring the packet (S574).

도 22는 가상 라우터에서 인입 패킷에 대한 처리 방법의 순서도이고, 도 23은 도 22의 라우팅 처리가 아닌 일례에 대한 순서도이다.FIG. 22 is a flowchart of a processing method for an incoming packet in a virtual router, and FIG. 23 is a flowchart for an example other than the routing processing of FIG.

도 22를 참조하면, 가상 라우팅 앱(300)은 제어기(10)를 통해 수신한 플로우의 인입 패킷을 분석하고 인입 패킷의 슬라이싱 식별자를 추출할 수 있다(S581).22, the virtual routing application 300 analyzes the incoming packet of the flow received through the controller 10 and extracts the slicing identifier of the incoming packet (S581).

가상 라우팅 앱(300)은 추출한 슬라이싱 식별자와 연관된 네임 스페이스(ns) 식별자 세트가 식별자들의 연관 리스트에 있는지 판단할 수 있다(S582). The virtual routing application 300 may determine whether a set of namespace (ns) identifiers associated with the extracted slicing identifiers is included in the association list of identifiers (S582).

슬라이싱 식별자 및 네임 스페이스 식별자 세트가 연관 리스트에 없는 경우, 가상 라우팅 앱(300)은 인입 패킷이 드롭되도록 할 수 있다(S589).If the slicing identifier and the namespace identifier set are not in the association list, the virtual routing application 300 may cause the incoming packet to be dropped (S589).

식별자 세트가 연관 리스트에 있는 경우, 가상 라우팅 앱(300)은 슬라이싱 식별자와 연관된 네임 스페이스 식별자가 지정된 가상 라우터(340)로 플로우를 전달할 수 있다(S583).If the set of identifiers is in the association list, the virtual routing application 300 may forward the flow to the virtual router 340 with the namespace identifier associated with the slicing identifier (S583).

가상 라우터(340)의 라우팅 처리부(332)는 수신한 플로우의 인입 패킷을 해석하여 해당 패킷이 라우팅 요청 메시지인지 판단할 수 있다(S584).The routing processor 332 of the virtual router 340 analyzes the incoming packet of the received flow to determine whether the packet is a routing request message (S584).

인입 패킷이 라우팅 요청인 경우, 가상 라우터(340)은 인입 패킷의 목적지 IP 주소에 대한 라우팅 정보가 있는지 판단할 수 있다(S585).If the incoming packet is a routing request, the virtual router 340 may determine whether there is routing information for the destination IP address of the incoming packet (S585).

목적지 IP 주소에 대한 라우팅 정보가 있는 경우, 라우팅 처리부(332)는 인입 패킷이 드롭되도록 할 수 있다(S589).If there is routing information for the destination IP address, the routing processor 332 may cause the incoming packet to be dropped (S589).

목적지 IP 주소에 대한 라우팅 정보가 있는 경우, 라우팅 처리부(332)는 라우팅 경로를 생성하여 가상 라우팅 앱(300)로 전송할 수 있다(S586). 라우팅 경로는 제어기 제어부(100)의 레거시 인터페이스 모듈(140) 또는 가상 라우팅 앱(300)의 SDN 인터페이스 모듈(310) 중 어느 한 곳에서, 오픈플로우 프로토콜로 변환될 수 있다(S587). 예를 들어, 레거시 인터페이스 모듈(140)은 라우팅 경로에 기초하여 오픈플로우 스위치들에서 플로우가 진행되도록 플로우 엔트리를 생성, 수정, 또는 삭제하고, 관련된 오픈플로우 스위치의 엔트리 테이블이 업데이트되도록 할 수 있다.If there is routing information for the destination IP address, the routing processing unit 332 may generate a routing path and transmit the routing path to the virtual routing application 300 (S586). The routing path may be converted to an open flow protocol at either the legacy interface module 140 of the controller control unit 100 or the SDN interface module 310 of the virtual routing application 300 at step S587. For example, the legacy interface module 140 may create, modify, or delete a flow entry so that the flow proceeds on the open flow switches based on the routing path, and cause the entry table of the associated open flow switch to be updated.

라우팅 요청 여부의 판단(S583) 결과 라우팅 요청 처리가 아닌 경우, 가상 라우터(340)은 해당 요청을 처리할 수 있다(S588). 이에 대한 자세한 사항은 도 23을 참조한다.If it is determined that the routing request has not been received (S583), the virtual router 340 may process the request (S588). See FIG. 23 for details.

도 23을 참조하면, 인입 패킷이 라우팅 요청 처리가 아닌 네트워크 디바이스가 시작되어 IP 주소를 요청하는 DHCP 프로토콜인 경우로 가정한다.Referring to FIG. 23, it is assumed that the incoming packet is a DHCP protocol in which a network device is started and a request for an IP address is made, not a routing request process.

가상 라우터(340)의 라우팅 처리부(332)는 인입 패킷의 내용을 분석하여, 인입 패킷이 IP 주소 요청 메시지임을 알 수 있다(S591). 라우팅 처리부(332)는 인입 패킷을 DHCP 가상 서버(360)로 전달한다(S582). DHCP 가상 서버(360)은 인입 패킷을 발송한 네트워크 디바이스의 네트워크 환경, 예를 들어 어느 사용자 그룹인지, 또는 어느 테넌트인지 고려하여, IP 주소 정보와 서브넷 마스크 정보를 생성할 수 있다(S593). 생성된 IP 주소 정보와 서브넷 마스크 정보는 가상 라우팅 앱(300)과 제어기(10), 오픈플로우 스위치를 거쳐, 발송 네트워크 디바이스로 전달된다(S594). 네트워크 디바이스와 DHCP 가상 서버(360)이 주고 받는 메시지는 일반적인 DHCP 프로토콜 메시지(DHCP Discover, DHCP offer, DHCP request, DHCP ack)일 수 있다.The routing processor 332 of the virtual router 340 analyzes the content of the incoming packet and recognizes that the incoming packet is an IP address request message (S591). The routing processor 332 transfers the incoming packet to the DHCP virtual server 360 (S582). The DHCP virtual server 360 may generate the IP address information and the subnet mask information in consideration of the network environment of the network device that has sent the incoming packet, for example, which user group, or which tenant (S593). The generated IP address information and subnet mask information are transmitted to the sending network device via the virtual routing application 300, the controller 10, and the open flow switch (S594). The messages exchanged between the network device and the DHCP virtual server 360 may be general DHCP protocol messages (DHCP Discover, DHCP offer, DHCP request, DHCP ack).

도 24는 본 발명의 일실시예에 따른 통합 라우팅에 의한 피씨 전원 제어 시스템의 네트워크 구성도이고, 도 25는 도 24의 시스템의 피씨 제어 신호 흐름도이고, 및 도 26은 도 25의 피씨 전원 스케쥴링 제어하는 방법에 대한 순서도이다. 도 13 내지 도 23을 참고한다.FIG. 24 is a network configuration diagram of a PC power control system according to an embodiment of the present invention, FIG. 25 is a PC control signal flow chart of the system of FIG. 24, and FIG. 26 is a PC power scheduling control How to do it. Please refer to FIG. 13 to FIG.

도 24를 참조하면, 통합 라우팅에 의한 피씨 전원 제어 시스템은 SDN 기반의 복수의 스위치를 제어하는 제어기(10), PC 전원 제어 앱(600), 로드 제어 앱(660), 복수의 부팅 이미지 서버(img.Svr.01~03), 및 복수의 SDN 기반의 스위치(SW1-SW5)를 포함할 수 있다.24, the PC power control system by integrated routing includes a controller 10 for controlling a plurality of SDN-based switches, a PC power control application 600, a load control application 660, a plurality of boot image servers 0.0 > img.Svr.01 ~ 03), < / RTI > and a plurality of SDN based switches SW1-SW5.

제어기(10)는 가상 라우팅 앱(300) 및 가상 라우터(340)를 구비할 수 있다. 가상 라우터(340)는 복수의 스위치(SW1-SW5) 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성할 수 있다. 가상 라우팅 앱(300)은 가상 라우터 생성 요청 메시지를 수신하면, 컴퓨팅 자원을 할당하여 가상 라우터(340)를 가상화 기술을 이용하여 생성할 수 있다. 가상 라우팅 앱(300)은 복수의 스위치(SW1-SW5)로 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자를 기초로 가상 라우터를 복수개 생성할 수 있다. 슬라이싱 식별자는 상기 복수의 스위치에 연결된 복수의 테넌트(tenant) 중 어느 한 테넌트에 대응한다.The controller 10 may include a virtual routing application 300 and a virtual router 340. The virtual router 340 can treat the switch group including the switches of at least some of the plurality of switches SW1 to SW5 as virtual routers and generate routing information for the packets to be input to any one of the switches have. When the virtual routing application 300 receives the virtual router creation request message, the virtual routing application 300 can allocate the computing resources and create the virtual router 340 using the virtualization technology. The virtual routing application 300 can generate a plurality of virtual routers based on the slicing identifiers which are specific information based on the packets that are input to the plurality of switches SW1 to SW5. The slicing identifier corresponds to a tenant of a plurality of tenants connected to the plurality of switches.

복수의 스위치(SW1-SW5)는 SDN 프로토콜 기반의 오픈플로우를 지원하는 오픈틀로우 스위치일 수 있다. 특히 에지 스위치는 오픈플로우 스위치인 것이 바람직하다. 복수의 스위치(SW1-SW5) 중 에지 스위치 그룹에 복수의 피씨(PC.11, PC.12, PC.21, PC.22)가 연결될 수 있다.The plurality of switches (SW1 to SW5) may be open-type switches supporting open flow based on the SDN protocol. In particular, the edge switch is preferably an open flow switch. A plurality of PCs (PC.11, PC.12, PC.21, PC.22) can be connected to the edge switch group among the plurality of switches (SW1-SW5).

도 24는 특히, 도 19의 네트워크 구성도에서 네트워크 디바이스(VM)가 PC로 대체되고 PC 전원 제어 앱(600), 로드 제어 앱(660), 및 복수의 부팅 이미지 서버(img.Svr.01~03)가 추가된 것으로, 동일한 구성요소에 대한 자세한 설명은 생략한다.In particular, in the network configuration diagram of Fig. 19, the network device (VM) is replaced with a PC and the PC power control application 600, the load control application 660 and the plurality of boot image servers (img.Svr.01- 03) are added, and detailed description of the same components will be omitted.

복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 네트워크를 통해 원격 전원 스위칭 신호를 수신하면 전원의 상태가 켜짐과 커짐으로 전환될 수 있는 피씨이다. 복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 기존의 네트워크 부팅 환경에서 부팅 동작을 수행할 수 있다. 예를 들어, 복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 PXE(Pre-boot eXecution Environment) 부팅 기반의 네트워크 부팅 동작을 수행할 수 있다. 복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 복수의 부팅 이미지 서버(img.Svr.01~03) 중 어느 한 서버에 저장된 부팅 이미지를 마운트 해 오는 방식으로 동작할 수 있다. 복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 기존의 노하드 서비스에서 운영되는 피씨와 동일한 동작을 수행할 수 있다.Multiple PCs (PC.11, PC.12, PC.21, PC.22) are PCs that can be switched on and off when the remote power switching signal is received through the network. Multiple PCs (PC.11, PC.12, PC.21, PC.22) can perform the boot operation in the existing network boot environment. For example, multiple PCs (PC.11, PC.12, PC.21, PC.22) can perform a network boot operation based on a Pre-boot eXecution Environment (PXE) boot. A plurality of PCs (PC.11, PC.12, PC.21, PC.22) mounts a boot image stored in one of a plurality of boot image servers (img.Svr.01 ~ 03) can do. A plurality of PCs (PC.11, PC.12, PC.21, PC.22) can perform the same operation as a PC operated in the existing Noh Hard service.

피씨가 연결되는 기존의 스위치가 단순 스위칭만 제공했던 것에 비해, 복수의 스위치(SW1-SW5)는 제어기(10)를 통해 스위칭 및 라우팅 기능을 제공하고, 제어기(10)를 통해 API 전송을 할 수 있으며, 다양한 제어 메시지를 특정 피씨 또는 피씨 그룹에 전달할 수 있다. 자세한 설명은 후술한다.A plurality of switches SW1 to SW5 provide a switching and routing function through the controller 10 and an API transmission can be performed through the controller 10 And can convey various control messages to a particular PC or group of PCs. A detailed description will be given later.

PC 전원 제어 앱(600)은 복수의 피씨(PC.11, PC.12, PC.21, PC.22)의 전원을 제어할 수 있다. PC 전원 제어 앱(600)에서 복수의 스위치(SW1-SW5)를 통해, 원격 전원 스위칭 신호를 피씨로 전송하면, 해당 피씨는 전원 켜짐 및 커짐을 전환할 수 있다. 원격 전원 스위칭 신호는 WOL(Wake On Lan) 등이 사용될 수 있다. 복수의 피씨(PC.11, PC.12, PC.21, PC.22)는 WOL을 지원할 수 있다.The PC power control application 600 can control power of a plurality of PCs (PC.11, PC.12, PC.21, PC.22). When the remote power switching signal is transmitted to the PC via the plurality of switches SW1 to SW5 in the PC power control application 600, the PC can switch on and off. The remote power switching signal may be a WOL (Wake On Lan) or the like. Multiple PCs (PC.11, PC.12, PC.21, PC.22) can support WOL.

피씨가 전원이 꺼진 상태에서 원격 전원 스위칭 신호를 수신하면 전원이 켜지고 DHCP 클라이언트가 실행되고 IP를 가져오기 위해 DHCP 요청(request)를 전송할 수 있다. DHCP 요청 패킷은 브로딩캐스팅될 수 있다.When the PC receives the remote power switching signal while the power is off, the power is turned on and the DHCP client is activated and can send a DHCP request to get the IP. The DHCP request packet may be broadcast cast.

PC 전원 제어 앱(600)은 복수의 피씨(PC.11, PC.12, PC.21, PC.22)를 그룹화하여 각 피씨 그룹 마다 별도의 스케쥴링 전원 관리를 할 수 있다. 스케쥴링 전원 관리는 기설정된 전원 정책에 따라 생성될 수 있다. 각 피씨 그룹은 제어기(10)에 의해 동일한 네트워크(테넌트)에 속하는 것이 관리 측면에서 바람직하다.The PC power control application 600 can group a plurality of PCs (PC.11, PC.12, PC.21, PC.22) and perform separate scheduling power management for each PC group. Scheduling power management can be generated according to a preset power policy. It is preferable from the management viewpoint that each PC group belongs to the same network (tenant) by the controller 10.

또한 PC 전원 제어 앱(600)은 피씨 그룹 마다 동적인 부팅 이미지 관리를 할 수 있다. PC 전원 제어 앱(600)은 특정 피씨 그룹에 여러개의 부팅 이미지 중 하나가 제공되게 함으로써, 시간대 별로 다른 부팅 이미지가 피씨 그룹의 피씨들에 마운트되게 할 수 있다.In addition, the PC power control application 600 can perform dynamic boot image management for each PC group. The PC power control application 600 can provide one of several boot images to a specific PC group so that different boot images can be mounted on the PCs of the PC group by time zone.

가상 라우터(340)의 DHCP 가상 서버(360)는 DHCP 요청에 따른 응답을 처리할 수 있다. DHCP 응답은 IP 주소를 할당하는 이외에, PC 전원 제어 앱(600)에 의해 지정된 부팅 이미지 식별자를 제공할 수 있다. 이를 위해 DHCP 가상 서버(360)은 각 피씨 별로 부팅 이미지의 위치 정보를 저장할 수 있다. DHCP 가상 서버(360)은 네임 스페이스에 따른 부팅 이미지의 위치 정보를 구비하여, 동일한 슬라이싱 식별자를 가지는 DHCP 요청 패킷을 전송한 피씨 그룹들이 동일한 부팅 이미지로 마운트되도록 할 수 있다.The DHCP virtual server 360 of the virtual router 340 can process the response according to the DHCP request. In addition to assigning an IP address, the DHCP response may provide a boot image identifier designated by the PC power control application 600. For this, the DHCP virtual server 360 may store the location information of the boot image for each PC. The DHCP virtual server 360 may include the location information of the boot image according to the namespace so that the PC groups that transmitted the DHCP request packet having the same slicing identifier can be mounted with the same boot image.

부팅 이미지 식별자는 부팅 이미지가 저장된 서버 및 서버의 폴더를 포함하는 부팅 이미지 파일의 위치 정보(URL 또는 URI)일 수 있다. The boot image identifier may be location information (URL or URI) of the boot image file including the server on which the boot image is stored and the folder of the server.

부팅 이미지 식별자는 동일한 내용의 복수의 부팅 이미지 파일을 지시하는 유일한 값으로 구성될 수 있다. 복수의 부팅 이미지 서버(img.Svr.01~03)는 동일한 내용의 부팅 이미지 파일을 분산하여 저장할 수 있다. 피씨의 부팅 이미지 식별자를 구비하는 부팅 이미지 요청 패킷을 수신하는 로드 제어 앱(660)은 트래픽 상태 및/또는 각 부팅 이미지 서버의 부하 정도에 따라, 부팅 이미지 식별자에 대응하는 부팅 이미지 파일이 저장된 다수의 부팅 이미지 서버 중 최적의 서버로 상기 부팅 이미지 요청 패킷이 전달되도록 할 수 있다.The boot image identifier may consist of a unique value indicating a plurality of boot image files of the same content. A plurality of boot image servers (img.Svr.01 ~ 03) can distribute and store boot image files having the same contents. The load control application 660 that receives the boot image request packet with the boot image identifier of PC may determine whether the boot image file corresponding to the boot image identifier is stored The boot image request packet may be transmitted to the optimal server among the boot image servers.

도 25는 도 24의 제어기(10)의 가상 라우팅 앱(300)에 의해 특정 테넌트를 관리하는 제1 가상 라우터(341)가 생성되어 있다고 가정한다.25 assumes that a first virtual router 341 that manages specific tenants is created by the virtual routing application 300 of the controller 10 of FIG.

도 25를 참조하면, PC 전원 제어 앱(600)은 제어기(10)를 통해 복수의 스위치(SW1-SW5)에 연결되어 있는 피씨의 전원 제어를 위한 피씨 정보를 요청할 수 있다(S701). 본 실시예에서 제11 스위치(SW11)를 통해 제11 피씨(PC.11)에 피씨 정보 요청 메시지(req.info)가 전송되는 것으로 도시하였지만, 이에 한정되지 않는다. 예를 들어, 피씨 정보 요청 메시지(req.info)는 브로드캐스팅되어 모든 피씨에 전송되거나, 새로운 피씨가 연결되었음을 감지되었을 때 연결된 피씨를 특정하여 전송될 수 있다.Referring to FIG. 25, the PC power control application 600 can request PC information for power control of the PC connected to the plurality of switches SW1 to SW5 through the controller 10 (S701). In this embodiment, the PC information request message (req.info) is transmitted to the eleventh PC (PC.11) via the eleventh switch SW11, but the present invention is not limited thereto. For example, a PC information request message (req.info) may be broadcast and transmitted to all PCs, or may be transmitted specifying a connected PC when it is detected that a new PC is connected.

제11 피씨(PC.11)는 피씨 정보 요청 메시지(req.info)를 수신하면, 맥(MAC) 주소를 포함하는 피씨 정보 응답 메시지를 제11 스위치(SW11)로 전송할 수 있다(S703). 제11 피씨(PC.11)는 피씨 정보 요청 메시지(req.info)에 무관하게 피씨 정보를 브로드캐스팅할 수도 있다. 피씨 정보 응답 메시지(res.info)는 슬라이싱 식별자를 더 구비할 수 있다. 슬라이싱 식별자는 vLAN 정보일 수 있다. 슬라이싱 식별자는 제11 스위치(SW11)에 의해 부가될 수도 있다.Upon receiving the PC information request message (req.info), the eleventh PC (PC.11) may transmit the PC information response message including the MAC address to the eleventh switch SW11 (S703). The eleventh PC (PC.11) may broadcast the PC information irrespective of the PC information request message (req.info). The PC information response message (res.info) may further include a slicing identifier. The slicing identifier may be vLAN information. The slicing identifier may be added by the eleventh switch SW11.

제11 스위치(SW11)는 수신한 피씨 정보 응답 메시지(res.info)에 제11 스위치(SW11)의 스위치 정보, 예를 들어 스위치 식별자인 DPID를 부가할 수 있다. 제11 스위치(SW11)는 피씨 정보 응답 메시지(res.info)를 수신한 포트인 인입 포트 정보를 피씨 정보 응답 메시지(res.info)에 부가할 수 있다. 제11 스위치(SW11)는 피씨 정보 응답 메시지(res.info)에 슬라이싱 식별자가 없는 경우, 슬라이싱 식별자를 더 부가할 수 있다. 이후, 피씨 정보 응답 메시지(res.info)는 제11 스위치(SW11)에서 제어기 제어부(100)를 통해 PC 전원 제어 앱(600)으로 전송될 수 있다(S705).The eleventh switch SW11 may add switch information of the eleventh switch SW11, for example, a DPID which is a switch identifier, to the received PC information response message (res.info). The eleventh switch SW11 may add the incoming port information, which is the port that received the PC information response message (res.info), to the PC information response message (res.info). The eleventh switch SW11 may further add a slicing identifier if the PCS information response message (res.info) does not include the slicing identifier. Thereafter, the PC information response message (res.info) can be transmitted from the eleventh switch SW11 to the PC power control application 600 through the controller control unit 100 (S705).

PC 전원 제어 앱(600)은 기설정된 스케쥴링 정책을 모니터링 할 수 있다(S750). 스케쥴링 정책에 대해서는 후술하는 도 26의 설명을 참조한다.The PC power control application 600 may monitor the preset scheduling policy (S750). The scheduling policy is described with reference to FIG. 26, which will be described later.

PC 전원 제어 앱(600)은 스케쥴링 정책에 의해, 관리자 지시에 의해, 또는 필요에 의해 원격 전원 스위칭 신호(패킷)(pk.WOL)를 제11 피씨(PC.11)로 전송할 수 있다(S751). 원격 전원 스위칭 신호(pk.WOL)는 제11 스위치(SW11)에서 제11 피씨(PC.11)로만 전송되도록 패킷이 구성되거나, 제1 테넌트(vLAN 101)에 속한 모든 피씨(PC.11, PC.12)에 전송되도록 패킷이 구성될 수 있다. 원격 전원 스위칭 신호는(pk.WOL) 기존의 WOL 패킷일 수 있다.The PC power control application 600 can transmit the remote power switching signal (packet) (pk.WOL) to the 11th PC (PC.11) by an administrator instruction or according to a scheduling policy (S751) . The remote power switching signal pk.WOL may be configured such that packets are transmitted only from the eleventh switch SW11 to the eleventh PC 11 or all the PCs 11, Lt; RTI ID = 0.0 > 12). ≪ / RTI > The remote power switching signal (pk.WOL) may be an existing WOL packet.

원격 전원 스위칭 신호(pk.WOL)를 수신한 제11 피씨(PC.11)는 전원 상태를 '켜짐에서 꺼짐' 또는 '꺼짐에서 켜짐'으로 전환할 수 있다(S753). 본 실시예에서는 제11 피씨(PC.11)의 전원이 OFF에서 ON으로 변한다고 가정하고 설명한다.Upon receiving the remote power switching signal (pk.WOL), the 11th PC (PC.11) can switch the power state from "ON" to "OFF" or from "OFF to ON" (S753). In the present embodiment, it is assumed that the power of the eleventh PC (PC.11) is changed from OFF to ON.

전원이 켜진 제11 피씨(PC.11)은 부팅 이미지 파일의 위치와 함께 IP 주소를 요청하는 DHCP 요청 메시지(패킷)(req.DHCP)를 생성하여 제11 스위치(SW11)로 전송할 수 있다. 제11 스위치(SW11)는 DHCP 요청 메시지(req.DHCP)에 슬라이싱 식별자, 즉, vLAN 값을 101로 지정하고, 제어기 제어부(100)를 통해 가상 라우팅 앱(300)으로 전송할 수 있다. 제11 스위치(SW11)은 DHCP 요청 메시지(req.DHCP)에 선택적으로 스위치 정보 및 인입 포트 등의 정보를 부가할 수 있다. 가상 라우팅 앱(300)은 패킷 분석을 통해 슬라이싱 식별자와 동일한 네임 스페이스를 가지는 제1 가상 라우터(341)로 DHCP 요청 메시지(req.DHCP)를 전송할 수 있다(S755).The eleventh PC (PC.11) with the power turned on can generate a DHCP request message (packet) (req.DHCP) requesting an IP address together with the location of the boot image file and transmit it to the eleventh switch SW11. The eleventh switch SW11 may designate a slicing identifier, i.e., a vLAN value, as 101 in the DHCP request message (req.DHCP), and may transmit the slicing identifier to the virtual routing application 300 through the controller control unit 100. [ The eleventh switch SW11 may selectively add information such as switch information and an incoming port to the DHCP request message (req.DHCP). The virtual routing application 300 can transmit a DHCP request message (req.DHCP) to the first virtual router 341 having the same namespace as the slicing identifier through packet analysis (S755).

제1 가상 라우터(341)는 기저장된 피씨 정보와 부팅 이미지 식별자 쌍들의 리스트에서 DHCP 요청 메시지(req.DHCP)의 피씨 정보를 키 값으로 검색된 부팅 이미지 식별자를 구비하는 DHCP 응답 메시지(res.DHCP)를 생성하여, 제11 피씨(PC.11)로 전송할 수 있다(S757). 제1 가상 라우터(341)는 목적지 IP 주소를 부팅 이미지 식별자를 구비한 이미지 서버의 IP 주소로 할 수 있지만, 앞서 설명한 바와 같이 부하 분산을 위해 목적지 IP 주소를 로드 제어 앱(660)의 IP 주소로 하는 것이 바람직하다. 로드 제어 앱(660)은 별도 서버에서 구동되는 앱이거나 복수의 부팅 이미지 서버(img.Svr.01~03) 중 어느 한 서버에서 구동되는 앱일 수 있다. 로드 제어 앱(660)의 IP 주소는 로드 제어 앱(660)을 구동하는 서버의 IP 주소를 의미한다.The first virtual router 341 receives a DHCP response message (res.DHCP) having a boot image identifier retrieved from the list of pre-stored PC information and boot image identifier pairs as the key value of the PC information of the DHCP request message (req.DHCP) And transmits it to the 11th PC (PC.11) (S757). The first virtual router 341 may set the destination IP address as the IP address of the image server having the boot image identifier. However, as described above, the destination virtual IP address is set to the IP address of the load control application 660 . The load control application 660 may be an app running on a separate server or an app running on one of a plurality of boot image servers (img.Svr.01 ~ 03). The IP address of the load control application 660 means the IP address of the server that drives the load control application 660. [

DHCP 응답 메시지(res.DHCP)를 수신한 제11 피씨(PC.11)는 DHCP 응답 메시지(res.DHCP)의 부팅 이미지 식별자를 기초로 부팅 이미지 요청 메시지(req.Img)를 생성하여 제11 스위치(SW11)를 통해 로드 제어 앱(660)으로 전송할 수 있다(S759).The eleventh PC (PC.11) receiving the DHCP response message (res.DHCP) generates a boot image request message (req.Img) based on the boot image identifier of the DHCP response message (res.DHCP) (SW11) to the load control application 660 (S759).

로드 제어 앱(660)이 복수의 부팅 이미지 서버(img.Svr.01~03) 중 부팅 이미지 요청 메시지(req.Img)에 구비된 부팅 이미지 식별자를 가지는 이미지 서버 그룹 중 기설정된 부하 분산 정책에 기초하여 최적의 이미지 서버(제1 이미지 서버(img.Svr.01)이라고 가정함)로 부팅 이미지 요청 패킷(req.Img)을 전송할 수 있다(S761).The load control application 660 is based on a predetermined load balancing policy among the image server groups having the boot image identifier included in the boot image request message (req.Img) among the plurality of boot image servers (img.Svr.01 to 03) The boot image request packet req.Img may be transmitted to the optimal image server (assuming the first image server (img.Svr.01)) (S761).

제1 이미지 서버(img.Svr.01)는 부팅 이미지 식별자에 대응하는 부팅 이미지 파일(res.Img)을 제11 피씨(PC.11)로 전송할 수 있다(S763). 제11 피씨(PC.11)은 수신한 부팅 이미지 파일(res.Img)을 마운트하여 부팅할 수 있다.The first image server img.Svr.01 may transmit the boot image file res.Img corresponding to the boot image identifier to the eleventh PC PC 11. S763. The 11th PC (PC.11) can be booted by mounting the received boot image file (res.Img).

도 26을 참조하면, PC 전원 제어 앱(600)은 네임 스페이스 별로 네트워크 도메인을 구성할 수 있다(S721). PC 전원 제어 앱(600)은 네임 스페이스 별로 독립적인 피씨에 마운트될 부팅 이미지를 스케쥴링이 가능하도록 할 수 있다.Referring to FIG. 26, the PC power control application 600 can configure a network domain for each namespace (S721). The PC power control application 600 can schedule a boot image to be mounted on a PC independent of each namespace.

PC 전원 제어 앱(600)은 도메인을 기준으로 시간대 별로 피씨의 부팅될 이미지를 설정할 수 있다(S723). 즉 PC 전원 제어 앱(600)은 네임 스페이스, 시간대, 부팅 이미지 식별자를 묶음으로 하는 스케쥴링 리스트를 저장 및 관리하여, 스케쥴링 정책을 수행할 수 있다.The PC power control application 600 can set an image to be booted by the PC in a time zone based on the domain (S723). That is, the PC power control application 600 may store and manage a scheduling list including a namespace, a time zone, and a boot image identifier, and perform a scheduling policy.

PC 전원 제어 앱(600)은 스케쥴링 리스트에 의해, 피씨의 부팅에 대한 동적 변경 시간대가 되면 해당 피씨들로 전원 꺼짐 메시지를 전달할 수 있다(S725). 해당 피씨들의 전원 상태가 꺼짐인 경우, 본 단계는 생략될 수 있다.The PC power control application 600 can transmit a power off message to the PCs when the dynamic change time for the PC is booted by the scheduling list (S725). If the power state of the corresponding PC is OFF, this step may be omitted.

PC 전원 제어 앱(600)은 해당 피씨들로 전원 켜짐 메시지를 전달할 수 있다(S727). 이 후, DHCP 메시지들의 처리에 의해, 스케쥴링에 따른 부팅 이미지로 해당 도메인의 피씨들은 재시작할 수 있다(S729).The PC power control application 600 can transmit a power-on message to the PCs (S727). Thereafter, the CPUs of the corresponding domain can be restarted with the booting image according to the scheduling by processing the DHCP messages (S729).

상기 본 발명은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 즉, 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터가 읽을 수 있는 명령어, 데이터 구조, 프로그램 모듈, 및 기타 데이터 등 정보 저장을 위한 임의의 방법 또는 기술로서 구현된 모든 저장 가능한 매체를 포함하는 것으로, 휘발성/비휘발성/하이브리드형 메모리 여부, 분리형/비분리형 여부 등에 한정되지 않는다. 통신 매체는 반송파와 같은 변조된 데이터 신호 또는 전송 메커니즘, 임의의 정보 전달 매체 등을 포함한다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The present invention can be implemented in hardware or software. The present invention can also be embodied as computer readable code on a computer readable recording medium. That is, in the form of a recording medium including instructions executable by the computer. Computer-readable media includes any type of media in which data that can be read by a computer system is stored. Computer readable media can include computer storage media and communication media. Computer storage media includes any storable medium embodied as any method or technology for storage of information such as computer readable instructions, data structures, program modules, and other data, including volatile / nonvolatile / hybrid type memory Whether it is separated / non-detachable, and the like. Communication media includes modulated data signals or transmission mechanisms, such as carrier waves, any information delivery media, and the like. And functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers skilled in the art to which the present invention pertains.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes and modifications may be made by those skilled in the art without departing from the spirit and scope of the present invention.

10: 제어기 20: SDN 스위치
30: 네트워크 디바이스 100: 제어기 제어부
120: 토폴로지 관리 모듈 125: 경로 계산 모듈
130: 메시지 관리 모듈 135: 엔트리 관리 모듈
190: 저장부 200: 스위치 제어부
205: 포트부 210; 제어기 통신부
220: 플로우 검색 모듈 230: 플로우 처리 모듈
235: 패킷 처리 모듈 240: 테이블 관리 모듈
300: 가상 라우팅 앱 340: 가상 라우터
10: controller 20: SDN switch
30: Network device 100: Controller controller
120: Topology management module 125: Path calculation module
130: Message management module 135: Entry management module
190: storage unit 200: switch control unit
205: port portion 210; Controller communication section
220: Flow Search Module 230: Flow Processing Module
235: Packet processing module 240: Table management module
300: virtual routing app 340: virtual router

Claims (7)

SDN(Software Defined Network) 기반의 멀티 테넌트 지원 네트워크 시스템의 IP 주소 제공 방법으로서,
상기 시스템은,
SDN 기반의 복수의 스위치를 제어하는 제어기;
상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 가상 라우터;
가상 라우터 생성 요청 메시지를 수신하면, 컴퓨팅 자원을 할당하여 상기 가상 라우터를 가상화 기술을 이용하여 생성하는 가상 라우팅 앱; 및
상기 복수의 스위치 중 에지 스위치에 연결된 피씨(PC)의 전원을 제어하는 PC 전원 제어 앱을 포함하고,
상기 가상 라우팅 앱은 상기 복수의 스위치로 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자를 기초로 가상 라우터를 복수개 생성하고,
상기 슬라이싱 식별자는 상기 복수의 스위치에 연결된 복수의 테넌트(tenant) 중 어느 한 테넌트에 대응하는 상기 시스템으로서,
상기 PC 전원 제어 앱이 상기 피씨로 네트워크를 통한 원격 전원 스위칭 신호를 전송하는 단계;
상기 피씨가 꺼짐 상태인 경우, 상기 원격 전원 스위칭 신호를 수신하면 상기 피씨의 전원이 켜짐 상태로 전환되는 단계;
상기 가상 라우터가 상기 피씨에서 전송한 동적 호스트 구성 프로토콜(DHCP; Dynamic Host Configuration Protocol) 요청 패킷을 수신하는 단계;
상기 가상 라우터에 생성된 가상 DHCP 서버가 상기 DHCP 요청 패킷에 대응하여 IP 주소 및 부팅 이미지 식별자를 구비하는 DHCP 응답 패킷을 상기 피씨로 전송하는 단계; 및
상기 피씨가 상기 수신한 DHCP 응답 패킷의 부팅 이미지 식별자를 기초로 상기 에지 스위치로 부팅 이미지 요청 패킷을 전송하는 단계를 포함하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
A method for providing an IP address of a multi-tenant supporting network system based on SDN (Software Defined Network)
The system comprises:
A controller for controlling a plurality of SDN-based switches;
A virtual router for treating a switch group including at least some switches among the plurality of switches as a virtual router and generating routing information for a packet to be input to one of the switches;
A virtual routing application that, when receiving a virtual router creation request message, allocates computing resources to create the virtual router using virtualization technology; And
And a PC power control application for controlling power of a PC connected to an edge switch among the plurality of switches,
Wherein the virtual routing application generates a plurality of virtual routers based on the slicing identifiers, which are specific information based on packets to be transmitted to the plurality of switches,
Wherein the slicing identifier corresponds to a tenant of a plurality of tenants connected to the plurality of switches,
The PC power control application transmitting a remote power switching signal through the network to the PC;
Switching the power of the PC to an on state when receiving the remote power switching signal when the PC is in an off state;
Receiving a Dynamic Host Configuration Protocol (DHCP) request packet transmitted by the virtual router from the PC;
Transmitting, by the virtual DHCP server, a DHCP response packet having the IP address and the boot image identifier to the PC corresponding to the DHCP request packet; And
And transmitting the boot image request packet to the edge switch based on the boot image identifier of the DHCP response packet received by the PC.
제 1 항에 있어서,
상기 복수의 가상 라우터는 서로 격리된 네트워크를 형성하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
The method according to claim 1,
Wherein the plurality of virtual routers form an isolated network from each other.
제 1 항에 있어서,
상기 가상 라우팅 앱은 패킷의 슬라이싱 식별자에 연관된 네임 스페이스 식별자를 구비하는 네트워크 정보를 상기 가상 라우터에 지정하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
The method according to claim 1,
Wherein the virtual routing application assigns to the virtual router network information having a namespace identifier associated with a slicing identifier of the packet.
제 3 항에 있어서,
상기 가상 라우팅 앱은 수신한 상기 DHCP 요청 패킷에서 슬라이싱 식별자를 추출하여, 상기 추출된 슬라이싱 식별자에 대응하는 네임 스페이스 식별자를 구비하는 가상 라우터에 상기 DHCP 요청 패킷을 전달하는 단계를 더 포함하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
The method of claim 3,
Wherein the virtual routing application further comprises extracting a slicing identifier in the received DHCP request packet and delivering the DHCP request packet to a virtual router having a namespace identifier corresponding to the extracted slicing identifier, To control the power of the PC.
제 4 항에 있어서,
상기 피씨 전원 제어 앱은 기설정된 스케쥴링 정책에 따라 상기 가상 라우터의 DHCP 서버가 구비한 부팅 이미지 식별자를 수정하는 단계를 더 포함하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
5. The method of claim 4,
Wherein the PC power control application further comprises modifying a boot image identifier of a DHCP server of the virtual router according to a predetermined scheduling policy.
제 1 항에 있어서,
상기 에지 스위치가 상기 부팅 이미지 요청 패킷을 부팅 이미지를 저장하는 복수의 이미지 서버의 부하를 조절하는 로드 제어 앱으로 전송하는 단계; 및
상기 로드 제어 앱이 상기 복수의 이미지 서버 중 상기 부팅 이미지 요청 패킷에 구비된 부팅 이미지 식별자를 가지는 이미지 서버 그룹 중 기설정된 부하 분산 정책에 기초하여 특정 이미지 서버로 상기 부팅 이미지 요청 패킷을 전송하는 단계를 더 포함하는, 통합 라우팅에 의한 피씨 전원 제어 방법.
The method according to claim 1,
The edge switch sending the boot image request packet to a load control app that adjusts the load of a plurality of image servers storing a boot image; And
Wherein the load control application transmits the boot image request packet to a specific image server based on a predetermined load balancing policy among image server groups having a boot image identifier included in the boot image request packet among the plurality of image servers Further comprising the step of controlling the power of the PC by the integrated routing.
SDN(Software Defined Network) 기반의 복수의 스위치를 제어하는 제어기;
가상 라우팅 기능을 제공하는 가상 라우터; 및
상기 가상 라우터를 생성하는 가상 라우팅 앱을 구비하는 멀티 테넌트 네트워크 시스템의 피씨 전원 제어 방법으로서,
상기 가상 라우팅 앱에서, 라우팅 요청 메시지를 수신하는 단계;
상기 가상 라우팅 앱에서, 컴퓨팅 자원을 할당하여 상기 가상 라우터를 생성하는 단계;
상기 가상 앱에서, 상기 가상 라우터에 네임 스페이스 식별자를 구비하는 네트워크 정보를 지정하는 단계; 및
상기 가상 라우터에서, 상기 네트워크 정보를 이용하여 가상 라우팅 기능을 준비하는 단계를 포함하고,
상기 네임 스페이스 식별자는 상기 복수의 스위치에 연결된 복수의 테넌트(tenant) 중 어느 한 테넌트에 대응하고,
상기 가상 라우팅 앱은 가상 라우터를 복수개 생성하고,
상기 네임 스페이스 식별자는 상기 복수의 스위치에 인입하는 패킷에 기반한 특정 정보인 슬라이싱 식별자에 대응하고,
상기 제어기의 제어부에서, 상기 복수의 스위치 중 어느 한 스위치에 인입된 패킷의 처리 정보가 없는 경우, 상기 인입 패킷을 상기 가상 라우팅 앱으로 전달하는 단계;
상기 가상 라우팅 앱에서, 상기 인입 패킷으로부터 슬라이싱 식별자를 추출하는 단계;
상기 가상 라우팅 앱에서, 상기 복수의 가상 라우터 중 상기 추출된 슬라이싱 식별자에 대응하는 네임 스페이스 식별자를 구비한 가상 라우터로 상기 인입 패킷을 전달하는 단계;
상기 가상 라우터에서 상기 인입 패킷이 동적 호스트 구성 프로토콜(DHCP; Dynamic Host Configuration Protocol)인 경우, 가상 DHCP 서버 기능을 이용하여 IP 주소를 생성하는 단계; 및
상기 IP 주소 및 기저장된 부팅 이미지 식별자를 구비한 응답 패킷을 생성하는 단계를 더 포함하는, 멀티 테넌트 네트워크 시스템의 피씨 전원 제어 방법.
A controller for controlling a plurality of switches based on SDN (Software Defined Network);
A virtual router providing a virtual routing function; And
A method of controlling power of a multi-tenant network system having a virtual routing application for generating the virtual router,
Receiving, at the virtual routing application, a routing request message;
In the virtual routing application, allocating computing resources to create the virtual router;
Designating, in the virtual application, network information having a namespace identifier in the virtual router; And
And in the virtual router, preparing the virtual routing function using the network information,
Wherein the namespace identifier corresponds to a tenant of a plurality of tenants connected to the plurality of switches,
The virtual routing application creates a plurality of virtual routers,
Wherein the namespace identifier corresponds to a slicing identifier which is specific information based on a packet that is input to the plurality of switches,
Transmitting, by the control unit of the controller, the incoming packet to the virtual routing application when there is no processing information of a packet entered into any one of the plurality of switches;
Extracting a slicing identifier from the incoming packet in the virtual routing application;
Transferring the incoming packet to a virtual router having a namespace identifier corresponding to the extracted slicing identifier among the plurality of virtual routers in the virtual routing application;
Generating an IP address by using a virtual DHCP server function when the incoming packet is a dynamic host configuration protocol (DHCP) in the virtual router; And
Further comprising generating a response packet including the IP address and the pre-stored boot image identifier in the multi-tenant network system.
KR1020170001741A 2017-01-05 2017-01-05 Method for controlling of pc power by aggregated routing based on sdn KR101934908B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170001741A KR101934908B1 (en) 2017-01-05 2017-01-05 Method for controlling of pc power by aggregated routing based on sdn

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170001741A KR101934908B1 (en) 2017-01-05 2017-01-05 Method for controlling of pc power by aggregated routing based on sdn

Publications (2)

Publication Number Publication Date
KR20180080787A true KR20180080787A (en) 2018-07-13
KR101934908B1 KR101934908B1 (en) 2019-01-04

Family

ID=62913600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170001741A KR101934908B1 (en) 2017-01-05 2017-01-05 Method for controlling of pc power by aggregated routing based on sdn

Country Status (1)

Country Link
KR (1) KR101934908B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039795A (en) * 2021-11-26 2022-02-11 郑州信大信息技术研究院有限公司 Software-defined router and data forwarding method based on same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109759257B (en) * 2019-01-19 2021-03-30 浙江威克特光电有限公司 Paint spraying equipment for luminous character shell

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527786B1 (en) * 2013-12-31 2015-06-09 쿨클라우드(주) Method for managing hybrid sdn network
KR20160121087A (en) * 2015-04-10 2016-10-19 쿨클라우드(주) Aggregated routing method based on sdn and system thereof
KR101729939B1 (en) * 2016-01-12 2017-04-25 쿨클라우드(주) Multi tunant network system based on sdn

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527786B1 (en) * 2013-12-31 2015-06-09 쿨클라우드(주) Method for managing hybrid sdn network
KR20160121087A (en) * 2015-04-10 2016-10-19 쿨클라우드(주) Aggregated routing method based on sdn and system thereof
KR101729939B1 (en) * 2016-01-12 2017-04-25 쿨클라우드(주) Multi tunant network system based on sdn

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039795A (en) * 2021-11-26 2022-02-11 郑州信大信息技术研究院有限公司 Software-defined router and data forwarding method based on same
CN114039795B (en) * 2021-11-26 2023-06-23 郑州信大信息技术研究院有限公司 Software defined router and data forwarding method based on same

Also Published As

Publication number Publication date
KR101934908B1 (en) 2019-01-04

Similar Documents

Publication Publication Date Title
KR101703088B1 (en) Aggregated routing method based on sdn and system thereof
US20200334068A1 (en) Application/context-based management of virtual networks using customizable workflows
US11316738B2 (en) Vendor agnostic profile-based modeling of service access endpoints in a multitenant environment
US7941539B2 (en) Method and system for creating a virtual router in a blade chassis to maintain connectivity
KR101803332B1 (en) Network system for internet of things
US9830183B2 (en) Data center resource allocation system and data center resource allocation method
US7944923B2 (en) Method and system for classifying network traffic
KR101729944B1 (en) Method for supplying ip address by multi tunant network system based on sdn
KR101797112B1 (en) Manegement system for container network
KR101934908B1 (en) Method for controlling of pc power by aggregated routing based on sdn
WO2022063170A1 (en) Public cloud network configuration method, and related device
KR20180058594A (en) Software Defined Network/Test Access Port Application
KR101797115B1 (en) Method for container networking of container network
KR20180058592A (en) Software Defined Network Controller
KR101729945B1 (en) Method for supporting multi tunant by network system based on sdn
KR101729939B1 (en) Multi tunant network system based on sdn
KR20210016802A (en) Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor
KR20180087561A (en) System interface for dynamic virtual network service
KR20180058593A (en) Software Defined Network Whitebox Switch
KR101806376B1 (en) Multi tunant network system based on sdn capable of supplying ip address
KR20180040963A (en) Aggregated routing method based on sdn and method for supplying multi tunant network
KR20170006950A (en) Network flattening system based on sdn and method thereof
KR101739100B1 (en) Method of controlling openflow switch capable of service chaining and controller thereof
KR101707073B1 (en) Error detection network system based on sdn
KR20190054229A (en) Machine learning based network automation system method

Legal Events

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