KR102001487B1 - Method for controlling software defined networking and computing device performing the same - Google Patents
Method for controlling software defined networking and computing device performing the same Download PDFInfo
- Publication number
- KR102001487B1 KR102001487B1 KR1020170156500A KR20170156500A KR102001487B1 KR 102001487 B1 KR102001487 B1 KR 102001487B1 KR 1020170156500 A KR1020170156500 A KR 1020170156500A KR 20170156500 A KR20170156500 A KR 20170156500A KR 102001487 B1 KR102001487 B1 KR 102001487B1
- Authority
- KR
- South Korea
- Prior art keywords
- virtual
- switch
- flow rule
- identifier
- generating
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000006855 networking Effects 0.000 title claims abstract description 26
- 230000009471 action Effects 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims abstract description 9
- 238000004891 communication Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치에 관한 것이다. 본 발명은 컨트롤러가 가상 스위치와 가상 머신을 포함하는 컴퓨팅 노드 및 물리 스위치로 구성된 소프트웨어 정의 네트워킹을 제어하는 방법에 있어서, 상기 컴퓨팅 노드 또는 상기 가상 스위치에 하나 이상의 가상 식별자를 부여하는 단계, 상기 가상 식별자가 부여된 제1 필드 값을 매칭 조건으로 하는 플로우 룰을 생성하여 상기 물리 스위치에 전송하는 단계, 목적지 가상 머신으로 전송되는 패킷의 제1 필드 값을 상기 목적지 가상 머신의 실제 제1 필드 정보로 설정하는 플로우 룰을 생성하여 상기 목적지 가상 머신에 연결된 제1 가상 스위치에 전송하는 단계, 상기 패킷의 제1 필드 값을 상기 제1 가상 스위치 또는 상기 제1 가상 스위치를 포함하는 컴퓨팅 노드의 가상 식별자로 설정하는 액션을 포함하는 플로우 룰을 생성하여 상기 목적지 가상 머신에 연결되지 않은 제2 가상 스위치에 전송하는 단계, 상기 제1 필드는 패킷 전송에 영향을 미치지 않는 필드인 소프트웨어 정의 네트워킹 제어 방법. 본 발명에 의하면, 플로우 룰 저장 용량에 제한이 없는 가상 스위치의 활용도를 높임으로써, 확장성이 개선된 소프트웨어 정의 네트워킹 제어 방법을 제공할 수 있다.The present invention relates to a software defined networking control method and a computing device for performing the same. A method for controlling software defined networking comprising a computing node and a physical switch comprising a virtual switch and a virtual machine, the method comprising: assigning at least one virtual identifier to the computing node or the virtual switch; Generating a flow rule having a first field value assigned to a destination virtual machine as a matching condition and transmitting the flow rule to the physical switch; setting a first field value of a packet transmitted to the destination virtual machine as actual first field information of the destination virtual machine And setting a first field value of the packet to a virtual identifier of a computing node including the first virtual switch or the first virtual switch And generating a flow rule including an action Sending a second virtual switch that is not connected to, the first field of the software defined network control method for a field that does not affect the packet transmission. According to the present invention, it is possible to provide a software-defined networking control method with improved scalability by increasing utilization of a virtual switch having no limitation on a flow rule storage capacity.
Description
본 발명은 소프트웨어 정의 네트워킹 제어 방법 및 이를 수행하는 컴퓨팅 장치에 관한 것으로, 보다 자세하게는 소프트웨어 스위치와 물리 스위치 계층화를 통해 클라우드 환경에서 소프트웨어 정의 네트워킹의 제어를 최적화 하는 방법, 컨트롤러 및 컴퓨터 프로그램에 관한 것이다. The present invention relates to a software defined networking control method and a computing device for performing the same, and more particularly, to a method, a controller, and a computer program for optimizing control of software defined networking in a cloud environment through software switch and physical switch layering.
소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다. SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다.Software Defined Networking (SDN) is a technology that manages all the network devices in the network by an intelligent central management system. In the SDN technology, a controller provided in a form of software can perform processing instead of a control operation related to the packet processing performed by itself in a conventional hardware type network device, so that various functions can be developed and given over the existing network structure. The SDN system generally comprises a controller server for controlling the entire network, a plurality of open flow switches controlled by the controller server for processing packets, and a host corresponding to a lower layer of the open flow switch. Here, the open flow switch is only responsible for transmitting and receiving packets, and routing, management, and control of the packets are all performed in the controller server. In other words, separating the data planes and control planes that form the network equipment is the basic structure of the SDN system.
한편, 도 1의 소프트웨어 정의 네트워킹 환경에서 물리 스위치(100)와 연결된 컴퓨팅 노드(1000) 각각은 가상 스위치(200)와 하나 이상의 가상 머신(호스트, 300)로 구성될 수 있다. 여기서 물리스위치에는 시스템에 존재하는 가상 머신(300)의 개수에 비례하는 플로우 룰이 저장된다. 만일 플로우 룰이 출발지 IP와 목적지 IP의 조합으로 이루어지면, 플로우 룰의 개수는 가상 머신(300) 개수의 제곱에 비례할 것이다.In the software defined networking environment of FIG. 1, each of the
일반적으로 물리 스위치(100)는 TCAM(Ternary Content Addressable Memory)을 사용한다. TCAM은 라우팅 테이블 처리 등 매우 빠른 속도를 요하는 탐색 애플리케이션에서 사용되는 내용 주소화 기억장치(CAM)의 일종으로, 이진수(Binary)로 이루어진 검색어 뿐 아니라 X(don’t care)를 허용하여 검색에 있어서 높은 유연성을 제공한다. TCAM은 그 비용이 일반 메모리에 비해 매우 높으며, 이로 인해 용량을 늘리는 것이 쉽지 않다. 따라서 현재 상용화된 TCAM이 저장할 수 있는 플로우 룰의 개수는 최소 약 900여개에서 최대 약 4000개 수준에 불과하여 사용 가능한 플로우 룰의 개수가 제한되는 문제가 있다.In general, the physical switch 100 uses a TCAM (Ternary Content Addressable Memory). TCAM is a type of content addressable memory (CAM) used in very high-speed searching applications such as routing table processing. It does not accept search words consisting of binary data but allows X (do not care) Thus providing high flexibility. TCAM has a very high cost compared to conventional memory, which makes it difficult to increase capacity. Therefore, the number of flow rules that can be stored in the commercialized TCAM is limited from about 900 to about 4000, which limits the number of available flow rules.
본 발명은 전술한 문제점을 해결하기 위한 것으로서, 플로우 룰 저장 용량에 제한이 없는 가상 스위치의 활용도를 높임으로써, 확장성이 개선된 소프트웨어 정의 네트워킹 제어 방법을 제공하는 것을 일 목적으로 한다. SUMMARY OF THE INVENTION It is an object of the present invention to provide a software-defined networking control method with improved scalability by increasing the utilization of a virtual switch without limitation in a flow rule storage capacity.
또한 본 발명은 플로우 룰의 개수를 최적화함으로써 네트워크 운영상의 트러블 슈팅(trouble shooting) 속도 및 정확도를 높이는 것을 다른 목적으로 한다. Another object of the present invention is to improve the trouble shooting speed and accuracy in network operation by optimizing the number of flow rules.
또한 본 발명은 네트워크 토폴로지가 변경될 때, 이를 각 플로우 테이블에 반영하는 작업(링크, 스위치, 호스트의 추가 및 삭제)을 보다 간소화함으로써 네트워크 성능을 전반적으로 개선하는 것을 다른 목적으로 한다. Another object of the present invention is to improve overall network performance by simplifying operations (link, switch, host addition and deletion) of reflecting the network topology in each flow table when the network topology is changed.
이러한 목적을 달성하기 위한 본 발명은 컨트롤러가 가상 스위치와 가상 머신을 포함하는 컴퓨팅 노드 및 물리 스위치로 구성된 소프트웨어 정의 네트워킹을 제어하는 방법에 있어서, 상기 컴퓨팅 노드 또는 상기 가상 스위치에 복수개의 가상 식별자를 부여하는 단계, 상기 복수개의 가상 식별자 중 하나인 제1 가상 식별자를 정점으로 하는 제1 경로 트리와 다른 하나인 제2 가상 식별자를 정점으로 하는 제2 경로 트리를 생성하는 단계, 상기 제1 경로 트리에 대응하는 제1 플로우 룰을 생성하고, 상기 제1 플로우 룰의 매칭 조건을 상기 제1 가상 식별자를 이용하여 설정하는 단계, 상기 제2 경로 트리에 대응하는 제2 플로우 룰을 생성하고, 상기 제2 플로우 룰의 매칭 조건을 상기 제2 가상 식별자를 이용하여 설정하는 단계, 상기 제1 플로우 룰과 상기 제2 플로우 룰을 상기 물리 스위치에 전송하는 플로우 룰 전송 단계, 상기 가상 식별자는 패킷 전송에 영향을 미치지 않는 필드 값에 부여되는 가상의 식별자이며, 상기 제1 경로 트리와 상기 제2 경로 트리는 서로 다른 경로를 나타내는 것을 특징으로 한다. According to an aspect of the present invention, there is provided a method for controlling a software defined networking configured by a controller including a computing node including a virtual switch and a virtual machine and a physical switch, the method comprising: assigning a plurality of virtual identifiers to the computing node or the virtual switch Generating a first path tree having a first virtual identifier as a vertex and a second path tree having a second virtual identifier as a vertex different from the first path tree having a vertex as one of the plurality of virtual identifiers, Generating a corresponding first flow rule, setting a matching condition of the first flow rule using the first virtual identifier, generating a second flow rule corresponding to the second path tree, Setting a matching condition of the flow rule using the second virtual identifier, and setting the matching condition of the first flow rule and the second A flow rule transmitting step of transmitting a flow rule to the physical switch, wherein the virtual identifier is a virtual identifier assigned to a field value that does not affect packet transmission, and the first path tree and the second path tree have different paths .
또한 본 발명은 가상 스위치와 가상 머신을 포함하는 컴퓨팅 노드 및 물리 스위치로 구성된 소프트웨어 정의 네트워킹을 제어하는 컨트롤러에 있어서, 플로우 룰을 생성하는 애플리케이션부, 상기 플로우 룰을 상기 가상 스위치와 상기 물리 스위치에 전송하는 통신부, 상기 컴퓨팅 노드 및 상기 물리 스위치의 정보를 저장하는 저장부를 포함하며, 상기 애플리케이션부는 상기 컴퓨팅 노드 또는 상기 가상 스위치에 복수개의 가상 식별자를 부여하는 가상 식별자 생성부,상기 가상 식별자를 이용하여 상기 물리 스위치에 전송되는 제1 플로우 룰의 매칭 조건을 설정하는 플로우 룰 생성부를 포함하며, 상기 플로우 룰 생성부는 상기 복수개의 가상 식별자 중 하나인 제1 가상 식별자를 정점으로 하는 제1 경로 트리와 다른 하나인 제2 가상 식별자를 정점으로 하는 제2 경로 트리를 생성하고, 상기 제1 경로 트리에 대응하는 제1 플로우 룰을 생성하고, 상기 제1 플로우 룰의 매칭 조건을 상기 제1 가상 식별자를 이용하여 설정하고, 상기 제2 경로 트리에 대응하는 제2 플로우 룰을 생성하고, 상기 제2 플로우 룰의 매칭 조건을 상기 제2 가상 식별자를 이용하여 설정하며, 상기 통신부는 상기 제1 플로우 룰과 상기 제2 플로우 룰을 상기 물리 스위치에 전송하고, 상기 가상 식별자는 패킷 전송에 영향을 미치지 않는 필드 값에 부여되는 가상의 식별자이며, 상기 제1 경로 트리와 상기 제2 경로 트리는 서로 다른 경로를 나타내는 것을 다른 특징으로 한다. The present invention also provides a controller for controlling software defined networking comprising a computing node including a virtual switch and a virtual machine and a physical switch, the controller comprising: an application unit for generating a flow rule; a processor for transmitting the flow rule to the virtual switch and the physical switch And a storage unit for storing information of the computing node and the physical switch, wherein the application unit comprises: a virtual identifier generating unit for giving a plurality of virtual identifiers to the computing node or the virtual switch; And a flow rule generation unit for setting a matching condition of a first flow rule to be transmitted to the physical switch, wherein the flow rule generation unit is configured to generate a flow rule including a first path tree having a first virtual identifier, which is one of the plurality of virtual identifiers, Apexes the second virtual identifier And generates a first flow rule corresponding to the first path tree, sets a matching condition of the first flow rule using the first virtual identifier, And sets a matching condition of the second flow rule using the second virtual identifier, and the communication unit transmits the first flow rule and the second flow rule to the physical switch Wherein the virtual identifier is a virtual identifier assigned to a field value that does not affect packet transmission, and the first path tree and the second path tree represent different paths.
전술한 바와 같은 본 발명에 의하면, 플로우 룰 저장 용량에 제한이 없는 가상 스위치의 활용도를 높임으로써, 확장성이 개선된 소프트웨어 정의 네트워킹 제어 방법을 제공할 수 있다.According to the present invention as described above, it is possible to provide a software-defined networking control method with improved scalability by increasing utilization of a virtual switch having no limitation on a flow rule storage capacity.
또한 본 발명은 플로우 룰의 개수를 최적화함으로써 네트워크 운영상의 트러블 슈팅(trouble shooting) 속도 및 정확도를 높일 수 있다. In addition, the present invention can improve trouble shooting speed and accuracy in network operation by optimizing the number of flow rules.
또한 본 발명은 네트워크 토폴로지가 변경될 때, 이를 각 플로우 테이블에 반영하는 작업(링크, 스위치, 호스트의 추가 및 삭제)을 보다 간소화함으로써 네트워크 성능을 전반적으로 개선하는 것을 다른 목적으로 한다. . Another object of the present invention is to improve overall network performance by simplifying operations (link, switch, host addition and deletion) of reflecting the network topology in each flow table when the network topology is changed. .
도 1은 본 발명의 소프트웨어 정의 네트워킹 환경 및 종래의 소프트웨어 정의 네트워킹 제어 방법을 설명하기 위한 도면,
도 2는 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 제어 방법을 도시한 도면,
도 3은 본 발명의 일 실시 예에 따른 복수개의 식별자를 부여하여 네트워킹을 네어하는 방법을 도시한 도면,
도 4는 본 발명의 일 실시 예에 따른 다중 경로 설정 방법을 설명하기 위한 도면,
도 5는 본 발명의 일 실시 예에 따른 컨트롤러 구성을 설명하기 위한 블록도,
도 6은 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 제어 방법을 설명하기 위한 순서도이다. 1 is a diagram for explaining a software defined networking environment of the present invention and a conventional software defined networking control method,
Figure 2 illustrates a software defined networking control method in accordance with an embodiment of the present invention;
FIG. 3 illustrates a method for providing network identifiers by assigning a plurality of identifiers according to an exemplary embodiment of the present invention.
4 is a diagram for explaining a multipath setting method according to an embodiment of the present invention;
5 is a block diagram for explaining a controller configuration according to an embodiment of the present invention;
6 is a flowchart illustrating a software defined networking control method according to an embodiment of the present invention.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용되며, 명세서 및 특허청구의 범위에 기재된 모든 조합은 임의의 방식으로 조합될 수 있다. 그리고 다른 식으로 규정하지 않는 한, 단수에 대한 언급은 하나 이상을 포함할 수 있고, 단수 표현에 대한 언급은 또한 복수 표현을 포함할 수 있음이 이해되어야 한다. The above and other objects, features, and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings, which are not intended to limit the scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components, and all combinations described in the specification and claims can be combined in any manner. It is to be understood that, unless the context requires otherwise, references to singular forms may include more than one, and references to singular forms may also include plural forms.
본 발명의 명세서에서 ‘플로우 룰’의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 나아가 ‘플로우 룰’의 용어는 오픈플로우 스위치에 대해서는 상기 네트워크 정책에 따른 플로우 엔트리를 의미하는 것으로 해석될 수 있다. 나아가 본 명세서에서 플로우 룰의 변경(updating)은 신 플로우 룰의 추가(add), 구 플로우 룰의 삭제(delete) 또는 수정(modify)을 포함하는 개념으로 이해되어야 한다.The term 'flow rule' in the description of the present invention should be understood to mean a network policy applied by a controller server in a software defined network in the ordinary artisan's field. Further, the term " flow rule " can be interpreted to mean a flow entry according to the network policy for an open flow switch. Further, updating of a flow rule in this specification should be understood as a concept involving addition of a new flow rule, deletion of a previous flow rule, or modification.
또한, 본 명세서에 기재된 ‘식별 주소’는 호스트, 디바이스 또는 프로세스를 식별하기 위한 것으로, 네트워크 계층에서의 호스트 주소인 IP주소, 호스트 내의 프로세스 주소인 포트 주소와 같은 논리 주소를 포함하며, MAC 주소와 같은 물리 주소를 포함하는 것으로 이해될 수 있다. The 'identification address' described in the present specification is for identifying a host, a device or a process, and includes a logical address such as an IP address as a host address in a network layer, a port address as a process address in the host, It can be understood to include the same physical address.
도 1은 본 발명의 소프트웨어 정의 네트워킹 환경(Software Defined Networking) 및 종래의 소프트웨어 정의 네트워킹 제어 방법(이하, ‘SDN 제어 방법’이라 함) 을 설명하기 위한 도면이다. 1 is a diagram for explaining a software defined networking environment of the present invention and a conventional software defined networking control method (hereinafter referred to as an 'SDN control method').
먼저, 본 발명의 소프트웨어 정의 네트워킹 환경은 컨트롤러(미도시), 네트워크 장비(100), 서버(또는 컴퓨팅 노드, 1000)를 포함할 수 있으며, 서버(1000)는 하나 이상의 가상 스위치(또는 소프트웨어 스위치)(200)와 하나 이상의 가상 머신(300)을 포함할 수 있다. 가상 스위치(200)와 가상 머신(300)은 고성능의 서버(1000)가 가지고 있는 리소스를 이용하여 가상의 스위치 또는 가상의 단말과 같이 동작할 수 있다. First, a software defined networking environment of the present invention may include a controller (not shown), a network appliance 100, a server (or computing node 1000), and the
본 명세서에서 네트워크 장비(100)는 패킷 처리를 위한 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 라우터, 스위치 등과 같은 네트워크 장비를 모두 포함하나, 이하에서는 설명의 편의를 위해 네트워크 장비(100)가 물리 스위치(100)인 경우를 중심으로 설명한다. The network device 100 includes all the network devices such as a mobile communication base station, a base station controller, a gateway device, a router, and a switch for packet processing. Hereinafter, for convenience of explanation, (100) will be mainly described.
물리 스위치(100)와 가상 스위치(200) 모두 컨트롤러의 제어에 따라 패킷을 처리하는 기능을 한다. 즉, 가상 스위치(200)는 동 네트워킹 환경에서 스위치로 기능하며, 따라서 가상 스위치(200)에 연결된 가상머신(300)을 각각 하나의 호스트로 볼 수 있다. 또한, 각각의 가상머신(300)은 고유의 식별주소를 가질 수 있다. Both the physical switch 100 and the
물리 스위치(100), 가상 스위치(200) 및 가상머신(300)은 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다.The physical switch 100, the
컨트롤러는 네트워크 장비(100, 200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(100, 200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 애플리케이션(소프트웨어)가 탑재된 형태로 구현될 수 있다.The controller manages the
소프트웨어 정의 네트워킹에서 컨트롤러와 스위치(100, 200)는 상호간 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러와 오픈플로우 스위치(100, 200)간 통신할 수 있는 표준 규격이다. In the software defined networking, the controller and the switches (100, 200) must exchange information with each other, and the widely used protocol for this is the OpenFlow protocol. That is, the open flow protocol is a standard specification for communication between the controller and the
보다 구체적으로 설명하면, 스위치(100, 200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. 상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)과 정보를 교환한다. 상기 보안 채널은 스위치(100, 200)와 원거리에 위치한 컨트롤러 간 통신 채널이며, 컨트롤러와 스위치(100, 200) 간 교환되는 정보는 암호화된다.More specifically, the
상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러(100)가 생성하여 스위치(100, 200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 스위치(100, 200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다.The hardware layer has a flow table that defines and processes packets and includes statistical information related to the packets. The flow table includes a flow rule that defines packet processing. The flow rule is generated by a flow mode message (Flow-Mode Message) generated by the controller 100 and transmitted to the
상기 플로우 테이블은 크게 세 가지 정보, 즉 플로우를 정의하는 패킷 헤더 정보(Rule), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계 정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭한다.The flow table can largely include three pieces of information: packet header information (Rule) defining a flow, operation information (Action) defining processing of a packet, and stat information (Stats) per flow. Each row constituting the flow table is referred to as a flow entry.
호스트는 스위치의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 본 명세서의 소프트웨어 정의 네트워킹 환경에서 서버(1000)가 물리 스위치(100)에 연결되어 있는 하위 단말이기는 하나, 서버(1000)에 포함된 가상 스위치(200)가 전체 네트워크에서 스위치로서 기능하므로, 네트워크 전체로 볼 때, 가장 하위 계층에 해당하는 단말은 가상 머신(300)이다. 따라서 본 명세서에서는 가상 머신(300)을 호스트(300)로 지칭하며, 본 명세서에서의 호스트(300)는 서버(1000)와는 구분되는 개념으로 이해될 수 있다. A host is a terminal or the like corresponding to a lower layer of a switch, and can be used to mean a client and a server. In the software defined networking environment of this specification, although the
호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 상기 패킷을 가상 스위치(200)에 연결된 네트워크 인터페이스의 포트를 통해 물리 스위치(100)로 전송할 수 있다.The
도 1을 참조하여 종래의 SDN 제어 방법을 설명하면 다음과 같다.The conventional SDN control method will be described with reference to FIG.
상술한 바와 같이 각 스위치(100, 200)에 저장된 플로우 테이블은 플로우 엔트리를 포함하며, 플로우 엔트리는 매치 필드(match fields), 카운터(counters), 매치되는 패킷에 적용되는 하나 이상의 인스트럭션(instruction)으로 구성되어 있다. 스위치(100, 200)는 패킷이 포트로 입력되면, 패킷의 목적지 주소를 이용하여 해당 패킷에 매치되는 플로우 엔트리를 탐색한다. As described above, the flow table stored in each
예를 들어, 각 스위치(100, 200)가 컨트롤러로부터 플로우 룰을 수신하여 각각 도 1에 도시된 표와 같은 플로우 테이블을 가지고 있다고 가정하자. 10.0.0.1을 주소로 하는 호스트(300A)가 목적지 주소가 10.0.0.3인 호스트(300B)로 패킷을 전송하는 경우를 살펴보자. For example, suppose that each
종래 방식에 의하면, 패킷은 가상 스위치(200A)로 전송되며, 목적지 주소가 10.0.0.3인 패킷은 가상 스위치(200)의 플로우 엔트리에 의해, 1번 포트로 출력되어 물리스위치(100B)에 전송된다. 물리 스위치(100B)는 해당 패킷에 매치되는 플로우 엔트리의 액션에 따라 1번 포트로 패킷을 출력하며, 패킷은 물리 스위치(100B)의 1번 포트와 연결된 물리 스위치(100A)로 전송된다. 패킷을 수신한 물리 스위치(100A)은 마찬가지로 자신이 가지고 있는 플로우 엔트리를 참조하여, 매칭되는 플로우 엔트리의 액션에 따라 2번 포트로 패킷을 출력하며, 출력된 패킷은 물리 스위치(100C) 및 가상 스위치(200B)를 거쳐 목적지 호스트(300B)에 도달한다. According to the conventional method, a packet is transmitted to the
이러한 방식은 전술한 바와 같이 관리 가능한 호스트(300)의 개수에 제한을 가져온다. 각 물리 스위치(100)는 메모리가 지원할 수 있는 개수만큼의 플로우 엔트리만을 저장할 수 있기 때문에, 네트워크를 구성하는 호스트(300)의 개수가 4000여개를 넘어가면, 네트워크는 제대로 동작하지 않을 것이다. This approach limits the number of
도 2는 본 발명의 일 실시 예에 따른 소프트웨어 정의 네트워킹 제어 방법을 도시한 도면이다. 본 발명의 일 실시 예에 따르면, 컴퓨팅 노드에는 하나 이상의 가상 식별자가 각각 부여된다. FIG. 2 is a diagram illustrating a software defined networking control method according to an embodiment of the present invention. According to one embodiment of the present invention, the computing node is each assigned one or more virtual identifiers.
예를 들어, 도 2에 도시된 컴퓨팅 노드에는 왼쪽에서부터 순차적으로 a:a:a:a:a:a, a:a:a:a:a:b, a:a:a:a:a:c, a:a:a:a:a:d, a:a:a:a:a:e, a:a:a:a:a:f와 같은 가상의 물리 주소가 가상 식별자로 부여되어 있다. 컨트롤러(50)는 가상 식별자를 이용하여 물리 스위치에 전송되는 플로우 룰의 매칭 조건을 설정할 수 있다.A: a: a: a: a: a: a: b: a: a: a: a: a: A virtual physical address such as a, a: a: a: a: a: a: a: a: a: a: a: a: a: . The
예를 들어, 도 2에 도시된 바와 같이 물리 스위치(100A)에 전송되는 플로우 룰의 매치 필드(match field)에는 패킷의 목적지 물리 주소를 확인하는 매칭 조건이 설정될 수 있다. 만약 가상 식별자로 VLAN 태그가 사용되는 경우에는 패킷의 VLAN 태그를 확인하는 매칭 조건이 설정될 것이다. 가상 식별자는 패킷 전송에 영향을 미치지 않는 필드 값에 부여되는 가상의 식별자로, 컴퓨팅 노드(1000)별로 고유의 값을 갖도록 각각에 서로 다른 값이 부여되며, 논리 주소와 같이 패킷 전송에 영향을 미치는 필드가 아니라면 어떤 필드 값이든 가상 식별자가 설정 및 사용될 수 있다. 즉, 가상 식별자로는 목적지 IP 주소 또는 출발지 IP 주소를 제외한 모든 필드(MPLS, VLAN, DST_MAC)에 대응되는 값이 부여될 수 있다. For example, as shown in FIG. 2, a matching condition for identifying a destination physical address of a packet may be set in a match field of a flow rule transmitted to the
컨트롤러(50)는 가상 식별자를 이용하여 생성된 플로우 룰을 물리 스위치에 전송하며, 따라서 물리 스위치는 컴퓨팅 노드(1000) 간 전송 경로를 결정한다. 상기 컴퓨팅 노드(1000)의 목적지 물리 주소로 가상 식별자가 부여된 도 2의 예시에서, 목적지 논리 주소가 10.0.0.3 이고, 출발지 논리 주소가 10.0.0.1인 경우를 가정하자. The
목적지가 아닌 가상 머신(300B를 제외한 나머지 가상 머신들)에 연결된 가상 스위치(200B를 제외한 나머지 가상 스위치들)에 전송되는 플로우 룰은 목적지 가상 머신(300B)을 포함하는 컴퓨팅 노드에 부여된 가상 식별자(a:a:a:a:a:c)를 상기 목적지로 전송되는 패킷의 목적지 물리 주소로 설정하는 액션 “Mod_eth_dst -> a:a:a:a:a:c”을 포함할 수 있다. The flow rule transmitted to the virtual switch (other than the
따라서 가상머신(300A)에서 출발한 패킷은 목적지 주소가 10.0.0.3이므로, 가상 스위치(200A)의 플로우 엔트리에 따라 목적지 물리 주소가 a:a:a:a:a:c로 변경되어 물리 스위치(100B)로 전달된다. 물리 스위치(200B)에 저장된 플로우 엔트리의 매칭 조건은 목적지 물리 주소로 설정되어 있으므로, 물리 스위치(200B)는 목적지 물리주소가 a:a:a:a:a:c인 상기 패킷을 2번 포트로 출력할 수 있다. Therefore, since the destination address of the packet originated from the
이와 같은 방법으로, 패킷은 물리 스위치(100C)를 거쳐 물리 주소가 a:a:a:a:a:c인 컴퓨팅 노드(1000B)로 전송되며, 컴퓨팅 노드(1000B)의 가상 스위치(200B)에 전달된 패킷은 가상 스위치(200B)에 저장된 플로우 테이블을 참조하여 패킷의 목적지 논리 주소를 확인할 수 있다. 본 예시에서 목적지 논리 주소는 10.0.0.3이므로, 도 2에 도시된 플로우 룰에 따라, 가상 스위치(200B)는 패킷의 목적지 물리 주소 필드에 부여된 가상 식별자를 목적지 가상 머신(300B)의 물리 주소(10.0.0.3‘s MAC)로 변경한다. 이는 이는 가상 머신(300B)이 패킷 수신 후 패킷의 목적지 물리주소가 자신의 물리주소와 다르면 패킷을 드랍하는 것을 방지하기 위함이다. In this way, the packet is transmitted to the
전술한 예시와 같이 물리 스위치(100)에 전송되는 플로우 룰과 가상 스위치(200)에 전송되는 플로우 룰은 매칭 조건과 액션이 상이하다. 따라서 물리 스위치(100)는 컴퓨팅 노드 간 전송 경로를 결정하고, 가상 스위치는 컴퓨팅 노드에 포함된 가상 머신(호스트, 300) 간의 전송 경로를 결정하는 역할을 한다. 그 결과 SDN 제어의 복잡도가 현저히 낮아지며, 물리 스위치(100)에 저장되는 플로우 엔트리의 수는 컴퓨팅 노드의 수에 비례하므로, 낮은 용량을 갖는 물리 스위치(100)의 한계를 극복할 수 있다. As described above, the flow rules transmitted to the physical switch 100 and the flow rules transmitted to the
네트워크 기능 가상화로 인해 고성능 컴퓨팅 노드의 리소스를 활용하여 다수의 가상 머신을 생성하는 사례가 늘어나고 있다. 가상 스위치의 경우 저장 가능한 플로우 룰의 개수에 제한이 없어 가상 머신의 개수가 크게 증가하더라도 충분히 관리 가능하므로, 본 발명에 의하면 개별 컴퓨팅 노드의 가상 머신 증가가 전체 네트워크에 영향을 미치지 않아 네트워크의 확장성을 높일 수 있다. Network functionality Virtualization is creating an increasing number of virtual machines that utilize the resources of high-performance computing nodes. In the case of the virtual switch, since there is no limit on the number of storable flow rules, even if the number of virtual machines increases greatly, the management can be sufficiently performed. Therefore, according to the present invention, since the increase of virtual machines of individual computing nodes does not affect the entire network, .
이하에서는 도 3 내지 도 4를 참조하여 컴퓨팅 노드에 복수의 가상 식별자가 부여되는 경우의 일 실시 예를 살펴본다. Hereinafter, an embodiment in which a plurality of virtual identifiers are assigned to a computing node will be described with reference to FIG. 3 to FIG.
컴퓨팅 노드에는 하나 이상의 가상 식별자가 부여될 수 있는데, 도 3과 같이 복수개의 가상 식별자가 부여될 수 있다. 복수개의 식별자를 사용하게 되면, 동일 컴퓨팅 노드로 전달되는 패킷이라도, 식별자 별로 경로를 다르게 설정함으로써 다중 경로(multi path)를 구현할 수 있다. One or more virtual identifiers may be assigned to the computing node, and a plurality of virtual identifiers may be assigned as shown in FIG. When a plurality of identifiers are used, even a packet transmitted to the same computing node can be implemented as a multi-path by setting different paths for each identifier.
도 4를 참조하여 다중 경로를 설정하는 일 예를 살펴본다. 도 4의 예시에서 컴퓨팅 노드(1001)의 가상 식별자는 물리 주소 형태로 부여되었으며, 가상 식별자로는 a:a:a:a:a:c 와 a:a:a:a:a:d 두 개가 설정되었다. 가상 식별자를 복수 개 사용하는 경우, 하나의 식별자는 컴퓨팅 노드(또는 가상 스위치)를 정점으로 하는 다이렉티드 트리(directed tree) 하나에 대응되도록 경로가 설정될 수 있다. An example of setting a multi-path will be described with reference to FIG. In the example of FIG. 4, the virtual identifier of the
즉, 컨트롤러는 제1 가상 식별자를 정점으로 하는 제1 경로 트리와 상기 제2 가상 식별자를 정점으로 하는 제2 경로 트리를 생성할 수 있으며, 제1 경로 트리와 상기 제2 경로 트리는 서로 다른 경로를 나타내는 것일 수 있다. That is, the controller can generate a first path tree having a first virtual identifier as a vertex and a second path tree having the second virtual identifier as a vertex, and the first path tree and the second path tree can generate different paths .
그리고 컨트롤러는 플로우 룰을 생성함에 있어서 제1 경로 트리에 대응하는 제4 플로우 룰을 생성하고, 상기 제4 플로우 룰의 매칭 조건을 상기 제1 가상 식별자를 이용하여 설정할 수 있다. 나아가, 컨트롤러는 제2 경로 트리에 대응하는 제5 플로우 룰을 생성하고, 상기 제5 플로우 룰의 매칭 조건을 상기 제2 가상 식별자를 이용하여 설정할 수 있으며, 생성된 제4 플로우 룰과 상기 제5 플로우 룰을 상기 물리 스위치에 전송할 수 있다. In generating the flow rule, the controller may generate a fourth flow rule corresponding to the first path tree, and set the matching condition of the fourth flow rule using the first virtual identifier. Further, the controller can generate a fifth flow rule corresponding to the second path tree, and can set the matching condition of the fifth flow rule using the second virtual identifier, and the generated fourth flow rule and the fifth Flow rule to the physical switch.
위 실시 예에서 각각의 스위치는 임의의 컴퓨팅 노드 A에 패킷을 전송하는 플로우 엔트리를 플로우 테이블 내에 다수 개 포함할 수 있으며, 그 결과 복수 개의 패킷 목적지 호스트가 컴퓨팅 노드 A로 동일하더라도, 각 패킷은 서로 다른 경로를 이용하여 컴퓨팅 노드 A에 전송될 수 있다. In the above embodiment, each switch may include a plurality of flow entries in the flow table that transmit packets to any computing node A, so that even if a plurality of packet destination hosts are identical to computing node A, May be transmitted to computing node A using a different path.
따라서 하나의 컴퓨팅 노드(또는 가상 스위치)를 정점으로 하는 식별자를 여러개 부여하는 것은 다중 경로를 설정할 수 있음을 의미한다. 본 발명의 복수개 가상 식별자를 이용한 다중 경로 설정은 로드 밸런싱(load balancing) 또는 트래픽 스티어링(traffic steering)에 사용될 수 있으며, 다중 경로를 이용하면 효율적으로 링크를 사용할 수 있다. Therefore, assigning multiple identifiers with one computing node (or virtual switch) as a vertex means that multiple paths can be set. The multipath setting using the plurality of virtual identifiers of the present invention can be used for load balancing or traffic steering, and the multipath can efficiently use the link.
도 3을 이용하여 보다 구체적인 실시 예를 살펴본다. 예를 들어, 가상 스위치(200C)는 10.0.0.3을 목적지로 하는 패킷 A를 가상 머신으로부터 수신하면 패킷의 목적지 물리 주소를 컴퓨팅 노드(a:a:a:a:a:c)로 설정할 수 있다. 가상 스위치(200A)는 10.0.0.3을 목적지로 하는 패킷 B를 가상 머신으로부터 수신하면 패킷의 목적지 물리 주소를 컴퓨팅 노드(a:a:a:a:b:c)로 설정할 수 있다. 여기서 a:a:a:a:a:c와 a:a:a:a:b:c는 모두 컴퓨팅 노드(1000B)의 가상 식별자이다.A more specific embodiment will be described with reference to FIG. For example, when the virtual switch 200C receives a packet A having a destination of 10.0.0.3 from the virtual machine, it can set the destination physical address of the packet to the computing node a: a: a: a: a: c . The
패킷 A를 수신한 물리 스위치(100B)는 매칭 조건으로 목적지 물리 주소를 확인하고, 패킷 A의 물리 주소는 a:a:a:a:a:c이므로 1번 포트로 패킷을 출력할 수 있다. 패킷 B를 수신한 물리 스위치(100B)는 패킷 B의 물리 주소가 a:a:a:a:b:c 이므로, 패킷을 4번 포트로 출력할 수 있다. The
즉, 도 3의 예시에서 패킷 A는 실선에 대응되는 경로로 전송되며, 물리 스위치(100C)를 통해 a:a:a:a:a:c를 물리 주소로 하는 컴퓨팅 노드(1000B)에 도달한다. In other words, in the example of FIG. 3, the packet A is transmitted on the path corresponding to the solid line, and reaches the
패킷 B는 4번 포트를 거쳐 점선에 대응되는 경로를 따라 컴퓨팅 노드(1000B)로 전송된다. 컴퓨팅 노드(1000B)의 가상 스위치(200B)에 도착한 패킷A와 패킷 B는 둘 다 10.0.0.3을 목적지 논리 주소로 하므로, 가상 스위치(200B)는 패킷A와 패킷 B의 목적지 물리 주소를 목적지 가상 머신(300B)의 물리 주소로 변경한 후, 상기 목적지 가상 머신(300B)과 연결된 포트 2번으로 패킷을 출력할 수 있다. And the packet B is transmitted to the
도 5는 본 발명의 일 실시 예에 의한 컨트롤러(50)를 설명하기 위한 블록도이다. 도 5를 참조하면, 본 발명의 일 실시 예에 의한 컨트롤러(50)는 애플리케이션부(53), 통신부(55), 저장부(57)를 포함할 수 있으며, 애플리케이션부(53)는 가상 식별자 생성부(53-1), 경로 설정부(53-2), 플로우 룰 생성부(53-3)를 포함할 수 있으며, 를 더 포함할 수 있다. 5 is a block diagram for explaining a
애플리케이션부(53)는 컨트롤러(50)가 수행하는 각종 기능이 구현되는 영역으로, 전술한 네트워크 토폴로지 관리, 경로 관리 등을 수행하는 애플리케이션이 포함될 수 있다. The application unit 53 is an area in which various functions performed by the
가상 식별자 생성부(53-1)는 컴퓨팅 노드 또는 상기 가상 스위치에 하나 이상의 가상 식별자를 부여할 수 있다. 가상 식별자 생성부(53-1)는 SDN 제어 설정에 따라 컴퓨팅 노드 또는 가상 스위치에 부여되는 가상 식별자의 개수를 조절할 수 있다. The virtual identifier generating unit 53-1 may assign one or more virtual identifiers to the computing node or the virtual switch. The virtual identifier generating unit 53-1 may adjust the number of virtual identifiers assigned to the computing node or the virtual switch according to the SDN control setting.
경로 설정부(53-2)는 컴퓨팅 노드 또는 가상 스위치에 복수개의 가상 식별자가 부여된 경우, 가상 식별자 각각을 정점으로 하는 경로 트리를 복수개 생성할 수 있다. When a plurality of virtual identifiers are assigned to the computing node or the virtual switch, the path setting unit 53-2 may generate a plurality of path trees each having a virtual identifier as a vertex.
플로우 룰 생성부(53-3)은 가상 식별자를 이용하여 상기 물리 스위치에 전송되는 제1 플로우 룰의 매칭 조건을 설정하며, 컴퓨팅 노드 또는 가상 스위치에 복수개의 가상 식별자가 부여된 경우, 경로 설정부(53-2)에서 생성된 경로 트리 각각에 대응되는 플로우 룰을 생성할 수 있다. 플로우 룰 생성부(53-3)는 물리 스위치(100)에 전송되는 플로우 룰의 매칭 조건에는 가상 식별자를 사용하고, 가상 스위치(200)에 전송되는 플로우 룰의 매칭 조건에는 가상 머신(또는 호스트)의 실제 논리 주소를 사용할 수 있다. 또한 가상 스위치(200)에 전송되는 플로우 룰에는 패킷의 물리 주소를 변경하는 액션을 포함시킬 수 있으며, 이에 대한 설명은 전술한 바 있으므로 생략하기로 한다. The flow rule generation unit 53-3 sets the matching condition of the first flow rule transmitted to the physical switch using the virtual identifier, and when a plurality of virtual identifiers are assigned to the computing node or the virtual switch, It is possible to generate a flow rule corresponding to each of the path trees generated in the path tree 53-2. The flow rule generation unit 53-3 uses a virtual identifier for the matching condition of the flow rule transmitted to the physical switch 100 and uses the virtual machine as the matching condition of the flow rule transmitted to the
통신부(55)는 스위치(100, 200)와 통신할 수 있다. 통신부(55)는 물리 스위치(100)와 가상 스위치(200)에 각각에 대응되는 플로우 룰을 전송함으로써, 각 스위치가 플로우 룰에 따라 패킷을 전달하도록 한다. 통신부(55)는 보안 채널(Secure Channel)을 통해 스위치(100, 200)와 정보를 교환할 수 있으며, 스위치(100, 200)와 교환되는 정보는 암호화될 수 있다. The communication unit 55 can communicate with the
저장부(57)는 컨트롤러 애플리케이션의 상태와 애플리케이션의 운영에 필요한 정보, 컨트롤러(50)가 스위치(100, 200)에 전송한 플로우 룰, 스위치(100, 200)의 상태, 네트워크 토폴로지 정보 등 다양한 정보를 저장할 수 있다. 특히, 저장부(57)는 경로 설정부(53-2)의 경로 트리 생성을 위한 알고리즘을 저장할 수 있다. The storage unit 57 stores various information such as a state of the controller application and information necessary for operating the application, a flow rule transmitted by the
도 6을 참조하여 컨트롤러의 소프트웨어 정의 네트워킹 제어 방법을 다시 한번 정리하면, 컨트롤러는 컴퓨팅 노드 또는 가상 스위치에 가상 식별자를 부여하고(S100), 가상 식별자를 이용하여 물리 스위치에 전송되는 제1 플로우 룰을 생성할 수 있다(S200), 그리고 가상 머신의 논리 주소와 같은 가상 머신 식별자를 이용하여 가상 스위치에 전송되는 제2 플로우 룰을 생성할 수 있다. 컨트롤러는 단계 400에서 제1 플로우 룰을 물리 스위치에 전송하고, 제2 플로우 룰을 가상 스위치에 전송함으로써 가상 스위치와 물리 스위치를 계층화할 수 있다. 6, the controller assigns a virtual identifier to the computing node or virtual switch (S100), and uses the virtual identifier to determine a first flow rule to be transmitted to the physical switch (S200), and generate a second flow rule to be transmitted to the virtual switch using the same virtual machine identifier as the logical address of the virtual machine. The controller may layer the virtual switch and the physical switch by transmitting the first flow rule to the physical switch and transmitting the second flow rule to the virtual switch in step 400. [
전술한 컨트롤러의 소프트웨어 정의 네트워킹 제어 방법은 각 실시 예 중 어느 하나를 실행시키기 위하여 컴퓨터 판독 가능 매체에 저장된 컨트롤러 응용 프로그램을 통해 컨트롤러(50)에서 구현될 수 있다. The software defined networking control method of the controller described above may be implemented in the
본 명세서에서 생략된 일부 실시 예는 그 실시 주체가 동일한 경우 동일하게 적용 가능하다. 또한, 전술한 본 발명은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.Some embodiments omitted in this specification are equally applicable if their implementation subject is the same. It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to be exemplary and explanatory only and are not restrictive of the invention, The present invention is not limited to the drawings.
50: 컨트롤러
100: 물리 스위치
200: 가상 스위치(소프트웨어 스위치)
300: 가상 머신(호스트)
1000: 컴퓨팅 노드(서버)
50: Controller
100: physical switch
200: Virtual switch (software switch)
300: Virtual machine (host)
1000: Computing node (server)
Claims (5)
상기 컴퓨팅 노드 또는 상기 가상 스위치에 하나 이상의 가상 식별자를 부여하는 단계;
상기 가상 식별자가 부여된 제1 필드 값을 매칭 조건으로 하는 플로우 룰을 생성하여 상기 물리 스위치에 전송하는 단계;
목적지 가상 머신으로 전송되는 패킷의 제1 필드 값을 상기 목적지 가상 머신의 실제 제1 필드 정보로 설정하는 플로우 룰을 생성하여 상기 목적지 가상 머신에 연결된 제1 가상 스위치에 전송하는 단계;
상기 패킷의 제1 필드 값을 상기 제1 가상 스위치 또는 상기 제1 가상 스위치를 포함하는 컴퓨팅 노드의 가상 식별자로 설정하는 액션을 포함하는 플로우 룰을 생성하여 상기 목적지 가상 머신에 연결되지 않은 제2 가상 스위치에 전송하는 단계;
상기 제1 필드는 패킷 전송에 영향을 미치지 않는 필드인 소프트웨어 정의 네트워킹 제어 방법.
A method for controlling software defined networking comprising a computing node and a physical switch, the controller including a virtual switch and a virtual machine,
Assigning at least one virtual identifier to the computing node or the virtual switch;
Generating a flow rule having the first field value to which the virtual identifier is assigned as a matching condition, and transmitting the flow rule to the physical switch;
Generating a flow rule for setting a first field value of a packet to be transmitted to a destination virtual machine as actual first field information of the destination virtual machine and transmitting the flow rule to a first virtual switch connected to the destination virtual machine;
Generating a flow rule including an action of setting a first field value of the packet to a virtual identifier of the computing node including the first virtual switch or the first virtual switch, Transmitting to the switch;
Wherein the first field is a field that does not affect packet transmission.
상기 컴퓨팅 노드 또는 상기 가상 스위치에 복수개의 가상 식별자가 부여된 경우, 상기 복수개의 가상 식별자 중 하나인 제1 가상 식별자를 정점으로 하는 제1 경로 트리와 다른 하나인 제2 가상 식별자를 정점으로 하는 제2 경로 트리를 생성하는 단계를 더 포함하며,
상기 플로우 룰을 생성하여 상기 물리 스위치에 전송하는 단계는,
상기 제1 경로 트리에 대응하는 제1 플로우 룰을 생성하고, 상기 제1 플로우 룰의 매칭 조건을 상기 제1 가상 식별자를 이용하여 설정하는 단계;
상기 제2 경로 트리에 대응하는 제2 플로우 룰을 생성하고, 상기 제2 플로우 룰의 매칭 조건을 상기 제2 가상 식별자를 이용하여 설정하는 단계;
상기 제1 플로우 룰과 상기 제2 플로우 룰을 상기 물리 스위치에 전송하는 단계를 포함하고,
상기 제1 경로 트리와 상기 제2 경로 트리는 서로 다른 경로를 나타내는 소프트웨어 정의 네트워킹 제어 방법.
The method according to claim 1,
Wherein when a plurality of virtual identifiers are assigned to the computing node or the virtual switch, a first path tree having a first virtual identifier, which is one of the plurality of virtual identifiers, as a vertex, and a second virtual identifier, 2 < / RTI > path tree,
Wherein the step of generating and transmitting the flow rule to the physical switch comprises:
Generating a first flow rule corresponding to the first path tree and setting a matching condition of the first flow rule using the first virtual identifier;
Generating a second flow rule corresponding to the second path tree and setting a matching condition of the second flow rule using the second virtual identifier;
And transmitting the first flow rule and the second flow rule to the physical switch,
Wherein the first path tree and the second path tree represent different paths.
상기 가상 식별자가 상기 컴퓨팅 노드의 물리 주소로 부여된 경우,
상기 제1 가상 스위치에 전송되는 플로우 룰은 상기 목적지 가상 머신으로 전송되는 패킷의 목적지 물리 주소 필드 값을 상기 목적지 가상 머신의 실제 물리 주소로 설정하는 액션을 포함하고,
상기 제2 가상 스위치에 전송되는 플로우 룰은 상기 패킷의 목적지 물리 주소 필드 값을 상기 가상 식별자로 설정하는 액션을 포함하는 소프트웨어 정의 네트워킹 제어 방법.
The method according to claim 1,
If the virtual identifier is assigned to the physical address of the computing node,
Wherein the flow rule transmitted to the first virtual switch includes an action of setting a destination physical address field value of a packet transmitted to the destination virtual machine to an actual physical address of the destination virtual machine,
Wherein the flow rule transmitted to the second virtual switch includes an action to set the destination physical address field value of the packet to the virtual identifier.
플로우 룰을 생성하는 애플리케이션부;
제1, 제2 플로우 룰을 상기 물리 스위치에 전송하고, 제3 플로우 룰을 목적지 가상 머신에 연결된 제1 가상 스위치에 전송하며, 제4 플로우 룰을 상기 목적지 가상 머신에 연결되지 않은 제2 가상 스위치에 전송하는 통신부;
상기 컴퓨팅 노드 및 상기 물리 스위치의 정보를 저장하는 저장부를 포함하며,
상기 애플리케이션부는
상기 컴퓨팅 노드 또는 상기 가상 스위치에 하나 이상의 가상 식별자를 부여하는 가상 식별자 생성부;
상기 가상 식별자를 이용하여 플로우 룰을 생성하는 플로우 룰 생성부를 포함하며,
상기 플로우 룰 생성부는
상기 가상 식별자 생성부가 상기 컴퓨팅 노드 또는 상기 가상 스위치에 복수개의 가상 식별자를 부여한 경우,
상기 복수개의 가상 식별자 중 제1 가상 식별자를 정점으로 하는 제1 경로 트리와 제2 가상 식별자를 정점으로 하는 제2 경로 트리를 생성하고,
상기 제1, 2 경로 트리에 각각 대응하는 상기 제1, 2 플로우 룰을 생성하고,
상기 제1, 2 플로우 룰의 매칭 조건을 각각 상기 제1, 2 가상 식별자를 이용하여 설정하고,
목적지 가상 머신으로 전송되는 패킷의 제1 필드 값을 상기 목적지 가상 머신의 실제 제1 필드 정보로 설정하는 제3 플로우 룰을 생성하고,
상기 패킷의 제1 필드 값을 상기 제1 가상 스위치 또는 상기 제1 가상 스위치를 포함하는 컴퓨팅 노드의 가상 식별자로 설정하는 액션을 포함하는 제4 플로우 룰을 생성하고,
상기 제1 필드는 패킷 전송에 영향을 미치지 않는 필드이며, 상기 제1 경로 트리와 상기 제2 경로 트리는 서로 다른 경로를 나타내는 컨트롤러.
1. A controller for controlling software defined networking comprising a computing node and a physical switch comprising a virtual switch and a virtual machine,
An application unit for generating a flow rule;
Sending a first flow rule to the physical switch, sending a third flow rule to a first virtual switch connected to the destination virtual machine, sending a fourth flow rule to a second virtual switch not connected to the destination virtual machine, To the communication unit;
And a storage unit for storing information of the computing node and the physical switch,
The application unit
A virtual identifier generating unit for assigning one or more virtual identifiers to the computing node or the virtual switch;
And a flow rule generation unit for generating a flow rule using the virtual identifier,
The flow rule generation unit
When the virtual identifier generating unit assigns a plurality of virtual identifiers to the computing node or the virtual switch,
Generating a first path tree having a first virtual identifier as a vertex and a second path tree having a second virtual identifier as a vertex among the plurality of virtual identifiers,
Generating the first and second flow rules respectively corresponding to the first and second path trees,
The matching conditions of the first and second flow rules are set using the first and second virtual identifiers, respectively,
Generating a third flow rule for setting a first field value of a packet transmitted to a destination virtual machine to actual first field information of the destination virtual machine,
Generating a fourth flow rule including an action of setting a first field value of the packet to a virtual identifier of the computing node including the first virtual switch or the first virtual switch,
Wherein the first field is a field that does not affect packet transmission, and wherein the first path tree and the second path tree represent different paths.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170156500A KR102001487B1 (en) | 2017-11-22 | 2017-11-22 | Method for controlling software defined networking and computing device performing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170156500A KR102001487B1 (en) | 2017-11-22 | 2017-11-22 | Method for controlling software defined networking and computing device performing the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190059004A KR20190059004A (en) | 2019-05-30 |
KR102001487B1 true KR102001487B1 (en) | 2019-07-17 |
Family
ID=66675709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170156500A KR102001487B1 (en) | 2017-11-22 | 2017-11-22 | Method for controlling software defined networking and computing device performing the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102001487B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102346417B1 (en) * | 2021-09-17 | 2022-01-04 | 한화시스템(주) | Method for selecting leader controller node in decentralized software-defined network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101751891B1 (en) * | 2016-05-04 | 2017-07-11 | 성균관대학교산학협력단 | Controller, apparatus and method, for topology discovery and peer detection based on openflow in openflow wireless mesh network environment |
KR101797112B1 (en) * | 2016-01-25 | 2017-11-15 | 쿨클라우드(주) | Manegement system for container network |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5585664B2 (en) * | 2011-01-13 | 2014-09-10 | 日本電気株式会社 | Network system and route control method |
-
2017
- 2017-11-22 KR KR1020170156500A patent/KR102001487B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101797112B1 (en) * | 2016-01-25 | 2017-11-15 | 쿨클라우드(주) | Manegement system for container network |
KR101751891B1 (en) * | 2016-05-04 | 2017-07-11 | 성균관대학교산학협력단 | Controller, apparatus and method, for topology discovery and peer detection based on openflow in openflow wireless mesh network environment |
Also Published As
Publication number | Publication date |
---|---|
KR20190059004A (en) | 2019-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7417825B2 (en) | slice-based routing | |
JP6445015B2 (en) | System and method for providing data services in engineered systems for execution of middleware and applications | |
US20180324274A1 (en) | Information system, control apparatus, method of providing virtual network, and program | |
US8873563B2 (en) | Techniques for next-hop optimization | |
CN111147372B (en) | Downlink message sending and forwarding method and device | |
CN104821890A (en) | Realization method for OpenFlow multi-level flow tables based on ordinary switch chip | |
JP6437693B2 (en) | Multicast data packet forwarding | |
US10911354B2 (en) | Packet processing method and system, and device | |
JP6488426B2 (en) | Multicast data packet forwarding | |
WO2018036254A1 (en) | Packet forwarding method and device | |
EP3136662B1 (en) | Construction method, device and system for multi-path forwarding rules | |
JP6529660B2 (en) | Multicast data packet forwarding | |
CN109547354B (en) | Load balancing method, device, system, core layer switch and storage medium | |
US9800508B2 (en) | System and method of flow shaping to reduce impact of incast communications | |
JP2018518925A (en) | Packet forwarding | |
JPWO2014112616A1 (en) | Control device, communication device, communication system, switch control method and program | |
US20140040477A1 (en) | Connection mesh in mirroring asymmetric clustered multiprocessor systems | |
WO2014050091A1 (en) | Communication system, communication method, information processing apparatus, communication control method, and program | |
CN110290072B (en) | Flow control method, flow control device, network equipment and storage medium | |
US10581738B2 (en) | Efficient inter-VLAN routing in openflow networks | |
US11563698B2 (en) | Packet value based packet processing | |
US20200028779A1 (en) | Packet processing method and apparatus | |
CN110022263B (en) | Data transmission method and related device | |
KR102001487B1 (en) | Method for controlling software defined networking and computing device performing the same | |
WO2019084805A1 (en) | Method and apparatus for distributing message |
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 |