WO2014199924A1 - 制御装置、通信システム、中継装置の制御方法及びプログラム - Google Patents
制御装置、通信システム、中継装置の制御方法及びプログラム Download PDFInfo
- Publication number
- WO2014199924A1 WO2014199924A1 PCT/JP2014/065122 JP2014065122W WO2014199924A1 WO 2014199924 A1 WO2014199924 A1 WO 2014199924A1 JP 2014065122 W JP2014065122 W JP 2014065122W WO 2014199924 A1 WO2014199924 A1 WO 2014199924A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- multicast
- flow
- flow processing
- processing device
- multicast group
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
Definitions
- the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2013-121952 (filed on June 10, 2013), the entire contents of which are incorporated herein by reference. Shall.
- the present invention relates to a control device, a communication system, a relay device control method, and a program, and more particularly, to a control device, a communication system, a relay device control method, and a program that realize multicast.
- Non-Patent Document 1 proposes a technique called OpenFlow that realizes a centralized control type network using switches called OpenFlow switches and OpenFlow controllers that centrally control these switches.
- OpenFlow captures communication as an end-to-end flow and performs path control, failure recovery, load balancing, and optimization on a per-flow basis.
- the OpenFlow switch specified in Non-Patent Document 2 includes a secure channel for communication with the OpenFlow controller, and operates according to a flow table that is appropriately added or rewritten from the OpenFlow controller. For each flow, a set of match conditions (Match Fields), flow statistical information (Counters), and instructions (Instructions) that define processing contents are defined for each flow (non-patented). (Refer to “5.2 Flow Table” in Document 2).
- the OpenFlow switch searches the flow table for an entry having a matching condition (see “5.3 Matching” in Non-Patent Document 2) that matches the header information of the received packet. If an entry that matches the received packet is found as a result of the search, the OpenFlow switch updates the flow statistical information (counter) and processes the processing (designated) in the instruction field of the entry for the received packet. Perform packet transmission, flooding, discard, etc. from the port. On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch sends an entry setting request to the OpenFlow controller via the secure channel, that is, a control for processing the received packet. An information transmission request (Packet-In message) is transmitted. The OpenFlow switch receives a flow entry whose processing content is defined and updates the flow table. As described above, the OpenFlow switch performs packet transfer using the entry stored in the flow table as control information.
- a matching condition see “5.3 Matching” in Non-Patent Document 2
- the OpenFlow switch updates the flow statistical information (counter
- Patent Document 1 discloses a method of configuring a virtual network obtained by logically dividing a physical network using the centralized control type network.
- IGMP Internet Group Management Protocol
- MLD Multicast Listener Discovery
- Non-Patent Document 2 describes that an OpenFlow switch performs multicasting and broadcasting by defining a group of group type “all” (see “5.6 Group Table” in Non-Patent Document 2). reference).
- Patent Document 1 and Non-Patent Documents 1 and 2 do not describe how to manage multicast groups and create flow entries or group table entries. For example, every time movement occurs in a multicast group, it is possible to calculate an exhaustive route from the sender to the receiver and set control information (for example, the flow entry of Non-Patent Document 2). There is a limit to the number of pieces of control information that can be held by individual flow processing devices (for example, the open flow switch of Non-Patent Document 2). Further, the increase in the number of control information also increases the load on the control device (for example, the open flow controller of Non-Patent Document 2). A proposal of a multicast realization method that takes these into consideration is required.
- the present invention provides a control device, a communication system, a control method for a relay device, and a program for realizing multicast capable of suppressing an increase in resources used and load on the flow processing device and the control device in the centralized control type network. Objective.
- the sender management unit that manages the transmission node of the IP (Internet Protocol) multicast group on the virtual network, and the subordinate flow processing device Based on the notification, a route calculation for calculating the IP multicast route for the receiver management unit that manages the receiving node of the IP multicast group on the virtual network and the IP multicast group in which at least one pair of transmitting node and receiving node exists And a device control unit that sets control information for transferring IP multicast along the route to the flow processing device on the calculated route.
- IP Internet Protocol
- a communication system including the control device described above and a flow processing device that operates according to control information set by the control device.
- the control device that controls the flow processing device manages the sending node of the IP multicast group on the virtual network based on the notification from the subordinate flow processing device, and the subordinate flow processing Managing a receiving node of the IP multicast group on the virtual network based on a notification from the device; calculating an IP multicast route for the IP multicast group having at least one pair of transmitting node and receiving node; Setting control information for transferring IP multicast along the route to the flow processing device on the calculated route;
- a control method for a flow processing apparatus comprising: The method is associated with a specific machine, a controller that controls the flow processor.
- the computer constituting the control device that controls the flow processing device uses the storage means to transmit the IP multicast group on the virtual network based on the notification from the subordinate flow processing device.
- Processing for managing a node processing for managing a receiving node of an IP multicast group on a virtual network based on a notification from a subordinate flow processing device using the storage means, and a topology of the flow processing device collected in advance
- Let the flow processor forward IP multicast along the path Program for executing a process of setting the control information, is provided.
- This program can be recorded on a computer-readable (non-transient) storage medium. That is, the present invention can be embodied as a computer program product.
- FIG. 16 is a diagram representing the multicast group (MC1) of the IP multicast group information of FIG. 15 on the virtual network of FIG.
- FIG. 16 is a diagram showing the multicast group (MC2) of the IP multicast group information of FIG. 15 on the virtual network of FIG.
- MC3 the multicast group (MC3) of the IP multicast group information of FIG. 15 on the virtual network of FIG.
- FIG. 16 is a block diagram which shows the structure of the flow processing apparatus of the 1st Embodiment of this invention.
- FIG. 26 is a flowchart showing details of step S308 in FIG. 21 and step S3134 in FIG. It is a flowchart showing the detail of step S309 of FIG. 21 and step S3133 of FIG.
- FIG. 27 is a flowchart showing details of step S310 in FIG. 21 and step S3142 in FIG. It is a flowchart showing the detail of step S313 of FIG. It is a flowchart showing the detail of step S314 of FIG. FIG.
- FIG. 27 is a flowchart showing details of step S353 in FIG. 21 and step S3141 in FIG. It is a figure for demonstrating the flow entry for IP multicast group MC1 set by the control apparatus of the 1st Embodiment of this invention. It is a figure which shows an example of the flow entry for IP multicast group MC1 set to the flow processing apparatus 200A. It is a figure which shows an example of the flow entry for IP multicast group MC1 set to the flow processing apparatus 200B. It is a figure which shows an example of the flow entry for IP multicast group MC1 set to the flow processing apparatus 200C. It is a figure for demonstrating the flow entry for IP multicast group MC2 set by the control apparatus of the 1st Embodiment of this invention.
- the present invention includes a control device 10 that controls a centralized control network and a flow processing device 20 that operates according to control information set from the control device 10. Can be realized.
- the control device 10 performs transmission for managing a transmission node of an IP multicast group on the virtual network (hereinafter, IP multicast is also referred to as “IPMC”) based on a notification from a subordinate flow processing device.
- IP multicast is also referred to as “IPMC”
- IPMC IP multicast
- a receiver management unit 12 that manages the reception node of the IP multicast group on the virtual network, and an IP that includes at least one transmission node and reception node
- a route calculation unit 13 that calculates an IP multicast route
- a device control unit 14 that sets control information for transferring the IP multicast along the route to the flow processing device 20 on the calculated route, .
- the control device 10 calculates a route from the sender to each receiver for the IP multicast group in which the receiver and the sender exist among the IP multicast groups, and performs flow processing on the route.
- Control information is set in the device 20. That is, route calculation and control information setting for an IP multicast group with no receiver and no receiver or an IP multicast group with no sender is omitted. As a result, it is possible to suppress an increase in use resources and load of the flow processing device 20 and the control device 10.
- FIG. 2 is a diagram showing a configuration of the first exemplary embodiment of the present invention.
- a configuration including a plurality of flow processing devices 200A to 200C and a control device 100 that controls these flow processing devices 200A to 200C.
- the flow processing devices 200A to 200C are connected to the external nodes 300A to 300E, respectively, and the control device 100 controls the flow processing devices 200A to 200C to realize communication between the external nodes 300A to 300E.
- the solid line in FIG. 2 represents the data transfer channel, and the broken line in FIG. 2 represents “the flow processing device 200 when the control device 100 and the flow control device 200 (hereinafter, flow processing devices 200A to 200C are not particularly distinguished). ").) Represents a control channel.
- the control device 100 performs flow management as to which flow processing device the communication between the external nodes 300 is processed, and sets a flow entry (control information) for one or more flow processing devices 200.
- the flow processing device 200 controls an input frame from the external node 300 or another flow processing device (hereinafter also referred to as “frame” without being distinguished from “packet” processed by the OpenFlow switch of Non-Patent Document 2).
- the input frame is processed according to the flow entry (control information) having a matching condition that matches the input frame with reference to a flow table storing the flow entry (control information) set by the instruction of the apparatus 100.
- the flow processing device 200 outputs an input frame to the external node 300, outputs it to another flow processing device 200, or outputs it to the control device 100 according to the action (processing content) defined in the flow entry (control information). Or drop.
- the external node 300 transmits a frame addressed to another external node 300 via the flow processing device 200, or receives a frame originating from another external node 300 from the flow processing device 200.
- the flow processing device 200 connected to the external node 300 is an edge flow processing device
- the flow processing device 200 connected only to the flow processing device 200 is a core flow processing device.
- the core flow processing apparatus may not exist depending on the flow network, and does not exist in FIG.
- the external node 300 does not need to be directly connected to the edge flow processing device, and may be connected via a layer 2 switch (L2SW), or the external node 300 is a layer 3 switch (L3SW) or a router. In some cases, another external node 300 may exist ahead.
- L2SW layer 2 switch
- L3SW layer 3 switch
- another external node 300 may exist ahead.
- FIG. 3 is a block diagram showing a detailed configuration of the control device 100.
- the flow processing device communication unit 101 the physical network management unit 102, the virtual network management unit 103, the device information storage unit 104, the physical topology information storage unit 105, and the base flow entry storage unit 106
- a configuration comprising a person information storage unit 113 and an IP multicast group information storage unit 114 is shown.
- the flow processing device communication unit 101 relays the flow processing device information, input frame information, and flow entry deletion information due to timeout from the flow processing device 200 to the physical network management unit 102 and the virtual network management unit 103. Further, the flow processing device communication unit 101 relays the setting and reference of the output frame information from the virtual network management unit 103 and the flow entry (control information) from the physical network management unit 102 to the flow processing device 200. In addition, the flow processing device communication unit 101 provides the flow processing device information stored in the device information storage unit 104 to the virtual network management unit 103 and the physical network management unit 102.
- the physical network management unit 102 sets the flow device information received from the flow processing device communication unit 101 in the device information storage unit 104, and further, based on the information in the device information storage unit 104 and the input frame information, the physical topology The topology information of the flow processing device is set in the information storage unit 105.
- the physical network management unit 102 also functions as a route calculation unit that obtains a base route for broadcast or layer 2 multicast based on the topology information of the flow processing device.
- the physical network management unit 102 sets the obtained base flow entry 400 for broadcast or layer 2 multicast for each flow processing device 200 in the base flow entry storage unit 106.
- FIG. 4 is a diagram showing the flow of a broadcast frame realized by the base flow entry 400 on the upper side of FIG.
- the first 3-digit AAA represents the type of the flow entry
- the next 3-digit CCC represents the destination (broadcast or multicast) of the flow entry.
- the flow entry No. Is represented by the AAA-BBB-CCC 9-digit code the first 3 digits AAA indicates the type of flow entry
- the next 3 digits BBB indicates the location of the flow entry
- the last 3 digits It represents the source or destination (broadcast or multicast) of the flow entry.
- FIG. 5 to 7 show examples of the base flow entry 400 set in the flow processing devices 200A to 200C.
- processing contents to be applied to a frame in which a broadcast or layer 2 multicast (hereinafter also referred to as “BCMC”) address is set are determined according to the input port.
- the BCMC frame received from the (external) node 300A hits the top entry of table1 and is processed in table2.
- table 2 if an appropriate VLAN ID is set, the top entry will be hit, and after the MPLS shim header is inserted according to the VLAN ID, the flow processing devices 200B and 200C Transferred.
- the BCMC address is an address for broadcast and multicast.
- the I / G bit of the first 1 byte (I / G is an abbreviation of “Individual Address / Group Address”) is 1. Become.
- the physical network management unit 102 sets the IP multicast default flow entry shown in FIGS. 8 to 10 in the flow processing apparatus having a port (external node connection port) to which the external node 300 is connected.
- the IP multicast default flow entry includes three types of flow entries: an IGMP information acquisition default flow entry, an IP multicast Well known distribution default flow entry, and an IP multicast packet information acquisition default flow entry.
- the default flow entry for acquiring IGMP information is as shown in 480-200A-300A in FIG. 8, 480-200B-300B, 480-200B-300C in FIG. 9, and 480-200C-300D, 480-200A-300E in FIG.
- the IPMC Well-known delivery default flow entry is a flow entry for delivering a packet reserved as a communication control protocol that does not need to cross the L3 switch using the base flow entry 400. Transfer to another flow processing apparatus or the like is performed (not transmitted to the control apparatus 100).
- the default flow entries for obtaining IP multicast packet information are 482-200A-300A in FIG. 8, 482-200B-300B, 482-200B-300C in FIG. 9, and 482-200C-300D, 482-200C-300E in FIG. As shown, it is a flow entry for detecting IP multicast reception from the external node 300.
- the priority of the default flow entry for acquiring IP multicast packet information is set lower than the flow entry 481 (481-200A-300A, etc.) and the IP multicast sender flow entry 450 described later.
- the IP multicast packet information acquisition default flow entry is not applied (the transmission to the control device 100 is not performed).
- the physical network management unit 102 obtains broadcast and multicast flow entries based on the virtual node information from the virtual network management unit 103, the virtual network topology information, and the mapping information in the mapping information storage unit 109.
- the flow entry is set in the flow entry storage unit 107, and the flow entry is set in the flow processing device 200 through the flow processing device communication unit 101.
- the physical network management unit 102 obtains a unicast match condition (flow) and a flow entry from the topology information and the like.
- the physical network management unit 102 sets the created flow setting information and the flow entry in the flow storage unit 108 and the flow entry storage unit 107, and sets the flow entry in the flow processing device 200 through the flow processing device communication unit 101. .
- the physical network management unit 102 in response to the IP multicast flow setting request from the virtual network management unit 103, the multicast label ID accompanying the IP multicast flow setting request, the external node 300 connection port of the receiver or the sender, the VLAN Using the ID and the connection port information of the other flow processing device 200 that is loop-free in the base flow entry storage unit 106, the IP multicast sender flow entry 450, the IP multicast encapsulated flow entry 451, the IP multicast A flow entry 452 for receiver is generated, and the flow entry communication unit 101 is requested to set these flow entries.
- the flow entry 450 for the IP multicast sender is a flow entry for transmitting the frame received from the IP multicast sender to the external node 300 connection port of the flow processing apparatus
- the IP multicast encapsulation flow entry 451 is This is a flow entry for encapsulating a frame with a multicast label ID assigned so as not to overlap with the BC domain ID used in the above base flow entry, adding a label, and multicast distribution.
- the IP multicast receiver flow entry 452 is a flow entry for executing restoration or the like of the frame encapsulated in the IP multicast encapsulation flow entry 451 and executing output to the external node 300 (FIG. 28 etc.).
- the IP multicast sender flow entry 450, the IP multicast encapsulation flow entry 451, and the IP multicast receiver flow entry 452 will be described in detail later.
- the virtual network management unit 103 sets virtual node information on a plurality of virtual networks in the virtual node information storage unit 111, and sets a connection relationship of virtual node information for each virtual network in the virtual topology information storage unit 110.
- FIG. 11 is a diagram illustrating a connection relationship of virtual nodes (virtual L3SW and L2SW) on a certain virtual network set in the virtual topology information storage unit 110.
- a virtual network 500A in which virtual L3SW 501A, virtual L2SWs 502A and 502B, and external NW endpoints 503A to 503F exist as virtual nodes is shown.
- a virtual L3SW 501A and virtual L2SWs 502A and 502B are connected, a virtual L2SW 502A and external NW end points 503A and 503B are connected, and a virtual L2SW 502B and external NW end points 503C to 503F are connected.
- the virtual L2SW 502A has 1 as the BC domain ID
- the virtual L2SW 502B has 2 as the BC domain ID.
- the BC domain ID may be allocated so that the virtual network management unit 103 is unique in the virtual L2SW 502.
- the virtual network management unit 103 stores mapping information indicating the connection relationship between the virtual network and the real network in the mapping information storage unit 109, and passes this mapping information to the physical network management unit 102.
- FIG. 12 is a diagram illustrating a correspondence relationship between the virtual network in FIG. 11 and the physical network in FIG. 2 set in the virtual topology information storage unit 110.
- the external NW end point 503A indicates the untagged VLAN ID 10 of the external node 300A connection port of the flow processing apparatus 200A.
- the external NW endpoint 503B is associated with the tagged VLAN ID 20 of the external node 300B connection port of the flow processing device 200B
- the external NW endpoint 503C is associated with the tagged VLAN ID 30 of the external node 300C connection port of the flow processing device 200B.
- the external NW endpoint 503D is associated with the tagged VLAN ID 20 of the external node 300D connection port of the flow processing device 200C
- the external NW endpoint 503E is associated with the tagged VLAN ID 20 of the external node 300D connection port of the flow processing device 200C.
- the external NW end point 503F is associated with the tagged VLAN ID 30 of the external node 300E connection port of the flow processing apparatus 200C.
- the virtual network management unit 103 processes the frame as input to the corresponding virtual network based on the virtual network topology information. Specifically, the virtual network management unit 103 drops the input frame information, causes the virtual node such as the virtual L3SW 501 to receive the host, or causes the virtual node such as the external NW endpoint 503 to output the output frame information. Note that the output of the output frame information of the virtual node such as the external NW endpoint 503 is not only triggered by the processing of the input frame information from the flow processing device communication unit 101 but also the host transmission of the virtual node such as the virtual L3SW 501 in some cases. The virtual network management unit 103 outputs the output frame information to the flow processing device 200 through the flow processing device communication unit 101.
- the virtual network management unit 103 sets the flow entry setting for processing the input frame information from the flow processing device communication unit 101 and the output frame to the flow processing device communication unit 101 corresponding thereto, to the physical network management unit 102 may be requested.
- the request can be made by indicating a route on the virtual network or the like from the virtual network topology information or the like.
- the virtual network management unit 103 sets the external NW end point 503 where the IP multicast packet receiver exists in the IP multicast receiver information storage unit 112 based on the input frame information of IGMP Report or IGMP Leave (FIG. 1). Equivalent to the Recipient Management Department). Specifically, the virtual network management unit 103 generates an IP multicast packet based on the external node 300 connection port, the VLAN ID, the IP multicast group, and the information in the mapping information storage unit 109 that has received the IGMP Report or IGMP Leave frame. The external NW endpoint 503 where the receiver exists is set in the IP multicast receiver information storage unit 112. Similarly, the virtual network management unit 103 sets the external NW endpoint 503 where the IP multicast packet sender exists in the IP multicast sender information storage unit 113 (corresponding to the sender management unit in FIG. 1).
- IP multicast packet senders and one or more IP multicast receivers are associated with the IP multicast group of the virtual network 500. If they are present, the virtual network management unit 103 assigns a multicast label ID for the IP multicast group and registers it in the IP multicast group information storage unit 114.
- the multicast label ID is set to a value after 65536 that does not overlap with the BC domain ID inserted in the MPLS shim header in the base flow entry 400.
- the virtual network management unit 103 also determines that the number of IP multicast packet receivers for the IP multicast group of the virtual network 500 registered in the IP multicast group information storage unit 114 becomes zero, or the number of IP multicast packet senders is 0. In the case of the number, the registration of the corresponding IP multicast group is canceled and the assigned multicast label ID is returned (the corresponding entry is deleted from the IP multicast group information storage unit 114).
- the virtual network management unit 103 stores the physical network in the IP multicast group information storage unit 114 at the time of registration of the IP multicast group of the virtual network 500 or according to increase / decrease of IP multicast receivers and IP multicast senders of the registered IP multicast group.
- the management unit 102 is requested to set a flow entry for realizing IP multicast.
- the virtual NW endpoint 503 of the receiver registered in the IP multicast receiver information storage unit 112 and the receiver registered in the IP multicast sender information storage unit 113 are used.
- the external node 300 connection port (obtained using the information in the mapping information storage unit 109) corresponding to the virtual NW endpoint 503, the VLAN ID, and the multicast label ID in the IP multicast group information storage unit 114 are used.
- the virtual network management unit 103 also sets the external node 300 connection port, the VLAN ID, and the IP multicast group address to the physical network management unit 102 when only one of the IP multicast sender or receiver exists in the IP multicast group. Used to request Drop setting of the IP multicast flow or deletion of the flow entry itself.
- the device information storage unit 104 holds information on the flow processing device to be controlled by the control device 100. Examples of information held in the device information storage unit 104 include port information of the flow processing device, VLAN setting information, the capability of the flow processing device, an address for accessing the flow processing device 200, and the like. Further, statistical information held by the flow processing apparatus 200 may be included.
- the physical topology information storage unit 105 holds connection information between the flow processing devices 200 and port connection destinations (information on ports connected to other flow processing devices or ports for connection to the external node 300).
- the base flow entry storage unit 106 holds, for each flow processing apparatus 200, a base flow entry for the broadcast and multicast flows described with reference to FIGS. In addition, the base flow entry storage unit 106 holds connection port information of another flow processing device 200 that is loop-free for each flow processing device 200.
- the flow entry storage unit 107 holds a flow entry to be set in the flow processing device 200 for each flow processing device 200.
- the flow storage unit 108 holds flow setting information.
- the flow setting information is, for example, a matching condition in a flow entry to be collated with input frame information, an output frame state (header content after rewriting in the flow processing device, etc.), and the like.
- the mapping information storage unit 109 stores connection information between the virtual network and the real network, that is, mapping information of the flow processing device 200, the external node 300 connection port, and the VLAN ID corresponding to the virtual external NW endpoint 503 (see FIG. 12).
- the mapping information includes, for each virtual network 500, the external NW end point 503 when an input frame is input / output, the external NW end point 503 where the IP multicast receiver or sender exists, and the VLAN of which port of the flow processing apparatus 200. It indicates whether it is related to the ID.
- the VLAN ID information of the external NW endpoint 503 is untagged or tagged, and if untagged is used, the VLAN ID for untagged is used or not, which VLAN ID is used, and which is tagged
- the VLAN ID may be settable.
- the virtual topology information storage unit 110 holds connection information between virtual nodes for each virtual network 500 (see FIG. 11).
- the virtual node information storage unit 111 holds virtual node information such as the virtual L3SW 501, the virtual L2SW 502, and the external NW endpoint 503 for each virtual network.
- the virtual node information is the relationship between the virtual network 500 and information similar to the L3SW such as virtual interface information, routing table information, and ARP entry information.
- the virtual node information includes information similar to the L2SW such as virtual interface information and MAC entry information, a broadcast domain ID (BC domain ID) for uniquely identifying the broadcast domain, and the virtual network 500. It becomes a relationship.
- the IP multicast receiver information storage unit 112 holds a list of external NW endpoints 503 in which IP multicast receivers for IP multicast groups under the virtual network 500 exist.
- FIG. 13 is an example of a list storing IP multicast group recipient information.
- the IP multicast sender information storage unit 113 holds a list of external NW endpoints 503 in which IP multicast senders for IP multicast groups under the virtual network 500 exist.
- FIG. 14 is an example of a list storing IP multicast group sender information.
- the IP multicast group information storage unit 114 stores information on IP multicast groups under the virtual network 500 in which both the IP multicast receiver and the IP multicast sender exist in association with the multicast label ID.
- FIG. 15 is an example of a list storing IP multicast group information. As shown in FIG. 15, the virtual network ID and the IP multicast group ID are search keys, and each IP multicast receiver and sender are separately managed for the same IP multicast group address under a plurality of virtual networks. Is possible.
- IP multicast group MC4 is an IP multicast group in which only the receiver exists and IP multicast group MC5 is only in the sender, it is not registered as a multicast group in FIG. .
- each unit (processing means) of the control device 100 shown in FIG. 3 can be realized by a computer program that causes a computer constituting the control device 100 to execute the above-described processes using the hardware thereof.
- FIG. 19 is a block diagram illustrating a detailed configuration of the flow processing apparatus 200.
- the flow processing device 200 includes a flow entry search unit 201, a flow entry storage unit 202, a flow entry processing unit 203, a flow processing unit 204, and a control device communication unit 205.
- the flow entry search unit 201 extracts flow entry search condition information for searching for a flow entry from the frame input to the flow processing apparatus 200, and uses the flow entry search condition information to input the input frame from the flow entry storage unit 202. Search for entries with matching match conditions.
- the flow entry search unit 201 updates the time-out time or statistical information of the flow entry that matches at that time. Then, the flow entry search unit 201 passes the matched flow entry action and the input frame to the flow processing unit 204.
- the flow entry storage unit 202 holds a flow entry for the flow processing apparatus 200 to process a frame.
- the flow entry storage unit 202 performs setting and reference such as addition / deletion of a flow entry from the flow processing unit 204.
- the flow entry search unit 201 searches for flow entries and updates matched flow entries.
- the flow entry held by the flow entry storage unit 202 is the same as the flow processing device 200 held by the flow entry storage unit 107 of the control device 100.
- the flow entry processing unit 203 executes setting and reference instruction such as addition / deletion regarding the flow entry received from the control device 100 via the control device communication unit 205 to the flow entry storage unit 202. Further, the flow entry processing unit 203 refers to the flow entry storage unit 202, deletes the flow entry that has timed out, and deletes the flow entry to the control device 100 via the control device communication unit 205. Tell that.
- the flow processing unit 204 processes a frame according to an input frame and its action passed from the flow entry search unit 201 or the control device 100 via the control device communication unit 205. For example, the value of the input frame is changed, output to the external node 300, output to another flow processing apparatus 200, output to the control apparatus 100 through the control apparatus communication unit 205, or dropped.
- the flow processing apparatus 200 as described above can also be configured by the open flow switch of Non-Patent Document 2, for example.
- FIG. 20 is a flowchart illustrating a flow of a base flow entry and IP multicast default flow entry generation process performed as an initial setting by the control device according to the first embodiment of this invention.
- the physical network management unit 102 acquires the device information of the flow processing device 200 when connected to the flow processing device 200, and sets the device information of the flow processing device in the device information storage unit 104. (Step S101).
- the physical network management unit 102 acquires connection information between the flow processing devices 200 and sets it in the physical topology information storage unit 105 (step S102). For example, the physical network management unit 102 acquires input frame information from another flow processing device 200 by instructing the newly connected flow processing device 200 to transmit a frame to the other flow processing device 200. be able to. The physical network management unit 102 can grasp the connection relation by referring to the information of the corresponding flow processing device in the device information storage unit 104.
- the physical network management unit 102 obtains a spanning tree so that the broadcast and multicast frames are loop-free in the flow network, and broadcasts each flow processing device 200.
- a BCMC base flow entry (see FIGS. 4 to 7) for the multicast frame is generated and set in the base flow entry storage unit 106 (step S103).
- the physical network management unit 102 sends an IPMC default flow to each external node 300 connection port connected to the outside of the flow network in the flow processing device 200.
- the entries (the IGMP information acquisition default flow entry, the IPMC Well known distribution default flow entry 481, the IPMC packet information acquisition default flow entry 482) are set (step S104).
- the IPMC default flow entry detection of IGMP frame information and IP multicast detected by the flow processing device 200 in the control device 100 is started.
- FIG. 21 is a flowchart showing the overall operation of the control device 100 according to the first embodiment of the present invention.
- the flow entry search unit 201 extracts flow entry search condition information for searching for a flow entry from the input frame (step S301).
- the flow entry search unit 201 uses the flow entry search condition information to search the flow entry storage unit 202 for a flow entry having a matching condition that matches the flow entry search condition information (step S302).
- the flow entry search unit 201 then passes the matched flow entry action and the input frame to the flow processing unit 204.
- the flow processing unit 204 inputs an input frame according to the content of the action of the flow entry Additional information such as a port is added and transmitted to the control device 100 (step S303).
- the control device 100 determines whether the input frame is an input frame other than Well Known addressed to the IP multicast group. Here, if it is determined that the input frame is addressed to the IP multicast group and other than the well-known input frame, the control device 100 extracts the external node 300 connection port and the VLAN ID that input the IP multicast packet from the input frame information, and further, The mapping information storage unit 109 is searched to acquire the corresponding external NW end point 503 (step S304).
- the control device 100 sets the external NW endpoint 503 as the sender. Is registered, and the flow entry setting process at the sender external NW endpoint 503 shown in step S308 is performed.
- FIG. 22 is a flowchart showing details of step S308 in FIG. Referring to FIG. 22, first, the control device 100 searches the mapping information storage unit 109 to search for the flow processing device 200, the external node 300 connection port, and the VLAN ID corresponding to the sender external NW endpoint 503 (step S3081).
- the control device 100 acquires the external NW endpoint 503 from the IP multicast group information storage unit 114.
- the destination IP multicast group of the IP multicast packet of the virtual network 500 to which it belongs is searched and checked whether it has been registered (step S3082).
- the control device 100 refers to the flow entry storage unit 107, and the flow processing device 200 connects to the corresponding external node 300 connection port. It is checked whether or not the IP multicast sender flow entry 450 of the IP multicast group having the input port and the VLAN ID as a match condition is set (step S3083). If the IP multicast sender flow entry 450 of the corresponding IP multicast group is set here, no particular action is required.
- the control device 100 sets the IP multicast encapsulated flow entry 451 with the IP multicast group and VLAN ID as the matching condition as the flow processing device 200. (Step S3084).
- the control device 100 searches for the IPMC receiver flow entry 452 (having the multicast label ID of the IPMC encapsulated flow entry 451 in the match condition) set in the flow processing device 200, and the VLAN ID + output of the action
- the output destination list of the external node 300 connection port is acquired.
- the control device 100 deletes the combination from the output destination list so as not to loop (step S3085). Thereby, an output destination list to be set as an action of the IPMC sender flow entry 450 can be acquired.
- control device 100 sets the external node 300 connection port to which the IGMP frame has been input as the input port, and sets the VLAN ID and the IP multicast group address as a matching condition, and the flow for the IP multicast sender together with the action of step S3085.
- An entry 450 is generated (step S3086).
- control device 100 sets the IPMC sender flow entry 450 of the IP multicast group generated in step S3086 in the flow processing device 200 (step S3087).
- the control apparatus 100 In order to prevent unnecessary IP multicast packets from flowing into the network, the flow processing device 200 retrieved from the IP multicast frame input information has the corresponding external node 300 connection port as the input port, and the corresponding VLAN ID and the corresponding IP.
- the IPMC sender flow entry 450 (Drop) that sets the multicast group as the layer 3 destination address and the frame discard (Drop) as an action is set (step S3088).
- an IP multicast non-reception time or a set time-out value is set. This allows the flow processing device to automatically delete the IP multicast sender flow entry 450 when the timeout is established, and allows the control device 100 to send a deletion notification.
- step S308 ends, the control device 100 collates the IP multicast group information storage unit 114, the IP multicast receiver information storage unit 112, and the IP multicast sender information storage unit 113, and the IP multicast sender for the destination IP multicast group. It is checked whether the information and the IP multicast sender information are newly prepared (step S311). Here, when the IP multicast sender information and the IP multicast sender information for the destination IP multicast group are not newly prepared, the control device 100 omits the subsequent processing (end in FIG. 21).
- control device 100 prevents unnecessary IP multicast packets as described in step S3088 from flowing into the flow network or allows communication. Setting of unnecessary flow entries for receiving IP multicast packets that do not hold is omitted. As a result, the flow entry resource is not wasted, and an optimized process is realized.
- the control device 100 registers the IGMP IP multicast group in the IP multicast group information storage unit 114 (step S313). .
- FIG. 25 is a flowchart showing details of step S313 in FIG.
- the control device 100 causes the flow processing device 200 to enter a flow entry for an IP multicast sender in an IP multicast group with the corresponding external node 300 connection port as an input port and the corresponding VLAN ID as a match condition. It is confirmed whether 450 (Drop) has been set. When the IP multicast sender flow entry 450 (Drop) has been set, the control device 100 deletes the IP multicast sender flow entry 450 (Drop). (Step S3131).
- control device 100 assigns a multicast label ID that is unique to the IP multicast group of the virtual network 500 (step S3132).
- a value of 65536 or more is assigned as the multicast label ID so as not to overlap with the BC domain ID.
- control device 100 performs flow entry setting processing at the recipient external NW endpoint 503 (step S3133).
- FIG. 23 is a flowchart showing details of step S3133 in FIG.
- the control device 100 refers to the IP multicast group information storage unit 114 to check whether or not the IP multicast group of the virtual network to which the recipient external NW endpoint 503 belongs has been registered (step S100). S3091). If the corresponding entry is not registered in the IP multicast group information storage unit 114, the IP multicast sender has not been registered, so the control device 100 omits the subsequent processing (END).
- step S3133 since the corresponding entry has always been registered in the IP multicast group information storage unit 114, the processes after step S3092 are executed.
- the control device 100 searches the mapping information storage unit 109 to search for the flow processing device 200 corresponding to the recipient external NW endpoint 503, its external node 300 connection port, and VLAN ID (step S3092). As a result of the search, if there is no corresponding mapping information, the control device 100 omits the subsequent processing (end) because it is not a recipient to be added.
- the flow control apparatus 100 refers to the flow entry storage unit 107. Then, it is confirmed whether or not the IP multicast receiver flow entry of the IP multicast group has been set in the corresponding flow control apparatus 200 (step S3093). If the IP multicast receiver flow entry is not set as a result of the confirmation, the receiver is not connected to the corresponding flow control apparatus 200, so the control apparatus 100 omits the subsequent processing (END).
- the control device 100 when an IP multicast receiver flow entry is set in the corresponding flow control device 200, the control device 100 further outputs the IP multicast receiver flow entry output destination with the external node 300 connection port and VLAN ID. It is confirmed whether or not it is registered as an external NW end point (step S3094). As a result of the confirmation, when the external node 300 connection port and the VLAN ID are registered as the output destination external NW endpoint of the IP multicast receiver flow entry, the control device 100 omits the subsequent processing (end).
- the control device 100 determines that the IP multicast receiver flow entry 452 Are added to the action of VLAN ID change processing and frame output processing from the external node 300 connection port (step S3095). If the corresponding flow processing device 200 has an IPMC sender flow entry 450 in the IP multicast group, the control device adds a similar action to the IP multicast sender flow entry 450.
- control device 100 sets the flow entry 452 and the flow entry 450 updated in step S3094 in the corresponding flow processing device 200 (step S3096).
- step S3133 ends, the control device 100 performs a flow entry setting process for the sender external NW endpoint 503 (step S3134). Details of the processing in step S3134 are the same as those in FIG.
- step S303 processing when the input frame information transmitted from the flow processing apparatus 200 in step S303 is IGMP Report will be described.
- the control device 100 determines that the input frame information transmitted from the flow processing device 200 is an IGMP report
- the control device 100 searches the mapping information storage unit 109 and the connection port of the external node 300 to which the IGMP report is input from the input frame information.
- the external NW end point 503 corresponding to the VLAN ID is acquired.
- the control device 100 registers the external NW endpoint 503 as a receiver. (Step S305).
- the control device 100 performs a flow entry setting process on the flow processing device of the recipient external NW endpoint 503 (step S309). Details of the processing in S309 are the same as the contents shown in FIG.
- step S309 the control device performs the processing after step S311 in FIG. Since the processing after step S311 in FIG. 21 has also been described, description thereof will be omitted.
- step S303 processing when the input frame information received from the flow processing apparatus 200 in step S303 is IGMP Leave will be described.
- the control device 100 determines that the input frame information transmitted from the flow processing device 200 is IGMP Leave, the control device 100 searches the mapping information storage unit 109, and corresponds to the external node 300 connection port that inputs IGMP Leave and the external ID corresponding to the VLAN ID.
- the NW end point 503 is acquired.
- the control device 100 cancels the registration of the external NW endpoint 503 of the receiver. Is performed (step S306).
- the control device 100 performs a flow entry setting process for deleting the recipient external NW endpoint 503 (step S310).
- FIG. 24 is a flowchart showing details of step S310 in FIG.
- the control device 100 searches the IP multicast group information storage unit 114 to confirm whether or not the IP multicast group of the virtual network 500 to which the recipient external NW endpoint 503 belongs has been registered (Ste S3101). As a result of the confirmation, if the corresponding IP multicast group is not registered, the flow entry that needs to be deleted is not set, and the control device 100 omits the subsequent processing (END).
- the control device 100 searches the mapping information storage unit 109 and connects the flow processing device 200 corresponding to the recipient external NW endpoint 503 and the external node 300.
- the port and VLAN ID are searched (step S3102).
- the control device 100 searches the flow entry storage unit 108 and sends it to the corresponding flow processing device 200 for the IP multicast receiver of the IP multicast group. It is confirmed whether or not the flow entry 452 is set (step S3103). If there is no entry corresponding to the recipient external NW endpoint 503 in step S3102, or if the IPMC recipient flow entry 452 of the IP multicast group is not set in the corresponding flow processing device 200, the flow entry that needs to be deleted Is not set, the control device 100 omits the subsequent processing (end).
- step S3103 As a result of the confirmation in step S3103, when the IP multicast receiver flow entry 452 of the IP multicast group is set in the corresponding flow processing apparatus 200, the control apparatus 100 detects the IP multicast receiver flow entry detected in step S3103. It is confirmed whether or not a combination of the flow processing device 200, the external node 300 connection port, and the VLAN ID corresponding to the recipient external NW end point 503 is set as the output destination of 452 (step S3104).
- the control device 100 omits the subsequent processing (end). .
- the control device 100 When the combination of the flow processing device 200, the external node 300 connection port, and the VLAN ID corresponding to the recipient external NW endpoint 503 has already been set in the output destination of the IP multicast receiver flow entry 452, the control device 100 The VLAN ID change for the external NW end point 503 and the output destination external node 300 connection port are deleted from the action of the IPMC sender flow entry 450 of the corresponding IP multicast group of the corresponding flow processing apparatus 200, and the flow setting apparatus 200 The flow entry 450 is set (step S3105). Note that if the flow processing apparatus 450 does not have the IP multicast sender flow entry 450 of the corresponding IP multicast group, nothing needs to be done.
- control device 100 deletes the VLAN ID change and the external node 300 connection port designated as the output destination from the action of the IP multicast receiver flow entry 452. Further, the control device 100 checks whether or not the number of output destinations of the action after the deletion becomes zero (step S3106).
- the control device 100 deletes the IP multicast receiver flow entry 452 of the IP multicast group on the flow processing device 200 (step S3107).
- the IP multicast receiver flow entry 452 is deleted, the corresponding frame is matched with the match conditions of the table 3 flow entries 405 to 407 in FIGS. 4 to 6 and discarded. Henceforth, the flow processing device 200 will not output the corresponding frame to the external node 300 connection port.
- control device 100 sets the IP multicast receiver flow entry 452 of the IP multicast group generated in step 3105 in the flow processing device 200. Update (step S3108).
- step S310 the control device 100 checks whether or not the IP multicast receiver (external NW endpoint) for the destination IP multicast group has become 0 (step S312). As a result of the confirmation, if the number of IP multicast receivers (external NW endpoints) for the destination IP multicast group is not zero, the control device 100 omits the subsequent processing (end).
- FIG. 26 is a flowchart showing details of step S314 in FIG. Referring to FIG. 26, first, the control device 100 performs a flow entry deletion process for deleting the sender external NW endpoint 503 (step S3141).
- FIG. 27 is a flowchart showing details of step S3141 in FIG. Referring to FIG. 27, the control device 100 searches the mapping information storage unit 109 to search for a combination of the flow processing device 200, the external node 300 connection port, and the VLAN ID corresponding to the sender external NW endpoint 503 (step S3531).
- the control device 100 searches the IP multicast group information storage unit 114, and the external NW endpoint 503 belongs. It is confirmed whether or not the destination IP multicast group of the IP multicast packet of the virtual network 500 has been registered (step S3532).
- the control device 100 refers to the flow entry storage unit 107 and connects the corresponding external node 300 connection port to the searched flow processing device 200. Is set as an input port and whether or not the IP multicast sender flow entry 450 of the IP multicast group with the corresponding VLAN ID as a match condition is set (step S3533).
- the control device 100 omits the subsequent processing (end).
- the control apparatus 100 displays the IPMC sender flow entry 450 set in the flow processing apparatus 200. It deletes from the flow processing apparatus 200 (step S3534). Further, the control device 100 deletes the IPMC encapsulated flow entry 451 using the IP multicast group and the VLANID as a match condition from the flow processing device 200 (step S3535).
- the control device 100 performs the following process. In order to prevent an unnecessary IP multicast packet from flowing into the flow network, the control device 100 uses the flow processing device 200 retrieved from the frame input information of the IP multicast packet as the input port of the corresponding external node 300 and Check whether or not the IP multicast sender flow entry 450 (Drop) has been set with the VLAN ID and the layer 3 destination address being the corresponding IP multicast group as the match condition and the action as frame discard (Drop). To do. As a result of the confirmation, if the IP multicast sender flow entry 450 (Drop) has already been set in the corresponding flow processing apparatus 200, the control apparatus 100 deletes the flow entry (step S3536).
- step S3141 ends, the control device 100 performs a flow entry setting process for deleting the recipient external NW endpoint 503 (step S3142). Details of the processing in step S3142 have been described with reference to FIG.
- step S3141 the control device 100 releases (returns) the assigned multicast label ID so that it can be assigned to an IP multicast group of another virtual network 500 (step S3143).
- step S303 a process when the control apparatus 100 determines that the input frame information received from the flow processing apparatus 200 is IGMP Query in step S303 will be described.
- the control device 100 transmits an IGMP Report toward the external node 300 connection port and the VLAN ID that input the IGMP Query from the input frame information.
- the multicast router (sender) is prevented from stopping the IP multicast packet transmission (step S307).
- the control device 100 reads the corresponding frame from the recipient list of the destination IP multicast group stored in the IP multicast sender information storage unit 113.
- the input external NW end point 503 is deleted (step S352).
- step S353 the control device 100 performs a flow entry deletion process for deleting the sender external NW endpoint 503 (step S353). Details of step S353 are described in FIG. 27 and are the same as step S3141 of FIG.
- step S353 the control device 100 confirms whether or not the IP multicast sender information for the destination IP multicast group has become 0 by deleting the sender external NW endpoint (step S354). As a result of the confirmation in step S354, if the IP multicast sender information for the corresponding destination IP multicast group is 0, the control device executes the processes after step S314 already described.
- the sender of IP multicast group address MC1 is external NW endpoint 503A
- the receiver's external NW endpoint is 503B, 503C, and 503D.
- the external NW endpoints 503B and 503C are both connected to the external node 300B, but the external node 300B may be a host that performs multiple communication with the VLAN ID 20/30, or the external node 300B is under the control of the VLAN ID 20 Multiple hosts with VLAN ID30 may be connected.
- FIG. 28 shows the flow entries set in the flow processors 200A, 200B, and 200C when the IP multicast group address MC1 shown in FIG. 16 is configured, the forwarding path of the IP multicast packet MC1 set by these flow entries, and the IP multicast.
- the transfer path between the flow processing apparatuses 200 is determined by the transfer path and the input port shown in FIG. 4 being the external node 300A connection port. As described above, whether to output the IP multicast packet MC1 to the port specified by the external node 300 connection port and the VLAN ID depends on the presence or absence of the receiver.
- FIG. 29 is an example of the contents of the flow entry setting to the flow processing apparatus 200A of FIG.
- the IPMC sender flow entry 450A-MC1 includes an action to be sent to table 2 when an untagged vlan and a packet addressed to the IP multicast group MC1 input from the external node 300A connection port, that is, the IP multicast packet MC1 is detected. Is set. Since there is no IP multicast MC1 packet receiver in the flow processing device 200A, the output destination in the flow processing device 200A is not set in the action of the IPMC sender flow entry 450A-MC1. In addition, the IPMC encapsulation flow entry 451A-MC1 in FIG.
- FIG. 30 is an example of the contents of the flow entry setting for the flow processing apparatus 200B of FIG.
- the IPMC receiver flow entry 452B-MC1 is a flow entry that is referred to when a packet addressed to the BCMC address input from the flow processing apparatus 200A connection port is transmitted to table 3.
- the MPLS label is 65536 corresponding to the IP multicast group MC1
- the layer 2 address of the virtual L3SW 501A is set as the layer 2 destination address of the received frame, and the VLAN ID 20
- the action to output to the external node 300B connection port and the action to output the packet to each of the external node 300B connection port and the external node 300C connection port after changing the frame to VLAN ID 30 are specified.
- FIG. 31 is an example of the contents of the flow entry setting to the flow processing apparatus 200C of FIG.
- the IPMC receiver flow entry 452C-MC1 is a flow entry that is referred to when a packet addressed to the BCMC address input from the flow processing apparatus 200A connection port is transmitted to table 3.
- the layer 2 address of the virtual L3SW 501A is set as the layer 2 destination address of the received frame, and the VLAN ID 20
- the action to be output to the external node 300D connection port after the change is defined. Further, in the example of FIG. 31, output to the external node 300E connection port where no receiver exists is not performed. As described above, the output from the flow processing device 200C in FIG. 28 and the external NW end point 503D in FIG. 16 is realized.
- FIG. 32 shows the flow entries set in the flow processors 200A, 200B, and 200C when the IP multicast group address MC2 shown in FIG. 17 is configured, the forwarding path of the IP multicast packet MC2 set by these flow entries, and the IP multicast.
- the transfer path between the flow processing devices 200 is determined by the transfer path and the input port shown in FIG. 4 being the external node 300C connection port.
- whether or not to output the IP multicast packet MC2 to the port specified by the external node 300 connection port and the VLAN ID depends on the presence or absence of the receiver.
- two IP multicast packets MC1 assigned VLAN ID20 and IP multicast packets MC1 assigned VLAN ID30 are transmitted.
- FIG. 33 is an example of the contents of the flow entry setting to the flow processing apparatus 200B of FIG.
- 2 Set the layer 2 address of the virtual L3SW 501A as the destination address and change it to VLAN ID 20, then output to the external node 300B connection port, and change the frame to VLAN ID 30, then the external node
- An action to be output to the 300B connection port and an action for instructing processing in table 2 are defined.
- An action for instructing output to the flow processing apparatus 200A connection port after inserting a Shim header assigned a multicast label ID 65537 corresponding to MC2 is defined. Thereafter, transfer is performed according to the BCMC base flow entry of FIG.
- the IPMC receiver flow entry 452B-MC2 is a flow entry that is referred to after a packet addressed to the BCMC address input from the flow processing apparatus 200A connection port is transmitted to table 3.
- the IPMC receiver flow entry 452B-MC2 when the MPLS label is 65537 corresponding to the IP multicast group MC2, the shim header is deleted, and the layer 2 address of the virtual L3SW 501A is set as the layer 2 destination address.
- an action to output to the external node 300B connection port after changing to VLAN ID 20 and an action to output to the external node 300B connection port after changing the frame to VLAN ID 30 are defined.
- the IP multicast receiver flow entry 452B-MC2 is set.
- the IP multicast sender addressed to the IP multicast packet MC1 is only 1
- the IP multicast sender flow entry 450B-MC2 outputs to the external node 300B connection port, so the IPMC receiver flow entry 452B-MC2 is set. It becomes unnecessary.
- FIG. 34 is an example of the contents of the flow entry setting to the flow processing apparatus 200C of FIG.
- the IPMC receiver flow entry 452C-MC2 is a flow entry that is referred to after a packet addressed to the BCMC address input from the flow processing apparatus 200A connection port is transmitted to table 3.
- the layer 2 address of the virtual L3SW 501A is set to the layer 2 destination address of the received frame, and the VLAN ID 20
- the action to be output to the external node 300E connection port after the change is defined. Note that no output is made to the external node 300D connection port where no recipient exists.
- outputs from the flow processing apparatuses 200B and 200C in FIG. 32 and the external NW end points 503B, 503C, and 503F in FIG. 17 are realized.
- FIG. 35 shows the flow entries set in the flow processors 200A, 200B, and 200C when the IP multicast group address MC3 shown in FIG. 18 is configured, the forwarding path of the IP multicast packet MC3 set by these flow entries, and the IP multicast.
- the transfer path between the flow processing devices 200 is determined by the transfer path and the input port shown in FIG. 4 being the external node 300B connection port.
- whether to output the IP multicast packet MC3 to the port specified by the external node 300 connection port and the VLAN ID depends on the presence or absence of the receiver.
- the VLAN ID is changed to 30 in the IPMC sender flow entry 450B-MC3 and output.
- FIG. 36 is an example of the contents of the flow entry setting to the flow processing apparatus 200A of FIG.
- the IPMC receiver flow entry 452A-MC3 is a flow entry that is referred to after a packet addressed to the BCMC address input from the flow processing device 200B connection port is transmitted to table 3, and an MPLS label is assigned to the IP multicast group MC3. If the corresponding header is 65538, the shim header is deleted, the layer 2 address of the virtual L3SW 501A is set as the layer 2 destination address, and the VLAN ID is deleted, and then the action to be output to the external node 300A connection port is It is prescribed.
- FIG. 37 is an example of the contents of the flow entry setting to the flow processing apparatus 200B of FIG.
- An action for instructing output to the flow processing apparatus 200A connection port after inserting a Shim header to which the corresponding multicast label ID 65538 is assigned is defined. Thereafter, transfer is performed according to the BCMC base flow entry of FIG.
- the IPMC receiver flow entry 452B-MC3 is a flow entry that is processed after a packet addressed to the BCMC address input from the flow processing apparatus 200A connection port is transmitted to table 3. In the example of FIG.
- IP multicast reception is possible at the receiver external NW end point 503 to which the receiver belongs. That is, IP multicast reception exceeding the virtual L3SW 501A becomes possible.
- the IP multicast receiver external for MC1 of the virtual network 500A when the same IP multicast group address MC1 is used in a virtual network (for example, virtual network 500B) different from the virtual network 500A, the IP multicast receiver external for MC1 of the virtual network 500A are independently managed and IP multicast distributed Is possible.
- both the external NW endpoint 503 (sender) that inputs the IP multicast packet to the flow control apparatus 100 and the external NW endpoint 503 (receiver) to which the IP multicast packet receiver node 300 is connected are Since the IPMC encapsulated flow entry 451 and the IPMC receiver flow entry 452 are set on the condition that they are aligned, it is possible to save flow entry resources.
- a Drop flow entry is set as the IPMC sender flow entry 450 in the case of only the sender.
- the number of flow entries on the flow processing device 200 that need to be dynamically controlled when communication is started or stopped is the sender external NW. 2 if there is an end point 503, 1 if there is at least one receiver external NW end point 503, 0 if there is no external NW end point 503 of the sender or receiver, and the sender external NW end point 503 and the receiver external When there is an NW end point 503, the number is 3 and few. For this reason, high-speed IP multicast communication can be started and stopped.
- IPv4 is used, but application to IPv6 is also possible.
- IPv6 is also possible.
- the format of the IP multicast group address (including Well Known) can be changed from IPv4 to IPv6.
- the IP multicast default flow entry specifies MLD instead of IGMP, it can be handled by using ICMPv6 and referring to the message type as a match condition.
- the reception of IGMP Leave has been exemplified as the trigger for deleting the recipient.
- the reception timeout of IGMP Report can also be used as a trigger. Also, considering that there is not one receiving node for each external NW endpoint 503, send an IGMP Query to check if there is another host when receiving IGMP Leave, and delete the external NW endpoint 503 from the output destination when the response times out You may make it do.
- the sender external endpoint 503 and the receiver external endpoint 503 have been described as being dynamically detected. However, even when these are fixedly set, of course, the multicast label ID is used. Communication beyond the virtual L3SW 501 can be realized.
- the device controller is Control information for the sender that defines the processing contents to be executed by the flow processor on the ingress side that receives the IP multicast packet from the sending node (sender) of the IP multicast group, and a predetermined header for the IP multicast packet After adding or rewriting the header, the transfer control information for transferring the IP multicast packet along the route and the flow processing device on the exit side of the route perform deletion of the predetermined header or restoration of the header.
- Control device for generating the receiver control information for forwarding the IP multicast packet to the receiving node, and setting the control information for each of the flow processing devices on the route.
- the ingress side flow processing device has the A control device for adding contents instructing packet transfer to a receiving node.
- a control device having a function of executing broadcast in units of VLANs by adding a predetermined header to the broadcast packet or rewriting the header.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本発明は、集中制御型のネットワークにおいてマルチキャストを行う際の、フロー処理装置や制御装置の使用リソースや負荷の増大を抑制する。制御装置は、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIP(Internet Protocol)マルチキャストグループの送信ノードを管理する送信者管理部と、配下のパケット処理からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する受信者管理部と、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する経路計算部と、前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する装置制御部と、を備える。
Description
(関連出願についての記載)
本発明は、日本国特許出願:特願2013-121952号(2013年6月10日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、制御装置、通信システム、中継装置の制御方法及びプログラムに関し、特に、マルチキャストを実現する制御装置、通信システム、中継装置の制御方法及びプログラムに関する。
本発明は、日本国特許出願:特願2013-121952号(2013年6月10日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、制御装置、通信システム、中継装置の制御方法及びプログラムに関し、特に、マルチキャストを実現する制御装置、通信システム、中継装置の制御方法及びプログラムに関する。
非特許文献1に、オープンフロースイッチと呼ばれるスイッチと、これらスイッチを集中制御するオープンフローコントローラとにより、集中制御型のネットワークを実現するオープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献2に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件(Match Fields)と、フロー統計情報(Counters)と、処理内容を定義したインストラクション(Instructions)と、の組が定義される(非特許文献2の「5.2 Flow Table」の項参照)。
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件(非特許文献2の「5.3 Matching」参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報(カウンタ)を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容(指定ポートからのパケット送信、フラッディング、廃棄等)を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求(Packet-Inメッセージ)を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
特許文献1には、上記集中制御型のネットワークを用いて物理ネットワークを論理的に分割した仮想ネットワークを構成する方法が開示されている。
マルチキャストグループの管理プロトコルとしては、IGMP(Internet Group Management Protocol)及びMLD(Multicast Listener Discovery)が知られている。
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成25(2013)年5月10日検索]、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
"OpenFlow Switch Specification" Version 1.3.1 (Wire Protocol 0x04)、[online]、[平成25(2013)年4月10日検索]、インターネット〈URL:https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.1.pdf〉
以下の分析は、本発明によって与えられたものである。非特許文献2には、グループタイプ“all”のグループを定義することで、オープンフロースイッチがマルチキャストやブロードキャストを行うことが記載されている(非特許文献2の「5.6 Group Table」の項参照)。
しかしながら、特許文献1や非特許文献1、2には、マルチキャストグループをどのように管理し、フローエントリやグループテーブルのエントリを作成するかは記載されていない。例えば、マルチキャストグループに移動が生じる度に、送信者から受信者に到る網羅的な経路を計算し、制御情報(例として、非特許文献2のフローエントリ)を設定することも考えられるが、個々のフロー処理装置(例として、非特許文献2のオープンフロースイッチ)が保持できる制御情報の数には限りがある。また、制御情報の数の増大は、制御装置(例として、非特許文献2のオープンフローコントローラ)に負荷も増大させてしまう。これらを考慮したマルチキャストの実現方法の提案が要請されている。
本発明は、上記集中制御型のネットワークにおいて、フロー処理装置や制御装置の使用リソースや負荷の増大を抑制できるマルチキャストを実現する制御装置、通信システム、中継装置の制御方法及びプログラムを提供することを目的とする。
第1の視点によれば、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIP(Internet Protocol)マルチキャストグループの送信ノードを管理する送信者管理部と、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する受信者管理部と、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する経路計算部と、前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する装置制御部と、を備える制御装置が提供される。
第2の視点によれば、上記した制御装置と、前記制御装置から設定された制御情報に従って動作するフロー処理装置と、を含む通信システムが提供される。
第3の視点によれば、フロー処理装置を制御する制御装置が、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理するステップと、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理するステップと、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算するステップと、前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定するステップと、
を備えるフロー処理装置の制御方法が提供される。本方法は、フロー処理装置を制御する制御装置という、特定の機械に結びつけられている。
を備えるフロー処理装置の制御方法が提供される。本方法は、フロー処理装置を制御する制御装置という、特定の機械に結びつけられている。
第4の視点によれば、フロー処理装置を制御する制御装置を構成するコンピュータに、その記憶手段を用いて、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理する処理と、その記憶手段を用いて、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する処理と、予め収集したフロー処理装置のトポロジ情報と、前記送信ノードと受信ノードとの位置情報に基づいて、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する処理と、前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、集中制御型のネットワークにおいてマルチキャストを行う際の、フロー処理装置や制御装置の使用リソースや負荷の増大を抑制することが可能となる。
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
本発明は、その一実施形態において図1に示すように、集中制御型のネットワークを制御する制御装置10と、制御装置10から設定された制御情報に従って動作するフロー処理装置20と、を含む構成にて実現できる。
より具体的には、制御装置10は、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループ(以下、IPマルチキャストを「IPMC」とも記す。)の送信ノードを管理する送信者管理部11と、配下のパケット処理からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する受信者管理部12と、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する経路計算部13と、前記計算した経路上のフロー処理装置20に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する装置制御部14と、を備える。
上記した構成によれば、制御装置10は、IPマルチキャストグループのうち、受信者と送信者が存在するIPマルチキャストグループについて、送信者から各受信者に到る経路を計算し、経路上のフロー処理装置20に制御情報を設定する。すなわち、受信者が離脱して受信者のいないIPマルチキャストグループや、送信者のいないIPマルチキャストグループに対する経路の計算や制御情報の設定は省略される。結果として、フロー処理装置20や制御装置10の使用リソースや負荷の増大を抑制することが可能となる。
[第1の実施形態]
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を示す図である。図2を参照すると、複数のフロー処理装置200A~200Cと、これらフロー処理装置200A~200Cを制御する制御装置100と、を含む構成が示されている。フロー処理装置200A~200Cは、それぞれ外部ノード300A~300Eと接続されており、制御装置100は、フロー処理装置200A~200Cを制御することで、外部ノード300A~300E間の通信を実現する。なお、図2の実線は、データ転送チャネルを表しており、図2の破線は、制御装置100とフロー制御装置200(以下、フロー処理装置200A~200Cを特に区別しない場合、「フロー処理装置200」と記す。)間の制御用チャネルを表している。
続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図2は、本発明の第1の実施形態の構成を示す図である。図2を参照すると、複数のフロー処理装置200A~200Cと、これらフロー処理装置200A~200Cを制御する制御装置100と、を含む構成が示されている。フロー処理装置200A~200Cは、それぞれ外部ノード300A~300Eと接続されており、制御装置100は、フロー処理装置200A~200Cを制御することで、外部ノード300A~300E間の通信を実現する。なお、図2の実線は、データ転送チャネルを表しており、図2の破線は、制御装置100とフロー制御装置200(以下、フロー処理装置200A~200Cを特に区別しない場合、「フロー処理装置200」と記す。)間の制御用チャネルを表している。
制御装置100は外部ノード300間の通信をどのフロー処理装置を通って処理させるかのフロー管理をしており、1以上のフロー処理装置200に対してフローエントリ(制御情報)の設定を行う。
フロー処理装置200は外部ノード300又は他のフロー処理装置からの入力フレーム(以下、非特許文献2のオープンフロースイッチが処理する「パケット」と区別せず「フレーム」とも記す。)に対して制御装置100の指示によって設定されたフローエントリ(制御情報)を格納するフローテーブルを参照し、入力フレームに適合するマッチ条件を持つフローエントリ(制御情報)に従って入力フレームを処理する。フロー処理装置200は、前記フローエントリ(制御情報)に定められたアクション(処理内容)に従い、入力フレームを外部ノード300に出力したり他のフロー処理装置200に出力したり、制御装置100に出力したり、ドロップしたりする。
外部ノード300は、フロー処理装置200を介して、他の外部ノード300宛てのフレームを送信したり、フロー処理装置200から他の外部ノード300を送信元とするフレームを受信したりする。ここで、外部ノード300と接続しているフロー処理装置200をエッジフロー処理装置とし、フロー処理装置200としか接続していないフロー処理装置200をコアフロー処理装置とする。コアフロー処理装置はフローネットワークによっては存在しない場合もあり、図2では存在しない。また、外部ノード300はエッジフロー処理装置と直接接続している必要はなくレイヤ2スイッチ(L2SW)を介して接続していてもよいし、外部ノード300がレイヤ3スイッチ(L3SW)やルータであり、その先に別の外部ノード300が存在している場合もある。
図3は、上記制御装置100の詳細構成を示すブロック図である。図3を参照すると、フロー処理装置通信部101と、物理ネットワーク管理部102と、仮想ネットワーク管理部103と、装置情報記憶部104と、物理トポロジ情報記憶部105と、ベースフローエントリ記憶部106と、フローエントリ記憶部107と、フロー記憶部108と、マッピング情報記憶部109と、仮想トポロジ情報記憶部110と、仮想ノード情報記憶部111と、IPマルチキャスト受信者情報記憶部112と、IPマルチキャスト送信者情報記憶部113と、IPマルチキャストグループ情報記憶部114と、を備えた構成が示されている。
フロー処理装置通信部101は、物理ネットワーク管理部102や仮想ネットワーク管理部103に対し、フロー処理装置200からのフロー処理装置情報や入力フレーム情報やタイムアウトによるフローエントリ削除情報を中継する。また、フロー処理装置通信部101は、フロー処理装置200に対し、仮想ネットワーク管理部103からの出力フレーム情報や物理ネットワーク管理部102からのフローエントリ(制御情報)の設定や参照などを中継する。また、フロー処理装置通信部101は、仮想ネットワーク管理部103と物理ネットワーク管理部102に対し、装置情報記憶部104に格納されたフロー処理装置の情報を提供する。
物理ネットワーク管理部102は、フロー処理装置通信部101から受け取ったフロー装置の情報を装置情報記憶部104に設定し、さらに、装置情報記憶部104の情報と入力フレーム情報とに基づいて、物理トポロジ情報記憶部105にフロー処理装置のトポロジ情報を設定する。
また、物理ネットワーク管理部102は、フロー処理装置のトポロジ情報を基にブロードキャスト又はレイヤ2マルチキャスト用のベースとなる経路を求める経路計算部としても機能する。物理ネットワーク管理部102は、ベースフローエントリ記憶部106に、前記求めたフロー処理装置200毎のブロードキャスト又はレイヤ2マルチキャスト用のベースフローエントリ400を設定する。図4は、図2の上に、ベースフローエントリ400にて実現されるブロードキャストフレームの流れを矢線で表した図である。
以下、図5~図10及び図28~図36において、フローエントリNo.がAAA-CCCの6桁のコードで表されている場合、最初の3桁AAAはフローエントリの種別を表し、次の3桁CCCがフローエントリの宛先(ブロードキャスト又はマルチキャスト)を表している。また、フローエントリNo.がAAA-BBB-CCCの9桁のコードで表されている場合、最初の3桁AAAはフローエントリの種別を表し、次の3桁BBBはフローエントリの設置先を示し、最後の3桁はフローエントリの送信元又は宛先(ブロードキャスト又はマルチキャスト)を表している。
図5~図7は、フロー処理装置200A~200Cに設定されるベースフローエントリ400の例である。例えば、図5のtable1では、ブロードキャスト又はレイヤ2マルチキャスト(以下、「BCMC」とも記す)アドレスが設定されたフレームに対し、その入力ポートに応じた適用する処理内容が定められている。例えば、(外部)ノード300Aから受信したBCMCフレームは、table1の1番上のエントリにヒットし、table2にて処理される。table2では、適正なVLAN IDが設定されている場合、1番上のエントリにヒットすることになり、VLAN IDに応じたMPLS shimヘッダの挿入処理が行われた後に、フロー処理装置200B、200Cに転送される。なお、table2、table3の参照時に、適正なVLAN IDが設定されていなかった場合、table2の上から2番目のエントリ(Drop用フローエントリ404)やtable3の上から2番目のエントリ(Drop用フローエントリ405)に従い、そのフレームは破棄(Drop)される。図4の外部ノード300AからBCMCフレームを受信した場合のフロー処理装置200Aの動作(矢線)は、以上のベースフローエントリ400によって規定されている。図5のその他のベースフローエントリ400及び図6、図7のベースフローエントリ400も、図4のフロー処理装置200の動作(矢線)に対応するものであり、内容として略同様であるので説明は省略する。なお、図5~図7の例ではフロー処理装置200Bと200C間を転送するためのフローエントリが設定されていないが、これはブロードキャスト、マルチキャストフレームがフローネットワーク内でループフリーとなるためである。フローネットワークの構成や状態が変化する度に、前記箇所が変更になる。また、BCMCアドレスとはブロードキャスト、マルチキャスト用のアドレスのことであり、MACアドレスの場合は先頭1バイトのI/Gビット(I/Gは「Individual Address/Group Address」の略)が1の場合となる。
また、物理ネットワーク管理部102は、外部ノード300が接続されているポート(外部ノード接続ポート)を持つフロー処理装置に、図8~図10に示すIPマルチキャストデフォルトフローエントリを設定する。IPマルチキャストデフォルトフローエントリには、IGMP情報取得用デフォルトフローエントリと、IPマルチキャストWell known配信デフォルトフローエントリと、IPマルチキャストパケット情報取得用デフォルトフローエントリとの3種類のフローエントリがある。IGMP情報取得用デフォルトフローエントリは、図8の480-200A-300A、図9の480-200B-300B、480-200B-300C、図10の480-200C-300D、480-200A-300Eに示すように、IGMPパケットを制御装置100に送信し、制御装置100にてIPマルチパケット受信者を管理するためのフローエントリである。IPMC Well known配信デフォルトフローエントリは、L3スイッチ越えする必要がない通信制御用プロトコロルとして予約しているパケットを、上記ベースフローエントリ400を用いて配信するためのフローエントリであり、条件一致したパケットの他のフロー処理装置への転送等が行われる(制御装置100へは送信されない)。IPマルチキャストパケット情報取得用デフォルトフローエントリは、図8の482-200A-300A、図9の482-200B-300B、482-200B-300C、図10の482-200C-300D、482-200C-300Eに示すように、外部ノード300からのIPマルチキャスト受信を検出するためのフローエントリである。IPマルチキャストパケット情報取得用デフォルトフローエントリの優先度は、フローエントリ481(481-200A-300A等)や後述するIPマルチキャスト送信者用フローエントリ450よりも低く設定されており、これらフローエントリに先にマッチ条件が一致した場合、IPマルチキャストパケット情報取得用デフォルトフローエントリは適用されない(制御装置100への送信も行わない。)。
また、物理ネットワーク管理部102は、仮想ネットワーク管理部103からの仮想ノード情報と、仮想ネットワークトポロジ情報と、マッピング情報記憶部109のマッピング情報と、に基づいて、ブロードキャスト、マルチキャスト用フローエントリを求め、フローエントリ記憶部107に設定し、フロー処理装置通信部101を通してフロー処理装置200にフローエントリを設定する。さらに、物理ネットワーク管理部102は、仮想ネットワーク管理部103からのフロー設定依頼に応じて、トポロジ情報等からユニキャスト用のマッチ条件(フロー)とフローエントリを求める。物理ネットワーク管理部102は、フロー記憶部108とフローエントリ記憶部107に、作成したフロー設定情報とフローエントリとをそれぞれ設定し、フロー処理装置通信部101を通してフロー処理装置200にフローエントリを設定する。
さらに物理ネットワーク管理部102は、仮想ネットワーク管理部103からIPマルチキャストフロー設定依頼に応じて、IPマルチキャストフロー設定要求に付随するマルチキャストラベルIDと、受信者又は送信者の外部ノード300接続ポートと、VLAN IDと、ベースフローエントリ記憶部106のループフリーとなるような他のフロー処理装置200の接続ポート情報とを用いて、IPマルチキャスト送信者用フローエントリ450、IPマルチキャストカプセル化フローエントリ451、IPマルチキャスト受信者用フローエントリ452を生成し、フロー処理装置通信部101に対しこれらフローエントリ設定を要求する。ここで、IPマルチキャスト送信者用フローエントリ450は、フロー処理装置の外部ノード300接続ポートに、IPマルチキャスト送信者から受信したフレームを送信するためのフローエントリであり、IPマルチキャストカプセル化フローエントリ451は、前述のベースフローエントリにて使用されるBCドメインIDとは重複しないよう割り当てられたマルチキャストラベルIDによりフレームをカプセル化し、ラベルを付与し、マルチキャスト配信するためのフローエントリである。また、IPマルチキャスト受信者用フローエントリ452は、前記IPマルチキャストカプセル化フローエントリ451にてカプセル化されたフレームの復元等を行ってから外部ノード300への出力等を実行させるフローエントリである(図28等参照)。IPマルチキャスト送信者用フローエントリ450、IPマルチキャストカプセル化フローエントリ451及びIPマルチキャスト受信者用フローエントリ452については後に詳細に説明する。
仮想ネットワーク管理部103は、複数の仮想ネットワーク上の仮想ノード情報を仮想ノード情報記憶部111に設定し、仮想ネットワークごとの仮想ノード情報の接続関係を仮想トポロジ情報記憶部110に設定する。図11は、仮想トポロジ情報記憶部110に設定された、ある仮想ネットワーク上の仮想ノード(仮想L3SW、L2SW)の接続関係等を示す図である。図11の例では、仮想ノードとして仮想L3SW501A、仮想L2SW502A、502B、外部NW端点503A~503Fが存在する仮想ネットワーク500Aが示されている。仮想ネットワーク500Aのトポロジとして仮想L3SW501Aと仮想L2SW502A、502Bが接続しており、仮想L2SW502Aと外部NW端点503A、503Bが接続しており、仮想L2SW502Bと外部NW端点503C~503Fが接続している。仮想L2SW502AはBCドメインIDとして1を持ち、仮想L2SW502BはBCドメインIDとして2を持つ。なお、BCドメインIDの割り当ては仮想ネットワーク管理部103が仮想L2SW502で一意となるように割り当てればよい。
また、仮想ネットワーク管理部103は、仮想ネットワークと実ネットワークとの接続関係を示すマッピング情報をマッピング情報記憶部109に記憶し、このマッピング情報を物理ネットワーク管理部102に渡す。図12は、仮想トポロジ情報記憶部110に設定された、図11の仮想ネットワークと図2の物理ネットワークの対応関係を示す図である。図12の例では、外部NW端点503Aはフロー処理装置200Aの外部ノード300A接続ポートのuntagged VLAN ID 10であることを示している。同様に、外部NW端点503Bは、フロー処理装置200Bの外部ノード300B接続ポートのtagged VLAN ID 20、外部NW端点503Cはフロー処理装置200Bの外部ノード300C接続ポートのtagged VLAN ID 30に対応付けられている。同様に、外部NW端点503Dは、フロー処理装置200Cの外部ノード300D接続ポートのtagged VLAN ID 20、外部NW端点503Eはフロー処理装置200Cの外部ノード300D接続ポートのtagged VLAN ID 20に対応付けられている。外部NW端点503Fは、フロー処理装置200Cの外部ノード300E接続ポートのtagged VLAN ID 30に対応付けられている。このように、仮想ネットワークと物理ネットワークとを対応付けることで、仮想ネットワーク上のフレームの流れと、物理ネットワーク上のフレームの流れと、を対応付けることが可能となる。
また、仮想ネットワーク管理部103は、フロー処理装置通信部101から入力フレーム情報を受け取ると、仮想ネットワークトポロジ情報に基づいて該当する仮想ネットワークにフレームが入力されたものとして処理する。具体的には、仮想ネットワーク管理部103は、入力フレーム情報をドロップしたり、仮想L3SW501などの仮想ノードがホスト受信させたり、外部NW端点503などの仮想ノードに出力フレーム情報を出力させたりする。なお、外部NW端点503などの仮想ノードの出力フレーム情報の出力はフロー処理装置通信部101からの入力フレーム情報の処理契機だけでなく、仮想L3SW501などの仮想ノードのホスト送信の場合もある。仮想ネットワーク管理部103は、出力フレーム情報を、フロー処理装置通信部101を通してフロー処理装置200に出力する。
さらに、仮想ネットワーク管理部103は、フロー処理装置通信部101からの入力フレーム情報と、それに対応するフロー処理装置通信部101への出力フレームとを処理するためのフローエントリの設定を物理ネットワーク管理部102に依頼する場合がある。なお、前記依頼は、仮想ネットワークトポロジ情報などから、仮想ネットワーク上の経路等を示して行うことも可能である。
さらに、仮想ネットワーク管理部103は、IGMP ReportやIGMP Leaveの入力フレーム情報に基づいて、IPマルチキャストパケット受信者の存在する外部NW端点503をIPマルチキャスト受信者情報記憶部112に設定する(図1の受信者管理部に相当)。具体的には、仮想ネットワーク管理部103は、IGMP ReportやIGMP Leaveフレームを受信した外部ノード300接続ポートとVLAN IDとIPマルチキャストグループとマッピング情報記憶部109の情報と、に基づいて、IPマルチキャストパケット受信者の存在する外部NW端点503をIPマルチキャスト受信者情報記憶部112に設定する。また、仮想ネットワーク管理部103は、同様に、IPマルチキャストパケット送信者の存在する外部NW端点503をIPマルチキャスト送信者情報記憶部113に設定する(図1の送信者管理部に相当)。
IPマルチキャスト受信者情報記憶部112またはIPマルチキャスト送信者情報記憶部113を更新する際に、該当仮想ネットワーク500のIPマルチキャストグループに関して、1以上のIPマルチキャストパケット送信者と1以上のIPマルチキャスト受信者がそろっている場合、仮想ネットワーク管理部103は、当該IPマルチキャストグループに対するマルチキャストラベルIDを採番しIPマルチキャストグループ情報記憶部114に登録する。なお、マルチキャストラベルIDは、ベースフローエントリ400にてMPLS shimヘッダに挿入されるBCドメインIDと重複しない65536以降の値が設定される。
また、仮想ネットワーク管理部103は、IPマルチキャストグループ情報記憶部114に登録済みの仮想ネットワーク500のIPマルチキャストグループに対するIPマルチキャストパケット受信者が0個になった場合、又は、IPマルチキャストパケット送信者が0個になった場合、該当IPマルチキャストグループの登録を解除し採番していたマルチキャストラベルIDを返却する(IPマルチキャストグループ情報記憶部114から該当エントリを削除する。)。
仮想ネットワーク管理部103は、IPマルチキャストグループ情報記憶部114における、仮想ネットワーク500のIPマルチキャストグループ登録時や登録済みのIPマルチキャストグループのIPマルチキャスト受信者やIPマルチキャスト送信者の増減に応じて、物理ネットワーク管理部102に対し、IPマルチキャストを実現するためのフローエントリの設定を依頼する。このIPマルチキャストを実現するためのフローエントリの作成には、IPマルチキャスト受信者情報記憶部112へ登録済みの受信者の仮想NW端点503及びIPマルチキャスト送信者情報記憶部113へ登録済みの受信者の仮想NW端点503に対応する外部ノード300接続ポート(マッピング情報記憶部109の情報を用いて取得)と、VLAN IDと、IPマルチキャストグループ情報記憶部114のマルチキャストラベルIDとが用いられる。
仮想ネットワーク管理部103は、また、IPマルチキャストグループに、IPマルチキャスト送信者又は受信者の一方しか存在しない場合、物理ネットワーク管理部102に対し、外部ノード300接続ポートとVLAN IDとIPマルチキャストグループアドレスを用いてIPマルチキャストのフローのDrop設定又はフローエントリそのものの削除を依頼する。
装置情報記憶部104は、制御装置100の制御対象のフロー処理装置の情報を保持する。装置情報記憶部104に保持される情報としては、例えば、フロー処理装置のポート情報、VLAN設定情報、フロー処理装置の能力、フロー処理装置200へアクセスするためのアドレス等が挙げられる。また、フロー処理装置200が保持する統計情報などを含めてもよい。
物理トポロジ情報記憶部105は、フロー処理装置200間の接続情報およびポートの接続先(他のフロー処理装置へ接続されるポートか、外部ノード300接続用ポートかの情報)を保持する。
ベースフローエントリ記憶部106は、フロー処理装置200毎に、図4~図7を用いて説明したブロードキャスト、マルチキャスト用のフローのためのベースフローエントリを保持する。また、ベースフローエントリ記憶部106は、フロー処理装置200毎に、ループフリーとなるような他のフロー処理装置200の接続ポート情報を保持する。
フローエントリ記憶部107は、フロー処理装置200に設定するフローエントリをフロー処理装置200ごとに保持する。
フロー記憶部108は、フロー設定情報を保持する。フロー設定情報は、例えば、入力フレーム情報との照合対象となるフローエントリ中のマッチ条件や、出力フレームの状態(フロー処理装置での書き換え後のヘッダ内容等)等である。
マッピング情報記憶部109は、仮想ネットワークと実ネットワークとの接続関係、即ち、仮想の外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートとVLAN IDとのマッピング情報を記憶する(図12参照)。マッピング情報は、仮想ネットワーク500毎の、入力フレームが入出力される際の外部NW端点503、IPマルチキャスト受信者や送信者が存在する外部NW端点503等がフロー処理装置200のどのポートのどのVLAN IDと関係しているかを表している。なお、外部NW端点503のVLAN ID情報には、untaggedかtaggedか、untaggedの場合はuntagged用のVLAN IDを使用するか、しないか、使用する場合はどのVLAN IDか、またtaggedの場合はどのVLAN IDかなどを設定可能としてもよい。
仮想トポロジ情報記憶部110は、仮想ネットワーク500ごとの仮想ノード間の接続情報を保持する(図11参照)。
仮想ノード情報記憶部111は、仮想ネットワークごとの仮想L3SW501や仮想L2SW502、外部NW端点503などの仮想ノード情報をそれぞれ保持する。例えば仮想L3SW501であれば、仮想ノード情報は、仮想インタフェース情報やルーティングテーブル情報、ARPエントリ情報などのL3SWと同様の情報と仮想ネットワーク500との関係などとなる。仮想L2SW502であれば、仮想ノード情報は、仮想インタフェース情報やMACエントリ情報などのL2SWと同様の情報とブロードキャスドメインを一意に識別するためのブロードキャストドメインID(BCドメインID)、仮想ネットワーク500との関係などとなる。
IPマルチキャスト受信者情報記憶部112は、仮想ネットワーク500配下のIPマルチキャストグループに対するIPマルチキャスト受信者が存在する外部NW端点503のリストを保持する。図13は、IPマルチキャストグループ受信者情報を格納するリストの一例である。
IPマルチキャスト送信者情報記憶部113は、仮想ネットワーク500配下のIPマルチキャストグループに対するIPマルチキャスト送信者が存在する外部NW端点503のリストを保持する。図14は、IPマルチキャストグループ送信者情報を格納するリストの一例である。
IPマルチキャストグループ情報記憶部114は、IPマルチキャストの受信者とIPマルチキャスト送信者の両方が存在する仮想ネットワーク500配下のIPマルチキャストグループの情報を、マルチキャストラベルIDと対応付けて保持する。図15は、IPマルチキャストグループ情報を格納するリストの一例である。図15に示すように、仮想ネットワークIDとIPマルチキャストグループIDが検索キーとなっており、複数の仮想ネットワーク配下で同一のIPマルチキャストグループアドレスに対して、各々IPマルチキャスト受信者、送信者を別に管理することが可能である。
図16~図18は、図11に示す仮想ネットワークの構成に、図15のIPマルチキャストグループを追記した図である。なお、図13、図14に示すように、IPマルチキャストグループMC4は受信者のみ、IPマルチキャストグループMC5は送信者のみが存在するIPマルチキャストグループであるため、図15にはマルチキャストグループとして登録されていない。
なお、図3に示した制御装置100の各部(処理手段)は、制御装置100を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
続いて、フロー処理装置200の構成について説明する。図19は、フロー処理装置200の詳細な構成を示すブロック図である。フロー処理装置200は、フローエントリ検索部201と、フローエントリ記憶部202と、フローエントリ処理部203と、フロー処理部204と、制御装置通信部205とを備えている。
フローエントリ検索部201は、フロー処理装置200に入力されたフレームからフローエントリを検索するためのフローエントリ検索条件情報を抽出し、フローエントリ検索条件情報を用いてフローエントリ記憶部202から入力フレームに適合するマッチ条件を持つエントリを検索する。フローエントリ検索部201は、その際にマッチしたフローエントリのタイムアウト時間や統計情報などがあれば更新する。そして、フローエントリ検索部201は、マッチしたフローエントリのアクションと入力フレームをフロー処理部204に渡す。
フローエントリ記憶部202は該フロー処理装置200がフレームを処理するためのフローエントリを保持する。フローエントリ記憶部202は、フロー処理部204からフローエントリの追加・削除などの設定や参照が行われる。これらフローエントリに対しは、フローエントリ検索部201によりフローエントリの検索やマッチしたフローエントリの更新が行われる。ここで、フローエントリ記憶部202が保持するフローエントリは制御装置100のフローエントリ記憶部107が保持する該フロー処理装置200と同じである。
フローエントリ処理部203は、フローエントリ記憶部202に対して、制御装置通信部205を介して制御装置100から受けたフローエントリに関する追加・削除などの設定や参照指示を実行する。また、フローエントリ処理部203は、フローエントリ記憶部202を参照し、フローエントリでタイムアウトしたものに関しては削除し、制御装置通信部205を介して、制御装置100に対し、該フローエントリが削除されたことを伝える。
フロー処理部204は、フローエントリ検索部201から、もしくは制御装置通信部205を介して制御装置100から渡される入力フレームとそのアクションに従ってフレームを処理する。例えば、入力フレームの値を変更したり、外部ノード300に出力したり、他のフロー処理装置200に出力したり、制御装置通信部205を通して制御装置100に出力したり、ドロップしたりする。
以上のようなフロー処理装置200は、例えば、非特許文献2のオープンフロースイッチにより構成することもできる。
続いて、本実施形態の動作について図面を参照して詳細に説明する。図20は、本発明の第1の実施形態の制御装置により初期設定として実施されるベースフローエントリとIPマルチキャストデフォルトフローエントリの生成処理の流れを示すフローチャートである。
図20を参照すると、まず、物理ネットワーク管理部102は、フロー処理装置200と接続した際にフロー処理装置200の装置情報を取得し、装置情報記憶部104にフロー処理装置の装置情報を設定する(ステップS101)。
次に、物理ネットワーク管理部102は、フロー処理装置200間の接続情報を取得し、物理トポロジ情報記憶部105に設定する(ステップS102)。例えば、物理ネットワーク管理部102が、前記新規に接続したフロー処理装置200に対し、他のフロー処理装置200へのフレーム送信を指示することで、他のフロー処理装置200から入力フレーム情報を取得することができる。そして、物理ネットワーク管理部102が、装置情報記憶部104の該当フロー処理装置の情報を参照することにより、接続関係を把握することができる。
次に、物理ネットワーク管理部102は、物理トポロジ情報記憶部105のトポロジ情報を基に、ブロードキャスト、マルチキャストフレームがフローネットワークにおいてループフリーとなるようにスパニングツリーを求め、フロー処理装置200ごとのブロードキャスト、マルチキャストフレーム用のBCMC用ベースフローエントリ(図4~図7参照)を生成し、ベースフローエントリ記憶部106に設定する(ステップS103)。
最後に、物理ネットワーク管理部102は物理トポロジ情報記憶部105のトポロジ情報を基に、フロー処理装置200におけるフローネットワーク外部へと接続されている外部ノード300接続ポートの各々に対して、IPMCデフォルトフローエントリ(上記IGMP情報取得用デフォルトフローエントリ、IPMC Well known配信デフォルトフローエントリ481、IPMCパケット情報取得用デフォルトフローエントリ482)を設定する(ステップS104)。IPMCデフォルトフローエントリを設定することにより、制御装置100にフロー処理装置200にて検出したIGMPフレーム情報やIPマルチキャストの検出が開始される。
続いて、本発明の第1の実施形態の制御装置100及びフロー制御装置200が、動的にIPMC受信者やIPMC送信者を検出してIPマルチキャスト用のフローエントリを設定するまでの動作について説明する。図21は、本発明の第1の実施形態の制御装置100の全体の動作を表した流れ図である。
フロー処理装置200に入力フレームがある場合、フローエントリ検索部201は入力フレームからフローエントリを検索するためのフローエントリ検索条件情報を抽出する(ステップS301)。
次に、フローエントリ検索部201はフローエントリ検索条件情報を用いてフローエントリ記憶部202からフローエントリ検索条件情報に適合するマッチ条件を持つフローエントリを検索する(ステップS302)。そして、フローエントリ検索部201はマッチしたフローエントリのアクションと入力フレームをフロー処理部204に渡す。
前記フローエントリの検索の結果、IGMP情報取得用デフォルトフローエントリ480又はIPマルチキャストパケット情報取得用デフォルトフローエントリ482を検出した場合、フロー処理部204は、フローエントリのアクションの内容に従い、入力フレームに入力ポートなどの付加情報を追加して制御装置100に送信する(ステップS303)。
前記ステップS303でフロー処理装置200から送信された入力フレーム情報が転送されると、制御装置100は、IPマルチキャストグループ宛でWell Known以外の入力フレームであるか否かを判断する。ここで、IPマルチキャストグループ宛でWell Known以外の入力フレームであると判断した場合、制御装置100は、入力フレーム情報からIPマルチキャストパケットを入力した外部ノード300接続ポートとVLAN IDを抽出し、さらに、マッピング情報記憶部109を検索し対応する外部NW端点503を取得する(ステップS304)。ここで、取得した外部NW端点503がIPマルチキャスト送信者情報記憶部113にIPマルチキャストパケットの宛先のIPマルチキャストグループの送信者として登録されていない場合、制御装置100は、送信者として外部NW端点503を登録し、ステップS308に示す送信者外部NW端点503におけるフローエントリ設定処理を行う。
図22は、図21のステップS308の詳細を表した流れ図である。図22を参照すると、まず、制御装置100は、マッピング情報記憶部109を検索し、送信者外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートとVLAN IDとを検索する(ステップS3081)。
送信者外部NW端点503が登録済み(該当するフロー処理装置200、外部ノード300接続ポート及びVLAN IDがあり)の場合、制御装置100は、IPマルチキャストグループ情報記憶部114から、外部NW端点503が所属する仮想ネットワーク500のIPマルチキャストパケットの宛先IPマルチキャストグループを検索し登録済みか否かチェックする(ステップS3082)。
前記チェックの結果、IPマルチキャストグループ情報記憶部114に該当IPマルチキャストグループ情報が登録されている場合、制御装置100は、フローエントリ記憶部107を参照し、フロー処理装置200に該当外部ノード300接続ポートを入力ポートかつそのVLANIDをマッチ条件としたIPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450が設定されているか否かを確認する(ステップS3083)。なお、ここで該当IPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450が設定されている場合は、特に何もする必要がない。
ステップS3083で該当IPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450が設定されていない場合、制御装置100は、IPマルチキャストグループとVLANIDをマッチ条件としたIPマルチキャストカプセル化フローエントリ451をフロー処理装置200に設定する(ステップS3084)。
次に、制御装置100は、フロー処理装置200に設定済みのIPMC受信者用フローエントリ452(マッチ条件にIPMCカプセル化フローエントリ451のマルチキャストラベルIDを持つ)を検索し、そのアクションのVLAN ID+出力外部ノード300接続ポートの出力先リストを取得する。ここで、該当する入力外部ノード300接続ポート+VLANIDの組み合わせが出力先リストにある場合、制御装置100は、出力先リストからその組み合わせを削除し、ループしないようにする(ステップS3085)。これにより、IPMC送信者用フローエントリ450のアクションとして設定すべき出力先リストを取得することができる。
次に、制御装置100は、IGMPフレームを入力した外部ノード300接続ポートを入力ポートとし、かつVLAN IDとIPマルチキャストグループアドレスとをマッチ条件として、ステップS3085のアクションと合わせてIPマルチキャスト送信者用フローエントリ450を生成する(ステップS3086)。
次に、制御装置100は、ステップS3086で生成したIPマルチキャストグループのIPMC送信者用フローエントリ450をフロー処理装置200に設定する(ステップS3087)。
なお、ステップS3081で送信者外部NW端点503に対応する外部ノード300接続ポートとVLAN IDの組み合わせが存在しない場合やステップS3082でIPマルチキャストパケットの宛先IPマルチキャストグループが未登録の場合、制御装置100は、不要なIPマルチキャストパケットをネットワークに流入させないようにするために、IPマルチキャストのフレーム入力情報から検索したフロー処理装置200に該当外部ノード300接続ポートを入力ポートとし、かつ、該当VLAN IDと該当IPマルチキャストグループをレイヤ3宛先アドレスとを定めたマッチ条件と、フレーム破棄(Drop)をアクションとしたIPMC送信者用フローエントリ450(Drop)を設定する(ステップS3088)。また、このIPMC送信者用フローエントリ450(Drop)には、IPマルチキャストの未受信時間もしくは設定一定時間のタイムアウト値を設定する。これにより、タイムアウト成立時に、フロー処理装置に、自動的にIPマルチキャスト送信者用フローエントリ450を削除させ、制御装置100に削除通知を行わせることができる。
再度、図21を参照して、ステップS308以降の処理を説明する。ステップS308が終了すると、制御装置100は、IPマルチキャストグループ情報記憶部114とIPマルチキャスト受信者情報記憶部112とIPマルチキャスト送信者情報記憶部113とを照合し、宛先IPマルチキャストグループに対するIPマルチキャスト送信者情報とIPマルチキャスト送信者情報が新規にそろったかチェックする(ステップS311)。ここで、宛先IPマルチキャストグループに対するIPマルチキャスト送信者情報とIPマルチキャスト送信者情報が新規にそろっていない場合、制御装置100は、以降の処理を省略する(図21のエンド)。
このように、制御装置100は、IPマルチキャストグループ宛でWell Known以外の入力フレームを受信しても、ステップS3088で説明したような不要なIPマルチキャストパケットがフローネットワークへ流入しないようにしたり、通信が成立しないIPマルチキャストパケットの受信のための不要なフローエントリの設定を省略する。これにより、フローエントリ資源を無駄に消費せず、最適化な処理が実現されている。
一方、ステップS311で、IPマルチキャスト送信者情報とIPマルチキャスト送信者情報が新規にそろった場合、制御装置100は、IPマルチキャストグループ情報記憶部114に、IGMPのIPマルチキャストグループを登録する(ステップS313)。
図25は、図21のステップS313の詳細を表した流れ図である。図25を参照すると、まず、制御装置100は、フロー処理装置200に、該当外部ノード300接続ポートを入力ポートとし、かつ該当VLAN IDをマッチ条件としたIPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450(Drop)が設定済みであるか否かを確認する。IPマルチキャスト送信者用フローエントリ450(Drop)が設定済みである場合、制御装置100は、IPマルチキャスト送信者用フローエントリ450(Drop)を削除する。(ステップS3131)。
次に、制御装置100は、該当仮想ネットワーク500のIPマルチキャストグループに対して一意となるようなマルチキャストラベルIDを割り当てる(ステップS3132)。本実施形態では、BCドメインIDと重複しないよう、マルチキャストラベルIDとして65536以上の値を割り当てるものとする。
次に、制御装置100は、受信者外部NW端点503におけるフローエントリ設定処理を行う(ステップS3133)。
図23は、図21のステップS3133の詳細を表した流れ図である。図23を参照すると、まず、制御装置100は、IPマルチキャストグループ情報記憶部114を参照し、受信者外部NW端点503が所属する仮想ネットワークのIPマルチキャストグループが登録済みか否かをチェックする(ステップS3091)。IPマルチキャストグループ情報記憶部114に該当エントリが登録されていない場合、IPマルチキャスト送信者が未登録なので、制御装置100は、以降の処理を省略する(エンド)。
ステップS3133の処理においては、IPマルチキャストグループ情報記憶部114に常に該当エントリが登録済みであるので、ステップS3092以降の処理が実行される。制御装置100は、マッピング情報記憶部109を検索し受信者外部NW端点503に対応するフロー処理装置200と、その外部ノード300接続ポートおよびVLAN IDを検索する(ステップS3092)。前記検索の結果、該当するマッピング情報がない場合、追加すべき受信者ではないので、制御装置100は、以降の処理を省略する(エンド)。
S3092の検索の結果、受信者外部NW端点503に対応するフロー処理装置200と、その外部ノード300接続ポートおよびVLAN IDが見つかった場合、フロー制御装置100は、フローエントリ記憶部107を参照して、該当するフロー制御装置200に、IPマルチキャストグループのIPマルチキャスト受信者用フローエントリが設定済みか否かを確認する(ステップS3093)。前記確認の結果、IPマルチキャスト受信者用フローエントリが設定されていない場合、該当フロー制御装置200に受信者は接続されていないので、制御装置100は、以降の処理を省略する(エンド)。
一方、該当するフロー制御装置200に、IPマルチキャスト受信者用フローエントリが設定されている場合、制御装置100は、さらに、外部ノード300接続ポートおよびVLAN IDがIPマルチキャスト受信者用フローエントリの出力先外部NW端点として登録済みか否かを確認する(ステップS3094)。前記確認の結果、外部ノード300接続ポートおよびVLAN IDがIPマルチキャスト受信者用フローエントリの出力先外部NW端点として登録されている場合、制御装置100は、以降の処理を省略する(エンド)。
一方、前記確認の結果、外部ノード300接続ポートおよびVLAN IDがIPマルチキャスト受信者用フローエントリの出力先外部NW端点として登録されていない場合、制御装置100は、当該IPマルチキャスト受信者用フローエントリ452のアクションに、VLAN ID変更処理と外部ノード300接続ポートからのフレーム出力処理を追加する(ステップS3095)。また、該当フロー処理装置200にIPマルチキャストグループのIPMC送信者用フローエントリ450がある場合、制御装置は、IPマルチキャスト送信者用フローエントリ450にも同様なアクション追加する。
さらに制御装置100は、ステップS3094で更新したフローエントリ452とフローエントリ450を該当フロー処理装置200に設定する(ステップS3096)。
再度、図22を参照して、ステップS3133以降の処理を説明する。ステップS3133が終了すると、制御装置100は、送信者外部NW端点503へのフローエントリ設定処理を行う(ステップS3134)。ステップS3134の処理詳細は、図22と同様であるので、説明を省略する。
再度、図21を参照して、ステップS303でフロー処理装置200から送信された入力フレーム情報がIGMP Reportである場合の処理について説明する。制御装置100は、フロー処理装置200から送信された入力フレーム情報がIGMP Reportであると判断した場合、マッピング情報記憶部109を検索し、入力フレーム情報からIGMP Reportを入力した外部ノード300接続ポートとVLAN IDに対応する外部NW端点503を取得する。取得した外部NW端点503がIPマルチキャスト受信者情報記憶部112にIPマルチキャストパケットの宛先のIPマルチキャストグループの受信者として登録されていない場合、制御装置100は、受信者として外部NW端点503を登録する(ステップS305)。さらに、制御装置100は、受信者外部NW端点503のフロー処理装置へのフローエントリ設定処理を行う(ステップS309)。S309の処理詳細は、図23に示した内容と同じであるので説明を省略する。
上記ステップS309の終了後、制御装置は、図21のステップS311以降の処理を行う。図21のステップS311以降の処理も説明済みであるので、説明を省略する。
続いて、ステップS303でフロー処理装置200から受信した入力フレーム情報がIGMP Leaveである場合の処理について説明する。制御装置100は、フロー処理装置200から送信された入力フレーム情報がIGMP Leaveと判断した場合、マッピング情報記憶部109を検索し、IGMP Leaveを入力した外部ノード300接続ポートとVLAN IDから対応する外部NW端点503を取得する。取得した外部NW端点503がIPマルチキャスト受信者情報記憶部112にIPマルチキャストパケットの宛先のIPマルチキャストグループの受信者として登録されている場合、制御装置100は、受信者の外部NW端点503の登録解除を行う(ステップS306)。さらに、制御装置100は、受信者外部NW端点503を削除するためのフローエントリ設定処理を行う(ステップS310)。
図24は、図21のステップS310の詳細を表した流れ図である。図24を参照すると、まず、制御装置100は、IPマルチキャストグループ情報記憶部114を検索し、受信者外部NW端点503が所属する仮想ネットワーク500のIPマルチキャストグループが登録済みか否かを確認する(ステップS3101)。前記確認の結果、該当IPマルチキャストグループが登録されていない場合、削除が必要なフローエントリは設定されていないため、制御装置100は、以降の処理を省略する(エンド)。
一方、前記確認の結果、該当IPマルチキャストグループが登録済みである場合、制御装置100は、マッピング情報記憶部109を検索し、受信者外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートおよびVLAN IDを検索する(ステップS3102)。
前記検索の結果、受信者外部NW端点503に対応するエントリが存在した場合、制御装置100は、フローエントリ記憶部108を検索し、該当するフロー処理装置200にIPマルチキャストグループのIPマルチキャスト受信者用フローエントリ452が設定されているか否かを確認する(ステップS3103)。ステップS3102で受信者外部NW端点503に対応するエントリが存在しない場合や、該当するフロー処理装置200にIPマルチキャストグループのIPMC受信者用フローエントリ452が設定されていない場合、削除が必要なフローエントリは設定されていないため、制御装置100は、以降の処理を省略する(エンド)。
ステップS3103の確認の結果、該当するフロー処理装置200にIPマルチキャストグループのIPマルチキャスト受信者用フローエントリ452が設定されている場合、制御装置100は、ステップS3103で検出したIPマルチキャスト受信者用フローエントリ452の出力先として受信者外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートとVLAN IDとの組みが設定されているか否かを確認する(ステップS3104)。ここで、出力先に該当する組み合わせが設定されていない場合、IPマルチキャスト受信者用フローエントリ452のアクションリストからの削除は不要であるため、制御装置100は、以降の処理を省略する(エンド)。
一方、IPマルチキャスト受信者用フローエントリ452の出力先に受信者外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートとVLAN IDとの組み合わせが設定済みである場合、制御装置100は、該当フロー処理装置200の該当IPマルチキャストグループのIPMC送信者用フローエントリ450のアクションから外部NW端点503用のVLANID変更と出力先外部ノード300接続ポートを削除し、フロー設定装置200に、削除後のフローエントリ450を設定する(ステップS3105)。なお、該当フロー処理装置に、該当IPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450が存在しない場合は何もしなくてよい。
さらに、制御装置100は、IPマルチキャスト受信者用フローエントリ452のアクションから、VLAN ID変更と、出力先に指定された外部ノード300接続ポートを削除する。さらに、制御装置100は、前記削除後のアクションの出力先が0個になるかチェックする(ステップS3106)。
前記チェックの結果、アクションの出力先が0個の場合、制御装置100は、フロー処理装置200上のIPマルチキャストグループのIPマルチキャスト受信者用フローエントリ452を削除する(ステップS3107)。IPマルチキャスト受信者用フローエントリ452を削除した場合、その後、該当するフレームは、図4~図6のtable3のフローエントリ405~407のマッチ条件に一致し廃棄されることになる。これより、以降、フロー処理装置200が外部ノード300接続ポートに、該当フレームを出力することはなくなる。
一方、ステップS3106のチェックの結果、アクションの出力先が0個でない場合、制御装置100は、フロー処理装置200に、ステップ3105で生成したIPマルチキャストグループのIPマルチキャスト受信者用フローエントリ452を設定し更新する(ステップS3108)。
再度、図21を参照して、ステップS310以降の処理を説明する。以上のステップS310の処理終了後、制御装置100は、宛先IPマルチキャストグループに対するIPマルチキャスト受信者(外部NW端点)が0となったか否かを確認する(ステップS312)。前記確認の結果、宛先IPマルチキャストグループに対するIPマルチキャスト受信者(外部NW端点)が0個でなければ、制御装置100は、以降の処理を省略する(エンド)。
前記確認の結果、宛先IPマルチキャストグループに対するIPマルチキャスト受信者(外部NW端点)が0個となっている場合、制御装置100は、該当IPマルチキャストグループのIPマルチキャスト受信者がいなくなっており、ネットワークにIPマルチキャストパケットを流入させるのは不要なため、IPマルチキャストグループ情報記憶部114から該当宛先IPマルチキャストグループを削除する処理を行う(ステップS314)。
図26は、図21のステップS314の詳細を表した流れ図である。図26を参照すると、まず、制御装置100は、送信者外部NW端点503を削除するためのフローエントリ削除処理を行う(ステップS3141)。
図27は、図26のステップS3141の詳細を表した流れ図である。図27を参照すると、制御装置100は、マッピング情報記憶部109を検索し、送信者外部NW端点503に対応するフロー処理装置200と外部ノード300接続ポートとVLAN IDとの組み合わせを検索する(ステップS3531)。
前記検索の結果、マッピング情報記憶部109に送信者外部NW端点503に対応するエントリが登録済みの場合、制御装置100は、IPマルチキャストグループ情報記憶部114を検索し、外部NW端点503が所属する仮想ネットワーク500のIPマルチキャストパケットの宛先IPマルチキャストグループが登録済みか否か確認する(ステップS3532)。
前記確認の結果、IPマルチキャストグループ情報記憶部114に宛先IPマルチキャストグループが登録済みの場合、制御装置100は、フローエントリ記憶部107を参照し、検索したフロー処理装置200に該当外部ノード300接続ポートを入力ポートとし、かつ該当VLAN IDをマッチ条件としたIPマルチキャストグループのIPマルチキャスト送信者用フローエントリ450が設定されているか否かを確認する(ステップS3533)。ここで、検索したフロー処理装置200にIPマルチキャスト送信者用フローエントリ450が設定されていない場合、制御装置100は、以降の処理を省略する(エンド)。
前記確認の結果、検索したフロー処理装置200にIPマルチキャスト送信者用フローエントリ450が設定されている場合は、制御装置100は、フロー処理装置200に設定されているIPMC送信者用フローエントリ450をフロー処理装置200から削除する(ステップS3534)。さらに、制御装置100は、フロー処理装置200から、IPマルチキャストグループとVLANIDとをマッチ条件としたIPMCカプセル化フローエントリ451を削除する(ステップS3535)。
一方、ステップS3531でマッピング情報記憶部109に送信者外部NW端点503に対応するエントリが登録されていなかった場合、及び、ステップS3532でIPマルチキャストグループ情報記憶部114に宛先IPマルチキャストグループが未登録の場合、制御装置100は、次の処理を行う。制御装置100は、不要なIPマルチキャストパケットをフローネットワークに流入させないようにするため、IPマルチキャストパケットのフレーム入力情報から検索したフロー処理装置200に、該当外部ノード300接続ポートを入力ポートとし、かつ該当VLAN IDとレイヤ3宛先アドレスが該当IPマルチキャストグループであることをマッチ条件とし、アクションをフレーム破棄(Drop)とするIPマルチキャスト送信者用フローエントリ450(Drop)が設定済みであるか否かを確認する。前記確認の結果、該当フロー処理装置200に、IPマルチキャスト送信者用フローエントリ450(Drop)が設定済みの場合、制御装置100は、そのフローエントリを削除する(ステップS3536)。
以上のステップS3141の終了後の処理について、再度図26を参照して説明する。ステップS3141が終了すると、制御装置100は、受信者外部NW端点503を削除するためのフローエントリ設定処理を実施する(ステップS3142)。ステップS3142の処理詳細については、図24で説明済みであるので、説明を省略する。
ステップS3141が終了すると、制御装置100は、割り当てられていたマルチキャストラベルIDを解放(返却)し、別な仮想ネットワーク500のIPマルチキャストグループに対して割り当て可能とする(ステップS3143)。
再度、図21を参照して、ステップS303で、制御装置100が、フロー処理装置200から受信した入力フレーム情報がIGMP Queryと判断した場合の処理について説明する。フロー処理装置200から受信した入力フレーム情報がIGMP Queryと判断した場合、制御装置100は、入力フレーム情報からIGMP Queryを入力した外部ノード300接続ポートとVLAN IDに向けて、IGMP Reportを送信し、マルチキャストルータ(送信者)がIPマルチキャストパケット送信を停止しないようにする(ステップS307)。
次に、図21において、フローエントリのタイムアウトが発生した場合の処理について説明する。フロー処理装置200に設定しているフローエントリのマッチ条件に一致するフレームを一定時間受信しないとタイムアウトが発生し、フロー処理装置200は、制御装置100に対しフローエントリの削除通知を送信する(ステップS351)。
削除通知を受けたフローエントリがIPマルチキャスト受信者用フローエントリ452である場合、制御装置100は、IPマルチキャスト送信者情報記憶部113に格納されている宛先IPマルチキャストグループの受信者リストから該当のフレーム入力外部NW端点503を削除する(ステップS352)。
その後、制御装置100は、送信者外部NW端点503を削除するためのフローエントリ削除処理を実施する(ステップS353)。ステップS353の詳細は、図27に記述しており、図26のステップS3141と同様であるので説明を省略する。
ステップS353の終了後、制御装置100は、送信者外部NW端点を削除したことにより、該当宛先IPマルチキャストグループに対するIPマルチキャスト送信者情報が0になったか否かを確認する(ステップS354)。ステップS354の確認の結果、該当宛先IPマルチキャストグループに対するIPマルチキャスト送信者情報が0になっている場合、制御装置は、すでに説明済みのステップS314以降の処理を実行する。
ここで、以上の処理によって動的に設定されるIPマルチキャスト用のフローエントリについて説明する。図16に示すように、IPマルチキャストグループアドレスMC1の送信者が外部NW端点503Aであり、受信者の外部NW端点が503B、503C、503Dである場合について説明する。外部NW端点503Bと503Cはどちらも外部ノード300Bに接続されているが、外部ノード300BがVLAN ID 20/30と複数の通信を行うホストとしてもよいし、外部ノード300Bがスイッチで配下にVLAN ID20のホストとVLAN ID30のホストが複数接続されていてもよい。
図28は、図16のIPマルチキャストグループアドレスMC1構成時にフロー処理装置200A、200B、200Cに設定されるフローエントリと、これらフローエントリにより設定されているIPマルチキャスパケットMC1の転送経路と、IPマルチキャストグループMC1に対するマルチキャストラベルID(ID=65536)を示している。フロー処理装置200間の転送経路は、図4で示された転送経路と入力ポートが外部ノード300A接続ポートであることにより決定される。前述のとおり、IPマルチキャストパケットMC1を外部ノード300接続ポートとVLAN IDにて規定されるポートに出力するかどうかは受信者の有無に依存する。
図29は、図28のフロー処理装置200Aへのフローエントリ設定の内容の例である。IPMC送信者用フローエントリ450A-MC1には、外部ノード300A接続ポートから入力されるuntagged vlanかつIPマルチキャストグループMC1宛のパケット、即ち、IPマルチキャストパケットMC1を検出した際に、table 2へ送信するアクションが設定されている。フロー処理装置200AにはIPマルチキャストMC1パケット受信者がいないために、IPMC送信者用フローエントリ450A-MC1のアクションにフロー処理装置200A内の出力先の設定はなされていない。また、図29のIPMCカプセル化フローエントリ451A-MC1は、ノード200A接続ポートからuntagged VLANとして入力されるフレームに付与されるVLAN ID 10とレイヤ3宛先アドレスがIPマルチキャストグループMC1であることを条件とするマッチ条件と、IPマルチキャストグループMC1に対応するマルチキャストラベルID65536を付与したShimヘッダを挿入した後にフロー処理装置200B接続ポートとフロー処理装置200C接続ポートへの出力を行うアクションとが規定されている。以降は、図4のBCMCベースフローエントリに従い、転送が行われる。
図30は、図28のフロー処理装置200Bへのフローエントリ設定の内容の例である。IPMC受信者用フローエントリ452B-MC1は、フロー処理装置200A接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信されることで参照されるフローエントリである。図30の例では、MPLSラベルがIPマルチキャストグループMC1に対応する65536である場合に、shimヘッダを削除した後に、受信フレームのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、VLAN ID 20に変更してから、外部ノード300B接続ポートに出力するアクションと、前記フレームをVLAN ID 30に変更してから、外部ノード300B接続ポートと外部ノード300C接続ポート各々にパケットを出力するアクションとが規定されている。以上により、図28のフロー処理装置200B及び図16の外部NW端点503B、503Cからの出力が実現される。
図31は、図28のフロー処理装置200Cへのフローエントリ設定の内容の例である。IPMC受信者用フローエントリ452C-MC1は、フロー処理装置200A接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信されることで参照されるフローエントリである。図31の例では、MPLSラベルがIPマルチキャストグループMC1に対応する65536である場合に、shimヘッダを削除した後に、受信フレームのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、VLAN ID 20に変更してから、外部ノード300D接続ポートに出力するアクションが規定されている。また、図31の例では、受信者の存在しない外部ノード300E接続ポートへの出力は行わない。以上により、図28のフロー処理装置200C及び図16の外部NW端点503Dからの出力が実現される。
続いて、図17に示すように、IPマルチキャストグループアドレスMC2の送信者が外部NW端点503Dであり、受信者の外部NW端点が503B、503C、503Fである場合について説明する。
図32は、図17のIPマルチキャストグループアドレスMC2構成時にフロー処理装置200A、200B、200Cに設定されるフローエントリと、これらフローエントリにより設定されているIPマルチキャスパケットMC2の転送経路と、IPマルチキャストグループMC2に対するマルチキャストラベルID(ID=65537)を示している。フロー処理装置200間の転送経路は、図4で示された転送経路と入力ポートが外部ノード300C接続ポートであることにより決定される。前述のとおり、IPマルチキャストパケットMC2を外部ノード300接続ポートとVLAN IDにて規定されるポートに出力するかどうかは受信者の有無に依存する。また、図32の例では、外部ノード300B接続ポートに受信者が複数いるため出力先にVLAN ID20を付与したIPマルチキャストパケットMC1と、VLAN ID30を付与したIPマルチキャストパケットMC1の2つを送信する。
図33は、図32のフロー処理装置200Bへのフローエントリ設定の内容の例である。IPMC送信者用フローエントリ450B-MC2には、外部ノード300C接続ポートから入力されるVLAN ID=30かつIPマルチキャストグループMC2宛のパケット、即ち、IPマルチキャストパケットMC2を検出した際に、受信フレームのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、かつ、VLAN ID 20に変更してから、外部ノード300B接続ポートに出力するアクションと、前記フレームをVLAN ID 30に変更してから、外部ノード300B接続ポートへ出力するアクションと、table 2での処理を指示するアクションとが規定されている。IPMCカプセル化フローエントリ451B-MC2には、ノード200B接続ポートから入力されるフレームが、VLAN ID=30とレイヤ3宛先アドレスがIPマルチキャストグループMC2であることを条件とするマッチ条件と、IPマルチキャストグループMC2に対応するマルチキャストラベルID65537を付与したShimヘッダを挿入した後にフロー処理装置200A接続ポートへの出力を指示するアクションとが規定されている。以降は、図4のBCMCベースフローエントリに従い、転送が行われる。
IPMC受信者用フローエントリ452B-MC2は、フロー処理装置200A接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信された後に参照されるフローエントリである。IPMC受信者用フローエントリ452B-MC2の例では、MPLSラベルがIPマルチキャストグループMC2に対応する65537である場合に、shimヘッダを削除し、レイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、さらに、VLAN ID 20に変更してから外部ノード300B接続ポートに出力するアクションと、前記フレームをVLAN ID 30に変更してから、外部ノード300B接続ポートに出力するアクションとが規定されている。
なお、図33の例では、送信元が異なるIPアドレスなど別なフロー処理装置200の外部ノード300接続ポートがIPマルチキャスト送信者の外部NW端点となる場合のIPマルチキャストグループMC2の配信に必要となるため、IPマルチキャスト受信者用フローエントリ452B-MC2を設定している。IPマルチキャストパケットMC1宛のIPマルチキャスト送信者が1のみの場合は、IPマルチキャスト送信者用フローエントリ450B-MC2にて外部ノード300B接続ポートに出力するため、IPMC受信者用フローエントリ452B-MC2は設定不要となる。
図34は、図32のフロー処理装置200Cへのフローエントリ設定の内容の例である。IPMC受信者用フローエントリ452C-MC2は、フロー処理装置200A接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信された後に参照されるフローエントリである。図34の例では、MPLSラベルがIPマルチキャストグループMC2に対応する65537である場合に、shimヘッダを削除した後に、受信フレームのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、VLAN ID 20に変更してから、外部ノード300E接続ポートに出力するアクションが規定されている。なお、受信者の存在しない外部ノード300D接続ポートへの出力は行わない。以上により、図32のフロー処理装置200B、200C及び図17の外部NW端点503B、503C、503Fからの出力が実現される。
続いて、図18に示すように、IPマルチキャストグループアドレスMC3の送信者が外部NW端点503Bであり、受信者の外部NW端点が503A、503C、503Dである場合について説明する。
図35は、図18のIPマルチキャストグループアドレスMC3構成時にフロー処理装置200A、200B、200Cに設定されるフローエントリと、これらフローエントリにより設定されているIPマルチキャスパケットMC3の転送経路と、IPマルチキャストグループMC3に対するマルチキャストラベルID(ID=65538)を示している。フロー処理装置200間の転送経路は、図4で示された転送経路と入力ポートが外部ノード300B接続ポートであることにより決定される。前述のとおり、IPマルチキャストパケットMC3を外部ノード300接続ポートとVLAN IDにて規定されるポートに出力するかどうかは受信者の有無に依存する。また、図35において、入力ポートである外部ノード300B接続ポートにも受信者が存在する場合、IPMC送信者用フローエントリ450B-MC3にてVLANID=30に付け替えて出力する。
図36は、図35のフロー処理装置200Aへのフローエントリ設定の内容の例である。IPMC受信者用フローエントリ452A-MC3は、フロー処理装置200B接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信された後に参照されるフローエントリであり、MPLSラベルがIPマルチキャストグループMC3に対応する65538である場合に、shimヘッダを削除し、そのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、さらに、VLAN IDを削除してから、外部ノード300A接続ポートに出力するアクションが規定されている。
図37は、図35のフロー処理装置200Bへのフローエントリ設定の内容の例である。IPMC送信者用フローエントリ450B-MC3には、外部ノード300B接続ポートから入力されるVLAN ID=20かつIPマルチキャストグループMC3宛のパケット、即ち、IPマルチキャストパケットMC3を検出した際に、そのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、VLAN ID 30に変更してから、外部ノード300B接続ポートと外部ノード300C接続ポートに出力するアクションと、table 2での処理を指示するアクションとが設定されている。IPMCカプセル化フローエントリ451B-MC3には、ノード200B接続ポートから入力されるフレームについて、VLAN ID=20かつ、レイヤ3宛先アドレスがIPマルチキャストグループMC3であることをマッチ条件と、IPマルチキャストグループMC3に対応するマルチキャストラベルID65538を付与したShimヘッダを挿入してから、フロー処理装置200A接続ポートへの出力を指示するアクションとが規定されている。以降は、図4のBCMCベースフローエントリに従い、転送が行われる。IPMC受信者用フローエントリ452B-MC3は、フロー処理装置200A接続ポートから入力されるBCMCアドレス宛のパケットがtable 3へ送信された後に処理されるフローエントリである。図37の例では、MPLSラベルがIPマルチキャストグループMC3に対応する65538である場合に、shimヘッダを削除し、そのレイヤ2宛先アドレスに仮想L3SW501Aのレイヤ2アドレスを設定し、さらに、そのVLAN IDを30に変更してから、外部ノード300B接続ポートと外部ノード300C接続ポートに出力するアクションが規定されている。以上により、図35のフロー処理装置200A、200B及び図18の外部NW端点503A、503C、503Dからの出力が実現される。
以上説明したように、本実施形態によれば、フロー処理装置200にて送信者外部NW端点503が所属する仮想L2SW502A内の外部NW端点503だけでなく、仮想ネットワーク500A内の別な仮想L2SW502Bに所属する受信者外部NW端点503にてIPマルチキャスト受信が可能となる。すなわち仮想L3SW501Aを超えたIPマルチキャスト受信が可能となる。
また、本実施形態によれば、仮想ネットワーク500Aと別な仮想ネットワーク(例えば、仮想ネットワーク500B)にて同じIPマルチキャストグループアドレスMC1を用いた場合に、仮想ネットワーク500AのMC1用のIPマルチキャスト受信者外部NW端点503とIPマルチキャスト送信者外部NW端点503と、仮想ネットワーク500BのMC1用のIPマルチキャスト受信者外部NW端点503とIPマルチキャスト送信者外部NW端点503を独立して管理し、IPマルチキャスト配信することが可能となる。
また、本実施形態によれば、IPマルチキャストパケットをフロー制御装置100に入力する外部NW端点503(送信者)とIPマルチキャストパケット受信者ノード300が接続する外部NW端点503(受信者)の両方が揃うことを条件に、IPMCカプセル化フローエントリ451と、IPMC受信者用フローエントリ452とを設定することにしているため、フローエントリ資源の節約をすることが可能である。
また、本実施形態では、送信者のみの場合に、IPMC送信者用フローエントリ450として、Drop用のフローエントリを設定している。これにより、受信者が不在で配信不要なIPマルチキャストパケットの入力を阻止し、帯域を使用しないようにすることが可能となる。
また、本実施形態の仮想ネットワーク500AのIPマルチキャストグループMC1にて説明したように、通信開始時や通信停止時に動的に制御が必要なフロー処理装置200上のフローエントリ数は、送信者外部NW端点503がある場合には2、受信者外部NW端点503が一個でもある場合は1、送信者や受信者の外部NW端点503がない場合には0、送信者外部NW端点503と受信者外部NW端点503がある場合は3と、少ない。このため、高速なIPマルチキャスト通信の開始と停止が可能である。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
例えば、上記した実施形態では、IPv4を利用しているものとして説明したが、IPv6への適用も可能である。同様に、IPマルチキャストグループアドレスの書式(含むWell Known)もIPv4からIPv6へ変更することが可能である。また、IPマルチキャスト用デフォルトフローエントリとしては、IGMPではなくMLDを指定するため、ICMPv6であることとメッセージタイプを参照することをマッチ条件とすることで対応可能である。
また、マルチキャストラベルIDの割り当て単位とIPマルチキャストグループ情報記憶部114への記憶単位を変更することで、IPマルチキャストグループ毎だけでなくIPマルチキャストグループと送信元IPアドレスの組み合わせであるIPマルチキャストソースグループごとの制御も実施可能である。この結果、IGMPv3やMLDv2のSSM(Source Specific Multicast)にも対応可能となる。
また、上記した実施形態では、受信者の削除トリガとして、IGMP Leaveの受信を例示したが、IGMP Reportの受信タイムアウトをトリガとすることも可能である。また、受信ノードが外部NW端点503ごとに1台でないことを考慮しIGMP Leave受信時に他のホストが存在しないかIGMP Queryを送信し、応答がタイムアウトした際に外部NW端点503を出力先から削除するようにしてもよい。
また、上記した実施形態では、送信者外部端点503と受信者外部端点503を動的に検出するものとして説明したが、これらが固定的に設定されている場合でも、当然に、マルチキャストラベルIDによる仮想L3SW501を超えた通信を実現可能である。
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点による制御装置参照)
[第2の形態]
第1の形態の制御装置において、
前記装置制御部は、
前記IPマルチキャストグループの送信ノード(送信者)からのIPマルチキャストパケットを受信する入口側のフロー処理装置に実行させる処理内容を規定した送信者用制御情報と、前記IPマルチキャストパケットへの所定のヘッダの付加又はヘッダの書き換えを行ってから、前記経路に沿ってIPマルチキャストパケットを転送させる転送用制御情報と、前記経路の出口側のフロー処理装置において、所定のヘッダの削除又はヘッダの復元を行ってから、受信ノードにIPマルチキャストパケットを転送させる受信者用制御情報と、を生成し、前記経路上のフロー処理装置にそれぞれ設定する制御装置。
[第3の形態]
第1又は第2の形態の制御装置において、
前記入口側のフロー処理装置に、前記送信ノードと同一のIPマルチキャストグループの受信ノード(受信者)が接続されている場合、前記送信者用制御情報に、前記入口側のフロー処理装置に、前記受信ノードへのパケット転送を指示する内容を追加する制御装置。
[第4の形態]
第1から第3いずれか一の形態の制御装置において、
さらに、ブロードキャストパケットへの所定のヘッダの付加又はヘッダの書き換えにより、VLANを単位とするブロードキャストを実行する機能を備える制御装置。
[第5の形態]
第1から第4いずれか一の形態の制御装置において、
前記フロー処理装置に、前記IPマルチキャストパケットの送信元アドレスを所定の仮想ルータのアドレスに書き換えてから転送させる制御装置。
[第6の形態]
(上記第2の視点による通信システム参照)
[第7の形態]
(上記第3の視点によるフロー処理装置の制御方法参照)
[第8の形態]
(上記第4の視点によるプログラム参照)
なお、上記第6~第8の形態は、第1の形態と同様に、第2~第5の形態に展開することが可能である。
[第1の形態]
(上記第1の視点による制御装置参照)
[第2の形態]
第1の形態の制御装置において、
前記装置制御部は、
前記IPマルチキャストグループの送信ノード(送信者)からのIPマルチキャストパケットを受信する入口側のフロー処理装置に実行させる処理内容を規定した送信者用制御情報と、前記IPマルチキャストパケットへの所定のヘッダの付加又はヘッダの書き換えを行ってから、前記経路に沿ってIPマルチキャストパケットを転送させる転送用制御情報と、前記経路の出口側のフロー処理装置において、所定のヘッダの削除又はヘッダの復元を行ってから、受信ノードにIPマルチキャストパケットを転送させる受信者用制御情報と、を生成し、前記経路上のフロー処理装置にそれぞれ設定する制御装置。
[第3の形態]
第1又は第2の形態の制御装置において、
前記入口側のフロー処理装置に、前記送信ノードと同一のIPマルチキャストグループの受信ノード(受信者)が接続されている場合、前記送信者用制御情報に、前記入口側のフロー処理装置に、前記受信ノードへのパケット転送を指示する内容を追加する制御装置。
[第4の形態]
第1から第3いずれか一の形態の制御装置において、
さらに、ブロードキャストパケットへの所定のヘッダの付加又はヘッダの書き換えにより、VLANを単位とするブロードキャストを実行する機能を備える制御装置。
[第5の形態]
第1から第4いずれか一の形態の制御装置において、
前記フロー処理装置に、前記IPマルチキャストパケットの送信元アドレスを所定の仮想ルータのアドレスに書き換えてから転送させる制御装置。
[第6の形態]
(上記第2の視点による通信システム参照)
[第7の形態]
(上記第3の視点によるフロー処理装置の制御方法参照)
[第8の形態]
(上記第4の視点によるプログラム参照)
なお、上記第6~第8の形態は、第1の形態と同様に、第2~第5の形態に展開することが可能である。
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、100 制御装置
11 送信者管理部
12 受信者管理部
13 経路計算部
14 装置制御部
20、200、200A~200C フロー処理装置
101 フロー処理装置通信部
102 物理ネットワーク管理部
103 仮想ネットワーク管理部
104 装置情報記憶部
105 物理トポロジ情報記憶部
106 ベースフローエントリ記憶部
107 フローエントリ記憶部
108 フロー記憶部
109 マッピング情報記憶部
110 仮想トポロジ情報記憶部
111 仮想ノード情報記憶部
112 IPマルチキャスト受信者情報記憶部
113 IPマルチキャスト送信者情報記憶部
114 IPマルチキャストグループ情報記憶部
201 フローエントリ検索部
202 フローエントリ記憶部
203 フローエントリ処理部
204 フロー処理部
205 制御装置通信部
300A~300E 外部ノード
400、400A~400C ベースフローエントリ
450A-MC1~450A-MC3 IPマルチキャスト送信者用フローエントリ
451A-MC1~451A-MC3 IPマルチキャストカプセル化フローエントリ
452A-MC1~452A-MC3 IPマルチキャスト受信者用フローエントリ
500、500A 仮想ネットワーク
501A 仮想レイヤ3スイッチ(仮想L3SW)
502A、502B 仮想レイヤ2スイッチ(仮想L2SW)
503A~503F 仮想ネットワーク端点(仮想NW端点)
11 送信者管理部
12 受信者管理部
13 経路計算部
14 装置制御部
20、200、200A~200C フロー処理装置
101 フロー処理装置通信部
102 物理ネットワーク管理部
103 仮想ネットワーク管理部
104 装置情報記憶部
105 物理トポロジ情報記憶部
106 ベースフローエントリ記憶部
107 フローエントリ記憶部
108 フロー記憶部
109 マッピング情報記憶部
110 仮想トポロジ情報記憶部
111 仮想ノード情報記憶部
112 IPマルチキャスト受信者情報記憶部
113 IPマルチキャスト送信者情報記憶部
114 IPマルチキャストグループ情報記憶部
201 フローエントリ検索部
202 フローエントリ記憶部
203 フローエントリ処理部
204 フロー処理部
205 制御装置通信部
300A~300E 外部ノード
400、400A~400C ベースフローエントリ
450A-MC1~450A-MC3 IPマルチキャスト送信者用フローエントリ
451A-MC1~451A-MC3 IPマルチキャストカプセル化フローエントリ
452A-MC1~452A-MC3 IPマルチキャスト受信者用フローエントリ
500、500A 仮想ネットワーク
501A 仮想レイヤ3スイッチ(仮想L3SW)
502A、502B 仮想レイヤ2スイッチ(仮想L2SW)
503A~503F 仮想ネットワーク端点(仮想NW端点)
Claims (8)
- 配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理する送信者管理部と、
配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する受信者管理部と、
少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する経路計算部と、
前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する装置制御部と、
を備える制御装置。 - 前記装置制御部は、
前記IPマルチキャストグループの送信ノードからのIPマルチキャストパケットを受信する入口側のフロー処理装置に実行させる処理内容を規定した送信者用制御情報と、
前記IPマルチキャストパケットへの所定のヘッダの付加又はヘッダの書き換えを行ってから、前記経路に沿ってIPマルチキャストパケットを転送させる転送用制御情報と、
前記経路の出口側のフロー処理装置において、所定のヘッダの削除又はヘッダの復元を行ってから、受信ノードにIPマルチキャストパケットを転送させる受信者用制御情報と、
を生成し、前記経路上のフロー処理装置にそれぞれ設定する請求項1の制御装置。 - 前記入口側のフロー処理装置に、前記送信ノードと同一のIPマルチキャストグループの受信ノードが接続されている場合、前記送信者用制御情報に、前記入口側のフロー処理装置に、前記受信ノードへのパケット転送を指示する内容を追加する請求項2の制御装置。
- さらに、ブロードキャストパケットへの所定のヘッダの付加又はヘッダの書き換えにより、VLANを単位とするブロードキャストを実行する機能を備える請求項1から3いずれか一の制御装置。
- 前記フロー処理装置に、前記IPマルチキャストパケットの送信元アドレスを所定の仮想ルータのアドレスに書き換えてから転送させる請求項1から4いずれか一の制御装置。
- 配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理する送信者管理部と、
配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する受信者管理部と、
少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する経路計算部と、
前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する装置制御部と、
を備える制御装置と、前記制御装置から設定された制御情報に従って動作するフロー処理装置と、を含む通信システム。 - フロー処理装置を制御する制御装置が、
配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理するステップと、
配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理するステップと、
少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算するステップと、
前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定するステップと、
を備えるフロー処理装置の制御方法。 - フロー処理装置を制御する制御装置を構成するコンピュータに、
その記憶手段を用いて、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの送信ノードを管理する処理と、
その記憶手段を用いて、配下のフロー処理装置からの通知に基づいて、仮想ネットワーク上のIPマルチキャストグループの受信ノードを管理する処理と、
予め収集したフロー処理装置のトポロジ情報と、前記送信ノードと受信ノードとの位置情報に基づいて、少なくとも1組の送信ノードと受信ノードが存在するIPマルチキャストグループについて、IPマルチキャストの経路を計算する処理と、
前記計算した経路上のフロー処理装置に対し、前記経路に沿ってIPマルチキャストを転送させる制御情報を設定する処理と、を実行させるプログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2013-121952 | 2013-06-10 | ||
| JP2013121952 | 2013-06-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014199924A1 true WO2014199924A1 (ja) | 2014-12-18 |
Family
ID=52022220
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2014/065122 Ceased WO2014199924A1 (ja) | 2013-06-10 | 2014-06-06 | 制御装置、通信システム、中継装置の制御方法及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2014199924A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016042385A1 (ja) * | 2014-09-18 | 2016-03-24 | パナソニックIpマネジメント株式会社 | 制御装置およびプログラム |
| WO2016110897A1 (ja) * | 2015-01-09 | 2016-07-14 | 日本電気株式会社 | 通信システム、通信装置、通信方法および制御プログラム |
| WO2019150826A1 (ja) * | 2018-02-05 | 2019-08-08 | ソニー株式会社 | システムコントローラ、ネットワークシステム、及びネットワークシステムにおける方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006095391A1 (ja) * | 2005-03-04 | 2006-09-14 | Fujitsu Limited | パケット中継装置 |
| JP2007036961A (ja) * | 2005-07-29 | 2007-02-08 | Kddi Corp | ハンドオフを制御する無線アクセスネットワークシステム及びハンドオフ制御方法 |
| JP2010081471A (ja) * | 2008-09-29 | 2010-04-08 | Yokogawa Electric Corp | ネットワークシステム |
| JP2011101082A (ja) * | 2009-11-04 | 2011-05-19 | Yokogawa Electric Corp | 情報転送システム |
| WO2012090993A1 (ja) * | 2010-12-28 | 2012-07-05 | 日本電気株式会社 | 情報システム、制御装置、通信方法およびプログラム |
-
2014
- 2014-06-06 WO PCT/JP2014/065122 patent/WO2014199924A1/ja not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2006095391A1 (ja) * | 2005-03-04 | 2006-09-14 | Fujitsu Limited | パケット中継装置 |
| JP2007036961A (ja) * | 2005-07-29 | 2007-02-08 | Kddi Corp | ハンドオフを制御する無線アクセスネットワークシステム及びハンドオフ制御方法 |
| JP2010081471A (ja) * | 2008-09-29 | 2010-04-08 | Yokogawa Electric Corp | ネットワークシステム |
| JP2011101082A (ja) * | 2009-11-04 | 2011-05-19 | Yokogawa Electric Corp | 情報転送システム |
| WO2012090993A1 (ja) * | 2010-12-28 | 2012-07-05 | 日本電気株式会社 | 情報システム、制御装置、通信方法およびプログラム |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2016042385A1 (ja) * | 2014-09-18 | 2016-03-24 | パナソニックIpマネジメント株式会社 | 制御装置およびプログラム |
| JP2016063418A (ja) * | 2014-09-18 | 2016-04-25 | パナソニックIpマネジメント株式会社 | 制御装置およびプログラム |
| WO2016110897A1 (ja) * | 2015-01-09 | 2016-07-14 | 日本電気株式会社 | 通信システム、通信装置、通信方法および制御プログラム |
| WO2019150826A1 (ja) * | 2018-02-05 | 2019-08-08 | ソニー株式会社 | システムコントローラ、ネットワークシステム、及びネットワークシステムにおける方法 |
| JPWO2019150826A1 (ja) * | 2018-02-05 | 2021-01-14 | ソニー株式会社 | システムコントローラ、ネットワークシステム、及びネットワークシステムにおける方法 |
| US11516127B2 (en) | 2018-02-05 | 2022-11-29 | Sony Corporation | System controller, controlling an IP switch including plural SDN switches |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN104272679B (zh) | 通信系统、控制装置、通信方法以及记录介质 | |
| JP6418261B2 (ja) | 通信システム、ノード、制御装置、通信方法及びプログラム | |
| CN100379226C (zh) | 一种虚拟路由器方式的虚拟专用网络的组播方法 | |
| EP3764594B1 (en) | Network device management method, apparatus and system | |
| US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
| US9504016B2 (en) | Optimized multicast routing in a Clos-like network | |
| EP2494738A1 (en) | Method and apparatus for tracing a multicast flow | |
| EP2989755B1 (en) | Efficient multicast delivery to dually connected (vpc) hosts in overlay networks | |
| WO2016116939A1 (en) | Engines to prune overlay network traffic | |
| EP2810411A1 (en) | Control method, control apparatus, communication system, and program | |
| CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
| CN104734877B (zh) | 一种获取配置服务器信息的方法、装置及系统 | |
| JP6206493B2 (ja) | 制御装置、通信システム、中継装置の制御方法及びプログラム | |
| WO2014199924A1 (ja) | 制御装置、通信システム、中継装置の制御方法及びプログラム | |
| CN104579895B (zh) | 通过虚拟专用网传送组播消息的方法和装置 | |
| JP2015192391A (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: 14811687 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 14811687 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |