KR20180058594A - Software Defined Network/Test Access Port Application - Google Patents
Software Defined Network/Test Access Port Application Download PDFInfo
- Publication number
- KR20180058594A KR20180058594A KR1020160157792A KR20160157792A KR20180058594A KR 20180058594 A KR20180058594 A KR 20180058594A KR 1020160157792 A KR1020160157792 A KR 1020160157792A KR 20160157792 A KR20160157792 A KR 20160157792A KR 20180058594 A KR20180058594 A KR 20180058594A
- Authority
- KR
- South Korea
- Prior art keywords
- flow
- legacy
- switch
- packet
- information
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- 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/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- 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/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
본 발명은 SDN(Software Defined Network) 제어기, SDN 화이트박스 스위치 및 SDN/TAP(Test Access Port) 어플리케이션 및 이를 모두 포함하는 시스템에 관한 것이다.The present invention relates to a software defined network (SDN) controller, an SDN white-box switch and an SDN / TAP (Test Access Port) application and a system including both.
TAP은 네트워크 상에서 디버깅, 패턴분석, 데이터분석, 데이터센터 모니터링, 무단침입 감지, 네트워크 및 어플리케이션 성능 측정, 보안 모니터링, 데이터 누설 방지 시스템, 그리고 SLA(Service Level Agreement) 등의 기능을 제공하는 것으로, 종래에는 이러한 기능들을 사용하기 위해서는 추가적인 기기를 네트워크 상에 구비해야 하는 문제점이 있었다.TAP provides functions such as debugging, pattern analysis, data analysis, data center monitoring, trespass detection, network and application performance measurement, security monitoring, data leakage prevention system and SLA (Service Level Agreement) There is a problem in that additional devices must be provided on the network in order to use these functions.
현재 IPS(Intrusion prevention system)/IDS(Detection)등의 분석시스템 역시 많은 시스템이 NFV(Network Function Virtualization)화 되고 있고 이에 따라서 문제를 해결하기 위한 방법으로 차세대 네트워크인 SDN(Software Defined Network)과 OpenFlow를 이용함으로 위와 같은 문제점을 해결하려는 시도가 존재하였으나, 이러한 SDN 장비는 대부분의 소프트웨어와 동일하게 하나의 패키징된 소프트웨어는 내부 모듈끼리 의존적으로 작동하는 구조로 SDN 제어기 는 제조사에 종속되는 문제점이 있었다.Many analysis systems such as Intrusion Prevention System (IDS) and IDS (Detection) are now becoming NFV (Network Function Virtualization). As a solution to this problem, SDN (Software Defined Network) and OpenFlow There is an attempt to solve the above problems. However, there is a problem that the SDN controller is dependent on the manufacturer because one SDN device operates in the same manner as most software, and one packaged software operates dependently on the internal modules.
따라서, 특정 SDN 장비에 종속되지 않는 SDN 상의 TAP 솔루션의 개발이 요구되고 있다.Therefore, the development of a TAP solution on an SDN that is not dependent on a specific SDN equipment is required.
본 발명은 특정 SDN 장비에 종속되지 않는 SDN 상의 TAP 솔루션을 제공하고자 한다.The present invention seeks to provide a TAP solution on an SDN that is not dependent on a specific SDN equipment.
본 발명에 따른 SDN (Software Defined Network) 제어기는 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치가 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN제어기로서,A SDN controller according to the present invention is an SDN controller for acquiring information of a plurality of open flow edge switches belonging to a switch group, wherein a plurality of open flow edge switches connected to a plurality of legacy networks,
상기 취득된 복수의 오픈플로우 에지 스위치의 정보를 기초로, 상기 복수의 레거시 네트워크가 상기 스위치 그룹의 적어도 일부를 레거시 라우터로 취급하도록 적어도 하나의 가상 라우터로 생성하고, 상기 SDN 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 레거시 라우팅 컨테이너가 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하며,The plurality of legacy networks generate at least one virtual router so that at least a part of the switch group is treated as a legacy router based on the acquired information of the plurality of open flow edge switches, A legacy routing container for generating legacy routing information based on the information of the at least one virtual router maps a plurality of network devices connected to the plurality of open flow switches to external network information directly connected to the virtual router,
TAP (Test Access Port) 어플리케이션에서 호출된 프로시져에 따라 상기 상기 맵핑된 정보가 변경시키는 것이다.And changes the mapped information according to a procedure called in a TAP (Test Access Port) application.
또한, 본 발명에 따른 화이트박스 스위치는 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치가 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 제공하는 화이트박스 스위치로서,Further, a white-box switch according to the present invention is a white-box switch in which a plurality of open-flow edge switches connected to a plurality of legacy networks provide information of the plurality of open-flow edge switches belonging to a switch group,
상기 취득된 복수의 오픈플로우 에지 스위치의 정보를 기초로, 상기 복수의 레거시 네트워크가 상기 스위치 그룹의 적어도 일부를 레거시 라우터로 취급하도록 적어도 하나의 가상 라우터로 생성하고, 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 레거시 라우팅 컨테이너가 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하며,The plurality of legacy networks generate at least one virtual router so that at least a part of the switch group is treated as a legacy router based on the acquired information of the plurality of open flow edge switches, A legacy routing container for creating legacy routing information for a flow inquiry message of an SDN controller that obtains information based on information of the at least one virtual router is provided to a plurality of network devices connected to the plurality of open flow switches, To the external network information directly connected to the network,
TAP (Test Access Port) 어플리케이션에서 호출된 프로시져에 따라 상기 상기 맵핑된 정보가 변경시키는 것이다.And changes the mapped information according to a procedure called in a TAP (Test Access Port) application.
또한, 본 발명에 따른 SDN/TAP (Software Defined Network/Test Access Port) 어플리케이션은 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치가 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN/TAP) 어플리케이션으로서,In addition, the SDN / TAP (Software Defined Network / Test Access Port) application according to the present invention may include a plurality of open flow edge switches connected to a plurality of legacy networks for receiving information of the plurality of open flow edge switches belonging to a switch group As an SDN / TAP application to acquire,
상기 취득된 복수의 오픈플로우 에지 스위치의 정보를 기초로, 상기 복수의 레거시 네트워크가 상기 스위치 그룹의 적어도 일부를 레거시 라우터로 취급하도록 적어도 하나의 가상 라우터로 생성하고, 상기 SDN 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 레거시 라우팅 컨테이너가 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하며,The plurality of legacy networks generate at least one virtual router so that at least a part of the switch group is treated as a legacy router based on the acquired information of the plurality of open flow edge switches, A legacy routing container for generating legacy routing information based on the information of the at least one virtual router maps a plurality of network devices connected to the plurality of open flow switches to external network information directly connected to the virtual router,
프로시져를 호출시켜 상기 맵핑된 정보를 변경시키는 것이다.And calls the procedure to change the mapped information.
본 발명에 따른 SDN(Software Defined Network) 제어기, SDN 화이트박스 스위치 및 SDN/TAP(Test Access Port) 및 이를 모두 포함하는 시스템은 TAP 어플리케이션이 SDN 제어기를 프로시져로 제어함으로써, 특정 SDN 제어기에 종속되지 않고 TAP 기능을 수행할 수 있으며, 복수의 네트워크 디바이스 및 스위치를 중앙집중적으로 관리할 수 있다.A system comprising a Software Defined Network (SDN) controller, an SDN white box switch, and an SDN / Test Access Port (SDN / TAP) according to the present invention and a system including both of them can be controlled by a TAP application as an SDN controller, TAP functions can be performed, and a plurality of network devices and switches can be centrally managed.
도 1은 본 발명의 일실시예에 따른 SDN 네트워크 시스템의 블록 구성도(block diagram),
도 2는 본 발명의 다른 실시예에 따른 SDN 네트워크 시스템의 블록 구성도,
도 3은 본 발명의 또 다른 실시예에 따른 SDN 네트워크 시스템의 블록 구성도,
도 4는 도 1 내지 3의 네트워크 시스템의 SDN 제어기의 블록 구성도,
도 5는 도 1 내지 3의 네트워크 시스템의 스위치의 블록 구성도,
도 6은 도 1 내지 3의 네트워크 시스템의 TAP 어플리케이션의 블록 구성도,
도 7은 플로우 엔트리의 필드 테이블 및 플로우 엔트리에 따른 동작 종류를 나타내는 동작 테이블,
도 8은 그룹 및 미터 테이블의 필드 테이블,
도 9은 본 발명의 일 실시예에 따른 통합 라우팅 시스템을 포함하는 네트워크 시스템의 블록 구성도,
도 10은 도 9의 네트워크 시스템의 가상화한 블록 구성도,
도 11은 본 발명의 다른 실시예에 따른 SDN 제어기의 블록 구성도,
도 12는 본 발명의 일 실시예에 따른 레거시 라우팅 컨테어너의 블록 구성도,
도 13은 도 9의 SDN 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도,
도 14는 본 발명의 일 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도,
도 15는 본 발명의 다른 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 및
도 16은 본 발명의 일 실시예에 따른 플로우 테이블이다.1 is a block diagram of an SDN network system according to an embodiment of the present invention;
2 is a block diagram of an SDN network system according to another embodiment of the present invention;
3 is a block diagram of an SDN network system according to another embodiment of the present invention;
4 is a block diagram of an SDN controller of the network system of Figs.
Fig. 5 is a block diagram of a switch of the network system of Figs. 1 to 3,
6 is a block diagram of a TAP application of the network system of Figs.
7 shows an operation table indicating the type of operation according to the field table and the flow entry of the flow entry,
Figure 8 shows the field tables of the group and metric tables,
9 is a block diagram of a network system including an integrated routing system according to an embodiment of the present invention;
10 is a virtualized block diagram of the network system of FIG. 9,
11 is a block diagram of an SDN controller according to another embodiment of the present invention.
12 is a block diagram of a legacy routing container according to an embodiment of the present invention;
FIG. 13 is a flow chart of a method of determining whether or not legacy routing is performed for the flow of the SDN controller of FIG. 9;
FIG. 14 is a signal flow diagram according to an integrated routing method according to an embodiment of the present invention;
15 is a signal flow diagram according to an integrated routing method according to another embodiment of the present invention, and Fig.
16 is a flow table according to an embodiment of the present invention.
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.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. And / or < / RTI > 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.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 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.
도 1은 본 발명의 일실시예에 따른 SDN 네트워크 시스템의 블록 구성도(block diagram), 도 4는 도 1의 네트워크 시스템의 SDN 제어기의 블록 구성도, 도 5는 도 1의 네트워크 시스템의 스위치의 블록 구성도, 도 7은 플로우 엔트리의 필드 테이블 및 플로우 엔트리에 따른 동작 종류를 나타내는 동작 테이블, 도 8은 그룹 및 미터 테이블의 필드 테이블이다.FIG. 1 is a block diagram of an SDN network system according to an embodiment of the present invention. FIG. 4 is a block diagram of an SDN controller of the network system of FIG. 1. FIG. Fig. 7 is an operation table showing a field table of a flow entry and an operation type according to a flow entry, and Fig. 8 is a field table of a group and a meter table.
도 1을 참조하면, 본 발명에 일 실시예에 따른 SDN 네트워크 시스템은 SDN 제어기(contoller)(10), 복수의 스위치(20) 및 복수의 네트워크 디바이스(30)를 포함할 수 있다.Referring to FIG. 1, an SDN network system according to an embodiment of the present invention may include an
네트워크 디바이스(30)는 데이터나 정보를 주고 받고자 하는 사용자 단말 장치, 또는 특정 기능을 수행하는 물리 또는 가상 장치를 포함할 수 있다. 하드웨어 관점에서, 네트워크 디바이스(30)는 PC, 클라이언트 단말기, 서버, 워크스테이션, 수퍼컴퓨터, 이동통신 단말기, 스마트폰, 스마트패드 등이 있을 수 있다. 또한 네트워크 디바이스(30)는 물리 장치 상에 생성된 가상 머신(VM)일 수 있다. The
네트워크 디바이스(30)는 네트워크 상의 여러가지 기능을 수행하는 네트워크 기능(network function)으로 지칭될 수 있다. 네트워크 기능은 안티(anti) DDoS, 침입 감지/차단(IDS/IPS), 통합 보안 서비스, 가상 사설망 서비스, 안티 바이러스, 안티 스팸, 보안 서비스, 접근관리 서비스, 방화벽, 로드 밸런싱, QoS, 비디오 최적화 등을 포함할 수 있다. 이러한 네트워크 기능은 가상화될 수 있다.The
가상화된 네트워크 기능으로 ETSI(유럽전기통신표준협회)에서 발행한 NFV 관련 백서(비특허문헌 3 참조)에서 정의된 네트워크 기능 가상화(Network Function Virtualiztion; NFV)가 있다. 본 명세서에서 네트워크 기능(NF)은 네트워크 기능 가상화(NFV)와 혼용하여 사용될 수 있다. NFV는 테넌트(tenant)별 필요한 L4-7 서비스 연결을 동적으로 생성하여 필요한 네트워크 기능을 제공하거나, DDoS 공격의 경우 정책 기반으로 필요한 방화벽, IPS 및 DPI 기능 등을 일련의 서비스 체이닝으로 빠르게 제공되는데 이용될 수 있다. 또한 NFV는 방화벽이나 IDS/IPS를 쉽게 온오프 할 수 있으며, 자동으로 프로비저닝(provisioning)할 수 있다. NFV는 오버 프로비저닝의 필요성도 줄일 수 있다.There is a network function virtualization (NFV) defined in a white paper on NFV issued by the European Telecommunications Standards Institute (ETSI) (see non-patent reference 3) as a virtualized network function. 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.
SDN 제어기(controller)(10)는 SDN 시스템을 제어하는 일종의 지휘 컴퓨터로서, 다양하고 복잡한 기능들, 예를 들어, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. SDN 제어기(10)는 하위 계층의 복수의 스위치(20)에서 발생하는 패킷의 플로우를 정의할 수 있다. SDN 제어기(10)는 네트워크 정책 상 허용되는 플로우에 대해 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로(데이터 경로)를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. SDN 제어기(10)는 특정 프로토콜, 예를 들어, 오픈플로우 프로토콜을 이용하여 스위치(20)와 통신할 수 있다. SDN 제어기(10)와 스위치(20)의 통신 채널은 SSL에 의해 암호화 될 수 있다.The SDN
도 2를 참조하면, 복수의 SDN 제어기(10)가 단일의 TAP 어플리케이션(50)에 연결될 수 있다.Referring to FIG. 2, a plurality of
도 3을 참조하면, TAP 어플리케이션(50)에 연결된 화이트박스 스위치(40)가 많은 수의 네트워크 디바이스가 네트워크를 구성하여 많은 양의 트래픽이 발생되는 데이터 센터(60)에 중계 서버(70)를 통하여 연결되며, 중계 서버(70)에 연결된 트래픽 분석 어플리케이션(80)은 데이터 센터(60) 사이의 트래픽을 분석할 수 있다.Referring to FIG. 3, a
도 4를 참조하면, SDN 제어기(10)는 스위치(20)와 통신하는 스위치 통신부(110), 제어부(100), 및 저장부(190)를 포함할 수 있다.4, the
저장부(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)는 통상적으로 상기 각 부의 동작을 제어하여 SDN 제어기(10)의 전반적인 동작을 제어할 수 있다. 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), API 서버 모듈(136) 및 API 파서 모듈(137) 및 메시지 관리 모듈(130)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다.The controller 100 may control the overall operation of the
토폴로지 관리 모듈(120)은 스위치 통신부(110)를 통하여 수집된 스위치(20)의 접속 관계를 기초로 네트워크 토폴로지 정보를 구축 및 관리 할 수 있다. 네트워크 토폴로지 정보는 스위치들 사이의 토폴로지 및 각 스위치에 연결되어 있는 네트워크 디바이스 토폴로지를 포함할 수 있다.The topology management module 120 can construct and manage network topology information based on the connection relationship of the
경로 계산 모듈(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 by 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
API 서버 모듈(136)은 맵핑된 네트워크 디바이스의 정보를 변경하는 프로시져에 따른 작업을 수행할 수 있다.The
API 파서 모듈(137)은 맵핑된 네트워크 디바이스의 정보를 변경하는 프로시져를 해석할 수 있다.The
메시지 관리 모듈(130)은 스위치 통신부(110)를 통해 수신한 메시지를 해석하거나, 스위치 통신부(110)를 통해 스위치로 전송되는 후술할 SDN 제어기-스위치 메시지를 생성할 수 있다. SDN 제어기-스위치 메시지 중 하나인 상태 변경 메시지는 엔트리 관리 모듈(135)에 따른 엔트리 또는 엔트리 DB(191)에 저장된 엔트리에 기초하여 생성될 수 있다.The message management module 130 may interpret the message received through the switch communication unit 110 or may generate an SDN 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 SDN controller-switch messages, may be generated based on the entry according to the entry management module 135 or the entry stored in the entry DB 191. [
스위치(20)는 오픈플로우 프로토콜을 지원하는 물리적인 스위치 또는 가상 스위치일 수 있다. 스위치(20)는 수신한 패킷을 처리하여, 네트워크 디바이스(30) 사이의 플로우를 중계할 수 있다. 이를 위해 스위치(20)는 하나의 플로우 테이블 또는 비특허문헌 1에 상술되어 있는 파이프라인(pipeline) 처리를 위해 다중 플로우 테이블을 구비할 수 있다.The
플로우 테이블은 네트워크 디바이스(30)의 플로우를 어떻게 처리할 지의 규칙을 정의한 플로우 엔트리를 포함할 수 있다.The flow table may include a flow entry defining rules for how to handle the flow of
플로우(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.
스위치(20)는 다중 스위치의 조합에 따른 플로우의 입구 및 출구 측 에지 스위치(edge switch)(ingress switch and egress switch)와 에지 스위치 사이의 코어 스위치(core switch)로 구분될 수 있다.The
도 5를 참조하면, 스위치(20)는 다른 스위치 및/또는 네트워크 디바이스와 통신하는 포트부(205), SDN 제어기(10)와 통신하는 SDN 제어기 통신부(210), 스위치 제어부(200), 및 저장부(290)를 포함할 수 있다.5, the
포트부(205)는 스위치 또는 네트워크 디바이스에서 유출입되는 한 쌍의 포트를 다수 구비할 수 있다. 한 쌍의 포트는 하나의 포트로 구현될 수 있다.The port unit 205 may include a plurality of pairs of ports that are flown out from a switch or a network device. A pair of ports can be implemented as one port.
저장부(290)는 스위치 제어부(210)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부(290)는 입력되거나 출력되는 데이터들(패킷, 메시지 등)을 임시 저장을 위한 기능을 수행할 수 있다. 저장부(290)는 플로우 테이블, 그룹 테이블, 및 미터 테이블 등의 테이블(291)을 구비할 수 있다. 테이블(230) 또는 테이블의 엔트리는 SDN 제어기(10)에 의해 추가, 수정, 삭제될 수 있다. 테이블 엔트리는 자체적으로 파기될 수 있다.The storage unit 290 may store a program for processing and controlling the switch control unit 210. [ 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 by the
도 6을 참조하면, TAP 어플리케이션(50)은 제어부(500), SDN 제어기(10)와 통신하는 통신부(510), 및 저장부(590)를 포함할 수 있다.6, the
제어부(500)는 레이어 필터 모듈(521), 정책 관리 모듈(522), 포트 관리 모듈(523), API 서버 모듈(536), 및 API 파서 모듈(537)을 포함할 수 있다.The control unit 500 may include a layer filter module 521, a policy management module 522, a port management module 523, an
저장부(590)는 엔트리 DB(591), 포트 DB(592), 필터 DB(593), 및 정책 DB(594)를 포함할 수 있다.The storage unit 590 may include an entry DB 591, a port DB 592, a filter DB 593, and a policy DB 594.
플로우 테이블은 오픈플로우의 파이프라인(pipeline)을 처리하기 위해 다중 플로우 테이블로 구성될 수 있다. 도 7을 참조하면, 플로우 테이블의 플로우 엔트리는 패킷과 매치하는 조건(대조 규칙)을 기술한 매치 필드(match fields), 우선 순위(priority), 매치되는 패킷이 있는 경우 업데이트되는 카운터(counters), 플로우 엔트리에 매치되는 패킷이 있으면 발생하는 다양한 액션들의 집합인 인스트럭션(instruction), 스위치에서 파기될 시간을 기술하는 타임아웃(timeouts), SDN 제어기에 의해 선택되어지는 오파큐(opaque) 타입으로, SDN 제어기에 의해 플로우 통계, 플로우 변경, 및 플로우 삭제를 필터하기 위해 사용될 수 있으며, 패킷 처리시 사용되지 않는 쿠키(cookie) 등의 튜플(tuple)을 포함할 수 있다. 인스트럭션(instruction)은 다른 플로우 테이블로 패킷을 전달하는 것과 같은 파이프라인 프로세싱의 변경할 수 있다. 또한 인스트럭션은 액션 셋(action set)에 액션을 더하는 액션(action)들의 집합, 또는 패킷에 바로 적용하기 위한 액션들의 리스트를 포함할 수 있다. 액션(action)은 특정 포트로 패킷을 전송하거나, TTL 필드를 감소시키는 것과 같이 패킷을 수정하는 작업을 의미한다. 액션은 플로우 엔트리와 연관된 인스트럭션 집합의 일부 또는 그룹 엔트리와 연관된 액션 버킷에 속할 수 있다. 액션 셋(action set)은 각 테이블에서 지시된 액션이 누적된 집합을 의미한다. 액션 셋은 매치되는 테이블이 없을 때 수행될 수 있다. 도 8은 플로우 엔트리에 의한 여러 패킷 처리를 예시한다.The flow table can be composed of multiple flow tables to handle the pipeline of open flows. Referring to FIG. 7, a flow entry of a flow table includes match fields describing conditions (matching rules) that 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 by the switch, an opaque type that is selected by the SDN controller, May be used by the controller to filter flow statistics, flow changes, and flow deletes, and may include tuples such as cookies that are not used in packet processing. 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 is an operation 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. FIG. 8 illustrates various packet processing by a flow entry.
파이프라인(pipleline)은 패킷과 플로우 테이블 사이의 일련의 패킷 처리 과정을 의미한다. 스위치(20)에 패킷이 유입되면, 스위치(20)는 첫번째 플로우 테이블의 우선 순위가 높은 순서대로 패킷과 매칭되는 플로우 엔트리를 탐색한다. 매칭이 되면 해당 엔트리의 인스트럭션을 수행한다. 인스트럭션은 매칭되면 바로 수행하는 명령(apply-action), 액션 셋의 내용을 지우거나 추가/수정하는 명령(clear-action; write-action), 메타데이터(metadata) 수정 명령(write-metadata), 지정된 테이블로 메타데이터와 함께 패킷을 이동시키는 고우투 명령(goto-table) 등이 있다. 패킷과 매칭되는 플로우 엔트리가 없는 경우, 테이블 설정에 따라 패킷을 폐기(drop)하거나 SDN 제어기(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
그룹 테이블은 그룹 엔트리들을 포함할 수 있다. 그룹 테이블은 플로우 엔트리에 의해 지시되어 추가적인 포워딩 방법들을 제시할 수 있다. 도 8(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. 8A, 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)를 측정 및 제어할 수 있는 일종의 스위치 요소이다. 도 8(b)를 참조하면, 미터 테이블(meter table)은 미터를 식별하는 미터 식별자(meter identifier), 밴드(band)에 지정된 속도와 패킷 동작 방법을 나타내는 미터 밴드(meter bands), 및 패킷이 미터에서 동작될 때 업데이트되는 카운터(counters) 필드들로 구성된다. 미터 밴드(meter bands)는 패킷이 어떻게 처리되는 지를 나타내는 밴드 타입(band type), 미터에 의해 미터 밴드를 선택하는데 사용되는 레이트(rate), 미터 밴드에 의해 패킷들이 처리될 때 업데이트되는 카운터(counters), 및 선택적인 아규먼트(argument)를 가지는 배드 타입들인 특정 아규먼트 타입(type specific argument)과 같은 필드들로 구성될 수 있다.The meter table is made up 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. 8 (b), a meter table includes a meter identifier for identifying a meter, a speed 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.
스위치 제어부(210)는 통상적으로 상기 각 부의 동작을 제어하여 스위치(200)의 전반적인 동작을 제어할 수 있다. 제어부(210)는 테이블(291)을 관리하는 테이블 관리 모듈(240), 플로우 검색 모듈(220), 플로우 처리 모듈(230), 및 패킷 처리 모듈(235)를 포함할 수 있다. 각 모듈은 제어부(110) 내에 하드웨어로 구성될 수 있고, 제어부(110)와 별개의 소프트웨어로 구성될 수도 있다.The switch control unit 210 can control the overall operation of the switch 200 by controlling the operations of the respective units. The control unit 210 may include a table management module 240 that manages the table 291, a
테이블 관리 모듈(240)은 SDN 제어기 통신부(210)를 통해 SDN 제어기(10)로부터 수신한 엔트리를 적절한 테이블에 추가하거나, 타임 아웃(time out)된 엔트리를 주기적으로 제거할 수 있다.The table management module 240 may add the entry received from the
플로우 검색 모듈(220)은 유저 트래픽으로서 수신한 패킷으로부터 플로우 정보를 추출할 수 있다. 플로우 정보는 에지 스위치의 패킷 유입 포트인 입구 포트(ingress port)의 식별 정보, 해당 스위치의 패킷 유입 포트(incoming port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등), 및 메타데이터 등을 포함할 수 있다. 메타데이터는 이전 테이블에서 선택적으로 추가되거나, 다른 스위치에서 추가된 데이터일 수 있다. 플로우 검색 모듈(220)은 추출한 플로우 정보를 참조하여 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 있는지 검색할 수 있다. 플로우 검색 모듈(220)은 플로우 엔트리가 검색되면, 플로우 처리 모듈(260)에 검색된 플로우 엔트리에 따라 수신 패킷을 처리하도록 요청할 수 있다. 만일 플로우 엔트리 검색이 실패하면, 플로우 검색 모듈(220)은 수신 패킷 또는 수신 패킷의 최소한의 데이터를 SDN 제어기 통신부(210)를 통해 SDN 제어기(100)로 전송할 수 있다.The
플로우 처리 모듈(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
플로우 처리 모듈(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 can actually output the processed packet by the flow processing module 230 to one or more ports of the port unit 205 specified by the flow processing module 230. [
도 1에 도시되어 있지 않지만, SDN 네트워크 시스템은 가상 네트워크 디바이스, 가상 스위치 등을 생성, 변경 및 삭제하는 오케스트레이터를 더 포함할 수 있다. 오케스트레이터는 가상 네트워크 디바이스를 생성하는 경우, 가상 네트워크가 접속할 스위치의 식별 정보, 해당 스위치에 연결되는 포트 식별 정보, MAC 주소, IP 주소, 터넨트(tenant) 식별 정보 및 네트워크 식별 정보 등의 네트워크 디바이스의 정보를 SDN 제어기(10)로 제공할 수 있다.Although not shown in FIG. 1, the SDN network system may further include an orchestrator for creating, changing, and deleting virtual network devices, virtual switches, and the like. When an orchestrator creates a virtual network device, the orchestrator generates a virtual network device such as a network device, such as identification information of a switch to be connected to the virtual network, port identification information connected to the switch, MAC address, IP address, tenant identification information, Information to the
SDN 제어기(10)와 스위치(20)는 다양한 정보를 주고 받는데, 이를 오픈플로우 프로토콜 메시지(openflow protocol message)라 칭한다. 이러한 오픈플로우 메시지는 SDN 제어기-스위치 메시지(controller-to-switch message), 비동기 메시지(asynchronous message), 및 대칭 메시지(symmetric message) 등의 타입이 있다. 각 메시지는 엔트리를 식별하는 트랜잭션 식별자(transaction id; xid)를 헤더에 구비할 수 있다.The
SDN 제어기-스위치 메시지는 SDN 제어기(10)가 생성하여 스위치(20)에 전달하는 메시지로써, 주로 스위치(20)의 상태를 관리하거나 점검하기 위해 사용된다. SDN 제어기-스위치 메시지는 SDN 제어기(10)의 제어부(100), 특히 메시지 관리 모듈(130)에 의해 생성될 수 있다.The SDN controller-switch message is a message generated by the
SDN 제어기-스위치 메시지는 스위치의 능력(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 SDN controller-switch message includes features for querying the capabilities of the switch, configuration for inquiring and configuring settings such as the configuration parameters of the
비동기 메시지는 스위치(20)가 생성하는 메시지로서, 스위치의 상태 변경 및 네트워크 이벤트 등을 SDN 제어기(10)에서 업테이트하기 위해 사용된다. 비동기 메시지는 스위치(20)의 제어부(200), 특히 플로우 검색 모듈(220)에 의해 생성될 수 있다.The asynchronous message is a message generated by the
비동기 메시지로 패킷-인 메시지(packet-in message), 플로우 삭제 메시지(flow-removed), 에러 메시지 등이 있다. 패킷-인 메시지는 스위치(20)가 SDN 제어기(10)에게 패킷을 전송하여 패킷에 대한 제어를 받기 위해 사용된다. 패킷-인 메시지는 스위치(20)가 미지의 패킷을 수신한 경우, 데이터 경로를 요구하기 위해, 오픈플로우 스위치(20)에서 SDN 제어기(10)로 전송되는 수신 패킷 또는 그 사본의 전부 또는 일부를 포함하는 메시지이다. 유입 패킷에 연관된 엔트리의 액션이 SDN 제어기로 보내라고 정해져 있을 때에도 패킷-인 메시지가 사용된다. 삭제된 플로우(flow-removed) 메시지는 플로우 테이브에서 삭제할 플로우 엔트리 정보를 SDN 제어기(10)로 전달하기 위해 사용된다. 이 메시지는 SDN 제어기(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
대칭 메시지는 SDN 제어기(10) 및 스위치(20) 모두에서 생성되며, 상대방의 요청이 없어도 전송되는 특징이 있다. SDN 제어기와 스위치 간에 연결을 개시할 때 사용되는 헬로(hello), SDN 제어기 및 스위치 간 연결에 이상이 없음을 확인하기 위한 에코(echo), 및 SDN 제어기나 스위치에 의해 사용되며 문제를 반대측에 알리기 위한 에러 메시지(error message) 등을 포함할 수 있다. 에러 메시지는 대부분 SDN 제어기에 의해 개시된 요청에 따른 실패를 나타나기 위해 스위치에서 사용된다.The symmetric message is generated in both the
도 9는 본 발명의 일 실시예에 따른 통합 라우팅 시스템을 포함하는 네트워크 시스템의 블록 구성도, 도 10은 도 9의 네트워크 시스템의 가상화한 블록 구성도, 도 11은 본 발명의 다른 실시예에 따른 SDN 제어기의 블록 구성도, 도 12는 본 발명의 일 실시예에 따른 레거시 라우팅 컨테어너의 블록 구성도이다.FIG. 9 is a block diagram of a network system including an integrated routing system according to an embodiment of the present invention, FIG. 10 is a block diagram of a virtualized system of the network system of FIG. 9, and FIG. 12 is a block diagram of a legacy routing container according to an embodiment of the present invention.
도 9에 도시된 네트워크는 복수의 스위치(SW1-SW5)로 구성된 스위치 그룹 중 오픈플로우 스위치의 플로우를 제어하는 SDN 제어기(10)를 포함하는 SDN 기반의 네트워크와 제1 내지 제3 레거시 라우터(R1-R3)의 레거시 네트워크가 혼용되어 있다. 본 명세서에서 SDN 기반의 네트워크는 오픈플로우 스위치로만 구성되거나, 오픈플로우 스위치와 기존의 스위치로 구성된 독립 네트워크를 의미한다. SDN 기반의 네트워크가 오픈플로우 스위치와 기존의 스위치로 구성되어 있는 경우, 스위치 그룹 중 네트워크 도메인의 에지에 배치되는 오픈플로우 스위치로 구성되는 것이 바람직하다.The network shown in Fig. 9 includes an SDN-based network including an
도 9를 참조하면, 본 발명에 따른 SDN 기반의 통합 라우팅 시스템은 제1 내지 제5 스위치(SW1-SW5)를 구비하는 스위치 그룹, SDN 제어기(10), 및 레거시 라우팅 컨테이너(300)를 포함할 수 있다. 동일하거나 유사한 구성요소에 대한 자세한 설명은 도 1 내지 도 8을 참조한다.9, an SDN-based integrated routing system according to the present invention includes a switch group having first to fifth switches SW1 to SW5, an
제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
도 11을 참조하면, SDN 제어기(10)는 스위치(20)와 통신하는 스위치 통신부(110), 제어부(100), 및 저장부(190)를 포함할 수 있다.Referring to FIG. 11, the
SDN 제어기의 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), 메시지 관리 모듈(130), 레거시 인터페이스 모듈(145)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다. 동일한 도면 부호의 구성요소에 대한 설명은 도 4를 참조한다.The control unit 100 of the SDN controller may include a topology management module 120, a path calculation module 125, an entry management module 135, a message management module 130, and a legacy interface module 145. 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. 4 for a description of the components of the same reference numerals.
스위치 그룹이 오픈플로우 스위치로만 구성된 경우, 토폴로지 관리 모듈(120) 및 경로 계산 모듈(125)의 기능은 도 1 내지 도 8에서 설명한 것과 동일하다. 스위치 그룹이 오픈플로우 스위치와 기존의 레거시 스위치로 구성된 경우, 토폴로지 관리 모듈(120)은 오픈플로우 스위치를 통해 레거시 스위치와의 접속 정보를 얻을 수 있다.When the switch group is configured only as 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.
레거시 인터페이스 모듈(145)은 레거시 라우팅 컨테이너(300)와 통신할 수 있다. 레거시 인터페이스 모듈(145)은 토폴로지 관리 모듈(120)에서 구축한 스위치 그룹의 토폴로지 정보를 레거시 라우팅 컨테이너(300)로 전송할 수 있다. 토폴로지 정보는 제1 내지 제5 스위치(SW1-SW5)의 접속 관계 정보 및 제1 내지 제5 스위치(SW1-SW5)에 연결되어 있는 복수의 네트워크 디바이스의 연결 또는 접속 정보를 포함할 수 있다.The legacy interface module 145 may communicate with the
메시지 관리 모듈(130)은 오픈플로우 스위치로부터 수신한 플로우 문의 메시지에 구비된 플로우의 처리 규칙을 생성할 수 없는 경우, 해당 플로우를 레거시 인터페이스 모듈(145)을 통해 레거시 라우팅 컨테이너(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 can transmit the flow to the
도 12를 참조하면, 레거시 라우팅 컨테이너(300)는 SDN 인터페이스 모듈(345), 가상 라우터 생성부(320), 가상 라우터(340), 라우팅 처리부(330), 및 라우팅 테이블(335)을 포함할 수 있다.12, the
SDN 인터페이스 모듈(345)은 SDN 제어기(10)와 통신할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345) 각각은 SDN 제어기(10)와 레거시 라우팅 컨테이너(300)의 인터페이스 역할을 할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345)은 특정 프로토콜이나 특정 언어로 통신할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345)은 SDN 제어기(10)와 레거시 라우팅 컨테이너(300)가 주고 받는 메시지를 번역하거나 해석할 수 있다.The SDN interface module 345 may communicate with the
가상 라우터 생성부(320)는 SDN 인터페이스 모듈(345)를 통해 수신한 스위치 그룹의 토폴로지 정보를 이용하여 가상 라우터(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 345. [ 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)를 복수 개 생성할 수 있다. 도 10(a)는 가상 라우터(340)가 하나인 가상 레거시 라우터(v-R0)인 경우를, 도 10(b)는 가상 라우터(340)가 복수인 가상 레거시 라우터(v-R1, v-R2)인 경우를 도시한다.The virtual router generating unit 320 may generate a plurality of virtual routers 340. 10A shows a case where the virtual router 340 is a virtual legacy router v-R0 and FIG. 10B shows a case where the virtual router 340 is a virtual legacy router v-R1, v- R2).
가상 라우터 생성부(320)는 가상 라우터(340)가 라우터 식별자 예를 들어, 룩백(lookback) IP 주소를 구비하도록 할 수 있다.The virtual router creation unit 320 may allow the virtual router 340 to include a router identifier, for example, a lookback IP address.
가상 라우터 생성부(320)는 가상 라우터(340)가 스위치 그룹의 에지 스위치 즉 제1 및 제3 에지 스위치(SW1, SW3)의 에지 포트들과 대응하는 가상 라우터용 포트를 구비하도록 수 있다. 예를 들어 도 10(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. 10A, the port of the v-R0 virtual legacy router is connected to the 11th port (port 11) of the first switch SW1 and the 32th port and the 33th port of the third switch SW3 (
가상 라우터(340)의 포트는 패킷의 식별 정보에 연관될 수 있다. 패킷의 식별 정보는 패킷의 vLAN 정보, 이동통신망을 통해 접속되는 경우 패킷에 부가되는 터널(tunnel) 아이디 등의 태그 정보일 수 있다. 이 경우 오픈플로우 에지 스위치의 실질적인 포트 하나로 다수의 가상 라우터 포트를 생성할 수 있다. 패킷의 식별 정보에 연관되는 가상 라우터 포트는 가상 라우터(340)가 복수의 가상 레거시 라우터로 작동하도록 하는데 기여할 수 있다. 에지 스위치의 물리적 포트(실제 포트)만으로 가상 라우터를 생성하는 경우, 물리적 포트의 수에 제한을 받게 된다. 그러나 패킷 식별 정보에 연관시키는 경우, 이러한 제약 사항이 없어진다. 또한 기존의 패킷의 레거시 네트워크에서의 흐름과 유사하게 작동되도록 할 수 있다. 또한 사용자 또는 사용자 그룹 별로 가상의 레거시 라우터를 구동할 수 있다. 사용자 또는 사용자 그룹은 vLAN 또는 터널 아이디와 같은 패킷 식별 정보로 구분될 수 있다. 도 10(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 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 or tunnel ID. 10 (b), the switch group is virtualized into a plurality of virtual legacy routers v-R1 and v-R2, and each port vp11 of the virtual legacy routers v-R1 and v- 13, vp 21-23) may be associated with the identification information of the packet, respectively.
도 10(b)를 참조하면, 복수의 가상 레거시 라우터(v-R1, v-R2)와 레거시 라우터의 접속은 제1 레거시 라우터(R1)의 하나의 실제 인터페이스가 분리된 여러개의 서브 인터페이스로 접속되거나, 제2 및 제3 레거시 라우터(R2, R3) 처럼 복수의 실제 인터페이스로 접속될 수 있다.10B, the connection between the plurality of virtual legacy routers (v-R1, v-R2) and the legacy router is performed by connecting to a plurality of sub-interfaces in which one physical 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)로 취급되도록 할 수 있다. 이를 통해 레거시 네트워크는 오픈플로우 스위치 그룹의 네트워크 디바이스들에 접근할 수 있다. 도 10(a)의 경우, 가상 라우터 생성부(320)는 제0 가상 레거시 라우터(v-R0)에 제0 포트(port 0)를 생성하였다. 도 10(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. 10A, the virtual router creation unit 320 has created the 0th port (port 0) in the 0th virtual legacy router (v-R0). 10 (b), the virtual router generating unit 320 generates the tenth and
가상 라우터용 포트(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 (
가상 라우터(340)에 생성된 가상라우터(340)에 의한 도 9의 네트워크의 데이터 평면(data plane)은 도 10(a) 또는 도 10(b)와 같이 가상화될 수 있다. 예를 들어 도 10(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. 9 by the virtual router 340 generated in the virtual router 340 can be virtualized as shown in Fig. 10 (a) or 10 (b). For example, in the case of FIG. 10 (a), 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 (
라우팅 처리부(330)는 가상 라우터(340)가 생성되면 라우팅 테이블(335)을 생성할 수 있다. 라우팅 테이블(335)은 레거시 라우터에서 라우팅에 참조되기 위해 사용되는 테이블이다. 라우팅 테이블(335)은 RIB, FIB, 및 ARP 테이블 등의 일부 또는 전부로 구성될 수 있다. 라우팅 테이블(335)은 라우팅 처리부(330)에 의해 수정되거나 업데이트 될 수 있다.The routing processor 330 may generate the routing table 335 when the virtual router 340 is created. The routing table 335 is a table used for reference to routing in a legacy router. The routing table 335 may comprise some or all of the RIB, FIB, and ARP tables. The routing table 335 may be modified or updated by the routing processing unit 330.
라우팅 처리부(330)는 SDN 제어기(10)에서 문의한 플로우에 대한 레거시 라우팅 경로를 생성할 수 있다. 라우팅 처리부(330)는 플로우에 구비된 오픈플로우 스위치에서 수신한 수신 패킷, 수신 패킷이 유입된 포트 정보, 가상 라우터(340) 정보, 및 라우팅 테이블(335) 등의 일부 또는 전부를 이용하여 레거시 라우팅 정보를 생성할 수 있다.The routing processor 330 may generate a legacy routing path for the flow inquired by the
라우팅 처리부(330)는 레거시 라우팅을 결정하기 위해 서드 파티 라우팅 프로토콜 스택을 포함할 수 있다.The routing processor 330 may include a third party routing protocol stack to determine legacy routing.
도 13은 도 9의 SDN 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도이다. 도 9 내지 도 12를 참조한다.13 is a flowchart of a method of determining whether legacy routing is performed for the flow of the SDN controller of FIG. 9 to 12.
플로우에 대한 레거시 라우팅 여부 판단 방법은, SDN 제어기(10)가 오픈플로우 스위치로부터 수신한 플로우에 대해 일반적인 SDN 제어를 할 것인지 또는 레거시 라우팅 컨테이너(300)에 플로우 제어를 문의해야 하는지를 의미한다.The legacy routing decision method for the flow refers to whether the
도 13을 참조하면, SDN 제어기(10)는 플로우 인입 포트가 에지 포트인지 판단한다(S510). 플로우 인입 포트가 에지 포트가 아닌 경우, SDN 제어기(10)는 일반적인 오픈플로우 패킷에 대한 경로를 계산하는 등 SDN 기반의 플로우 제어를 할 수 있다(S590).Referring to FIG. 13, the
플로우 인입 포트가 에지 포트인 경우, SDN 제어기(10)는 해당 플로우의 패킷이 해석 가능한지 판단한다(S520). 패킷을 해석할 수 없는 경우, SDN 제어기(10)는 플로우를 레거시 라우팅 컨테이너(300)로 전달할 수 있다(S550). 패킷이 레거시 네트워크에서만 사용하는 프로토콜 메시지의 경우, SDN 기반의 일반적인 SDN 제어기는 패킷을 해석을 할 수 없기 때문이다.If the flow-in port is an edge port, the
수신 패킷이 제1 레거시 네트워크에서 제2 레거시 네트워크로 전송되는 것과 같은 레거시 패킷인 경우, SDN 기반의 SDN 제어기(10)는 유입된 레거시 패킷의 라우팅 경로를 계산할 수 없다. 따라서 레거시 패킷과 같이 SDN 제어기(10)에서 경로를 계산할 수 없는 경우, SDN 제어기(10)는 레거시 패킷을 레거시 라우팅 컨테이너(300)으로 보내야 바람직하다. 다만 레거시 패킷의 유출될 에지 포트와 레거시 패킷의 최종 처리 방법을 알면, 플로우 수정을 통해 SDN 제어기(10)에서 레거시 패킷을 처리할 수 있다. 이에 패킷을 해석할 수 있는 경우, SDN 제어기(10)는 해당 플로우의 경로를 계산할 수 있는지 또는 엔트리 테이블에 엔트리가 있는지 등의 플로우 경로를 검색한다(S530). 경로를 검색할 수 없으면, SDN 제어기(10)는 해당 플로우를 레거시 라우팅 컨테이너(300)으로 전달할 수 있다(S550). 경로를 검색할 수 있으면, SDN 제어기(10)는 패킷의 출력을 지정하는 패킷-아웃 메시지를 생성하여 패킷 문의한 오픈플로우 스위치로 전송할 수 있다(S540). 이에 대한 자세한 예는 도 14 및 도 15에서 후술한다.If the received packet is a legacy packet such as is transmitted from the first legacy network to the second legacy network, the SDN based
도 14는 본 발명의 일 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 도 15는 본 발명의 다른 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도, 및 도 16은 본 발명의 일 실시예에 따른 플로우 테이블이다. 도 9 내지 도 13을 참조한다.FIG. 14 is a signal flow diagram according to an integrated routing method according to an embodiment of the present invention, FIG. 15 is a signal flow diagram according to an integrated routing method according to another embodiment of the present invention, and FIG. Flow table. 9 to 13.
도 14는 레거시 프로토콜 메시지를 본 발명이 적용된 SDN 기반의 네트워크에서 처리하는 흐름을 도시한다. 도 14는 그 일례로 제1 에지 스위치(SW1)에서 OSPF(Open Shortest Path First) 프로토콜의 헬로 메시지를 받은 경우이다.14 shows a flow of processing a legacy protocol message in an SDN-based network to which the present invention is applied. FIG. 14 shows a case where a hello message of OSPF (Open Shortest Path First) protocol is received by the first edge switch SW1.
본 일례는 SDN 제어기(10) 및 레거시 라우팅 컨테이너(300)에 의해 오픈플로우 스위치 그룹은 도 10(a)와 같이 가상화되어 있다고 가정한다.In this example, it is assumed that the open flow switch group is virtualized by the
도 14를 참조하면, 제1 레거시 라우터(R1)와 제1 에지 스위치(SW1)가 연결되면 제1 레거시 라우터(R1)은 제1 에지 스위치(SW1)에게 OSPF 프로토콜의 헬로 메시지(Hello1)를 전송할 수 있다(S410).Referring to FIG. 14, 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 (S410).
제1 에지 스위치(SW1)의 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 없으므로, 제1 에지 스위치(SW1)는 알지 못하는 패킷(unkown packet)을 알리는 패킷-인 메시지를 SDN 제어기(10)로 전송한다(S420). 패킷-인 메시지는 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 제어기(10)의 메시지 관리 모듈(130)은 해당 플로우에 대한 처리 규칙을 생성할 수 있는지 판단할 수 있다(S430). 판단 방법에 대한 자세한 사항은 도 13을 참조한다. 본 예에서, OSPF 프로토콜 메시지는 SDN 제어기(10)가 해석할 수 없는 패킷이므로, SDN 제어기(10)는 레거시 라우팅 컨테이너(300)로 해당 플로우를 전달할 수 있다(S440).The message management module 130 of the
레거시 라우팅 컨테이너(300)의 SDN 인터페이스 모듈(345)는 SDN 제어기(10)로부터 전달 받은 Hello1 패킷을 플로우에 구비된 제1 에지 스위치(SW1)의 인입 포트(port 11)와 대응하는 가상 라우터(340)의 포트(port 11v)로 전송할 수 있다. 가상 라우터(340)가 Hello1 패킷을 수신하면, 라우팅 처리부(330)는 라우팅 테이블(335)에 기반하여 Hello1 패킷의 레거시 라우팅 정보를 생성할 수 있다(S450). 본 실시예에서 라우팅 처리부(330)은 Hello1 메시지에 대응하는 Hello2 메시지를 생성하고, Hello2 패킷이 제1 레거시 라우터(R1)로 전송되도록 출력 포트를 제11v 포트(port 11v)로 지정하는 라우팅 경로를 생성할 수 있다. Hello2 메시지는 제1 레거시 라우터(R1)인 목적지 및 기지정된 가상 라우터 식별자를 구비한다. 레거시 라우팅 정보는 Hell2 패킷, 및 제11v 포트인 출력 포트를 포함할 수 있다. 본 실시예에서 가상 라우터(340)에 Hello1 패킷이 인입되는 것으로 기술하였지만 이에 한정되지 않고, 라우팅 처리부(330)가 가상 라우터(340)의 정보를 이용하여 레거시 라우팅 정보를 생성할 수 있다.The SDN interface module 345 of the
SDN 인터페이스 모듈(345)는 생성된 레거시 라우팅 정보를 SDN 제어기(10)의 레거시 인터페이스 모듈(145)로 전달할 수 있다(S460). SDN 인터페이스 모듈(345) 및 레거시 인터페이스 모듈(145) 중 어느 하나는 출력 포트인 제11v 포트(port 11v)를 제1 에지 스위치(SW1)의 제11 포트(port 11)로 변환할 수 있다. 또는 제11v 포트와 제11 포트의 이름을 동일하게 하여, 포트 변환을 생략할 수 있다.The SDN interface module 345 may forward the generated legacy routing information to the legacy interface module 145 of the SDN controller 10 (S460). Either the SDN interface module 345 or the legacy interface module 145 may convert the 11v port (
SDN 제어기(10)의 경로 계산 모듈(125)은 레거시 인터페이스 모듈(145)를 통해 수신한 레거시 라우팅 정보를 이용하여 Hello2 패킷이 제1 레거시 라우터(R1)의 제11 포트(port 11)로 출력되도록 하는 경로를 설정할 수 있다(S470).The path calculation module 125 of the
메시지 관리 모듈(130)은 설정된 경로와 레거시 라우팅 정보를 이용하여, Hello2 패킷이 인입 포트인 제11 포트(port 11)로 출력되도록 하는 패킷-아웃 메시지를 생성하여 제1 레거시 라우터(R1)로 전송할 수 있다(S480).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 (S480).
본 실시예에서, 외부 레거시 라우터의 Helle 메시지에 대응하는 것으로 서술하였지만 이에 한정되지 않는다. 예를 들어, 레거시 라우팅 컨테이너(300)는 능동적으로 에지 스위치의 에지 포트로 출력되도록 하는 OSPF 헬로 메시지를 생성하여, SDN 제어기(10)로 전송할 수 있다. 이 경우 SDN 제어기(10)는 패킷-아웃 메시지로 헬로 패킷을 오픈플로우 스위치로 전송할 수 있다. 그리고, 패킷-인 메시지에 대응하지 않는 패킷-아웃 메시지라도 오픈플로우 스위치가 패킷-아웃 메시지의 지시대로 하도록 세팅함으로써 본 실시예를 구현할 수 있다.In the present embodiment, it is described as corresponding to the Helle message of the external legacy router, but is not limited thereto. For example, the
도 15는 일반적인 레거시 패킷이 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)로 전송되는 경우를 도시한다.Fig. 15 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을 수신하는 것으로 시작한다(S610).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 (S610).
제1 에지 스위치(SW1)는 패킷 P1에 대한 플로우 엔트리가 없으므로, 패킷 P1을 SDN 제어기(10)로 전송하며 플로우 처리를 문의(패킷-인 메시지)할 수 있다(S620).Since the first edge switch SW1 does not have a flow entry for the packet P1, the first edge switch SW1 can transmit the packet P1 to the
SDN 제어기(10)의 메시지 관리 모듈(130)은 해당 플로우에 대한 SDN 제어가 가능한지 판단할 수 있다(S630). 본 예에서, 패킷 P1은 해석 가능하나 레거시 네트워크를 향하므로, SDN 제어기(10)는 패킷 P1의 경로를 생성할 수 없다. 이에 SDN 제어기(10)는 패킷 P1 및 인입 포트인 제11 포트를 경로 계산 모듈(125)를 통해 레거시 라우팅 컨테이너(300)으로 전송할 수 있다(S640).The message management module 130 of the
레거시 라우팅 컨테이너(300)의 라우팅 처리부(330)는 SDN 제어기(10)로부터 전달 받은 패킷 P1을 가상 라우터(340)의 정보 및 라우팅 테이블(335)에 기초하여 레거시 라우팅 정보를 생성할 수 있다(S650). 본 예에서 패킷 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 routing processor 330 of the
레거시 라우팅과 대응되도록 하기 위해, 라우팅 처리부(330)는 패킷 P1의 헤더 정보를 조정한 패킷 P1'를 생성하여 레거시 라우팅 정보에 포함시킬 수 있다. 이 경우, 동일한 패킷, 또는 목적지 주소 범위가 동일한 유사한 패킷에 대해 매번 SDN 제어기(10) 또는 레거시 라우팅 컨테이너(300)에 유입 패킷을 처리해야 한다. 따라서, 패킷이 기존의 라우팅 이후의 포맷으로 변화시키는 단계는 레거시 라우팅 컨테이너(300) 보다 패킷을 외부 레거시 네트워크로 출력하는 에지 스위치(본 예에서, 제3 에지 스위치(SW3))에서 패킷 조작을 하는 것이 바람직하다. 이를 위해, 앞서 설명한 레거시 라우팅 정보는 소스 및 목적지 MAC 주소를 포함할 수 있다. SDN 제어기(10)는 이러한 라우팅 정보를 이용하여, 제3 에지 스위치에 패킷 P1'의 헤더 정보를 변경하도록 하는 플로우 변경(flow-Mod) 메시지를 전송할 수 있다.In order to correspond to the legacy routing, the routing processing unit 330 may generate the packet P1 'in which the header information of the packet P1 is adjusted and include it in the legacy routing information. In this case, the incoming packet must be processed to the
SDN 인터페이스 모듈(345)는 생성된 레거시 라우팅 정보를 SDN 제어기(10)의 레거시 인터페이스 모듈(145)로 전달할 수 있다(S660). 본 단계에서 출력 포트 맵핑되는 에지 포트로 변환될 수 있다.The SDN interface module 345 may forward the generated legacy routing information to the legacy interface module 145 of the SDN controller 10 (S660). In this step, the output port can be converted to an edge port mapped.
SDN 제어기(10)의 경로 계산 모듈(125)은 레거시 인터페이스 모듈(145)를 통해 수신한 레거시 라우팅 정보를 이용하여 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)의 제32 포트로 출력되도록 하는 경로를 계산할 수 있다(S670).The path calculation module 125 of the
메시지 관리 모듈(130)은 계산된 경로를 기초로, 제1 에지 스위치(SW1)에 패킷 P1에 대한 출력 포트를 지정하는 패킷-아웃 메시지를 전송하고(S680), 해당 경로의 오픈플로우 스위치에 플로우 변경(flow-Mod) 변경 메시지를 전송할 수 있다(S690, S700). 메시지 관리 모듈(130)은 제1 에지 스위치(SW1)로 동일한 플로우에 대한 처리를 규정하도록 플로우 변경(flow-Mod) 메시지도 전송할 수 있다.The message management module 130 transmits a packet-out message designating an output port for the packet P1 to the first edge switch SW1 based on the calculated path (S680), and transmits the packet to the open- (Flow-mode) change message (S690, S700). 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에 대한 플로우 처리는 레거시 플로우임을 식별할 수 있는 식별자에 기초하여 이루어 지는 것이 바람직하다. 이를 위해 제1 에지 스위치(SW1)으로 전송되는 패킷-아웃 메시지에 레거시 식별자(tunnel ID)가 부가된 패킷 P1을 포함하도록 하고, 플로우 변경 메시지는 레거시 식별자(tunnel ID)가 부가되도록 하는 플로우 엔트리를 포함하도록 할 수 있다. 각 스위치의 플로우 테이블의 일례는 도 16을 참조한다. 도 16(a)는 제1 에지 스위치(SW1)의 플로우 테이블이다. 예를 들어, 도 16(a)의 테이블 0은 제2 레거시 라우터(R2)로 향하는 플로우에 레거시 식별자로 tunnel2를 플로우에 부가하고 테이블 1로 플로우가 이동되도록 한다. 레거시 식별자는 메타필드나 다른 필드에 기입될 수 있다. 테이블 1은 tunnel2를 가지는 플로우가 제14 포트(제4 스위치(SW4)와 연결된 제1 스위치(SW1)의 포트 정보)로 출력되도록 하는 플로우 엔트리를 구비한다. 도 16(b)는 제4 스위치(SW4)의 플로우 테이블의 예시이다. 도 16(b)의 테이블은 플로우 정보 중 레거시 식별자가 tunnel2인 플로우가 제3 스위치(SW3)와 연결된 제43 포트(port 43)로 출력되도록 한다. 도 16(c)는 제3 스위치(SW3)의 플로우 테이블의 예시이다. 도 16(c)의 테이블 0은 레거시 식별자가 tunnel2인 플로우의 레거시 식별자를 제거하고 해당 플로우를 테이블 1로 이동되도록 한다. 테이블 1은 해당 플로우를 제32포트로 출력하도록 한다. 이와 같이 다중 테이블을 이용하면, 경우의 수를 줄일 수 있다. 이는 신속한 검색을 가능하게 하고, 메모리 등의 자원 소모를 줄일 수 있다.The flow process for the packet P1 is preferably based on an identifier capable of identifying 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) . An example of the flow table of each switch is shown in Fig. 16 (a) is a flow table of the first edge switch SW1. For example, Table 0 in FIG. 16 (a) adds
제1 에지 스위치(SW1)는 레거시 식별자(tunnel ID)를 패킷 P1에 부가하거나(S710), 레거시 식별자(tunnel ID)가 부가된 패킷을 코어 네트워크로 전송할 수 있다(S720). 코어 네트워크는 에지 스위치(SW1, SW3)가 아닌 오픈플로우 스위치(SW2, SW4, SW5)로 구성된 네트워크를 의미한다.The first edge switch SW1 adds a legacy identifier (tunnel ID) to the packet P1 (S710), and transmits a packet to which a legacy identifier (tunnel ID) is added to the core network (S720). 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)로 전송할 수 있다(S730). 제3 에지 스위치(SW3)는 레거시 식별자를 제거하고 지정된 포트로 패킷 P1을 출력할 수 있다(S740). 이 경우, 도 16의 플로우 테이블에 도시하지는 않았지만, 제3 스위치(SW3)의 플로우 테이블은 패킷 P1의 목적지 및 소스 MAC 주소를 변경하도록 하는 플로우 엔트리를 구비하는 것이 바람직하다.The core network may transmit the flow to the third edge switch SW3 (S730). The third edge switch SW3 may remove the legacy identifier and output packet P1 to the designated port (S740). In this case, although not shown in the flow table of Fig. 16, 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.
상기 본 발명은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(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. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner. 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.
본 발명의 실시예들은 여기에 설명된 방법들 중 하나가 실행되는 프로그램가능 컴퓨터 시스템으로 운영될 수 있는, 전자적으로 판독가능한 제어 신호들을 갖는 캐리어 웨이브를 포함할 수 있다. 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램이 컴퓨터 상에서 구동될 때 방법들 중 하나를 실행하기 위하여 운영된다. 프로그램 코드는 예를 들면 기계 판독가능 캐리어 상에 저장될 수 있다. 본 발명의 일실시예는 컴퓨터 프로그램이 컴퓨터 상에 구동될 때, 여기에 설명된 방법들 중 하나를 실행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램일 수 있다. 본 발명은 위에서 설명한 방법들 중 하나를 실행하기 위한 컴퓨터, 또는 프로그램가능 논리 장치를 포함할 수 있다. 위에서 설명한 방법들의 일부 또는 모든 기능을 실행하기 위하여 프로그램가능 논리 장치(예를 들면, 필드 프로그램가능 게이트 어레이, 상보성 금속 산화물 반도체 기반 논리 회로)가 사용될 수 있다.Embodiments of the present invention may include a carrier wave having electronically readable control signals, which may be operated with a programmable computer system in which one of the methods described herein is implemented. Embodiments of the present invention may be implemented as a computer program product having program code, wherein the program code is operated to execute one of the methods when the computer program is run on a computer. The program code may be stored on, for example, a machine readable carrier. One embodiment of the invention may be a computer program having program code for executing one of the methods described herein when the computer program is run on a computer. The present invention may include a computer, or programmable logic device, for performing one of the methods described above. A programmable logic device (e.g., a field programmable gate array, a complementary metal oxide semiconductor based logic circuit) may be used to perform some or all of the functions described above.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져 서는 안 될 것이다.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 in form and detail may be made therein without departing from the spirit and scope of the present invention.
10: SDN 제어기 20: SDN 스위치
30: 네트워크 디바이스 40: 화이트박스 스위치
50: TAP 어플리케이션 60: 데이터 센터
70: 중계 서버 80: 트래픽 분석 어플리케이션
100: 제어부 120: 토폴로지 관리 모듈
125: 경로 계산 모듈 130: 메시지 관리 모듈
135: 엔트리 관리 모듈 136: API 서버 모듈
137: API 파서 모듈 140: 메시지 판단 모듈
145: 레거시 인터페이스 모듈 190: 저장부
200: 스위치 제어부 205: 포트부
210; SDN 제어기 통신부 220: 플로우 검색 모듈
230: 플로우 처리 모듈 235: 패킷 처리 모듈
240: 테이블 관리 모듈 300: 레거시 켄테이너
500: 제어부 510: 통신부
520: 장치 관리 모듈 521: 레이어 필터 모듈
522: 정책 관리 모듈 536: API 서버 모듈
537: API 파서 모듈 590: 저장부
591: 엔트리 DB 592: 포트 DB
593: 필터 DB 594: 정책 DB10: SDN controller 20: SDN switch
30: Network device 40: White box switch
50: TAP application 60: Data center
70: Relay server 80: Traffic analysis application
100: control unit 120: topology management module
125: path calculation module 130: message management module
135: Entry management module 136: API server module
137: API parser module 140: message determination module
145: legacy interface module 190:
200: switch control unit 205: port unit
210; SDN controller communication unit 220: Flow search module
230: flow processing module 235: packet processing module
240: Table management module 300: Legacy Kenterer
500: control unit 510: communication unit
520: device management module 521: layer filter module
522: Policy management module 536: API server module
537: API parser module 590:
591: Entry DB 592: Port DB
593: Filter DB 594: Policy DB
Claims (4)
상기 취득된 복수의 오픈플로우 에지 스위치의 정보를 기초로, 상기 복수의 레거시 네트워크가 상기 스위치 그룹의 적어도 일부를 레거시 라우터로 취급하도록 적어도 하나의 가상 라우터로 생성하고, 상기 SDN 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 레거시 라우팅 컨테이너가 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하며,
프로시져를 호출시켜 상기 맵핑된 정보를 변경시키는, SDN/TAP 어플리케이션.An SDN / TAP (Software Defined Network / Test Access Port) application for acquiring information of a plurality of open flow edge switches belonging to a switch group, wherein a plurality of open flow edge switches connected to a plurality of legacy networks acquire information of the plurality of open flow edge switches,
The plurality of legacy networks generate at least one virtual router so that at least a part of the switch group is treated as a legacy router based on the acquired information of the plurality of open flow edge switches, A legacy routing container for generating legacy routing information based on the information of the at least one virtual router maps a plurality of network devices connected to the plurality of open flow switches to external network information directly connected to the virtual router,
A SDN / TAP application that invokes a procedure to modify the mapped information.
상기 호출하는 프로시져는 복수의 SDN 제어기를 단일의 라우터 시스템으로 가상화하는 것인, SDN/TAP 어플리케이션.The method according to claim 1,
Wherein the calling procedure virtualizes a plurality of SDN controllers into a single router system.
상기 호출하는 프로시져는 상기 맵핑된 정보를 미리 설정한 네트워크 계층으로 제한하는 것인, SDN/TAP 어플리케이션.The method according to claim 1,
Wherein the calling procedure limits the mapped information to a predefined network layer.
상기 호출하는 프로시져는 상기 맵핑된 정보를 미리 설정한 제한 조건 및 우선순위로 제한하는 것인, SDN/TAP 어플리케이션.The method according to claim 1,
Wherein the calling procedure limits the mapped information to a predefined constraint and priority.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160157792A KR20180058594A (en) | 2016-11-24 | 2016-11-24 | Software Defined Network/Test Access Port Application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160157792A KR20180058594A (en) | 2016-11-24 | 2016-11-24 | Software Defined Network/Test Access Port Application |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180058594A true KR20180058594A (en) | 2018-06-01 |
Family
ID=62635071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160157792A KR20180058594A (en) | 2016-11-24 | 2016-11-24 | Software Defined Network/Test Access Port Application |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180058594A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314198A (en) * | 2020-02-06 | 2020-06-19 | 苏州浪潮智能科技有限公司 | Method and equipment for setting port IP of white box switch |
KR20200073983A (en) * | 2018-12-16 | 2020-06-24 | 쿨클라우드(주) | Intergrated wire and wireless network packet broker and method for timestamping packet of the same |
WO2020130320A1 (en) * | 2018-12-16 | 2020-06-25 | 쿨클라우드(주) | Wired/wireless convergence network packet relay device and packet timestamp assigning method thereof |
WO2021020934A1 (en) * | 2019-07-31 | 2021-02-04 | 현대자동차주식회사 | Sdn-based intrusion response method for in-vehicle network, and system using same |
-
2016
- 2016-11-24 KR KR1020160157792A patent/KR20180058594A/en unknown
Non-Patent Citations (4)
Title |
---|
[http://www.etsi.org/deliver/etsi_gs/NFV/001_099/002/01.01.01_60/gs_NFV002v010101p.pdf] |
ETSI GS NFV 002 v1.1.1 (2013-10) |
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] |
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] |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200073983A (en) * | 2018-12-16 | 2020-06-24 | 쿨클라우드(주) | Intergrated wire and wireless network packet broker and method for timestamping packet of the same |
WO2020130320A1 (en) * | 2018-12-16 | 2020-06-25 | 쿨클라우드(주) | Wired/wireless convergence network packet relay device and packet timestamp assigning method thereof |
WO2020130321A1 (en) * | 2018-12-16 | 2020-06-25 | 쿨클라우드(주) | Intergrated wired/wireless network intermediary device, and deep packet matching method therefor |
US10904140B2 (en) | 2018-12-16 | 2021-01-26 | Kulcloud | Integrated wire and wireless network packet broker and method for GTP correlation assigning method of the same |
US11962492B2 (en) | 2018-12-16 | 2024-04-16 | Kulcloud | Wired/wireless convergence network packet relay device and packet timestamp assigning method thereof |
US12074790B2 (en) | 2018-12-16 | 2024-08-27 | Kulcloud | Integrated wired/wireless network intermediary device, and deep packet matching method therefor |
WO2021020934A1 (en) * | 2019-07-31 | 2021-02-04 | 현대자동차주식회사 | Sdn-based intrusion response method for in-vehicle network, and system using same |
CN111314198A (en) * | 2020-02-06 | 2020-06-19 | 苏州浪潮智能科技有限公司 | Method and equipment for setting port IP of white box switch |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101703088B1 (en) | Aggregated routing method based on sdn and system thereof | |
US9654395B2 (en) | SDN-based service chaining system | |
US8086739B2 (en) | Method and system for monitoring virtual wires | |
KR101803332B1 (en) | Network system for internet of things | |
KR20180058594A (en) | Software Defined Network/Test Access Port Application | |
US20220070091A1 (en) | Open fronthaul network system | |
KR101527377B1 (en) | Service chaining system based on software defined networks | |
KR101797112B1 (en) | Manegement system for container network | |
KR101746105B1 (en) | Openflow switch capable of service chaining | |
KR101729944B1 (en) | Method for supplying ip address by multi tunant network system based on sdn | |
KR20180058592A (en) | Software Defined Network Controller | |
KR101797115B1 (en) | Method for container networking of container network | |
KR101934908B1 (en) | Method for controlling of pc power by aggregated routing based on sdn | |
KR20180058593A (en) | Software Defined Network Whitebox Switch | |
EP3817341A1 (en) | Bulk configuration of devices behind a network address translation device | |
KR101679224B1 (en) | Network system based on sdn capable traffice distribution | |
KR20180087561A (en) | System interface for dynamic virtual network service | |
KR101729945B1 (en) | Method for supporting multi tunant by network system based on sdn | |
KR101729939B1 (en) | Multi tunant network system based on sdn | |
JP2015207921A (en) | traffic information collection system and collection control node | |
KR20190054224A (en) | Machine learning based network automation system architecture | |
KR20190054229A (en) | Machine learning based network automation system method | |
KR20170006950A (en) | Network flattening system based on sdn and method thereof | |
KR20180087614A (en) | Sdn testbed automation system | |
KR101707073B1 (en) | Error detection network system based on sdn |