KR20170031539A - Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance - Google Patents
Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance Download PDFInfo
- Publication number
- KR20170031539A KR20170031539A KR1020150129233A KR20150129233A KR20170031539A KR 20170031539 A KR20170031539 A KR 20170031539A KR 1020150129233 A KR1020150129233 A KR 1020150129233A KR 20150129233 A KR20150129233 A KR 20150129233A KR 20170031539 A KR20170031539 A KR 20170031539A
- Authority
- KR
- South Korea
- Prior art keywords
- switch
- packet
- information table
- host
- controller
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/32—Flooding
-
- 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/44—Distributed 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/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
Abstract
Description
본 발명은 소프트웨어 정의 네트워크(Software Defined Network : SDN) 기술에 관한 것으로, 특히 고확장성과 고가용성을 위한 분산 컨트롤러 환경에서 분산 방식으로 라우팅을 처리할 수 있는 장치 및 방법에 대한 것이다.The present invention relates to software defined network (SDN) technology, and more particularly, to an apparatus and method capable of handling routing in a distributed manner in a distributed controller environment for high scalability and high availability.
최근 SDN 컨트롤러 기술은 캐리어급 네트워크에서 요구하는 고확장성과 고가용성을 지원하기 위하여, 논리적으로는 하나의 중앙 컨트롤러의 형식을 취하면서도 물리적으로는 하나 이상의 컨트롤러로 구성되는 분산 컨트롤러의 형태를 취하고 있다. Recently, SDN controller technology takes the form of a distributed controller that is physically composed of one or more controllers while taking the form of one central controller logically in order to support high scalability and high availability required in carrier-grade networks.
그러나, 논리적으로 하나의 중앙집중적인 컨트롤러를 구축하기 위하여 분산 컨트롤러간 스위치, 링크, 포트 등의 상태 정보를 공유하고 있으며, 분산 컨트롤러 간 상태 정보의 공유 문제로 인한 트래픽 및 처리 지연 문제가 분산 컨트롤러의 성능을 좌우할 정도로 중요한 문제로 부각되고 있다.However, in order to construct a single centralized controller logically, state information of switches, links, and ports between the distributed controllers is shared. In addition, traffic and processing delay problems due to the sharing of status information between distributed controllers It is becoming an important issue that affects performance.
즉, 분산 컨트롤러 구조를 활용할 경우 컨트롤러 간 협업을 통하여 네트워크 플로우 처리 성능을 높일 수 있으나, 컨트롤러 수가 증가함에 따라 상태 정보 공유로 발생하는 성능 저하 역시 증가하여 최대 활용할 수 있는 분산 컨트롤러의 수에 제한을 받을 수 있다. In other words, when the distributed controller structure is used, the performance of the network flow processing can be improved through the cooperation between the controllers. However, as the number of controllers increases, the performance degradation due to the sharing of the state information also increases, .
본 발명은 SDN 분산 컨트롤러 환경에서 데이터 플레인이 각각의 개별 컨트롤러가 관리하는 영역으로 파티셔닝되어 있을 때, 고 확장성과 고 가용성을 위해 컨트롤러 간 상태 정보의 공유없이 종단간(End-to-End) 라우팅 경로를 제공하기 위한 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치 및 방법을 제공한다. In the SDN distributed controller environment, when the data plane is partitioned into areas managed by respective individual controllers, the present invention provides an end-to-end routing path without sharing state information between controllers for high scalability and high availability. The present invention provides a distributed routing apparatus and method in an open flow network partitioned environment.
본 발명은 오픈 플로우 네트워크 분할 환경에서의 컨트롤러에서 분산 라우팅 방법으로, 동일 네트워크의 다른 컨트롤러에 의해 관리되는 스위치의 포트 정보를 외부 포트 정보 테이블로 관리하는 단계와, 스위치로부터 패킷과 함께 누적 비용이 포함된 별도로 정의된 패킷을 수신함에 따라, 상기 누적 비용으로 호스트별 누적 비용 정보 테이블을 갱신함과 아울러, 상기 패킷을 다른 스위치들에 플러딩하되, 다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있을 경우, 별도로 정의된 패킷을 함께 전송하는 단계를 포함한다.The present invention relates to a distributed routing method in a controller in an open flow network division environment, comprising: managing port information of a switch managed by another controller of the same network in an external port information table; The accumulated cost information table is updated with the cumulative cost, and the packet is flooded to other switches, and the ports of other switches are included in the external port information table , ≪ / RTI > sending separately defined packets together.
본 발명은 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치로, 외부 포트 정보 테이블과, 동일 네트워크의 다른 컨트롤러에 의해 관리되는 스위치의 포트 정보를 상기 외부 포트 정보 테이블에 저장하는 외부 포트 정보 관리부와, 스위치로부터 패킷과 함께 누적 비용이 포함된 별도로 정의된 패킷을 수신하는 패킷 수신부와, 누적 비용 정보 테이블과, 상기 누적 비용으로 호스트별 누적 비용 정보 테이블을 갱신하는 누적 비용 정보 갱신부와, 상기 패킷을 다른 스위치들에 플러딩하는 패킷 송신부와, 다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있을 경우, 별도로 정의된 패킷을 생성하여 상기 패킷 송신부에서 전송되도록 하는 누적 비용 정보 산출부를 포함한다. The present invention relates to a distributed routing apparatus in an open flow network partitioned environment, which includes an external port information table, an external port information management unit for storing port information of a switch managed by another controller of the same network in the external port information table, A cumulative cost information table, an accumulated cost information updating unit for updating a cumulative cost information table for each host with the cumulative cost, And an accumulated cost information calculation unit for generating separately defined packets when the ports of the other switches are included in the external port information table and transmitting the generated packets to the packet transmission unit.
본 발명에 따라, 분산 형태의 SDN 컨트롤러 구조에서 고확장성과 고가용성을 위하여 데이터 플레인을 분할하여 개별 컨트롤러가 관리하도록 할 때에, 분산 컨트롤러 간 상태 공유 메시지를 없애거나 최소화하도록 함으로써 상태 공유에 따른 오버헤드 및 성능저하 문제를 해결할 수 있다. According to the present invention, in the distributed SDN controller structure, when data planes are divided and managed by individual controllers for high scalability and high availability, state sharing messages between the distributed controllers are eliminated or minimized, And performance degradation problems can be solved.
또한, 개별 컨트롤러가 파티셔닝된 일부의 토폴로지 정보만 가지고도 종단간 최소 비용의 라우팅 경로를 설정할 수 있다.In addition, an individual controller can set an end-to-end least cost routing path with only some partitioned topology information.
도 1은 오픈 플로우 네트워크 분할 환경을 도시한 도면이다.
도 2는 오픈 플로우 네트워크 분할 환경에서 경로 탐색하는 과정의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 오픈 플로우 네트워크 분할 환경에서 경로 탐색하는 과정을 설명하기 일 예를 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 컨트롤러의 블록 구성도이다.
도 5는 본 발명의 일 실시 예에 따른 외부 포트 정보 관리 단계를 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시 예에 따른 패킷 송수신 단계를 설명하기 위한 순서도이다. 1 is a diagram showing an open-flow network division environment.
2 is a diagram illustrating an example of a process of searching for a path in an open flow network division environment.
3 is a diagram illustrating an example of a path search process in an open flow network partitioning environment according to an embodiment of the present invention.
4 is a block diagram of a controller according to an embodiment of the present invention.
5 is a flowchart illustrating an external port information management step according to an embodiment of the present invention.
6 is a flowchart for explaining a packet transmission / reception step according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 기술되는 바람직한 실시 예를 통하여 본 발명을 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.
본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명 실시 예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
명세서 전반에 걸쳐 사용되는 용어들은 본 발명 실시 예에서의 기능을 고려하여 정의된 용어들로서, 사용자 또는 운용자의 의도, 관례 등에 따라 충분히 변형될 수 있는 사항이므로, 이 용어들의 정의는 본 발명의 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.The terms used throughout the specification are defined in consideration of the functions in the embodiments of the present invention and can be sufficiently modified according to the intentions and customs of the user or the operator. It should be based on the contents of.
도 1은 오픈 플로우 네트워크 분할 환경을 도시한 도면이다.1 is a diagram showing an open-flow network division environment.
도 1을 참조하면, 오픈플로우 스위치들(200-1~200-11)로 구성된 하나의 네트워크가 스위치의 근접성 정보를 기준으로 파티셔닝된 상태가 도시되어 있다. 컨트롤러들(100A, 100B, 100C)은 각각 파티셔닝되어 자신의 영역에 포함되어 있는 스위치들을 관리하는데, 스위치 간 링크계층탐색프로토콜(Link Layer Discovery Protocol : LLDP) 패킷 교환을 통하여 링크를 탐색하며, 스위치로부터 특징 응답(FEATURES_REPLY) 패킷을 수신함으로써 자신이 관리하는 스위치 정보를 습득하게 된다. 따라서, 각 컨트롤러들(100A, 100B, 100C)은 자신이 관리하는 스위치 및 링크 정보를 탐색할 수 있게 된다. 또한, 컨트롤러들(100A, 100B, 100C)은 호스트(310)를 송신지(Source)로 하는 패킷을 처음으로 수신할 때에 해당 호스트(310)의 정보를 인지할 수 있게 된다. Referring to FIG. 1, one network composed of open flow switches 200-1 to 200-11 is partitioned based on proximity information of a switch. Each of the
이러한 SDN 컨트롤러 오픈 플로우 네트워크 분할 환경에서 소스 호스트 S(310)로부터 목적지 호스트 D(320)까지의 경로를 탐색하는 과정을 살펴보기로 한다. A process of searching for a path from the
도 2는 오픈 플로우 네트워크 분할 환경에서 경로 탐색하는 과정의 일 예를 도시한 도면이다. 2 is a diagram illustrating an example of a process of searching for a path in an open flow network division environment.
도 2를 참조하면, 호스트 S(310)가 호스트 D(320)로 패킷을 전송할 때에, 호스트 D(320)의 IP에 대한 MAC 주소에 대한 ARP 요청 메시지를 전송하면, 스위치 1(200-1)에 호스트 S(310)에 대한 매칭률이 존재하지 않으므로 컨트롤러 A(100A)에게 PACKET_IN 형태로 질의하게 된다. 이때, 컨트롤러 A(100A)는 호스트 S(310)를 인지할 수 있으며, 스위치 1(200-1)에 접속되어 있다는 사실을 저장하게 된다. Referring to FIG. 2, when the
또한, 컨트롤러 A(100A)가 호스트 D(320)에 대한 정보를 가지고 있지 않으므로 호스트 D(320)에 대한 ARP 요청 메시지를 플러딩(Flooding)하도록 설정한다. 마찬가지 방식으로, 컨트롤러 A(100A)가 스위치 2, 3, 4(200-2, 200-3, 200-4)로부터 PACKET_IN 메시지를 수신할 수 있으나, 호스트 S(310)에 대한 정보를 이미 가지고 있으므로 호스트 정보를 업데이트하지 않는다. In addition, since the
만약, ARP 요청 메시지가 스위치 6(200-6)에 도달할 경우, 컨트롤러 A(100A)와 마찬가지로, 컨트롤러 B(100B)는 호스트 S(310)가 스위치 6(200-6)에 연결되었다고 인지할 수 있으며, 컨트롤러 C(100C)의 영역에서 ARP 메시지를 스위치 8(200-8)에서 처음 수신할 경우 컨트롤러 C(100C)는 호스트 S(310)가 스위치 8(200-8)에 연결된 것으로 간주한다. When the ARP request message reaches the switch 6 (200-6), the
반대로 호스트 D(320)가 자신에 대한 ARP 요청 메시지를 수신한 후 그 응답으로 ARP 응답 메시지를 전송할 때, 컨트롤러 C(100C)가 호스트 D(320)가 스위치 1(200-1)에 연결되었다는 사실을 인지할 수 있다. 또한, 컨트롤러 C(100C)는 ARP 응답 메시지를 전송하기 위하여 호스트 S(310)가 연결되어 있는 스위치 8(200-8)까지 패킷을 전달하게 되며, 컨트롤러 B(100B)는 ARP 응답 메시지를 스위치 6(200-6)에게, 컨트롤러 A(100A)는 스위치 1(200-1)에게 전달할 수 있다. On the contrary, when the
마지막으로 호스트 S(310)가 호스트 D(320)에 대한 MAC 주소를 인지한 후에는 데이터 패킷을 전송할 수 있으며, 컨트롤러들 각각이 저장하고 있는 호스트 D(320)의 위치에 따라 라우팅 경로가 결정될 수 있다. Finally, after the host S 310 recognizes the MAC address of the
따라서, 호스트 S(310)에서 전송한 패킷은 스위치 1-3-4-6-7-8-9-10의 경로를 따라 전달될 수 있다. Therefore, the packet transmitted from the
전술한 바와 같이, 컨트롤러들(100A, 100B, 100C) 각각은 스위치, 링크, 포트 등의 토폴로지 상태 정보를 교환하지 않을 경우, 전체 토폴로지 대신 지역적인 정보 만을 활용하므로 종단간 최적 라우팅 경로를 찾을 수 없다. 이로 인해, 분산 컨트롤러 환경에서는 컨트롤러 사이에 토폴로지 정보를 교환하고 있으나, 전술한 바와 같이 상태 정보 공유로 인한 비용으로 인한 성능 저하 문제를 수반할 수 있다. As described above, when each of the
본 발명에서는 분산 컨트롤러 간 상태 정보의 교환 없이 컨트롤러의 지역적인 토폴로지 정보만으로 종단 간 최적 경로를 탐색하고자 하며, 오픈 플로우 네트워크가 동일 브로드캐스트 도메인에 위치하여 호스트 탐색에 이용되는 ARP, DHCP 메시지 등이 네트워크 전체에 전파된다는 특징을 이용한다. In the present invention, an end-to-end optimal path is searched only by the local topology information of the controller without exchanging state information between the distributed controllers. ARP and DHCP messages used for host search are located in the same broadcast domain, And propagates to the whole.
도 3은 본 발명의 일 실시 예에 따른 SDN 컨트롤러 오픈 플로우 네트워크 분할 환경에서 경로 탐색하는 과정을 설명하기 일 예를 도시한 도면이다. FIG. 3 is a diagram illustrating a process of searching for a path in an SDN controller open flow network partitioning environment according to an embodiment of the present invention.
도 3을 참조하면, 종단간 최소 비용의 경로를 연결할 수 있는 경로 내의 스위치에 호스트가 연결된 것으로 인지할 수 있다. 즉, 호스트 S(310)와 호스트 D(320) 사이의 최소 경로(홉 기준)는 스위치 1-2-5-7-10-11이며, 이에 따라 컨트롤러 B(100B)에서는 스위치 5(200-5)에 호스트 S(310)가 연결되어 있고, 스위치 7(200-7)에 호스트 D(320)가 연결되었다고 인지할 수 있다. 마찬가지로, 컨트롤러 C(100C) 기준으로 호스트 S(310)는 스위치 1(200-1)에, 호스트 D(320)는 호스트 11에 연결된 것으로 인지할 수 있다. Referring to FIG. 3, it can be recognized that a host is connected to a switch in a path that can connect a path with the least cost between ends. That is, the minimum path (hop reference) between the
그러면, 도 3에 도시된 바와 같이 종단간 최소 비용의 경로에 따라 패킷을 전송하기 위한 컨트롤러들(100A, 100B, 100C)의 구성 및 컨트롤러들(100A, 100B, 100C)에서의 라우팅 방법을 살펴보기로 한다. Then, as shown in FIG. 3, a configuration of the
도 4는 본 발명의 일 실시 예에 따른 컨트롤러의 블록 구성도이다. 4 is a block diagram of a controller according to an embodiment of the present invention.
도 4를 참조하면, 컨트롤러(100)는 외부 포트 정보 관리부(110), 외부 포트 정보 테이블(120), 패킷 수신부(130), 누적 비용 정보 갱신부(140), 누적 비용 정보 테이블(150), 패킷 송신부(160) 및 누적 비용 정보 산출부(170)를 포함한다.4, the
외부 포트 정보 관리부(110)는 동일 네트워크의 다른 컨트롤러에 의해 관리되는 스위치의 포트 정보를 외부 포트 정보 테이블(120)에 저장한다. 즉, 외부 포트 정보 관리부(110)는 LLDP 패킷을 수신함에 따라, LLDP 패킷을 송신한 스위치가 자신이 관리하는 파티션 내에 위치한 스위치가 아닌 경우, LLDP 패킷을 송신한 스위치가 동일 네트워크 내 다른 컨트롤러가 관리하는 스위치인지를 판단하고, 동일 네트워크 내 분산 컨트롤러가 관리하는 스위치인 경우, 해당 스위치의 포트 정보를 외부 포트 정보 테이블에 저장한다. 여기서, 외부 포트 정보 관리부(110)는 동일 네트워크 내 다른 컨트롤러가 관리하는 스위치인지를 판단하기 위해, LDP 패킷에 정의된 OptionalTLV 필드를 통해 컨트롤러의 ID, 오픈 플로우 지원 여부, 동일한 네트워크를 관리하는 분산 컨트롤러인지 여부를 판단한다.The external port information management unit 110 stores port information of a switch managed by another controller of the same network in the external port information table 120. [ That is, when the switch that transmitted the LLDP packet is not a switch located in the partition managed by the external port information management unit 110 as the LLDP packet is received, the switch that transmitted the LLDP packet is managed by another controller in the same network If the switch is a switch managed by the distributed controller in the same network, the port information of the switch is stored in the external port information table. Here, in order to determine whether the switch is managed by another controller in the same network, the external port information management unit 110 determines whether the ID of the controller, open flow support, or the like, through the Optional TLV field defined in the LDP packet, .
여기서, 외부 포트 정보 테이블(120)은 하기의 <표 1>과 같이 구성될 수 있다.Here, the external port information table 120 may be configured as shown in Table 1 below.
패킷 수신부(130)는 스위치로부터 패킷과 함께 누적 비용이 포함된 별도로 정의된 패킷을 수신한다. 이때, 패킷 수신부(130)는 스위치로부터 수신된 패킷이 송신자로부터 스위치까지의 누적 비용 정보를 포함하는 별도로 정의된 패킷을 포함할 경우, 별도로 정의된 패킷을 분리하여 상기 누적 비용 정보 갱신부(140)에 전달한다. The
누적 비용 정보 갱신부(140)는 누적 비용으로 호스트별 누적 비용 정보 테이블(150)을 갱신한다. 이때, 누적 비용 정보 갱신부(140)는 미리 저장된 호스트별 누적 비용 정보들과 비교하여, 동일 호스트에 대해 비용 정보가 최소일 경우에 호스트별 누적 비용 정보 테이블을 갱신한다. The accumulated cost
누적 비용 정보 테이블(150)은 하기의 <표 2>와 같이 L2 패킷의 송신자로부터 현재 스위치까지의 비용을 저장하는 것으로, 누적 비용은 Host IP address에 해당하는 송신자 엔트리의 누적 비용(Cumulative cost to corresponding switch) 값과 해당 스위치(corresponding switch's DPID)로부터 현재 스위치까지 경로 비용의 합으로 계산될 수 있다. The cumulative cost information table 150 stores the cost from the sender of the L2 packet to the current switch as shown in Table 2 below. The cumulative cost is the cumulative cost corresponding to the sender's entry corresponding to the Host IP address. switch value and the path cost from the corresponding switch (DPID) to the current switch.
패킷 송신부(160)는 패킷을 다른 스위치들에 플러딩한다. 즉, 패킷 송신부(150)는 다른 스위치들의 포트가 외부 포트 정보 테이블(120)에 포함되어 있는지를 검색하여, 포트가 외부 포트 정보 테이블(120)에 포함되어 있을 경우, 누적 비용 정보 산출부(170)에 요청하여 누적 비용 정보를 획득하고, 획득된 누적 비용 정보가 포함된 별도로 정의된 패킷을 패킷과 함께 전송한다. 또한, 패킷 송신부(160)는 검색 결과 해당 스위치의 포트가 외부 포트 정보 테이블(120)에 포함되어 있지 않을 경우, 해당 포트에는 패킷만을 전송한다.The
누적 비용 정보 산출부(170)는 패킷 송신부(160)의 요청에 따라 누적 비용을 산출하여 패킷 송신부(160)에 제공한다. 여기서, 누적 비용은 상기 <표 2>에서와 같이 Host IP address에 해당하는 송신자 엔트리의 누적 비용(Cumulative cost to corresponding switch) 값과 해당 스위치(corresponding switch's DPID)로부터 현재 스위치까지 경로 비용의 합으로 산출된다. The cumulative cost
다음으로, 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법은 크게 외부 포트 정보 관리 단계 및 패킷 송수신 처리 단계로 구성될 수 있다. Next, a distributed routing method in an open flow network partitioned environment can be largely comprised of an external port information management step and a packet transmission / reception processing step.
도 5는 본 발명의 일 실시 예에 따른 외부 포트 정보 관리 단계를 설명하기 위한 순서도이다.5 is a flowchart illustrating an external port information management step according to an embodiment of the present invention.
도 5를 참조하면, 컨트롤러가 LLDP 패킷을 수신(S510)하면, LLDP 패킷의 송신 스위치가 자신이 관리하는 파티션 내에 위치한 스위치가 전송한 것인지 여부를 판단한다(S520).Referring to FIG. 5, when the controller receives the LLDP packet (S510), it determines whether the transmission switch of the LLDP packet is transmitted by a switch located in the partition managed by the controller (S520).
S520의 판단 결과 자신이 관리하는 파티션 내의 스위치가 전송한 LLDP 패킷이 아닌 경우, 컨트롤러는 LLDP 패킷이 동일 네트워크 내 다른 컨트롤러가 관리하는 스위치가 전송한 것인지 여부를 판단한다(S530). LLDP 패킷에는 OptionalTLV 필드가 정의되어 있으므로, 컨트롤러의 ID, OpenFlow 지원 여부, 동일한 네트워크를 관리하는 분산 컨트롤러인지 여부를 판단될 수 있다.If it is determined in step S520 that the LLDP packet is not the LLDP packet transmitted by the switch in the partition managed by itself, the controller determines whether the LLDP packet is transmitted by a switch managed by another controller in the same network (S530). Since the Optional TLV field is defined in the LLDP packet, it can be determined whether the controller ID, OpenFlow support, and whether it is a distributed controller that manages the same network.
S530의 판단 결과 동일 네트워크 내 분산 컨트롤러가 관리하는 스위치가 전송한 LLDP인 경우, 컨트롤러는 해당 스위치의 포트 정보를 외부 포트 정보 테이블(External port information table)에 저장한다(S540). 여기서, 외부 포트 정보 테이블은 스위치의 DPID 및 포트 넘버를 포함한다. If it is determined in step S530 that the switch is the LLDP transmitted by the switch managed by the distributed controller in the same network, the controller stores the port information of the switch in the external port information table (S540). Here, the external port information table includes the DPID of the switch and the port number.
도 6은 본 발명의 일 실시 예에 따른 패킷 송수신 단계를 설명하기 위한 순서도이다. 6 is a flowchart for explaining a packet transmission / reception step according to an embodiment of the present invention.
도 6을 참조하면, 컨트롤러는 스위치로부터 L2 패킷을 수신(S610)함에 따라, 누적 비용 패킷이 별도로 정의된 패킷인지를 판단한다(S620). 여기서, 스위치는 이웃하는 파티션의 스위치로부터 별도로 정의된 패킷을 수신할 경우에는 해당하는 매칭 룰이 없으므로 컨트롤러에게 PACKET_IN의 형태로 질의할 수 있으므로, 컨트롤러는 별도로 정의된 패킷인지의 여부를 판단할 수 있다. Referring to FIG. 6, the controller receives the L2 packet from the switch (S610), and determines whether the accumulated cost packet is a separately defined packet (S620). Here, when the switch receives a packet defined separately from a switch of a neighboring partition, since there is no corresponding matching rule, the controller can query the controller in the form of PACKET_IN, so that the controller can determine whether or not it is a packet defined separately .
S620의 판단 결과 L2 패킷이 누적 비용 패킷인 별도로 정의된 패킷일 경우, 컨트롤러는 L2 패킷과 비용 정보를 분리하여 호스트별 누적 비용 정보 테이블을 갱신한다(S640). 또한, 일반적인 컨트롤러의 절차와 마찬가지로 탐색된 호스트 정보가 해당 스위치에 연결되어 있다는 정보를 저장한다. If it is determined in operation S620 that the L2 packet is a separately defined packet that is an accumulated cost packet, the controller updates the accumulated cost information table for each host by separating the L2 packet and the cost information (S640). Also, it stores information that the discovered host information is connected to the corresponding switch, like the general controller procedure.
이때, 컨트롤러는 자신의 파티션 내의 다른 스위치로부터 별도로 정의된 패킷을 중복하여 수신할 수 있으므로, 이때 동일 호스트에 대해 비용 정보가 작을 경우(S630)에 한하여 호스트별 누적 비용 정보 테이블과 호스트 정보를 갱신한다. At this time, since the controller can receive packets defined separately from other switches in its own partition, if the cost information is small for the same host (S630), the cumulative cost information table and the host information for each host are updated .
컨트롤러는 ARP 요청 등 L2 패킷을 플러딩(Flooding, 스위치의 모든 포트로 전송)하기 전에, 외부 포트 정보 테이블을 검색(S650)하여, 포트가 외부 포트 정보 테이블에 포함되어 있는지를 판단한다(S660).In step S660, the controller searches the external port information table (S650) before the L2 packet, such as an ARP request, is flooded (transmitted to all ports of the switch), and determines whether the port is included in the external port information table.
S660의 판단 결과 해당 스위치 포트가 외부 포트 정보 테이블에 포함되어 있을 경우, 컨트롤러는 해당 포트에는 컨트롤러가 해석할 수 있도록 별도로 정의된 패킷을 전송한다(S680). 즉, L2 패킷과 함께 L2 패킷의 송신자로부터 현재 스위치까지의 비용정보를 포함하여 전달한다. If it is determined in step S660 that the corresponding switch port is included in the external port information table, the controller transmits a separately defined packet to the corresponding port so that the controller can interpret the switch port (S680). In other words, together with the L2 packet, cost information from the sender of the L2 packet to the current switch is transmitted.
반면, S660의 판단 결과 해당 스위치의 포트가 외부 포트 정보 테이블에 포함되어 있지 않은 경우, 컨트롤러는 해당 포트에는 L2 패킷을 그대로 전송한다(S670). On the other hand, if it is determined in step S660 that the port of the corresponding switch is not included in the external port information table, the controller directly transmits the L2 packet to the port (S670).
이때, L2 패킷의 송신자로부터 현재 스위치까지의 비용은 Host IP address에 해당하는 송신자 엔트리의 누적 비용(Cumulative cost to corresponding switch) 값과 해당 스위치(corresponding switch's DPID)로부터 현재 스위치까지 경로 비용의 합으로 계산될 수 있다. 만약, L2 패킷의 송신자가 호스트별 누적 비용 정보 테이블에 존재하지 않을 경우, 해당 호스트가 개별 컨트롤러가 관리하는 파티션 내의 스위치에 연결되어 있다는 것을 의미하므로 호스트가 연결된 스위치로부터 현재 스위치까지의 비용으로 계산할 수 있다.At this time, the cost from the sender of the L2 packet to the current switch is calculated as the sum of the path cost from the corresponding switch's corresponding DPID to the cumulative cost to corresponding switch value of the sender entry corresponding to the host IP address . If the sender of the L2 packet does not exist in the cumulative cost information table for each host, it means that the host is connected to the switch in the partition managed by the individual controller. have.
전술한 바와 같은 라우팅 방법을 통해 별도로 정의된 패킷을 데이터 플레인에 전송하는 대신, 별도로 정의된 패킷을 컨트롤러간 상태 정보 공유를 통하여 전송하고, 해당 패킷을 수신한 컨트롤러가 수신한 L2 패킷의 플러딩함과 동시에 다음의 절차를 수행하도록 할 수 있다. 이 경우에는 컨트롤러간 상태 정보 공유 매커니즘이 적용될 수 있다. Instead of transmitting a packet defined separately through the above-described routing method to the data plane, a separately defined packet is transmitted through sharing of state information between the controllers, and the L2 packet received by the controller receiving the packet is flooded At the same time, the following procedure can be performed. In this case, the inter-controller state information sharing mechanism can be applied.
전술한 방법은 오픈플로우 스위치로 구성된 하나의 네트워크가 스위치의 근접성 정보를 기준으로 파티셔닝된 상태를 가정한 것이다. 이를 위해서는 개별 컨트롤러 중의 하나가 데이터 플레인 상의 스위치의 접속을 허용하고, 실시간 또는 일정 시간 후 데이터 플레인 상의 스위치들을 분산 컨트롤러 내의 개별 컨트롤러로 이전 (Migration)할 수 있다. 또한, 사용자가 노스바운드 API (Northbound API)를 통하여 전체 토폴로지의 모니터링 및 제어를 허락하기 위하여, 개별 컨트롤러의 정보들을 수집하고 제어하는 장치를 추가할 수 있다. The above-described method assumes that one network composed of open flow switches is partitioned based on the proximity information of the switches. To do so, one of the individual controllers may allow the connection of the switches on the data plane and migrate the switches on the data plane to the individual controllers in the distributed controller in real time or after a certain time. In addition, a device may be added to collect and control information of individual controllers to allow the user to monitor and control the entire topology through the Northbound API (API).
Claims (17)
동일 네트워크의 다른 컨트롤러에 의해 관리되는 스위치의 포트 정보를 외부 포트 정보 테이블로 관리하는 단계와,
스위치로부터 패킷과 함께 누적 비용이 포함된 별도로 정의된 패킷을 수신함에 따라, 상기 누적 비용으로 호스트별 누적 비용 정보 테이블을 갱신함과 아울러, 상기 패킷을 다른 스위치들에 플러딩하되, 다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있을 경우, 별도로 정의된 패킷을 함께 전송하는 단계를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
A distributed routing method in a controller in an open flow network partitioned environment,
Managing port information of a switch managed by another controller of the same network in an external port information table;
And a controller for updating the cumulative cost information table for each host with the cumulative cost and for flooding the packet to other switches, And if the packet is included in the external port information table, transmitting separately defined packets together.
LLDP 패킷을 수신함에 따라, LLDP 패킷을 송신한 스위치가 자신이 관리하는 파티션 내에 위치한 스위치인지를 판단하는 단계와,
상기 판단 결과, 자신이 관리하는 파티션 내의 스위치가 아닌 경우, 상기 LLDP 패킷을 송신한 스위치가 동일 네트워크 내 다른 컨트롤러가 관리하는 스위치인지를 판단하는 단계와,
상기 판단 결과, 동일 네트워크 내 분산 컨트롤러가 관리하는 스위치인 경우, 해당 스위치의 포트 정보를 외부 포트 정보 테이블에 저장하는 단계를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
The method of claim 1, wherein the administering comprises:
Determining whether the switch transmitting the LLDP packet is a switch located in a partition managed by the LLDP packet upon receiving the LLDP packet,
Determining whether a switch that has transmitted the LLDP packet is a switch managed by another controller in the same network, if it is determined that the switch is not a switch in a partition managed by itself;
And storing the port information of the switch in an external port information table when the switch is a switch managed by a distributed controller in the same network as the determination result.
The method as claimed in claim 2, wherein the step of determining whether the switch is managed by another controller in the same network includes: determining whether the ID of the controller, open flow support, and whether the distributed controller manages the same network through the Optional TLV field defined in the LLDP packet Wherein said method comprises the steps of:
스위치의 DPID 및 포트 넘버를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
The method of claim 2, wherein the external port information table
And a DPID and a port number of the switch. The distributed routing method in an open-flow network division environment.
스위치로부터 수신된 패킷이 송신자로부터 스위치까지의 누적 비용 정보를 포함하는 별도로 정의된 패킷을 포함하는지를 판단하는 단계와,
상기 별도로 정의된 패킷을 포함할 경우, 패킷과 별도로 정의된 패킷을 분리하여 호스트별 누적 비용 정보 테이블을 갱신하는 단계와,
상기 패킷을 다른 스위치들에 플러딩하되, 다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있는지를 검색하는 단계와,
상기 검색 결과 포트가 외부 포트 정보 테이블에 포함되어 있을 경우, 해당 포트에는 패킷과 함께 별도로 정의된 패킷을 전송하는 단계를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
2. The method of claim 1, wherein the transmitting
Determining whether a packet received from the switch includes a separately defined packet including cumulative cost information from the sender to the switch;
Updating a cumulative cost information table for each host by separating a packet defined separately from the packet when the separately defined packet is included;
The method comprising the steps of: flooding the packet to other switches, and detecting whether a port of another switch is included in the external port information table;
And if the search result port is included in the external port information table, transmitting a packet separately defined together with the packet to the corresponding port.
미리 저장된 호스트별 누적 비용 정보들과 비교하여, 동일 호스트에 대해 비용 정보가 최소일 경우에 호스트별 누적 비용 정보 테이블을 갱신함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
6. The method of claim 5, wherein the updating comprises:
Wherein the accumulated cost information for each host is compared with the accumulated cost information for each host, and the accumulated cost information table for each host is updated when the cost information is minimum for the same host.
상기 검색 결과 해당 스위치의 포트가 외부 포트 정보 테이블에 포함되어 있지 않을 경우, 해당 포트에는 패킷만을 전송하는 단계를 더 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
6. The method of claim 5,
Further comprising the step of transmitting only a packet to the corresponding port when the port of the corresponding switch is not included in the external port information table as a result of the search.
Host IP address에 해당하는 송신자 엔트리의 누적 비용(Cumulative cost to corresponding switch) 값과 해당 스위치(corresponding switch's DPID)로부터 현재 스위치까지 경로 비용의 합으로 산출됨을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 방법.
6. The method of claim 5,
And the path cost from the corresponding switch (corresponding switch's DPID) to the current switch is calculated as the cumulative cost to corresponding switch value of the sender entry corresponding to the host IP address. Way.
동일 네트워크의 다른 컨트롤러에 의해 관리되는 스위치의 포트 정보를 상기 외부 포트 정보 테이블에 저장하는 외부 포트 정보 관리부와,
스위치로부터 패킷과 함께 누적 비용이 포함된 별도로 정의된 패킷을 수신하는 패킷 수신부와,
누적 비용 정보 테이블과,
상기 누적 비용으로 호스트별 누적 비용 정보 테이블을 갱신하는 누적 비용 정보 갱신부와,
상기 패킷을 다른 스위치들에 플러딩하는 패킷 송신부와,
다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있을 경우, 별도로 정의된 패킷을 생성하여 상기 패킷 송신부에서 전송되도록 하는 누적 비용 정보 산출부를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.An external port information table,
An external port information management unit for storing port information of a switch managed by another controller of the same network in the external port information table;
A packet receiver for receiving a separately defined packet including an accumulated cost together with a packet from the switch;
An accumulated cost information table,
An accumulated cost information updating unit for updating the accumulated cost information table for each host by the accumulated cost;
A packet transmitter for flooding the packet to other switches;
And an accumulated cost information calculation unit for generating a separately defined packet and transmitting the separately defined packet to the packet transmission unit when a port of another switch is included in the external port information table. Device.
LLDP 패킷을 수신함에 따라, LLDP 패킷을 송신한 스위치가 자신이 관리하는 파티션 내에 위치한 스위치가 아닌 경우, 상기 LLDP 패킷을 송신한 스위치가 동일 네트워크 내 다른 컨트롤러가 관리하는 스위치인지를 판단하고, 동일 네트워크 내 분산 컨트롤러가 관리하는 스위치인 경우, 해당 스위치의 포트 정보를 외부 포트 정보 테이블에 저장함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
The method of claim 9, wherein the external port information management unit
When the LLDP packet is received, if the switch transmitting the LLDP packet is not a switch located in the partition managed by the LLDP packet, it is determined whether the switch that transmitted the LLDP packet is a switch managed by another controller in the same network. And the port information of the switch is stored in the external port information table when the switch is managed by the internal distributed controller.
동일 네트워크 내 다른 컨트롤러가 관리하는 스위치인지를 판단하기 위해, LDP 패킷에 정의된 OptionalTLV 필드를 통해 컨트롤러의 ID, 오픈 플로우 지원 여부, 동일한 네트워크를 관리하는 분산 컨트롤러인지 여부를 판단함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
The method of claim 10, wherein the external port information management unit
In order to determine whether the switch is managed by another controller in the same network, it is determined whether the ID of the controller, the open flow support, and whether it is a distributed controller managing the same network through the Optional TLV field defined in the LDP packet Distributed routing apparatus in a flow network partitioned environment.
스위치의 DPID 및 포트 넘버를 포함함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.11. The method of claim 10, wherein the external port information table
And a DPID and a port number of the switch.
스위치로부터 수신된 패킷이 송신자로부터 스위치까지의 누적 비용 정보를 포함하는 별도로 정의된 패킷을 포함할 경우, 별도로 정의된 패킷을 분리하여 상기 누적 비용 정보 갱신부에 전달함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
The apparatus of claim 9, wherein the packet receiver
When the packet received from the switch includes a separately defined packet including cumulative cost information from the sender to the switch, separates the separately defined packet and delivers it to the cumulative cost information updating unit. Distributed routing device in an environment.
미리 저장된 호스트별 누적 비용 정보들과 비교하여, 동일 호스트에 대해 비용 정보가 최소일 경우에 호스트별 누적 비용 정보 테이블을 갱신함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
14. The method of claim 13, wherein the cumulative cost information updating unit
Wherein the accumulated cost information for each host is compared with the accumulated cost information for each host, and the accumulated cost information for each host is updated when the cost information is the minimum for the same host.
상기 패킷을 다른 스위치들에 플러딩하되, 다른 스위치들의 포트가 상기 외부 포트 정보 테이블에 포함되어 있는지를 검색하여, 포트가 외부 포트 정보 테이블에 포함되어 있을 경우, 상기 누적 비용 정보 산출부에 요청하여 누적 비용 정보를 획득하고, 상기 획득된 누적 비용 정보가 포함된 별도로 정의된 패킷을 상기 패킷과 함께 전송함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
The method of claim 9, wherein the packet transmission unit
The packet is flooded to other switches, and a check is made as to whether ports of other switches are included in the external port information table. When the port is included in the external port information table, Cost information, and transmits a separately defined packet including the acquired accumulated cost information together with the packet.
상기 검색 결과 해당 스위치의 포트가 외부 포트 정보 테이블에 포함되어 있지 않을 경우, 해당 포트에는 패킷만을 전송함을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치.
16. The apparatus of claim 15, wherein the packet transmitter
Wherein when the port of the corresponding switch is not included in the external port information table, only the packet is transmitted to the corresponding port.
Host IP address에 해당하는 송신자 엔트리의 누적 비용(Cumulative cost to corresponding switch) 값과 해당 스위치(corresponding switch's DPID)로부터 현재 스위치까지 경로 비용의 합으로 산출됨을 특징으로 하는 오픈 플로우 네트워크 분할 환경에서의 분산 라우팅 장치. 9. The method of claim 8,
And the path cost from the corresponding switch (corresponding switch's DPID) to the current switch is calculated as the cumulative cost to corresponding switch value of the sender entry corresponding to the host IP address. Device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150129233A KR20170031539A (en) | 2015-09-11 | 2015-09-11 | Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150129233A KR20170031539A (en) | 2015-09-11 | 2015-09-11 | Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170031539A true KR20170031539A (en) | 2017-03-21 |
Family
ID=58502497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150129233A KR20170031539A (en) | 2015-09-11 | 2015-09-11 | Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20170031539A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180136605A (en) * | 2017-06-14 | 2018-12-26 | 고려대학교 산학협력단 | Method for measuring path latency based on sdn |
-
2015
- 2015-09-11 KR KR1020150129233A patent/KR20170031539A/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180136605A (en) * | 2017-06-14 | 2018-12-26 | 고려대학교 산학협력단 | Method for measuring path latency based on sdn |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10057158B2 (en) | Control device discovery in networks having separate control and forwarding devices | |
US9385949B2 (en) | Routing controlled by subnet managers | |
KR100671526B1 (en) | A method and apparatus for addressing and routing in wireless mesh networks | |
EP3384640B1 (en) | Communication among network controllers | |
KR20150056159A (en) | A method operating of a controller and a switch to resolve network error, and the controller and the switch therefor | |
WO2013082983A1 (en) | Method and apparatus for data transmission between openflow network domains | |
US9729948B1 (en) | Systems and methods for discovery of a controller in openflow networks | |
US10250717B2 (en) | Scaling cloud rendezvous points in a hierarchical and distributed manner | |
US8416701B1 (en) | System and method for updating forwarding tables | |
KR20170031539A (en) | Apparatus and Method for Distributed Routing in Open Flow Network Partitioning Circumstance | |
Cisco | Configuring Banyan VINES | |
Cisco | Configuring Banyan VINES | |
Cisco | Configuring Banyan VINES | |
Cisco | Banyan VINES Commands | |
Cisco | Banyan VINES Commands | |
Cisco | Banyan VINES Commands | |
Cisco | vines access-group to vines update interval | |
Cisco | Banyan VINES Commands | |
Cisco | Banyan VINES Commands | |
Cisco | Banyan VINES Commands | |
Cisco | Configuring Banyan VINES | |
Cisco | Configuring Banyan VINES | |
Cisco | Configuring Banyan VINES | |
Cisco | Banyan VINES Commands | |
Cisco | Banyan VINES Commands |