WO2012032864A1 - スイッチシステム、スイッチ制御方法、及び記憶媒体 - Google Patents

スイッチシステム、スイッチ制御方法、及び記憶媒体 Download PDF

Info

Publication number
WO2012032864A1
WO2012032864A1 PCT/JP2011/066524 JP2011066524W WO2012032864A1 WO 2012032864 A1 WO2012032864 A1 WO 2012032864A1 JP 2011066524 W JP2011066524 W JP 2011066524W WO 2012032864 A1 WO2012032864 A1 WO 2012032864A1
Authority
WO
WIPO (PCT)
Prior art keywords
openflow
switch
function unit
packet
tcam
Prior art date
Application number
PCT/JP2011/066524
Other languages
English (en)
French (fr)
Inventor
鈴木 洋司
正徳 高島
一志 久保田
徹 伊澤
将志 林
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to CN201180043295.5A priority Critical patent/CN103098427B/zh
Priority to RU2013110063/08A priority patent/RU2595918C2/ru
Priority to KR1020157007618A priority patent/KR101627475B1/ko
Priority to CA 2810486 priority patent/CA2810486A1/en
Priority to JP2012532901A priority patent/JP5561366B2/ja
Priority to US13/821,344 priority patent/US9577931B2/en
Priority to EP11823343.6A priority patent/EP2615781B1/en
Priority to KR1020137006089A priority patent/KR101538560B1/ko
Priority to ES11823343.6T priority patent/ES2639638T3/es
Publication of WO2012032864A1 publication Critical patent/WO2012032864A1/ja
Priority to US14/745,020 priority patent/US20150312147A1/en

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
    • 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
    • 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

