Abstract: In an open flow network it is specified which port number of which node device is connected to a terminal that is connected to a node device group using only the port number (port information) and the source MAC address (Source MAC) of a packet transmitted from a terminal. Specifically a node device compares a port number and source MAC address (Source MAC) pair of the packet sent from the terminal to the node device and a port number and MAC address information pair held in a pre stage search table and confirms agreement (a match). When there is no agreement (a match) the node device notifies a control device using an inquiry information (Packet in) function of overflow. Furthermore the node device compares the destination MAC address (Destination MAC) information of the packet and the MAC address information held in a post stage search table and confirms whether there is agreement (a match).
1. A network system, comprising: a node device configured to handle received packets in accordance with flow entries defining a rule and action for collectively controlling packets as a flow; and a controller setting said flow entries to said node device, wherein, when receiving a packet from a terminal, said node device notifies said controller of a set of a source MAC address information and a port number of said packet, and wherein said controller recognizes a current location of the terminal on a network based on the notification from said node device, the terminal being a source of said packet.
2. The network systemaccording to claiml, wherein said node device includes: means for comparing a set(s) of MAC address information and a port number which are held by said node device with a set of source MAC address information and a port number of said packet, and when the set (s) of the MAC address information and port number which are held by said node device does not match the set of the source MAC address information and port number of said packet, generating a first inquiry packet based on said packet to transmit said first inquiry packet to said controller; and means for comparing the MAC address information held by said node device with a destination MAC address information of said packet, and when the MAC address information held by said node device does not match the destination MAC address information of said packet, generating a second inquiry packet based on said packet to transmit said second inquiry packet to said controller, and wherein said controller includes: means for managing MAC address information of said terminal and a port number indicating a port connected to said terminal, based on contents of said first inquiry packet; and means for updating information held by said node device based on contents of said first and second inquiry packets.
3. The network systemaccording to claim2, wherein said node device further includes: means for comparing the set(s) of the MAC address information and port number which are held by said node device with the set of the source MAC address information and port number of said packet, and when the set (s) of the MAC address information and port number which are held by said node device matches the set of the source MAC address information and port number of said packet, comparing the MAC address information held by said node device with a destination MAC address information of said packet; and means for comparing the MAC address information held by said node device with the destination MAC address information of said packet and, when the MAC address information held by said node device matches the destination MAC address information, transferring said packet.
4. A node device, comprising: means for, when receiving a packet from a terminal, notifies a controller of a set of source MAC address information and a port number of said packet as current location information of the terminal on a network, the terminal being a source of said packet; and means for registering a flow entry defining a rule and action for collectively controlling said packet as a flow, under a control from said controller.
5. The node device according to' claim 4, further comprising: means for comparing a set(s) of MAC address information and a port number which are held by said node device with a set of source MAC address information and a port number of said packet, and when the set(s) of the MAC address information and port number which are held by said node device does not match the set of the source MAC address information and port number of said packet, generating a first inqairy packet based on said packet to transmit said first inquiry packet to said controller; and means for comparing the MAC address information held by said node device with a destination MAC address information of said packet, and when the MAC address information held by said node device does not match the destination MAC address information of said packet, generating a second inquiry packet based on said packet to transmit said second inquiry packet to said controller.
6. The node device according to claim 5, further comprising: means for comparing the set(s) of the MAC address information and port number which are held by said node device with the set of the source MAC address information and port number of said packet, and when the set (s) of the MAC address information and port number which are held by said node device matches the set of the source MAC address information and port number of said packet, comparing the MAC address information held by said node device with a destination MAC address information of said packet; and means for comparing the MAC address information held by said node device with the destination MAC address information of said packet and, when the MAC address information held by said node device matches the destination MAC address information, transferring said packet.
7. A connected terminal detection method, comprising: bya controller, setting flow entries defining a rule and action for collectively controlling packets as a flow to a node device; when said node device receives a packet from a terminal, notifying said controller of a set of a source MAC address information and port number of said packet; and by said controller, recognizing a current location ofthe terminal on a network based on the notification from said node device, the terminal being a source of said packet.
8. A recording medium storing a program which causes a node device to perform steps of: when receiving a packet from a terminal, notifying a controller of a set of source MAC address information and a port number of said packet as current location information of the terminal on a network, the terminal being a source of said packet; and registering a flow entry defining a rule and action for collectively controlling said packet as a flow, under a control from said controller.
9. The recording medium according to claim 8, wherein the programcause sthe node device toperform further steps of: comparing a set (s) of MAC aadress information and a port number which are held by said node device with a set of source MAC address information and a port number of said packet, and when the set (s) of the MAC address information and port number which are held by said node device does not match the set of the source MAC address information and port number of said packet, generating a first inquiry packet based on said packet to transmit said first inquiry packet to said controller; and comparing the MAC address information held by said node device with a destination MAC address information of said packet, and when the MAC address information held by saidnode device does not match the destinationMAC address information of said packet, generating a second inquiry packet basedon saidpackettotransmit said second inquiry packet to said controller.
10. The recording medium according to claim 9, wherein the program causes said node device to further perform steps of: comparing the set (s) of the MAC address information and port number which are held by said node device with the set of the source MAC address information and port number of said packet, and when the set(s) of the MAC address information and port number which are held by said node device matches the set of the source MAC address information and port number of said packet, comparing the MAC adaress information held by said node device with a destination MAC address information of said packet; and comparing the MAC address information held by said node device with the destination MAC address information of said packet and, when the MAC address information held by said node device matches the destination MAC address information, transferring said packet.
DESCRIPTION
Network System, Switch and
Connected Terminal Detection Method
Technical Field
[OOOl]
The present invention relates to a network system,
more particularly, to a network system which detects a
terminal connected to a switch.
Background Art
[0002]
Conventional network devices suffer from a problem
that they cannot be externally controlled to achieve
flexible control, such as load balancing and biasing.
Accordingly, an increase in the network size makes it
difficult tomonitor and improve the behavior ofthe system,
requiring a huge cost for changing the design and
configuration.
[0003]
As atechnique for solving such aproblem, anapproach
has been proposed in which the packet transfer function
and the route control function of network devices are
separated. If network devices are responsible for the
packet transfer function and a controller externally
provided separately from the network devices are
responsible for the control function, for example, this
allows the controller to perform centralized management
of packet transfers, enabling establishment of a flexible
network.
[0004]
[Explanation of CD-Separated Network]
As one of function-separated networks, a CD (C:
control plane / D: data plane)-separated network, in which
a controller provided on the control plane side controls
node devices provided on the data plane side, has been
proposed.
[0005]
One example of the CD-separated network is the
OpenFlow network, which uses an OpenFlow technology
achieving the route control of the network by controlling
switches from a controller. Details of the OpenFlow
technology is described in non-patent literature 1. It
should be noted that the OpenFlow network is merely one
example.
[0006]
[Explanation of OpenFlow network]
In an OpenFlow network, a controller such as an
OpenFlow controller (OFC) controls' the behavior of node
devices by operating flow tables of node devices such as
OpenFlowswitches (OFSs), where the flow tables are related
to the route control.
[0007]
The controller and the node devices are connectedvia
control channels (communication channels for control)
which are dedicatedlines or communication lines protected
by SSL (secure Socket Layer), called "secure channels".
The controller and the node devices exchanges OpenFlow
messages which are control messages complying (or
supporting) the OpenFlow protocol, via the control
channels.
[ 0 0 0 8 ]
Node devices in an OpenFlow network mean edge
switches and core switches which are provided in the
O p e n F l o w n e t w o r k a n d s u b j e c t e d t o control ofthe controller.
A series oftravels of packets from reception on an ingress
edge switch to output on an egress edge switch in the
OpenFlow network is called "flow." In the OpenFlow
network, communications are each recognized as an
end-to-end (E2E) flow, and the route control failure
recovery, load balancing and optimization are achieved in
units of flows.
[ 0 0 0 9 ]
A frame may be used in place of a packet. The
difference between the packet and the frame exists only
in the difference of the data unit handled by the protocol
(that is, the protocol data unit (PDU)). The packet is
the PDU of "TCP/IPU (transmission control protocol /
internet protocol). The frame is, on the other hand, the
PDU of the "Ethernet" (registered trademark).
[OOlO]
The flow table is a group of flow entries which each
define a set of an identification condition (or a rule)
identifying packets to be handled as a flow, statistic
information indicative ofthe number of matches of packets
to the rule and contents of processing (or an action) to
be performed on packets.
[0011]
The rules of the flow entries are defined by various
combinations using any or all of information of respective
protocol layers included in header regions (or fields) of
packets and distinguishable from one another. Possible
examples of information of respective protocol layers may
include a destination address, a source address, a
destination port and a source port. It should be
understood that the above-described addresses mean to
include a MAC address (media access control address) and
an IP address (internet protocol address). In addition to
the listed above, information of an ingress port may be
also used as the rule of a flow entry. It should be also
noted that a representation which represents some (or a.11)
ofthe values ofthe header regions of packet sto be handled
as a flow by using a regular expression, a wild card "*",
or the like may be set as the rule of a flow entry.
[0012]
The action of a flow entry indicates an operation,
such as "output to a specific port", "discard", and
" r e w r i t i n g of t h e h e a d e r " . When i d e n t i f i c a t i o n
i n f o r m a t i o n ( s u c h a s t h e o u t p u t p o r t number) i s i n d i c a t e d
i n t h e a c t i o n of a flow e n t r y , f o r example, t h e node d e v i c e
o u t p u t s t h e p a c k e t t o t h e r e l e v a n t p o r t ; when no
i d e n t i f i c a t i o n i n f o r m a t i o n of t h e o u t p u t p o r t i s i n d i c a t e d ,
t h e node d e v i c e d i s c a r d s t h e p a c k e t . I n a n o t h e r example,
when h e a d e r i n f o r m a t i o n i s i n d i c a t e d i n t h e a c t i o n of a
flow e n t r y , t h e node d e v i c e rewrites t h e h e a d e r of t h e
p a c k e t on t h e b a s i s of t h e h e a d e r i n f o r m a t i o n .
[0013]
A node d e v i c e p e r f o r m s t h e a c t i o n of a flow e n t r y on
a group of p a c k e t s ( a s e r i e s of p a c k e t s ) which match t h e
r u l e of t h e flow e n t r y . S p e c i f i c a l l y , when r e c e i v i n g a
p a c k e t , a node d e v i c e s e a r c h e s t h e flow t a b l e f o r a flow
e n t r y h a v i n g a r u l e which matches t h e h e a d e r i n f o r m a t i o n
of t h e r e c e i v e d p a c k e t . When s u c c e s s f u l l y f i n d i n g a flow
e n t r y h a v i n g t h e r u l e w h i c h m a t c h e s t h e h e a d e r i n f o r m a t i o n
of t h e r e c e i v e d p a c k e t , t h e node d e v i c e u p d a t e s t h e
s t a t i s t i c i n f o r m a t i o n of t h e flow e n t r y and p e r f o r m s an
o p e r a t i o n s p e c i f i e d a s t h e a c t i o n of t h e flow e n t r y on t h e
r e c e i v e d p a c k e t . When no flow e n t r y h a v i n g t h e r u l e which
matches t h e h e a d e r i n f o r m a t i o n of t h e r e c e i v e d p a c k e t i s
n o t found, t h e node d e v i c e d e t e r m i n e s t h e r e c e i v e d p a c k e t
a s t h e f i r s t p a c k e t , f o r w a r d s t h e r e c e i v e d p a c k e t ( o r a
copy t h e r e o f ) t o t h e c o n t r o l l e r i n t h e OpenFlow n e t w o r k ,
r e q u e s t s p a c k e t r o u t e c a l c u l a t i o n b a s e d on t h e s o u r c e and
d e s t i n a t i o n o f t h e r e c e i v e d p a c k e t , r e c e i v e s a m e s s a g e f o r
setting a flow entry as a response, and updates the flow
table.
[0014]
It should be noted that a default entry having a rule
which matches header information of all packets is
registered with a low priority in the flow table. When
no other flow entry which matches the received packet is
found, the receivedpacketmatches the default entry. The
action of the default entry is defined as "transmission
of inquiry information of the received packet to the
controller."
Citation List
Non-Patent Literature
[0015]
[Non-Patent Literature 1 1
"OpenFlow Switch Specification, Version 1.0.0",
[online], December 31, 2009, searched on March 23, 2011,
In the following, a description is given of a first
exemplary embodiment of the present invention with
reference to the attached drawings.
[0029]
[System Configuration]
With reference to Fig. 1, a description is given of
a configuration example of a network system according to
the first exemplary embodiment.
[0030]
The network system according to the first exemplary
embodiment of the present invention includes terminals 10
(10-i where i = 1 to n, n being arbitrary), node devices
20 (20-j where j =Itom, mbeing arbitrary) anda controller
30.
[0031]
[Details of Terminals]
Each terminal 10 (10-i, where i = 1 to n) is a terminal
connectable to a node device 20 (20-j, where j = 1 to m) .
[0032]
In this exemplary embodiment, a packet 50 is
transferred from the terminal 10-1 to the terminal 10-2
via the node devices 20-1 and 20-2.
[0033]
The terminal 10-1 is source terminal "A" which
transmitsthe packet. the terminallo-2, on the other hand,
is destination terminal "B" which receives the packet.
The packet 50 is a "packet with destination B and source
A."
[0034]
The "destination B" means that the destination is
terminal B and the MAC address of terminal B is specified
as the destination MAC address. The "source A" means that
the source is terminal A and the MAC address of terminal
A is specified as the source MAC address.
[0035]
It should be noted that each terminal 10 (10-i, where
i = 1 to n) may be a network device outside the OpenFlow
network (not supporting OpenFlow).
[0036]
[Details of Node Devices]
Each node device 20 (20-j, where j = 1 to m) is a node
device arranged on the network. Each node device 20 (20-j,
where j = 1 to m) operates as an OpenFlow switch (OFS) in
the OpenFlow network. Each node device 20 (20-j, where
j =Itom) transfers packets receivedtherebyinaccordance
with flow entries registered in its own flow table.
[0037]
Each node device 20 (20-j, where j = 1 to m) includes
a terminal location information comparator 21 and a flow
table comparator 22.
[0038]
The terminal location information comparator 21
performsterminallocationinformationcomparisonbyusing
MAC address information and port numbers. Specifically,
the terminal location information comparator 21 holds MAC
address information and a port number, and compares the
set of the MAC address information and port number held
therein with a set of the source MAC address information
and port number of a packet to be transferred. In this
exemplary embodiment, the terminal location information
comparator 21 is an L2 (layer 2) function block, that is,
an L2 block.
[0039]
The flow table comparator 22 performs comparison of
the flow table and flow information, which is performed
by a usual node device.
[0040]
[ D e t a i l s of C o n t r o l l e r ]
The c o n t r o l l e r 30 c o n t r o l s and manages t h e node
d e v i c e s a r r a n g e d o v e r t h e n e t w o r k . The c o n t r o l l e r 30
o p e r a t e s a s an OpenFlow c o n t r o l l e r (OFC) i n t h e OpenFlow
n e t w o r k . When d e t e c t i n g t h e node d e v i c e s 20-1 and 20-2,
t h e c o n t r o l l e r 30 c a l c u l a t e s a p a c k e t t r a n s f e r r o u t e on
t h e b a s i s o f t o p o l o g y i n f o r m a t i o n i n d i c a t i v e of t h e
c o n n e c t i o n s i n t h e n e t w o r k , a n d r e g i s t e r s f l o w e n t r i e s i n t o
t h e flow t a b l e s of t h e node d e v i c e s r e l a t e d t o t h e r o u t e .
The c o n t r o l l e r 30 t h e r e b y p e r f o r m s r o u t e c o n t r o l between
t h e node d e v i c e s 20-1 and 20-2.
[0041]
The c o n t r o l l e r 30 h a s aterminallocationinformation
management t a b l e 31.
[0042]
[ D e t a i l s of P a c k e t ]
The p a c k e t 50 is a p a c k e t t o be t r a n s m i t t e d t o a node
d e v i c e 20 ( 2 0 - j , where j = 1 t o m ) .
[0043]
I n q u i r y i n f o r m a t i o n ( p a c k e t - i n ) 51 is a c o n t r o l
message f o r r e q u e s t i n g t h e c o n t r o l l e r 30 f o r a r o u t e
c o n t r o l ( o r making an i n q u i r y a b o u t t h e t r a n s f e r r o u t e of
t h e p a c k e t 5 0 ) . T h e d a t a f o r m a t a n d c o n t e n t s o f t h e i n q u i r y
i n f o r m a t i o n ( p a c k e t - i n ) 51 a r e same a s t h o s e of i n q u i r y
i n f o r m a t i o n ( p a c k e t - i n ) t r a n s m i t t e d t o t h e c o n t r o l l e r w h e n
a m i s m a t c h o c c u r s i n a u s u a l flow t a b l e s e a r c h ; i n f o r m a t i o n
for identification (or a flag) is attachedwiththeinquiry
information (packet-in) 51.
[0044]
When receiving the packet 50, for example, the
terminal location information comparator 21 compares the
MAC address information held in the terminal location
information comparator 21 and the port number associated
w i t h t h e M A C a d d r e s s i n f o r m a t i o n , with the set ofthe source
MAC address information and port number of the packet 50
to be transferred and, when a mismatch occurs, generates
the inquiryinformation (packet-in) 5lbased on the packet
50 to transmit the inquiry information (packet-in) 51 to
the controller 30.
[0045]
Inquiry information (packet-in) 52 is a control
message for requesting the controller 30 for a route
control (or making an inquiry about the transfer route of
the packet 50). The difference between the inquiry
information (packet-in) 52 and usual inquiry information
(packet-in) exists only in information for identification
(or the flag) ; the data format and contents of the inquiry
information (packet-in) 52 are basically same as those of
usual inquiry information (packet-in).
[0046]
For example, the flow table comparator 22 compares
MAC address information stored in the flow entries of the
flow table with the destination MAC address information
of the packet 50 to be transferred, and, when a mismatch
occurs, generates the inquiry information (packet-in) 52
based on the packet 50 to transmit the inquiry information
(packet-in) 52 to the controller 30.
[0047]
In this exemplary embodiment, the controller 30
defines connection ports by which node devices are
connected as inside ports 23. Also, the controller 30
defines a connection port of a node device, by which the
node device and aterminal is connected, as an outside port
24.
[0048]
The controller 30 recognizes a terminal 10-1 which
is newly connected to the node device 20-1, on the basis
of the contents of the inquiry information (packet-in) 51
received from the node device 20-1. Specifically, the
controller 30 obtains the MAC address information of the
terminal 10-1 and the port number of the port connected
to the terminal 10-1 from the contents of the inquiry
information (packet-in) 51, and updates the terminal
location information management table 31. It should be
noted that the port connected to the terminal 10-1 is an
outside port 24, inevitably.
[0049]
The controller 30 rewrites the table of each node
device 20 (20-j, where j = 1 to m) for received packets,
on the basis of the contents of the terminal location
information management table 31.
[0050]
[Internal Configuration of Node Devices]
With reference to Fig. 2, a description is given of
the internal configuration of each node device 20 (20-j,
where j = 1 to m) in the present exemplary embodiment.
[0051]
Each node device 20 (20-j, where j = 1 to m) includes
the terminal location information comparator 21 and the
flow table comparator 22.
[0052]
The terminal location information comparator 21 has
a MAC & port information (terminal location information)
table 211.
[0053]
The MAC & port information table 211 stores therein
t h e M A C a d d r e s s i n f o r m a t i o n h e l d b y t h e n o d e device 20 (20-j,
where j = 1 to m) and the port number associated with this
MAC address information. In this exemplary embodiment,
the MAC & port information table 211 is used as a
preliminary search table which is searched before a flow
table 221. It should be noted that the MAC & port
information table 211 may be considered as a sort of flow
table which defines identification conditions (or rules)
by sets of MAC address information and port numbers.
[0054]
The flow table comparator 22 has a flow table 221.
[0055]
The flow table 221 is a flow table in the OpenFlow
network. In this exemplary embodiment, the flow table 221
is a final search table, which is searched after the MAC
& port information table 211.
[0056]
In this exemplary embodiment, the flow table 221 is
only required to be registered with flow entries which
define identification conditions (or rules) by only
destination MAC addresses, since the terminal location
information comparator 21 performs a search for terminal
location information.
[0057]
This allows largely reducing information of the flow
entries registered in each flow table 221.
[0058]
[Comparison Contents of Terminal Location Information]
With reference to Fig. 3, a description is given of
details of comparison contents of terminal location
information.
[0059]
The MAC & port information table 211, which is held
by the terminal location information comparator 21,
includes regions (or fields) storing MAC address
information 2111 and the port numbers 2112.
[00601
The packet 50 has a region storing the source MAC
address information 501 and the port number 502 in the
header region.
[0061]
When the packet comes in the node device 20-1, the
node device 20-1 compares the contents of the MAC & port
information table 211 with the contents of the packet 50.
[0062]
In this operation, the node device 20-1 compares sets
of the MAC address information 2111 stored in the MAC &
port information table 211 and the port number 2112
associated with the MAC address information 2111, with the
set of the source MAC address information 501 and the port
number 502, which are held by the packet 50, with respect
to the port and the MAC.
[0063]
The node device 20-1 performs flow table comparison,
when the contents of the MAC & port information table 211
matches the contents of the packet 50 as a result of the
comparison.
[0064]
When the contents of the MAC & port information table
211does not match the contents ofthe packet 50 as a result
of the comparison, the node device 20-1 starts an L2
learning function.
[0065]
In other words, the MAC & port information table 211
is used as a table which holds a set(s) of the MAC address
information of aterminalconnectedtothe node device 20-1
and the port number of the port connected to the terminal,
as terminal location information.
[0066]
In this exemplary embodiment, the controller 30 can
determine that the attribute of the port which receives
the packet 50 is an outside port as well as an ingress port,
in response to the reception of the inquiry information
(packet-in) 51 generated upon a mismatch in this
comparison.
[0067]
Also, the controller 30 can manage the terminal
location information on the basis of only two sorts of
information: the source MAC address information 501 and
the port number 502 of the packet 50.
[0068]
[Terminal Location Information]
With reference to Fig. 4, a description is given of
an example ofthe terminal location informationmanagement
table 31 contained by the controller 30.
[0069]
The terminal location information management table
31 has regions storing node device information 311,
terminal MAC information 312 and port numbers 313.
[0070]
The node device information 311is a region into which
identification information of node devices connected to
terminals are written.
i 0 0 7 1 1
The terminal MAC information 312 is a region into
whichinformationofMACaddresses ofthe terminals (source
MAC addresses) are written.
[ 0 0 7 2 ]
The port number 313 is a region into which the port
numbers of the node devices connected to the terminals are
written.
[ 0 0 7 3 ]
Presented here is one example in which the inquiry
information (packet-in) 5 1 , which is generated when a
terminal location information comparison results in a
mismatch, is managed by the controller 3 0 .
[ 0 0 7 4 ]
The controller 30 receives the inquiry information
(packet-in) 51 from the node device 2 0 - 1 and registers the
information of the terminal into the terminal location
information table 31 on the basis of the contents of the
inquiry information (packet-in) 5 1 .
[ 0 0 7 5 ]
In this operation, the controller 30 writes
identification information of the node device connected
to the terminal into the node device information 3 1 1 on
the basis of the contents of the inquiry information
(packet-in) 5 1 , writes the source MAC address information
of the terminal into the terminal MAC information 3 1 2 , and
writes the port number of the node device connected to the
terminal into the port number 3 i 3 .
[ 0 0 7 6 ]
[Configuration of System using the Present Exemplary
Embodiment]
With reference to Fig. 5, a description is given of
a configuration example of a system using the present
exemplary embodiment.
[ 0 0 7 7 ]
Let us assume that each node device 20 ( 2 0 - j , where
j = 1 to m) has not transmitted any broadcast packets and
nothing is written into the flow table 2 2 1 .
[ 0 0 7 8 ]
This systemincludesterminals 1 0 - 1 , 1 0 - 2 , 1 0 - 3 , 1 0 - 4 ,
node devices 2 0 - 1 , 2 0 - 2 , 2 0 - 3 , 20-4 and a controller 3 0 .
[ 0 0 7 9 ]
It shouldbe notedthat the terminals 1 0 - 1 , 1 0 - 2 , 1 0 - 3
and 10-4 correspond to the terminals 1 0 ( 1 0 - i , where i =
1 to n) illustrated in Fig. 1.
[ 0 0 8 0 ]
It should be also noted that the node devices 2 0 - 1 ,
2 0 - 2 , 20-3 a n d 2 0 - 4 correspondtothenodedevices 20 ( 2 0 - j ,
where j = 1 to m) illustrated in Fig. 1.
[ 0 0 8 1 ]
The controller 30 managesthe node devices 2 0 - 1 , 2 0 - 2 ,
2 0 - 3 and 2 0 - 4 .
[ 0 0 8 2 ]
The controller 30 has aterminallocationinformation
management table 31.
[0083]
The controller 30 defines a connection port by which
node devices are connected as an inside port23 and defines
a connection port of a node device by which the node device
and a terminal is connected as an outside port 24.
[0084]
The nodedevice 20-1is c o n n e c t e d t o t h e t e r m i n a l 1 0 - 1
on port 1 and to the terminal 10-3 on port 2.
[0085]
The node device 20-2 is c o n n e c t e d t o t h e t e r m i n a l 1 0 - 2
on port 1 and to the terminal 10-4 on port 2.
[0086]
Ports land 2 are both outside ports on the respective
node devices 20-1 and 20-2.
[0087]
In this example, the controller 30 determines the
locations at which node devices are connected, defines the
determined locations as inside ports 23, and manages the
determined locations as management information.
[0088]
On the basis of this management information, the
controller 30 suppresses inquiry information (packet-in)
generated when a terminal location information comparison
performed on an inside port 23 results in a mismatch.
[0089]
For example, the controller 30 may be configured to
register a set of a port number of an inside port 23 and
almighty MAC address information using a wild card or the
like in the MAC & port information table 211 in the node
device 20-1. In this case, the node device 20-1 is
unconditionally switched to a process of the flow table
comparator 22 for a packet received on the inside port 23,
regardless of the source MAC address.
[0090]
When the MAC & port information table 211 in the node
device 20-1 is a sort of flow table, the controller 30 may
register a flow entry with the lowest priority, the flow
entry defining a set of a port number of an outside port
24 and almighty MAC address information using a wild card
or the like as a rule and defining transfer of inquiry
information to the controller 30 as an action. When the
source MAC address information of a packet received on the
outside port 24 is not registered, since this implies that
onlythe above-described flow entry is registered, the node
device 20-1 stores information of the present packet into
inquiry information (packet-in) and transfers the inquiry
information (packet-in) to the controller 30.
[0091]
In this example, when a packet is transmitted from
the terminal 10-1, which is connected to the node device
20-1, to the terminal 10-4, which is connected to the node
device 20-2, the node device 20-1 performs terminal
location information comparison for the packet, which
comes from the terminal 10-1 via the outside port 24; when
the terminal location information comparison results in
a mismatch, the node device 20-1 stores information of the
packet into inquiry information (packet-in) and transfers
the inquiry information (packet-in) to the controller 30.
[0092]
The controller 30 registers information of the
terminal 10-1 into the terminal location information
management table 31 on the basis of the information of the
transferred inquiry information (packet-in), and
registers a flow entry including the location of the
terminal 10-1 (the set of the MAC address information and
the port number) into the flow table 221ofthe node device
20-1.
[0093]
When another packet is transmitted fromthe terminal
10-1, the packet comes in the node device 20-1 via the
outside port 24.
[0094]
The terminal location information comparison results
in a match, since the node device 20-1 already has the flow
table registeredwithlocation information ofthe terminal
10-1. The node device 20-1 then searches the flow table
221, and if there is a matching flow entry, transfers the
packet tothe nodedevice 20-2inaccordancewiththe action
defined in the matching flow entry.
[0095]
In this operation, terminal location information
comparison is also performed for transfers among node
devices; however, the controller 30 performs inside port
management of each node device to suppress generation of
inquiry information (packet-in). In other words, inquiry
information (packet-in) is not generated in terminal
location information comparison for transfers among node
devices.
[0096]
The node device 20-2 transfers the received packet
to the terminal 10-4 as a result of the terminal location
information comparison and flow table comparison.
[0097]
[Connected Terminal Detection Process]
With reference to Fig. 6, a description is given of
the operation performed in a connected terminal detection
process according to the present exemplary embodiment.
[0098]
(1)Step SlOl
The controller 30 first calculates the connection
ports of node devices on the basis of the previous route
control, defines connection ports by which node devices
are connected an inside ports 23, and defines the
connection ports of node devices by which the node devices
and terminals are connected as outside ports 24, allowing
distinguishing the connection ports among node devices
from the connection ports between node devices and
terminals. Each node device 20 (20-j, where j = 1 to m)
then starts a normal operation.
[0099]
(2) Step S102
Whenapacket50 is transmitted fromtheterminallo-1
to the terminal 10-2, the terminal location information
comparator 21 of the node device 20-1 compares the MAC &
port information table 211 in the terminal location
information comparator 21 with the packet 50 by the
comparison method illustrated in Fig. 3, to check whether
the contents of the MAC & port information table 211 match
the contents of the packet 50. Specifically, the terminal
location information comparator 21 compares a set(s) of
the MAC address information stored in the MAC & port
information table 211 and the port number associated with
this MAC address information with the source MAC address
information and the port number ofthe packet received from
the terminal 10-1, to check whether they match each other.
[OlOO]
(3) Step S103
When the comparison results in a match, the terminal
location information comparator 21 forwards the packet 50
to the flow table comparator 22.
[ 0 10 1 ]
(4) Step S104
When the comparison results in a mismatch, the
terminal location information comparator 21 ii~corporates
information of the packet 50 into lnquiry information
(packet-in) 51 and transmits the inquiry information
(packet-in) 51 to the controller 30. In this operation,
the terminal location information comparator 21 may
temporarily stores the packet 50.
[0102]
(5) Step S105
The controller 30 registers information indicative
of which port of which node device the terminal 10-1 is
connected to, into the terminal location information
management table 31, on the basis of the information of
the packet 50 incorporated in this inquiry information
(packet-in) 51.
[0103]
(6) Step S106
Also, the controller 30 registers a new set of MAC
address information and a port number into the MAC & port
information table 211ofthe node device 20-1, on the basis
of the terminal location information of the terminal
location informationmanagement table 31. In this example,
when the registration is completed, the controller 30
transmits the packet 50 to the node device 20-1 with the
original header informationon thebasis ofthe information
of the packet 50 incorporated in the inquiry information
(packet-in) 51. If the registration is not done, the
packet 50 may not be transmitted to the node device 20-1.
[ 0 1 0 4 ]
( 7 ) Step ,5107
The terminal location information comparator 2 1
transfers the packet 50 in response tothe above-described
registration to the flow table comparator 2 2 . In this
example, the terminal location information comparator 2 1
transfers the packet 50 received from the controller 30
to the flow table comparator 2 2 . It should be noted that,
if the terminal location information comparator 2 1
temporarily stores the packet 5 0 , the terminal location
information comparator 2 1 may transfer the
temporarily-stored packet 50 to the flow table comparator
22 in response tothe registration fromthe controller 3 0 .
In this case, if the above-described registration is not
performed, the terminal location information comparator
2 1 may discard the temporarily-stored packet 50 after a
predetermined period expires.
[OlOS]
( 8 ) Step S108
When receiving the packet 50 from the terminal
location information comparator 2 1 , the flow table
comparator 22 searchesthe f l o w t a b l e 2 2 1 c o n t a i n e d t h e r e i n
to check whether any flow entry in the flow table 2 2 1
matches the packet 5 0 . Specifically, the flow table
comparator 22 compares the MAC address information stored
in each flow entry of the flow table 2 2 1 with the
destinationMAC address information ofthe packet received
from the terminal 10-1 to check whether the destination
MAC address information of the received packet matches any
flow entry ofthe flow table 221. It should be noted that,
in an actual implementation, the flow table comparator 22
compares the "set of the MAC address information and port
number" stored in each flow entry of the flow table 221
with the "set of the destination MAC address information
and output port number" of the packet received from the
terminal 10-1 to check whether the set of the destination
MAC address information and the output port number of the
received packet matches any flow entry of the flow table
221.
[0106]
(9) Step S109
When the comparison results in a match with any flow
entry of the flow table 221, the flow table comparator 22
outputs the packet 50 to an inside port 23 in accordance
with the action of the matching flow entry, and transfers
the packet 50 to the terminal 10-2.
[0107]
(10) Step SllO
When the comparison does not result in a match with
any flow entries of the flow table 221, the flow table
comparator 22 incorporates information of the packet 50
into inquiry information (packet-in) 52 and transmits the
inquiry information (packet-in) 52 to the controller 30.
In this operation, the flow table comparator 22 may
temporarily store the packet 50.
[OlOS]
(11) Step Slll
The controller 30 calculates a transfer route on the
basis of the information of the packet 50 incorporated in
this inquiry information (packet-in) 52, and registers a
flow entry which indicates the destination MAC address
information of the packet 50 and orders to transfer the
packet 50 to a predetermined inside port 23, into the flow
table 221 of each of the node devices 20 (20-j, where j
= 1 to m) on the route. The controller 30 may transmit
the packet 50 to the node device 20-1 on the basis of the
information of the packet 50 incorporated in the inquiry
information (packet-in) 52.
[0109]
(12) Step S112
The flow table comparator 22 outputs the packet 50
to the inside port 23 in accordance with the action of the
flow entry registered in the flow table 221 to transfer
the packet 50 to the terminal 10-2. In this operation,
the flow table comparator 22 may output the packet 50
received from the controller 30 or the packet 50
temporarily stored therein to the inside port 23 to
transfer the packet 50 to the terminal 10-2. It should
be noted that, if the flow entry registration is not
performed, the flow table comparator 22 may discard the
temporarily stored packet 50 after a predetermined period
expires.
[OllO]
[Feature of the Present Exemplary Embodiment]
In the present exemplary embodiment, a node device
compares MAC address information held therein and a port
number associated therewith with the source MAC address
information and port number of a packet, and when they do
not match, transmits inquiry information (packet-in) to
a controller.
[ 0 11 1 ]
The controlleraccumulatesthelocationofaterminal
from this inquiry information (packet-in) and registers
a flow entry including the terminal location into a flow
table of the node device.
[0112]
Accordingly, the location of a terminal connected to
a node device can be determined based only on the source
MAC address information and port number of a packet.
[ 0 11 3 ]
This allows specifying the location of the terminal
by the controller, even when the terminal moves.
[0114]
Also, in the present exemplary embodiment, in which
the terminal location can be specified, the controller can
select the route on the basis of the terminal information,
allowing flexible selection of the route.
[0115]
Also, in the present exemplary embodiment, the
controller can manage the terminal location information
from information of inquiry information (packet-in)
generated when terminal location information comparison
results in a mismatch, and use the managed information as
the basis of the route selection.
[0116]
In the following, a description is given of a second
exemplary embodiment of the present invention. In the
second exemplary embodiment of the present invention, an
OpenFlow transfer process is performed as usual,
independently of generation of inquiry information
(packet-in), when terminal location information
comparison results in a mismatch.
[0117]
[System Configuration]
With reference to Fig. 7, a description is given of
a configuration example of a network system according to
the second exemplary embodiment of the present invention.
[0118]
The network system according to the second exemplary
embodiment of the present invention includes terminals 10
(10-i, where i = 1 to n), node devices 20 (20-j, where j
= 1 to m) and a controller 30.
[0119]
The terminals 10 (10-i, where i = 1 to n), the node
devices 20 (20-j, where j = 1 to m) and the controller 30
are basically same as those illustrated in Fig. 1.
[0120]
In the present exemplary embodiment, when comparison
of terminal location information results in a mismatch,
the terminal location information comparator 21ofthenode
device 20-1 copies a packet 50 (a packet of destination
B and source A) and generates inquiry information
(packet-in) 51 incorporating the copy packet 53.
[0121]
The controller 30 first calculates the connection
ports of node devices on the basis of the previous route
control and defines the connection ports as inside ports
23. The controller 30 thereby suppresses generation of
inquiry information (packet-in) 51, even when terminal
location information comparison results in a mismatch on
a connection port by which node devices are connected.
Each node device 20 (20-j, where j = 1 to m) then starts
a normal operation.
[0122]
When a packet 50 is transmitted fromtheterminal lo-1
to the terminal 10-2, the node device 20-1 performs
terminal location information comparison for the packet
received from the terminal 10-1; if the terminal location
information comparison results in a mismatch, the node
device 20-lcopiesthepacket50 (the packet of destination
B and source A) to be stored, and generates inquiry
information (packet-in) 51incorporating the copy packet.
[0123]
The controller 30 registers information indicative
of which port of which node device the terminal 10-1 is
connected to, into the terminal location information
management table 31, on the basis of the information of
the packet 50 incorporated in this inquiry information
(packet-in) 51.
[0124]
The controller 30 rewrites the flow table 221 of the
node device 20-1 for the received packet, on the basis of
the terminal location information management table 31.
[0125]
It should be noted that, in the present exemplary
embodiment, the controller 30 updates the flow table 221;
the controller 30 does notupdatetheMAC &port information
table 211 in response to the inquiry information
(packet-in) 51. In other words, the controller 30
registers a flow entry including a set of the MAC address
information and the port number into the flow table 221.
[0126]
After the terminal location information comparison,
the terminal location information comparator Zlofthenode
device 20-1 searches the flow table 221, and if any flow
entry in the flow table 221 matches the contents of the
packet 50, transfers the packet 50 to the terminal 10-2
in accordance with the transfer route of the controller
30.
[0127]
The flow table comparator 22 of the node device 20-1
searches the flow table, and if it results in a mismatch
with the flow table, generates inquiry information
(packet-in) 52 which is transmitted to the controller 30.
[0128]
As thus described, in the present exemplary
embodiment, the node device 20-1 unconditionally searches
the flow table 221 upon the reception of the packet 50,
regardless of whether the terminal location information
comparison results in a match or a mismatch, and performs
a transfer process of the packet 50.
[0129]
Specifically, when transmitting the inquiry
information (packet-in) 51 to controller 30, the terminal
location information comparator 21ofthe node device 20-1
copies the packet 50 (the packet with destination B and
source A) and transmits the inquiry information
(packet-in) 51 incorporating the copy packet 53 to the
controller 30. At the same time of or in parallel with
this process, the node device 20-1 transfers the packet
50 to the flow table comparator 22.
[0130]
[Internal Configuration of Node Devices]
With reference to Fig. 8, a description is given of
the internal configuration of each node device 20 (20-j,
where j = 1 to m) in the present exemplary embodiment.
[0131]
The internal configuration of each node device 20
(20-j, where j = 1 to m) is basically same as that
illustrated in Fig. 2.
In Fig. 8, the node device 20 (20-j, j = 1 to m)
performs an OpenFlow transfer process as usual when
terminal location information comparison results in a
mismatch, even if inquiry information (packet-in) 51 is
generated.
[0133]
The terminal location information comparator 21
compares the contents of the MAC & port information table
211 with the contents of the packet 50.
[0134]
When the contents of the MAC & port information table
211do not match the contents ofthe packet 50, the terminal
location information comparator 21 copies the packet 50,
generates inquiry information (packet-in) 51
incorporatingthe copypacket 53, and transmit s t he inquiry
information (packet-in) 51 to the controller 30.
[0135]
When the terminal location information comparator 21
completes the comparison of the contents of the MAC & port
information table 211 with the contents of the packet 50,
the procedure goes on to a process in the flow table
comparator 22, regardless ofthe result ofthe comparison.
[0136]
The flow table comparator 22 searches the flow table
221 and compares the contents of the flow table 221 with
the contents of the packet 50.
[0137]
When any flow entry in the flow table 221 matches the
contents of the packet 50, the flow table comparator 22
transfers the packet 50 in accordance with the action of
the matching flow entry.
[0138]
When no flow entry in the flow table 221 matches the
contents of the packet 50, the flow table comparator 22
transmits inquiry information (packet-in) 52 to the
controller 30.
[0139]
[Configuration of System using the Present Exemplary
Embodiment]
With reference to Fig. 9, a description is given of
a configuration example of a system using the present
exemplary embodiment.
[0140]
Let us assume that each node device 20 (20-j, where
j = 1 to m) has not transmitted any broadcast packets and
nothing is written into the flow table 221.
[0141]
This system includes terminals 10-1, 10-2, 10-3, 10-4,
n o d e d e v i c e s 2 0 - 1 , 2 0 - 2 , 2 0 - 3 , 20-4 a n d a c o n t r o l l e r 3 0 .
[ 0 1 4 2 ]
I t s h o u l d b e n o t e d t h a t t h e t e r m i n a l s 1 0 - 1 , 1 0 - 2 , 1 0 - 3
a n d 10-4 c o r r e s p o n d t o t h e t e r m i n a l s 1 0 ( 1 0 - i , w h e r e i =
1 t o . n ) i l l u s t r a t e d i n F i g . 7 .
[ 0 14 3 ]
I t s h o u l d b e a l s o n o t e d t h a t t h e n o d e d e v i c e s 20-1,
2 0 - 2 , 2 0 - 3 a n d 2 0 - 4 c o r r e s p o n d t o t h e n o d e d e v i c e s 20 ( 2 0 - j ,
w h e r e j = 1 t o m) i l l u s t r a t e d i n F i g . 7 .
[ 0 1 4 4 ]
The c o n t r o l l e r 30 m a n a g e s t h e n o d e d e v i c e s 2 0 - 1 , 2 0 - 2 ,
20-3 a n d 2 0 - 4 .
[ 0 1 4 5 ]
The c o n t r o l l e r 30 h a s aterminallocationinformation
management t a b l e 3 1 .
[ 0 1 4 6 ]
The c o n t r o l l e r 30 d e f i n e s a c o n n e c t i o n p o r t b y w h i c h
n o d e d e v i c e s are c o n n e c t e d as a n i n s i d e p o r t 2 3 a n d d e f i n e s
a c o n n e c t i o n p o r t o f a n o d e d e v i c e by w h i c h t h e n o d e d e v i c e
a n d a t e r m i n a l is c o n n e c t e d as a n o u t s i d e p o r t 2 4 .
[ 0 1 4 7 ]
The n o d e d e v i c e 2 0 - 1 i s c o n n e c t e d t o t h e t e r m i n a l 1 0 - 1
on p o r t 1 a n d t o t h e t e r m i n a l 1 0 - 3 on p o r t 2 .
[ 0 1 4 8 ]
The n o d e d e v i c e 20-2 is c o n n e c t e d t o t h e t e r m i n a l 1 0 - 2
on p o r t 1 a n d t o t h e t e r m i n a l 10-4 on p o r t 2 .
[ 0 1 4 9 ]
Ports 1 and 2 are both outside ports on each of the
node devices 20-1 and 20-2.
[0150]
In this example, the controller 30 determines the
locations at which node devices are connected, andmanages
the determined locations, defining the determined
locations as inside ports 23.
[0151]
On the basis of this managed information, the
controller 30 avoids registering the port number of the
inside port 23 of the node device 20-1 into the MAC & port
information table 211; the controller 30 suppresses
generation of inquiry information (packet-in) by
determining that a packet received on the inside port 23
is not subjected to terminal location information
comparison.
[0152]
In the following, a description is given of the case
in which a packet is transmitted from the terminal 10-1,
which is connected tothe node device 20-1, tothe terminal
10-4, which is connected to the node device 20-2.
[0153]
When terminal location information comparison
results in a mismatch for the packet 50 coming in from the
terminal lo-lviathe outside port 24, the node device 20-1
incorporates the packet 50 into inquiry information
(packet-in) 51 and transmits the inquiry information
(packet-in) 51 to the controller 30.
[0154]
When receiving the inquiry information (packet-in)
51 from the node device 20-1, the controller 30 registers
information ofthe terminallo-lintotheterminallocation
information management table 31 on the basis of the
contents of the inquiry information (packet-in) 51.
[0155]
The controller 30 also calculates a packet transfer
route on the basis of the contents of the inquiry
information (packet-in) 51, and registers a flow entry into
the flow table 221 of each node device 20 (20-j, where j
= 1 to m) related to the route.
[0156]
In this operation, the controller 30 transmits flow
modification information (FlowMod-Add) to not only the
flow table 221 of the node device 20-1 but also each of
the plurality of node devices 20 (20-j, where j = 1 to m)
connected to the controller 30 and registers a flow entry
based on the terminal location information into the flow
table 221 of each node device 20. The flow modification
information (FlowMod-Add) is a sort of OpenFlow messages.
[0157]
Specifically, the controller 30 transmits flow
modification information (FlowMod-Add) 54totheplurality
of node devices (node devices 20-2, 20-3 and 20-4)
connected to the controller 30 and thereby registers
(updates or reflects) a flow entry including the location
(terminal location information) of the terminal 10-1,
which is connected to the node device 20-1, into the flow
table 221 of each node device 20. The flow modification
information (FlowMod-Add) 54 is a control message for
achieving flow entry registration into the flow table 221
for each of the node devices 20-2, 20-3 and 20-4.
[0158]
After the completion of the above-described
registration, the controller 30 transmits flow
modification information (FlowMod-Add) 55 to the node
device 20-1, and thereby registers a flow entry including
the location (terminal location information) of the
terminal 10-1 into the flow table 221 of the node device
20-1. The flow modification information (FlowMod-Add) 55
is a control message for achieving flow entry registration
into the flow table 221 for the node device 20-1.
[0159]
When the terminal 10-1 then transmits another packet
50, the packet 50 comes in the node device 20-1 via the
outside port 24.
[0160]
Since the flow entry havingthe location information
of the terminal 10-1 has been already registered in the
flow table 221 in the node device 20-1, when the terminal
location information comparison results in that the packet
50 matches a flow entry, and the search of the flow table
results in a match, the packet 50 is transferred to the
node device 20-2 in accordance with the route control of
the controller 30.
[0161]
In this operation, a terminal location information
comparison is performed for a transfer between node
devices; however, the controller 30 suppresses generation
of inquiry information (packet-in) by performing inside
port management of each node device. In other words, the
controller 30 avoids generation of inquiry information
(packet-in) in the terminal location information
comparison for a transfer between node devices.
[0162]
The node device 20-2transfersthetransferredpacket
to the terminal 10-4 as a result of flow table comparison.
[0163]
In the following, a description is given of a third
exemplary embodiment of the present invention. In the
third exemplary embodiment of the present invention, the
OpenFlowtransferis achievedbyonlytheterminallocation
information comparison, withoutperformingthe flow table
comparison. Specifically, a terminal location
information comparison is performedbyusingtheMAC & port
information table and then destination comparison is
performed by using the MAC & port information table again
to achieve OpenFlow transfer.
[Internal Configuration of Node Devices]
With reference to Fig. 10, a description is given of
the internal configuration of the node devices 20 (20-i,
where i = 1 to n) in the present exemplary embodiment.
[0165]
When receiving a packet 50, a node device 20 (20-i,
where i = 1 to n) performs terminal location information
comparison, and if the terminal location information
comparison results in a match, achieves packet transfer
by using again the MAC & port information table 211, which
is already used for the comparison.
[0166]
For example, when the terminal location information
comparison results in a match, the node device 20 (20-i,
wherei=lto n) compares againtheMAC address information
of the MAC & port information table 211, which has been
used for the comparison, with the destination MAC address
of the packet; if a match occurs, the node device 20
performs packet transfer.
[0167]
Also, if a match does not occur, the node device 20
(20-i, where i = 1 to n) generates inquiry information
(packet-in) 51.
[0168]
When the terminal location information comparison
results in amismatch, for example, the node device 20 (20-i,
where i = 1 to n) generates the inquiry information
(packet-in) 51, and transmits the inquiry information
(packet-in) 51 to the controller 30.
[0169]
On the basis of the contents of the inquiry
information (packet-in) 51, the controller 30 updates the
MAC & port information table 211 of each node device 20
by transmitting flow modification information
(FlowMod-Add) 56 to each of the plurality of node devices
20 (20-j, where j = 1 to m) connected to the controller
30. The flow modification information (FlowMod-Add) 56
is a control message used for update of the MAC & port
information table 211 for each node device 20.
[0170]
[Comparison Contents of Terminal Location Information]
With reference to Fig. 11, a description is given of
details of contents of comparison of MAC &port information
table with the destination MAC address of a packet.
[0171]
After performing the terminal location information
comparison, the terminal location information comparator
21 compares the MAC & port information table 211 with the
packet 50 again.
[0172]
Specifically, the terminal location information
comparator 21 compares the set(s) of the MAC address
information 2111storedintheMAC & port information table
211andtheportnumber 2112 a s s o c i a t e d w i t h t h e M A C a d d r e s s
information 2111 with the source MAC address information
501 and the port number 502 which are held by the packet
50, with respect to the port and the MAC.
[0173]
When the comparison results in that the set (s) of the
MAC address information 2111 and the port number 2112
matches the set of the source MAC address information 501
and the port number 502, the terminal location information
comparator 21 compares the MAC address information 2111
ofthe MAC & port information table 211withthe destination
MAC address information 503 ofthepacket50, without using
the source MAC address information 501 and the port number
502, which are used in the terminal location information
comparison.
[0174]
When this comparison results in a match, the terminal
location information comparator 21 transfers the packet
50, using the port number 2112 associated with the MAC
address information 2111 in the MAC & port information
table 211 as the output port.
[0175]
It should be noted that the above-described
respective embodiments may be combined in implementation.
[0176]
In the following, a description is given of specific
hardware used for realizing the network system according
to the present invention.
[0177]
Assumed examples of the terminals and the controller
may include computers, such as PCs (personal computers),
appliances, thin client servers, work stations, main
frames, and super computers. Other examples of the
terminals may include IP telephones, cellular phones,
smart phones, smart books, car navigation systems,
portable game consoles, consumer game machines, portable
music players, handy terminals, gadgets (electrical
equipment), interactive televisions, digital tuners,
digital recorders, information home appliances, office
automation equipment, shop terminals, high-end copy
machines, and digital signage. It should be noted that
the terminals and the controller may be transponders or
peripheral device
[0178]
Possible examples of the node devices may include
network switches, routers, proxies, gateways, firewalls,
load balancers, packet shapers, security monitor and
controllers (SCADAs: supervisory control and data
acquisition), gatekeepers, base stations, access points
(APs), communication satellites (CSs) and computers
having multiple communication ports.
[0179]
The terminals, the node devices and the controller
may be an extension bard or a virtual machine (VM) built
on a physical machine. The terminals, node devices and
controller may be mounted on a moving body, such as a
vehicle, a ship and an aircraft.
[0180]
Although not shown, each of the terminals, the node
devices and the controller are realized by a processor
which operates based on programs to perform predetermined
processes, a memory storing the programs and various data
anda communication interface used for communications with
a network.
[0181]
Possible examples of the above-mentioned processor
may include CPUs (central processing unit),
microprocessors, microcontrollers and dedicated
semiconductor integrated circuits (ICs).
[0182]
Possible examples of the above-described memory may
include: semiconductor memory devices such as RAMS (random
access memories), ROMs (read only memories), EEPROMs
(electrically erasable and programmable read only
memories) and flash memories, auxiliary memory devices
such as HDDs (hard disk drives) and SSDs (solid state
drives), removable disks such as DVDs (digital versatile
disks), and recording media such as SD (secure digital)
memory cards. The above-described memory may be a buffer
or a register. Instead, the memorymaybe a storage device
which uses a DAS (direct attached storage), an FC-SAN
(fiber channel-storage area network), an NAS (network
attached storage), an IP-SAN (IP-storage area network) or
the like.
[0183]
The above-described processor and memory may be
monolithically integrated. For example, recently,
one-chip integration of microcomputers and the like has
become popular. Accordingly, in one possible
implementation, a one-chip microcomputer mounted on an
electronic device or the like may be provided with the
above-described processor and memory.
[0184]
Possible examples of the above-described interface
may include boards adapted to network communications
(mother boards and 1/0 boards), semiconductor integrated
circuits such as chips, network adaptors such as NICs
(network interface cards), similar extension cards,
communication apparatus such as antennas, and
communication ports of connectors and the like.
[0185]
Possible examples of the network may include the
Internet, LANs (local area networks), wireless LANs, WANs
(wide area networks), backbones, cable television (CATV)
lines, fixed-line telephone networks, cellular phone
networks, WiMAX (IEEE 802.16a), 3G (third generation),
lease lines, IrDA (infrared data association), Bluetooth
(registered trademark), serial communication lines and
data buses.
[0186]
It should be noted that internal components of each
of the terminals, the node devices, and the controller may
beeachamodule, a component, a dedicateddevice or a start
(call) program.
[0187]
It should be also noted that actual implementations
are not limited to these examples.
[0188]
As described above, the present invention relates to
a network system which detects a terminal connected to a
switch by using the OpenFlow function.
[0189]
In the present invention, a node device compares a
set of the source MAC address and port number of a packet
transmitted froma terminal tothe node device with a set(s)
of MAC address information and a port number which are held
in a preliminary search table (MAC & port information
table) to check whether they match each other.
[0190]
When this comparison does not result in a match, the
node device notifies a controller of the set of the source
MAC address information and port number held by the packet
by using the inquiry information (packet-in) function of
OpenFlow. The node device updates the preliminary search
table if necessary.
[0191]
If the load imposed on the controller is not cared,
the node device may unconditionally notify the controller
of the set of the source MAC address information and port
number held by every packet.
[0192]
Furthermore, the node device compares the
destination MAC address information of the packet with a
set(s) o f t h e M A C a d d r e s s i n f o r m a t i o n h e l d b y a final search
table (flow table) to check whether they match each other.
It should be noted that, in an actual implementation, the
node device may compares the set of the destination MAC
address and port number of the packet with the set (s) of
the MAC address information held by a final search table
to check whether they match each other.
[0193]
When this comparison does not result in a match, the
node device makes an inquiry about the action to be
performed on the packet by using the inquiry information
(packet-in) function of OpenFlow. The node device also
updates the final search table if necessary.
[0194]
It should be noted that a common table is used as the
preliminary search table and the final search table.
[0195]
This allows determining which port of which node
device a terminal connected to a group of node devices is
connected to, on the basis of only the source MAC address
and port number of a packet transmitted from the terminal.
[0196]
Also, by managing this terminal connection
information by the controller, a route control taking
account of the terminal location can be achieved.
[0197]
Also, data contents of the final search table (flow
table) can be degenerated.
[0198]
In the present invention, terminal location
information comparison is performed for terminal movement
detection, and when the terminal location information
comparison results in a mismatch, this triggers generation
of inquiry information (packet-in) incorporating the
packet; theinquiryinformation (packet-in) is transmitted
to a controller.
[0199]
Also, when the terminal location information
comparison results in a mismatch, the transmitted packet
is copied and the copy packet is incorporated in inquiry
information (packet-in); the inquiry information
(packet-in) is transmitted to the controller.
[0200]
Also, the inquiry information (packet-in) generated
in response to an event in which the terminal location
information comparison results in a mismatch is
distinguished from inquiry information (packet-in)
generated in response to a failure of a flow table search.
[0201]
Furthermore, in the present invention, the node
device notifies the controller of the location of the
t e r m i n a 1 c : o n n e c t e d t o t h e n o d e deviceby generating inquiry
information (packet-in). This allows the controller to
obtain the location information of the terminal connected
to the node device on the basis of the inquiry information
(packet-in) of the node device.
[0202]
Also, the notification of terminal location
information depends on attributes of ports. For example,
a connection port by which node devices are connected is
given an attribute of inside port, and a connection port
of a node device by which the node device and a terminal
are connected is given an attribute of outside port; this
suppresses generation of inquiry information (packet-in)
generated when terminal location information comparison
results in a mismatch.
[0203]
Also, terminal location information comparison is
performedinthe present invention. For example, a set(s)
of MAC address information and a port number which are held
by a node device is compared with a set of the source MAC
address information and port number of a packet,
respectively.
[0204]
Also, MAC & port information table transfer is
performed. For example, the MAC & port information table
is compared with the destination MAC address of a packet
and if the MAC & port information table matches the
destination MAC address of the packet, the packet is
transferred to the port associated with the MAC address
information in the MAC & port information table.
[0205]
Essentially, the present invention determines for a
incoming flow whether packets are to be received from the
source terminal by terminal location information
comparison (comparison using the set (s) of the source MAC
address and the port number), and determines whether
packets are to be transferred to the destination terminal
by flow table search (comparison using the destination MAC
address).
[0206]
Although exemplary embodiments of the present
invention are describedin detail in the above, the present
invention shall not be interpreted as being limited to the
above-described exemplary embodiments; the present
invention encompasses modifications which do not depart
from the substance of the present invention.
[0207]
The present application claims priority based on
Japanese Patent Application No. 2011-082765 and the
disclosure in Japanese Patent Application No. 2011-082765
is incorporated herein by reference.
WE CLAIM:
1. A network system, comprising:
a node device configured to handle received packets
in accordance with flow entries defining a rule and action
for collectively controlling packets as a flow; and
a controller setting said flow entries to said node
device,
wherein, when receiving a packet from a terminal,
said node device notifies said controller of a set of a
source MAC address information and a port number of said
packet, and
wherein said controller recognizes a current
location of the terminal on a network based on the
notification from said node device, the terminal being a
source of said packet.
2. The network systemaccording to claiml, wherein said
node device includes:
means for comparing a set(s) of MAC address
information and a port number which are held by said node
device with a set of source MAC address information and
a port number of said packet, and when the set (s) of the
MAC address information and port number which are held by
said node device does not match the set of the source MAC
address information and port number of said packet,
generating a first inquiry packet based on said packet to
transmit said first inquiry packet to said controller; and
means for comparing the MAC address information held
by said node device with a destination MAC address
information of said packet, and when the MAC address
information held by said node device does not match the
destination MAC address information of said packet,
generating a second inquiry packet based on said packet
to transmit said second inquiry packet to said controller,
and
wherein said controller includes:
means for managing MAC address information of said
terminal and a port number indicating a port connected to
said terminal, based on contents of said first inquiry
packet; and
means for updating information held by said node
device based on contents of said first and second inquiry
packets.
3. The network systemaccording to claim2, wherein said
node device further includes:
means for comparing the set(s) of the MAC address
information and port number which are held by said node
device with the set of the source MAC address information
and port number of said packet, and when the set (s) of the
MAC address information and port number which are held by
said node device matches the set of the source MAC address
information and port number of said packet, comparing the
MAC address information held by said node device with a
destination MAC address information of said packet; and
means for comparing the MAC address information held
by said node device with the destination MAC address
information of said packet and, when the MAC address
information held by said node device matches the
destination MAC address information, transferring said
packet.
4. A node device, comprising:
means for, when receiving a packet from a terminal,
notifies a controller of a set of source MAC address
information and a port number of said packet as current
location information of the terminal on a network, the
terminal being a source of said packet; and
means for registering a flow entry defining a rule
and action for collectively controlling said packet as a
flow, under a control from said controller.
5. The node device according to' claim 4, further
comprising:
means for comparing a set(s) of MAC address
information and a port number which are held by said node
device with a set of source MAC address information and
a port number of said packet, and when the set(s) of the
MAC address information and port number which are held by
said node device does not match the set of the source MAC
address information and port number of said packet,
generating a first inqairy packet based on said packet to
transmit said first inquiry packet to said controller; and
means for comparing the MAC address information held
by said node device with a destination MAC address
information of said packet, and when the MAC address
information held by said node device does not match the
destination MAC address information of said packet,
generating a second inquiry packet based on said packet
to transmit said second inquiry packet to said controller.
6. The node device according to claim 5, further
comprising:
means for comparing the set(s) of the MAC address
information and port number which are held by said node
device with the set of the source MAC address information
and port number of said packet, and when the set (s) of the
MAC address information and port number which are held by
said node device matches the set of the source MAC address
information and port number of said packet, comparing the
MAC address information held by said node device with a
destination MAC address information of said packet; and
means for comparing the MAC address information held
by said node device with the destination MAC address
information of said packet and, when the MAC address
information held by said node device matches the
destination MAC address information, transferring said
packet.
7. A connected terminal detection method, comprising:
bya controller, setting flow entries defining a rule
and action for collectively controlling packets as a flow
to a node device;
when said node device receives a packet from a
terminal, notifying said controller of a set of a source
MAC address information and port number of said packet;
and
by said controller, recognizing a current location
ofthe terminal on a network based on the notification from
said node device, the terminal being a source of said
packet.
8. A recording medium storing a program which causes a
node device to perform steps of:
when receiving a packet from a terminal, notifying
a controller of a set of source MAC address information
and a port number of said packet as current location
information of the terminal on a network, the terminal
being a source of said packet; and
registering a flow entry defining a rule and action
for collectively controlling said packet as a flow, under
a control from said controller.
9. The recording medium according to claim 8, wherein
the programcause sthe node device toperform further steps
of:
comparing a set (s) of MAC aadress information and a
port number which are held by said node device with a set
of source MAC address information and a port number of said
packet, and when the set (s) of the MAC address information
and port number which are held by said node device does
not match the set of the source MAC address information
and port number of said packet, generating a first inquiry
packet based on said packet to transmit said first inquiry
packet to said controller; and
comparing the MAC address information held by said
node device with a destination MAC address information of
said packet, and when the MAC address information held by
saidnode device does not match the destinationMAC address
information of said packet, generating a second inquiry
packet basedon saidpackettotransmit said second inquiry
packet to said controller.
10. The recording medium according to claim 9, wherein
the program causes said node device to further perform
steps of:
comparing the set (s) of the MAC address information
and port number which are held by said node device with
the set of the source MAC address information and port
number of said packet, and when the set(s) of the MAC
address information and port number which are held by said
node device matches the set of the source MAC address
information and port number of said packet, comparing the
MAC adaress information held by said node device with a
destination MAC address information of said packet; and
comparing the MAC address information held by said
node device with the destination MAC address information
of said packet and, when the MAC address information held
by said node device matches the destination MAC address
information, transferring said packet.