WO2011074559A1 - ネットワークシステム、ネットワーク制御装置、及び制御方法 - Google Patents
ネットワークシステム、ネットワーク制御装置、及び制御方法 Download PDFInfo
- Publication number
- WO2011074559A1 WO2011074559A1 PCT/JP2010/072439 JP2010072439W WO2011074559A1 WO 2011074559 A1 WO2011074559 A1 WO 2011074559A1 JP 2010072439 W JP2010072439 W JP 2010072439W WO 2011074559 A1 WO2011074559 A1 WO 2011074559A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- packet
- network
- entry
- control application
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Definitions
- the present invention relates to a technique for controlling network devices in a network system.
- the present invention relates to a technique for controlling a network device that performs packet processing according to a packet processing table.
- FIG. 1 is a conceptual diagram for explaining a technique called “OpenFlow” described in Non-Patent Document 1.
- OpenFlow path control, failure recovery, load balancing, and optimization are performed on a flow basis.
- SW OpenFlow switch
- Controller OpenFlow controller
- the OpenFlow switch is provided with a flow table (flow table) indicating the correspondence between “match condition” and “action”, and operates according to this flow table. Specifically, when the OpenFlow switch receives a packet, it refers to the flow table and searches the flow table for an entry that matches the received packet. When an entry that matches the received packet is registered in the flow table, the OpenFlow switch executes the process specified by the action of the match entry for the received packet. Typically, the OpenFlow switch forwards the received packet to the output port specified by the action.
- flow table flow table
- the OpenFlow controller sets the contents of the OpenFlow switch flow table. That is, the OpenFlow controller can instruct the OpenFlow switch to add a new entry, change an entry, delete an entry, and the like, thereby controlling the operation of the OpenFlow switch.
- the OpenFlow switch transmits the first packet to the OpenFlow controller.
- the OpenFlow controller determines the processing content for the packet sequence of the flow starting from the first packet. That is, the OpenFlow controller determines an OpenFlow switch necessary for processing for the flow and a new entry to be set in each flow table. Then, the OpenFlow controller instructs each necessary OpenFlow switch to add a new entry. Each OpenFlow switch that receives the instruction adds a new entry to its own flow table. Then, the OpenFlow controller returns the first packet to the OpenFlow switch. Thereafter, the first packet and subsequent packets of the same flow are processed according to the new entry, that is, processed at high speed by each OpenFlow switch without going through the OpenFlow controller.
- the OpenFlow controller has various applications with different network control functions.
- the OpenFlow controller can set various processing contents for the flow by arbitrarily executing these applications. As a result, flexible and scalable network control becomes possible.
- shortest path switching is a function for realizing packet transmission along the shortest path. Specifically, “shortest path switching” designs the shortest route to the destination address of a packet, determines an entry that realizes packet transfer along the shortest route, and sets the entry to each switch on the shortest route. Set to. “NAPT” sets an entry designating address / port conversion. This allows a specific switch to act as a NAPT device for a specific flow.
- FIG. 2 shows an example of entries in the flow table set in that case.
- each entry in the flow table indicates “match condition” and “action”.
- the match condition includes a combination of a source IP address, a source port number, a destination IP address, and a destination port number.
- the match conditions of entry A and entry B are the same, and entry A and entry B indicate the processing contents for packets of the same flow.
- the entry A is set by “NAPT”, and specifies that the source IP address is rewritten to “10.56.1.10” and the source port number is rewritten to “49817”.
- the entry B is set by “shortest path switching” and designates “port 3” as the output destination of the received packet.
- entry A and entry B in FIG. 2 are set independently by “NAPT” and “shortest path switching”. That is, the entry A and the entry B are set independently of each other without considering the combination of “NAPT” and “shortest path switching”. In this case, the following problem occurs.
- entry A first hits when a packet of the flow is received.
- the source IP address and source port number of the received packet are rewritten. Therefore, after that, entry B does not hit, that is, the received packet is not sent to the desired output destination.
- entry B when entry B first hits, the packet is sent without address conversion. Thus, desired packet processing by a combination of “NAPT” and “shortest path switching” is not realized.
- a table that specifies processing contents for a packet such as a flow table, a route table, a packet filter, and the like is hereinafter referred to as a “packet processing table”.
- a device that includes a packet processing table and performs packet processing according to the packet processing table is hereinafter referred to as a “network device”.
- An apparatus that controls the operation of a network device by determining the contents of the packet processing table, that is, performs network control is hereinafter referred to as a “network control apparatus”.
- One object of the present invention is to provide a packet processing table so that packet processing corresponding to a combination can be realized without inconsistency when the network control device applies a plurality of network control functions in combination to the same flow. It is to provide a technology that can be set.
- a network system in one aspect of the present invention, includes a network device having a packet processing table, and a network control device connected to the network device.
- Each entry in the packet processing table indicates a match condition and an operation performed on a packet that matches the match condition.
- the network device sets each entry in response to entry setting data sent from the network control device.
- the network device receives the packet, the network device refers to the packet processing table.
- the network device performs the operation specified by any entry on the received packet.
- the network control device includes a plurality of control application modules, a module row determination block, a scheduling block, a table setting block, and a storage device.
- the plurality of control application modules have different network control functions, and determine the operation content according to each network control function.
- the module sequence determination block determines a module sequence.
- the module row includes at least one of a plurality of control application modules, and has a series of network control functions applied to the target packet.
- the scheduling block sequentially executes the module row and creates a single entry setting data indicating a series of operations according to a series of network control functions.
- the table setting block transmits the single entry setting data to the network device.
- the storage device stores a plurality of attached data related to each of the plurality of control application modules.
- Each of the plurality of attached data indicates an operation parameter that is referred to or rewritten in the operation determined by the corresponding control application module.
- the module sequence determination block refers to each attached data, and determines a module sequence so that inconsistency does not occur in a series of operations performed on the target packet.
- a network control device connected to a network device has a packet processing table.
- Each entry in the packet processing table indicates a match condition and an operation performed on a packet that matches the match condition.
- the network device sets each entry in response to entry setting data sent from the network control device.
- the network device receives the packet, the network device refers to the packet processing table.
- the network device performs the operation specified by any entry on the received packet.
- the network control device includes a plurality of control application modules, a module row determination block, a scheduling block, a table setting block, and a storage device.
- the plurality of control application modules have different network control functions, and determine the operation content according to each network control function.
- the module sequence determination block determines a module sequence.
- the module row includes at least one of a plurality of control application modules, and has a series of network control functions applied to the target packet.
- the scheduling block sequentially executes the module row and creates a single entry setting data indicating a series of operations according to a series of network control functions.
- the table setting block transmits the single entry setting data to the network device.
- the storage device stores a plurality of attached data related to each of the plurality of control application modules.
- Each of the plurality of attached data indicates an operation parameter that is referred to or rewritten in the operation determined by the corresponding control application module.
- the module sequence determination block refers to each attached data, and determines a module sequence so that inconsistency does not occur in a series of operations performed on the target packet.
- a network device control method has a packet processing table. Each entry in the packet processing table indicates a match condition and an operation performed on a packet that matches the match condition.
- the network device sets each entry in response to entry setting data sent from the network control device.
- the network device receives the packet, the network device refers to the packet processing table.
- the network device performs the operation specified by any entry on the received packet.
- the plurality of control application modules included in the network control device have different network control functions, and determine the operation content according to each network control function.
- the control method includes (A) a step of determining a module sequence, wherein the module sequence comprises at least one of a plurality of control application modules and has a series of network control functions applied to the target packet. , (B) sequentially executing the module row and creating a single entry setting data indicating a series of operations according to a series of network control functions; and (C) the single entry setting data as a network device. Transmitting to.
- the step (A) of determining the module row includes (A1) a step of reading a plurality of attached data relating to each of the plurality of control application modules from the storage device, wherein each of the plurality of attached data is a corresponding control. Indicates the operation parameters that are referred to or rewritten in the operation determined by the application module, and (A2) refers to each attached data, so that a series of operations performed on the target packet does not cause inconsistency. Determining a column.
- a control program for causing a network control device to execute a network device control process is provided.
- the network device has a packet processing table. Each entry in the packet processing table indicates a match condition and an operation performed on a packet that matches the match condition.
- the network device sets each entry in response to entry setting data sent from the network control device.
- the network device receives the packet, the network device refers to the packet processing table.
- the network device performs the operation specified by any entry on the received packet.
- the plurality of control application modules included in the network control device have different network control functions, and determine the operation content according to each network control function.
- the control process includes (A) a step of determining a module sequence, wherein the module sequence includes at least one of a plurality of control application modules and has a series of network control functions applied to the target packet. , (B) sequentially executing the module row and creating a single entry setting data indicating a series of operations according to a series of network control functions; and (C) the single entry setting data as a network device. Transmitting to.
- the step (A) of determining the module row includes (A1) a step of reading a plurality of attached data relating to each of the plurality of control application modules from the storage device, wherein each of the plurality of attached data is a corresponding control. Indicates the operation parameters that are referred to or rewritten in the operation determined by the application module, and (A2) refers to each attached data, so that a series of operations performed on the target packet does not cause inconsistency. Determining a column.
- the packet processing table is set so that packet processing corresponding to the combination is realized without inconsistency. It becomes possible.
- FIG. 1 is a conceptual diagram for explaining an open flow.
- FIG. 2 shows an example of entries set in the flow table.
- FIG. 3 is a block diagram showing a configuration example of the network system according to the embodiment of the present invention.
- FIG. 4 is a block diagram illustrating a configuration example of the network device according to the present embodiment.
- FIG. 5 is a conceptual diagram showing a packet processing table in the present embodiment.
- FIG. 6 is a flowchart showing processing in the network device according to the present embodiment.
- FIG. 7 is a block diagram showing a configuration example of the network control apparatus according to the present embodiment.
- FIG. 8 is a conceptual diagram for explaining a module row in the present embodiment.
- FIG. 9 is a flowchart showing step S100 (network control processing) in the present embodiment.
- FIG. 10 is a conceptual diagram showing attached data in the present embodiment.
- FIG. 11 is a conceptual diagram for explaining step S110 (determination of module row) in the present embodiment.
- FIG. 12 is a flowchart showing step S110 (determination of module row) in the present embodiment.
- FIG. 13 is a conceptual diagram for explaining step S113 (collation processing) in the present embodiment.
- FIG. 14 is a conceptual diagram for explaining step S113 (collation processing) in the present embodiment.
- FIG. 15 is a conceptual diagram for explaining step S113 (collation processing) in the present embodiment.
- FIG. 16 is a conceptual diagram for explaining step S113 (collation processing) in the present embodiment.
- FIG. 3 is a block diagram illustrating a configuration example of the network system 1 according to the present embodiment.
- the network system 1 includes a network device 10, a server 20, and a network control device 30.
- the network device 10 is typically a switch having a flow table or a router having a route table.
- the network device 10 may be a firewall including a packet filter.
- the flow table, route table, and packet filter specify processing contents for the packet, and are hereinafter collectively referred to as “packet processing table”. That is, the network device 10 includes a packet processing table, and performs packet processing according to the packet processing table.
- the network control device 30 determines the contents of the packet processing table.
- the network control device 30 is connected to each network device 10 via the control line 5.
- the network control device 30 has a function of setting a packet processing table of each network device 10 via the control line 5.
- the network control device 30 can appropriately control the network communication by controlling the operation of the network device 10 through the setting of the packet processing table.
- Openflow An example of an interface method between the network control device 30 and the network device 10 for realizing such processing is Openflow (see http://www.openflowswitch.org/).
- Openflow Controller is the network control device 30
- Openflow Switch is each network device 10.
- the network system 1 is applied to, for example, a data center.
- FIG. 4 is a block diagram illustrating a configuration example of the network device 10.
- the network device 10 includes a processing block 11, a controller communication block 12, a storage block 13, and a plurality of ports 15.
- the port 15 to which a packet is input from the outside is an input port, and the port 15 from which the packet is output to the outside is an output port.
- the processing block 11 performs main packet processing such as packet transfer from the input port to the output port.
- the controller communication block 12 is connected to the network control device 30 via the control line 5, and serves as an interface when communicating with the network control device 30.
- the storage block 13 stores a packet processing table TBL as shown in FIG.
- the packet processing table TBL includes at least one entry, and each entry indicates “match condition” and “action”.
- the “match condition” includes a combination of parameters such as an input port, a source MAC address, a destination MAC address, a source IP address, a destination IP address, a source port number, and a destination port number.
- “Action” indicates an “operation” performed on a packet that matches the matching condition.
- the processing block 11 When the processing block 11 receives a packet through the input port, the processing block 11 refers to the packet processing table TBL stored in the storage block 13. Then, the processing block 11 checks whether or not the received packet matches the matching condition of any entry based on the header information of the received packet. That is, the processing block 11 searches the packet processing table TBL for an entry that matches the received packet. When the received packet matches the match condition of any entry, the processing block 11 performs “operation” specified by the action of the corresponding entry on the received packet.
- the “operation” is “rewrite the source IP address to“ 10.56.1.10 ”and rewrite the source port number to“ 49817 ””.
- the “operation” is “sending a packet from port 3”.
- operations parameters parameters that are referred to or rewritten during such operations.
- the “operation parameters” are the source IP address and the source port number.
- the “operation parameter” is an output physical port.
- FIG. 6 is a flowchart showing processing in the network device 10 according to the present embodiment.
- the network device 10 receives a packet of a certain flow (step S11). Specifically, the processing block 11 receives a packet through the input port. When receiving a packet from the input port, the processing block 11 extracts header information of the received packet. Then, the processing block 11 searches the packet processing table TBL for an entry that matches the received packet by using the extracted header information and input port as a search key (step S12).
- the processing block 11 When there is an entry that matches the received packet in the packet processing table TBL (step S13; Yes), the processing block 11 performs an “operation” specified by the action of the hit entry on the received packet (step S14). ). On the other hand, when there is no entry matching the received packet in the packet processing table TBL (step S13; No), the received packet is the “first packet”. In this case, the processing block 11 transmits the first packet (or header information of the first packet) to the network control device 30 via the controller communication block 12 and the control line 5 (step S15).
- the network control device 30 receives the first packet (or header information of the first packet) from the network device 10.
- the network control device 30 performs flow identification based on the header information of the first packet, and determines the processing content for the packet sequence of the flow.
- the network control device 30 applies a necessary network control function to the flow.
- the contents of the entry to be set in the packet processing table TBL of the necessary network device 10 are determined.
- Data indicating the contents of the entry to be set is hereinafter referred to as “entry setting data”. That is, the network control device 30 executes necessary network control functions and creates entry setting data. Then, the network control device 30 sends the entry setting data to the necessary network device 10 via the control line 5. Details of the network control processing (step S100) by the network control device 30 will be described later.
- Each network device 10 that has received the entry setting data from the network control device 30 sets (adds / changes) a necessary entry in its own packet processing table TBL according to the entry setting data (step S16).
- the network control device 30 returns the first packet to the network device 10. Thereafter, the first packet and subsequent packets in the same flow are processed at high speed by each network device 10 without going through the network control device 30.
- FIG. 7 is a block diagram illustrating a configuration example of the network control device 30.
- the network control device 30 includes a processing device 40 and a storage device 50.
- the processing device 40 includes a CPU (Central Processing Unit) and performs various data processing.
- the storage device 50 includes a RAM (Random Access Memory) and a HDD (Hard Disk Drive).
- the processing device 40 includes a network control block 100 and a plurality of control application modules 200.
- the network control block 100 includes a module row determination block 110, a scheduling block 120, and a table setting block 130. These functional blocks execute network control processing (step S100), which will be described in detail later. These functional blocks are realized by the processing device 40 executing the control program PROG.
- the control program PROG is a computer program executed by the network control device 30 (processing device 40) and is stored in the storage device 50.
- the control program PROG may be recorded on a computer-readable recording medium.
- the processor 40 implements the network control process (step S100) according to the present embodiment by executing the control program PROG.
- the plurality of control application modules 200 have different network control functions.
- N types (N is an integer of 2 or more) of control application modules 200-1 to 200-N are provided.
- Each control application module 200 is realized by the processing device 40 executing application software having a corresponding network control function.
- Each control application module 200 determines the content of the “operation” performed on the target packet by executing its own network control function. That is, each control application module 200 determines the content of the “operation” according to its network control function.
- network control functions include “shortest path switching”, “NAPT (Network Address Port Translation)”, “load balancing”, and the like. “Shortest path switching” is a function for realizing packet transmission along the shortest path. “NAPT” is a function for performing packet address / port conversion. “Load balancing” is a function for load balancing.
- the module row is composed of at least one of the plurality of control application modules 200.
- the module row includes three control application modules 200: (1) shortest path switching, (2) NAPT, and (3) load balancing.
- the order in which the control application modules 200 as constituent elements are executed is defined.
- the processing is executed in the order of (1) shortest path switching, (2) NAPT, and (3) load balancing.
- “preceding” and “subsequent” can be defined. What is executed before (in front of) the other control application module 200 is a “preceding module”. On the other hand, what is executed after (after) the other control application module 200 is a “subsequent module”. For example, as viewed from (2) NAPT, (1) shortest path switching is a preceding module, and (3) load balancing is a subsequent module.
- the execution order in the module row is appropriately determined in advance.
- the module example has a control application module 200 as a component and a “series of network control functions” according to the execution order.
- the module sequence is executed, that is, when the respective control application modules 200 are executed in a prescribed order, the “series of network control functions” are applied to the target packet.
- a “series of operations” corresponding to the “series of network control functions” is determined.
- the “series of operations” is performed on the packet.
- the attached data is prepared for each control application module 200 in advance.
- Each attached data indicates an “operation parameter” that is referred to or rewritten at the time of “operation” determined by the corresponding control application module 200.
- the attached data regarding the shortest path switching indicates “destination address: reference” and “output physical port: rewrite”. This means that the destination address of the packet is referred to and the output physical port is rewritten during the operation determined by shortest path switching.
- each attached data indicates a dependency relationship between the corresponding control application module 200 and another control application module 200.
- the attached data regarding the shortest path switching indicates “not precedent: NAPT”. This means that NAPT must not be executed prior to shortest path switching.
- the attached data related to NAPT indicates “required: shortest path switching”. This means that shortest path switching must be executed before NAPT.
- the storage device 50 stores attached data ATC, module string data LIN, entry setting data ENT, control program PROG, and the like.
- the attached data ATC is as described above, and is prepared for each control application module 200 in advance.
- a plurality of attached data ATC-1 to ATC-N relating to each of the plurality of control application modules 200-1 to 200-N are prepared.
- the module string data LIN is data indicating a module string as shown in FIG.
- the module string data LIN is given as a linear list having a reference to a component of the module string as a node.
- the entry setting data ENT is data indicating the contents of entries to be set in the network device 10 as described above.
- FIG. 9 is a flowchart showing network control processing (step S100) by the network control block 100.
- Step S110 The network control block 100 receives the target packet.
- the target packet is the above-described “first packet” sent from the network device 10. However, it is not limited to that.
- the module sequence determination block 110 determines a “module sequence” to be applied to the target packet.
- the module row determination block 110 refers to the necessary attached data ATC stored in the storage device 50.
- the module sequence determination block 110 can determine a module sequence that does not cause inconsistencies in the dependency relationships and operation parameters between the control application modules 200 by appropriately referring to the attached data ATC. That is, the module sequence determination block 110 can determine an appropriate module sequence so that inconsistency does not occur in the “series of operations” performed on the target packet.
- the module row determination technique is described in more detail in Section 3 below.
- the module sequence determination block 110 creates module sequence data LIN indicating the determined module sequence, and stores the module sequence data LIN in the storage device 50.
- Step S120 The scheduling block 120 reads the module string data LIN from the storage device 50. Then, the scheduling block 120 sequentially calls and executes the control application modules 200 specified by the module sequence according to the module sequence data LIN. At this time, operation parameters are exchanged between the control application modules 200 as necessary. By executing the module sequence in this way, a series of operations that guarantees the consistency performed on the target packet is determined.
- the scheduling block 120 creates “single entry setting data ENT” indicating a series of operations in which consistency is guaranteed. Then, the scheduling block 120 stores the single entry setting data ENT created for the target packet in the storage device 50.
- Step S130 The table setting block 130 reads the single entry setting data ENT described above from the storage device 50. Then, the table setting block 130 transmits the single entry setting data ENT to the necessary network device 10.
- Each network device 10 that has received the single entry setting data ENT from the network control device 30 sets a single entry in its own packet processing table TBL in accordance with the single entry setting data ENT (step S16).
- the consistency of the “series of operations” specified by the single entry is guaranteed. Therefore, desired packet processing corresponding to a combination of a plurality of network control functions can be realized without inconsistency.
- step S110 Determination of module row (step S110)
- the module row determination method by the module row determination block 110 will be described in more detail.
- FIG. 10 is a conceptual diagram showing the attached data ATC in the present embodiment.
- the attached data ATC related to a certain control application module 200 includes an application identifier 71, target packet identification information 72, a head flag 73, dependency information 74, and operation parameter information 75.
- the application identifier 71 is an identifier of the control application module 200.
- the target packet identification information 72 is identification information of the target packet to which the control application module 200 is applied.
- the head flag 73 indicates whether the control application module 200 is to be executed first among the control application modules 200 that are required to be applied to the target packet.
- the dependency relationship information 74 indicates a dependency relationship between the control application module 200 and another control application module 200.
- the other control application module 200 that is designated as “preceding impossible” cannot be a preceding module of the control application module 200.
- the other control application module 200 specified by “preceding mandatory” must be a preceding module of the control application module 200.
- the other control application module 200 designated by “cannot follow” cannot be a succeeding module of the control application module 200.
- the other control application module 200 specified by “following mandatory” must be a succeeding module of the control application module 200.
- Other control application modules 200 designated by “exclusive selection” must not be included in the module row together with the control application module 200.
- the operation parameter information 75 indicates “operation parameters” that are referred to or rewritten at the time of “operation” determined by the control application module 200.
- the operation parameter is a packet protocol field, and typically includes the following: a packet arrival physical port, a transmission physical port on the network device 10; a source address and a destination address of an Ethernet frame Protocol type, VLAN tag; IPv4 packet source address, destination address, protocol number; TCP and UDP source port, destination port.
- FIG. 11 conceptually shows step S110 in the present embodiment.
- FIG. 12 is a flowchart showing step S110.
- the module row is sequentially determined from the first module (the first module to be executed).
- the module sequence determined halfway is referred to as a “temporarily determined module sequence”.
- a candidate module When determining a module in a certain stage, a candidate module is referred to as a “candidate module” below.
- the candidate module is the control application module 200 in which the target packet identification information 72 in the corresponding attached information ATC matches the target packet. Note that when the head module is determined, a module for which the head flag 73 is set in the attached information ATC is a candidate module.
- any candidate module is selected (step S111, step S112; Yes). Subsequently, checking is performed between the candidate module and each module constituting each decision module sequence by referring to the attached data ATC of each module constituting the selected candidate module and provisional decision module sequence. (S113). As a result of the collation, if there is no inconsistency in the operation parameter or the dependency relationship (step S114; Yes), the candidate module is adopted and added to the end of the provisionally determined module row (step S115). Then, the process proceeds to module determination at the next stage.
- step S114 inconsistency may occur somewhere as a result of collation (step S114; No).
- the NG stage where the mismatch occurs may be the stage currently under consideration, or may be a stage in the provisional decision module row.
- the NG stage module is set to “NG (see FIG. 11)” (step S116). Then, the process returns to module determination in the NG stage.
- module determination in the NG stage a module that has already been set to “NG” is not selected as a candidate module.
- step S112 If there are no more unverified candidate modules (step S112; No), the process returns to module determination in the previous stage.
- the module provisionally determined in the previous stage is set to “NG”, and the next candidate module is selected.
- the module sequence is determined by recursively executing such processing.
- FIG. 13 shows dependency checking based on the dependency information 74.
- module A and module M are different modules.
- the dependency information 74 in the attached data ATC related to the module A is referred to and collated.
- the collation result differs depending on the description of the dependency relationship information 74 in the attached data ATC related to the module A and the arrangement pattern (context relationship) of the modules A and M.
- the collation result S means “success”, and the collation result F indicates “failure”.
- step S113 the consistency of the operation parameters is also checked.
- operation parameter interference occurs between different modules, a series of operations on packets may result in unintended results. Therefore, it is confirmed whether there is any inconsistency in the processing (reference, rewriting) for the operation parameter between the temporary determination module row and the candidate module. 14 to 16 show some examples.
- FIG. 14 shows the collation between “shortest path switching” and “NAPT egress”. None is specified regarding dependency.
- “reference to destination IPv4 address” is defined in both modules. Since both only “reference”, the sequence of operations is not unintentional regardless of the execution order. Therefore, the collation result is successful (S).
- FIG. 15 shows a collation between “shortest path switching” and “NAPT ingress”. None is specified regarding dependency.
- “reference to destination IPv4 address” is defined in “shortest path switching”
- “reference and rewriting of destination IPv4 address” is defined in “NAPT ingress”. In this case, since the destination IPv4 address is rewritten, a series of operations are not intended depending on the execution order. If there is a possibility of an unintended result, the collation result is a failure (F).
- FIG. 16 shows a case where a dependency relationship is further defined in the example of FIG. Specifically, it is prohibited to execute “NAPT ingress” before “shortest path switching”. In addition, it is specified that “shortest path switching” is executed before “NAPT ingress”. In this case, the rewriting of the destination IPv4 address does not affect “shortest path switching”. That is, a series of operations is not unintended. Therefore, the collation result is successful (S).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
モジュール列決定ブロックは、それぞれ異なるネットワーク制御機能を有する複数の制御アプリケーションモジュールのうち少なくとも1つからなるモジュール列を決定する。ここで、制御アプリケーションモジュール毎に用意された添付データが用いられる。添付データは、対応する制御アプリケーションモジュールによって決定される操作の際に参照あるいは書き換えられる操作パラメータを示す。モジュール列決定ブロックは、各添付データを参照し、整合性が保障されたモジュール列を決定する。スケジューリングブロックは、モジュール列を順番に実行し、一連のネットワーク制御機能に応じた一連の操作を示す単一のエントリ設定データを作成する。
Description
本発明は、ネットワークシステムにおけるネットワーク機器を制御する技術に関する。特に、本発明は、パケット処理テーブルに従ってパケット処理を行うネットワーク機器を制御する技術に関する。
図1は、非特許文献1に記載されている「オープンフロー(OpenFlow)」という技術を説明するための概念図である。オープンフローでは、フロー単位で経路制御、障害回復、負荷分散、最適化が行われる。オープンフローでは、転送ノードとして機能するオープンフロースイッチ(SW)と、そのオープンフロースイッチを制御するオープンフローコントローラ(Controller)が用いられる。
オープンフロースイッチは、「マッチ条件」と「アクション」との対応関係を示すフローテーブル(flow table)を備え、このフローテーブルに従って動作する。具体的には、オープンフロースイッチは、パケットを受け取ると、フローテーブルを参照し、受信パケットにマッチするエントリをフローテーブルから検索する。受信パケットにマッチするエントリがフローテーブルに登録されている場合、オープンフロースイッチは、当該マッチエントリのアクションで指定されている処理を、受信パケットに対して実行する。典型的には、オープンフロースイッチは、アクションで指定されている出力ポートに受信パケットを転送する。
オープンフロースイッチのフローテーブルの内容を設定するのが、オープンフローコントローラである。すなわち、オープンフローコントローラは、新規エントリの追加、エントリ変更、エントリ削除などをオープンフロースイッチに指示し、それにより、オープンフロースイッチの動作を制御することができる。
例えば、あるオープンフロースイッチがあるフローのパケットを受信したとき、当該受信パケットにマッチするエントリがフローテーブルに見つからなかった場合を考える。そのような受信パケットは、以下「第1パケット」と参照される。この場合、そのオープンフロースイッチは、第1パケットをオープンフローコントローラに送信する。この第1パケットに応答して、オープンフローコントローラは、第1パケットを先頭とする当該フローのパケット列に対する処理内容を決定する。つまり、オープンフローコントローラは、当該フローに対する処理に必要なオープンフロースイッチ及びそれぞれのフローテーブルに設定すべき新規エントリを決定する。そして、オープンフローコントローラは、必要なオープンフロースイッチのそれぞれに対して、新規エントリの追加を指示する。指示を受け取った各オープンフロースイッチは、自身のフローテーブルに新規エントリを追加する。そして、オープンフローコントローラは、第1パケットをオープンフロースイッチに返送する。その後、第1パケット及び同一フローの後続パケットは、その新規エントリに従って処理される、すなわち、オープンフローコントローラを介することなく、各オープンフロースイッチによって高速に処理されることになる。
ここで、オープンフローコントローラは、それぞれ異なるネットワーク制御機能を有する様々なアプリケーションを備えている。そして、オープンフローコントローラは、それらアプリケーションを任意に実行することにより、フローに対する処理内容を様々に設定することができる。これにより、柔軟で拡張性に優れたネットワーク制御が可能となる。
様々なネットワーク制御機能の例としては、「shortest path switching」や「NAPT(Network Address Port Translation)」が挙げられる。「shortest path switching」は、最短経路に沿ったパケット伝送を実現するための機能である。具体的には、「shortest path switching」は、パケットの宛先アドレスへの最短経路を設計し、その最短経路に沿ったパケット転送が実現されるエントリを決定し、当該エントリを最短経路上の各スイッチに設定する。「NAPT」は、アドレス/ポート変換を指定するエントリを設定する。これにより、特定のスイッチを、特定のフローに対するNAPT装置として働かせることができる。
Nick McKeown et al., "OpenFlow:Enabling Innovation in Campus Networks", ACM SIGCOMMComputer Communication Review, Vol. 38, No. 2, 2008. (http://www.openflowswitch.org//documents/openflow-wp-latest.pdf)
同一フローに対して、複数のネットワーク制御機能を組み合わせて適用することを考える。例えば、上述の「NAPT」と「shortest path switching」を組み合わせて同一フローに適用することを考える。図2は、その場合に設定されるフローテーブルのエントリの例を示している。
図2に示されるように、フローテーブルの各エントリは「マッチ条件」と「アクション」を示している。図2の例において、マッチ条件は、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、及び宛先ポート番号の組み合わせで構成されている。エントリAとエントリBのマッチ条件は同じであり、それらエントリAとエントリBは同一フローのパケットに対する処理内容を示している。エントリAは、「NAPT」により設定されたものであり、発信元IPアドレスを“10.56.1.10”に書き換え、発信元ポート番号を“49817”に書き換えることを指定している。一方、エントリBは、「shortest path switching」により設定されたものであり、受信パケットの出力先として“ポート3”を指定している。
しかしながら、図2中のエントリAとエントリBは、「NAPT」と「shortest path switching」によってそれぞれ独立に設定されている。つまり、「NAPT」と「shortest path switching」の組み合わせを考慮することなく、エントリAとエントリBは、互いに無関係に設定されている。この場合、次のような問題が発生する。
当該フローのパケット受信時、最初にエントリAがヒットした場合を考える。この場合、受信パケットの発信元IPアドレスと発信元ポート番号が書き換えられる。従って、その後、エントリBはヒットしない、すなわち、所望の出力先に受信パケットは送出されない。一方、最初にエントリBがヒットした場合、アドレス変換が行われないまま、パケットが送出されてしまう。このように、「NAPT」と「shortest path switching」の組み合わせによる所望のパケット処理が実現されない。
より一般的に、フローテーブル、経路表、パケットフィルタ等、パケットに対する処理内容を指定するテーブルは、以下「パケット処理テーブル」と参照される。パケット処理テーブルを備え、そのパケット処理テーブルに従ってパケット処理を行う機器は、以下「ネットワーク機器」と参照される。パケット処理テーブルの内容を決定することによって、ネットワーク機器の動作を制御する、すなわち、ネットワーク制御を行う装置は、以下「ネットワーク制御装置」と参照される。
本発明の1つの目的は、ネットワーク制御装置が同一フローに対して複数のネットワーク制御機能を組み合わせて適用する場合に、その組み合わせに応じたパケット処理が不整合無く実現されるようにパケット処理テーブルを設定することができる技術を提供することにある。
本発明の1つの観点において、ネットワークシステムが提供される。そのネットワークシステムは、パケット処理テーブルを有するネットワーク機器と、ネットワーク機器に接続されたネットワーク制御装置と、を具備する。パケット処理テーブルの各エントリは、マッチ条件と、マッチ条件にマッチするパケットに対して実施される操作とを示す。ネットワーク機器は、ネットワーク制御装置から送られるエントリ設定データに応答して各エントリを設定する。ネットワーク機器は、パケットを受信するとパケット処理テーブルを参照し、受信パケットがいずれかのエントリのマッチ条件にマッチした場合、いずれかのエントリで指定される操作を受信パケットに対して実施する。
ネットワーク制御装置は、複数の制御アプリケーションモジュール、モジュール列決定ブロック、スケジューリングブロック、テーブル設定ブロック、及び記憶装置を備える。複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて操作の内容を決定する。モジュール列決定ブロックは、モジュール列を決定する。モジュール列は、複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有する。スケジューリングブロックは、モジュール列を順番に実行し、一連のネットワーク制御機能に応じた一連の操作を示す単一のエントリ設定データを作成する。テーブル設定ブロックは、その単一のエントリ設定データをネットワーク機器に送信する。
記憶装置には、複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データが格納される。複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される操作の際に参照あるいは書き換えられる操作パラメータを示す。モジュール列決定ブロックは、各添付データを参照し、対象パケットに対して実施される一連の操作に不整合が生じないように、モジュール列を決定する。
本発明の他の観点において、ネットワーク機器に接続されるネットワーク制御装置が提供される。ネットワーク機器は、パケット処理テーブルを有する。パケット処理テーブルの各エントリは、マッチ条件と、マッチ条件にマッチするパケットに対して実施される操作とを示す。ネットワーク機器は、ネットワーク制御装置から送られるエントリ設定データに応答して各エントリを設定する。ネットワーク機器は、パケットを受信するとパケット処理テーブルを参照し、受信パケットがいずれかのエントリのマッチ条件にマッチした場合、いずれかのエントリで指定される操作を受信パケットに対して実施する。
ネットワーク制御装置は、複数の制御アプリケーションモジュール、モジュール列決定ブロック、スケジューリングブロック、テーブル設定ブロック、及び記憶装置を備える。複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて操作の内容を決定する。モジュール列決定ブロックは、モジュール列を決定する。モジュール列は、複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有する。スケジューリングブロックは、モジュール列を順番に実行し、一連のネットワーク制御機能に応じた一連の操作を示す単一のエントリ設定データを作成する。テーブル設定ブロックは、その単一のエントリ設定データをネットワーク機器に送信する。
記憶装置には、複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データが格納される。複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される操作の際に参照あるいは書き換えられる操作パラメータを示す。モジュール列決定ブロックは、各添付データを参照し、対象パケットに対して実施される一連の操作に不整合が生じないように、モジュール列を決定する。
本発明の更に他の観点において、ネットワーク機器の制御方法が提供される。ネットワーク機器は、パケット処理テーブルを有する。パケット処理テーブルの各エントリは、マッチ条件と、マッチ条件にマッチするパケットに対して実施される操作とを示す。ネットワーク機器は、ネットワーク制御装置から送られるエントリ設定データに応答して各エントリを設定する。ネットワーク機器は、パケットを受信するとパケット処理テーブルを参照し、受信パケットがいずれかのエントリのマッチ条件にマッチした場合、いずれかのエントリで指定される操作を受信パケットに対して実施する。ネットワーク制御装置が備える複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて操作の内容を決定する。
上記制御方法は、(A)モジュール列を決定するステップと、ここで、モジュール列は、複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有し、(B)モジュール列を順番に実行し、一連のネットワーク制御機能に応じた一連の操作を示す単一のエントリ設定データを作成するステップと、(C)その単一のエントリ設定データをネットワーク機器に送信するステップと、を含む。上記(A)モジュール列を決定するステップは、(A1)複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データを記憶装置から読みだすステップと、ここで、複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される操作の際に参照あるいは書き換えられる操作パラメータを示し、(A2)各添付データを参照し、対象パケットに対して実施される一連の操作に不整合が生じないように、モジュール列を決定するステップと、を含む。
本発明の更に他の観点において、ネットワーク機器の制御処理をネットワーク制御装置に実行させる制御プログラムが提供される。ネットワーク機器は、パケット処理テーブルを有する。パケット処理テーブルの各エントリは、マッチ条件と、マッチ条件にマッチするパケットに対して実施される操作とを示す。ネットワーク機器は、ネットワーク制御装置から送られるエントリ設定データに応答して各エントリを設定する。ネットワーク機器は、パケットを受信するとパケット処理テーブルを参照し、受信パケットがいずれかのエントリのマッチ条件にマッチした場合、いずれかのエントリで指定される操作を受信パケットに対して実施する。ネットワーク制御装置が備える複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて操作の内容を決定する。
上記制御処理は、(A)モジュール列を決定するステップと、ここで、モジュール列は、複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有し、(B)モジュール列を順番に実行し、一連のネットワーク制御機能に応じた一連の操作を示す単一のエントリ設定データを作成するステップと、(C)その単一のエントリ設定データをネットワーク機器に送信するステップと、を含む。上記(A)モジュール列を決定するステップは、(A1)複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データを記憶装置から読みだすステップと、ここで、複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される操作の際に参照あるいは書き換えられる操作パラメータを示し、(A2)各添付データを参照し、対象パケットに対して実施される一連の操作に不整合が生じないように、モジュール列を決定するステップと、を含む。
本発明によれば、ネットワーク制御装置が同一フローに対して複数のネットワーク制御機能を組み合わせて適用する場合に、その組み合わせに応じたパケット処理が不整合無く実現されるようにパケット処理テーブルを設定することが可能となる。
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。
添付図面を参照して、本発明の実施の形態を説明する。
1.ネットワークシステム
図3は、本実施の形態に係るネットワークシステム1の構成例を示すブロック図である。ネットワークシステム1は、ネットワーク機器10、サーバ20、及びネットワーク制御装置30を備えている。
図3は、本実施の形態に係るネットワークシステム1の構成例を示すブロック図である。ネットワークシステム1は、ネットワーク機器10、サーバ20、及びネットワーク制御装置30を備えている。
ネットワーク機器10は、典型的には、フローテーブルを備えるスイッチや、経路表を備えるルータである。また、ネットワーク機器10は、パケットフィルタを備えるファイアウォールであってもよい。それらフローテーブル、経路表、パケットフィルタは、パケットに対する処理内容を指定するものであり、以下「パケット処理テーブル」と総称される。つまり、ネットワーク機器10は、パケット処理テーブルを備えており、そのパケット処理テーブルに従ってパケット処理を行う。
そのパケット処理テーブルの内容を決定するのが、ネットワーク制御装置30である。ネットワーク制御装置30は、制御回線5を介して、各ネットワーク機器10に接続されている。ネットワーク制御装置30は、制御回線5を介して各ネットワーク機器10のパケット処理テーブルを設定する機能を有している。ネットワーク制御装置30は、パケット処理テーブルの設定を通してネットワーク機器10の動作を制御することにより、ネットワーク通信を適宜制御することができる。
このような処理を実現するためのネットワーク制御装置30とネットワーク機器10との間のインタフェース方式としては、例えば、Openflow(http://www.openflowswitch.org/を参照)が挙げられる。この場合、「Openflow Controller」がネットワーク制御装置30となり、「Openflow Switch」が各ネットワーク機器10となる。
本実施の形態に係るネットワークシステム1は、例えば、データセンター(data center)に適用される。
図4は、ネットワーク機器10の構成例を示すブロック図である。ネットワーク機器10は、処理ブロック11、コントローラ通信ブロック12、記憶ブロック13、及び複数のポート15を備えている。外部からパケットが入力されるポート15は入力ポートであり、パケットが外部に出力されるポート15は出力ポートである。処理ブロック11は、入力ポートから出力ポートへのパケット転送等、主要なパケット処理を行う。コントローラ通信ブロック12は、制御回線5を介してネットワーク制御装置30に接続されており、ネットワーク制御装置30との間で通信を行う際のインタフェースとなる。
記憶ブロック13には、図5に示されるようなパケット処理テーブルTBLが格納されている。図5に示されるように、パケット処理テーブルTBLは、少なくとも1つのエントリを備えており、各エントリは「マッチ条件」と「アクション」を示している。「マッチ条件」は、入力ポート、発信元MACアドレス、宛先MACアドレス、発信元IPアドレス、宛先IPアドレス、発信元ポート番号、宛先ポート番号などのパラメータの組み合わせで構成される。「アクション」は、マッチ条件にマッチするパケットに対して実施される「操作」を示す。
処理ブロック11は、入力ポートを通してパケットを受信すると、記憶ブロック13に格納されているパケット処理テーブルTBLを参照する。そして、処理ブロック11は、受信パケットのヘッダ情報などに基いて、受信パケットがいずれかのエントリのマッチ条件にマッチするか否かを調べる。つまり、処理ブロック11は、受信パケットにマッチするエントリをパケット処理テーブルTBLから検索する。受信パケットがいずれかのエントリのマッチ条件にマッチした場合、処理ブロック11は、該当エントリのアクションで指定される「操作」を、受信パケットに対して実施する。
図2の例で示されたエントリAの場合、「操作」は、「発信元IPアドレスを“10.56.1.10”に書き換え、発信元ポート番号を“49817”に書き換えること」である。また、エントリBの場合、「操作」は、「パケットをポート3から送出すること」である。また、このような操作の際に参照されたり書き換えられたりするパラメータは、以下「操作パラメータ」と参照される。図2の例で示されたエントリAの場合、「操作パラメータ」は、発信元IPアドレス及び発信元ポート番号である。エントリBの場合、「操作パラメータ」は、出力物理ポートである。
図6は、本実施の形態に係るネットワーク機器10における処理を示すフローチャートである。ネットワーク機器10は、あるフローのパケットを受信する(ステップS11)。具体的には、処理ブロック11が、入力ポートを通してパケットを受信する。入力ポートからパケットを受け取ると、処理ブロック11は、受信パケットのヘッダ情報を抽出する。そして、処理ブロック11は、抽出したヘッダ情報と入力ポートを検索キーとして用いて、受信パケットにマッチするエントリをパケット処理テーブルTBLから検索する(ステップS12)。
受信パケットにマッチするエントリがパケット処理テーブルTBLに有る場合(ステップS13;Yes)、処理ブロック11は、該当ヒットエントリのアクションで指定される「操作」を、受信パケットに対して実施する(ステップS14)。一方、受信パケットにマッチするエントリがパケット処理テーブルTBLに無い場合(ステップS13;No)、その受信パケットは「第1パケット」である。この場合、処理ブロック11は、コントローラ通信ブロック12及び制御回線5を介して、第1パケット(あるいは第1パケットのヘッダ情報)をネットワーク制御装置30に送信する(ステップS15)。
ネットワーク制御装置30は、ネットワーク機器10から第1パケット(あるいは第1パケットのヘッダ情報)を受け取る。ネットワーク制御装置30は、第1パケットのヘッダ情報に基いてフロー識別を行い、当該フローのパケット列に対する処理内容を決定する。具体的には、ネットワーク制御装置30は、当該フローに対して、必要なネットワーク制御機能を適用する。その結果、必要なネットワーク機器10のパケット処理テーブルTBLに設定すべきエントリの内容が決まる。設定すべきエントリの内容を示すデータは、以下「エントリ設定データ」と参照される。つまり、ネットワーク制御装置30は、必要なネットワーク制御機能を実行し、エントリ設定データを作成する。そして、ネットワーク制御装置30は、そのエントリ設定データを、制御回線5を介して、必要なネットワーク機器10に送る。このようなネットワーク制御装置30によるネットワーク制御処理(ステップS100)の詳細は、後述される。
ネットワーク制御装置30からエントリ設定データを受け取った各ネットワーク機器10は、そのエントリ設定データに従って、自身のパケット処理テーブルTBLに必要なエントリを設定(追加・変更)する(ステップS16)。また、ネットワーク制御装置30は、第1パケットをネットワーク機器10に返信する。その後、第1パケット及び同一フローの後続パケットは、ネットワーク制御装置30を介することなく、各ネットワーク機器10によって高速に処理されることになる。
2.ネットワーク制御装置
以下、本実施の形態に係るネットワーク制御装置30について詳細に説明する。図7は、ネットワーク制御装置30の構成例を示すブロック図である。ネットワーク制御装置30は、処理装置40及び記憶装置50を備えている。処理装置40は、CPU(Central Processing Unit)を備え、様々なデータ処理を行う。記憶装置50は、RAM(Random Access Memory)やHDD(Hard Disk Drive)を含む。
以下、本実施の形態に係るネットワーク制御装置30について詳細に説明する。図7は、ネットワーク制御装置30の構成例を示すブロック図である。ネットワーク制御装置30は、処理装置40及び記憶装置50を備えている。処理装置40は、CPU(Central Processing Unit)を備え、様々なデータ処理を行う。記憶装置50は、RAM(Random Access Memory)やHDD(Hard Disk Drive)を含む。
処理装置40は、ネットワーク制御ブロック100及び複数の制御アプリケーションモジュール200を備えている。
ネットワーク制御ブロック100は、モジュール列決定ブロック110、スケジューリングブロック120、及びテーブル設定ブロック130を含んでいる。これら機能ブロックは、後に詳しく説明されるネットワーク制御処理(ステップS100)を実行する。尚、これら機能ブロックは、処理装置40が、制御プログラムPROGを実行することにより実現される。制御プログラムPROGは、ネットワーク制御装置30(処理装置40)によって実行されるコンピュータプログラムであり、記憶装置50に格納されている。制御プログラムPROGは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。処理装置40は、制御プログラムPROGを実行することにより、本実施の形態に係るネットワーク制御処理(ステップS100)を実現する。
複数の制御アプリケーションモジュール200は、それぞれ異なるネットワーク制御機能を有している。図7の例では、N種類(Nは2以上の整数)の制御アプリケーションモジュール200-1~200-Nが設けられている。各制御アプリケーションモジュール200は、処理装置40が、該当するネットワーク制御機能を有するアプリケーションソフトウェアを実行することにより実現される。各制御アプリケーションモジュール200は、自身のネットワーク制御機能を実行することにより、対象パケットに対して実施される上記「操作」の内容を決定する。つまり、各制御アプリケーションモジュール200は、自身のネットワーク制御機能に応じた上記「操作」の内容を決定する。
ネットワーク制御機能の例としては、「shortest path switching」、「NAPT(Network Address Port Translation)」、「load balancing」などが挙げられる。「shortest path switching」は、最短経路に沿ったパケット伝送を実現するための機能である。「NAPT」は、パケットのアドレス/ポート変換を行う機能である。「load balancing」は、負荷分散を行う機能である。
ここで、図8を参照して、本実施の形態における「モジュール列」を説明する。モジュール列は、複数の制御アプリケーションモジュール200のうち少なくとも1つから構成される。図8の例では、モジュール列は、(1)shortest path switching、(2)NAPT、及び(3)load balancingの3個の制御アプリケーションモジュール200から構成されている。
また、モジュール列では、構成要素としての制御アプリケーションモジュール200が実行される順序が規定されている。図8の例では、(1)shortest path switching、(2)NAPT、(3)load balancingの順番で実行される。ここで、実行順番の観点から、「先行(preceding)」と「後続(subsequent)」が定義され得る。他の制御アプリケーションモジュール200よりも先に(前段で)実行されるものは、「先行モジュール」である。一方、他の制御アプリケーションモジュール200よりも後に(後段で)実行されるものは、「後続モジュール」である。例えば、(2)NAPTから見て、(1)shortest path switchingは先行モジュールであり、(3)load balancingは後続モジュールである。
後述されるように、モジュール列における実行順序は、予め適切に決定される。モジュール例は、構成要素としての制御アプリケーションモジュール200とその実行順序に応じた“一連のネットワーク制御機能”を有していると言える。そして、モジュール列が実行されると、すなわち、それぞれの制御アプリケーションモジュール200が規定された順序で実行されると、その“一連のネットワーク制御機能”が対象パケットに対して適用されることになる。その結果、その“一連のネットワーク制御機能”に応じた“一連の操作”が決定される。ネットワーク機器10においては、その“一連の操作”がパケットに対して実施されることになる。
ここで、パケットに対して実施される“一連の操作”に不整合が生じてはならない。例えば、ある操作によってある操作パラメータが書き換えられるとする。その場合に、その書き換えのせいで、次の操作が不可能になるといった事態は避けなければならない。すなわち、“一連の操作”に関して整合性が保障されなければならない。そのような整合性を保障するために利用されるのが、図8に示されるような「添付データ」である。
添付データは、制御アプリケーションモジュール200毎に予め用意される。各添付データは、対応する制御アプリケーションモジュール200によって決定される「操作」の際に参照あるいは書き換えられる「操作パラメータ」を示す。例えば、shortest path switchingに関する添付データは、「宛先アドレス:参照」及び「出力物理ポート:書換」を示している。これは、shortest path switchingによって決定される操作の際に、パケットの宛先アドレスが参照され、また、出力物理ポートが書き換えられることを意味する。
更に、各添付データは、対応する制御アプリケーションモジュール200と他の制御アプリケーションモジュール200との間の依存関係を示している。例えば、shortest path switchingに関する添付データは、「先行不可:NAPT」を示している。これは、NAPTがshortest path switchingより先に実行されてはならないことを意味する。また、NAPTに関する添付データは、「先行必須:shortest path switching」を示している。これは、NAPTよりも前にshortest path switchingが実行されていなければならないことを意味する。
再度図7を参照して、記憶装置50には、添付データATC、モジュール列データLIN、エントリ設定データENT、制御プログラムPROG等が格納される。添付データATCは、上述の通りであり、制御アプリケーションモジュール200毎に予め用意される。図7の例では、複数の制御アプリケーションモジュール200-1~200-Nのそれぞれに関する複数の添付データATC-1~ATC-Nが用意されている。モジュール列データLINは、図8で示されたようなモジュール列を示すデータである。典型的には、モジュール列データLINは、モジュール列の構成要素への参照をノードとして持つ線形リスト(linear list)で与えられる。エントリ設定データENTは、上述の通り、ネットワーク機器10において設定されるべきエントリの内容を示すデータである。
図9は、ネットワーク制御ブロック100によるネットワーク制御処理(ステップS100)を示すフローチャートである。
ステップS110:
ネットワーク制御ブロック100は、対象パケット受け取る。典型的には、対象パケットは、ネットワーク機器10から送られる上述の「第1パケット」である。但し、それに限られない。その対象パケットに応答して、モジュール列決定ブロック110は、対象パケットに適用される「モジュール列」を決定する。
ネットワーク制御ブロック100は、対象パケット受け取る。典型的には、対象パケットは、ネットワーク機器10から送られる上述の「第1パケット」である。但し、それに限られない。その対象パケットに応答して、モジュール列決定ブロック110は、対象パケットに適用される「モジュール列」を決定する。
このとき、モジュール列を構成する制御アプリケーションモジュール200の実行順序は、そのモジュール列の実行によって決定される“一連の操作”に不整合が生じないように決定されていなければならない。そのために、モジュール列決定ブロック110は、記憶装置50に格納されている必要な添付データATCを参照する。モジュール列決定ブロック110は、添付データATCを適宜参照することにより、制御アプリケーションモジュール200間の依存関係や操作パラメータに不整合が生じないようなモジュール列を決定することができる。すなわち、モジュール列決定ブロック110は、対象パケットに対して実施される“一連の操作”に不整合が生じないように、適切なモジュール列を決定することができる。モジュール列の決定手法は、後の第3節において更に詳細に説明される。
モジュール列決定ブロック110は、決定したモジュール列を示すモジュール列データLINを作成し、そのモジュール列データLINを記憶装置50に格納する。
ステップS120:
スケジューリングブロック120は、モジュール列データLINを記憶装置50から読み出す。そして、スケジューリングブロック120は、そのモジュール列データLINに従って、モジュール列で指定される制御アプリケーションモジュール200を順番に呼び出し、実行する。このとき、必要に応じて、制御アプリケーションモジュール200間で操作パラメータの受け渡しが行われる。このようにしてモジュール列が実行されることにより、対象パケットに対して実施される整合性が保障された一連の操作が決定される。スケジューリングブロック120は、整合性が保障された一連の操作を示す「単一のエントリ設定データENT」を作成する。そして、スケジューリングブロック120は、対象パケットに対して作成した単一のエントリ設定データENTを記憶装置50に格納する。
スケジューリングブロック120は、モジュール列データLINを記憶装置50から読み出す。そして、スケジューリングブロック120は、そのモジュール列データLINに従って、モジュール列で指定される制御アプリケーションモジュール200を順番に呼び出し、実行する。このとき、必要に応じて、制御アプリケーションモジュール200間で操作パラメータの受け渡しが行われる。このようにしてモジュール列が実行されることにより、対象パケットに対して実施される整合性が保障された一連の操作が決定される。スケジューリングブロック120は、整合性が保障された一連の操作を示す「単一のエントリ設定データENT」を作成する。そして、スケジューリングブロック120は、対象パケットに対して作成した単一のエントリ設定データENTを記憶装置50に格納する。
ステップS130:
テーブル設定ブロック130は、記憶装置50から、上述の単一のエントリ設定データENTを読み出す。そして、テーブル設定ブロック130は、その単一のエントリ設定データENTを、必要なネットワーク機器10に送信する。
テーブル設定ブロック130は、記憶装置50から、上述の単一のエントリ設定データENTを読み出す。そして、テーブル設定ブロック130は、その単一のエントリ設定データENTを、必要なネットワーク機器10に送信する。
ネットワーク制御装置30から単一のエントリ設定データENTを受け取った各ネットワーク機器10は、その単一のエントリ設定データENTに従って、自身のパケット処理テーブルTBLに単一のエントリを設定する(ステップS16)。その単一のエントリによって指定されている“一連の操作”の整合性は保障されている。従って、複数のネットワーク制御機能の組み合わせに応じた所望のパケット処理が不整合無く実現される。
3.モジュール列の決定(ステップS110)
以下、モジュール列決定ブロック110によるモジュール列の決定手法を、更に詳しく説明する。
以下、モジュール列決定ブロック110によるモジュール列の決定手法を、更に詳しく説明する。
図10は、本実施の形態における添付データATCを示す概念図である。ある制御アプリケーションモジュール200に関する添付データATCは、アプリケーション識別子71、対象パケット識別情報72、先頭フラグ73、依存関係情報74、操作パラメータ情報75を含んでいる。アプリケーション識別子71は、当該制御アプリケーションモジュール200の識別子である。対象パケット識別情報72は、当該制御アプリケーションモジュール200が適用される上記対象パケットの識別情報である。先頭フラグ73は、当該制御アプリケーションモジュール200が、当該対象パケットへの適用が要求される制御アプリケーションモジュール200のうち最初に実行されるべきものであるかどうかを示す。
依存関係情報74は、当該制御アプリケーションモジュール200と他の制御アプリケーションモジュール200との間の依存関係を示している。「先行不可」で指定される他の制御アプリケーションモジュール200は、当該制御アプリケーションモジュール200の先行モジュールであってはならない。「先行必須」で指定される他の制御アプリケーションモジュール200は、当該制御アプリケーションモジュール200の先行モジュールでなければならない。「後続不可」で指定される他の制御アプリケーションモジュール200は、当該制御アプリケーションモジュール200の後続モジュールであってはならない。「後続必須」で指定される他の制御アプリケーションモジュール200は、当該制御アプリケーションモジュール200の後続モジュールでなければならない。「排他選択」で指定される他の制御アプリケーションモジュール200は、当該制御アプリケーションモジュール200と共にモジュール列に含まれていてはならない。
操作パラメータ情報75は、当該制御アプリケーションモジュール200によって決定される「操作」の際に参照あるいは書き換えられる「操作パラメータ」を示す。操作パラメータは、パケットのプロトコルフィールドであり、典型的には次のようなものが挙げられる:ネットワーク機器10上の、パケットの到達物理ポート、送出物理ポート;イーサネットフレームの、発信元アドレス、宛先アドレス、プロトコルタイプ、VLANタグ;IPv4パケットの、発信元アドレス,宛先アドレス,プロトコル番号;TCPおよびUDPの、発信元ポート,宛先ポート。
図11は、本実施の形態におけるステップS110を概念的に示している。図12は、ステップS110を示すフローチャートである。モジュール列は、先頭モジュール(最初に実行されるもの)から順次決定される。途中まで決定されたモジュール列は、以下「仮決定モジュール列」と参照される。
ある段のモジュールを決定する際、候補となるモジュールは、以下「候補モジュール」と参照される。候補モジュールは、対応する添付情報ATC中の対象パケット識別情報72が対象パケットと合致する制御アプリケーションモジュール200である。尚、先頭モジュールを決定する際には、添付情報ATC中に先頭フラグ73がセットされているものが候補モジュールとなる。
ある段のモジュールを決定する際、まず、いずれかの候補モジュールが選択される(ステップS111、ステップS112;Yes)。続いて、選択された候補モジュール及び仮決定モジュール列を構成する各モジュールの添付データATCを参照することにより、候補モジュールと各決定モジュール列を構成する各モジュールとの間で照合(checking)が実行される(S113)。照合の結果、操作パラメータや依存関係に不整合が生じていなければ(ステップS114;Yes)、その候補モジュールが採用され、仮決定モジュール列の最後に追加される(ステップS115)。そして、処理は、次段のモジュール決定に移る。
一方、照合の結果、どこかで不整合が生じる場合がある(ステップS114;No)。その不整合が生じるNG段は、現在検討中の段であるかもしれないし、仮決定モジュール列内の段であるかもしれない。この場合、NG段のモジュールは「NG(図11参照)」に設定される(ステップS116)。そして、処理は、NG段におけるモジュール決定に戻る。NG段におけるモジュール決定において、既に「NG」に設定されたモジュールは、候補モジュールとして選択されない。
未照合の候補モジュールがもう無い場合(ステップS112;No)、処理は、前段におけるモジュール決定に戻る。前段において仮決定されていたモジュールは「NG」に設定され、次の候補モジュールが選択される。
このような処理を再帰的に実行していくことにより、モジュール列が決定される。
ステップS113における「照合」は、次の通りである。図13は、依存関係情報74に基づく依存関係の照合を示している。図13において、モジュールAとモジュールMとは互いに異なるモジュールである。ここでは、モジュールAに関する添付データATC中の依存関係情報74が参照され、照合が行われる。モジュールAに関する添付データATC中の依存関係情報74の記述と、モジュールAとモジュールMの配置パターン(前後関係)とに依存して、照合結果が異なる。照合結果Sは「成功」を意味し、照合結果Fは「失敗」を示している。
また、ステップS113において、操作パラメータの整合性もチェックされる。異なるモジュール間で操作パラメータの干渉が発生する場合、パケットに対する一連の操作が意図しない結果になる可能性がある。従って、仮決定モジュール列及び候補モジュールとの間で、操作パラメータに対する処理(参照、書き換え)に不整合がないか確認される。図14~図16は、いくつかの例を示している。
図14は、「shortest path switching」と「NAPT egress」との間の照合を示している。依存関係に関しては、何も規定されていない。操作パラメータに関しては、双方のモジュールにおいて「宛先IPv4アドレスの参照」が規定されている。双方とも「参照」するだけなので、実行順にかかわらず、一連の操作は意図しないものにはならない。従って、照合結果は成功(S)となる。
図15は、「shortest path switching」と「NAPT ingress」との間の照合を示している。依存関係に関しては、何も規定されていない。操作パラメータに関しては、「shortest path switching」において「宛先IPv4アドレスの参照」が規定されており、「NAPT ingress」において「宛先IPv4アドレスの参照及び書き換え」が規定されている。この場合、宛先IPv4アドレスの書き換えが発生するため、実行順によっては、一連の操作が意図しないものとなってしまう。意図しない結果となる可能性がある場合、照合結果は失敗(F)となる。
図16は、図15の例において更に依存関係が規定された場合を示している。具体的には、「shortest path switching」よりも前に「NAPT ingress」が実行されることが禁止されている。また、「shortest path switching」が「NAPT ingress」よりも前に実行されることが規定されている。この場合、宛先IPv4アドレスの書き換えは、「shortest path switching」に影響を与えない。つまり、一連の操作は意図しないものにはならない。従って、照合結果は成功(S)となる。
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
本出願は、2009年12月17日に出願された日本国特許出願2009-286188を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Claims (9)
- パケット処理テーブルを有するネットワーク機器と、
前記ネットワーク機器に接続されたネットワーク制御装置と
を具備し、
前記パケット処理テーブルの各エントリは、マッチ条件と、前記マッチ条件にマッチするパケットに対して実施される操作とを示し、
前記ネットワーク機器は、前記ネットワーク制御装置から送られるエントリ設定データに応答して前記各エントリを設定し、
前記ネットワーク機器は、パケットを受信すると前記パケット処理テーブルを参照し、前記受信パケットがいずれかのエントリの前記マッチ条件にマッチした場合、前記いずれかのエントリで指定される前記操作を前記受信パケットに対して実施し、
前記ネットワーク制御装置は、
それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて前記操作の内容を決定する複数の制御アプリケーションモジュールと、
前記複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有するモジュール列を決定するモジュール列決定ブロックと、
前記モジュール列を順番に実行し、前記一連のネットワーク制御機能に応じた一連の前記操作を示す単一のエントリ設定データを作成するスケジューリングブロックと、
前記単一のエントリ設定データを前記ネットワーク機器に送信するテーブル設定ブロックと、
前記複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データが格納される記憶装置と
を備え、
前記複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される前記操作の際に参照あるいは書き換えられる操作パラメータを示し、
前記モジュール列決定ブロックは、前記各添付データを参照し、前記対象パケットに対して実施される前記一連の操作に不整合が生じないように、前記モジュール列を決定する
ネットワークシステム。 - 請求項1に記載のネットワークシステムであって、
前記各添付データは、更に、前記対応する制御アプリケーションモジュールと他の制御アプリケーションモジュールとの間の依存関係を示し、
前記モジュール列決定ブロックは、前記各添付データを参照し、前記依存関係が満たされるように前記モジュール列を決定する
ネットワークシステム。 - 請求項1又は2に記載のネットワークシステムであって、
前記受信パケットがいずれのエントリの前記マッチ条件ともマッチしない場合、前記ネットワーク機器は、前記受信パケットを前記対象パケットとして前記ネットワーク制御装置に送信する
ネットワークシステム。 - ネットワーク機器に接続されるネットワーク制御装置であって、
前記ネットワーク機器は、パケット処理テーブルを有し、
前記パケット処理テーブルの各エントリは、マッチ条件と、前記マッチ条件にマッチするパケットに対して実施される操作とを示し、
前記ネットワーク機器は、前記ネットワーク制御装置から送られるエントリ設定データに応答して前記各エントリを設定し、
前記ネットワーク機器は、パケットを受信すると前記パケット処理テーブルを参照し、前記受信パケットがいずれかのエントリの前記マッチ条件にマッチした場合、前記いずれかのエントリで指定される前記操作を前記受信パケットに対して実施し、
前記ネットワーク制御装置は、
それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて前記操作の内容を決定する複数の制御アプリケーションモジュールと、
前記複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有するモジュール列を決定するモジュール列決定ブロックと、
前記モジュール列を順番に実行し、前記一連のネットワーク制御機能に応じた一連の前記操作を示す単一のエントリ設定データを作成するスケジューリングブロックと、
前記単一のエントリ設定データを前記ネットワーク機器に送信するテーブル設定ブロックと、
前記複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データが格納される記憶装置と
を備え、
前記複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される前記操作の際に参照あるいは書き換えられる操作パラメータを示し、
前記モジュール列決定ブロックは、前記各添付データを参照し、前記対象パケットに対して実施される前記一連の操作に不整合が生じないように、前記モジュール列を決定する
ネットワーク制御装置。 - 請求項4に記載のネットワーク制御装置であって、
前記各添付データは、更に、前記対応する制御アプリケーションモジュールと他の制御アプリケーションモジュールとの間の依存関係を示し、
前記モジュール列決定ブロックは、前記各添付データを参照し、前記依存関係が満たされるように前記モジュール列を決定する
ネットワーク制御装置。 - ネットワーク機器の制御方法であって、
前記ネットワーク機器は、パケット処理テーブルを有し、
前記パケット処理テーブルの各エントリは、マッチ条件と、前記マッチ条件にマッチするパケットに対して実施される操作とを示し、
前記ネットワーク機器は、ネットワーク制御装置から送られるエントリ設定データに応答して前記各エントリを設定し、
前記ネットワーク機器は、パケットを受信すると前記パケット処理テーブルを参照し、前記受信パケットがいずれかのエントリの前記マッチ条件にマッチした場合、前記いずれかのエントリで指定される前記操作を前記受信パケットに対して実施し、
前記ネットワーク制御装置が備える複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて前記操作の内容を決定し、
前記制御方法は、
モジュール列を決定するステップと、ここで、前記モジュール列は、前記複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有し、
前記モジュール列を順番に実行し、前記一連のネットワーク制御機能に応じた一連の前記操作を示す単一のエントリ設定データを作成するステップと、
前記単一のエントリ設定データを前記ネットワーク機器に送信するステップと
を含み、
前記モジュール列を決定するステップは、
前記複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データを記憶装置から読みだすステップと、ここで、前記複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される前記操作の際に参照あるいは書き換えられる操作パラメータを示し、
前記各添付データを参照し、前記対象パケットに対して実施される前記一連の操作に不整合が生じないように、前記モジュール列を決定するステップと
を含む
制御方法。 - 請求項6に記載の制御方法であって、
前記各添付データは、更に、前記対応する制御アプリケーションモジュールと他の制御アプリケーションモジュールとの間の依存関係を示し、
前記モジュール列を決定するステップは、更に、前記各添付データを参照し、前記依存関係が満たされるように前記モジュール列を決定するステップを含む
制御方法。 - ネットワーク機器の制御処理をネットワーク制御装置に実行させる制御プログラムが記録された記録媒体であって、
前記ネットワーク機器は、パケット処理テーブルを有し、
前記パケット処理テーブルの各エントリは、マッチ条件と、前記マッチ条件にマッチするパケットに対して実施される操作とを示し、
前記ネットワーク機器は、前記ネットワーク制御装置から送られるエントリ設定データに応答して前記各エントリを設定し、
前記ネットワーク機器は、パケットを受信すると前記パケット処理テーブルを参照し、前記受信パケットがいずれかのエントリの前記マッチ条件にマッチした場合、前記いずれかのエントリで指定される前記操作を前記受信パケットに対して実施し、
前記ネットワーク制御装置が備える複数の制御アプリケーションモジュールは、それぞれ異なるネットワーク制御機能を有し、それぞれのネットワーク制御機能に応じて前記操作の内容を決定し、
前記制御処理は、
モジュール列を決定するステップと、ここで、前記モジュール列は、前記複数の制御アプリケーションモジュールのうち少なくとも1つからなり、対象パケットに適用される一連のネットワーク制御機能を有し、
前記モジュール列を順番に実行し、前記一連のネットワーク制御機能に応じた一連の前記操作を示す単一のエントリ設定データを作成するステップと、
前記単一のエントリ設定データを前記ネットワーク機器に送信するステップと
を含み、
前記モジュール列を決定するステップは、
前記複数の制御アプリケーションモジュールのそれぞれに関する複数の添付データを記憶装置から読みだすステップと、ここで、前記複数の添付データの各々は、対応する制御アプリケーションモジュールによって決定される前記操作の際に参照あるいは書き換えられる操作パラメータを示し、
前記各添付データを参照し、前記対象パケットに対して実施される前記一連の操作に不整合が生じないように、前記モジュール列を決定するステップと
を含む
記録媒体。 - 請求項8に記載の記録媒体であって、
前記各添付データは、更に、前記対応する制御アプリケーションモジュールと他の制御アプリケーションモジュールとの間の依存関係を示し、
前記モジュール列を決定するステップは、更に、前記各添付データを参照し、前記依存関係が満たされるように前記モジュール列を決定するステップを含む
記録媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011546123A JP5672558B2 (ja) | 2009-12-17 | 2010-12-14 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
US13/137,541 US20110310894A1 (en) | 2009-12-17 | 2011-08-24 | Network system, network control device and control method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009286188 | 2009-12-17 | ||
JP2009-286188 | 2009-12-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011074559A1 true WO2011074559A1 (ja) | 2011-06-23 |
Family
ID=44167312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/072439 WO2011074559A1 (ja) | 2009-12-17 | 2010-12-14 | ネットワークシステム、ネットワーク制御装置、及び制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110310894A1 (ja) |
JP (1) | JP5672558B2 (ja) |
WO (1) | WO2011074559A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015525549A (ja) * | 2013-06-03 | 2015-09-03 | ▲ホア▼▲ウェイ▼技術有限公司 | サービスプロセス制御方法およびネットワークデバイス |
JP2015231059A (ja) * | 2014-06-03 | 2015-12-21 | 富士通株式会社 | 経路設定装置及び経路設定方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9319459B2 (en) * | 2011-09-19 | 2016-04-19 | Cisco Technology, Inc. | Services controlled session based flow interceptor |
US8644149B2 (en) * | 2011-11-22 | 2014-02-04 | Telefonaktiebolaget L M Ericsson (Publ) | Mechanism for packet forwarding using switch pools in flow-based, split-architecture networks |
WO2013169258A1 (en) * | 2012-05-10 | 2013-11-14 | Intel Corporation | Network routing based on resource availability |
US9210039B2 (en) | 2012-05-10 | 2015-12-08 | Intel Corporation | Generating and/or receiving at least one packet to facilitate, at least in part, network path establishment |
US8982734B2 (en) | 2012-06-26 | 2015-03-17 | Intel Corporation | Methods, apparatus, and systems for routing information flows in networks using spanning trees and network switching element resources |
US9319264B1 (en) * | 2012-07-12 | 2016-04-19 | Google Inc. | Networking systems with dynamically changing topologies |
US9071529B2 (en) * | 2012-10-08 | 2015-06-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for accelerating forwarding in software-defined networks |
US9548920B2 (en) * | 2012-10-15 | 2017-01-17 | Cisco Technology, Inc. | System and method for efficient use of flow table space in a network environment |
FI20126275L (fi) | 2012-12-07 | 2014-06-08 | Tellabs Oy | Menetelmä ja laitteisto ohjelmallisesti määriteltävän verkon konfiguroimiseksi |
JP6175766B2 (ja) * | 2012-12-25 | 2017-08-09 | 日本電気株式会社 | 通信ノード、制御装置、通信システム、エントリ集約方法及びプログラム |
US9374285B1 (en) | 2013-02-07 | 2016-06-21 | Big Switch Networks, Inc. | Systems and methods for determining network topologies |
CN104838624B (zh) * | 2013-11-22 | 2017-12-08 | 华为技术有限公司 | 一种控制业务数据在虚拟网络中转发的方法、装置及系统 |
US9876705B1 (en) | 2013-12-30 | 2018-01-23 | Google Llc | System and method for adjusting network topology without packet loss |
EP3094066B1 (en) * | 2014-01-14 | 2020-10-07 | Huawei Technologies Co., Ltd. | Network address translation method and apparatus |
WO2015147850A1 (en) | 2014-03-28 | 2015-10-01 | Hewlett-Packard Development Company, L.P. | Controlled node configuration |
US10116553B1 (en) * | 2015-10-15 | 2018-10-30 | Cisco Technology, Inc. | Application identifier in service function chain metadata |
DE102019114307A1 (de) * | 2019-05-28 | 2020-12-03 | Beckhoff Automation Gmbh | Automatisierungsnetzwerk, Netzwerkverteiler und Verfahren zur Datenübertragung |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005167761A (ja) * | 2003-12-04 | 2005-06-23 | Hitachi Ltd | パケット通信ノード装置 |
JP2007013803A (ja) * | 2005-07-01 | 2007-01-18 | Mitsubishi Electric Corp | パケット転送方法、端末およびネットワーク装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7804785B2 (en) * | 2002-04-19 | 2010-09-28 | Avaya Inc. | Network system having an instructional sequence for performing packet processing and optimizing the packet processing |
KR100859162B1 (ko) * | 2007-10-16 | 2008-09-19 | 펜타시큐리티시스템 주식회사 | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 |
-
2010
- 2010-12-14 WO PCT/JP2010/072439 patent/WO2011074559A1/ja active Application Filing
- 2010-12-14 JP JP2011546123A patent/JP5672558B2/ja not_active Expired - Fee Related
-
2011
- 2011-08-24 US US13/137,541 patent/US20110310894A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005167761A (ja) * | 2003-12-04 | 2005-06-23 | Hitachi Ltd | パケット通信ノード装置 |
JP2007013803A (ja) * | 2005-07-01 | 2007-01-18 | Mitsubishi Electric Corp | パケット転送方法、端末およびネットワーク装置 |
Non-Patent Citations (1)
Title |
---|
NICK MCKEOWN ET AL.: "OpenFlow: Enabling Innovation in Campus Networks", ACM SIGCOMMCOMPUTER COMMUNICATION REVIEW, vol. 38, no. 2, 14 March 2008 (2008-03-14), Retrieved from the Internet <URL:http://www. openflowswitch.org//documents/openflow-wp- latest.pdf> [retrieved on 20110104] * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015525549A (ja) * | 2013-06-03 | 2015-09-03 | ▲ホア▼▲ウェイ▼技術有限公司 | サービスプロセス制御方法およびネットワークデバイス |
US9537982B2 (en) | 2013-06-03 | 2017-01-03 | Huawei Technologies Co., Ltd. | Service process control method and network device |
US10425510B2 (en) | 2013-06-03 | 2019-09-24 | Huawei Technologies Co., Ltd. | Service process control method and network device |
US11233884B2 (en) | 2013-06-03 | 2022-01-25 | Huawei Technologies Co., Ltd. | Service process control method and network device |
US11700322B2 (en) | 2013-06-03 | 2023-07-11 | Huawei Technologies Co., Ltd. | Service process control method and network device |
JP2015231059A (ja) * | 2014-06-03 | 2015-12-21 | 富士通株式会社 | 経路設定装置及び経路設定方法 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011074559A1 (ja) | 2013-04-25 |
US20110310894A1 (en) | 2011-12-22 |
JP5672558B2 (ja) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5672558B2 (ja) | ネットワークシステム、ネットワーク制御装置、及び制御方法 | |
RU2628151C2 (ru) | Система связи, узел, устройство управления, способ связи и программа | |
EP3172875B1 (en) | Method for performing logical network forwarding using a controller | |
US9350653B2 (en) | Label switching in fibre channel networks | |
EP2823605B1 (en) | Methods of operating forwarding elements including shadow tables and related forwarding elements | |
JP5994851B2 (ja) | 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム | |
US8780836B2 (en) | Network system, controller, and network control method | |
US9215175B2 (en) | Computer system including controller and plurality of switches and communication method in computer system | |
US9083657B2 (en) | Flow communication system | |
EP3210347B1 (en) | Pre-built match-action tables | |
WO2011162215A1 (ja) | 通信システム、制御装置、ノードの制御方法およびプログラム | |
US10171352B2 (en) | Communication system, node, control device, communication method, and program | |
WO2010110235A1 (ja) | 経路設定サーバ、経路設定方法、及び経路設定プログラム | |
JP2017506025A (ja) | ネットワークサービス挿入を実行するシステム及び方法 | |
US10212095B2 (en) | Maximum transmission unit installation for switches in a software-defined network | |
US10069648B2 (en) | Communication system, control apparatus, communication control method and program | |
EP3589024A1 (en) | Method and apparatus for processing message | |
US20160301595A1 (en) | Communication system, communication method, network information combination apparatus, processing rule conversion method, and processing rule conversion program | |
JP6440191B2 (ja) | スイッチ装置、vlan設定管理方法及びプログラム | |
WO2014126094A1 (ja) | 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム | |
US11343179B2 (en) | Transfer device and transfer method | |
JP2015525984A (ja) | 通信システム、制御装置、通信方法及びプログラム | |
WO2014020902A1 (en) | Communication system, control apparatus, communication method, and program | |
JP6717676B2 (ja) | 制御装置 | |
WO2014142081A1 (ja) | 転送ノード、制御装置、通信システム、パケット処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10837585 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2011546123 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10837585 Country of ref document: EP Kind code of ref document: A1 |