Definitions

  • the present invention relates to a switch system, and more particularly to a switch system in which each switch has a plurality of tables.
  • OpenFlow open flow
  • a controller such as OFC (OpenFlow Controller) controls the behavior of the switch by operating an open flow table (OpenFlow Table) of a switch such as OFS (OpenFlow Switch).
  • OpenFlow Table open flow table
  • OFS OpenFlow Switch
  • the controller and the switch are connected by a secure channel (Secure Channel) for the controller to control the switch using a control message conforming to the OpenFlow protocol.
  • the switches in the OpenFlow network are edge switches and core switches that form the OpenFlow network and are under the control of the controller.
  • a series of packet flows from the reception of a packet at the input side edge switch to the transmission at the output side edge switch in the OpenFlow network is called a flow.
  • the open flow table is a table in which flow entries (Flow entries) defining predetermined processing contents (actions) to be performed on packets (communication data) that meet predetermined matching conditions (rules) are registered.
  • Flow entries flow entries defining predetermined processing contents (actions) to be performed on packets (communication data) that meet predetermined matching conditions (rules) are registered.
  • the rule of the flow entry is one of a destination address (Destination Address), a source address (Source Address), a destination port (Destination Port), a source port (Source Port) included in the header area of each protocol layer of the packet, or Defined and distinguishable by various combinations using all.
  • the above address includes a MAC address (Media Access Control Address) and an IP address (Internet Protocol Address).
  • Information on the ingress port (Ingress Port) can also be used as a rule for the flow entry.
  • the action of the flow entry indicates operations such as “output to a specific port”, “discard”, and “rewrite header”. For example, if the identification information (output port number, etc.) of the output port is indicated in the action of the flow entry, the switch outputs a packet to the corresponding port, and if the identification information of the output port is not indicated , Discard the packet. Alternatively, if the header information is indicated in the action of the flow entry, the switch rewrites the header of the packet based on the header information.
  • a switch in the OpenFlow network executes a flow entry action on a packet group (packet series) that conforms to the rules of the flow entry.
  • the TCAM Ternary Content Addressable Memory
  • the switch table mainly TCAM
  • An object of the present invention is to realize the expansion of the number of entries in the OpenFlow table using each table of a switch which is an existing resource.
  • the switch system constructs an OpenFlow table by logically integrating a plurality of tables defining processing for a predetermined packet according to conditions and processing contents defined in each table.
  • an open flow function unit that determines the processing content for the received packet and an action function unit that executes processing for the received packet according to the determined processing content are provided.
  • the switch control method is a switch control method implemented in an open flow switch, and a plurality of tables defining processes for a predetermined packet are logically processed according to conditions and processing contents defined in each table. Integratedly constructing an OpenFlow table, referring to the OpenFlow table, determining processing contents for the received packet, and executing processing for the received packet according to the determined processing contents.
  • the program according to the present invention is a program for causing a computer used as a switch to execute the processing in the above-described switch control method.
  • the program according to the present invention can be stored in a storage device or a storage medium.
  • the switch system includes a controller 101 and a switch 102.
  • the controller 101 controls the switch 102 by processing conforming to the OpenFlow protocol.
  • the switch 102 includes a protocol control unit 103, an input port 104, an open flow function unit 105, a legacy function unit 108, an action function unit 111, and an output port 112.
  • the protocol control unit 103 performs protocol control between the controller 101 and the switch 102 when the controller 101 performs communication for controlling the switch 102 by processing conforming to the OpenFlow protocol.
  • the protocol control unit 103 is not limited to the inside of the switch 102, but may be a front stage of the switch 102.
  • the input port 104 is a packet input interface.
  • the input port 104 has an open flow valid port and an open flow invalid port.
  • the OpenFlow valid port is an input port corresponding to the OpenFlow protocol
  • the OpenFlow invalid port is an input port not compatible with the OpenFlow protocol.
  • the OpenFlow function unit 105 processes a packet input from the OpenFlow valid port.
  • the OpenFlow function unit 105 includes an OpenFlow table management unit 106 and an OpenFlow processing resolution unit (OpenFlow Action Solver) 107.
  • the OpenFlow table management unit 106 holds an OpenFlow table used by the switch 102.
  • actions open flow processing actions for packets conforming to the OpenFlow protocol are defined.
  • the OpenFlow process resolution unit 107 determines the action of the OpenFlow process based on the search (Lookup) result of the OpenFlow table management unit 106.
  • the legacy function unit 108 processes packets input from the OpenFlow invalid port.
  • the legacy function unit 108 includes a legacy table management unit 109 and a legacy processing resolution unit 110.
  • the legacy table management unit 109 is a legacy table used by the switch 102.
  • the legacy table management unit 109 defines an action (legacy processing action) for a packet (such as a normal packet) that does not conform to the OpenFlow protocol.
  • the legacy processing resolution unit 110 determines the corresponding legacy processing action based on the search result of the legacy table management unit 109. For legacy processing, a normal switch function is used.
  • the action function unit 111 executes the action determined by the OpenFlow function unit 105 or the legacy function unit 108.
  • the output port 112 is a packet output interface.
  • OpenFlow processing packet routing is performed via an external controller.
  • the controller selects the optimum route by looking at the entire network.
  • path control is performed by autonomous distribution, as is done by ordinary switches and routers. Ordinary switches and routers select the optimum route by judging the network status from information about their neighbors.
  • packet identification can be performed using a combination of up to 12 types of information.
  • legacy processing there is little information that can be used for packet identification, such as a destination MAC address for an L2 network and a destination IP address for an L3 network. For this reason, it is difficult to perform fine flow control.
  • legacy processing even if the destination IP address is the same, if the source TCP port number is different, it is determined that the flow is different and another route is selected.
  • the switch 102 checks whether the input port 104 that received the packet is an OpenFlow valid port. For example, the switch 102 refers to the setting information (config) of the switch 102 itself or the input port 104 and checks whether the input port 104 is an open flow valid port.
  • config setting information
  • the OpenFlow function unit 105 performs search processing on the passed packet in the OpenFlow table management unit 106 that holds a plurality of tables of the switch 102.
  • the OpenFlow function unit 105 determines the action of the packet from the search result and the priority (Priority) of each table.
  • the priority order may be read as priority.
  • the OpenFlow function unit 105 passes the corresponding packet to the action function unit 111 based on the determined action. In other words, the subject of the packet processing shifts from the open flow function unit 105 to the action function unit 111.
  • the legacy function unit 108 performs search processing on the passed packet in the legacy table management unit 109 configured from a plurality of tables of the switch 102.
  • the legacy function unit 108 determines the action of the packet in the legacy processing resolution unit 110 from the search result and the priority order (Priority) of each table. That is, the subject of processing of the packet shifts from the legacy function unit 108 to the action function unit 111.
  • legacy processing in the legacy function unit 108 to the legacy processing resolution unit 110 uses a normal switch function, and is not described in detail in the present invention.
  • the action function unit 111 executes the action determined by the OpenFlow function unit 105 or the legacy function unit 108 for the corresponding packet.
  • Examples of actions determined by the OpenFlow function unit 105 include rewriting header information, outputting a packet from a specified output port, and discarding a packet.
  • As an example of the action determined by the legacy function unit 108 packet transfer by routing or the like can be considered. However, actually, it is not limited to these examples.
  • the action function unit 111 outputs the corresponding packet from the appropriate output port 112 according to the content.
  • the controller 101 can control the open flow table management unit 106 of the switch 102 through the protocol control unit 103.
  • control of the OpenFlow table management unit 106 refers to registration / change / deletion / collective deletion of flow entries with respect to the OpenFlow table.
  • Each table of the switch 102 held as an OpenFlow table by the OpenFlow table management unit 106 does not necessarily correspond to all operations defined in the OpenFlow specification (OpenFlow Spec).
  • the controller 101 needs to perform control based on functions (settable actions) that can be realized in each table held by the OpenFlow table management unit 106 as an OpenFlow table.
  • FIG. 2 is a diagram for explaining the details of the open flow function unit 105 of the present invention.
  • the OpenFlow function unit 105, the OpenFlow table management unit 106, the OpenFlow process resolution unit 107, and the action function unit 111 are the same as the mechanisms and functions shown in FIG.
  • the OpenFlow function unit 105 includes an OpenFlow table management unit 106 and an OpenFlow processing resolution unit 107.
  • the OpenFlow table management unit 106 includes a table group 113 and a search function unit 114.
  • the table group 113 is a table group constituting an OpenFlow table.
  • the search function unit 114 searches the input packet using the table group 113.
  • the search function unit 114 includes an L2 / L3 / other table (OF) search function unit 115 and a TCAM (OF) search function unit 116.
  • the L2 / L3 / other table (OF) search function unit 115 refers to the L2 table (OF), L3 table (OF), and other table (OF) for the input packet and searches for a corresponding entry.
  • An example of the other table (OF) is a multicast routing table.
  • the L2 / L3 / other table (OF) search function unit 115 searches the table in units of protocols for input packets.
  • the TCAM (OF) search function unit 116 refers to the TCAM (OF) for the input packet and searches for a corresponding entry. That is, the TCAM (OF) search function unit 116 performs a TCAM search for the input packet.
  • the input port 104 passes the packet input from the OpenFlow valid port to the OpenFlow function unit 105.
  • the OpenFlow function unit 105 performs a search process on the passed packet in the OpenFlow table management unit 106 configured from a plurality of tables of the switch 102.
  • the search function unit 114 of the OpenFlow table management unit 106 performs a search based on the entry information registered in the table group 113 constituting the OpenFlow table.
  • the L2 / L3 / other table (OF) search function unit 115 first performs a search, and then the TCAM (OF) search function unit 116 performs a search.
  • the search function unit 114 passes this search result to the open flow processing solution unit 107.
  • the OpenFlow process resolution unit 107 determines the action of the packet from the search result and the priority (Priority) of each table.
  • controller 101 As an example of the controller 101 a computer such as a PC (personal computer), a workstation, a mainframe, or a supercomputer is assumed. Further, the controller 101 may be an expansion board mounted on a computer or a virtual machine (VM) that is constructed on a physical machine.
  • PC personal computer
  • VM virtual machine
  • Examples of the switch 102 include an L3 switch (layer 3 switch), an L4 switch (layer 4 switch), an L7 switch / application switch ( layer 7 switch) or multi-layer switch (multi-lay) er switch) or the like is assumed.
  • Other examples of the switch 102 include a router, a proxy, a gateway, a firewall, a load balancer, a bandwidth control device / security monitoring control device ( A gatekeeper, a base station, an access point (AP), a communication satellite (CS), or a computer having a plurality of communication ports can be considered.
  • the protocol control unit 103, the OpenFlow function unit 105, the OpenFlow table management unit 106, the OpenFlow process resolution unit 107, the legacy function unit 108, the legacy table management unit 109, the legacy process resolution unit 110, and the action function unit 111 are programmed. And a processor that executes predetermined processing and a memory that stores the program and various data.
  • processors include a CPU (Central Processing Unit), a network processor (NP: Network Processor), a microprocessor (microprocessor), a microcontroller, or a semiconductor integrated circuit (IC: Integrated Circuit) having a dedicated function. Conceivable.
  • CPU Central Processing Unit
  • NP Network Processor
  • microprocessor microprocessor
  • microcontroller or a semiconductor integrated circuit (IC: Integrated Circuit) having a dedicated function. Conceivable.
  • semiconductor storage devices such as RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable and Programmable Read Only Memory), and HDD Memory (SDHidK)
  • RAM Random Access Memory
  • ROM Read Only Memory
  • EEPROM Electrically Erasable and Programmable Read Only Memory
  • HDD Memory HDD Memory
  • An auxiliary storage device such as State Drive
  • a removable disk such as a DVD (Digital Versatile Disk)
  • a storage medium such as an SD memory card (Secure Digital memory card), or the like
  • a buffer or a register may be used.
  • DAS Direct Attached Storage
  • FC-SAN Fibre Channel-Storage Area Network
  • NAS Network Attached Storage
  • IP-SAN IP-Storage Area
  • processor and the memory may be integrated.
  • a single chip such as a microcomputer has been developed. Therefore, a case where a one-chip microcomputer mounted on an electronic device or the like includes a processor and a memory can be considered.
  • the protocol control unit 103, the OpenFlow function unit 105, the OpenFlow table management unit 106, the OpenFlow process resolution unit 107, the legacy function unit 108, the legacy table management unit 109, the legacy process resolution unit 110, and the action function unit 111 are An expansion board mounted on a computer or a virtual machine (VM) built on a physical machine may be used.
  • VM virtual machine
  • input port 104 and output port 112 include semiconductor integrated circuits such as boards (motherboards and I / O boards) that support network communication, network adapters such as NIC (Network Interface Card), similar expansion cards, antennas, etc. Communication ports such as communication devices and connection ports (connectors) are conceivable.
  • Examples of networks used by the input port 104 and the output port 112 include the Internet, a LAN (Local Area Network), a wireless LAN (Wireless LAN), a WAN (Wide Area Network), a backbone (Backbone), and a cable TV (CATV).
  • Line fixed telephone network, mobile telephone network, WiMAX (IEEE 802.16a), 3G (3rd Generation), dedicated line (lease line), IrDA (Infrared Data Association), Bluetooth (registered trademark), serial communication line, data bus Etc. are considered.
  • Each may be a module, a component, a dedicated device, or an activation (calling) program thereof.
  • FIG. 3 is a diagram for explaining the details of the open flow processing resolution unit 107 of the present invention.
  • the open flow processing resolution unit 107 and the TCAM (OF) search function unit 116 are the same as the mechanisms and functions shown in FIG.
  • the OpenFlow processing resolution unit 107 is realized as a part of the TCAM (OF) search function unit 116 by adjusting the entry mapping of the TCAM (OF).
  • the OpenFlow processing resolution unit 107 and the TCAM (OF) search function unit 116 are essentially one functional block (TCAM (OF) Lookup & OpenFlow Action Resolver). This functional block has an inter-table priority 117 and an entry 118 inside the TCAM (OF).
  • the inter-table priority 117 indicates an expected action priority (Priority).
  • An entry 118 in the TCAM (OF) indicates entry mapping in the TCAM (OF) corresponding to the priority (Priority).
  • An entry 118 in the TCAM (OF) includes a TCAM (OF) search entry group 119, an L2 table (OF) search result reference entry 120, an L3 table (OF) search result reference entry 121, and other tables ( OF) includes a search result reference entry 122 and a miss-hit entry 123.
  • the TCAM (OF) search entry group 119 is a set of entries for realizing a TCAM (OF) search in the TCAM (OF) search function unit 116.
  • the L2 table (OF) search result reference entry 120 is an entry for referring to the search result of the L2 table (OF).
  • the L3 table (OF) search result reference entry 121 is an entry for referring to the search result of the L3 table (OF).
  • the other table (OF) search result reference entry 122 is an entry for referring to the search result of the other table (OF).
  • the miss-hit entry 123 is an entry for handling a packet that does not hit any of the entries as “miss-hit”. That is, these are entries defining the above actions.
  • the TCAM (OF) search function unit 116 performs a search.
  • a switch that can refer to the search result of the L2 / L3 / other table during the search by the TCAM (OF) search function unit 116, it is opened by adjusting the entry mapping of the TCAM (OF).
  • the flow processing resolution unit 107 can be realized.
  • the action priority (Priority) 117 is “all correspondence (corresponding to TCAM (OF))” ⁇ “L2 correspondence (corresponding to L2 table (OF)) in order from the highest priority (Priority). " ⁇ " L3 correspondence (equivalent to L3 table (OF)) " ⁇ ” Other correspondence (equivalent to other table) ".
  • the OpenFlow processing resolution unit 107 uses this as an entry mapping in the TCAM (OF), and from the descending order of search priority (Priority) of the TCAM (OF), “entry group 119 for realizing the TCAM (OF) search function” ⁇ “L2 table (OF) search result reference entry 120” ⁇ “L3 table (OF) search result reference entry 121” ⁇ “Other table (OF) search result reference entry 122” ⁇ “Miss-hit entry 123” Should be arranged in the order.
  • the TCAM (OF) search function realizing entry group 119 is an entry group for realizing the TCAM (OF) search function unit 116 of the search function.
  • the open flow processing resolution unit 107 selects the action of the entry as the action for the packet.
  • L2 table (OF) search result reference entry The L2 table (OF) search result reference entry 120 is hit when an entry corresponding to the input packet exists on the L2 table (OF) based on the result of the L2 table (OF) search performed in advance. Is an entry.
  • the open flow processing resolution unit 107 selects the action of the corresponding entry in the L2 table (OF) as the action for the packet.
  • L3 table (OF) search result reference entry The L3 table (OF) search result reference entry 121 is hit when an entry corresponding to the input packet exists on the L3 table (OF) based on the result of the L3 table (OF) search performed in advance. Is an entry.
  • the open flow processing resolution unit 107 selects the action of the corresponding entry in the L3 table (OF) as the action for the packet.
  • the other table (OF) search result reference entry 122 is hit when an entry corresponding to the input packet exists on the other table (OF) based on the result of the other table (OF) search performed in advance. Is an entry.
  • the open flow processing resolution unit 107 selects the action of the corresponding entry in the other table (OF) as an action for the packet.
  • Miss-hit entry 123 is an entry that is hit when no input packet hits any entry in the TCAM (OF).
  • the Miss-hit entry 123 is an entry in which packets of all patterns are hit. If the input packet does not hit any entry in the TCAM (OF) and hits only the Miss-hit entry 123, the OpenFlow processing resolution unit 107 sets “Packet-IN” according to the OpenFlow setting. (Action inquiry of the corresponding packet to the controller) or “NORMAL” (packet processing using the legacy function unit) is selected as an action for the packet.
  • FIG. 4 is a schematic diagram of open flow table control from the controller in the present invention.
  • the controller 101, the switch 102, the protocol control unit 103, and the table group 113 are the same as the mechanisms and functions shown in FIGS.
  • the switch 102 includes a TCAM 124, an L2 table 125, an L3 table 126, and other tables 127.
  • the TCAM 124 includes TCAM (OF) and TCAM (Legacy).
  • the L2 table 125 includes an L2 table (OF) and an L2 table (Legacy).
  • the L3 table 126 includes an L3 table (OF) and an L3 table (Legacy).
  • the other table 127 includes an other table (OF) and another table (Legacy).
  • TCAM (OF), L2 table (OF), L3 table (OF), and other table (OF) constitute an OpenFlow table.
  • TCAM (Legacy), L2 table (Legacy), L3 table (Legacy), and other tables (Legacy) constitute a legacy table.
  • the TCAM 124, the L2 table 125, the L3 table 126, and the other table 127 on the switch 102 are physically one table in a normal case.
  • this physically one table (TCAM 124, L2 table 125, L3 table 126, and other table 127), the table group 113 constituting the OpenFlow table, and the table group constituting the legacy table. It has a function of logically dividing into 128.
  • the switch 102 physically opens one table (TCAM 124, L2 table 125, L3 table 126, and other table 127) by logically integrating them according to the conditions and processing contents defined in each table.
  • a flow table (table group 113) and a legacy table (table group 128) are constructed.
  • the table group 113 constituting the OpenFlow table includes a TCAM (OF), an L2 table (OF), an L3 table (OF), and other tables (OF).
  • the table group 128 constituting the legacy table includes a TCAM (Legacy), an L2 table (Legacy), an L3 table (Legacy), and other tables (Legacy).
  • the controller 101 can control the open flow table of the switch 102 through the protocol control unit 103.
  • the TCAM 124, the L2 table 125, the L3 table 126, and the other table 127 on the switch are each physically one table in a normal case.
  • the switch 102 constructs a logical OpenFlow table (table group 113) and a legacy table (table group 128) based on the TCAM 124, the L2 table 125, the L3 table 126, and the other table 127.
  • Each table that constitutes an OpenFlow table has different OpenFlow functions that can be realized.
  • the controller 101 is based on “1: What is the OpenFlow function that can be realized in each table” and “2: Which table constitutes the OpenFlow table to be controlled”. It is necessary to perform open flow table control.
  • controller side a function that can be implemented in each table is input in advance and an error is returned when other control is performed
  • switch side A control instruction from the controller has a mechanism of providing an error return mechanism when the target table does not have a function corresponding to control.
  • FIG. 5 is a diagram for explaining details of an example of the first method of open flow table control from the controller according to the present invention. Here, a case where a table is designated within a priority range will be described.
  • the controller 101, the switch 102, the OpenFlow table management unit 106, and the table group 113 are the same as the mechanisms and functions shown in FIGS.
  • the OpenFlow table management unit 106 of the OpenFlow function unit 105 assigns a priority range to each table of the table group 113 constituting the OpenFlow table.
  • the priority range of each table must not overlap.
  • the sum of the priority ranges should not exceed the priority range defined by OpenFlow.
  • the controller 101 designates a table with a value within a priority range assigned to each table.
  • the OpenFlow table management unit 106 of the OpenFlow function unit 105 determines a table to be used based on a value within a priority range specified by the controller 101.
  • FIG. 6 is a diagram for explaining details of an example of the second method of open flow table control from the controller according to the present invention. Here, a case where a table is specified by a table ID will be described.
  • the controller 101, the switch 102, the OpenFlow table management unit 106, and the table group 113 are the same as the mechanisms and functions shown in FIGS.
  • the OpenFlow table management unit 106 of the OpenFlow function unit 105 assigns a table ID 129 to each table group 113 constituting the OpenFlow table.
  • each table ID When specifying a table with a table ID, each table ID must not be duplicated. On the other hand, there is no problem even if the priority ranges defined in each table overlap. This is because each table is identified as another table by the table ID 129, and the priority (Priority) of each table is determined by the OpenFlow processing resolution unit 107.
  • the controller 101 designates a table with a table ID 129 assigned to each table.
  • the OpenFlow table management unit 106 of the OpenFlow function unit 105 determines a table to be used based on the table ID 129 specified by the controller 101.
  • Steps S101 to S107 show a flow of a series of operations from packet inflow.
  • the switch 102 registers the TCAM (OF) entry (1) in the TCAM (OF) of the table group 113.
  • the “Match condition” is defined by a combination of arbitrary header information from L1 to L4. Further, “Action” defines actions such as relay / discard for a packet conforming to the Match condition and rewriting of header information.
  • L3 table (OF) entry (2) is registered.
  • the switch 102 registers the L3 table (OF) entry (1) and the L3 table (OF) entry (2) in the L3 table (OF) of the table group 113.
  • Step S105 First, in the OpenFlow function unit 105, the L2 / L3 / other table (OF) search function unit 115 searches the incoming packet with the L2 / L3 / other table (OF). In this search, the packet hits the L3 table (OF) entry (1).
  • Step S106 The L2 / L3 / other table (OF) search function unit 115 notifies the open flow processing resolution unit 107 of the search result.
  • the open flow processing resolution unit 107 and the TCAM (OF) search function unit 116 are shown as one functional block (TCAM (OF) Lookup & OpenFlow Action Solver).
  • Step S107 The TCAM (OF) search function unit 116 performs a search using the TCAM (OF) for the inflowing packet.
  • the TCAM (OF) entry (1) first hits the packet.
  • the TCAM (OF) search process ends.
  • the TCAM (OF) search function unit 116 notifies the open flow processing resolution unit 107 of the search result.
  • Step S108 The OpenFlow processing resolution unit 107 receives search results from each of the L2 / L3 / other table (OF) search function unit 115 and the TCAM (OF) search function unit 116, and performs an action on the flowed-in packet according to the priority order between the tables. To decide. Here, TCAM (OF) has the highest priority. Therefore, the OpenFlow processing resolution unit 107 determines the action (Drop) of the TCAM (OF) entry (1) as an action for the inflowed packet, and notifies the action function unit 111 of the determined action (Drop).
  • Step S109 The action function unit 111 executes the action (Drop) determined by the open flow process resolution unit 107.
  • the action function unit 111 does not output a packet because the action is “Drop”.
  • the action function unit 111 discards the incoming packet and subsequent packets belonging to the same flow.
  • [Operation example of packet inflow (2)] 8A and 8B are a second operation example of the switch system when a packet flows in the present invention. For the sake of simplicity, only functional blocks related to operation are described. Steps S201 to S210 show a flow of a series of operations from packet inflow.
  • the switch 102 registers the TCAM (OF) entry (1) in the TCAM (OF) of the table group 113.
  • L3 table (OF) entry (2) is registered.
  • the switch 102 registers the L3 table (OF) entry (1) and the L3 table (OF) entry (2) in the L3 table (OF) of the table group 113.
  • Step S205 First, in the OpenFlow function unit 105, the L2 / L3 / other table (OF) search function unit 115 searches the packet with the L2 / L3 / other table (OF). In this search, the packet hits the L3 table (OF) entry (2).
  • Step S206 The L2 / L3 / other table (OF) search function unit 115 notifies the open flow processing resolution unit 107 of the search result.
  • the open flow processing resolution unit 107 and the TCAM (OF) search function unit 116 are shown as one functional block (TCAM (OF) Lookup & OpenFlow Action Solver).
  • Step S208 The OpenFlow processing resolution unit 107 receives search results from each of the L2 / L3 / other table (OF) search function unit 115 and the TCAM (OF) search function unit 116, and performs an action on the flowed-in packet according to the priority order between the tables. To decide. Here, only the L3 table (OF) entry (2) exists as a target entry. Therefore, the OpenFlow processing resolution unit 107 determines the action (output from Port 2) of the L3 table (OF) entry (2) as an action for the inflowed packet, and determines the determined action (output from Port 2) as the action function unit. 111 is notified.
  • Step S209 The action function unit 111 executes the action (output from Port 2) determined by the open flow process resolution unit 107.
  • Step S210 The action function unit 111 outputs the flowed-in packet and subsequent packets belonging to the same flow to the output port 112 having Port2.
  • Step S211 The output port 112 outputs the packet output from the action function unit 111 from Port2.
  • the L2 / L3 / other table (OF) search function unit 115 searches all the hit entries as search results when there are entries that hit a plurality of tables for the inflowing packet. Notify the OpenFlow processing resolution unit 107. When there is no entry that hits the highest priority TCAM (OF), the OpenFlow processing resolution unit 107 has the highest priority among the search results of the L2 / L3 / other table (OF) search function unit 115. Use the entry that hits the highest table.
  • the L2 / L3 / other table (OF) search function unit 115 when there is an entry that hits a plurality of tables for an inflowed packet, follows these priority levels 117 between the tables. An entry that hits the table with the highest priority among the tables may be notified to the OpenFlow processing resolution unit 107 as a search result.
  • OF table
  • FIG. 9 is an example of a first method of controlling the OpenFlow table from the controller when the table is specified in the priority range.
  • the registration information 132 is registration information from the controller 101 to the open flow table management unit 106 of the switch 102.
  • the registration result 133 is a registration result in the table group 113 constituting the OpenFlow table.
  • the switch 102 controls the table to be expected according to the priority (Priority).
  • Step S301 The controller 101 registers the entry ⁇ priority (Priority): 50001, Match condition: XXX, Action: YYYY ⁇ with respect to the switch 102.
  • Step S302 When an entry is registered from the controller 101, the switch 102 selects the L2 table (OF), which is a table corresponding to the priority (Priority) of the entry, and registers the corresponding entry in the L2 table (OF).
  • OF L2 table
  • FIG. 10 is an example of the second method of controlling the OpenFlow table from the controller when the table is specified by the table ID.
  • Registration information 134 is registration information from the controller to the OpenFlow table.
  • the registration result 135 is a registration result in the table group constituting the OpenFlow table.
  • the switch 102 controls the expected table by the table ID.
  • Step S401 The controller 101 registers the entries ⁇ table ID: # 2, priority (Priority): 1, Match condition: XXX, Action: YYYY ⁇ to the switch 102.
  • Step S402 When an entry is registered from the controller 101, the switch 102 selects an L2 table (OF) that is a table corresponding to the table ID of the entry, and registers the corresponding entry in the L2 table (OF).
  • OF L2 table
  • resources between a plurality of tables can be integrated by the OpenFlow process resolution unit, and the priority (Priority) of each table can be compared to perform action (Action) resolution.
  • a large-capacity OpenFlow table can be constructed using resources of multiple tables of the switch. As a result, a large amount of flow can be controlled by the switch.
  • the OpenFlow table when used as one large-capacity OpenFlow table, there are a plurality of “priority (Priority) ranges” and a plurality of tables constituting the OpenFlow table.
  • Each table constituting the OpenFlow table can be identified by using the “table ID” when used as a different OpenFlow table.
  • an OpenFlow table composed of a plurality of switch tables can be used as one large-capacity OpenFlow table or a plurality of different OpenFlow tables. As a result, it is possible to flexibly control an OpenFlow table composed of a plurality of tables.
  • the second embodiment is an example of the open flow processing resolution unit when the open flow processing resolution unit is not included in the TCAM (OF) search function unit.
  • FIG. 11 is a diagram for explaining details of the OpenFlow function unit 105 when the search is performed in the order of “TCAM (OF) search function unit 116” ⁇ “L2 / L3 other table (OF) search function unit 115”.
  • FIG. 11 is a diagram for explaining details of the OpenFlow function unit 105 when the search is performed in the order of “TCAM (OF) search function unit 116” ⁇ “L2 / L3 other table (OF) search function unit 115”.
  • OpenFlow function unit 105 OpenFlow table management unit 106, OpenFlow process resolution unit 107, action function unit 111, table group 113, search function unit 114, L2 / L3 / other table (OF) search function unit 115, TCAM ( The OF) search function unit 116 is the same as the mechanism / function shown in FIG.
  • FIG. 11 shows an example in which the TCAM (OF) search function unit 116 does not perform a search last in the search function unit 114 of the OpenFlow table management unit 106.
  • TCAM OF
  • FIG. 12 is a diagram for explaining the details of the OpenFlow function unit 105 when the L2 / L3 other table (OF) search function unit 115 and the TCAM (OF) search function unit 116 are searched simultaneously.
  • OF L2 / L3 other table
  • OF TCAM
  • OpenFlow function unit 105 OpenFlow table management unit 106, OpenFlow process resolution unit 107, action function unit 111, table group 113, search function unit 114, L2 / L3 / other table (OF) search function unit 115, TCAM ( The OF) search function unit 116 is the same as the mechanism / function shown in FIG.
  • OpenFlow function unit 105 when the L2 / L3 other table (OF) search function unit 115 and the TCAM (OF) search function unit 116 are searched simultaneously will be described with reference to FIG.
  • FIG. 12 shows a case where the TCAM (OF) search function unit 116 is not performed last in the search function unit 114 of the OpenFlow table management unit 106.
  • the open flow processing resolution unit 107 cannot be included in the TCAM (OF) search function unit 116. .
  • FIG. 13 shows an embodiment of the open flow processing resolution unit 107 when the open flow processing resolution unit 107 cannot be included in the TCAM (OF) search function unit 116.
  • the open flow process resolution unit 107 and the action function unit 111 are the same as the mechanism / function shown in FIG.
  • the OpenFlow process resolution unit 107 includes a search reception unit (Lookup Receiver) 130 and a process resolution unit (Action Resolver) 131.
  • the search receiving unit (Lookup Receiver) 130 receives the search result of each table.
  • the process resolution unit (Action Resolver) 131 determines the open flow process based on the search result of each table.
  • the open flow processing resolution unit 107 When the open flow processing resolution unit 107 cannot be included in the TCAM (OF) search function unit 116, the open flow processing resolution unit 107 as shown in FIG.
  • a search receiving unit (Lookup Receiver) 130 receives a search result of each table.
  • the processing resolution unit (Action Resolver) 131 determines an OpenFlow action based on a search result of each table and a preset table priority (Priority), and notifies the action function unit 111 of the determined action.
  • the switch 102 is described as an open flow switch, but the open flow switch is merely an example. Actually, the present invention is not limited to the open flow switch, and the present invention can be applied to a switch having the same mechanism and function as the open flow switch.
  • the present invention relates to a method for extending an OpenFlow table by aggregating a plurality of tables.
  • the present invention realizes an expansion of the number of open flow table flow entries by constructing an open flow table using a plurality of switch tables for an open flow table realized by a single table (mainly TCAM) of a switch. Is.
  • the OpenFlow table includes a flow entry group including three types of information: ⁇ Match condition, Action, and statistical information ⁇ .
  • a flow to be controlled can be defined based on this match condition, and an action and statistical information can be acquired in units of this flow.
  • the present invention increases the total number of flow entries in the OpenFlow table as a device by constructing an OpenFlow table using a plurality of switch tables without increasing the capacity of the switch table (mainly TCAM). It is realized. That is, it is possible to use a plurality of tables inside the switch and use them as a large capacity open flow table from the controller.
  • a switch table mainly TCAM
  • Each of the plurality of switch tables has an original use (for example, L2 relay for the L2 table and L3 relay for the L3 table). Use in the form of cut out.
  • the feature of the present invention is that “match condition / action differences of multiple tables are absorbed and integrated as an open flow table” and “a specific action determination method at that time is provided. Is.
  • a part of the plurality of table resources of the switch is used as an OpenFlow table.
  • each table of the switch is handled as an “open flow table resource with function restriction” according to a realizable function (Match condition / Action).
  • the OpenFlow processing resolution unit absorbs the functional difference (Match condition / Action) of each table resource and integrates it as an OpenFlow table resource.
  • the action determination is realized by the priority between the tables including the TCAM (Priority) in the OpenFlow processing resolution unit.
  • the open flow processing resolution unit is included in the TCAM (OF) search function unit.
  • an OpenFlow table composed of a plurality of tables is flexibly controlled from the controller.
  • table identification is realized in the range of priority (Priority).
  • table identification by the table ID is realized.

