JP2014236433A - Communication apparatus, transmission control method and transmission control program - Google Patents
Communication apparatus, transmission control method and transmission control program Download PDFInfo
- Publication number
- JP2014236433A JP2014236433A JP2013118074A JP2013118074A JP2014236433A JP 2014236433 A JP2014236433 A JP 2014236433A JP 2013118074 A JP2013118074 A JP 2013118074A JP 2013118074 A JP2013118074 A JP 2013118074A JP 2014236433 A JP2014236433 A JP 2014236433A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- packet
- address
- interface
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、ネットワーク上でIP通信を行う通信装置、転送制御方法、及び転送制御プログラムに関し、特に、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方法を利用する通信装置、及びその通信装置に適用される転送制御方法、及び転送制御プログラムに関する。 The present invention relates to a communication apparatus that performs IP communication on a network, a transfer control method, and a transfer control program, and in particular, uses a network control method in units of flows that can select a network to be used for communication for each flow. The present invention relates to a communication device, a transfer control method applied to the communication device, and a transfer control program.
近年、スマートフォンやタブレット等の高機能な通信装置の普及が急速に進んでいる。これらの通信装置は、従来の通信装置と比較して送受信のトラフィック量が大きいことから、ネットワークの負荷増大が深刻化しており、ネットワークの効率利用が通信装置における問題の1つとなっている。 In recent years, high-performance communication devices such as smartphones and tablets have been rapidly spreading. Since these communication devices have a large amount of traffic for transmission and reception compared to conventional communication devices, the increase in network load has become serious, and efficient use of the network is one of the problems in communication devices.
無線LAN(Wireless Local Area Network)、3G(第3世代移動通信システム)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)等の高速無線通信技術の発展に伴い、これらの通信装置が複数の通信インタフェースを備えることが一般化している。通信装置は、複数の通信インタフェースを備えることで、複数のネットワークを利用して通信を行うことが可能になる。また、これらの通信装置上では、通信に使用するプロトコル、通信の頻度、送受信のトラフィック量等の、通信の特性が異なる多種多様な通信プログラムが動作する。 High-speed wireless communication technologies such as wireless LAN (Wireless Local Area Network), 3G (3rd generation mobile communication system), WiMAX (Worldwide Interoperability for Microwave Access), LTE (Long Term Evolution), etc. It has become common to have a plurality of communication interfaces. The communication device includes a plurality of communication interfaces, thereby enabling communication using a plurality of networks. In addition, on these communication apparatuses, various communication programs having different communication characteristics such as a protocol used for communication, a communication frequency, and a traffic amount of transmission / reception are operated.
従って、複数の通信インタフェースを介して接続するネットワークの特性、及び通信装置上で動作する通信プログラムの通信の特性に基づき、通信プログラム毎に適切なネットワークを利用して通信を行うことで、ネットワークの負荷を緩和することが期待できる。 Therefore, by performing communication using an appropriate network for each communication program based on the characteristics of a network connected via a plurality of communication interfaces and the communication characteristics of a communication program operating on a communication device, the network It can be expected to ease the load.
複数の通信インタフェースを備え、複数のネットワークを利用して通信を行うことが可能な通信装置において、適切なネットワークを利用して通信を行うための様々な提案が成されている。例えば、特許文献1に記載の方法は、ネットワークの構成や通信品質、バッテリの充電量、課金額等に基づき、通信装置が備える複数の通信インタフェースのうちいずれか1つの通信インタフェースを優位に設定し、デフォルトゲートウェイに関する経路情報として、複数の通信インタフェース毎に設定されるデフォルトゲートウェイのうち優位に設定した通信インタフェースに設定されるデフォルトゲートウェイに関する経路情報のみを経路表に設定する。 Various proposals have been made for performing communication using an appropriate network in a communication apparatus that includes a plurality of communication interfaces and can perform communication using a plurality of networks. For example, the method described in Patent Document 1 preferentially sets any one of a plurality of communication interfaces included in a communication device based on the network configuration, communication quality, battery charge, charge amount, and the like. As the route information related to the default gateway, only the route information related to the default gateway set to the communication interface set predominantly among the default gateways set for each of the plurality of communication interfaces is set in the route table.
IP通信においては、通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、経路表に設定されたデフォルトゲートウェイに関する経路情報に基づき、経路制御によってデフォルトゲートウェイを介して通信が行われるため、優位に設定した通信インタフェースを介して接続するネットワークを利用して通信が行われるようになる。 In IP communication, when communicating with a communication device on a network other than the network to which the communication device is directly connected, communication is performed via the default gateway by route control based on the route information about the default gateway set in the route table. Therefore, communication is performed using a network that is connected via a communication interface that is set to be superior.
特許文献1に記載の方法によって、複数の通信インタフェースを介して接続するネットワークのうちの適切なものを利用して通信を行うことが可能になるものの、優位に設定した通信インタフェースに設定されるデフォルトゲートウェイに関する経路情報のみが経路表に設定されるため、優位に設定した通信インタフェースを介して接続するネットワーク以外のネットワークを利用して通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことができないという課題がある。 Although the method described in Patent Document 1 enables communication using an appropriate network connected through a plurality of communication interfaces, the default set in the preferentially set communication interface Since only route information related to the gateway is set in the route table, communication with a communication device on a network other than the network to which the communication device directly connects using a network other than the network connected via the preferentially set communication interface There is a problem that cannot be performed.
また、通信プログラムが通信に利用するネットワークは、通信プログラムの送信先である通信装置のIPアドレス、及び経路表に設定された経路情報に基づき、経路制御において決定されるため、通信に利用するネットワークを任意に選択することができないという課題もあり、通信プログラム毎に適切なネットワークを利用して通信を行う方法としては不十分である。 The network used for communication by the communication program is determined in the route control based on the IP address of the communication device that is the transmission destination of the communication program and the route information set in the route table. There is also a problem that it is not possible to arbitrarily select the communication method, which is insufficient as a method for performing communication using an appropriate network for each communication program.
従って、通信装置が備える複数の通信インタフェースを介して接続するネットワークのうちのいずれを利用した場合においても通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことが可能であり、かつ、通信プログラム毎といったより細かい粒度で通信に使用する通信インタフェース若しくはデフォルトゲートウェイの指定すること等によって通信に利用するネットワークを選択可能な方法が望まれる。 Therefore, it is possible to communicate with a communication device on a network other than the network to which the communication device is directly connected in any of the networks connected via the plurality of communication interfaces provided in the communication device. In addition, a method capable of selecting a network to be used for communication by specifying a communication interface or default gateway used for communication at a finer granularity such as for each communication program is desired.
本発明は、複数の通信インタフェースを備え、複数のネットワークを利用して通信を行うことが可能な通信装置に関する上記課題に鑑みて成されたものであり、通信装置が備える複数の通信インタフェースを介して接続するネットワークのうちのいずれを利用した場合においても通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うこと、及びユーザ又は任意のプログラムがフロー毎に通信に使用する通信インタフェースを指定することによってフロー毎に通信に利用するネットワークを選択可能な通信装置、転送制御方法、及び転送制御プログラムを提供することを目的とする。 The present invention has been made in view of the above-described problems related to a communication apparatus that includes a plurality of communication interfaces and can perform communication using a plurality of networks. The communication apparatus includes a plurality of communication interfaces. Communication with a communication device on a network other than the network to which the communication device is directly connected, and communication used by the user or any program for each flow. It is an object of the present invention to provide a communication device, a transfer control method, and a transfer control program that can select a network to be used for communication for each flow by specifying an interface.
本発明による通信装置は、フロー毎に通信に利用するネットワークを選択可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、複数の通信インタフェースと、受信したパケットを転送するパケット転送部と、前記パケット転送部の動作を制御する転送制御部とを備えるという構成を有している。この構成により、フロー毎に適切なネットワークを利用して通信を行うことができる。 A communication apparatus according to the present invention is a communication apparatus that uses a network control method in units of flows and that can select a network to be used for communication for each flow, and includes a plurality of communication interfaces and a packet transfer unit that transfers received packets. And a transfer control unit for controlling the operation of the packet transfer unit. With this configuration, communication can be performed using an appropriate network for each flow.
また、本発明による転送制御方法は、複数の通信インタフェースと、受信したパケットを転送するパケット転送部とを備え、フロー単位のネットワーク制御方式を利用する通信装置において、フロー毎に通信に利用するネットワークを選択可能にする転送制御方法であって、前記パケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成ステップと、前記パケット転送ルール生成ステップが生成したパケット転送ルールを前記パケット転送部に設定するパケット転送部管理ステップとを含む構成を有している。この構成により、前記通信装置は、フロー毎に適切なネットワークを利用して通信を行うためのパケット転送を行うことができる。 In addition, the transfer control method according to the present invention includes a plurality of communication interfaces and a packet transfer unit that transfers received packets, and a network that is used for communication for each flow in a communication device that uses a network control method in units of flows. A packet transfer rule generation step for generating a packet transfer rule that is information for determining the operation of the packet transfer unit, and the packet transfer rule generated by the packet transfer rule generation step And a packet transfer unit management step set in the packet transfer unit. With this configuration, the communication apparatus can perform packet transfer for performing communication using an appropriate network for each flow.
また、本発明による転送制御プログラムは、複数の通信インタフェースと、受信したパケットを転送するパケット転送部とを備え、フロー単位のネットワーク制御方式を利用するコンピュータに、フロー毎に通信に利用するネットワークを選択可能にする処理を実行させるプログラムであって、このプログラムは、前記コンピュータに、前記パケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成処理と、前記パケット転送ルール生成処理が生成したパケット転送ルールを前記パケット転送部に設定するパケット転送部管理処理とを実行させる構成を有している。この構成により、前記コンピュータは、フロー毎に適切なネットワークを利用して通信を行うためのパケット転送を行うことができる。 In addition, a transfer control program according to the present invention includes a plurality of communication interfaces and a packet transfer unit that transfers received packets. A computer that uses a network control method in units of flows is provided with a network that is used for communication for each flow. A program for executing a process for enabling selection, wherein the program causes the computer to generate a packet transfer rule that generates packet transfer rule that is information for determining an operation of the packet transfer unit, and to generate the packet transfer rule. And a packet transfer unit management process for setting the packet transfer rule generated by the process in the packet transfer unit. With this configuration, the computer can perform packet transfer for performing communication using an appropriate network for each flow.
また、本発明による通信装置は、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、複数の通信インタフェースと、仮想インタフェースと、複数の経路表を有する通信スタックと、受信したパケットを転送するパケット転送部と、前記パケット転送部の動作を制御する転送制御部と、前記パケット転送部と前記転送制御部との接続を監視する接続監視部とを備えるという構成を有している。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して必要な措置を行うことができる。 Further, the communication device according to the present invention is a communication device that uses a network control method in units of flows, capable of selecting a network to be used for communication for each flow, and includes a plurality of communication interfaces, a virtual interface, A communication stack having a plurality of routing tables, a packet transfer unit for transferring received packets, a transfer control unit for controlling the operation of the packet transfer unit, and a connection between the packet transfer unit and the transfer control unit are monitored. A connection monitoring unit. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, it is possible to detect that and take necessary measures.
前記複数の経路表は、前記パケット転送部及び前記転送制御部によるパケット転送によって通信を可能にするために使用する第1の経路表と、前記パケット転送が行えない場合に使用する第2の経路表とを含んでいてよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、前記第1の経路表によっては通信装置が直接接続するネットワーク以外のネットワーク上の通信装置及び前記複数の通信インタフェースを介して接続するネットワーク上の通信装置との通信を行えなくなったとしても、前記通信スタックの経路制御に使用する経路表を前記第2の経路表に切り替えることで、通信不能に陥ることを回避できる。 The plurality of route tables include a first route table used for enabling communication by packet transfer by the packet transfer unit and the transfer control unit, and a second route used when the packet transfer cannot be performed. And a table. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, the communication device on the network other than the network to which the communication device is directly connected and the plurality of communication interfaces are connected depending on the first route table. Even if communication with a communication device on the network connected through the communication stack becomes impossible, switching to the second route table can be avoided by causing the route table used for route control of the communication stack to be incapable of communication. .
前記転送制御部は、前記複数の通信インタフェース及び前記仮想インタフェースがパケットの送受信を行うために必要な情報であって、前記複数の通信インタフェース及び前記仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、前記アドレス情報管理部に記憶された情報に基づき、前記第1の経路表の設定を行う経路表管理部とを備えていてよく、前記経路表管理部は、前記仮想インタフェースに設定される仮想デフォルトゲートウェイに関する経路情報を前記第1の経路表を設定してよい。この構成により、前記パケット転送部と前記転送制御部とが接続されている場合、前記通信スタックが前記第1の経路表を使用して経路制御を行うことで、前記パケット転送部及び前記転送制御部によるパケット転送によってフロー毎に適切なネットワークを利用して通信を行うことが可能になる。 The transfer control unit is an address storage for storing address information set for the plurality of communication interfaces and the virtual interface, which is information necessary for the plurality of communication interfaces and the virtual interface to transmit and receive packets. An address information management unit that acquires the address information and stores it in the address storage unit, and a routing table management unit that sets the first routing table based on the information stored in the address information management unit The route table management unit may set the first route table with route information related to a virtual default gateway set in the virtual interface. With this configuration, when the packet transfer unit and the transfer control unit are connected, the communication stack performs route control using the first route table, so that the packet transfer unit and the transfer control are performed. It is possible to perform communication using an appropriate network for each flow by packet transfer by the unit.
前記通信スタックは、前記アドレス情報を記憶するアドレス記憶部と、前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、前記アドレス情報管理部に記憶された情報に基づき、前記第2の経路表の設定を行う経路表管理部とを備えていてよく、前記経路表管理部は、前記複数の通信インタフェース毎に設定されるデフォルトゲートウェイのうちいずれか1つのデフォルトゲートウェイに関する経路情報を前記第2の経路表を設定してよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた場合にも、前記通信スタックが前記第2の経路表を使用して経路制御を行うことで、通信を行うこと可能になる。 The communication stack is based on an address storage unit that stores the address information, an address information management unit that acquires the address information and stores the address information in the address storage unit, and information stored in the address information management unit, A routing table management unit configured to set a second routing table, wherein the routing table management unit includes routing information related to any one of the default gateways set for each of the plurality of communication interfaces. May be set in the second routing table. With this configuration, even when the connection between the packet transfer unit and the transfer control unit is disconnected, the communication stack can perform communication by performing route control using the second route table. Become.
前記接続監視部は、前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を、前記第1の経路表又は前記第2の経路表に切り替えてよい。前記接続監視部が通信スタックの経路制御に使用する経路表を切り替えることで、前記パケット転送部と前記転送制御部とが接続されている場合にも、その接続が切れている場合にも、通信を行うことが可能になる。 The connection monitoring unit switches a route table used for route control of the communication stack to the first route table or the second route table based on a connection state between the packet transfer unit and the transfer control unit. It's okay. Even if the packet transfer unit and the transfer control unit are connected by switching the routing table used for route control of the communication stack by the connection monitoring unit, the communication can be performed. It becomes possible to do.
また、本発明による転送制御方法は、複数の通信インタフェースと、仮想インタフェースと、複数の経路表を有する通信スタックと、受信したパケットを転送するパケット転送部と、前記パケット転送部の動作を制御する転送制御部とを備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置において、前記パケット転送部と前記転送制御部との接続を監視する転送制御方法であって、前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を行うことを可能とするという構成を有している。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して前記通信スタックの経路制御に使用する経路表を切り替えることで、通信を行うことができる。 The transfer control method according to the present invention controls a plurality of communication interfaces, a virtual interface, a communication stack having a plurality of routing tables, a packet transfer unit for transferring received packets, and an operation of the packet transfer unit. A communication device using a network control method in units of flows, wherein the connection between the packet transfer unit and the transfer control unit is monitored. A transfer control method for performing communication by switching a route table used for route control of the communication stack based on a connection state between the packet transfer unit and the transfer control unit have. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, communication can be performed by detecting this and switching the route table used for route control of the communication stack.
また、本発明による転送制御プログラムは、複数の通信インタフェースと、仮想インタフェースと、複数の経路表を有する通信スタックと、受信したパケットを転送するパケット転送部と、前記パケット転送部の動作を制御する転送制御部とを備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用するコンピュータおいて、前記パケット転送部と前記転送制御部との接続を監視するプログラムであって、前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を行うことを可能とするという構成を有している。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して前記通信スタックの経路制御に使用する経路表を切り替えることで、通信を行うことができる。 The transfer control program according to the present invention controls a plurality of communication interfaces, a virtual interface, a communication stack having a plurality of routing tables, a packet transfer unit for transferring received packets, and an operation of the packet transfer unit. A computer that uses a network control method for each flow, and that monitors a connection between the packet transfer unit and the transfer control unit. A program that performs communication by switching a route table used for route control of the communication stack based on a connection state between the packet transfer unit and the transfer control unit. doing. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, communication can be performed by detecting this and switching the route table used for route control of the communication stack.
本発明によれば、通信装置が備える複数の通信インタフェースを介して接続するネットワークのうちのいずれを利用した場合においても通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うこと、及びフロー毎に通信に利用するネットワークを選択することを可能にすることで、フロー毎に適切なネットワークを利用して通信を行うことができるという効果を奏する。 According to the present invention, communication with a communication device on a network other than the network to which the communication device is directly connected is performed when any of the networks connected via the plurality of communication interfaces provided in the communication device is used. Further, by making it possible to select a network to be used for communication for each flow, there is an effect that communication can be performed using an appropriate network for each flow.
以下、本発明の実施形態について図面を参照して説明する。 Embodiments of the present invention will be described below with reference to the drawings.
(第1の実施形態)
図1は、本発明の実施形態における通信装置の構成例を示すブロック図である。本発明の実施形態における通信装置100は、フロー単位のネットワーク制御方式を利用する通信装置であって、複数の通信インタフェース101と、受信したパケットの転送を行うパケット転送部200と、パケット転送部の動作を制御する転送制御部300とを備える。
(First embodiment)
FIG. 1 is a block diagram illustrating a configuration example of a communication device according to an embodiment of the present invention. A
フローとは、任意のアドレスや識別子の組み合せによって識別できるトラフィックの一連のパケットの流れを指し、フロー単位のネットワーク制御方式を利用することで、より粒度の細かい柔軟なネットワーク制御を実現できる。フロー単位のネットワーク制御方式は、例えば、OpenFlowである。受信したパケットを転送するフロースイッチと、フロースイッチの動作を制御するフローコントローラとを備えるOpenFlowによる通信装置の例は、「Nick McKeown、他7名、“OpenFlow: Enabling Innovation in Campus Networks”、2008年3月14日、インターネット<http://www.openflow.org/documents/openflow−wp−latest.pdf>」、または、「“OpenFlow Switch Specification Version 1.0.0”、2009年12月31日、インターネット<http://www.openflow.org/documents/openflow−spec−v1.0.0.pdf>」等に記載されている。 A flow refers to a flow of a series of packets of traffic that can be identified by a combination of arbitrary addresses and identifiers. By using a flow-by-flow network control method, it is possible to realize finer and more flexible network control. The network control method for each flow is, for example, OpenFlow. An example of an OpenFlow communication device that includes a flow switch that forwards received packets and a flow controller that controls the operation of the flow switch is “Nick McKeown, 7 others,“ OpenFlow: Enabling Innovation in Campus Networks ”, 2008. March 14, Internet <http://www.openflow.org/documents/openflow-wp-latest.pdf> "or" "OpenFlow Specification Version 1.0.0", December 31, 2009 , Internet <http://www.openflow.org/documents/openflow-spec- It is described in the 1.0.0.pdf> ", and the like.
パケット転送部200は、例えば、OpenFlowにおけるフロースイッチである。また、転送制御部300は、例えば、OpenFlowにおけるフローコントローラである。
The
パケット転送部200は、受信したパケットの転送を行うが、具体的には、パケット転送ルールに基づき、受信したパケットに対して任意の処理を行う。パケット転送ルールは、パケットを受信した際のパケット転送部200の動作を定める情報であり、転送制御部300によって設定される。
The
パケット転送ルールは、フローを識別可能な情報であるフロー情報と、フロー情報に適合するフローのパケットに対して実行する処理の内容を定める情報であるアクション情報とを含む。パケット転送ルールは、少なくとも、フロー情報と、アクション情報とを含むが、更に他の情報を含んでいてもよい。 The packet transfer rule includes flow information that is information that can identify a flow, and action information that is information that determines the content of a process to be executed on a packet of a flow that matches the flow information. The packet transfer rule includes at least flow information and action information, but may further include other information.
フロー情報は、例えば、送信元MACアドレス、送信先MACアドレス、Ethernet(登録商標)フレームタイプ、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、どの通信インタフェースからパケットを受信したのかを定める情報である受信ポート番号等を含むが、フロー情報は、これらに限定されず、更に他の情報を含んでいてもよい。アクション情報の内容として、例えば、パケットを任意の通信インタフェースに送信する、パケットを通信スタックに送信する、パケットに含まれる任意のアドレスや識別子を任意の値に書き換える、パケットを廃棄する等が挙げられるが、アクション情報の内容は、これらに限定されない。 The flow information includes, for example, a transmission source MAC address, a transmission destination MAC address, an Ethernet (registered trademark) frame type, a transmission source IP address, a transmission destination IP address, a transmission source port number, a transmission destination port number, and a packet from which communication interface. The reception port number or the like which is information for determining whether the information has been received is included, but the flow information is not limited to these, and may further include other information. The contents of the action information include, for example, transmitting a packet to an arbitrary communication interface, transmitting the packet to the communication stack, rewriting an arbitrary address or identifier included in the packet to an arbitrary value, or discarding the packet. However, the content of the action information is not limited to these.
通信インタフェースは、任意のネットワークに接続して通信を可能にする機能を提供するインタフェースを指す。本発明の実施形態において、通信インタフェースの種類は、特に限定されず、Ethernet(登録商標)等の有線インタフェース、無線LAN等の無線インタフェース、又は任意の方法により生成される仮想インタフェースであってよい。仮想インタフェースの例として、例えば、トンネルインタフェース、複数の通信インタフェースを仮想的に束ねる方法であるリンクアグリゲーションによって生成される論理インタフェース等が挙げられる。また、通信インタフェースの数も特に限定されず、1つ以上であれば良い。更に、複数の通信インタフェース101は、全て同じ種類の通信インタフェースでもよく、異なる種類の通信インタフェースが混在していてもよい。
The communication interface refers to an interface that provides a function of enabling communication by connecting to an arbitrary network. In the embodiment of the present invention, the type of communication interface is not particularly limited, and may be a wired interface such as Ethernet (registered trademark), a wireless interface such as a wireless LAN, or a virtual interface generated by an arbitrary method. Examples of virtual interfaces include a tunnel interface and a logical interface generated by link aggregation, which is a method of virtually bundling a plurality of communication interfaces. Further, the number of communication interfaces is not particularly limited, and may be one or more. Furthermore, the plurality of
なお、本発明の実施形態における通信装置100が備える複数の通信インタフェース101は、1つ以上、かつ任意の種類の通信インタフェースから成る。便宜上、本発明の実施形態においては、複数の通信インタフェース101を介して接続するネットワークは、各々が異なるネットワークであるとして説明するが、複数の通信インタフェース101のうちの1つ以上の通信インタフェースが同一のネットワークに接続する構成であってもよい。
Note that the plurality of
図2は、本発明の実施形態におけるパケット転送部の構成例を示すブロック図である。パケット転送部200は、パケット転送ルール記憶部201と、パケット転送ルール管理部202と、フロー識別部203と、アクション実行部204とを備える。
FIG. 2 is a block diagram illustrating a configuration example of the packet transfer unit according to the embodiment of the present invention. The
本発明の実施形態における複数の通信インタフェース101は、パケット転送部200に接続される。具体的には、パケット転送部200のポートとして、複数の通信インタフェース101の各通信インタフェースが、パケット転送部200に登録される。この構成によって、パケット転送部200は、複数の通信インタフェース101の各通信インタフェースを介してパケット転送を行うことができる。
The plurality of
パケット転送ルール記憶部201は、パケット転送ルールを記憶する。フロー毎に異なるパケット転送ルールが設定されるため、パケット転送ルール記憶部201には1つ以上のパケット転送ルールが記憶される。パケット転送ルール記憶部201に記憶されるパケット転送ルールの集合をパケット転送ルールテーブルと記す。
The packet transfer
パケット転送ルール管理部202は、パケット転送ルールを管理する。転送制御部300は、パケット転送部200にパケット転送ルールを設定する際、パケット転送ルールと共に設定指示を送信する。設定指示は、具体的には、パケット転送ルールの追加、変更、及び削除のいずれを行うのかを定める情報である。パケット転送ルール管理部202は、転送制御部300から受信したパケット転送ルールを、設定指示に応じてパケット転送ルール記憶部201に記憶させる。
The packet transfer
パケット転送ルールは、フロー情報及びアクション情報の他に、パケット転送ルールの有効期間を定める情報であるタイマ値を含む。パケット転送ルール管理部202は、各々のパケット転送ルールに指定されたタイマ値を時間経過と共に減少させる。そして、タイマ値が0になったパケット転送ルールを、パケット転送ルール記憶部201から削除する。パケット転送ルールに含まれるフロー情報に適合するフローのパケットを受信した際には、パケット転送ルール管理部202は、そのパケット転送ルールのタイマ値を初期値にリセットする。
In addition to flow information and action information, the packet transfer rule includes a timer value that is information for determining the validity period of the packet transfer rule. The packet transfer
フロー識別部203は、パケットを受信した際、受信したパケットに含まれる任意のアドレスや識別子からフロー情報を生成する。生成したフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが、パケット転送ルール記憶部201に記憶されているパケット転送ルールテーブル上に存在するか検索する。
When the
アクション実行部204は、パケット転送ルールに含まれるアクション情報の内容に基づき、受信したパケットに対して任意の処理を実行する。
The
次に、パケット転送部200の動作について説明する。図3は、パケット転送部がパケットを受信した際の処理の例を示すフローチャートである。パケット転送部200が、複数の通信インタフェース101のうちのいずれかの通信インタフェースからパケットを受信すると(ステップS101)、フロー識別部203は、受信したパケットからフロー情報を生成し(ステップS102)、生成したフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが、パケット転送ルール記憶部201に記憶されているパケット転送ルールテーブル上に存在するか否か判定する(ステップS103)。
Next, the operation of the
受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが存在しない場合(ステップS103におけるNo)、フロー識別部203は、フロー識別部203が生成したフロー情報を含む新規フロー検出通知を転送制御部300に送信し(ステップS104)、受信したパケットのフローに対するパケット転送ルールの生成を要求する。なお、フロー識別部203は、受信したパケットそのものを新規フロー検出通知に含めてもよい。転送制御部300は、新規フロー検出通知を受信した際、パケット転送ルールを生成し、設定指示と共にパケット転送部200に送信する。
When there is no packet transfer rule including flow information that matches the flow of the received packet (No in step S103), the
パケット転送ルール管理部202は、転送制御部300から送信されたパケット転送ルール及び設定指示を受信すると、その指示に応じて受信したパケット転送ルールをパケット転送ルール記憶部201に記憶させる(ステップS105)。
When the packet transfer
受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが存在する場合(ステップS103におけるYes)、パケット転送ルール管理部202は、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールのタイマ値を、初期値にリセットする(ステップS106)。
If there is a packet transfer rule that includes flow information that matches the flow of the received packet (Yes in step S103), the packet transfer
上記のような処理を行うことで、受信したパケットのフローに適合するパケット転送ルールが得られる。アクション実行部204は、受信したパケットのフローに適合するパケット転送ルールに含まれるアクション情報に基づき、受信したパケットに対して任意の処理を実行する(ステップS107)。
By performing the processing as described above, a packet transfer rule that matches the flow of the received packet can be obtained. The
図4は、第1の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図である。第1の実施形態における通信装置100は、複数の通信インタフェース101及び仮想インタフェース102を備える。複数の通信インタフェース101及び仮想インタフェース102は、通信装置100の通信スタック103、及びパケット転送部200に接続される。仮想インタフェース102は、複数の通信インタフェース101を介して接続するネットワークのうちのいずれにも接続しない通信インタフェースである。換言すれば、仮想インタフェース102は、通信装置100内部に存在する仮想ネットワークに接続するための通信インタフェースである。
FIG. 4 is a block diagram illustrating a more detailed configuration example of the communication apparatus focusing on elements related to communication in the first embodiment. The
本発明の実施形態における複数の通信インタフェース101及び仮想インタフェース102は、通信スタック103に接続される。具体的には、複数の通信インタフェース101の各通信インタフェース、及び仮想インタフェース102を介して接続するネットワーク上の通信装置にパケットを送信するための経路情報、すなわち、出力インタフェースが各々の通信インタフェースである経路情報が経路表上に設定される。そのような経路情報が設定された経路表に基づき、通信スタック103が行う経路制御によって各々の通信インタフェースを介してパケットを送信することができる。
The plurality of
図4に示すような構成により、パケット転送部200は、通信装置100上で動作する通信プログラム105、又は他の通信装置から送信されたパケットを、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースから受信できる。
With the configuration as shown in FIG. 4, the
なお、本発明の実施形態における通信装置100上で動作する通信プログラム105は、IP通信を行う任意のプログラムを指す。通信プログラムの種類、通信に使用するプロトコル、通信の内容等は、特に限定されない。また、その数も特に限定されず、1つ以上の通信プログラムが動作してもよい。
Note that the
パケット転送部200と転送制御部300とは、任意の方法によって接続される。例えば、UNIX(登録商標)ドメインソケット通信、TCP(Transmission Control Protocol)通信又はSSL(Secure Socket Layer)通信によって接続される。
The
転送制御部300は、図5に示すように、使用インタフェース情報記憶部301と、使用インタフェース情報管理部302と、アドレス情報記憶部303と、アドレス情報管理部304と、経路表管理部305と、パケット転送ルール生成部306と、パケット転送部管理部307とを備える。
As shown in FIG. 5, the
使用インタフェース情報は、フロー毎に複数の通信インタフェース101のうちのどの通信インタフェースを使用して通信を行うのかを定める情報であって、フローを識別可能な情報であるフロー情報と、複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含む。使用インタフェース情報は、少なくとも、フロー情報と、複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含むが、更に他の情報を含んでいてもよい。
The used interface information is information that determines which communication interface among the plurality of
使用インタフェース情報に含まれるフロー情報は、それに含まれる情報の値に、ワイルドカードを含んでいてもよい。複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報は、例えば、インタフェース名、ポート番号等である。
The flow information included in the used interface information may include a wild card in the value of the information included therein. Information that can uniquely identify any of the plurality of
使用インタフェース情報記憶部301は、使用インタフェース情報を記憶する。フロー毎に異なる使用インタフェース情報が設定されるため、使用インタフェース情報記憶部301には1つ以上の使用インタフェース情報が記憶される。
The used interface
使用インタフェース情報管理部302は、使用インタフェース情報を管理すると共に、任意のタイミングで使用インタフェース情報を設定可能にする機能を、ユーザ又は任意のプログラムに対して提供する。ユーザ又は任意のプログラムは、使用インタフェース情報管理部302に使用インタフェース情報を設定する際、使用インタフェース情報と共に設定指示を与える。設定指示は、具体的には、使用インタフェース情報の追加、変更、及び削除のいずれを行うのかを定める情報である。使用インタフェース情報管理部302は、ユーザ又は任意のプログラムから与えられた使用インタフェース情報を、設定指示に応じて使用インタフェース情報301に記憶させる。
The used interface
使用インタフェース情報管理部302がユーザ又は任意のプログラムに対して提供する使用インタフェース情報を設定可能にする機能は、例えば、設定を行うためのグラフィカルユーザインタフェース、任意のプログラムから利用可能な任意のAPI(Application Programming Interface)等である。
The use interface
アドレス情報記憶部303は、複数の通信インタフェース101及び仮想インタフェース102がパケットの送受信を行うために必要な情報であるアドレス情報を記憶する。アドレス情報は、通信インタフェース毎に設定されるため、アドレス情報記憶部303には1つ以上のアドレス情報が記憶される。
The address
アドレス情報は、例えば、MACアドレス、IPアドレス、サブネットマスク、通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイのMACアドレス及びIPアドレス、パケット転送部200に接続する通信インタフェースを識別するためにパケット転送部200が割り当てるポート番号等を含むが、アドレス情報は、これらに限定されず、更に他の情報を含んでいてもよい。なお、アドレス情報は、任意の方法によって通信インタフェース毎に設定される。アドレス情報を設定する任意の方法は、例えば、ユーザ又は任意のプログラムによる固定設定、DHCP(Dynamic Host Configuration Protocol)、IPCP(Internet Protocol Control Protocol)等である。
The address information includes, for example, a MAC address, an IP address, a subnet mask, a MAC address and an IP address of a default gateway on the network connected via the communication interface, and a packet transfer for identifying a communication interface connected to the
仮想インタフェース102には、複数の通信インタフェース101の各通信インタフェースと同様にアドレス情報が設定されるが、そのアドレス情報は、任意の値から成る仮想のアドレス情報である。具体的には、仮想インタフェース102のアドレス情報は、少なくとも、仮想MACアドレスと、仮想IPアドレスと、仮想インタフェース102を介して接続する通信装置100内部の仮想ネットワーク上のデフォルトゲートウェイである仮想デフォルトゲートウェイのMACアドレス及びIPアドレスとを含む。
Address information is set in the
アドレス情報管理部304は、複数の通信インタフェース101の各通信インタフェース、及び仮想インタフェース102に設定されるアドレス情報を取得し、アドレス情報記憶部303に記憶させる。また、アドレス情報管理部304は、DHCPのリース期間切れや通信装置の移動に伴うハンドオーバーの発生等によってアドレス情報の変更が発生した際、アドレス情報の変更が発生した通信インタフェースのアドレス情報を改めて取得し、アドレス情報記憶部303に記憶させる。
The address
経路表管理部305は、アドレス情報記憶部305に記憶されるアドレス情報に含まれる複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイ、及び仮想インタフェース102に設定される仮想デフォルトゲートウェイのうち、仮想デフォルトゲートウェイに関する経路情報のみを、通信スタック103が持つ経路表104に設定する。
The routing
図6は、第1の実施形態における経路表の構成例である。経路表104は、経路表管理部305によって図6のように設定される。複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報が設定される。また、仮想インタフェース102を介して接続する仮想ネットワークへの経路に関する経路情報として、送信先ネットワークが仮想ネットワークであり、出力インタフェースが仮想インタフェースである経路情報が設定される。デフォルトゲートウェイに関する経路情報は、ネクストホップが仮想インタフェースに設定される仮想デフォルトゲートウェイである経路情報のみが設定される。
FIG. 6 is a configuration example of a route table according to the first embodiment. The route table 104 is set by the route
なお、経路表104に設定するデフォルトゲートウェイに関する経路情報について、仮想インタフェース102に設定される仮想デフォルトゲートウェイに関する経路情報だけでなく、更に複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイに関する経路情報を設定してもよい。ただし、経路表上に複数のデフォルトゲートウェイに関する経路情報が存在する場合、どの経路情報を使用して経路制御を行えばよいか分からず通信不能に陥る、意図と異なるデフォルトゲートウェイに関する経路情報を使用して経路制御が行われるといった問題が生じるため、複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイ及び仮想インタフェースに設定される仮想デフォルトゲートウェイに関する経路情報のうち、仮想デフォルトゲートウェイに関する経路情報を優位に設定する。
The route information related to the default gateway set in the route table 104 is not only the route information related to the virtual default gateway set in the
複数の通信インタフェース101の各通信インタフェースに設定されるデフォルトゲートウェイ、及び仮想インタフェース102に設定される仮想デフォルトゲートウェイのうち、仮想デフォルトゲートウェイに関する経路情報のみを経路表104に設定することで、通信プログラム105が、通信装置100が複数の通信インタフェース101を介して直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、通信スタック103が行う経路制御によって、通信プログラム105から送信されたパケットは、仮想デフォルトゲートウェイに送信されるようになる。具体的には、通信スタック103において経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスになり、パケットの送信先MACアドレスは、仮想デフォルトゲートウェイのMACアドレスになり、パケットの送信元IPアドレスは、仮想インタフェース102に設定される仮想IPアドレスになり、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
By setting only the route information related to the virtual default gateway among the default gateway set to each communication interface of the plurality of
一方、通信プログラム105が、複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合、通信スタック103が行う経路制御によって、通信プログラム105から送信されるパケットは、送信先の通信装置が存在するネットワークに接続する通信インタフェースを介して送信先の通信装置に直接送信されるようになる。具体的には、通信スタック103において経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを送信先の通信装置が存在するネットワークに接続する通信インタフェースから受信する時点では、パケットの送信元MACアドレスは、その通信インタフェースに設定されるMACアドレスになり、パケットの送信先MACアドレスは、送信先の通信装置のMACアドレスになり、パケットの送信元IPアドレスは、その通信インタフェースに設定されるIPアドレスになり、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
On the other hand, when the
パケット転送ルール生成部306は、パケット転送部200のフロー識別部203から送信された新規フロー検出通知を受信した際、すなわち、パケット転送部200からパケット転送ルールの生成を要求された際、新規フロー検出通知に含まれるフロー情報、パケット転送ルール記憶部301に記憶される使用インタフェース情報、及びアドレス情報記憶部303に記憶されるアドレス情報に基づき、パケット転送ルールを生成する。
The packet transfer
次に、パケット転送ルール生成部306におけるパケット転送ルールの生成方法について説明する。図7は、第1の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャートである。
Next, a packet transfer rule generation method in the packet transfer
パケット転送ルール生成部306は、新規フロー検出通知を受信した際、新規フロー検出通知に含まれるフロー情報を参照し、フロー情報に含まれる受信ポート番号に基づき、パケットを受信した通信インタフェースを特定する。そして、パケットを受信した通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS201)。なお、フロー情報に含まれる受信ポート番号によって特定されるパケットを受信した通信インタフェースは、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースである。
When the packet transfer
次に、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報を参照し、受信したパケットの送信元IPアドレスを特定する。そして、パケットを受信した通信インタフェースのアドレス情報に含まれるサブネットマスクに基づき、特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しいか否か判定する(ステップS202)。すなわち、受信したパケットの送信元IPアドレスに基づき、そのパケットがパケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置から送信されたパケットか否か判定する。
Next, the packet transfer
特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しくない場合(ステップS202におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置ではなく、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置から送信されたパケットであると判断できる。
If the network address obtained from the identified source IP address and the network address obtained from the IP address set in the communication interface that received the packet are not equal (No in step S202), the communication address is received via the communication interface that received the packet. It can be determined that the packet is transmitted from a communication device on a network other than the network to which the
通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、仮想インタフェース102に設定される仮想デフォルトゲートウェイに関する経路情報のみが経路表104に設定されるため、通信スタック103が行う経路制御によって仮想インタフェース102を介してパケットが送信される。従って、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置が送信したパケットを受信する場合、通信スタック103が仮想インタフェース102を介してパケットを受信できるようにするための対応が必要である。
When communication is performed with a communication device on a network other than the network to which the
そこで、特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しくない場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、アクション情報とを含むパケット転送ルールを生成する。このアクション情報は、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに書き換えるアクション、送信先IPアドレスを仮想インタフェース102に設定される仮想IPアドレスに書き換えるアクション(ステップS203)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS204)から成る。
Therefore, when the network address obtained from the identified source IP address and the network address obtained from the IP address set in the communication interface that received the packet are not equal, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットを、通信スタック103が仮想インタフェース102を介して受信できるようになる。
Packet transfer based on such packet transfer rules enables the
特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しい場合(ステップS202におけるYes)、特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しいか否か判定する(ステップS205)。 When the network address obtained from the identified source IP address is equal to the network address obtained from the IP address set in the communication interface that received the packet (Yes in step S202), the identified source IP address is the packet. It is determined whether or not it is equal to the IP address set in the communication interface that has received (step S205).
特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しくない場合(ステップS205におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置から送信されたパケットであると判断できる。一方、特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しい場合(ステップS205におけるYes)、通信プログラム105が送信したパケットであると判断できる。
If the identified source IP address is not equal to the IP address set in the communication interface that received the packet (No in step S205), it is transmitted from the communication device on the network connected via the communication interface that received the packet. It can be determined that the packet is a packet. On the other hand, if the identified source IP address is equal to the IP address set in the communication interface that received the packet (Yes in step S205), it can be determined that the packet is transmitted by the
特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しくない場合(ステップS205におけるNo)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、受信したパケットを通信スタック103に送信するアクション(ステップS206)から成るアクション情報とを含むパケット転送ルールを生成する。
When the identified source IP address is not equal to the IP address set in the communication interface that received the packet (No in step S205), the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットを、通信スタック103がパケットを受信した通信インタフェースを介して受信できるようになる。
By packet transfer based on such a packet transfer rule, the packet received by the
特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しい場合(ステップS205におけるYes)、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットの送信先MACアドレスを特定する。そして、特定した送信先MACアドレスと、仮想インタフェース102に設定される仮想デフォルトゲートウェイのMACアドレスとが等しいか否か判定する(ステップS207)。 If the identified source IP address is equal to the IP address set in the communication interface that received the packet (Yes in step S205), the destination MAC address of the received packet based on the flow information included in the new flow detection notification Is identified. Then, it is determined whether the identified destination MAC address is equal to the MAC address of the virtual default gateway set in the virtual interface 102 (step S207).
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS207におけるYes)、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置に仮想デフォルトゲートウェイを介して送信するパケットであると判断できる。一方、特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS207におけるNo)、通信プログラム105が、パケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置に直接送信するパケットであると判断できる。
When the identified transmission destination MAC address is equal to the MAC address of the virtual default gateway (Yes in step S207), the
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS207におけるYes)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報を、使用インタフェース情報管理部302を通じて取得する。そして、取得した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定する(ステップS208)。なお、通信に使用する通信インタフェースは、複数の通信インタフェース101のうちのいずれかの通信インタフェースである。
If the identified destination MAC address and the MAC address of the virtual default gateway are equal (Yes in step S207), the packet transfer
加えて、特定した通信に使用する通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS209)。 In addition, the address information of the communication interface used for the specified communication is acquired through the address information management unit 304 (step S209).
仮想デフォルトゲートウェイは、仮想インタフェース102を介して接続する通信装置100内部の仮想ネットワーク上のデフォルトゲートウェイである。しかし、仮想デフォルトゲートウェイは、経路表管理部305によって経路表104に設定される経路情報が存在するだけの仮想的な存在である。従って、パケット転送部200が受信した送信先MACアドレスが仮想デフォルトゲートウェイのMACアドレスである仮想デフォルトゲートウェイに送信するパケットを、通信に使用する通信インタフェースに送信しても、通信に利用するネットワーク上に仮想デフォルトゲートウェイが存在しないため、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置にパケットを送信することができない。
The virtual default gateway is a default gateway on a virtual network inside the
通信に使用する通信インタフェースを介して接続するネットワークを利用して通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置にパケットを送信できるようにするためには、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイ、すなわち、通信に使用する通信インタフェースに設定されるデフォルトゲートウェイにパケットを送信する必要がある。
In order to enable a packet to be transmitted to a communication device on a network other than the network to which the
従って、仮想デフォルトゲートウェイに送信すべきパケットを、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに転送することで、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置にパケットを送信することが可能になる。
Therefore, by transferring the packet to be transmitted to the virtual default gateway to the default gateway on the network connected via the communication interface used for communication, the
そこで、特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、アクション情報とを含むパケット転送ルールを生成する。このアクション情報は、送信元MACアドレスを通信に使用する通信インタフェースに設定されたMACアドレスに書き換えるアクション、送信元IPアドレスを通信に使用する通信インタフェースに設定されたIPアドレスに書き換えるアクション(ステップS210)、送信先MACアドレスを通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスに書き換えるアクション(ステップS211)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS212)から成る。
Therefore, when the specified destination MAC address is equal to the MAC address of the virtual default gateway, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに送信されるようになる。
By packet transfer based on such a packet transfer rule, a packet received by the
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS207におけるNo)、受信したパケットの送信元MACアドレスは、パケットを受信した通信インタフェースに設定されるMACアドレスになり、パケットの送信元IPアドレスは、パケットを受信した通信インタフェースに設定されるIPアドレスになり、受信したパケットの送信先MACアドレスは、パケットを受信した通信インタフェースを介して接続するネットワーク上の送信先の通信装置のMACアドレスになり、パケットの送信先IPアドレスは、パケットを受信した通信インタフェースを介して接続するネットワーク上の送信先の通信装置のIPアドレスになるため、そのままパケットを受信した通信インタフェースから送信すればよい。 If the identified destination MAC address is not equal to the MAC address of the virtual default gateway (No in step S207), the source MAC address of the received packet is the MAC address set in the communication interface that received the packet. The source IP address of the packet is an IP address set in the communication interface that has received the packet, and the destination MAC address of the received packet is the destination on the network connected via the communication interface that has received the packet. Since the destination IP address of the packet is the IP address of the destination communication device on the network connected via the communication interface that received the packet, the communication interface that received the packet as it is. It may be transmitted from Esu.
従って、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、受信したパケットを、パケットを受信した通信インタフェースに送信するアクション(ステップS213)から成るアクション情報とを含むパケット転送ルールを生成する。
Accordingly, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、パケットを受信した通信インタフェースから送信先の通信装置に送信されるようになる。
By packet transfer based on such a packet transfer rule, the packet received by the
パケットの送信に先んじて、通信スタック103は、送信先の通信装置のIPアドレスに基づき、送信先の通信装置のMACアドレスを得るためのアドレス解決を行う必要がある。通信装置100が複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合、各通信インタフェース上で通常のアドレス解決方法によって送信先の通信装置のMACアドレスを得ればよい。一方、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、通信スタック103は、仮想デフォルトゲートウェイを介してパケットを送信する。また、パケット転送ルール生成部306は、通信スタックによって仮想デフォルトゲートウェイに送信されたパケットを、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに送信するためのパケット転送ルールを生成する。従って、仮想デフォルトゲートウェイのMACアドレスだけでなく、複数の通信インタフェース101の通信インタフェース毎に設定される各々のデフォルトゲートウェイのMACアドレスを得るためのアドレス解決方法が必要である。
Prior to packet transmission, the
アドレス解決処理においては、2種類のアドレス解決パケットを送受信する。2種類のアドレス解決パケットは、MACアドレスを得ようとする通信装置に対して、MACアドレスを送信するように要求するためのアドレス解決要求パケット、及び要求を行った通信装置に対して、要求に応じてMACアドレスを含む応答を送信するためのアドレス解決応答パケットである。アドレス解決要求パケットは、例えば、ARP(Address Resolution Protocol)リクエストパケットである。アドレス解決応答パケットは、例えば、ARPリプライパケットである。 In the address resolution process, two types of address resolution packets are transmitted and received. The two types of address resolution packets are a request for an address resolution request packet for requesting a communication apparatus to obtain a MAC address to transmit a MAC address and a communication apparatus that has made the request. In response, it is an address resolution response packet for transmitting a response including the MAC address. The address resolution request packet is, for example, an ARP (Address Resolution Protocol) request packet. The address resolution response packet is, for example, an ARP reply packet.
アドレス解決要求パケットは、少なくとも、送信元MACアドレス、送信先MACアドレス、要求元の通信装置、具体的には、アドレス解決要求パケットを送信する通信装置のMACアドレス及びIPアドレスである要求元MACアドレス及び要求元IPアドレス、要求先の通信装置、具体的には、MACアドレスを得ようとする通信装置のMACアドレス及びIPアドレスである要求先MACアドレス及び要求先IPアドレスを含む。なお、アドレス解決要求を行う時点では、送信先MACアドレス及び要求先MACアドレスは不明であるため、それらのMACアドレスの値は、任意のMACアドレスの値になる。例えば、送信先MACアドレスはブロードキャストアドレスに、要求先MACアドレスは空の値になる。 The address resolution request packet is at least a source MAC address, a destination MAC address, a request source communication device, specifically, a request source MAC address that is a MAC address and an IP address of a communication device that transmits an address resolution request packet. And the request source IP address, the request destination communication device, specifically, the request destination MAC address and the request destination IP address which are the MAC address and IP address of the communication device to obtain the MAC address. Note that since the transmission destination MAC address and the request destination MAC address are unknown at the time of making the address resolution request, the values of those MAC addresses are arbitrary MAC address values. For example, the transmission destination MAC address is a broadcast address, and the request destination MAC address is an empty value.
アドレス解決応答パケットは、少なくとも、送信元MACアドレス、送信先MACアドレス、応答元の通信装置、具体的には、アドレス解決応答パケットを送信する通信装置のMACアドレス及びIPアドレスである応答元MACアドレス及び応答元IPアドレス、応答先の通信装置、具体的には、アドレス解決応答パケットを送信すべきアドレス解決要求パケットを送信した通信装置のMACアドレス及びIPアドレスである応答先MACアドレス及び応答先IPアドレスを含む。なお、アドレス解決要求によって得ようとする通信装置のMACアドレスは、アドレス解決応答パケットに含まれる応答元のMACアドレスである。 The address resolution response packet is at least a source MAC address, a destination MAC address, a response source communication device, specifically, a response source MAC address that is a MAC address and an IP address of a communication device that transmits the address resolution response packet. And the response source IP address, the response destination communication device, specifically, the response destination MAC address and the response destination IP which are the MAC address and IP address of the communication device that has transmitted the address resolution request packet to which the address resolution response packet should be transmitted Contains an address. Note that the MAC address of the communication device to be obtained by the address resolution request is the response source MAC address included in the address resolution response packet.
仮想デフォルトゲートウェイは、経路表104上にのみ存在する仮想的な存在であるため、仮想デフォルトゲートウェイに対してアドレス解決要求パケットを送信しても、仮想デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットが送信されることはない。また、通信に使用する通信インタフェースに設定されるデフォルトゲートウェイに関する経路情報は経路表104上に存在しないため、通信スタック103が通信に使用する通信インタフェースに設定されるデフォルトゲートウェイに対してアドレス解決要求パケットを送信することはない。従って、転送制御部300は、仮想デフォルトゲートウェイのMACアドレス、及び通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得るための処理を行う。
Since the virtual default gateway is a virtual existence that exists only on the routing table 104, even if an address resolution request packet is transmitted to the virtual default gateway, an address resolution response packet including the MAC address of the virtual default gateway is received. Never sent. Further, since the route information related to the default gateway set for the communication interface used for communication does not exist on the route table 104, the address resolution request packet is sent to the default gateway set for the communication interface used by the
仮想デフォルトゲートウェイのMACアドレス、及び通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得るための処理について説明する。通信スタック103が送信した仮想デフォルトゲートウェイに対するアドレス解決要求パケットを、パケット転送部200が受信した際、具体的には、パケット転送部200が仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信したことによる新規フロー検出通知を、転送制御部300が受信した際、転送制御部300は、アドレス情報管理部304を通じて複数の通信インタフェース101の各通信インタフェースのアドレス情報を取得し、通信インタフェース毎に設定されるデフォルトゲートウェイのIPアドレスを得る。そして、各々のデフォルトゲートウェイに対するアドレス解決要求パケットを生成し、生成したパケットを各々の通信インタフェースに送信する指示と共に、パケット転送部200に送信する。パケット転送部200は、その指示に従い、各々のデフォルトゲートウェイに対するアドレス解決要求パケットを送信する。
A process for obtaining the MAC address of the virtual default gateway and the MAC address of the default gateway set in the communication interface used for communication will be described. When the
なお、仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信した際、パケット転送部200から新規フロー検出通知が送信されるようにするため、仮想デフォルトゲートウェイに対するアドレス解決要求パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。なお、仮想デフォルトゲートウェイに対するアドレス解決要求パケットのフローに対する新規フロー検出通知には、アドレス解決要求パケットそのものが含まれているものとする。
Note that, when an address resolution request packet for the virtual default gateway is received, a new flow detection notification is transmitted from the
パケット転送部200が各々のデフォルトゲートウェイに対するアドレス解決要求パケットを送信することで、各々のデフォルトゲートウェイから、各々デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットが通信装置100に対して送信される。パケット転送部200が、各々のデフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信した際、具体的には、パケット転送部200が各々のデフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信したことによる新規フロー検出通知を、転送制御部300が受信した際、その新規フロー検出通知に含まれるフロー情報に基づき、各々のデフォルトゲートウェイのMACアドレスを取得し、取得した各々のデフォルトゲートウェイのMACアドレスを、アドレス情報管理部304を通じてアドレス情報記憶部303に記憶する。
When the
各々のデフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信した際、パケット転送部200から新規フロー検出通知が送信されるようにするため、各々のデフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。なお、各々のデフォルトゲートウェイから送信されるアドレス解決応答パケットのフローに対する新規フロー検出通知には、アドレス解決応答パケットそのものが含まれているものとする。
When an address resolution response packet including the MAC address of each default gateway is received, a new flow detection notification is transmitted from the
そして、全てのデフォルトゲートウェイからアドレス解決応答パケットを受信し、全てのデフォルトゲートウェイのMACアドレスが得られた時点で、予め転送制御部300に設定する任意の値から成る仮想MACアドレスである仮想デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを生成し、生成したパケットを仮想インタフェース102に送信する。
Then, when the address resolution response packet is received from all the default gateways and the MAC addresses of all the default gateways are obtained, the virtual default gateway that is a virtual MAC address composed of an arbitrary value set in advance in the
上記のような処理を行うことで、通信スタック103がパケットを送信するために必要な仮想デフォルトゲートウェイのMACアドレス、及びパケット転送ルール生成部306がパケット転送ルールを生成するために必要な通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得ることができる。
By performing the processing as described above, the MAC address of the virtual default gateway necessary for the
なお、仮想デフォルトゲートウェイのMACアドレスについて、通信スタック103が持つアドレス解決テーブルに、仮想デフォルトゲートウェイのIPアドレスに対応するMACアドレスとして仮想MACアドレスを予め登録することで、通信スタック103が仮想デフォルトゲートウェイのMACアドレスを得られるようにしてもよい。更に、複数の通信インタフェース101の通信インタフェース毎に設定される各々のデフォルトゲートウェイのMACアドレスを任意の方法によって得た上で、アドレス解決テーブルに各々のデフォルトゲートウェイのIPアドレスに対応する各々のデフォルトゲートウェイのMACアドレスを予め登録しておき、アドレス情報管理部304がアドレス解決テーブルを参照することによって得た各々のデフォルトゲートウェイのMACアドレスをアドレス情報記憶部303に記憶させることで、パケット転送ルール生成部306がパケット転送ルールを生成するために必要なデフォルトゲートウェイのMACアドレスを得られるようにしてもよい。ただし、その場合、通信インタフェースのアドレス情報に変化が発生した際、アドレス解決テーブルの内容も変更しなければならない。
For the MAC address of the virtual default gateway, by registering the virtual MAC address in advance in the address resolution table of the
また、上記のアドレス解決処理において、仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信した時点で、仮想デフォルトゲートウェイのMACアドレスである仮想MACアドレス含むアドレス解決応答パケットを生成し、生成したパケットを仮想インタフェース102に送信してもよい。ただし、その場合、各々のデフォルトゲートウェイから送信されたアドレス解決応答パケットを受信し、各々のデフォルトゲートウェイのIPアドレスに対応する各々のデフォルトゲートウェイのMACアドレスが得られるまで、通信を行うことができない。
In the above address resolution processing, when an address resolution request packet for the virtual default gateway is received, an address resolution response packet including a virtual MAC address that is the MAC address of the virtual default gateway is generated, and the generated packet is transmitted to the
パケット転送部管理部307は、パケット転送部200の動作を制御するための任意のプロトコルによってパケット転送部200を管理する。パケット転送ルール生成部306がパケット転送ルールを生成した際、パケット転送部管理部307は、生成したパケット転送ルールを設定指示と共に、パケット転送部200に送信する。
The packet transfer
パケット転送ルール生成部306のパケット転送ルール生成処理において、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報が、使用インタフェース情報記憶部301に存在しない場合もあり得る。その場合、複数の通信インタフェース101のうちのいずれかを、デフォルトの通信インタフェースに予め設定しておき、その通信インタフェースを通信に使用する通信インタフェースとして、パケット転送ルールを生成してもよい。また、パケットを廃棄する等の、任意のアクションを含むデフォルトのアクション情報を予め設定しておき、新規フロー検出通知に含まれるフロー情報、及びデフォルトのアクション情報に基づき、パケット転送ルールを生成してもよい。
In the packet transfer rule generation process of the packet transfer
また、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に、存在しない通信インタフェースの情報が設定されていた場合、パケットを廃棄する等の、任意のアクションを含む、そのような使用インタフェース情報に対するデフォルトのアクション情報を予め設定しておき、新規フロー検出通知に含まれるフロー情報、及びデフォルトのアクション情報に基づき、パケット転送ルールを生成してもよい。
In addition, information of a nonexistent communication interface was set in information that can uniquely identify any of the plurality of
更に、複数の通信インタフェース101の各通信インタフェースのアドレス情報に、デフォルトゲートウェイの情報、具体的には、デフォルトゲートウェイのIPアドレスが含まれない場合もあり得る。アドレス情報にデフォルトゲートウェイの情報が含まれない通信インタフェースを使用する場合、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことはできない。その場合、使用インタフェース情報管理部302において、アドレス情報にデフォルトゲートウェイの情報が含まれない通信インタフェースを使用することを定める使用インタフェース情報を設定できないようにする対応を行ってもよい。また、パケットを廃棄する等の、任意のアクションを含む、そのような使用インタフェース情報に対するデフォルトのアクション情報を予め設定しておき、デフォルトのアクション情報に基づき、パケット転送ルールを生成してもよい。
Further, the address information of each communication interface of the plurality of
ユーザ又は任意のプログラムにより、使用インタフェース情報管理部302を通じて使用インタフェース情報記憶部301に記憶される使用インタフェース情報が変更された際、変更された使用インタフェース情報に基づき生成されたパケット転送ルールも変更する必要がある。
When the use interface information stored in the use interface
使用インタフェース情報が変更された際、転送制御部300は、変更された使用インタフェース情報に含まれるフロー情報に適合する全てのパケット転送ルールを、パケット転送部200のパケット転送ルール記憶部201に記憶されているパケット転送ルールテーブルからパケット転送部管理部307を通じて取得し、取得した各々のパケット転送ルールの内容を、変更された使用インタフェース情報に基づく内容に変更し、変更した各々のパケット転送ルールを、変更を行う設定指示と共に、パケット転送部管理部307を通じてパケット転送部200に送信することで、パケット転送ルールを変更する。若しくは、変更された使用インタフェース情報に含まれるフロー情報に適合する全てのパケット転送ルールを、パケット転送部管理部307を通じて削除し、改めてパケット転送ルールを生成するように促す対応を行ってもよい。
When the used interface information is changed, the
本実施形態では、通信装置100上で動作する任意の通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、通信プログラム105が送信したパケットが、通信スタック103が行う経路制御によって仮想デフォルトゲートウェイに送信され、更に、パケット転送部200によって使用インタフェース情報管理部302を通じて設定される使用インタフェース情報によって特定される通信に使用する通信インタフェースを介して接続されるネットワーク上のデフォルトゲートウェイに転送される。優位に設定した通信インタフェース以外の通信インタフェースを介して接続するネットワークを利用する場合、通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことができない特許文献1記載の方法とは異なり、複数の通信インタフェース101を介して接続するネットワークのうちいずれのネットワークを利用する場合でも、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことが可能である。
In the present embodiment, when an
また、通信プログラム105が通信に使用する通信インタフェースを選択可能にするために、通信プログラム105を変更するといった特別な対応を必要としない。ネットワーク側からは、通信装置100は通常のIP通信の仕組みで通信を行っているように見えるため、特定の機構や対向の通信装置を用意するといったネットワーク側における特別な対応を必要としない。また、特定の通信装置の任意のアドレスの情報を予め登録しておくといった対応も必要とせずに、通信を行うことができる。
Further, in order to enable the
更に、通信プログラム105からは、通信に使用する通信インタフェースによらず、仮想インタフェース102、並びに仮想デフォルトゲートウェイを介して通信が行われるように見えるため、使用インタフェース情報に含まれる通信に使用する通信インタフェースが変更された場合、DHCPのリース期間切れや通信装置の移動に伴うハンドオーバーの発生等によって通信インタフェースのアドレス情報に変化が発生した場合等において、通信プログラム105にそれを意識させることなしに通信を行うことができる。
Further, since the
フロー単位のネットワーク制御方式を利用したこと、及び使用インタフェース情報を通じてフロー毎に通信に使用する通信インタフェースを指定可能にしたことにより、ユーザ又は任意のプログラムが、任意の要求や条件に基づき、フロー毎に通信に利用するネットワークを選択することができる。すなわち、異なる通信の特性を持つ通信プログラムが送受信するトラフィックは、いくつかのフローの集合であると捉えられるので、フロー単位というより細かい粒度で、通信装置上で動作する通信プログラムが通信に利用するネットワークを任意に選択することが可能であると言える。 By using the network control method in units of flows and by specifying the communication interface to be used for communication for each flow through the used interface information, the user or any program can be specified for each flow based on any request or condition. The network to be used for communication can be selected. In other words, traffic transmitted and received by communication programs with different communication characteristics is considered to be a set of several flows, so communication programs that operate on a communication device with a finer granularity of flow units use it for communication. It can be said that the network can be arbitrarily selected.
例えば、ユーザが、通信量の小さい電子メールを送受信する通信プログラムのトラフィック、具体的には、送信先ポート番号が25番(SMTP、Simple Mail Transfer Protocol)又は110番(POP3、Post Office Protocol version 3)のフローに対しては、3Gネットワークを利用することを定める使用インタフェース情報を設定し、Web上の映像ストリーミングのようなトラフィック量の大きい通信を行う通信プログラムのトラフィック、具体的には、送信先ポート番号が80番(HTTP、HyperText Transfer Protocol)のフローに対しては、無線LANネットワークを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、各々の通信プログラムのトラフィックは、3G並びに無線LANのネットワークを利用して通信が行われるようになる。 For example, the traffic of a communication program in which a user transmits / receives an electronic mail with a small communication volume, specifically, the destination port number is 25 (SMTP, Simple Mail Transfer Protocol) or 110 (POP3, Post Office Protocol version 3). ) For the flow of communication program that sets the use interface information that defines the use of the 3G network and performs communication with a large amount of traffic such as video streaming on the Web, specifically, the transmission destination For the flow with port number 80 (HTTP, HyperText Transfer Protocol), use interface information that determines the use of the wireless LAN network is set. Embodiments of the present invention, the traffic of each communication program is as communication is performed using a network of 3G and wireless LAN.
例えば、ユーザが、任意のネットワーク上の通信装置との通信を許可しない場合、具体的には、送信元IPアドレス又は送信先IPアドレスが通信を許可しない通信装置のIPアドレスであるフローに対しては、存在しない通信インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、通信を許可しない通信装置との間で送受信されるパケットを廃棄することができる。 For example, when the user does not permit communication with a communication device on an arbitrary network, specifically, for a flow in which the source IP address or the destination IP address is the IP address of a communication device that does not permit communication By setting use interface information that defines the use of a non-existing communication interface, according to the embodiment of the present invention, it is possible to discard a packet transmitted / received to / from a communication device that does not permit communication.
例えば、複数の通信インタフェース101の各通信インタフェースが通信可能か否かを監視する通信装置100上で動作するプログラムが、各通信インタフェースの状態に基づき、動的に使用インタフェース情報を設定することで、任意の通信プログラムのフローが通信に利用するネットワークを動的に変更することができる。無線LANネットワークが切断され、通信不可になった場合、無線LANネットワークを利用することを定める使用インタフェース情報から、3Gネットワークを利用することを定める使用インタフェース情報に変更することで、本発明の実施形態により、任意の通信プログラムのフローが、3Gネットワークを利用して通信を行うようになる。
For example, a program that operates on the
例えば、複数の通信インタフェース101に含まれる無線インタフェースの受信電界強度を監視する通信装置100上で動作するプログラムが、各無線インタフェースの受信電界強度に基づき、予め設定した任意の閾値よりも受信電界強度が大きい無線インタフェースを、通信に使用する通信インタフェースとして選択し、その無線インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、任意の通信プログラムのフローが、最も通信品質が良いと思われる無線インタフェースを利用して通信を行うようになる。
For example, a program that operates on the
例えば、複数の通信インタフェース101の各通信インタフェースのパケット送受信数を監視する通信装置100上で動作するプログラムが、各通信インタフェースのパケット送受信数、及び予め設定した任意のパケット送受信数の上限に基づき、任意の通信プログラムのフローが通信に使用する通信インタフェースのパケット送受信数が上限に達した際、他の通信インタフェース、若しくは存在しない通信インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、パケット送受信数が上限に達した通信インタフェースを使用する任意の通信プログラムのフローに対し、他の通信インタフェースを使用して通信を行うようにすること、若しくはパケットを廃棄するようにするといった対応を行うことができる。
For example, a program that operates on the
(第2の実施形態)
図8は、第2の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図である。第1の実施形態における通信装置の構成要素と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。第2の実施形態における通信装置100のパケット転送部200は、通信装置100内部にブリッジ等の構造を構成する。第2の実施形態においては、パケット転送部200がブリッジを構成する場合を例として説明する。
(Second Embodiment)
FIG. 8 is a block diagram illustrating a more detailed configuration example of the communication apparatus focusing on elements related to communication in the second embodiment. Constituent elements similar to those of the communication device in the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted. The
パケット転送部200がブリッジを構成する場合、通信スタック103は、パケット転送部200が構成するブリッジに接続する仮想インタフェース102、具体的には、ブリッジのローカルポートを端点としてパケットの送受信を行う必要がある。そのため、第1の実施形態のように、複数の通信インタフェース101の各通信インタフェースが通信スタック103に接続され、通信スタック103が複数の通信インタフェース101を介してパケットの送受信を行うことはできない。従って、第1の実施形態において説明したパケット転送部200及び転送制御部300によるパケット転送の方法を、第2の実施形態における通信装置100にそのまま適用しても、複数の通信インタフェース101を介して接続するネットワークを利用して通信を行うことができない。
When the
そこで、第2の実施形態においては、仮想インタフェース102を端点として、通信スタック103が仮想インタフェース102を介してパケットの送受信を行うことを可能にするための仮想インタフェース102のIPアドレスの設定、及び通信スタック103が持つ経路表104の設定を行い、それらの設定に基づくパケット転送部200及び転送制御部300によるパケット転送を行うことで、通信装置の通信スタックがいずれかの通信インタフェースを端点として通信を行う必要がある場合においても、通信装置が備える複数の通信インタフェースを介して接続するネットワークを利用して通信を行うことを可能にする。
Therefore, in the second embodiment, setting the IP address of the
第2の実施形態における通信装置100は、第1の実施形態と同様に、複数の通信インタフェース101及び仮想インタフェース102を備えるが、通信装置100の通信スタック103には、仮想インタフェース102のみが接続される。パケット転送部200には、複数の通信インタフェース101及び仮想インタフェース102が接続される。
The
図8に示す構成により、パケット転送部200は、通信装置100上で動作する通信プログラム105から送信されたパケットを、仮想インタフェースから受信できる。また、他の通信装置から送信されたパケットを、複数の通信インタフェース101のうちのいずれかの通信インタフェースから受信できる。
With the configuration illustrated in FIG. 8, the
第2の実施形態におけるパケット転送部200及び転送制御部300によるパケット転送を行う前の時点では、仮想インタフェース102には、第1の実施形態と同様に、任意の値から成る仮想のアドレス情報が設定される。仮想インタフェース102のアドレス情報は、少なくとも、仮想MACアドレスと、仮想IPアドレスと、仮想デフォルトゲートウェイのMACアドレス及びIPアドレスとを含む。
At the point before packet transfer by the
第2の実施形態におけるアドレス情報管理部304は、パケット転送部200に接続する複数の通信インタフェース101の各通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を取得し、アドレス情報記憶部303に記憶させる。更に、取得した複数の通信インタフェース101の各通信インタフェースのアドレス情報に含まれる各通信インタフェースのIPアドレスを、仮想インタフェース102に設定する。すなわち、第2の実施形態における仮想インタフェース102には、1つ以上のIPアドレス、具体的には、仮想IPアドレス、及び複数の通信インタフェース101の各通信インタフェースに設定されるIPアドレスが設定される。
The address
第2の実施形態における経路表管理部305は、アドレス情報記憶部305に記憶されるアドレス情報に含まれる複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイ、及び仮想インタフェース102に設定される仮想デフォルトゲートウェイのうち、仮想デフォルトゲートウェイに関する経路情報のみを、通信スタック103が持つ経路表104に設定する。更に、経路表管理部305は、出力インタフェースが複数の通信インタフェース101の各通信インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を、経路表104から削除し、それらの経路情報の代わりに、出力インタフェースが仮想インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を、経路表104に設定する。
The routing
図9は、第2の実施形態における経路表の構成例である。第2の実施形態における経路表管理部305によって経路表104は、図9のように設定される。複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、第1の実施形態とは異なり、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェースである経路情報が設定される。また、仮想インタフェース102を介して接続する仮想ネットワークへの経路に関する経路情報として、送信先ネットワークが仮想ネットワークであり、出力インタフェースが仮想インタフェースである経路情報が設定される。更に、デフォルトゲートウェイに関する経路情報として、ネクストホップが仮想インタフェースに設定される仮想デフォルトゲートウェイである経路情報のみが設定される。
FIG. 9 is a configuration example of a routing table in the second embodiment. The routing table 104 is set as shown in FIG. 9 by the routing
なお、経路表104に設定するデフォルトゲートウェイに関する経路情報について、仮想インタフェース102に設定される仮想デフォルトゲートウェイに関する経路情報だけでなく、更に複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイに関する経路情報を設定してもよい。ただし、その場合、仮想デフォルトゲートウェイに関する経路情報を優位に設定する。
The route information related to the default gateway set in the route table 104 is not only the route information related to the virtual default gateway set in the
また、経路表104に設定する複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報について、出力インタフェースが仮想インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報だけでなく、更に出力インタフェースが複数の通信インタフェース101の各通信インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を設定してもよい。ただし、その場合、出力インタフェースが仮想インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を優位に設定する。
Further, with respect to route information related to routes to each network connected via a plurality of
上記のような仮想インタフェース102のIPアドレスの設定、及び経路表104の設定を行うことで、通信スタック103が行う経路制御によって通信プログラム105から送信されたパケットが仮想インタフェース102を介して送信されるようになる。具体的には、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合だけでなく、複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合においても、仮想インタフェース102を介してパケットが送信されるようになる。
By setting the IP address of the
通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、通信スタック103において経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスに、パケットの送信先MACアドレスは、仮想デフォルトゲートウェイのMACアドレスに、パケットの送信元IPアドレスは、仮想インタフェース102に設定される仮想IPアドレスに、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
When the
一方、通信プログラム105が複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合、通信スタック103において経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスになり、パケットの送信先MACアドレスは、送信先である通信装置のMACアドレスになり、パケットの送信元IPアドレスは、アドレス情報管理部304によって仮想インタフェース102に設定される送信先の通信装置が存在するネットワークに接続する通信インタフェースのIPアドレスになり、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
On the other hand, when the
次に、第2の実施形態のパケット転送ルール生成部306におけるパケット転送ルールの生成方法について説明する。図10は、第2の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャートである。
Next, a packet transfer rule generation method in the packet transfer
パケット転送ルール生成部306は、新規フロー検出通知を受信した際、新規フロー検出通知に含まれるフロー情報を参照し、フロー情報に含まれる受信ポート番号に基づき、パケットを受信した通信インタフェースを特定する。そして、パケットを受信した通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS301)。なお、フロー情報に含まれる受信ポート番号によって特定されるパケットを受信した通信インタフェースは、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースである。
When the packet transfer
次に、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報を参照し、受信したパケットの送信元IPアドレスを特定する。そして、パケットを受信した通信インタフェースのアドレス情報に含まれるサブネットマスクに基づき、特定した送信元IPアドレスから求めたネットワークアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのいずれかと等しいか否か判定する(ステップS302)。すなわち、受信したパケットの送信元IPアドレスに基づき、そのパケットがパケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置から送信されたパケットか否か判定する。
Next, the packet transfer
特定した送信元IPアドレスから求めたネットワークアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのいずれとも等しくない場合(ステップS302におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置ではなく、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置から送信されたパケットであると判断できる。
When the network address obtained from the identified source IP address is not equal to any of the network addresses obtained from the IP addresses of the communication interfaces 101 of the plurality of
通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行う場合、第1の実施形態と同様に、仮想インタフェース102に設定される仮想デフォルトゲートウェイに関する経路情報のみが経路表104に設定されるため、通信スタック103が行う経路制御によって仮想インタフェース102からパケットが送信される。従って、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置が送信したパケットを受信する場合、通信スタック103が仮想インタフェース102を介してパケットを受信できるようにするための対応が必要である。
When communication is performed with a communication device on a network other than the network to which the
そこで、特定した送信元IPアドレスから求めたネットワークアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのいずれとも等しくない場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、アクション情報とを含むパケット転送ルールを生成する。このアクション情報は、送信先IPアドレスを仮想インタフェース102に設定される仮想IPアドレスに書き換えるアクション(ステップS303)、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに書き換えるアクション(ステップS304)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS305)から成る。
Therefore, if the network address obtained from the identified source IP address is not equal to any of the network addresses obtained from the IP addresses of the communication interfaces 101 of the plurality of
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットを、通信スタック103が仮想インタフェース102を介して受信できるようになる。
Packet transfer based on such packet transfer rules enables the
特定した送信元IPアドレスから求めたネットワークアドレスと、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのうちのいずれかとが等しい場合(ステップS302におけるYes)、特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しいか否か判定する(ステップS306)。
When the network address obtained from the identified source IP address is equal to one of the network addresses obtained from the IP addresses of the communication interfaces 101 of the plurality of
特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのいずれとも等しくない場合(ステップS306におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上の通信装置から送信されたパケットであると判断できる。一方、特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しい場合(ステップS306におけるYes)、通信プログラム105が送信したパケットであると判断できる。
When the identified source IP address is not equal to any of the IP addresses of the communication interfaces 101 of the plurality of
特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのいずれとも等しくない場合(ステップS306におけるNo)、第2の実施形態における通信装置100においては、複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合においても、仮想インタフェース102を介してパケットが送信される。従って、複数の通信インタフェース101を介して接続するネットワーク上の通信装置が送信したパケットを受信する場合においても、通信スタック103が仮想インタフェース102を介してパケットを受信できるようにするための対応が必要である。
When the identified transmission source IP address is not equal to any of the IP addresses of the communication interfaces of the plurality of
そこで、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに書き換えるアクション(ステップS304)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS305)から成るアクション情報とを含むパケット転送ルールを生成する。
Therefore, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットを、通信スタック103が仮想インタフェース102を介して受信できるようになる。
Packet transfer based on such packet transfer rules enables the
特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しい場合(ステップS306におけるYes)、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットの送信先MACアドレスを特定する。そして、特定した送信先MACアドレスと、仮想インタフェース102に設定される仮想デフォルトゲートウェイのMACアドレスとが等しいか否か判定する(ステップS307)。
When the identified transmission source IP address is equal to one of the IP addresses of the communication interfaces of the plurality of
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS307におけるYes)、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置に仮想デフォルトゲートウェイを介して送信するパケットであると判断できる。一方、特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS307におけるNo)、通信プログラム105が、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上の通信装置に直接送信するパケットであると判断できる。
When the identified destination MAC address is equal to the MAC address of the virtual default gateway (Yes in step S307), the
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS307におけるYes)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報を、使用インタフェース情報管理部302を通じて取得する。そして、取得した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定する(ステップS308)。なお、通信に使用する通信インタフェースは、複数の通信インタフェース101のうちのいずれかの通信インタフェースである。
When the identified destination MAC address is equal to the MAC address of the virtual default gateway (Yes in step S307), the packet transfer
加えて、特定した通信に使用する通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS309)。 In addition, the address information of the communication interface used for the specified communication is acquired through the address information management unit 304 (step S309).
そして、仮想デフォルトゲートウェイに送信すべきパケットを、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに転送するために、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、アクション情報とを含むパケット転送ルールを生成する。このアクション情報は、送信元MACアドレスを通信に使用する通信インタフェースに設定されたMACアドレスに書き換えるアクション、送信元IPアドレスを通信に使用する通信インタフェースに設定されたIPアドレスに書き換えるアクション(ステップS310)、送信先MACアドレスを通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスに書き換えるアクション(ステップS311)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS312)から成る。
Then, in order to transfer the packet to be transmitted to the virtual default gateway to the default gateway on the network connected via the communication interface used for communication, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに送信されるようになる。
By packet transfer based on such a packet transfer rule, a packet received by the
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS307におけるNo)、通信プログラム105が、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上の通信装置に送信するパケットであると判断できる。第1の実施形態においては、複数の通信インタフェース101が通信スタック103に接続され、通信スタック103が複数の通信インタフェース101を使用してパケットの送受信を行うことが可能である。そのため、複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合、通信スタック103が行う経路制御によって送信先の通信装置が存在するネットワークに接続する通信インタフェースを介してパケットが送信されるため、パケット転送部200は、パケットを受信した通信インタフェース、すなわち、通信に使用する通信インタフェースを、フロー情報に含まれる受信ポート番号によって特定することができた。しかし、第2の実施形態においては、通信スタック103が行う経路制御によって仮想インタフェース102を介してパケットが送信されるため、フロー情報に含まれる受信ポート番号によって通信に使用する通信インタフェースを特定することはできない。従って、複数の通信インタフェース101を介して接続するネットワーク上の通信装置との通信を行う場合においても、通信に使用する通信インタフェースを特定する必要がある。
A network to which the
第2の実施形態においては、複数の通信インタフェース101の各通信インタフェースのIPアドレスを仮想インタフェース102に設定したこと、及び出力インタフェースが仮想インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を経路表104に設定したことにより、通信スタック103において経路制御が行われた後、パケット転送部200がパケットを受信する時点では、パケットの送信元IPアドレスは、送信先の通信装置が存在するネットワークに接続する通信インタフェースのIPアドレスになる。従って、パケットの送信元IPアドレスに基づき、通信に使用する通信インタフェースを特定することができる。
In the second embodiment, the IP address of each communication interface of the plurality of
特定した送信先MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合、パケット転送ルール生成部306は、複数の通信インタフェース101の各通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS313)。
If the identified destination MAC address and the MAC address of the virtual default gateway are not equal, the packet transfer
そして、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットの送信元IPアドレスを特定し、特定した送信元IPアドレスと、設定されるIPアドレスとが等しい複数の通信インタフェース101のうちのいずれかの通信インタフェースを、通信に使用する通信インタフェースとして特定する(ステップS314)。
Then, based on the flow information included in the new flow detection notification, the source IP address of the received packet is specified, and the specified source IP address and the set IP address are the same among the plurality of
特定した通信に使用する通信インタフェースに基づき、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、アクション情報とを含むパケット転送ルールを生成する。このアクション情報は、送信元MACアドレスを通信に使用する通信インタフェースに設定されるMACアドレスに書き換えるアクション(ステップS315)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS316)から成る。
Based on the communication interface used for the identified communication, the packet transfer
このようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、送信先の通信装置が存在するネットワークに接続する通信インタフェースから送信先の通信装置に送信されるようになる。
By packet transfer based on such a packet transfer rule, the packet received by the
第2の実施形態における通信スタック103は、第1の実施形態と同様に、パケットの送信に先んじて、送信先の通信装置のIPアドレスに基づき、送信先の通信装置のMACアドレスを得るためのアドレス解決を行う。しかし、第2の実施形態における通信装置100は、第1の実施形態とは異なり、仮想インタフェース102を介してパケットの送受信を行うため、複数の通信インタフェース101の各通信インタフェース上で直接アドレス解決を行うことができない。そのため、通常のアドレス解決方法では、送信先の通信装置のMACアドレスを得ることだけでなく、他の通信装置から送信されるアドレス解決要求に対応することもできない。
As in the first embodiment, the
そこで、第2の実施形態における転送制御部300は、第2の実施形態における通信装置100においてアドレス解決を可能にするための処理を行う。図11は、第2の実施形態における転送制御部のアドレス解決処理の例を示すフローチャートである。
Therefore, the
パケット転送部200がアドレス解決パケットを受信した際、パケット転送部200は、アドレス解決パケットのフローに対する新規フロー検出通知を転送制御部300に送信する(ステップS401)。第2の実施形態における転送制御部300のアドレス解決処理においては、アドレス解決パケットを受信した際、パケット転送部200から新規フロー検出通知が送信されるようにするため、アドレス解決パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。なお、アドレス解決パケットのフローに対する新規フロー検出通知には、アドレス解決パケットそのものが含まれているものとする。
When the
転送制御部300は、アドレス解決パケットのフローに対する新規フロー検出通知を受信した際、複数の通信インタフェース101の各通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS402)。そして、アドレス解決パケットの内容を参照し、受信したアドレス解決パケットが、アドレス解決要求パケットなのか、アドレス解決応答パケットなのか判定する(ステップS403)。
When receiving a new flow detection notification for the address resolution packet flow, the
受信したアドレス解決パケットが、アドレス解決要求パケットである場合(ステップS403における「要求」)、アドレス解決要求パケットに含まれる要求先IPアドレスを参照し、要求先IPアドレスと、複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスとが等しいか否かに基づき、受信したアドレス解決要求パケットが、通信装置100に対するアドレス解決要求パケットなのか否か、具体的には、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決要求パケットなのか否か判定する(ステップS404)。
If the received address resolution packet is an address resolution request packet (“request” in step S403), the request destination IP address included in the address resolution request packet is referred to, and the request destination IP address and the plurality of
複数の通信インタフェース101の各通信インタフェースに対するアドレス解決要求パケットである場合(ステップS404におけるYes)、アドレス解決要求パケットを送信した要求元の通信装置に対するアドレス解決応答パケットとして、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成する。その理由は、受信したアドレス解決要求パケットを仮想インタフェース102に転送し、通信スタック103のアドレス解決処理によりアドレス解決応答パケットを生成する場合、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスではなく、仮想インタフェース102に設定される仮想MACアドレスがアドレス解決応答パケットに含まれてしまうためである。
When it is an address resolution request packet for each communication interface of the plurality of communication interfaces 101 (Yes in step S404), the address resolution request packet is received as an address resolution response packet for the requesting communication apparatus that has transmitted the address resolution request packet An address resolution response packet including the communication interface MAC address is generated. The reason is that when the received address resolution request packet is transferred to the
転送制御部300は、要求元の通信装置に対するアドレス解決応答パケットを生成し(ステップS405)、生成したパケットを、アドレス解決要求パケットを受信した通信インタフェースに送信する指示と共に、パケット転送部200に送信する。パケット転送部200は、その指示に従い、生成したパケットを送信する(ステップS406)。
The
要求元の通信装置に対するアドレス解決応答パケットとして、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成し、パケットを受信した通信インタフェースから要求元の通信装置に送信することで、他の通信装置からのアドレス解決要求に対応することができる。 An address resolution response packet including the MAC address of the communication interface that has received the address resolution request packet is generated as an address resolution response packet for the request source communication apparatus, and is transmitted from the communication interface that has received the packet to the request source communication apparatus. Thus, it is possible to respond to an address resolution request from another communication device.
また、上記のような処理を行うことで、他の通信装置から送信されたアドレス解決要求パケットが仮想インタフェース102に転送されることがないため、通信スタック103のアドレス解決処理によって仮想インタフェース102から要求元の通信装置に対するアドレス解決応答パケットが送信されることはない。
Further, since the address resolution request packet transmitted from another communication device is not transferred to the
受信したアドレス解決要求パケットが、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決要求パケットでない場合(ステップS404におけるNo)、仮想インタフェース102を介して通信スタック103が送信先の通信装置に送信したアドレス解決要求パケットであると判断できる。なお、アドレス解決要求パケットを受信した通信インタフェースが仮想インタフェース102以外である場合、通信装置100に対するアドレス解決要求パケットではないと判断できるので、受信したパケットを廃棄する(図示せず)。
If the received address resolution request packet is not an address resolution request packet for each communication interface of the plurality of communication interfaces 101 (No in step S404), the address transmitted by the
受信したアドレス解決要求パケットが、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決要求パケットでない場合、転送制御部300は、アドレス解決要求パケットに含まれる要求先IPアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しいか否かに基づき、受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットなのか否か判定する(ステップS407)。
When the received address resolution request packet is not an address resolution request packet for each communication interface of the plurality of
受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットである場合(ステップS407におけるYes)、第1の実施形態と同様に、通信インタフェース毎に設定される各々のデフォルトゲートウェイに対するアドレス解決要求を行う。一方、受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットでない場合(ステップS407におけるNo)、仮想インタフェース102を介して通信スタック103が複数の通信インタフェース101を介して接続するネットワーク上の通信装置に送信したアドレス解決要求パケットであると判断できる。
When the received address resolution request packet is an address resolution request packet for the virtual default gateway (Yes in step S407), as in the first embodiment, an address resolution request for each default gateway set for each communication interface. I do. On the other hand, when the received address resolution request packet is not an address resolution request packet for the virtual default gateway (No in step S407), the
受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットである場合(ステップS407におけるYes)、転送制御部300は、通信インタフェース毎に設定される各々のデフォルトゲートウェイに対するアドレス解決要求パケットを生成し(ステップS408)、生成したパケットを、各々の通信インタフェースから送信する指示と共に、パケット転送部200に送信する(ステップS409)。パケット転送部200は、その指示に従い、各々のデフォルトゲートウェイに対するアドレス解決要求のパケットを送信する。
When the received address resolution request packet is an address resolution request packet for the virtual default gateway (Yes in step S407), the
パケット転送部200が仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信した際、複数の通信インタフェース101の各々の通信インタフェースから通信インタフェース毎に設定される各々のデフォルトゲートウェイに対するアドレス解決要求を送信することで、各々のデフォルトゲートウェイから通信装置100に、各々のデフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットが送信される。
When the
受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットでない場合(ステップS407におけるNo)、受信したアドレス解決要求パケットは、仮想インタフェース102を介して通信スタック103が複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上の通信装置に送信したアドレス解決要求パケットであるため、そのアドレス解決要求パケットが要求先の通信装置に送信されるようにするための対応が必要である。
If the received address resolution request packet is not an address resolution request packet for the virtual default gateway (No in step S407), the received address resolution request packet is sent from the
第2の実施形態においては、複数の通信インタフェース101の各通信インタフェースのIPアドレスを仮想インタフェース102に設定したこと、及び出力インタフェースが仮想インタフェースである複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報を経路表104に設定したことにより、仮想インタフェース102を介して通信スタック103が送信するアドレス解決要求パケットに含まれる要求元IPアドレスは、MACアドレスを得ようとする通信装置が存在するネットワークに接続する複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスになる。従って、要求元IPアドレスに基づき、通信に使用する通信インタフェースを特定することができる。
In the second embodiment, the IP address of each communication interface of the plurality of
受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対するアドレス解決要求パケットでない場合、転送制御部300は、アドレス解決要求パケットに含まれる要求元IPアドレスと、設定されるIPアドレスとが等しい複数の通信インタフェース101のうちのいずれかの通信インタフェースを、通信に使用する通信インタフェースとして特定する(ステップS410)。
When the received address resolution request packet is not an address resolution request packet for the virtual default gateway, the
特定した通信に使用する通信インタフェースに基づき、受信したアドレス解決要求パケットに含まれる送信元MACアドレス及び要求元MACアドレスを、通信に使用する通信インタフェースのMACアドレスに書き換え(ステップS411)、送信元MACアドレス及び要求元MACアドレスを書き換えたアドレス解決要求パケットを、通信に使用する通信インタフェースに送信する指示と共に、パケット転送部200に送信する。パケット転送部200は、その指示に従い、送信元MACアドレス及び要求元MACアドレスを書き換えたアドレス解決要求パケットを送信する(ステップS412)。
Based on the communication interface used for the identified communication, the source MAC address and the request source MAC address included in the received address resolution request packet are rewritten to the MAC address of the communication interface used for communication (step S411), and the source MAC The address resolution request packet in which the address and the request source MAC address are rewritten is transmitted to the
要求元IPアドレスに基づき、通信に使用する通信インタフェースを特定し、送信元MACアドレス及び要求元MACアドレスを通信に使用する通信インタフェースのMACアドレスに書き換え、通信に使用する通信インタフェースから送信することで、アドレス解決要求パケットは、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上の要求先の通信装置に送信されるようになる。 By identifying the communication interface used for communication based on the request source IP address, rewriting the source MAC address and the request source MAC address to the MAC address of the communication interface used for communication, and transmitting from the communication interface used for communication The address resolution request packet is transmitted to the requested communication device on the network connected via any one of the plurality of communication interfaces 101.
受信したアドレス解決パケットが、アドレス解決応答パケットである場合(ステップS403における「応答」)、アドレス解決応答パケットに含まれる応答先IPアドレスを参照し、応答先IPアドレスと、複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスとが等しいか否かに基づき、受信したアドレス解決応答パケットが、通信装置100に対するアドレス解決応答パケットなのか否か、具体的には、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決応答パケットなのか否か判定する(ステップS413)。
When the received address resolution packet is an address resolution response packet (“response” in step S403), the response destination IP address and the plurality of
受信したアドレス解決応答パケットが、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決応答パケットでない場合(ステップS413におけるNo)、アドレス解決応答パケットを受信した通信インタフェースが仮想インタフェース102以外である場合、通信装置100に対するアドレス解決応答パケットでないと判断できるので、受信したパケットを廃棄する(S414)。
If the received address resolution response packet is not an address resolution response packet for each communication interface of the plurality of communication interfaces 101 (No in step S413), if the communication interface that received the address resolution response packet is other than the
他の通信装置からアドレス解決要求パケットを受信した際、パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成し、要求元の通信装置に送信することにより、他の通信装置から送信されたアドレス解決要求パケットが仮想インタフェース102に転送されることはないため、仮想インタフェース102から他の通信装置に対するアドレス解決応答パケットが送信されることはない。従って、仮想インタフェース102から送信されるアドレス解決応答パケットについては、考慮しなくてもよい。
When an address resolution request packet is received from another communication device, an address resolution response packet including the MAC address of the communication interface that has received the packet is generated and transmitted to the request source communication device, and transmitted from the other communication device. Since the address resolution request packet is not transferred to the
受信したアドレス解決応答パケットが、複数の通信インタフェース101の各通信インタフェースに対するアドレス解決応答パケットである場合(ステップS413におけるYes)、アドレス解決応答パケットに含まれる応答元IPアドレスと、通信インタフェース毎に設定される各々のデフォルトゲートウェイのIPアドレスとが等しいか否かに基づき、受信したアドレス解決応答パケットが、複数の通信インタフェース101のうちのいずれかの通信インタフェースに設定されるデフォルトゲートウェイが送信したアドレス解決応答パケットなのか否か判定する(ステップS415)。
If the received address resolution response packet is an address resolution response packet for each communication interface of the plurality of communication interfaces 101 (Yes in step S413), the response source IP address included in the address resolution response packet and the setting for each communication interface Address resolution transmitted by the default gateway set in any one of the plurality of
受信したアドレス解決応答パケットが、複数の通信インタフェース101のうちのいずれかの通信インタフェースに設定されるデフォルトゲートウェイが送信したアドレス解決応答パケットである場合(ステップS415におけるYes)、第1の実施形態と同様に、アドレス解決応答パケットを送信したデフォルトゲートウェイのMACアドレスの記憶、及び仮想デフォルトゲートウェイに関するアドレス解決応答を行う。 When the received address resolution response packet is an address resolution response packet transmitted by the default gateway set in any one of the plurality of communication interfaces 101 (Yes in step S415), the first embodiment and Similarly, the MAC address of the default gateway that transmitted the address resolution response packet is stored, and the address resolution response related to the virtual default gateway is performed.
複数の通信インタフェース101のうちのいずれかの通信インタフェースに設定されるデフォルトゲートウェイが送信したアドレス解決応答パケットに含まれる応答元MACアドレスにより、アドレス解決応答パケットを送信したデフォルトゲートウェイのMACアドレスを得ることができる。得られたデフォルトゲートウェイのMACアドレスは、アドレス情報管理部304を通じて記憶する(ステップS416)。そして、全てのデフォルトゲートウェイのMACアドレスが得られたか否か判定し(ステップS417)、全て得られた時点で(ステップS417におけるYes)、転送制御部300は、仮想デフォルトゲートウェイの仮想MACアドレスを含むアドレス解決応答パケットを生成し(ステップS418)、生成したパケットを、仮想インタフェース102から送信する指示と共に、パケット転送部200に送信する(ステップS419)。パケット転送部200は、その指示に従い、仮想デフォルトゲートウェイの仮想MACアドレスを含むアドレス解決応答パケットを送信する。
Obtaining the MAC address of the default gateway that transmitted the address resolution response packet from the response source MAC address included in the address resolution response packet transmitted by the default gateway set in any one of the plurality of
全てのデフォルトゲートウェイのMACアドレスが得られた時点で、仮想デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを生成し、仮想インタフェース102に送信することで、通信スタック103がパケットを送信するために必要な仮想デフォルトゲートウェイのMACアドレス、及びパケット転送ルール生成部306がパケット転送ルールを生成するために必要な通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得ることができる。
Necessary for the
受信したアドレス解決応答パケットが、複数の通信インタフェース101のうちのいずれかの通信インタフェースに設定されるデフォルトゲートウェイが送信したアドレス解決応答パケットでない場合(ステップS415におけるNo)、仮想インタフェース102を介して通信スタック103が送信したアドレス解決要求パケットに対する応答として、要求先の通信装置から送信されたアドレス解決応答パケットであると判断できる。そのアドレス解決応答パケットに含まれる応答先IPアドレスは、要求先の送信装置にアドレス解決要求パケットを送信した際に使用した複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスになる。通信スタック103は、仮想インタフェース102を介してアドレス解決要求パケットを送信するため、通信スタック103が仮想インタフェース102を介して要求先の通信装置が送信したアドレス解決応答パケットを受信できるようにするための対応が必要である。
When the received address resolution response packet is not the address resolution response packet transmitted by the default gateway set in any one of the plurality of communication interfaces 101 (No in step S415), communication is performed via the
その場合、転送制御部300は、受信したアドレス解決応答パケットに含まれる送信先MACアドレス及び応答先MACアドレスを、仮想インタフェース102の仮想MACアドレスに書き換え(ステップS420)、送信先MACアドレス及び応答先MACアドレスを書き換えたアドレス解決応答パケットを、仮想インタフェース102に送信する指示と共に、パケット転送部200に送信する。パケット転送部200は、その指示に従い、送信先MACアドレス及び応答先MACアドレスを書き換えたアドレス解決応答パケットを送信する(ステップS421)。
In this case, the
受信したアドレス解決応答パケットに含まれる送信先MACアドレス及び応答先MACアドレスを仮想インタフェース102の仮想MACアドレスに書き換え、仮想インタフェース102に送信することで、通信スタック103は、仮想インタフェース102を介して、複数の通信インタフェース101を介して接続するネットワーク上の通信装置のMACアドレスを得ることができる。
By rewriting the transmission destination MAC address and the response destination MAC address included in the received address resolution response packet to the virtual MAC address of the
(第3の実施形態)
第1、第2の実施形態においては、ユーザ又は任意のプログラムが使用インタフェース情報管理部302を通じて使用インタフェース情報記憶部301に、フロー毎に複数の通信インタフェース101のうちどの通信インタフェースを使用して通信を行うのかを定める情報である使用インタフェース情報を設定するが、同一のフローに対して、各々が異なる通信インタフェースを使用して通信を行うことを定める、複数の使用インタフェース情報を設定してもよい。
(Third embodiment)
In the first and second embodiments, a user or an arbitrary program communicates with the used interface
図12は、第3の実施形態における使用インタフェース情報記憶部302に記憶される使用インタフェース情報の構成例である。使用インタフェース情報記憶部302には、同一のフローに対する複数の使用インタフェース情報が記憶される。なお、第3の実施形態において、ユーザ又は任意のプログラムは、フロー毎に、そのフローに対する1つ以上の使用インタフェース情報を設定することができる。
FIG. 12 is a configuration example of the used interface information stored in the used interface
第3の実施形態における使用インタフェース情報記憶部302に記憶される同一のフローに対する複数の使用インタフェース情報のうちの各々の使用インタフェース情報は、同一のフロー情報と、各々が異なる複数の通信インタフェース101のうちのいずれかの通信インタフェースを特定する複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含む。その場合、フロー情報のみによってパケット転送ルールの生成において使用する使用インタフェース情報、すなわち、通信に使用する通信インタフェースを特定することはできない。
Of the plurality of used interface information for the same flow stored in the used interface
そこで、使用インタフェース情報を特定するための指標として、いくつかの任意の情報を使用インタフェース情報に含める。図12の構成例においては、使用インタフェース情報は、使用インタフェース情報を特定するための指標として、使用インタフェース情報の優先度と、通信インタフェースを使用して通信を行うことが可能か否かを定める情報である通信可否と、無線インタフェースの受信電界強度の閾値と、通信インタフェースのパケット送受信数の上限とを含む。 Therefore, some arbitrary information is included in the used interface information as an index for identifying the used interface information. In the configuration example of FIG. 12, the used interface information is information that determines the priority of the used interface information and whether or not communication can be performed using the communication interface as an index for identifying the used interface information. Including the communication availability, the threshold value of the received electric field strength of the wireless interface, and the upper limit of the packet transmission / reception number of the communication interface.
第3の実施形態におけるパケット転送部200及び転送制御部300によるパケット転送において、第1、第2の実施形態と同様に、パケット転送部200が任意のパケットを受信したことによる新規フロー検出通知を、転送制御部300が受信した際、第3の実施形態におけるパケット転送ルール生成部306は、受信したパケットのフローに対するパケット転送ルールを生成する。なお、受信したパケットは、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置に送信したパケットである。
In the packet transfer by the
パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報を、使用インタフェース情報管理部302を通じて取得する。取得した受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報が1つのみである場合、第1、第2の実施形態と同様に、取得した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定する。一方、取得した受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報が複数である場合、取得した各々の使用インタフェース情報に含まれる使用インタフェース情報を特定するための指標に基づき、パケット転送ルールの生成に使用する使用インタフェース情報を特定する。
Based on the flow information included in the new flow detection notification, the packet transfer
例えば、取得した複数の受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報のうち、通信可否が可である通信インタフェースのうち優先度の値が最も小さい使用インタフェース情報を、パケット転送ルールの生成において使用する使用インタフェース情報として特定する。 For example, among the used interface information including the flow information that matches the flow of the plurality of acquired packets, the used interface information with the lowest priority value among the communication interfaces that can be communicated is represented by the packet transfer rule. It is specified as used interface information used in generation.
例えば、パケット転送ルール生成部306が複数の通信インタフェース101に含まれる無線インタフェース毎の受信電界強度の値を参照し、取得した複数の受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報のうち、各々の無線インタフェースの受信電界強度の値が、各々の無線インタフェースを使用することを定める使用インタフェース情報に含まれる閾値より大きい使用インタフェース情報を、パケット転送ルールの生成において使用する使用インタフェース情報として特定する。
For example, the packet transfer
また、パケット転送ルール生成部306が複数の通信インタフェース101の各通信インタフェースのパケット送受信数を参照し、パケット送受信数が使用インタフェース情報に含まれる上限に達した通信インタフェースを使用することを定める使用インタフェース情報は、パケット転送ルールの生成において使用しないといった対応を行ってもよい。
In addition, the packet transfer
そして、特定した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定し、新規フロー検出通知に含まれるフロー情報と、特定した通信に使用する通信インタフェースのアドレス情報とに基づき、受信したパケットのフローに対するパケット転送ルールを生成する。
Then, based on the information that can uniquely specify any of the plurality of
同一のフローに対して、各々が異なる通信インタフェースを使用して通信を行うことを定める、複数の使用インタフェース情報が設定される場合において、使用インタフェース情報を特定するための指標に基づき、パケット転送ルールの生成において使用する使用インタフェース情報を特定することで、通信装置が複数の通信インタフェースを介して接続するネットワークのうち任意の要求や条件に適したネットワークを利用して通信を行うことができるようになる。 Packet transfer rules based on an index for identifying used interface information when multiple used interface information is set for the same flow, each of which defines that communication is performed using different communication interfaces. By identifying the used interface information used in the generation of the network, the communication device can communicate using a network suitable for any request or condition among the networks connected via a plurality of communication interfaces. Become.
(第4の実施形態)
第1、第2の実施形態における通信装置100は、フロー単位のネットワーク制御方式を利用する通信装置であって、受信したパケットの転送を行うパケット転送部200と、パケット転送部200の動作を制御する転送制御部300とを備え、パケット転送部200と転送制御部300とは、任意の方法によって接続される。パケット転送部200及び転送制御部300は、第1、第2の実施形態において説明したパケット転送を行うが、エラーの発生によって転送制御部300の動作が停止した等の理由により、パケット転送部200と転送制御部300との接続が切れた場合、パケット転送を行うことができなくなり、通信不能に陥るという課題がある。
(Fourth embodiment)
The
パケット転送部によっては、転送制御部との接続が切れた際、フロー単位のネットワーク制御方式に関する機能を停止させ、通信装置の通信スタックが行う経路制御によって通信を行うことが可能である。しかし、第1、第2の実施形態においては、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするための経路情報を経路表104に設定しているため、通信装置100の通信スタック103が経路表104を使用して経路制御を行っても、通信を行うことができない。
Depending on the packet transfer unit, when the connection with the transfer control unit is disconnected, the function related to the network control method in units of flows is stopped, and communication can be performed by path control performed by the communication stack of the communication device. However, in the first and second embodiments, route information for enabling communication by packet transfer by the
第1の実施形態においては、経路表104上のデフォルトゲートウェイに関する経路情報として、ネクストホップが仮想デフォルトゲートウェイである経路情報のみが設定されるため、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことができない。第2の実施形態においては、第1の実施形態と同様に、経路表104上のデフォルトゲートウェイに関する経路情報として、ネクストホップが仮想デフォルトゲートウェイである経路情報のみが設定される。また、経路表104上の複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェース102である経路情報が設定される。そのため、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置だけでなく、複数の通信インタフェース101を介して接続する各ネットワーク上にある通信装置との通信も行うことができない。
In the first embodiment, only the route information whose next hop is the virtual default gateway is set as the route information related to the default gateway on the route table 104. Therefore, on the network other than the network to which the
そこで、第4の実施形態においては、通信装置100の通信スタック103が複数の経路表を持ち、パケット転送部200と転送制御部300との接続が切れた際、通信スタック103が行う経路制御に使用する経路表を切り替えることにより、通信不能に陥ることを回避する。
Therefore, in the fourth embodiment, when the
図13は、第4の実施形態における通信装置の構成例を示すブロック図である。第1、第2の実施形態における通信装置の構成要素と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。第4の実施形態における通信スタック103は、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104と、パケット転送が行えない場合に使用する経路表106を持つ。また、第4の実施形態における通信装置100は、パケット転送部200と転送制御部300との接続を監視する接続監視部400を備える。
FIG. 13 is a block diagram illustrating a configuration example of a communication device according to the fourth embodiment. Constituent elements similar to those of the communication device in the first and second embodiments are denoted by the same reference numerals, and detailed description thereof is omitted. The
更に、図14に示すように、通信スタック103は、アドレス情報記憶部107と、アドレス情報管理部108と、経路表管理部109とを備える。
Furthermore, as illustrated in FIG. 14, the
パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104は、転送制御部300のアドレス情報記憶部303及び、アドレス情報管理部304、経路表管理部305により、第1の実施形態における図6、又は第2の実施形態における図9に示すような構成に設定される。一方、パケット転送が行えない場合に使用する経路表106は、第4の実施形態における通信スタック103のアドレス情報記憶部107及び、アドレス情報管理部108、経路表管理部109により、図15に示すような構成に設定される。
The route table 104 used to enable communication by packet transfer by the
アドレス情報管理部108は、アドレス情報管理部304と同様に、複数の通信インタフェース101の各通信インタフェースのアドレス情報を取得し、アドレス情報記憶部107に記憶させる。また、アドレス情報管理部108は、DHCPのリース期間切れや通信装置の移動に伴うハンドオーバーの発生等によってアドレス情報の変更が発生した際、アドレス情報の変更が発生した通信インタフェースのアドレス情報を改めて取得し、アドレス情報記憶部107に記憶させる。
Similar to the address
経路表管理部109は、アドレス情報記憶部107に記憶されたアドレス情報に基づき、パケット転送部200及び転送制御部300によるパケット転送が行えない場合に使用する経路表106の設定を行う。経路表106上の複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報を設定する。また、経路表106上のデフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイに関する経路情報のみを設定する。
Based on the address information stored in the address
なお、経路表106に設定するデフォルトゲートウェイに関する経路情報について、複数の通信インタフェース101の通信インタフェース毎に設定される各々のデフォルトゲートウェイに関する経路情報を設定してもよい。ただし、その場合、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイに関する経路情報のうちのいずれかを優位に設定する。
In addition, about the route information regarding the default gateway set in the route table 106, the route information regarding each default gateway set for each communication interface of the plurality of
経路表106に設定するデフォルトゲートウェイに関する経路情報は、任意の方法によって決定される。例えば、予め複数の通信インタフェース101のうちいずれか1つをデフォルトの通信インタフェースに設定し、ネクストホップがデフォルトの通信インタフェースに設定されるデフォルトゲートウェイである経路情報を設定する。
The route information related to the default gateway set in the route table 106 is determined by an arbitrary method. For example, any one of the plurality of
接続監視部400は、パケット転送部200と転送制御部300との接続を監視し、その接続状態に基づき、通信スタック103に対し、経路制御に使用する経路表を切り替える設定を行う。
The
パケット転送部200と転送制御部300とが接続されている場合、接続監視部400は、経路表104を使用して経路制御を行うように通信スタック103の設定を行う。その場合、通信装置100の構成は、第1の実施形態における図4、又は第2の実施形態における図8に示す構成と同様の構成になる。通信スタック103が経路表104を使用して経路制御を行うことで、パケット転送部200及び転送制御部300によるパケット転送によって通信を行うことが可能になる。
When the
接続監視部400は、パケット転送部200と転送制御部300との接続が切れたことを検知すると、経路表106を使用して経路制御を行うように通信スタック103の設定を行う。パケット転送部200と転送制御部300との接続が切れた際、通信スタック103の経路制御に使用する経路表を、経路表104から経路表106に切り替えることで、パケット転送部200及び転送制御部300によるパケット転送が行えない場合においても、通信スタック103の経路制御によって通信を行うこと可能になる。
When the
パケット転送部200と転送制御部300との接続が切れ、パケット転送部200及び転送制御部300によるパケット転送が行えない場合、通信装置100の構成は、図16に示す構成になる。
When the
なお、経路表106を使用して通信スタック103が経路制御を行うことで、通信を行うことは可能であるが、パケット転送部200及び転送制御部300によるパケット転送が行えないため、複数の通信インタフェース101を介して接続するネットワークのうちのいずれを利用した場合においても通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うこと、及びフロー毎に通信に利用するネットワークを選択することはできない。すなわち、その場合においては、通常のIP通信の仕組みによる通信と同等である。
Although communication is possible by the
また、接続監視部400は、パケット転送部200と転送制御部300との接続が切れ、通信スタック103の経路制御に使用する経路表を、経路表104から経路表106に切り替えた後、パケット転送部200と転送制御部300とが接続されたことを検知した際、パケット転送部200及び転送制御部300によるパケット転送によって通信が可能になるように、通信スタック103が経路制御に使用する経路表を、経路表106から経路表104に切り替えても良い。
Further, the
また、第4の実施形態おいては、通信スタック103は、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104と、パケット転送が行えない場合に使用する経路表106との、2つの経路表を持つと説明したが、通信スタック103が持つ経路表の数は、特に限定されず、1つ以上であればよい。1つの経路表上に、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報、及びデフォルトゲートウェイに関する経路情報を複数設定し、パケット転送部200と転送制御部300との接続状態に基づき、そのうちの適切な経路情報を優位に設定し、通信スタック103が行う経路制御に使用する経路情報を切り替えてもよい。
Further, in the fourth embodiment, the
例えば、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報、及び送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェースである経路情報を経路表104設定する。また、デフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイである経路情報、及びネクストホップが仮想インタフェースである経路情報を経路表104に設定する。
For example, as route information regarding a route to each network connected via a plurality of
パケット転送部200と転送制御部300とが接続されている場合、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェースである経路情報を優位に設定し、デフォルトゲートウェイに関する経路情報として、ネクストホップが仮想インタフェースである経路情報を優位に設定することで、パケット転送部200及び転送制御部300によるパケット転送によって通信を行うことができる。
When the
一方、パケット転送部200と転送制御部300との接続が切れている場合、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報を優位に設定し、デフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイである経路情報を優位に設定することで、パケット転送が行えない場合においても、通信スタック103が行う経路制御によって通信を行うことができる。
On the other hand, when the connection between the
以上、本発明の実施の形態を例示により説明したが、本発明はこれに限定されるものではなく、請求項に記載された範囲において、目的に応じて変更、変形することが可能である。 The embodiment of the present invention has been described above by way of example, but the present invention is not limited to this, and can be changed and modified in accordance with the purpose within the scope of the claims.
以上説明したように、本発明によれば、通信装置が備える通信インタフェースを介して接続するネットワークのうちいずれを利用した場合においても通信装置が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うこと、及びフロー毎に適切なネットワークを利用して通信を行うことができるという優れた効果を有し、複数の通信インタフェースを備える通信装置、例えば、パーソナルコンピュータやスマートフォン等に好適に適用される。 As described above, according to the present invention, communication with a communication device on a network other than the network to which the communication device is directly connected in any of the networks connected via the communication interface provided in the communication device is used. And is suitable for communication devices having a plurality of communication interfaces, such as personal computers and smartphones. The
100 通信装置
101 複数の通信インタフェース
102 仮想インタフェース
103 通信スタック
104 経路表
105 通信プログラム
106 経路表
107 アドレス情報記憶部
108 アドレス情報管理部
109 経路表管理部
200 パケット転送部
201 パケット転送ルール記憶部
202 パケット転送ルール管理部
203 フロー識別部
204 アクション実行部
300 転送制御部
301 使用インタフェース情報記憶部
302 使用インタフェース情報管理部
303 アドレス情報記憶部
304 アドレス情報管理部
305 経路表管理部
306 パケット転送ルール生成部
307 パケット転送部管理部
400 接続監視部
100
Claims (7)
1つ以上の通信インタフェースと、
仮想インタフェースと、
1つ以上の経路表を有する通信スタックと、
受信したパケットを転送するパケット転送部と、
前記パケット転送部の動作を制御する転送制御部と、
前記パケット転送部と前記転送制御部の接続を監視する接続監視部と、
を備えることを特徴とする通信装置。 A communication device that uses a network control method in units of flows, capable of selecting a network to be used for communication for each flow,
One or more communication interfaces;
A virtual interface;
A communication stack having one or more routing tables;
A packet transfer unit for transferring received packets;
A transfer control unit for controlling the operation of the packet transfer unit;
A connection monitoring unit that monitors connection between the packet transfer unit and the transfer control unit;
A communication apparatus comprising:
前記パケット転送部及び前記転送制御部によるパケット転送によって通信を可能にするために使用する第1の経路表と、
前記パケット転送が行えない場合に使用する第2の経路表と、
を含むことを特徴とする請求項1記載の通信装置。 The one or more routing tables are:
A first routing table used to enable communication by packet transfer by the packet transfer unit and the transfer control unit;
A second routing table used when the packet transfer cannot be performed;
The communication apparatus according to claim 1, further comprising:
前記1つ以上の通信インタフェース及び前記仮想インタフェースがパケットの送受信を行うために必要な情報であって、前記1つ以上の通信インタフェース及び前記仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、
前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、前記アドレス情報管理部に記憶された情報に基づき、前記第1の経路表の設定を行う経路表管理部と、
を備え、
前記通信スタックが前記仮想インタフェースに設定される仮想デフォルトゲートウェイに関する経路情報を使用して経路制御を行うように前記第1の経路表を設定することを特徴とする請求項1記載の通信装置。 The transfer control unit
An address storage unit that stores information necessary for the one or more communication interfaces and the virtual interface to transmit and receive packets, and stores address information set in the one or more communication interfaces and the virtual interface; ,
An address information management unit that acquires the address information and stores the address information in the address storage unit; a routing table management unit that sets the first routing table based on information stored in the address information management unit;
With
The communication apparatus according to claim 1, wherein the first routing table is set so that the communication stack performs route control using route information related to a virtual default gateway set in the virtual interface.
前記アドレス情報を記憶するアドレス記憶部と、
前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、
前記アドレス情報管理部に記憶された情報に基づき、前記第2の経路表の設定を行う経路表管理部と、
を備え、
前記通信スタックが前記1つ以上の通信インタフェース毎に設定されるデフォルトゲートウェイのうちいずれか1つのデフォルトゲートウェイに関する経路情報を使用して経路制御を行うように前記第2の経路表を設定することを特徴とする請求項1記載の通信装置。 The communication stack is
An address storage unit for storing the address information;
An address information management unit for acquiring the address information and storing the address information in the address storage unit;
A routing table management unit configured to set the second routing table based on information stored in the address information management unit;
With
Setting the second route table so that the communication stack performs route control using route information regarding any one of the default gateways set for each of the one or more communication interfaces. The communication apparatus according to claim 1, wherein:
前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能とすることを特徴とする転送制御方法。 One or more communication interfaces, a virtual interface, a communication stack having one or more routing tables, a packet transfer unit that transfers received packets, and a transfer control unit that controls the operation of the packet transfer unit A transfer control method for monitoring a connection between the packet transfer unit and the transfer control unit in a communication device that uses a network control method in units of flows, capable of selecting a network to be used for communication for each flow. ,
A transfer control method comprising: enabling communication by switching a route table used for route control of the communication stack based on a connection state between the packet transfer unit and the transfer control unit.
前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能とすることを特徴とする転送制御プログラム。 One or more communication interfaces, a virtual interface, a communication stack having one or more routing tables, a packet transfer unit that transfers received packets, and a transfer control unit that controls the operation of the packet transfer unit A program that monitors a connection between the packet transfer unit and the transfer control unit in a computer that uses a network control method in units of flows that can select a network to be used for communication for each flow,
A transfer control program that enables communication by switching a route table used for route control of the communication stack based on a connection state between the packet transfer unit and the transfer control unit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013118074A JP6075215B2 (en) | 2013-06-04 | 2013-06-04 | Communication device, transfer control method, and transfer control program |
PCT/JP2013/004825 WO2014038135A1 (en) | 2012-09-06 | 2013-08-12 | Communication apparatus, transfer control method and transfer control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013118074A JP6075215B2 (en) | 2013-06-04 | 2013-06-04 | Communication device, transfer control method, and transfer control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014236433A true JP2014236433A (en) | 2014-12-15 |
JP6075215B2 JP6075215B2 (en) | 2017-02-08 |
Family
ID=52138824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013118074A Expired - Fee Related JP6075215B2 (en) | 2012-09-06 | 2013-06-04 | Communication device, transfer control method, and transfer control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6075215B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9661290B2 (en) | 2014-11-21 | 2017-05-23 | Samsung Electronics Co., Ltd. | Image processing apparatus and method |
DE102022201356A1 (en) | 2022-02-09 | 2023-08-10 | Continental Automotive Technologies GmbH | automotive gateway |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004080106A (en) * | 2002-08-09 | 2004-03-11 | Nippon Telegr & Teleph Corp <Ntt> | Mobile terminal communication method and mobile terminal |
JP2008522482A (en) * | 2004-12-20 | 2008-06-26 | 韓國電子通信研究院 | Heterogeneous network interworking method for nodes having multiple network interfaces |
JP2011524684A (en) * | 2008-06-09 | 2011-09-01 | クゥアルコム・インコーポレイテッド | Method and apparatus for network controlled mobile IP flow operation |
-
2013
- 2013-06-04 JP JP2013118074A patent/JP6075215B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004080106A (en) * | 2002-08-09 | 2004-03-11 | Nippon Telegr & Teleph Corp <Ntt> | Mobile terminal communication method and mobile terminal |
JP2008522482A (en) * | 2004-12-20 | 2008-06-26 | 韓國電子通信研究院 | Heterogeneous network interworking method for nodes having multiple network interfaces |
JP2011524684A (en) * | 2008-06-09 | 2011-09-01 | クゥアルコム・インコーポレイテッド | Method and apparatus for network controlled mobile IP flow operation |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9661290B2 (en) | 2014-11-21 | 2017-05-23 | Samsung Electronics Co., Ltd. | Image processing apparatus and method |
DE102022201356A1 (en) | 2022-02-09 | 2023-08-10 | Continental Automotive Technologies GmbH | automotive gateway |
DE102022201356B4 (en) | 2022-02-09 | 2024-10-02 | Continental Automotive Technologies GmbH | automotive gateway |
Also Published As
Publication number | Publication date |
---|---|
JP6075215B2 (en) | 2017-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134012B2 (en) | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow | |
JP5621778B2 (en) | Content-based switch system and content-based switch method | |
EP2544417B1 (en) | Communication system, path control apparatus, packet forwarding apparatus and path control method | |
KR101755138B1 (en) | Communication system, control device, and method for managing network topology | |
US20120170477A1 (en) | Computer, communication system, network connection switching method, and program | |
JP2017536765A (en) | System and method for flow-based addressing in a mobile environment | |
US20140241349A1 (en) | Openflow switch and packet processing method thereof | |
US20160174198A1 (en) | Communication system, communication apparatus, and control method and control apparatus thereof | |
EP3167577B1 (en) | Method of operating a network entity | |
JP6752141B2 (en) | Methods and forwarders for processing packets | |
US9838481B2 (en) | Provisioning of network communication parameters based on device type | |
JP5725236B2 (en) | Communication system, node, packet transfer method and program | |
WO2014038135A1 (en) | Communication apparatus, transfer control method and transfer control program | |
JP5909688B2 (en) | Communication device, transfer control method, and transfer control program | |
JP6075215B2 (en) | Communication device, transfer control method, and transfer control program | |
JP6296578B2 (en) | Access node, mobility management network element, and paging message processing method | |
JP2015525982A (en) | COMMUNICATION METHOD, COMMUNICATION SYSTEM, INFORMATION PROCESSING DEVICE, COMMUNICATION TERMINAL, AND PROGRAM | |
JP2015525983A (en) | Communication method, information processing apparatus, communication system, communication terminal, and program | |
US9497296B2 (en) | Communication method, information processing apparatus, communication system, program, node, and communication terminal for identifying packet flows as a group and adding identifier to a packet belonging to packet flows and setting rules for forwarding the packet | |
US20150312206A1 (en) | Control apparatus, communication system, communication method, and program | |
JP2015095789A (en) | Communication terminal, communication method and communication program | |
JP2014086891A (en) | Communication relay device, virtual machine server, band control system, band control method and program | |
WO2015052870A1 (en) | Terminal device, terminal-device control method, and terminal-device control program | |
WO2015052869A1 (en) | Terminal device, terminal-device control method, and terminal-device control program | |
WO2015129727A1 (en) | Communication terminal, communication method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20141006 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20141015 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20150223 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20151029 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161102 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6075215 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |