KR20150039877A - 스위치 시스템, 스위치 제어 방법 및 기억 매체 - Google Patents

스위치 시스템, 스위치 제어 방법 및 기억 매체 Download PDF

Info

Publication number
KR20150039877A
KR20150039877A KR1020157007618A KR20157007618A KR20150039877A KR 20150039877 A KR20150039877 A KR 20150039877A KR 1020157007618 A KR1020157007618 A KR 1020157007618A KR 20157007618 A KR20157007618 A KR 20157007618A KR 20150039877 A KR20150039877 A KR 20150039877A
Authority
KR
South Korea
Prior art keywords
packet
action
open
flow
unit
Prior art date
Application number
KR1020157007618A
Other languages
English (en)
Other versions
KR101627475B1 (ko
Inventor
요지 스즈끼
마사노리 다까시마
가즈시 구보따
데쯔 이자와
마사시 하야시
Original Assignee
닛본 덴끼 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 닛본 덴끼 가부시끼가이샤 filed Critical 닛본 덴끼 가부시끼가이샤
Publication of KR20150039877A publication Critical patent/KR20150039877A/ko
Application granted granted Critical
Publication of KR101627475B1 publication Critical patent/KR101627475B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

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

Abstract

스위치 시스템은, 기존의 리소스로서 스위치의 테이블들을 사용해서 오픈플로우 테이블의 엔트리 수 확장을 실현한다. 구체적으로는, 스위치는 주어진 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합함으로써 오픈플로우 테이블을 구성한다. 스위치는 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정한다. 스위치는 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행한다.

Description

스위치 시스템, 스위치 제어 방법 및 기억 매체{SWITCHING SYSTEM, SWITCHING CONTROL METHOD, AND MEMORY MEDIUM}
본 발명은, 스위칭 시스템에 관한 것으로, 특히 개개의 스위치가 복수의 테이블을 갖는 스위칭 시스템에 관한 것이다.
네트워크 시스템에서의 통신 경로를 제어하기 위해, 통신 기기의 제어 프로토콜로서 오픈플로우(OpenFlow) 기술을 사용한 경로 제어 방법이 최근 개발되었다. 오픈플로우 기술에 따라 경로 제어가 행해지는 네트워크를, 오픈플로우 네트워크(OpenFlow Network)라고 칭한다.
오픈플로우 네트워크에서는, OFC(OpenFlow Controller) 등의 컨트롤러가 OFS(OpenFlow Switch) 등의 스위치의 각각의 오픈플로우 테이블(OpenFlow Table)을 조작하여 스위치의 거동을 제어한다. 컨트롤러는 오픈플로우 프로토콜(OpenFlow Protocol)에 준거한 제어 메시지를 사용해서 스위치를 제어하기 위해 보안 채널(Secure Channel)을 통해 스위치에 접속되어 있다.
오픈플로우 네트워크에 있어서의 스위치는, 오픈플로우 네트워크를 형성하고, 컨트롤러의 제어 하에 있는 에지 스위치 또는 코어 스위치이다. 오픈플로우 네트워크 내의 입력측 에지 스위치에서의 패킷의 수신으로부터 오픈플로우 네트워크 내의 출력측 에지 스위치에서의 송신까지의 일련의 패킷 처리 유형들을 플로우(flow)라고 칭한다.
오픈플로우 테이블은, 미리 결정된 매치 조건(룰)에 적합한 패킷(통신 데이터)에 대하여 행해야 할 미리 결정된 처리 내용(액션)을 정의한 플로우 엔트리(Flow Entry)가 등록된 테이블이다.
플로우 엔트리의 룰은, 패킷의 프로토콜 계층구조의 각 계층의 헤더 필드에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port), 및 송신원 포트(Source Port) 중 일부 또는 전부의 다양한 조합에 따라 정의되고, 구별가능하다. 또한, 상기 어드레스는 MAC 어드레스(Media Access Control Address) 및 IP 어드레스(Internet Protocol Address)를 포함한다. 또한, 입구 포트(Ingress Port)의 정보도 플로우 엔트리의 룰로서 사용가능하다.
플로우 엔트리의 액션은 "특정한 포트에 출력한다", "폐기한다", "헤더를 재기입한다"와 같은 동작을 나타낸다. 예를 들어, 스위치는, 플로우 엔트리의 액션에 출력 포트의 식별 정보(예를 들어, 출력 포트 번호)가 표시되어 있으면 그 포트에 패킷을 출력하고, 출력 포트의 식별 정보가 표시되어 있지 않으면 패킷을 파기한다. 대안적으로, 스위치는, 플로우 엔트리의 액션에 헤더 정보가 표시되어 있으면, 그 헤더 정보에 기초하여 패킷의 헤더를 재기입한다.
오픈플로우 네트워크 내의 스위치는, 플로우 엔트리의 룰을 따르는 패킷 군(패킷 계열)에 대하여 플로우 엔트리의 액션을 실행한다.
오픈플로우 스위치의 상세에 대해서는, 비특허 문헌 1 및 2에 기재되어 있다.
네트워크 상의 대량의 플로우를 제어하기 위해서는 대용량의 오픈플로우 테이블이 요구된다. 현 상황에서는, 오픈플로우 테이블에 사용되는 TCAM(Ternary Content Addressable Memory)은 대용량을 갖지 않으므로, 필요 충분한 용량이 보장되지 않는다. 또한, 오픈플로우 테이블에서 사용되고 있는 스위치의 각 테이블(주로 TCAM)의 용량 자체를 증가시키는 것은 어렵다.
상기 과제의 해결 방법의 하나로서 외부 TCAM이 사용될 수 있지만, 이것에는 비용이 든다. 또한, 10G 멀티포트와 같은 고속 전송의 기기(데이터 전송속도 10G 비트/초에 대응할 수 있는 복수의 포트를 갖는 네트워크 기기)에서는, 외부 TCAM이 이용될 수 없다. 적어도 현 상황에서는 10G 스위치에서 동작가능한 외부 TCAM은 존재하지 않는다.
본 발명의 목적은 기존의 리소스로서 스위치의 테이블들을 사용해서 오픈플로우 테이블의 엔트리 수 확장을 실현하는 것에 있다.
본 발명의 스위칭 시스템은, 미리 결정된 수신 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합해서 오픈플로우 테이블을 구성하고, 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정하는 오픈플로우 기능부와, 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행하는 액션 기능부를 포함한다.
본 발명의 스위치 제어 방법은 오픈플로우 스위치에서 실시되며, 수신 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합해서 오픈플로우 테이블을 구성하는 단계; 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정하는 단계; 및 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행하는 단계를 포함한다.
본 발명에 따른 프로그램은, 스위치로서 사용되는 컴퓨터로 하여금, 전술한 스위치 제어 방법에 있어서의 처리를 실행하게 하는 프로그램이다. 본 발명에 따른 프로그램은 저장 유닛 및 저장 매체에 저장하는 것이 가능하다는 점에 유의해야 한다.
본 발명은 컨트롤러가 스위치 내부의 복수의 테이블을 1개의 대용량의 오픈플로우 테이블로서 사용할 수 있게 하는 것을 허용한다.
도 1은 본 발명에 따른 스위칭 시스템의 구성예를 나타내는 개념도이다.
도 2는 본 발명의 제1 실시 형태에 따른 오픈플로우 기능부의 상세를 나타내는 개념도이다.
도 3은 본 발명의 제1 실시 형태에 따른 오픈플로우 액션 해결부의 상세를 나타내는 개념도이다.
도 4는 오픈플로우 테이블 제어의 개요를 도시하는 도면이다.
도 5는 오픈플로우 테이블 제어의 제1 방식의 예의 상세를 도시하는 도면이다.
도 6은 오픈플로우 테이블 제어의 제2 방식의 예의 상세를 도시하는 도면이다.
도 7a는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 7b는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 8a는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 8b는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 9는 오픈플로우 테이블 제어의 제1 방식의 구체예를 설명하기 위한 도면이다.
도 10은 오픈플로우 테이블 제어의 제2 방법의 구체예를 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 1의 상세를 나타내는 개념도이다.
도 12는 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 2의 상세를 나타내는 개념도이다.
도 13은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 3의 상세를 나타내는 개념도이다.
<제1 실시 형태>
이하에, 본 발명의 제1 실시 형태에 대해서 첨부 도면을 참조하여 설명한다.
[시스템 구성]
도 1에 도시한 바와 같이, 본 발명에 따른 스위칭 시스템은 컨트롤러(101)와 스위치(102)를 포함한다.
컨트롤러(101)는, 오픈플로우 프로토콜에 준거한 처리에서 스위치(102)를 제어한다.
[스위치의 구조]
스위치(102)는, 프로토콜 제어부(103), 입력 포트(104), 오픈플로우 기능부(105), 레거시(Legacy) 기능부(108), 액션(Action) 기능부(111) 및 출력 포트(112)를 포함한다.
프로토콜 제어부(103)는, 컨트롤러(101)가 오픈플로우 프로토콜에 준거한 처리에서 스위치(102)를 제어하기 위한 통신을 행할 때에, 컨트롤러(101)와 스위치(102) 사이에서 프로토콜 제어를 행한다. 프로토콜 제어부(103)는 스위치(102) 내에 제공될 필요는 없고, 스위치(102) 이전의 스테이지에서 제공될 수 있다.
입력 포트(104)는 패킷 입력용 인터페이스이다. 입력 포트(104)는 오픈플로우 유효 포트와 오픈플로우 무효 포트를 갖는다. 오픈플로우 유효 포트는 오픈플로우 프로토콜을 따르는 입력 포트이며, 오픈플로우 무효 포트는 오픈플로우 프로토콜을 따르지 않는 입력 포트이다.
오픈플로우 기능부(105)는 오픈플로우 유효 포트로부터 입력한 패킷을 처리한다.
오픈플로우 기능부(105)는 오픈플로우 테이블 관리부(106) 및 오픈플로우 액션 해결부(OpenFlow Action Resolver)(107)를 포함한다.
오픈플로우 테이블 관리부(106)는 스위치(102)가 사용하는 오픈플로우 테이블을 유지한다. 오픈플로우 테이블에는, 오픈플로우 프로토콜을 따르는 패킷에 대한 액션(오픈플로우 처리의 액션)이 정의되어 있다.
오픈플로우 액션 해결부(107)는 오픈플로우 테이블 관리부(106)의 검색(Lookup) 결과를 기초로 오픈플로우 처리의 액션을 결정한다.
레거시 기능부(108)는 오픈플로우 무효 포트로부터 입력된 패킷을 처리한다.
레거시 기능부(108)는 레거시 테이블 관리부(109) 및 레거시 액션 해결부(110)를 포함한다.
레거시 테이블 관리부(109)는 스위치(102)가 사용하는 레거시 테이블이다. 레거시 테이블 관리부(109)는 오픈플로우 프로토콜을 따르지 않는 패킷(통상의 패킷 등)에 대한 액션(레거시 처리의 액션)을 정의하고 있다.
레거시 액션 해결부(110)는 레거시 테이블 관리부(109)의 검색 결과를 기초로 레거시 처리의 액션을 결정한다. 레거시 처리에서는, 통상의 스위치 기능을 사용한다.
액션 기능부(111)는 오픈플로우 기능부(105) 또는 레거시 기능부(108)에서 결정된 액션을 수행한다.
출력 포트(112)는 패킷 출력용 인터페이스이다.
[오픈플로우 처리와 레거시 처리의 차이]
오픈플로우 처리에서는, 패킷의 경로가 외부의 컨트롤러를 통하여 제어된다. 컨트롤러는 전체 네트워크에서 최적인 경로를 선택한다. 한편, 레거시 처리에서는, 통상의 스위치 및 라우터에서와 같이, 자율 분산으로 경로가 제어된다. 통상의 스위치 및 라우터는 자신의 환경에 관한 정보로부터 네트워크 상태를 결정하여 최적 경로를 선택한다.
오픈플로우 처리에서는, 최대 12종류의 정보의 조합에 기초하여 패킷 식별을 행할 수 있다. 한편, 레거시 처리에서는, L2 네트워크의 경우에서의 수신처 MAC 어드레스 및 L3 네트워크의 경우에서의 수신처 IP 어드레스와 같이, 패킷 식별에 사용할 수 있는 정보 종류의 수가 적다. 이로 인해, 섬세한 플로우 제어를 행하는 것이 어렵다. 예를 들어, 레거시 처리에서는, 동일한 수신처 IP 어드레스에서도, 송신원 TCP 포트 번호가 상이하면, 다른 플로우로 판단해서 다른 경로를 선택한다.
[스위칭 시스템의 전체 동작]
이하에, 도 1의 스위칭 시스템의 전체 동작에 대해서 설명할 것이다.
[패킷 입력]
스위치(102)에 신규 패킷이 유입했을 때, 스위치(102)는 입력 포트(104)에서 이 패킷을 수취한다.
스위치(102)는 패킷을 수취한 입력 포트(104)가 오픈플로우 유효 포트인지 아닌지 확인한다. 예를 들어, 스위치(102)는 스위치(102) 자체 또는 입력 포트(104)의 설정 정보(config)를 참조하여, 입력 포트(104)가 오픈플로우 유효 포트인지 아닌지 확인한다.
[패킷 입력으로부터 오픈플로우 처리로의 이행]
입력 포트가 오픈플로우 유효 포트인 경우, 스위치(102)는 패킷을 입력 포트(104)로부터 오픈플로우 기능부(105)에 전달한다.
[오픈플로우 처리]
오픈플로우 기능부(105)는 전달받은 패킷에 대해서, 스위치(102)의 복수의 테이블을 유지하는 오픈플로우 테이블 관리부(106)에서 검색 처리를 행한다.
이어서, 오픈플로우 기능부(105)는, 오픈플로우 액션 해결부(107)에서, 검색 결과 및 각 테이블의 우선 순위(Priority)에 기초하여 패킷의 액션을 결정한다. 우선 순위는 우선 레벨로도 지칭될 수 있다.
[오픈플로우 처리로부터 액션 실행으로의 이행]
결정된 액션이 "Packet-IN"(컨트롤러에 대한 패킷의 액션 문의)이었을 경우(예를 들어, 플로우 엔트리가 존재하지 않고 액션을 결정할 수 없었을 경우), 오픈플로우 기능부(105)는 프로토콜 제어부(103)를 통해서 컨트롤러(101)에 문의(해당 패킷의 전송 등)를 행한다. 처음에는, 레거시 처리의 대상으로 되는 패킷 이외의 모든 패킷의 액션이 무조건 "Packet-IN"이라고 설정될 수 있다. 오픈플로우 기능부(105)는 문의에 대한 응답으로서 "Packet-OUT"(컨트롤러로부터의 액션 문의 결과)을 수취하고, 그 내용을 해당 패킷의 액션으로서 결정하고, 오픈플로우 테이블 관리부(106)가 유지하는 테이블에 등록한다. 이후, 오픈플로우 기능부(105)는 오픈플로우 액션 해결부(107)에서 전술한 패킷과 동일한 룰을 따르는 패킷에 대하여 이 액션을 결정하게 된다.
오픈플로우 기능부(105)는 결정된 액션에 기초하여 패킷을 액션 기능부(111)로 보낸다. 즉, 패킷의 처리의 주체가 오픈플로우 기능부(105)로부터 액션 기능부(111)로 이행한다.
[오픈플로우 처리로부터 레거시 처리로의 이행]
오픈플로우 기능부(105)는, 결정된 액션이 "NORMAL"(레거시 기능부(108)를 사용한 패킷 처리)이었던 경우에는, 패킷을 레거시 기능부(108)로 보낸다. 즉, 패킷의 처리의 주체가, 오픈플로우 기능부(105)로부터 레거시 기능부(108)로 이행한다.
[패킷 입력으로부터 레거시 처리로의 이행]
또한, 스위치(102)는, 입력 포트(104)가 오픈플로우 무효 포트인 경우 또는 당해 패킷에 대하여 먼저(이전에) 오픈플로우 기능부(105)에서 결정된 액션이 "NORMAL"이었을 경우, 패킷을 입력 포트(104)로부터 레거시 기능부(108)로 보낸다. 즉, 패킷의 처리의 주체가 입력 포트(104)로부터 레거시 기능부(108)로 이행한다.
[레거시 처리]
레거시 기능부(108)는 수취한 패킷에 대해서, 스위치(102)의 복수의 테이블로 구성되는 레거시 테이블 관리부(109)에 있어서 검색 처리를 행한다.
[레거시 처리로부터 액션 실행으로의 이행]
이어서, 레거시 기능부(108)는 레거시 액션 해결부(110)에 있어서 검색 결과 및 각 테이블의 우선 순위에 기초하여 패킷의 액션을 결정한다. 즉, 패킷의 처리의 주체가 레거시 기능부(108)로부터 액션 기능부(111)로 이행한다.
레거시 기능부(108) 내지 레거시 액션 해결부(110)에서의 레거시 처리에서는 통상의 스위치 기능을 사용하므로, 그의 상세한 설명은 생략된다.
[액션 실행]
액션 기능부(111)는 패킷에 대하여 오픈플로우 기능부(105) 또는 레거시 기능부(108)에서 결정된 액션을 실행한다.
오픈플로우 기능부(105)에서 결정된 액션의 예로서, 헤더 정보의 재기입, 지정된 출력 포트로부터의 패킷 출력, 패킷 파기 등을 생각할 수 있다. 레거시 기능부(108)에서 결정된 액션의 예로서, 라우팅(routing)에 의한 패킷 전송 등을 생각할 수 있다. 그러나, 본 발명은 이들 예에 한정되지 않는다.
마지막으로, 액션 기능부(111)는 실행될 액션이 "패킷 출력"을 포함할 때, 그 액션의 내용에 따라, 적절한 출력 포트(112)로부터 패킷을 출력한다.
[컨트롤러에 의한 오픈플로우 테이블의 제어]
또한, 컨트롤러(101)는 프로토콜 제어부(103)를 통해서 스위치(102)의 오픈플로우 테이블 관리부(106)를 제어할 수 있다. 여기서, "오픈플로우 테이블 관리부(106)의 제어"는, 오픈플로우 테이블 내의 플로우 엔트리의 등록/변경/삭제/일괄 삭제 등을 의미한다.
오픈플로우 테이블 관리부(106)가 오픈플로우 테이블로서 유지하는 스위치(102)의 각 테이블은, 반드시 오픈플로우 사양에서 규정되어 있는 모든 조작을 따를 필요는 없다.
이로 인해, 컨트롤러(101)는, 오픈플로우 테이블에 대해 오픈플로우 테이블에 관리부(106)에 의해 유지되는 각 테이블에 의해 실현 가능할 수 있는 기능(설정 가능한 액션들)을 고려하여, 오픈플로우 테이블 관리부(106)를 제어할 필요가 있다.
[오픈플로우 기능부의 상세]
도 2는, 본 발명의 오픈플로우 기능부(105)의 상세에 대해서 설명하기 위한 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107) 및 액션 기능부(111)는 도 1에 도시되어 있는 것과 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)는 오픈플로우 테이블 관리부(106) 및 오픈플로우 액션 해결부(107)를 포함한다.
오픈플로우 테이블 관리부(106)는 테이블 군(113) 및 검색 기능부(114)를 포함한다.
테이블 군(113)은 오픈플로우 테이블을 구성하는 테이블 군이다.
검색 기능부(114)는 테이블 군(113)에 기초하여 입력 패킷의 데이터를 검색한다.
검색 기능부(114)는 L2/L3/기타 테이블(OF) 검색 기능부(115) 및 TCAM(OF) 검색 기능부(116)를 포함한다.
"OF"는 "OpenFlow"의 약어이다.
L2/L3/기타 테이블(OF) 검색 기능부(115)는 입력 패킷에 대해서 L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)을 참조하여 엔트리를 검색한다. 기타 테이블(OF)의 일례로서, 멀티캐스트 라우팅 테이블을 들 수 있다. 즉, L2/L3/기타 테이블(OF) 검색 기능부(115)는 입력 패킷에 대해서 프로토콜 단위로 테이블의 검색을 실행한다.
TCAM(OF) 검색 기능부(116)는 입력 패킷에 대해서 TCAM(OF)을 참조하여, 엔트리를 검색한다. 즉, TCAM(OF) 검색 기능부(116)는 입력 패킷에 대해서 TCAM을 검색한다.
[오픈플로우 기능부의 동작]
이하에, 도 2에 도시된 오픈플로우 기능부(105)의 동작에 대해서 설명한다.
입력 포트(104)는 오픈플로우 유효 포트로부터 입력된 패킷을, 오픈플로우 기능부(105)로 보낸다.
오픈플로우 기능부(105)는 받은 패킷에 대해서 스위치(102)의 복수의 테이블로 구성되는 오픈플로우 테이블 관리부(106)에서 검색 처리를 행한다.
이 때, 오픈플로우 테이블 관리부(106)의 검색 기능부(114)는, 오픈플로우 테이블을 구성하는 테이블 군(113)에 등록된 엔트리 정보에 기초하여 검색 처리를 행한다.
구체적으로, 검색 기능부(114)에서, L2/L3/기타 테이블(OF) 검색 기능부(115)가 먼저 검색 처리를 행하고, 계속해서, TCAM(OF) 검색 기능부(116)가 검색 처리를 행한다.
검색 기능부(114)는 검색 결과를 오픈플로우 액션 해결부(107)로 보낸다.
오픈플로우 액션 해결부(107)는 검색 결과 및 각 테이블의 우선 순위에 기초하여 패킷의 액션을 결정한다.
[하드웨어의 예시]
이하에, 본 발명에 따른 스위칭 시스템을 실현하기 위한 구체적인 하드웨어의 예에 대해서 설명할 것이다.
컨트롤러(101)의 예로서, PC(퍼스널 컴퓨터), 워크스테이션, 메인 프레임, 슈퍼컴퓨터 등의 컴퓨터를 상정하고 있다. 컨트롤러(101)는, 컴퓨터에 탑재되는 확장 보드나, 물리 머신 위에 구축된 가상 머신(VM: Virtual Machine)일 수 있다.
스위치(102)의 예로서, L3 스위치(layer 3 switch), L4 스위치(layer 4 switch), L7 스위치/어플리케이션 스위치(layer 7 switch) 또는 멀티레이어 스위치(multi-layer switch) 등의 네트워크 스위치(network switch)를 상정하고 있다. 그 밖에도, 스위치(102)의 예로서, 라우터(router), 프록시(proxy), 게이트웨이(gateway), 방화벽(firewall), 로드 밸런서(load balancer: 부하 분산 장치), 대역 컨트롤러/보안 감시 컨트롤러(게이트키퍼), 기지국, 액세스 포인트(AP: Access Point), 통신 위성(CS: Communication Satellite) 및 복수의 통신 포트를 갖는 컴퓨터를 생각할 수 있다.
프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111)는, 프로그램에 기초하여 구동되어 미리 결정된 처리를 실행하는 프로세서, 및 프로그램 및 각종 데이터를 저장하는 메모리에 의해 실현된다.
전술한 프로세서의 예로서, CPU(Central Processing Unit), 네트워크 프로세서(NP: Network Processor), 마이크로프로세서(microprocessor), 마이크로컨트롤러 또는 전용의 기능을 갖는 반도체 집적 회로(IC: Integrated Circuit)를 생각할 수 있다.
전술한 메모리의 예로서, RAM(Random Access Memory), ROM(Read Only Memory), EEPROM(Electrically Erasable and Programmable Read Only Memory) 및 플래시 메모리 등의 반도체 저장 장치, HDD(Hard Disk Drive) 및 SSD(Solid State Drive) 등의 보조 저장 장치, DVD(Digital Versatile Disk)와 같은 이동식 디스크, 및 SD 메모리 카드(Secure Digital memory card) 등의 저장 매체(media) 등을 생각할 수 있다. 버퍼 및 레지스터가 채택될 수 있다. 대안적으로, DAS(Direct Attached Storage), FC-SAN(Fibre Channel-Storage Area Network), NAS(Network Attached Storage), IP-SAN(IP-Storage Area Network) 등을 사용한 저장 장치도 채택될 수 있다.
프로세서 및 메모리는 일체화될 수 있다. 예를 들어, 최근에는 마이크로컴퓨터 등이 1칩으로 일체화하고 있다. 따라서, 전자 기기에 탑재되는 1칩 마이크로컴퓨터가 프로세서 및 메모리를 구비할 수 있다.
대안적으로, 프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111)는, 컴퓨터에 탑재되는 확장 보드 또는 물리 머신 위에 구축된 가상 머신(VM)일 수 있다.
입력 포트(104) 및 출력 포트(112)의 예로서, 네트워크 통신을 따르는 기판(마더보드나 I/O 기판) 등의 반도체 집적 회로, NIC(Network Interface Card) 등의 네트워크 어댑터나 마찬가지의 확장 카드, 안테나 등의 통신 장치, 접속 포트(커넥터) 등의 통신 포트 등을 생각할 수 있다.
또한, 입력 포트(104) 및 출력 포트(112)가 이용하는 네트워크의 예로서, 인터넷, LAN(Local Area Network), 무선 LAN(Wireless LAN), WAN(Wide Area Network), 백본(Backbone), 케이블 TV(CATV) 회선, 유선 전화망, 휴대 전화망, WiMAX(IEEE 802.16a), 3G(3rd Generation), 전용선(lease line), IrDA(Infrared Data Association), Bluetooth(등록 상표), 시리얼 통신 회선, 데이터 버스 등을 생각할 수 있다.
프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111) 각각은 모듈(module), 컴포넌트(component) 또는 전용 디바이스, 또는 이들의 기동(호출) 프로그램일 수 있음에 주목해야 한다.
그러나, 본 발명은 이들의 예에 한정되지 않는다.
[오픈플로우 액션 해결부의 상세]
도 3은 본 발명의 오픈플로우 액션 해결부(107)의 상세를 보여주는 도면이다.
오픈플로우 액션 해결부(107) 및 TCAM(OF) 검색 기능부(116)는 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 액션 해결부(107)는, TCAM(OF)의 엔트리 맵핑을 조정함으로써 TCAM(OF) 검색 기능부(116)의 일부로서 실현된다.
이로 인해, 오픈플로우 액션 해결부(107) 및 TCAM(OF) 검색 기능부(116)는 실질적으로는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)을 구성한다. 이 기능 블록은 테이블 간 우선 순위(117) 및 TCAM(OF) 내의 엔트리(118)를 갖는다.
테이블 간 우선 순위(117)는 예상되는 액션 우선 순위를 나타낸다. TCAM(OF) 내의 엔트리(118)는, 우선 순위에 대응하는 TCAM(OF) 내의 엔트리 맵핑을 나타낸다.
TCAM(OF) 내의 엔트리(118)는, TCAM(OF) 검색용 엔트리 군(119), L2 테이블(OF) 검색 결과 참조용 엔트리(120), L3 테이블(OF) 검색 결과 참조용 엔트리(121), 기타 테이블(OF) 검색 결과 참조용 엔트리(122), 미스히트(Miss-hit)용 엔트리(123)를 포함한다.
TCAM(OF) 검색용 엔트리 군(119)은 TCAM(OF) 검색 기능부(116)에서의 TCAM(OF) 검색을 실현하기 위한 엔트리의 집합이다. L2 테이블(OF) 검색 결과 참조용 엔트리(120)는, L2 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. L3 테이블(OF) 검색 결과 참조용 엔트리(121)는 L3 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. 기타 테이블(OF) 검색 결과 참조용 엔트리(122)는, 기타 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. 미스히트용 엔트리(123)는 어느 엔트리에도 히트(hit)하지 않은 패킷을 "미스히트"로서 취급하기 위한 엔트리이다. 즉, 이들은 전술한 각각의 액션을 정의한 엔트리이다.
[오픈플로우 액션 해결부의 동작]
이하에, 도 3의 오픈플로우 액션 해결부(107)의 동작에 대해서 설명할 것이다.
오픈플로우 테이블 내의 검색 순서로서, 마지막으로, TCAM(OF) 검색 기능부(116)가 검색을 행한다. 또한, TCAM(OF) 검색 기능부(116)에의한 검색 시에, L2/L3/기타 테이블의 검색 결과를 참조하는 것이 가능한 스위치에서는, TCAM(OF)의 엔트리 맵핑을 조정함으로써, 오픈플로우 액션 해결부(107)를 실현하는 것이 가능하다는 점에 유의해야 한다.
예를 들어, 테이블 간 우선 순위(117)에서와 같은 테이블마다의 예상되는 액션 우선 순위는 TCAM(OF) 내의 엔트리(118)와 같이 맵핑함으로써 다루어질 수 있다.
도 3에 도시된 예의 경우에는, 액션 우선 순위(117)는 우선 순위가 높은 순으로부터, "전부 호환가능(TCAM(OF)에 등가)", "L2 호환가능(L2 테이블(OF)에 등가)", "L3 호환가능(L3 테이블(OF)에 등가)", "기타 호환가능(기타 테이블에 등가)"이 되어 있다.
오픈플로우 액션 해결부(107)는, TCAM(OF) 내의 엔트리 맵핑으로서 사용하여, TCAM(OF)의 검색 우선 순위가 높은 순으로부터, "TCAM(OF) 검색 기능 실현용 엔트리 군(119)", "L2 테이블(OF) 검색 결과 참조용 엔트리(120)", "L3 테이블(OF) 검색 결과 참조용 엔트리(121)", "기타 테이블(OF) 검색 결과 참조용 엔트리(122)", 및 "미스히트용 엔트리(123)"의 순서대로 배열할 수 있다.
[TCAM(OF) 검색용 엔트리 군]
TCAM(OF) 검색 기능 실현용 엔트리 군(119)은 검색 기능의 TCAM(OF) 검색 기능부(116)를 실현하기 위한 엔트리 군이다. 오픈플로우 액션 해결부(107)는, 입력 패킷이 TCAM(OF) 검색 기능 실현용 엔트리 군(119) 중의 임의의 엔트리에 히트했을 경우, 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[L2 테이블(OF) 검색 결과 참조용 엔트리]
L2 테이블(OF) 검색 결과 참조용 엔트리(120)는, 사전에 행해진 L2 테이블(OF)의 검색 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 L2 테이블(OF) 상에 존재할 경우에 히트하도록 결정된 것이다.
예를 들어, L2 테이블(OF)의 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "X=1"이 설정되고, TCAM(OF)의 L2 테이블(OF) 검색 결과 참조용 엔트리(120)에서는, 플래그 "X=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, L2 테이블(OF) 검색 결과 참조용 엔트리(120)가 히트하도록 결정된 경우, L2 테이블(OF)의 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[L3 테이블(OF) 검색 결과 참조용 엔트리]
검색 결과 참조용 엔트리(121)는 사전에 행해진 L3 테이블(OF)의 검색의 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 L3 테이블(OF) 상에 존재할 경우에 히트하도록 결정된 엔트리이다.
예를 들어, L3 테이블(OF) 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "Y=1"이 설정되고, TCAM(OF) 상의 L3 테이블(OF) 검색 결과 참조용 엔트리(121)에서는, 플래그 "Y=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, L3 테이블(OF) 검색 결과 참조용 엔트리(121)가 히트하도록 결정된 경우, L3 테이블(OF)의 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[기타 테이블(OF) 검색 결과 참조용 엔트리]
검색 결과 참조용 엔트리(122)는, 사전에 행해진 기타 테이블(OF)의 검색의 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 기타 테이블(OF) 상에 존재할 경우에 히트하도록 결정된다.
예를 들어, 기타 테이블(OF) 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "Z=1"이 설정되고, TCAM(OF) 상의 기타 테이블(OF) 검색 결과 참조용 엔트리(122)에서는, 플래그 "Z=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, 기타 테이블(OF) 검색 결과 참조용 엔트리(122)가 히트하도록 결정된 경우, 기타 테이블(OF)의 해당 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[미스히트용 엔트리]
미스히트용 엔트리(123)는, 입력 패킷이 TCAM(OF)의 어느 엔트리에도 히트하지 않았을 경우에 히트하도록 결정된 엔트리이다.
여기에서는, 미스히트용 엔트리(123)는 어떤 패턴을 갖는 패킷이라도 히트하는 엔트리이다. 오픈플로우 액션 해결부(107)는, 입력 패킷이 TCAM(OF)의 어느 엔트리에도 히트하지 않고, 미스히트용 엔트리(123)에만 히트할 경우, 오픈플로우의 설정에 따라, "Packet-IN"(컨트롤러에 대한 해당 패킷의 액션 문의) 또는 "NORMAL"(레거시 기능부를 사용한 패킷 처리)을 패킷에 대한 액션으로서 선택한다.
사용자가 각 테이블의 액션 우선 순위를 변경하려고 시도할 때, TCAM(OF) 내의 엔트리의 순서가 변경될 수 있다.
[오픈플로우 테이블 제어의 개요]
도 4는 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 개요도이다. 컨트롤러(101), 스위치(102), 프로토콜 제어부(103) 및 테이블 군(113)은, 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
스위치(102)는 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)을 포함한다.
TCAM(124)은 TCAM(OF) 및 TCAM(Legacy)을 포함한다. L2 테이블(125)은 L2 테이블(OF) 및 L2 테이블(Legacy)을 포함한다. L3 테이블(126)은 L3 테이블(OF) 및 L3 테이블(Legacy)을 포함한다. 기타 테이블(127)은 기타 테이블(OF) 및 기타 테이블(Legacy)을 포함한다.
TCAM(OF), L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)은 오픈플로우 테이블을 구성한다.
TCAM(Legacy), L2 테이블(Legacy), L3 테이블(Legacy) 및 기타 테이블(Legacy)은 레거시 테이블을 구성한다.
통상의 경우, 스위치(102) 상의 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)은 물리적으로는 1개의 테이블이다.
본 발명에 따른 스위치(102)는 물리적으로 1개인 테이블(TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127))을, 오픈플로우 테이블을 구성하는 테이블 군(113)과 레거시 테이블을 구성하는 테이블 군(128)으로 논리적으로 나누는 기능을 갖는다. 즉, 스위치(102)는 물리적으로 1개인 테이블(TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127))을 각 테이블에 대해 정의된 조건 및 처리 내용에 기초하여 나누고 논리적으로 통합해서 오픈플로우 테이블(테이블 군(113))과 레거시 테이블(테이블 군(128))을 구축한다.
오픈플로우 테이블을 구성하는 테이블 군(113)은 TCAM(OF), L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)을 포함한다.
레거시 테이블을 구성하는 테이블 군(128)은, TCAM(Legacy), L2 테이블(Legacy), L3 테이블(Legacy) 및 기타 테이블(Legacy)을 포함한다.
[오픈플로우 테이블 제어의 개요]
이하에, 도 4의 컨트롤러에 의한 오픈플로우 테이블 제어의 개요에 대해서 설명할 것이다.
컨트롤러(101)는 프로토콜 제어부(103)를 통해서, 스위치(102)의 오픈플로우 테이블을 제어하는 것이 가능하다.
통상의 경우, 스위치 상의 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)은 물리적으로는 각각 1개의 테이블이다.
본 발명에 따른 스위치는 테이블의 리소스의 일부를 오픈플로우용으로 잘라내서 사용하고, 오픈플로우 테이블을 구성하는 테이블 군(113)과 레거시 테이블을 구성하는 테이블 군(128)을 논리적으로 구축하는 기능을 갖는다. 즉, 스위치(102)는, TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)을 기초로, 논리적인 오픈플로우 테이블(테이블 군(113))과 레거시 테이블(테이블 군(128))을 구축한다.
오픈플로우 테이블을 구성하는 테이블들은 각각 실현할 수 있는 오픈플로우 기능이 상이하다.
이로 인해, 컨트롤러(101)는, "1: 각 테이블에서 수행 가능한 오픈플로우 기능은 어떤 것인가", "2: 제어될 엔트리는 오픈플로우 테이블을 구성하는 어느 테이블에 속하는 것인가"를 고려하여 오픈플로우 테이블 제어를 행할 필요가 있다.
예컨대 "1"에 대해서는, "컨트롤러는 다음의 메커니즘을 갖는다: 미리 각 테이블에서 실현 가능한 기능을 입력(Input)해 두고, 그 외의 제어를 행하고자 했을 경우에 에러를 반환한다", 그리고 "스위치는 다음의 메커니즘을 갖는다: 컨트롤러로부터의 제어 명령에 대해서, 대상으로 되는 테이블이 제어에 대응하는 기능을 갖고 있지 않은 경우에 에러를 되돌린다".
예컨대 "2"에 대해서는, "오픈플로우 테이블에 있어서의 우선 순위(0-64k)의 일정 범위씩을 각 테이블에 할당하고, 컨트롤러로부터 제어를 행할 때는 이 우선 순위의 범위를 기초로 사용될 테이블을 판별한다", 또는 "오픈플로우 테이블을 구성하는 각 테이블에 ID를 할당하고, 컨트롤러로부터 제어를 행할 때는 이 ID를 기초로 사용될 테이블을 판별한다".
[오픈플로우 테이블 제어의 상세(1)]
도 5는 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 제1 방식의 예의 상세에 대해서 설명하기 위한 도면이다. 여기에서는, 우선 순위 범위를 이용하여 테이블을 지정할 경우에 대해서 설명한다.
컨트롤러(101), 스위치(102), 오픈플로우 테이블 관리부(106) 및 테이블 군(113)은 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 오픈플로우 테이블을 구성하는 테이블 군(113) 각각의 테이블에 우선 순위 범위를 할당한다.
우선 순위 범위를 기초로 하여 테이블을 지정할 경우, 테이블들의 우선 순위 범위는 중복해서는 안 된다. 또한, 우선 순위 범위들의 합계는, 오픈플로우에서 규정되어 있는 우선 순위 범위를 초과해서는 안 된다.
컨트롤러(101)는 각 테이블에 할당된 우선 순위 범위 내의 값에 기초하여 테이블을 지정한다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 컨트롤러(101)에 의해 지정된 우선 순위 범위 내의 값을 기초로, 사용될 테이블을 판별한다.
[오픈플로우 테이블 제어의 상세(2)]
도 6은 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 제2 방식의 예의 상세에 대해서 설명하기 위한 도면이다. 여기에서는, 테이블 ID를 이용하여 테이블을 지정할 경우에 대해서 설명한다.
컨트롤러(101), 스위치(102), 오픈플로우 테이블 관리부(106) 및 테이블 군(113)은 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 오픈플로우 테이블을 구성하는 테이블 군(113)의 각 테이블에 테이블 ID(129)를 할당한다.
테이블 ID에 기초하여 테이블을 지정할 경우, 테이블 ID들은 중복해서는 안 된다. 한편, 테이블들에 대해 설정되는 우선 순위 범위는 중복해도 문제 없다. 각 테이블은 테이블 ID(129)에 따라 개별 테이블로서 식별되고, 각각의 테이블의 우선 순위는 오픈플로우 액션 해결부(107)에 의해 결정되기 때문이다.
컨트롤러(101)는 각 테이블에 할당된 테이블 ID(129)에 따라 테이블을 지정한다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는 컨트롤러(101)에 의해 지정된 테이블 ID(129)를 기초로, 사용될 테이블을 판별한다.
[패킷 유입 시의 처리의 동작예(1)]
도 7a 및 도 7b는 본 발명에 따른 패킷 유입 시의 스위칭 시스템의 제1 동작예를 보여준다. 단순화를 위하여, 동작에 관련된 기능 블록만 도시되어 있다. 단계 S101 내지 단계 S107은, 패킷 유입으로부터의 전체 동작의 흐름을 나타낸다.
(1) 단계 S101
컨트롤러(101)는 스위치(102)에 대하여 {매치 조건: 수신처 IP=AA, 액션: Drop}이라고 하는 TCAM(OF) 엔트리(1)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 TCAM(OF)에, TCAM(OF) 엔트리(1)의 등록을 행한다.
"매치 조건"은 L1 내지 L4까지의 선택적인 헤더 정보의 조합에 기초하여 정의된다. "Action"은, 매치 조건에 적합한 패킷에 대한 헤더 정보의 중계/파기/재기입 등의 액션을 정의한 것이다.
(2) 단계 S102
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Port 1로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(1)와, {매치 조건: 수신처 IP=BB, 액션: Port 2로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(2)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 L3 테이블(OF)에 L3 테이블(OF) 엔트리(1) 및 L3 테이블(OF) 엔트리(2)를 등록한다.
(3) 단계 S103
입력 포트(104)는 패킷 유입 시에, 오픈플로우 유효 포트에 수신처 IP=AA의 패킷이 유입했을 경우, 그 패킷을 오픈플로우 기능부(105)에 송신한다.
(4) 단계 S104
오픈플로우 기능부(105)는 오픈플로우 유효 포트에 수신처 IP=AA의 패킷이 유입했을 경우, 그 패킷을 처리한다.
(5) 단계 S105
우선, 오픈플로우 기능부(105)에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 유입한 패킷에 대해서 L2/L3/기타 테이블(OF)에서의 검색을 행한다. 이 검색에 있어서, 당해 패킷은, L3 테이블(OF) 엔트리(1)에 히트한다.
(6) 단계 S106
L2/L3/기타 테이블(OF) 검색 기능부(115)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 도 7b에서, 오픈플로우 액션 해결부(107)와 TCAM(OF) 검색 기능부(116)는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)으로서 나타난다.
(7) 단계 S107
TCAM(OF) 검색 기능부(116)는 유입한 패킷에 대해서 TCAM(OF)에서의 검색을 행한다. 이 검색에 있어서, 패킷은 TCAM(OF) 엔트리(1)에 최초로 히트한다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다.
(8) 단계 S108
오픈플로우 액션 해결부(107)는 L2/L3/기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116) 각각으로부터 검색 결과를 수취하고, 테이블 간 우선 순위에 따라, 유입한 패킷에 대한 액션을 결정한다. 여기에서는, TCAM(OF)의 우선 순위가 가장 높다. 그로 인해, 오픈플로우 액션 해결부(107)는, TCAM(OF) 엔트리(1)의 액션(Drop)을 유입한 패킷에 대한 액션으로서 결정하고, 결정한 액션(Drop)을 액션 기능부(111)에 통지한다.
(9) 단계 S109
액션 기능부(111)는 오픈플로우 액션 해결부(107)에서 결정된 액션(Drop)을 실행한다. 여기에서는, 액션 기능부(111)는, 액션이 "Drop"이기 때문에, 패킷의 출력을 행하지 않는다. 액션 기능부(111)는 유입한 패킷 및 동일 플로우에 속하는 후속 패킷들을 파기한다.
[패킷 유입 시의 처리의 동작예(2)]
도 8a 및 도 8b는, 본 발명에 따른 패킷 유입 시의 스위칭 시스템의 제2 동작예이다. 단순화를 위하여, 동작에 관련된 기능 블록만 기재하고 있다. 단계 S201 내지 단계 S210은 패킷 유입으로부터의 전체 동작의 흐름을 나타낸다.
(1) 단계 S201
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Drop}이라고 하는 TCAM(OF) 엔트리(1)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 TCAM(OF)에 TCAM(OF) 엔트리(1)의 등록을 행한다.
(2) 단계 S202
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Port 1로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(1)와, {매치 조건: 수신처 IP=BB, 액션: Port 2로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(2)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 L3 테이블(OF)에 L3 테이블(OF) 엔트리(1) 및 L3 테이블(OF) 엔트리(2)를 등록한다.
(3) 단계 S203
입력 포트(104)는 패킷 유입 시에, 오픈플로우 유효 포트에 대하여 수신처 IP=BB의 패킷이 유입했을 경우, 그 패킷을 오픈플로우 기능부(105)에 송신한다.
(4) 단계 S204
오픈플로우 기능부(105)는 오픈플로우 유효 포트에 대하여 수신처 IP=BB의 패킷이 유입했을 경우, 그 패킷을 처리한다.
(5) 단계 S205
우선, 오픈플로우 기능부(105)에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 패킷에 대해서 L2/L3/기타 테이블(OF)에서의 검색을 행한다. 이 검색에 있어서, 패킷은 L3 테이블(OF) 엔트리(2)에 히트한다.
(6) 단계 S206
L2/L3/기타 테이블(OF) 검색 기능부(115)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 도 8b에서, 오픈플로우 액션 해결부(107)와 TCAM(OF) 검색 기능부(116)는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)으로서 나타난다.
(7) 단계 S207
TCAM(OF) 검색 기능부(116)는 유입한 패킷에 대해서 TCAM(OF)에서의 검색을 행한다. 그러나, 유입한 패킷은 수신처 IP=BB의 패킷이기 때문에, TCAM(OF)에는 그 패킷이 히트하는 엔트리가 없다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는, 이 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다.
(8) 단계 S208
오픈플로우 액션 해결부(107)는, L2/L3/기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116) 각각으로부터 검색 결과를 수취하고, 테이블 간 우선 순위에 따라, 유입한 패킷에 대한 액션을 결정한다. 여기에서는, 대상이 되는 엔트리가 L3 테이블(OF) 엔트리(2)에만 존재한다. 그로 인해, 오픈플로우 액션 해결부(107)는 L3 테이블(OF) 엔트리(2)의 액션(Port 2로부터 출력)을 유입한 패킷에 대한 액션으로서 결정하고, 결정한 액션(Port 2로부터 출력)을 액션 기능부(111)에 통지한다.
(9) 단계 S209
액션 기능부(111)는, 오픈플로우 액션 해결부(107)에서 결정된 액션(Port 2로부터 출력)을 실행한다.
(10) 단계 S210
액션 기능부(111)는, 유입한 패킷 및 동일 플로우에 속하는 후속 패킷들을 Port 2를 갖는 출력 포트(112)에 출력한다.
(11) 단계 S211
출력 포트(112)는 액션 기능부(111)로부터 출력된 패킷을 Port 2에 출력한다.
(12) 단계 S212
Port 2로부터 출력된 패킷은 네트워크로 유출되고, 수신처 IP=BB를 향해서 전송된다.
도 8a 및 도 8b에서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 유입한 패킷이 복수의 테이블의 임의의 엔트리에 히트하는 경우에는, 히트 한 모든 엔트리를 검색 결과로서 오픈플로우 액션 해결부(107)에 통지한다. 오픈플로우 액션 해결부(107)는, 유입한 패킷이 우선 순위가 가장 높은 TCAM(OF) 내의 어느 엔트리에도 히트하지 않는 경우, L2/L3/기타 테이블(OF) 검색 기능부(115)의 검색 결과 중에서 우선 순위가 가장 높은 테이블에 히트하는 엔트리를 채용한다.
도 8a 및 도 8b에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는, 유입한 패킷이 복수의 테이블 내의 엔트리들에 히트하는 경우에는, 테이블 간 우선 순위(117)에 따라, 이들 테이블 중 우선 순위가 가장 높은 테이블 내의 히트하는 엔트리를 검색 결과로서 오픈플로우 액션 해결부(107)에 통지할 수 있다.
[오픈플로우 테이블 제어 예(1)]
도 9는 우선 순위 범위에서 테이블을 지정할 경우에 있어서의 컨트롤러에 의한 오픈플로우 테이블 제어의 제1 방식의 예를 도시한다.
등록 정보(132)는 컨트롤러(101)로부터의 스위치(102)의 오픈플로우 테이블 관리부(106)에의 정보이다. 등록 결과(133)는 오픈플로우 테이블을 구성하는 테이블 군(113)에의 등록 결과이다.
오픈플로우 테이블을 구성하는 테이블 군(113)을 1개의 테이블로 가정할 때, 스위치(102)는 우선 순위에 따라 예상되는 테이블에의 제어를 행한다.
(1) 단계 S301
컨트롤러(101)는, 스위치(102)에 대하여, {우선 순위: 50001, 매치 조건: XXXX, 액션: YYYY}이라고 하는 엔트리의 등록을 행한다.
(2) 단계 S302
스위치(102)는 컨트롤러(101)로부터 엔트리가 등록되었을 경우, 엔트리의 우선 순위에 따른 테이블인 L2 테이블(OF)을 선택하고, 이 L2 테이블(OF)에 엔트리를 등록한다.
[오픈플로우 테이블 제어 예(2)]
도 10은, 테이블 ID에 기초하여 테이블을 지정할 경우에 있어서의 컨트롤러에 의한 오픈플로우 테이블 제어의 제2 방식의 예이다.
등록 정보(134)는 컨트롤러로부터의 오픈플로우 테이블에의 등록 정보이다. 등록 결과(135)는 오픈플로우 테이블을 구성하는 테이블 군에의 등록 결과이다.
오픈플로우 테이블을 구성하는 테이블 군의 테이블들을 각각 다른 오픈플로우 테이블로 가정한 경우, 스위치(102)는 테이블 ID에 따라 예상되는 테이블에의 제어를 행한다.
(1) 단계 S401
컨트롤러(101)는 스위치(102)에 대하여 {테이블 ID: #2, 우선 순위: 1, 매치 조건: XXXX, 액션: YYYY}이라고 하는 엔트리의 등록을 행한다.
(2) 단계 S402
스위치(102)는 컨트롤러(101)로부터 엔트리가 등록되었을 경우, 테이블 ID에 따른 테이블인 L2 테이블(OF)을 선택하고, L2 테이블(OF)에 엔트리를 등록한다.
[제1 실시 형태의 특징]
본 실시 형태에 따르면, 오픈플로우 액션 해결부는 복수의 테이블의 리소스를 통합하고, 또한, 테이블들의 우선 순위를 서로 비교해서 액션(Action) 해결을 행할 수 있다.
따라서, 스위치의 복수의 테이블의 리소스를 사용해서 대용량의 오픈플로우 테이블을 구축할 수 있다. 이에 의해, 스위치에 의해 대량의 플로우를 제어하는 것이 가능하게 된다.
본 실시 형태에서, 오픈플로우 테이블을 1개의 대용량의 오픈플로우 테이블로서 사용하는 경우에 있어서의 "우선 순위 범위"나, 오픈플로우 테이블을 구성하는 테이블 군의 각 테이블을 복수의 다른 오픈플로우 테이블로서 사용하는 경우에 있어서의 "테이블 ID"에 기초하여, 오픈플로우 테이블을 구성하는 각 테이블을 식별할 수 있다.
따라서, 스위치의 복수의 테이블로 구성되는 오픈플로우 테이블을 1개의 대용량의 오픈플로우 테이블 또는 복수의 다른 오픈플로우 테이블로서 사용할 수 있다. 이에 의해, 복수의 테이블로 구성되는 오픈플로우 테이블을 유연하게 제어하는 것이 가능하게 된다.
<제2 실시 형태>
이하에, 본 발명의 제2 실시 형태에 대해서 첨부 도면을 참조하여 설명할 것이다. 제2 실시 형태는, TCAM(OF) 검색 기능부가 오픈플로우 액션 해결부를 포함하지 않을 경우의 오픈플로우 액션 해결부의 실시예이다.
[실시예 1]
도 11은, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시될 경우의 오픈플로우 기능부(105)의 상세에 대해서 설명하기 위한 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 액션 기능부(111), 테이블 군(113), 검색 기능부(114), L2/L3/기타 테이블(OF) 검색 기능부(115), 및 TCAM(OF) 검색 기능부(116)는, 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
도 11을 참조하여, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시될 경우의 오픈플로우 기능부(105)의 동작에 대해서 설명할 것이다.
도 11은 오픈플로우 테이블 관리부(106)의 검색 기능부(114)에 있어서, TCAM(OF) 검색 기능부(116)가 마지막으로 검색을 행하지 않는 사례를 보여준다.
도 11에서는, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시되기 때문에, TCAM(OF) 검색 기능부(116)는 오픈플로우 액션 해결부(107)를 포함할 수 없다.
[실시예 2]
도 12는 L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시될 경우의 오픈플로우 기능부(105)의 상세에 대해서 설명하는 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 액션 기능부(111), 테이블 군(113), 검색 기능부(114), L2/L3/기타 테이블(OF) 검색 기능부(115) 및 TCAM(OF) 검색 기능부(116)는, 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
도 12를 참조하여, L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시될 경우의 오픈플로우 기능부(105)의 동작에 대해서 설명할 것이다.
도 12는, 오픈플로우 테이블 관리부(106)의 검색 기능부(114)에 있어서, TCAM(OF) 검색 기능부(116)가 마지막으로 검색을 수행하지 않는 사례를 보여준다.
L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시되기 때문에, TCAM(OF) 검색 기능부(116)는 오픈플로우 액션 해결부(107)를 포함할 수 없다.
[실시예 3]
도 13은, TCAM(OF) 검색 기능부(116)가 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우에 있어서의 오픈플로우 액션 해결부(107)의 실시예를 도시한다.
오픈플로우 액션 해결부(107) 및 액션 기능부(111)는 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 액션 해결부(107)는 검색 수신부(Lookup Receiver)(130) 및 액션 해결부(Action Resolver)(131)를 포함한다.
검색 수신부(Lookup Receiver)(130)는 각 테이블의 검색 결과를 수취한다. 액션 해결부(Action Resolver)(131)는 각 테이블의 검색 결과를 기초로 오픈플로우 처리를 결정한다.
도 13을 참조하여, TCAM(OF) 검색 기능부(116)에 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우에 있어서의 오픈플로우 액션 해결부(107)의 동작에 대해서 설명할 것이다.
TCAM(OF) 검색 기능부(116)가 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우, 스위치(102)에 도 13에서 나타낸 바와 같은 오픈플로우 액션 해결부(107)를 탑재한다.
오픈플로우 액션 해결부(107)에 있어서, 검색 수신부(Lookup Receiver)(130)는, 각 테이블의 검색 결과를 수취한다. 액션 해결부(Action Resolver)(131)는, 각 테이블의 검색 결과 및 미리 설정된 테이블 간 우선 순위에 기초하여 오픈플로우의 액션을 결정하고, 결정된 액션을 액션 기능부(111)에 통지한다.
[다른 실시예]
또한, 상기 각 실시 형태에 있어서, 스위치(102)는 오픈플로우 스위치로서 설명할 것이지만, 오픈플로우 스위치는 예시에 지나지 않는다. 실제로는, 오픈플로우 스위치에 한정되는 것이 아니라, 오픈플로우 스위치와 동일한 메커니즘 및 기능을 갖는 어떠한 스위치에 대하여도 본 발명을 적용하는 것이 가능하다.
<본 발명의 특징>
본 발명은, 복수의 테이블의 집약에 의한 오픈플로우 테이블의 확장 방법에 관한 것이다.
본 발명에 따르면, 스위치의 단일 테이블(주로 TCAM)로 구성되는 오픈플로우 테이블에서, 스위치의 복수의 테이블로 오픈플로우 테이블을 구축함으로써 오픈플로우 테이블의 플로우 엔트리 수의 확장을 실현하는 것이다.
또한, 오픈플로우 기술에서는, 동일한 NW 기기(라우터/스위치 등)에 실장되어 있던 전송 기능 및 제어 기능이 서로 분리되어, 전송 기능은 NW 기기에 남기고, 제어 기능은 외부 컨트롤러로 대체된다. 컨트롤러는, 원격으로 오픈플로우 프로토콜에 따라 NW 기기의 오픈플로우 테이블을 조작함으로써 NW 기기의 거동을 제어한다. 오픈플로우 테이블은 {매치 조건, 액션, 통계 정보}의 3종의 정보를 포함하는 플로우 엔트리 군으로 구성된다. 오픈플로우 기술에서는, 이 매치(Match) 조건이 제어될 플로우를 정의하고, 이 플로우를 단위로 하여 액션이나 통계 정보의 취득을 행할 수 있다.
오픈플로우의 {매치 조건, 액션, 통계 정보}의 개요는 이하와 같다.
[매치 조건]
"Ingress port(입력 포트)"/"Src MAC(송신원 MAC 어드레스)"/"Dst MAC(수신처 MAC 어드레스)"/"Ether type(타입/필드)"/"VLAN ID(가상 LAN 식별 정보)"/"VLAN Priority(가상 LAN 우선 순위)"/"Src IP(송신원 IP 어드레스)"/"Dst IP(수신처 IP 어드레스)"/"IP protocol(IP 프로토콜 번호)"/"IP ToS(상위 6비트)"/"Src Port(송신원 포트 번호)"/"Dst Port(수신처 포트 번호)"
[액션]
"Forward(물리 포트로부터 출력)"/"All(입력 포트 외의 모든 포트로부터 출력)"/"Controller(컨트롤러에 출력)"/"Local(장치의 로컬 스택에 출력)"/"Table(오픈플로우 테이블의 내용에 따라서 출력)"/"In_port(입력 포트로부터 출력)"/"Normal(레거시 테이블의 내용을 사용해서 출력)"/"Flood(입력 포트 및 Spanning Tree의 블록 포트 외의 모든 포트로부터 출력)"/"Drop(패킷을 파기)"/"Modify-Field(패킷의 헤더 정보를 재기입)"
예를 들어, "Modify-Field"의 경우에는, "VLAN ID", "Vlan 우선 순위(Priority)", "Src MAC", "Dst MAC", "Src IP", "Dst IP", "IP ToS", "Src Port", "Dst Port"를 재기입 가능하다.
[통계 정보]
"테이블 단위", "플로우 단위", "물리 포트 단위", "큐(Queue) 단위"로의 각종 통계 정보.
본 발명에 따르면, 스위치의 테이블(주로 TCAM)의 용량 자체를 증가시키는 일 없이, 스위치의 복수의 테이블을 사용해서 오픈플로우 테이블을 구축함으로써, 장치로서의 오픈플로우 테이블 내의 플로우 엔트리 수의 확장이 실현될 수 있다. 즉, 스위치 내의 복수의 테이블이 컨트롤러 측으로부터의 대용량 오픈플로우 테이블로서 사용될 수 있다.
구체적으로는, 각 테이블의 기능(매치 조건/액션) 사이의 차이를 흡수해서 오픈플로우 테이블로서의 통합을 실현했다. 또한, 스위치의 복수의 테이블은 각각 본래의 용도(예를 들어, L2 테이블 내의 L2 중계, L3 테이블 내의 L3 중계)가 있기 때문에, 모든 리소스를 사용하는 것이 아니고, 리소스들의 일부를 잘라내는 형태로 사용한다.
이상과 같이, 본 발명의 특징은, "복수의 테이블의 매치 조건/액션 차이를 흡수하고, 오픈플로우 테이블로서 통합하는 것"과 "구체적인 액션 결정 방법을 제공하는 것"이다.
본 발명에 따르면, 스위치의 복수의 테이블 리소스의 일부는 오픈플로우 테이블로서 사용된다.
본 발명에 따르면, 스위치의 각 테이블은 실현 가능한 기능(매치 조건/Action)에 따라서 "기능 제한된 오픈플로우 테이블 리소스"로서 취급된다.
본 발명에 따르면, 오픈플로우 액션 해결부에 의해, 각 테이블 리소스의 기능 사이의 차이(매치 조건/액션)를 흡수하고, 리소스들을 오픈플로우 테이블 리소스로서 통합하고 있다.
본 발명에 따르면, 오픈플로우 액션 해결부는 TCAM을 포함하는 테이블들 간의 우선 순위에 기초하여 액션을 결정한다.
TCAM(OF) 검색이 마지막으로 행해지는 스위치에서 오픈플로우 액션 해결부는 TCAM(OF) 검색 기능부에 포함된다.
본 발명에 따르면, 복수의 테이블로 구성되는 오픈플로우 테이블은, 컨트롤러에 의해 유연하게 제어된다.
본 발명에 따르면, 복수의 테이블을 1개의 오픈플로우 테이블로서 사용하는 경우, 우선 순위 범위에 기초하여 테이블이 식별된다.
본 발명에 따르면, 복수 테이블을 개별의 오픈플로우 테이블로서 사용하는 경우, 테이블 ID에 기초하여 테이블이 식별된다.
이상, 본 발명의 실시 형태를 상세하게 설명했지만, 본 발명은 상기 실시 형태에 한정되는 것이 아니고, 본 발명의 요지를 일탈하지 않는 변경이 본 발명의 범위에 포함된다.
본 출원은, 일본 출원 번호 2010-200690에 기초하는 우선권을 주장한다. 이의 개시 내용은 참조로 본 출원에 포함된다.

Claims (10)

  1. 패킷을 포워딩하기 위한 통신 장치로서,
    제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 컨트롤 유닛; 및
    상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 및 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역으로 분할된 테이블
    을 포함하는 통신 장치.
  2. 제1항에 있어서,
    상기 컨트롤 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 패킷 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치.
  3. 패킷을 포워딩하기 위한 통신 장치로서,
    제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 제1 유닛; 및
    상기 패킷의 입력 포트에 기초하여, 상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 또는 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역 중 어느 하나에 따라 상기 패킷을 처리하는 것을 결정하기 위한 제2 유닛
    을 포함하는 통신 장치.
  4. 제3항에 있어서,
    상기 제1 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 패킷 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치.
  5. 제3항에 있어서,
    상기 제2 유닛은, 상기 입력 포트가 상기 제어 프로토콜과 연관되어 있는지 여부에 기초하여, 상기 제1 영역 또는 상기 제2 영역에 따라 상기 패킷을 처리하는 것을 결정하는, 통신 장치.
  6. 패킷을 포워딩하기 위한 통신 장치로서,
    상기 패킷을 포워딩하기 위한 제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 제1 유닛; 및
    상기 제1 포워딩 룰을 저장하기 위한 제1 영역이 상기 패킷을 포워딩하기 위한 룰을 저장하지 않은 경우, 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역에 따라 상기 패킷을 포워딩하기 위한 제2 유닛
    을 포함하는 통신 장치.
  7. 제6항에 있어서,
    상기 제1 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치.
  8. 통신 방법으로서,
    제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계;
    상기 제1 패킷 포워딩 룰을 테이블의 제1 영역에 저장하는 단계; 및
    상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 상기 테이블의 제2 영역에 저장하는 단계
    를 포함하는 통신 방법.
  9. 통신 방법으로서,
    제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계; 및
    패킷의 입력 포트에 기초하여, 상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 또는 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역 중 어느 하나에 따라 상기 패킷을 처리하는 것을 결정하는 단계
    를 포함하는 통신 방법.
  10. 통신 방법으로서,
    패킷을 포워딩하기 위한 제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계; 및
    상기 제1 포워딩 룰을 저장하기 위한 제1 영역이 상기 패킷을 포워딩하기 위한 룰을 저장하지 않은 경우, 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역에 따라 상기 패킷을 포워딩하는 단계
    를 포함하는 통신 방법.
KR1020157007618A 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체 KR101627475B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010200690 2010-09-08
JPJP-P-2010-200690 2010-09-08
PCT/JP2011/066524 WO2012032864A1 (ja) 2010-09-08 2011-07-21 スイッチシステム、スイッチ制御方法、及び記憶媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020137006089A Division KR101538560B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체

Publications (2)

Publication Number Publication Date
KR20150039877A true KR20150039877A (ko) 2015-04-13
KR101627475B1 KR101627475B1 (ko) 2016-06-03

Family

ID=45810468

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137006089A KR101538560B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체
KR1020157007618A KR101627475B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137006089A KR101538560B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체

Country Status (10)

Country Link
US (2) US9577931B2 (ko)
EP (1) EP2615781B1 (ko)
JP (3) JP5561366B2 (ko)
KR (2) KR101538560B1 (ko)
CN (2) CN103098427B (ko)
CA (1) CA2810486A1 (ko)
ES (1) ES2639638T3 (ko)
RU (1) RU2595918C2 (ko)
TW (1) TWI520527B (ko)
WO (1) WO2012032864A1 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9144739B2 (en) 2011-10-26 2015-09-29 Lamar Wilkinson Computer-aided online card games using multiple online player preferences
US9117337B2 (en) 2011-10-26 2015-08-25 Lamar Wilkinson Performing an automatic fold-out command and assigning player entries in an online card game
US9769064B2 (en) 2012-03-19 2017-09-19 Nec Corporation Communication node, packet processing method and program
US9225635B2 (en) 2012-04-10 2015-12-29 International Business Machines Corporation Switch routing table utilizing software defined network (SDN) controller programmed route segregation and prioritization
US9967177B2 (en) 2012-05-31 2018-05-08 Nec Corporation Control apparatus, communication system, switch control method and program
US10104004B2 (en) * 2012-11-08 2018-10-16 Texas Instruments Incorporated Openflow match and action pipeline structure
CN103023782B (zh) * 2012-11-22 2016-05-04 北京星网锐捷网络技术有限公司 一种访问三态内容寻址存储器的方法及装置
US9923831B2 (en) * 2012-11-29 2018-03-20 Futurewei Technologies, Inc. Packet prioritization in a software-defined network implementing OpenFlow
FI20126275L (fi) 2012-12-07 2014-06-08 Tellabs Oy Menetelmä ja laitteisto ohjelmallisesti määriteltävän verkon konfiguroimiseksi
RU2628477C2 (ru) * 2012-12-19 2017-08-17 Нек Корпорейшн Устройство обработки пакета, способ конфигурирования записи потока и программа
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
CN103888386B (zh) * 2012-12-24 2017-10-17 华为技术有限公司 可扩展虚拟局域网报文的传输方法及装置、系统
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
TWI586124B (zh) 2013-04-26 2017-06-01 Nec Corp Communication node, communication system, packet processing method and program
US9313102B2 (en) 2013-05-20 2016-04-12 Brocade Communications Systems, Inc. Configuration validation in a mixed node topology
US9853889B2 (en) 2013-05-20 2017-12-26 Brocade Communications Systems, Inc. Broadcast and multicast traffic reduction in stacking systems
CN103347013B (zh) * 2013-06-21 2016-02-10 北京邮电大学 一种增强可编程能力的OpenFlow网络系统和方法
US9712431B2 (en) * 2013-07-17 2017-07-18 Kt Corporation Methods for managing transaction in software defined network
CN103428094B (zh) * 2013-08-12 2016-08-17 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
US10284499B2 (en) 2013-08-22 2019-05-07 Arris Enterprises Llc Dedicated control path architecture for systems of devices
CN104580027B (zh) * 2013-10-25 2018-03-20 新华三技术有限公司 一种OpenFlow报文转发方法及设备
US10212083B2 (en) 2013-10-30 2019-02-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow data channel and control channel separation
US9225641B2 (en) * 2013-10-30 2015-12-29 Globalfoundries Inc. Communication between hetrogenous networks
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
KR102193371B1 (ko) * 2013-11-14 2020-12-21 한국전자통신연구원 확장된 기능을 구비한 sdn-기반 네트워크 장치 및 상기 장치에서의 패킷 처리 방법
US9577924B2 (en) * 2013-11-14 2017-02-21 Electronics And Telecommunications Research Institute SDN-based network device with extended function and method of processing packet in the same device
CN105052087B (zh) * 2013-11-19 2018-10-09 华为技术有限公司 一种基于流表的表项寻址方法、交换机及控制器
KR101527786B1 (ko) * 2013-12-31 2015-06-09 쿨클라우드(주) 하이브리드 sdn 네트워크 관리 방법
US9577932B2 (en) * 2014-02-12 2017-02-21 Brocade Communications Systems, Inc. Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems
CN104869062B (zh) * 2014-02-21 2018-11-09 华为技术有限公司 一种数据包转发方法及设备
EP2919423B1 (en) 2014-03-12 2018-11-14 Xieon Networks S.à.r.l. A network element of a software-defined network
US9692695B2 (en) 2014-03-27 2017-06-27 Brocade Communications Systems, Inc. Techniques for aggregating hardware routing resources in a multi-packet processor networking system
US9692652B2 (en) 2014-04-03 2017-06-27 Brocade Communications Systems, Inc. Framework for reliably communicating port information in a system of devices
US10257091B2 (en) 2014-04-08 2019-04-09 Hewlett Packard Enterprise Development Lp Pipeline table identification
WO2015167479A1 (en) 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Efficient routing in software defined networks
US20170118066A1 (en) * 2014-04-30 2017-04-27 Hewlett-Packard Development Company, L.P. Data plane to forward traffic based on communications from a software defined (sdn) controller during a control plane failure
CN105359470B (zh) 2014-05-27 2019-05-24 华为技术有限公司 流表管理方法及相关设备和系统
JP6490205B2 (ja) 2014-06-30 2019-03-27 華為技術有限公司Huawei Technologies Co.,Ltd. フローエントリ構成の方法、装置及びシステム
JP6206594B2 (ja) * 2014-08-01 2017-10-04 日本電気株式会社 制御装置および制御方法
US10091059B2 (en) 2014-12-16 2018-10-02 Arris Enterprises Llc Handling connections between network devices that support multiple port communication modes
KR101669518B1 (ko) * 2014-12-30 2016-10-27 주식회사 시큐아이 Sdn 기반의 네트워크 모듈 관리 장치 및 방법
CN104683333A (zh) * 2015-02-10 2015-06-03 国都兴业信息审计系统技术(北京)有限公司 基于sdn的实现异常流量拦截的方法
WO2017018989A1 (en) * 2015-07-24 2017-02-02 Hewlett Packard Enterprise Development Lp Simultaneous processing of flow tables
CN106302265B (zh) * 2016-07-21 2019-08-06 新华三技术有限公司 报文转发方法及装置
US10439932B2 (en) * 2016-10-05 2019-10-08 Avago Technologies International Sales Pte. Limited System and method for flow rule management in software-defined networks
KR101870146B1 (ko) * 2016-10-12 2018-06-25 아토리서치(주) 리프-스파인 구조의 소프트웨어 정의 네트워킹에서 목적지 기반 패킷 전송 제어 방법 및 장치
CN106789706B (zh) * 2016-11-11 2020-08-07 天津光电通信技术有限公司 一种基于tcam的网络分流系统
TWI626837B (zh) * 2016-12-01 2018-06-11 財團法人工業技術研究院 封包傳遞方法、封包傳遞裝置及非暫態電腦可讀取媒體
US10404594B2 (en) * 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
RU178460U1 (ru) * 2017-03-15 2018-04-04 Общество с ограниченной ответственностью "БУЛАТ" Управляемый Ethernet коммутатор
KR101877004B1 (ko) * 2017-09-29 2018-07-10 주식회사 쏠리드 오픈플로우 기반의 분산 안테나 시스템
CN109995659B (zh) * 2017-12-29 2022-03-01 阿里巴巴集团控股有限公司 一种网络通信方法及装置
RU183526U1 (ru) * 2018-03-07 2018-09-25 Общество с ограниченной ответственностью "БУЛАТ" Ethernet коммутатор
RU186859U1 (ru) * 2018-11-21 2019-02-06 Общество с ограниченной ответственностью "БУЛАТ" Мультисервисный маршрутизатор
KR102211282B1 (ko) * 2019-11-20 2021-02-03 (주)파이브텍 데이터 라우팅 방법 및 이를 지원하는 스위치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050281257A1 (en) * 2004-06-17 2005-12-22 Hitachi, Ltd. Packet forwarding device
JP2006101343A (ja) * 2004-09-30 2006-04-13 Oki Techno Creation:Kk パケット処理装置、パケット処理方法およびパケット処理プログラム
WO2009103225A1 (zh) * 2008-02-18 2009-08-27 华为技术有限公司 一种报文转发的方法和设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333250B1 (ko) 1998-10-05 2002-05-17 가나이 쓰토무 패킷 중계 장치
JP2002185513A (ja) * 2000-12-18 2002-06-28 Hitachi Ltd パケット通信ネットワークおよびパケット転送制御方法
JP3936883B2 (ja) * 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
JP2003304293A (ja) 2002-04-10 2003-10-24 Hitachi Ltd パケット中継装置
NO318843B1 (no) * 2002-11-13 2005-05-09 Telenor Asa AHN-nettverk
FR2849975B1 (fr) 2003-01-14 2005-09-23 Cit Alcatel Procede de configuration d'un chemin de routage dans un routeur ip et reseau
US7308505B2 (en) 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
JP4487237B2 (ja) * 2003-12-25 2010-06-23 エルピーダメモリ株式会社 半導体装置
JP2005252954A (ja) 2004-03-08 2005-09-15 Fujitsu Ltd テーブル検索装置
JP2005277731A (ja) 2004-03-24 2005-10-06 Seiko Epson Corp ネットワークシステム、ネットワーク機器、及び、これらの制御方法
JP2006133520A (ja) * 2004-11-05 2006-05-25 Fuji Xerox Co Ltd 画像形成装置、画像形成装置における表示画面カスタマイズ方法、表示画面カスタマイズプログラム
JP2006174350A (ja) * 2004-12-20 2006-06-29 Fujitsu Ltd 通信装置
US7281085B1 (en) * 2005-01-31 2007-10-09 Netlogic Microsystems, Inc. Method and device for virtualization of multiple data sets on same associative memory
TWI325705B (en) * 2006-06-01 2010-06-01 Via Tech Inc Method and apparatus for packet switching
JP5050978B2 (ja) * 2008-04-21 2012-10-17 富士通株式会社 伝送情報転送装置及び方法
CN101753544A (zh) * 2008-12-05 2010-06-23 华为技术有限公司 包过滤规则处理方法及系统、媒体网关和媒体网关控制器
WO2010090182A1 (ja) 2009-02-03 2010-08-12 日本電気株式会社 アプリケーションスイッチシステム、及びアプリケーションスイッチ方法
JP2010200690A (ja) 2009-03-04 2010-09-16 Kyushu Univ 新規スフィンゴ脂質及びその製造方法
US8289977B2 (en) * 2009-06-10 2012-10-16 International Business Machines Corporation Two-layer switch apparatus avoiding first layer inter-switch traffic in steering packets through the apparatus
US8677030B2 (en) * 2009-12-09 2014-03-18 Oracle America, Inc. Apparatus and method for managing packet classification tables
US8817629B2 (en) * 2010-03-16 2014-08-26 Deutsche Telekom Ag Method for routing-assisted traffic monitoring

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050281257A1 (en) * 2004-06-17 2005-12-22 Hitachi, Ltd. Packet forwarding device
JP2006101343A (ja) * 2004-09-30 2006-04-13 Oki Techno Creation:Kk パケット処理装置、パケット処理方法およびパケット処理プログラム
WO2009103225A1 (zh) * 2008-02-18 2009-08-27 华为技术有限公司 一种报文转发的方法和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"OpenFlow Switch Specification Version 0.9.0(Wire Protocol 0x98), 2009년 7월 20일, Current Maintainer: Brandon Heller(brandonh@stanford.edu)" &lt;http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf&gt;
"The OpenFlow Switch Consortium" &lt;http://www.openflowswitch.org/&gt;

Also Published As

Publication number Publication date
TWI520527B (zh) 2016-02-01
JP2014161083A (ja) 2014-09-04
JP5773020B2 (ja) 2015-09-02
RU2595918C2 (ru) 2016-08-27
TW201215037A (en) 2012-04-01
US9577931B2 (en) 2017-02-21
JP5561366B2 (ja) 2014-07-30
JPWO2012032864A1 (ja) 2014-01-20
JP5962808B2 (ja) 2016-08-03
CA2810486A1 (en) 2012-03-15
CN104580026B (zh) 2019-02-15
US20150312147A1 (en) 2015-10-29
CN103098427B (zh) 2015-10-21
RU2013110063A (ru) 2014-10-20
WO2012032864A1 (ja) 2012-03-15
KR101627475B1 (ko) 2016-06-03
EP2615781A1 (en) 2013-07-17
ES2639638T3 (es) 2017-10-27
KR20130050356A (ko) 2013-05-15
KR101538560B1 (ko) 2015-07-21
EP2615781A4 (en) 2014-03-12
EP2615781B1 (en) 2017-06-14
US20130170495A1 (en) 2013-07-04
JP2015156697A (ja) 2015-08-27
CN104580026A (zh) 2015-04-29
CN103098427A (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
KR101627475B1 (ko) 스위치 시스템, 스위치 제어 방법 및 기억 매체
JP5557066B2 (ja) スイッチシステム、モニタリング集中管理方法
US8750106B2 (en) Interface control system and interface control method
JP5440712B2 (ja) 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
KR101755138B1 (ko) 통신 시스템, 제어 장치, 및 네트워크 토폴로지 관리 방법
US9124526B2 (en) Switch system, and data forwarding method
RU2612599C1 (ru) Устройство управления, система связи, способ управления коммутаторами и программа
RU2558624C2 (ru) Устройство управления, система связи, способ связи и носитель записи, содержащий записанную на нем программу для связи
US20140241367A1 (en) Communication system, controller, communication method, and program
KR20130125826A (ko) 네트워크 시스템 및 vlan 태그 정보 취득 방법
KR20130060291A (ko) 컴퓨터 시스템 및 컴퓨터 시스템에 있어서의 통신 방법
US20170070364A1 (en) Communication system, control apparatus, communication control method and program
JPWO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
US9860178B2 (en) Control message relay apparatus, control message relay method, and program

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 4