Landscapes

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

Abstract

 スイッチシステムは、既存のリソースであるスイッチの各テーブルを用いてオープンフローテーブルのエントリ数拡張を実現する。具体的には、スイッチは、所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、オープンフローテーブルを参照して、受信パケットに対する処理内容を決定する。そして、決定された処理内容に従って、受信パケットに対する処理を実行する。

Description

スイッチシステム、スイッチ制御方法、及び記憶媒体
 本発明は、スイッチシステムに関し、特に個々のスイッチが複数のテーブルを有するスイッチシステムに関する。
 ネットワークシステムにおける通信経路の制御については、近年、通信機器の制御プロトコルであるオープンフロー(OpenFlow)技術を使用した経路制御方式が研究されている。オープンフロー技術による経路制御が行われるネットワークを、オープンフローネットワークと呼ぶ。
 オープンフローネットワークでは、OFC(OpenFlow Controller)等のコントローラが、OFS(OpenFlow Switch)等のスイッチのオープンフローテーブル(OpenFlow Table)を操作することによりスイッチの挙動を制御する。コントローラとスイッチの間は、コントローラがオープンフロープロトコルに準拠した制御メッセージを用いてスイッチを制御するためのセキュアチャネル(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)の容量自体を増やすことは難しい。
 上記の課題の解決方法の1つとして、外部TCAMを使用するという方法があるが、これにはコストがかかる。また、10G多ポート(データ伝送速度10Gビット/秒に対応した複数のポートを有するネットワーク機器)のような高速転送の機器では、外部TCAMの使用自体が不可という状況がある。少なくとも現状では、10Gベースのスイッチで動作可能な外部TCAMは存在しない。
 本発明の目的は、既存のリソースであるスイッチの各テーブルを用いてオープンフローテーブルのエントリ数拡張を実現することにある。
 本発明に係るスイッチシステムは、所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、オープンフローテーブルを参照して、受信パケットに対する処理内容を決定するオープンフロー機能部と、決定された処理内容に従って、受信パケットに対する処理を実行するアクション機能部とを具備する。
 本発明に係るスイッチ制御方法は、オープンフロースイッチにおいて実施されるスイッチ制御方法であって、所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、オープンフローテーブルを参照して、受信パケットに対する処理内容を決定することと、決定された処理内容に従って、受信パケットに対する処理を実行することとを含む。
 本発明に係るプログラムは、上記のスイッチ制御方法における処理を、スイッチとして使用される計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
 これにより、コントローラからスイッチ内部の複数のテーブルを、1つの大容量のオープンフローテーブルとして用いることを可能とする。
本発明に係るスイッチシステムの構成例を示す概念図である。 本発明の第1実施形態に係るオープンフロー機能部の詳細を示す概念図である。 本発明の第1実施形態に係るオープンフロー処理解決部の詳細を示す概念図である。 オープンフローテーブル制御の概要を示す図である。 オープンフローテーブル制御の第1方式の例の詳細を示す図である。 オープンフローテーブル制御の第2方式の例の詳細を示す図である。 パケット流入時のスイッチシステムの第1の動作例を示す図である。 パケット流入時のスイッチシステムの第1の動作例を示す図である。 パケット流入時のスイッチシステムの第2の動作例を示す図である。 パケット流入時のスイッチシステムの第2の動作例を示す図である。 オープンフローテーブル制御の第1方式の具体例を説明するための図である。 オープンフローテーブル制御の第2方式の具体例を説明するための図である。 本発明の第2実施形態に係るスイッチシステムの実施例1の詳細を示す概念図である。 本発明の第2実施形態に係るスイッチシステムの実施例2の詳細を示す概念図である。 本発明の第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は、レガシーテーブル(Legacy Table)管理部109と、レガシー処理解決部(Legacy Action Resolver)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)からパケットのアクションを決定する。なお、優先順位は、優先度と読み替えても良い。
 [オープンフロー処理からアクション実行への移行]
 オープンフロー機能部105は、決定されたアクションが「Packet-IN」(コントローラに対する該当パケットのアクション問い合わせ)であった場合(例えば、該当するフローエントリが存在せずアクションが決定できなかった場合)は、プロトコル制御部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において、検索結果、及び各テーブルの優先順位(Priority)からパケットのアクションを決定する。すなわち、該当パケットの処理の主体が、レガシー機能部108からアクション機能部111に移行する。
 なお、レガシー機能部108~レガシー処理解決部110でのレガシー処理については、通常のスイッチ機能を用いるため、本発明では詳細に触れない。
 [アクション実行]
 アクション機能部111は、該当パケットに対して、オープンフロー機能部105、もしくはレガシー機能部108で決定されたアクションを実行する。
 オープンフロー機能部105で決定されたアクションの例として、ヘッダー(Header)情報の書き換え、指定された出力ポートからのパケット出力、パケット破棄等が考えられる。レガシー機能部108で決定されたアクションの例として、ルーティング(routing)等によるパケット転送等が考えられる。但し、実際には、これらの例に限定されない。
 最後に、アクション機能部111は、実行されるアクションに「パケット出力」が含まれている場合は、その内容に従って、適切な出力ポート112から該当パケットを出力する。
 [コントローラによるオープンフローテーブルの制御]
 なお、コントローラ101は、プロトコル制御部103を通じて、スイッチ102のオープンフローテーブル管理部106の制御を行うことが可能である。ここで、「オープンフローテーブル管理部106の制御」とは、オープンフローテーブルに対するフローエントリの登録/変更/削除/一括削除等である。
 オープンフローテーブル管理部106がオープンフローテーブルとして保持するスイッチ102の各テーブルは、必ずしもオープンフロー仕様(OpenFlow Spec)で規定されている全ての操作に対応している訳ではない。
 このため、コントローラ101は、オープンフローテーブル管理部106がオープンフローテーブルとして保持する各テーブルで実現可能な機能(設定可能なアクション)を踏まえて制御を行う必要がある。
 [オープンフロー機能部の詳細]
 図2は、本発明のオープンフロー機能部105の詳細について説明するための図である。
 オープンフロー機能部105、オープンフローテーブル管理部106、オープンフロー処理解決部107、アクション機能部111は、図1に表されている機構・機能と同一のものである。
 オープンフロー機能部105は、オープンフローテーブル管理部106と、オープンフロー処理解決部107を備える。
 オープンフローテーブル管理部106は、テーブル群113と、検索(Lookup)機能部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は、検索結果、及び各テーブルの優先順位(Priority)からパケットのアクションを決定する。
 [ハードウェアの例示]
 以下に、本発明に係るスイッチシステムを実現するための具体的なハードウェアの例について説明する。
 コントローラ101の例として、PC(パソコン)、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、コントローラ101は、計算機に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。
 スイッチ102の例として、L3スイッチ(layer 3 switch)、L4ス
イッチ(layer 4 switch)、L7スイッチ/アプリケーションスイッチ(
layer 7 switch)、或いは、マルチレイヤスイッチ(multi-lay
er switch)等のネットワークスイッチ(network switch)を想定している。他にも、スイッチ102の例として、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置/セキュリティ監視制御装置(gatekeeper)、基地局(base station)、アクセスポイント(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)等の記憶媒体(メディア)等が考えられる。また、バッファ(buffer)やレジスタ(register)でも良い。或いは、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)、ケーブルテレビ(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) Lookup & OpenFlow Action Resolver)となる。この機能ブロックは、テーブル間優先順位117と、TCAM(OF)内部のエントリ118を有する。
 テーブル間優先順位117は、期待するアクション優先順位(Priority)を示す。TCAM(OF)内部のエントリ118は、優先順位(Priority)に対応する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)の検索結果を参照するためのエントリである。Miss-hit用エントリ123は、いずれのエントリにもヒット(hit)しなかったパケットを「Miss-hit(ヒットせず)」として取り扱うためのエントリである。すなわち、これらは上記のそれぞれのアクションを定義したエントリである。
 [オープンフロー処理解決部の動作]
 以下に、図3のオープンフロー処理解決部107の動作について説明する。
 オープンフローテーブル内の検索順序として、最後に、TCAM(OF)検索機能部116が検索を行う。なお、TCAM(OF)検索機能部116での検索の際に、L2/L3/その他テーブルの検索結果を参照することが可能なスイッチでは、TCAM(OF)のエントリマッピングを調整することにより、オープンフロー処理解決部107を実現することが可能である。
 例えば、テーブル間優先順位117のような期待するテーブルごとのアクション優先順位(Priority)を、TCAM(OF)内部のエントリ118のようにマッピングすることにより対応することができる。
 図3の例の場合は、アクション優先順位(Priority)117は、優先順位(Priority)の高い順から、「全部対応(TCAM(OF)相当)」→「L2対応(L2テーブル(OF)相当)」→「L3対応(L3テーブル(OF)相当)」→「その他対応(その他テーブル相当)」となっている。
 オープンフロー処理解決部107は、これをTCAM(OF)内のエントリマッピングとして、TCAM(OF)の検索優先順位(Priority)の高い順から、「TCAM(OF)検索機能実現用エントリ群119」→「L2テーブル(OF)検索結果参照用エントリ120」→「L3テーブル(OF)検索結果参照用エントリ121」→「その他テーブル(OF)検索結果参照用エントリ122」→「Miss-hit用エントリ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)検索結果参照用エントリ]
 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)検索結果参照用エントリ]
 その他テーブル(OF)検索結果参照用エントリ122は、事前に行われたその他テーブル(OF)の検索の結果を踏まえ、入力パケットに対応するエントリがその他テーブル(OF)上に存在した場合にヒットするエントリである。
 例えば、その他テーブル(OF)検索時に入力パケットに対応するエントリがあった場合は、あるフラグ「Z=1」となり、TCAM(OF)上のその他テーブル(OF)検索結果参照用エントリ122では、このフラグ「Z=1」の場合に同エントリがヒットする。
 オープンフロー処理解決部107は、その他テーブル(OF)検索結果参照用エントリ122がヒットした場合、その他テーブル(OF)の該当エントリのアクションを、当該パケットに対するアクションとして選択する。
 [Miss-hit用エントリ]
 Miss-hit用エントリ123は、TCAM(OF)のいずれのエントリにも入力パケットがヒットしなかった場合にヒットするエントリである。
 ここでは、Miss-hit用エントリ123は、全てのパターンのパケットがヒットするエントリである。オープンフロー処理解決部107は、入力パケットがTCAM(OF)のいずれのエントリにもヒットせず、Miss-hit用エントリ123にのみヒットした場合、オープンフローの設定に応じて、「Packet-IN」(コントローラに対する該当パケットのアクション問い合わせ)、もしくは「NORMAL」(レガシー機能部を用いたパケット処理)を、当該パケットに対するアクションとして選択する。
 なお、各テーブルのアクション優先順位(Priority)を変えたい場合は、TCAM(OF)内の該当エントリの順番を入れ替えれば良い。
 [オープンフローテーブル制御の概要]
 図4は、本発明におけるコントローラからのオープンフローテーブル制御の概要図である。コントローラ101、スイッチ102、プロトコル制御部103、テーブル群113は、図1、図2に表されている機構・機能と同一のものである。
 スイッチ102は、TCAM124と、L2テーブル125と、L3テーブル126と、その他テーブル127を含む。
 TCAM124は、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上のTCAM124、L2テーブル125、L3テーブル126、及びその他テーブル127は、通常の場合、物理的には1つのテーブルである。
 本発明におけるスイッチ102では、この物理的に1つのテーブル(TCAM124、L2テーブル125、L3テーブル126、及びその他テーブル127)を、オープンフローテーブルを構成するテーブル群113と、レガシーテーブルを構成するテーブル群128に論理的に分ける機能を有する。すなわち、スイッチ102は、物理的に1つのテーブル(TCAM124、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のオープンフローテーブルの制御を行うことが可能である。
 スイッチ上のTCAM124、L2テーブル125、L3テーブル126、その他テーブル127は、通常の場合、物理的には各々1つのテーブルである。
 本発明におけるスイッチでは、これらのテーブルのリソースの一部をオープンフロー用に切り出して使用し、オープンフローテーブルを構成するテーブル群113とレガシーテーブルを構成するテーブル群128を論理的に構築する機能を有する。すなわち、スイッチ102は、TCAM124、L2テーブル125、L3テーブル126、及びその他テーブル127を基に、論理的なオープンフローテーブル(テーブル群113)とレガシーテーブル(テーブル群128)を構築する。
 オープンフローテーブルを構成する各テーブルは、それぞれ実現できるオープンフロー機能が異なる。
 このため、コントローラ101は、「1:各テーブルで実現可能なオープンフロー機能はどのようなものか」、「2:制御するエントリはオープンフローテーブルを構成するどのテーブルのものか」を踏まえた上でオープンフローテーブル制御を行う必要がある。
 「1」については、「コントローラ側:予め各テーブルで実現可能な機能を入力(Input)しておいて、それ以外の制御を行おうとした場合にエラーを返す機構を持たせる」、「スイッチ側:コントローラからの制御命令について、対象となるテーブルが制御に対応する機能を有していない場合にエラーを返す機構を持たせる」といった対応がある。
 「2」については、「オープンフローテーブルにおける優先順位(Priority)(0-64k)の一定範囲ずつを各テーブルに割り当て、コントローラから制御を行う際はこの優先順位(Priority)の範囲を基に、使用するテーブルを判別する」、「オープンフローテーブルを構成する各テーブルにIDを持たせ、コントローラから制御を行う際はこのIDを基に、使用するテーブルを判別する」といった対応がある。
 [オープンフローテーブル制御の詳細(1)]
 図5は、本発明におけるコントローラからのオープンフローテーブル制御の第1方式の例の詳細について説明するための図である。ここでは、優先順位(Priority)範囲でテーブル指定する場合について説明する。
 コントローラ101、スイッチ102、オープンフローテーブル管理部106、テーブル群113は、図1、図2に表されている機構・機能と同一のものである。
 オープンフロー機能部105のオープンフローテーブル管理部106は、オープンフローテーブルを構成するテーブル群113の各々のテーブルに、優先順位(Priority)範囲を割り当てる。
 優先順位(Priority)範囲でテーブル指定する場合、各々のテーブルの優先順位(Priority)範囲は重複してはならない。また、優先順位(Priority)範囲の合計は、オープンフローで規定されている優先順位(Priority)範囲を越えてはならない。
 コントローラ101は、各テーブルに割り当てられた優先順位(Priority)範囲内の値でテーブルを指定する。
 オープンフロー機能部105のオープンフローテーブル管理部106は、コントローラ101から指定された優先順位(Priority)範囲内の値を基に、使用するテーブルを判別する。
 [オープンフローテーブル制御の詳細(2)]
 図6は、本発明におけるコントローラからのオープンフローテーブル制御の第2方式の例の詳細について説明するための図である。ここでは、テーブルIDでテーブル指定する場合について説明する。
 コントローラ101、スイッチ102、オープンフローテーブル管理部106、テーブル群113は、図1、図2に表されている機構・機能と同一のものである。
 オープンフロー機能部105のオープンフローテーブル管理部106は、オープンフローテーブルを構成するテーブル群113に、各々テーブルID129を割り当てる。
 テーブルIDでテーブル指定する場合、各々のテーブルIDは重複してはならない。一方、各テーブルで規定される優先順位(Priority)範囲は、重複しても問題ない。各テーブルはテーブルID129により別のテーブルとして識別され、各々のテーブルの優先順位(Priority)はオープンフロー処理解決部107により決定されるためである。
 コントローラ101は、各テーブルに割り当てられたテーブルID129でテーブルを指定する。
 オープンフロー機能部105のオープンフローテーブル管理部106は、コントローラ101から指定されたテーブルID129を基に、使用するテーブルを判別する。
 [パケット流入時の処理の動作例(1)]
 図7A、図7Bは、本発明におけるパケット流入時のスイッチシステムの第1の動作例である。である。簡単のため、動作に関連する機能ブロックのみ記載している。ステップS101~ステップS107は、パケット流入からの一連の動作の流れを示す。
 (1)ステップS101
 コントローラ101は、予めスイッチ102に対して、{Match条件:宛先IP=AA、Action:Drop}というTCAM(OF)エントリー(1)の登録を行う。スイッチ102は、テーブル群113のTCAM(OF)に、TCAM(OF)エントリー(1)の登録を行う。
 なお、「Match条件」は、L1~L4までの任意のヘッダー情報の組合せにより定義される。また、「Action」は、Match条件に適合したパケットに対する中継/破棄、ヘッダー情報の書き換え等のアクションを定義したものである。
 (2)ステップS102
 コントローラ101は、予めスイッチ102に対して、{Match条件:宛先IP=AA、Action:Port1から出力}というL3テーブル(OF)エントリー(1)と、{Match条件:宛先IP=BB、Action:Port2から出力}という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) Lookup & OpenFlow Action Resolver)として示す。
 (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に対して、{Match条件:宛先IP=AA、Action:Drop}というTCAM(OF)エントリー(1)の登録を行う。スイッチ102は、テーブル群113のTCAM(OF)に、TCAM(OF)エントリー(1)の登録を行う。
 (2)ステップS202
 コントローラ101は、予めスイッチ102に対して、{Match条件:宛先IP=AA、Action:Port1から出力}というL3テーブル(OF)エントリー(1)と、{Match条件:宛先IP=BB、Action:Port2から出力}という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) Lookup & OpenFlow Action Resolver)として示す。
 (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)のアクション(Port2から出力)を、流入したパケットに対するアクションとして決定し、決定したアクション(Port2から出力)を、アクション機能部111に通知する。
 (9)ステップS209
 アクション機能部111は、オープンフロー処理解決部107で決定されたアクション(Port2から出力)を実行する。
 (10)ステップS210
 アクション機能部111は、アクション機能部111は、流入したパケット及びこれと同一フローに属する以降のパケットを、Port2を持つ出力ポート112に出力する。
 (11)ステップS211
 出力ポート112は、アクション機能部111から出力されたパケットを、Port2から出力する。
 (12)ステップS212
 Port2から出力されたパケットは、ネットワーク上に流出し、宛先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は、優先順位(Priority)範囲でテーブル指定する場合におけるコントローラからのオープンフローテーブル制御の第1方式の例である。
 登録情報132は、コントローラ101からスイッチ102のオープンフローテーブル管理部106への登録情報である。登録結果133は、オープンフローテーブルを構成するテーブル群113への登録結果である。
 オープンフローテーブルを構成するテーブル群113を1つのテーブルに見立てた場合、スイッチ102は、優先順位(Priority)により期待するテーブルへの制御を行う。
 (1)ステップS301
 コントローラ101は、スイッチ102に対して、{優先順位(Priority):50001、Match条件:XXXX、Action:YYYY}というエントリの登録を行う。
 (2)ステップS302
 スイッチ102は、コントローラ101からエントリが登録された場合、このエントリの優先順位(Priority)に該当するテーブルであるL2テーブル(OF)を選択し、このL2テーブル(OF)に該当エントリを登録する。
 [オープンフローテーブル制御例(2)]
 図10は、テーブルIDでテーブル指定する場合におけるコントローラからのオープンフローテーブル制御の第2方式の例である。
 登録情報134は、コントローラからのオープンフローテーブルへの登録情報である。登録結果135は、オープンフローテーブルを構成するテーブル群への登録結果である。
 オープンフローテーブルを構成するテーブル群の各テーブルを、それぞれ別のオープンフローテーブルに見立てた場合、スイッチ102は、テーブルIDにより期待するテーブルへの制御を行う。
 (1)ステップS401
 コントローラ101は、スイッチ102に対して、{テーブルID:#2、優先順位(Priority):1、Match条件:XXXX、Action:YYYY}というエントリの登録を行う。
 (2)ステップS402
 スイッチ102は、コントローラ101からエントリが登録された場合、このエントリのテーブルIDに該当するテーブルであるL2テーブル(OF)を選択し、このL2テーブル(OF)に該当エントリを登録する。
 [第1実施形態の特徴]
 本実施形態によれば、オープンフロー処理解決部により複数のテーブル間のリソースを統合し、かつ、各テーブルの優先順位(Priority)を比較してアクション(Action)解決を行うことができる。
 従って、スイッチの複数のテーブルのリソースを用いて大容量のオープンフローテーブルを構築することができる。これにより、スイッチにより大量のフローを制御することが可能となる。
 また、本実施形態によれば、オープンフローテーブルを1つの大容量のオープンフローテーブルとして使用する場合における「優先順位(Priority)範囲」や、オープンフローテーブルを構成するテーブル群の各テーブルを複数の異なるオープンフローテーブルとして使用する場合における「テーブル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は、各テーブルの検索結果、及び予め設定されたテーブル優先順位(Priority)によりオープンフローのアクションを決定し、決定されたアクションをアクション機能部111に通知する。
 [他の実施例]
 なお、上記の各実施形態において、スイッチ102はオープンフロースイッチであるものとして説明しているが、オープンフロースイッチは例示に過ぎない。実際には、オープンフロースイッチに限定されるものではなく、オープンフロースイッチと同様の機構・機能を有するスイッチに対しても、本発明を適用することは可能である。
 <本発明の特徴>
 本発明は、複数のテーブルの集約によるオープンフローテーブルの拡張方法に関する。
 本発明は、スイッチの単一テーブル(主にTCAM)で実現されるオープンフローテーブルについて、スイッチの複数のテーブルを用いてオープンフローテーブルを構築することによりオープンフローテーブルフローエントリ数の拡張を実現するものである。
 なお、オープンフローでは、これまで同一のNW機器(ルータ/スイッチ等)に実装されていた転送機能、制御機能を分離し、転送機能はNW機器に残し、制御機能は外出しのコントローラに任せる。コントローラは、遠隔からオープンフロープロトコルを用いてNW機器のオープンフローテーブルを操作することによりNW装置の挙動を制御する。オープンフローテーブルは、{Match条件、Action、統計情報}の3種の情報からなるフローエントリ群から構成される。オープンフローでは、この適合(Match)条件から制御対象とするフローを定義し、このフローを単位としてアクション(Action)や統計情報の取得を行うことができる。
 オープンフローの{Match条件、Action、統計情報}の概要は、以下の通りである。
 [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(upper 6bit)」/「Src Port(送信元ポート番号)」/「Dst Port(宛先ポート番号)」
 [Action]
 「Forward(ある物理ポートから出力)」/「All(入力ポート以外全てから出力)」/「Controller(コントローラ向けに出力)」/「Local(自装置のローカルスタック宛に出力)」/「テーブル(オープンフローテーブルの内容に従って出力)」/「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)の容量自体を増やすことなく、スイッチの複数のテーブルを用いてオープンフローテーブルを構築することにより、装置としてのオープンフローテーブル合計フローエントリ数の拡張を実現するものである。すなわち、スイッチ内部で複数のテーブルを使用して、コントローラからこれを大容量オープンフローテーブルとして用いることを可能とした。
 具体的には、各テーブルの機能(Match条件/Action)差分を吸収してオープンフローテーブルとしての統合を実現した。なお、スイッチの複数のテーブルは、それぞれ本来の用途(例えば、L2テーブルであればL2中継、L3テーブルであればL3中継)があるため、全てのリソースを使用するのではなく、その一部を切り出す形で使用する。
 以上のように、本発明の特徴は、「複数のテーブルのMatch条件/Action差分を吸収して、オープンフローテーブルとして統合すること」と、「その際の具体的なアクション決定方法を提供すること」である。
 本発明では、スイッチの複数のテーブルリソースの一部をオープンフローテーブルとして使用する。
 また、本発明では、スイッチの各テーブルを、実現可能な機能(Match条件/Action)に応じて「機能制限付きのオープンフローテーブルリソース」として取り扱っている。
 また、本発明では、オープンフロー処理解決部により、各テーブルリソースの機能差分(Match条件/Action)を吸収して、オープンフローテーブルリソースとして統合している。
 また、本発明では、オープンフロー処理解決部において、TCAMを含むテーブル間の優先順位(Priority)によりアクション決定を実現している。
 なお、TCAM(OF)検索が最後に行われるスイッチにおいては、オープンフロー処理解決部をTCAM(OF)検索機能部に含める形で実現している。
 更に、本発明では、複数のテーブルから構成されるオープンフローテーブルを、コントローラから柔軟に制御する。
 また、本発明では、複数のテーブルを1つのオープンフローテーブルとして使用する場合、優先順位(Priority)の範囲でのテーブル識別を実現している。
 また、本発明では、複数テーブルを個別のオープンフローテーブルとして使用する場合、テーブルIDでのテーブル識別を実現している。
 以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
 なお、本出願は、日本出願番号2010-200690に基づく優先権を主張するものであり、日本出願番号2010-200690における開示内容は引用により本出願に組み込まれる。

Claims (9)

  1.  所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、前記オープンフローテーブルを参照して、受信パケットに対する処理内容を決定するオープンフロー機能部と、
     前記決定された処理内容に従って、前記受信パケットに対する処理を実行するアクション機能部と
    を具備する
     スイッチシステム。
  2.  請求項1に記載のスイッチシステムであって、
     前記オープンフロー機能部は、
     前記受信パケットについて、前記複数のテーブルのうち、L2テーブル、L3テーブル、及びその他テーブルを検索し、該当するエントリを検索結果として出力するL2/L3/その他テーブル検索機能部と、
     前記受信パケットについて、前記複数のテーブルのうち、TCAM(Ternary Content Addressable Memory)を検索し、該当するエントリを検索結果として出力するTCAM検索機能部と、
     TCAM、L2テーブル、L3テーブル、及びその他テーブルの間の優先順位を定義し、L2/L3/その他テーブル検索機能部及びTCAM検索機能部から検索結果を受け取り、前記優先順位に応じて、採用するエントリを決定し、前記受信パケットに対する処理内容を決定するオープンフロー処理解決部と
    を具備する
     スイッチシステム。
  3.  請求項1又は2に記載のスイッチシステムであって、
     前記オープンフロー機能部は、
     前記オープンフローテーブルにおける優先順位の一定範囲ずつを各テーブルに割り当てる手段と、
     コントローラから前記オープンフローテーブルの制御が行われる際、前記コントローラから指定された優先順位の範囲内の値を基に、使用するテーブルを判別する手段と
    を具備する
     スイッチシステム。
  4.  請求項1又は2に記載のスイッチシステムであって、
     前記オープンフロー機能部は、
     前記オープンフローテーブルを構成する各テーブルにテーブルIDを設定する手段と、
     コントローラから前記オープンフローテーブルの制御が行われる際、前記コントローラから指定されたテーブルIDを基に、使用するテーブルを判別する手段と
    を具備する
     スイッチシステム。
  5.  オープンフロースイッチにおいて実施されるスイッチ制御方法であって、
     所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、前記オープンフローテーブルを参照して、受信パケットに対する処理内容を決定することと、
     前記決定された処理内容に従って、前記受信パケットに対する処理を実行することと
    を含む
     スイッチ制御方法。
  6.  請求項5に記載のスイッチ制御方法であって、
     前記受信パケットについて、前記複数のテーブルのうち、L2テーブル、L3テーブル、及びその他テーブルを検索し、該当するエントリを検索結果とすることと、
     前記受信パケットについて、前記複数のテーブルのうち、TCAM(Ternary Content Addressable Memory)を検索し、該当するエントリを検索結果とすることと、
     TCAM、L2テーブル、L3テーブル、及びその他テーブルの間の優先順位を定義し、前記優先順位に応じて、各テーブルの検索結果の中から採用するエントリを決定し、前記受信パケットに対する処理内容を決定することと
    を更に含む
     スイッチ制御方法。
  7.  請求項5又は6に記載のスイッチ制御方法であって、
     前記オープンフローテーブルにおける優先順位の一定範囲ずつを各テーブルに割り当てることと、
     コントローラから前記オープンフローテーブルの制御が行われる際、前記コントローラから指定された優先順位の範囲内の値を基に、使用するテーブルを判別することと
    を更に含む
     スイッチ制御方法。
  8.  請求項5又は6に記載のスイッチ制御方法であって、
     前記オープンフローテーブルを構成する各テーブルにテーブルIDを設定することと、
     コントローラから前記オープンフローテーブルの制御が行われる際、前記コントローラから指定されたテーブルIDを基に、使用するテーブルを判別することと
    を更に含む
     スイッチ制御方法。
  9.  所定のパケットに対する処理を定義した複数のテーブルを、各テーブルに定義された条件及び処理内容に応じて論理的に統合してオープンフローテーブルを構築し、前記オープンフローテーブルを参照して、受信パケットに対する処理内容を決定するステップと、
     前記決定された処理内容に従って、前記受信パケットに対する処理を実行するステップと
    をスイッチとして使用される計算機に実行させるためのプログラムを格納した
     記憶媒体。
PCT/JP2011/066524 2010-09-08 2011-07-21 スイッチシステム、スイッチ制御方法、及び記憶媒体 WO2012032864A1 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201180043295.5A CN103098427B (zh) 2010-09-08 2011-07-21 交换系统、交换控制系统和存储介质
RU2013110063/08A RU2595918C2 (ru) 2010-09-08 2011-07-21 Коммутационная система, система управления коммутацией и носитель данных
KR1020157007618A KR101627475B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체
CA 2810486 CA2810486A1 (en) 2010-09-08 2011-07-21 Switching system, switching control system, and storage medium
JP2012532901A JP5561366B2 (ja) 2010-09-08 2011-07-21 スイッチシステム、スイッチ制御方法、及び記憶媒体
US13/821,344 US9577931B2 (en) 2010-09-08 2011-07-21 Switching system, switching control system, and storage medium
EP11823343.6A EP2615781B1 (en) 2010-09-08 2011-07-21 Switching system, switching control method, and memory medium
KR1020137006089A KR101538560B1 (ko) 2010-09-08 2011-07-21 스위치 시스템, 스위치 제어 방법 및 기억 매체
ES11823343.6T ES2639638T3 (es) 2010-09-08 2011-07-21 Sistema de conmutación, procedimiento de control de conmutación y medio de memoria
US14/745,020 US20150312147A1 (en) 2010-09-08 2015-06-19 Switching system, switching control system, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-200690 2010-09-08
JP2010200690 2010-09-08

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/821,344 A-371-Of-International US9577931B2 (en) 2010-09-08 2011-07-21 Switching system, switching control system, and storage medium
US14/745,020 Continuation US20150312147A1 (en) 2010-09-08 2015-06-19 Switching system, switching control system, and storage medium

Publications (1)

Publication Number Publication Date
WO2012032864A1 true WO2012032864A1 (ja) 2012-03-15

Family

ID=45810468

Family Applications (1)

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

Country Status (10)

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

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023782A (zh) * 2012-11-22 2013-04-03 北京星网锐捷网络技术有限公司 一种访问三态内容寻址存储器的方法及装置
WO2013141200A1 (ja) * 2012-03-19 2013-09-26 日本電気株式会社 通信ノード、パケット処理方法及びプログラム
WO2014082590A1 (en) * 2012-11-29 2014-06-05 Huawei Technologies Co., Ltd. Packet prioritization in a software-defined network implementing openflow
WO2014098114A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 パケット処理装置、フローエントリの配置方法及びプログラム
WO2014101394A1 (zh) * 2012-12-24 2014-07-03 华为技术有限公司 可扩展虚拟局域网报文的传输方法及装置、系统
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
WO2014175423A1 (ja) 2013-04-26 2014-10-30 日本電気株式会社 通信ノード、通信システム、パケット処理方法及びプログラム
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
WO2016017182A1 (ja) * 2014-08-01 2016-02-04 日本電気株式会社 制御装置および制御方法
US9544186B2 (en) 2012-12-07 2017-01-10 Coriant Oy Method and equipment for configuring a software-defined network
RU186859U1 (ru) * 2018-11-21 2019-02-06 Общество с ограниченной ответственностью "БУЛАТ" Мультисервисный маршрутизатор
KR102211282B1 (ko) * 2019-11-20 2021-02-03 (주)파이브텍 데이터 라우팅 방법 및 이를 지원하는 스위치

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9144739B2 (en) 2011-10-26 2015-09-29 Lamar Wilkinson Computer-aided online card games using multiple online player preferences
WO2013180207A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
US10104004B2 (en) * 2012-11-08 2018-10-16 Texas Instruments Incorporated Openflow match and action pipeline structure
US9559897B2 (en) 2012-12-21 2017-01-31 Brocade Communications Systems, Inc. Device ID assignment in a system of devices
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报文转发方法及设备
US9225641B2 (en) * 2013-10-30 2015-12-29 Globalfoundries Inc. Communication between hetrogenous networks
US10212083B2 (en) 2013-10-30 2019-02-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow data channel and control channel separation
US9185049B2 (en) 2013-10-31 2015-11-10 Brocade Communications Systems, Inc. Techniques for simplifying stacking trunk creation and management
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
KR102193371B1 (ko) * 2013-11-14 2020-12-21 한국전자통신연구원 확장된 기능을 구비한 sdn-기반 네트워크 장치 및 상기 장치에서의 패킷 처리 방법
WO2015074182A1 (zh) * 2013-11-19 2015-05-28 华为技术有限公司 一种基于流表的表项寻址方法、交换机及控制器
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
RU2668065C2 (ru) 2014-05-27 2018-09-25 Хуавей Текнолоджиз Ко., Лтд. Способ управления таблицей потока и соответствующие устройство и система
AU2014399458B2 (en) * 2014-06-30 2018-01-18 Huawei Technologies Co., Ltd. Flow Entry Configuration Method, Apparatus, and System
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 коммутатор

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003304293A (ja) * 2002-04-10 2003-10-24 Hitachi Ltd パケット中継装置
JP2006101343A (ja) * 2004-09-30 2006-04-13 Oki Techno Creation:Kk パケット処理装置、パケット処理方法およびパケット処理プログラム
JP2010200690A (ja) 2009-03-04 2010-09-16 Kyushu Univ 新規スフィンゴ脂質及びその製造方法

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 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
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 ネットワークシステム、ネットワーク機器、及び、これらの制御方法
JP4336625B2 (ja) * 2004-06-17 2009-09-30 株式会社日立製作所 パケット転送装置
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
CN101247337B (zh) 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
JP5050978B2 (ja) * 2008-04-21 2012-10-17 富士通株式会社 伝送情報転送装置及び方法
CN101753544A (zh) * 2008-12-05 2010-06-23 华为技术有限公司 包过滤规则处理方法及系统、媒体网关和媒体网关控制器
WO2010090182A1 (ja) 2009-02-03 2010-08-12 日本電気株式会社 アプリケーションスイッチシステム、及びアプリケーションスイッチ方法
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
JP2003304293A (ja) * 2002-04-10 2003-10-24 Hitachi Ltd パケット中継装置
JP2006101343A (ja) * 2004-09-30 2006-04-13 Oki Techno Creation:Kk パケット処理装置、パケット処理方法およびパケット処理プログラム
JP2010200690A (ja) 2009-03-04 2010-09-16 Kyushu Univ 新規スフィンゴ脂質及びその製造方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"OpenFlow Switch Specification Version 0.9.0", WIRE PROTOCOL OX98, 20 July 2009 (2009-07-20)
CURRENT MAINTAINER: BRANDON HELLER, Retrieved from the Internet <URL:http://www.openflowswitch.org/documents/openflow-spec-vO.9.0.pdf>
See also references of EP2615781A4
THE OPENFLOW SWITCH CONSORTIUM, Retrieved from the Internet <URL:http://www.openflowswitch.org>

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2013141200A1 (ja) * 2012-03-19 2015-08-03 日本電気株式会社 通信ノード、パケット処理方法及びプログラム
WO2013141200A1 (ja) * 2012-03-19 2013-09-26 日本電気株式会社 通信ノード、パケット処理方法及びプログラム
US9769064B2 (en) 2012-03-19 2017-09-19 Nec Corporation Communication node, packet processing method and program
KR101577926B1 (ko) 2012-03-19 2015-12-15 닛본 덴끼 가부시끼가이샤 통신 노드, 패킷 처리 방법 및 프로그램
US9722922B2 (en) 2012-04-10 2017-08-01 International Business Machines Corporation Switch routing table utilizing software defined network (SDN) controller programmed route segregation and prioritization
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
CN103023782A (zh) * 2012-11-22 2013-04-03 北京星网锐捷网络技术有限公司 一种访问三态内容寻址存储器的方法及装置
EP3300320A1 (en) * 2012-11-29 2018-03-28 Huawei Technologies Co., Ltd. Packet prioritization in a software-defined network implementing openflow
EP2926513A4 (en) * 2012-11-29 2015-11-11 Huawei Tech Co Ltd PACKAGE PRIORIZATION IN A SOFTWARE DEFINED NETWORK FOR OPENFLOW IMPLEMENTATION
US9923831B2 (en) 2012-11-29 2018-03-20 Futurewei Technologies, Inc. Packet prioritization in a software-defined network implementing OpenFlow
WO2014082590A1 (en) * 2012-11-29 2014-06-05 Huawei Technologies Co., Ltd. Packet prioritization in a software-defined network implementing openflow
US9544186B2 (en) 2012-12-07 2017-01-10 Coriant Oy Method and equipment for configuring a software-defined network
CN104871501A (zh) * 2012-12-19 2015-08-26 日本电气株式会社 分组处理装置、流表项配置方法和程序
US9876716B2 (en) 2012-12-19 2018-01-23 Nec Corporation Packet processing apparatus, flow entry configuration method and program
US20150326477A1 (en) * 2012-12-19 2015-11-12 Nec Corporation Packet processing apparatus, flow entry configuration method and program
WO2014098114A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 パケット処理装置、フローエントリの配置方法及びプログラム
KR101746316B1 (ko) * 2012-12-19 2017-06-12 닛본 덴끼 가부시끼가이샤 패킷 처리 장치, 플로 엔트리 배치 방법 및 프로그램
JP5967222B2 (ja) * 2012-12-19 2016-08-10 日本電気株式会社 パケット処理装置、フローエントリの配置方法及びプログラム
EP2938029A4 (en) * 2012-12-19 2016-08-10 Nec Corp PACKET PROCESSING DEVICE, FLOW ENTRY ARRAY METHOD, AND PROGRAM
WO2014101394A1 (zh) * 2012-12-24 2014-07-03 华为技术有限公司 可扩展虚拟局域网报文的传输方法及装置、系统
US20160006583A1 (en) * 2013-02-27 2016-01-07 Nec Corporation Control apparatus, communication system, switch control method and program
RU2612599C1 (ru) * 2013-02-27 2017-03-09 Нек Корпорейшн Устройство управления, система связи, способ управления коммутаторами и программа
JP5939353B2 (ja) * 2013-02-27 2016-06-22 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
CN105009526A (zh) * 2013-02-27 2015-10-28 日本电气株式会社 控制装置、控制系统、交换机控制方法和程序
WO2014133015A1 (ja) * 2013-02-27 2014-09-04 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
KR20160003762A (ko) 2013-04-26 2016-01-11 닛본 덴끼 가부시끼가이샤 통신 노드, 통신 시스템, 패킷 처리 방법, 및 프로그램
WO2014175423A1 (ja) 2013-04-26 2014-10-30 日本電気株式会社 通信ノード、通信システム、パケット処理方法及びプログラム
JPWO2016017182A1 (ja) * 2014-08-01 2017-04-27 日本電気株式会社 制御装置および制御方法
WO2016017182A1 (ja) * 2014-08-01 2016-02-04 日本電気株式会社 制御装置および制御方法
RU186859U1 (ru) * 2018-11-21 2019-02-06 Общество с ограниченной ответственностью "БУЛАТ" Мультисервисный маршрутизатор
KR102211282B1 (ko) * 2019-11-20 2021-02-03 (주)파이브텍 데이터 라우팅 방법 및 이를 지원하는 스위치

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5962808B2 (ja) スイッチシステム、スイッチ制御方法、及び記憶媒体
CA2810660C (en) Computer system and communication method in computer system
JP5557066B2 (ja) スイッチシステム、モニタリング集中管理方法
US8750106B2 (en) Interface control system and interface control method
JP5610247B2 (ja) ネットワークシステム、及びポリシー経路設定方法
JP5440712B2 (ja) 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
US8358661B2 (en) Remote adapter configuration
EP2693708A1 (en) Network system and method for acquiring vlan tag information
JP5532276B2 (ja) スイッチシステム、及びデータ転送方法
US20160315879A1 (en) Virtual node having separate control and data planes
US20210194832A1 (en) Packet value based packet processing
JP2015511097A (ja) 通信システム、制御装置、通信方法、及びプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180043295.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11823343

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2810486

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2012532901

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13821344

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20137006089

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2011823343

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011823343

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2013110063

Country of ref document: RU

Kind code of ref document: A