以下、図面を参照しながら、発明を実施するための形態を説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
●実施形態●
●システム構成
図1は、一実施形態に係る情報処理システムのシステム構成の一例を示す図である。図1に示す情報処理システムは、異なるセグメントを有する複数のネットワーク間の通信にタグVLAN(tagged Virtual Local Area Network:IEEE802.1Q等)等の仮想LANを適用したシステムにおいて、仮想LANに対応していない情報処理装置10に対しても送受信情報の通信を行うことが可能なシステムである。これによって、本実施形態に係る情報処理システムは、情報処理装置10が仮想LANに対応しているか否かに関わらず、情報処理装置10を仮想LANに対応したより大規模なネットワークに接続させることができる。
図1に示す情報処理システムは、情報処理装置10、通信制御装置30、VLAN対応スイッチ50、ルータ70(70a、70b、70c、以下、区別する必要のないときは、ルータ70とする。)、クライアント端末80(80a、80aa、80b、80bb、80c、80cc、以下、区別する必要のないときは、クライアント端末80とする。)およびサーバ装置90(90a、90b、90b、90c、以下、区別する必要のないときは、サーバ装置90とする。)によって構成される。
情報処理装置10は、通信制御装置30およびVLAN対応スイッチ50を介して、複数のネットワーク(Net_A0、Net_B0、Net_C0)にそれぞれ接続されている。VLAN対応スイッチ50のNativeVLANに対応するポートは、ネットワークNet_A0に接続されている。NativeVLANは、VLANタグ(VLAN ID)が付加されていないパケット情報を送受信可能なVLANである。
VLAN対応スイッチ50のVLAN10に対応するポートは、ネットワークNet_B0に接続されている。VLAN対応スイッチ50のVLAN30に対応するポートは、ネットワークNet_C0に接続されている。VLAN対応スイッチ50のトランキングポート(Trunk)は、通信制御装置30に接続されている。情報処理装置10は、通信制御装置30に接続されている。情報処理装置10は、タグVLANに対応していない装置である。なお、情報処理装置10のネットワークインターフェースは、例えば、「00-00-5E-00-53-22」のMACアドレスを有している。
ネットワークNet_A0は、ルータ70aを介して、ネットワークNet_A1に接続されている。ネットワークNet_B0は、ルータ70bを介して、ネットワークNet_B1に接続されている。また、ネットワークNet_C0は、ルータ70cを介して、ネットワークNet_C1に接続されている。さらに、情報処理装置10は、ネットワークNet_C0およびネットワークNet_Iを介して、インターネットに接続されている。
通信制御装置30およびVLAN対応スイッチ50を介して情報処理装置10に接続されるネットワークは、ネットワークNet_A0およびネットワークNet_A1をグループとしたネットワークNet_A系、ネットワークNet_B0およびネットワークNet_B1をグループとしたネットワークNet_B系、ネットワークNet_C0およびネットワークNet_C1をグループとしたネットワークNet_C系に分離されている。
また、各系のネットワークの間は、IP(Internet Protocol)通信ができないように分離されている。なお、ネットワークNet_A系およびネットワークNet_B系は、通信セキュリティを考慮して、インターネットには接続できない構成となっているが、両者をインターネットに接続可能としてもよい。ネットワークNet_A0系のネットワークは、第1のネットワークの一例である。ネットワークNet_B0系またはネットワークNet_C0系のネットワークは、第2のネットワークの一例である。
本実施形態に係る情報処理システムは、互いに通信できないように分離された異なるセグメントを有する複数のネットワークにルータ70が設けられていることを前提として、直接接続されているネットワーク以外のネットワークへの経路についても制御する。これにより、本実施形態に係る情報処理システムは、複数のネットワーク間でルータ70を介した通信が可能となり、情報処理装置10を大規模なネットワークで利用可能としている。なお、本実施形態は、各系のネットワーク間で、IP通信ができないように分離されていることとして説明を進めるが、セキュリティの要件等に応じて、各系のネットワーク間で通信可能としてもよい。
クライアント端末80a、クライアント端末80bおよびクライアント端末80cは、ネットワークNet_A0、ネットワークNet_B0およびネットワークNet_C0に、それぞれ接続される。クライアント端末80aおよびサーバ装置90aは、ネットワークNet_A1に接続される。また、クライアント端末80bおよびサーバ装置90bは、ネットワークNet_B1に接続される。さらに、クライアント端末80cおよびサーバ装置90cは、ネットワークNet_C1に接続される。各ネットワークにそれぞれ接続されたクライアント端末80およびサーバ装置90は、通信制御装置30およびVLAN対応スイッチ50を介して、情報処理装置10と通信を行うことができる。
情報処理装置10は、例えば、プリント機能、コピー機能、スキャナ機能およびFAX機能といった複数の機能を1つの筐体で実現する複合機等の画像形成装置である。画像形成装置は、複合機のほか、MFP(Multifunction Peripheral)、複写機等と呼ばれてもよい。情報処理装置10は、プリント機能、コピー機能、スキャナ機能またはFAX機能の1つだけを有していてもよい。この場合、情報処理装置10はプリンタ、複写機、スキャナ装置またはFAX装置と呼ばれる。また、情報処理装置10は、各機能を実行するための一または複数のアプリケーションがインストールされている。
なお、情報処理装置10は、IP通信が可能な装置であれば、画像形成装置に限られない。情報処理装置10は、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、デジタルサイネージ等の出力装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等でもあってもよい。
通信制御装置30は、ネットワークNet_A系、ネットワークNet_B系およびネットワークNet_C系の各系間の通信を制限し、ネットワークNet_A系と情報処理装置10との間の通信、ネットワークNet_B系と情報処理装置10との間の通信およびネットワークNet_C系と情報処理装置10との間の通信を可能とする装置である。
VLAN対応スイッチ50は、VLAN10に対応するポートに接続されたネットワークNet_B0を介して送受信されるパケット情報に、「10」のVLANタグの付加または除去を行う。また、VLAN対応スイッチ50は、VLAN30に対応するポートに接続されたネットワークNet_C0を介して送受信されるパケット情報に、「30」のVLANタグの付加または除去を行う。一方で、VLAN対応スイッチ50は、NativeVLANに対応するポートに接続されたネットワークNet_A0を介して送受信されるパケット情報に、VLANタグの処理(VLANタグの付加または除去)は行わない。
クライアント端末80は、各ネットワークにそれぞれ接続される通信装置である。クライアント端末80は、例えば、ノートPC等の利用者により携帯または操作可能な通信装置である。クライアント端末80は、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA、デジタルカメラ、ウェアラブルPC、デスクトップPC等でもよい。
サーバ装置90は、各ネットワークにそれぞれ接続されるジョブサーバや認証サーバ等のサーバ装置である。サーバ装置90は、例えば、クライアント端末80から要求された情報処理装置10に対するジョブを蓄積する。そして、サーバ装置90は、情報処理装置10へ蓄積したジョブを出力する。なお、各ネットワークに接続されたクライアント端末80およびサーバ装置90は、ネットワーク機器の一例である。
図1に示す情報処理システムにおいて、クライアント端末80は、例えば、情報処理装置10へ印刷要求およびSNMP(simple network management protocol)での機器情報の送信等を行う。情報処理装置10は、サーバ装置90にスキャン処理で形成したファイル情報の送信等を行う。なお、本実施形態で説明する印刷要求、SNMPでの機器情報の送信およびスキャン処理したファイル情報の送信等は、一例であり、これら以外の通信でもよい。また、図1は、情報処理装置10が三系統のネットワークに接続された例を説明したが、情報処理装置10が二系統のネットワークまたは四系統以上のネットワークに接続された構成であってもよい。
●ハードウエア構成
続いて、実施形態に係る各装置のハードウエア構成について説明する。実施形態に係る各装置のハードウエア構成は、一般的なコンピュータの構成を有する。ここでは、一般的なコンピュータのハードウエア構成例について説明する。なお、実施形態に係る各装置のハードウエア構成は、必要に応じて構成要素が追加または削除されてもよい。
図2は、一実施形態に係るコンピュータのハードウエア構成の一例を示す図である。コンピュータ1000は、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003、ストレージ1004、キーボード1005、ディスプレイインターフェース(I/F)1006、メディアインターフェース(I/F)1007、ネットワークインターフェース(I/F)1008およびバス1009を備える。
CPU1001は、ROM1002やストレージ1004等に格納された本発明に係るプログラムやデータをRAM1003上に読み出し、処理を実行することで、コンピュータ1000の各機能を実現する演算装置である。例えば、通信制御装置30は、本発明に係るプログラムが実行されることで本発明に係る制御方法を実現する。
ROM1002は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリである。ROM1002は、例えば、フラッシュROM等により構成される。ROM1002は、SDK(Software Development Kit)およびAPI(Application Programming Interface)等のアプリケーションをインストールしており、インストールされたアプリケーションを用いて、コンピュータ1000の機能やネットワーク接続等を実現することが可能である。
RAM1003は、CPU1001のワークエリア等として用いられる揮発性のメモリである。ストレージ1004は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージデバイスである。ストレージ1004は、例えば、OS(Operation System)、アプリケーションプログラムおよび各種データ等を記憶する。
キーボード1005は、文字、数値、各種指示等の入力のための複数のキーを備えた入力手段の一種である。入力手段は、キーボード1005のみならず、例えば、マウス、タッチパネルまたは音声入力装置等であってもよい。ディスプレイインターフェース(I/F)1006は、LCD(Liquid Crystal Display)等のディスプレイ1006aに対するカーソル、メニュー、ウィンドウ、文字または画像等の各種情報の表示を制御する。ディスプレイ1006aは、入力手段を備えたタッチパネルディスプレイであってもよい。
メディアインターフェース(I/F)1007は、USB(Universal Serial Bus)メモリ、メモリカード、光学ディスクまたはフラッシュメモリ等の記録メディア1007aに対するデータの読み出しまたは書き込み(記憶)を制御する。
ネットワークインターフェース(I/F)1008は、コンピュータ1000をネットワークに接続し、他のコンピュータや、電子機器等とデータの送受信を行うためのインターフェースである。ネットワークインターフェース(I/F)1008は、例えば、有線または無線LAN(Local Area Network)等の通信インターフェースである。また、ネットワークインターフェース(I/F)1008は、3G(3rd Generation)、LTE(Long Term Evolution)、4G(4rd Generation)、5G(5rd Generation)、Zigbee(登録商標)、BLE(Bluetooth(登録商標)Low Energy)、ミリ波無線通信の通信インターフェースを備えてもよい。
バス1009は、上記の各構成要素に共通に接続され、アドレス信号、データ信号、および各種制御信号等を伝送する。CPU1001、ROM1002、RAM1003、ストレージ1004、キーボード1005、ディスプレイインターフェース(I/F)1006、メディアインターフェース(I/F)1007およびネットワークインターフェース(I/F)1008は、バス1009を介して相互に接続されている。
●機能構成
図3は、一実施形態に係る通信制御装置の機能構成の一例を示す図である。図3に示す通信制御装置30は、第1の送受信部11、タグ処理部12、記憶部13、ブリッジ通信制御部14、第1のNAPT(Network Address Port Translator)通信制御部15、第2のNAPT通信制御部16および第2の送受信部17を含む。
第1の送受信部11は、VLAN対応スイッチ50を介して、ネットワークNet_A0、ネットワークNet_B0およびネットワークNet_C0のそれぞれに接続されたネットワーク機器との間でデータをやり取りする機能である。第1の送受信部11は、例えば、ネットワーク機器から情報処理装置10への印刷要求等のパケット情報を受信する。また、第1の送受信部11は、例えば、情報処理装置10によってスキャン処理されたファイル情報等のパケット情報を、ネットワーク機器へ送信する。
第1の送受信部11は、ネットワークNet_A系に接続されたネットワーク機器との間において、VLANタグを含まないパケット情報の送受信を行う。また、第1の送受信部11は、ネットワークNet_B系またはネットワークNet_C系に接続されたネットワーク機器との間において、VLANタグを含むパケット情報の送受信を行う。VLANタグを含まないパケット情報は、仮想LANのタグ情報を含まない第1のデータの一例である。また、VLANタグを含むパケット情報は、仮想LANのタグ情報を含む第2のデータの一例である。第1の送受信部11は、例えば、図2に示したネットワークインターフェース(I/F)1008およびCPU1001によって実行されるプログラム等により実現される。第1の送受信部11は、有線LAN(Ethernet(登録商標))通信、無線LAN通信、PCI Express、USB等を用いて、ネットワーク機器との通信を行う。
タグ処理部12は、ネットワークNet_B系またはネットワークNet_C系を介して送受信されるパケット情報に、VLANタグの付加または除去を行う機能である。ネットワークNet_B系またはネットワークNet_C系を介して送受信されるパケット情報は、VLANタグを含む。
タグ処理部12は、例えば、ネットワークNet_B0を介して送受信されるパケット情報に、ネットワークNet_B0に接続する通信ポートに対応するVLANタグ「10」の付加または除去を行う。また、タグ処理部12は、例えば、ネットワークNet_C0を介して送受信されるパケット情報に、ネットワークNet_C0に接続する通信ポートに対応するVLANタグ「30」の付加または除去を行う。
一方で、タグ処理部12は、VLANタグを含まないパケット情報の送受信を行うネットワークNet_A系を介して送受信されるパケット情報に、タグ処理(VLANタグの付加または除去)を行わない。具体的には、タグ処理部12は、第1の送受信部11によって受信されたパケット情報にVLANタグが含まれていない場合、タグ処理を行わずに、ブリッジ通信制御部14へ受信したパケット情報を送信する。また、タグ処理部12は、ブリッジ通信制御部14からパケット情報を直接受信した場合、タグ処理を行わずに、第1の送受信部11へ受信したパケット情報を送信する。タグ処理部12は、例えば、図3に示したCPU1001によって実行されるプログラム等により実現される。タグ処理部12は、タグ処理手段の一例である。
記憶部13は、図2に示したROM1002およびストレージ1004等に各種データを記憶させる機能である。記憶部13は、ネットワーク管理テーブル200および宛先管理テーブル210を記憶している。記憶部13は、記憶手段の一例である。ここで、図4および図5を用いて、ネットワーク管理テーブル200および宛先管理テーブル210の内容について説明する。図4は、一実施形態に係るネットワーク管理テーブルの一例を示す図である。ネットワーク管理テーブル200は、各ネットワークのネットワークアドレスおよびネットマスク(ビットマスク)を示している。なお、図4に示すネットワークアドレスは、IPv4アドレスであるが、ネットワークアドレスは、これに限られない。
図4に示すように、ネットワークNet_A0のネットワークアドレスは、「192.168.1.0/24」である。ネットワークNet_A1のネットワークアドレスは、「192.168.10.0/24」である。ネットワークNet_B0のネットワークアドレスは、「172.16.1.0/24」である。ネットワークNet_B1のネットワークアドレスは、172.16.10.0/24」である。ネットワークNet_C0のネットワークアドレスは、「10.0.1.0/24」である。ネットワークNet_C1のネットワークアドレスは、「10.0.10.0/24」である。ネットワークNet_Iのネットワークアドレスは、「203.0.113.0/29」である。
また、ネットワークNet_B0に対応するVLANタグは「10」、ネットワークNet_C0に対応するVLANタグは「30」である。ネットワークNet_Iは、インターネット接続を図るためのセグメントである。図4に示すように、各ネットワークのネットワークアドレスは、重複しないように設定されている。なお、図4に示す設定例以外であっても、各ネットワークのネットワークアドレスは、通信制御装置30と直接通信するサーバ装置90のIPアドレスが重複しなければよい。また、通信制御装置30と直接通信するサーバ装置90のIPアドレスが重複している場合でも、静的なNAPT設定がされていればよい。
図5は、一実施形態に係る宛先管理テーブルの一例を示す図である。宛先管理テーブル210は、各ネットワークを介して通信制御装置30と通信可能な情報処理装置10、ルータ70、クライアント端末80およびサーバ装置90のIPアドレス、ネットマスク、デフォルトゲートウェイが示されている。
宛先管理テーブル210は、通信制御装置30と通信可能な「機器」の情報と、「機器」の「Network address/netmask」および「default gateway」の情報を含む。「Network address/netmask」および「default gateway」は、情報処理装置10、ルータ70、クライアント端末80およびサーバ装置90の宛先情報の一例である。宛先管理テーブル210は、通信制御装置30と通信実績のある機器の宛先情報が記憶される。なお、宛先管理テーブル210に含まれる情報は、通信制御装置30と通信実績のある機器の情報だけでなく、適宜管理者により設定されてもよい。
図5に示す宛先管理テーブル210の場合、情報処理装置10(MFP)のIPアドレスは、「192.168.1.10/24」であり、デフォルトゲートウェイは、「192.168.1.1/24」である。クライアント端末80a(PC_A0)のIPアドレスは、「192.168.1.100/24」であり、デフォルトゲートウェイは、「192.168.1.1/24」である。ルータ70a(R_A)のIPアドレスは、「192.168.1.1/24」であり、サブネットマスクは、「192.168.10.1/24」である。
クライアント端末80aa(PC_A1)のIPアドレスは、「192.168.10.100/24」であり、デフォルトゲートウェイは、「192.168.10.1/24」である。サーバ装置90a(SV_A1)のIPアドレスは、「192.168.10.11/24」であり、デフォルトゲートウェイは、「192.168.10.1/24」である。クライアント端末80b(PC_B0)のIPアドレスは、「172.16.1.100/24」であり、デフォルトゲートウェイは、「172.16.1.1/24」である。
ルータ70b(R_B)のIPアドレスは、「172.16.1.1/24」であり、サブネットマスクは、「172.16.10.1/24」である。クライアント端末80bb(PC_B1)のIPアドレスは、「172.16.10.100/24」であり、デフォルトゲートウェイは、「172.16.10.1/24」である。サーバ装置90b(SV_B1)のIPアドレスは、「172.16.10.11/24」であり、デフォルトゲートウェイは、「172.16.10.1/24」である。クライアント端末80c(PC_C0)のIPアドレスは、「10.0.1.100/24」であり、デフォルトゲートウェイは、「10.0.1.1/24」である。
インターネットにパケット情報の送信が可能であるルータ70c(R_C)のIPアドレスおよびサブネットマスクは、「10.0.1.1/24」、「10.0.10.1/24」および「203.0.113.2/29」であり、デフォルトゲートウェイは、「203.0.113.1/29」である。クライアント端末80cc(PC_C1)のIPアドレスは、「10.0.10.100/24」であり、デフォルトゲートウェイは、「10.0.10.1/24」である。サーバ装置90c(SV_C1)のIPアドレスは、「10.0.10.11/24」であり、デフォルトゲートウェイは、「10.0.10.1/24」である。
図5に示すように、情報処理装置10、クライアント端末80およびサーバ装置90には、それぞれネットワークを介した通信を可能とするIPアドレスが一つずつ割り当てられている。ルータ70には、接続されている各ネットワークを介した通信が可能となるように、複数のIPアドレスが割り当てられている。なお、サーバ装置90およびルータ70は、論理的には一台であっても、複数の機器により冗長構成としてもよい。なお、宛先管理テーブル210に含まれる機器および宛先情報は、これに限られない。
図3に戻り、通信制御装置30の機能構成の説明を続ける。ブリッジ通信制御部14は、第1の送受信部11または第2の送受信部17を介して受信したパケット情報の送出先を決定し、パケット情報の書き換え等を行う機能である。ブリッジ通信制御部14の詳細は、後述する。
第1のNAPT通信制御部15は、第1の送受信部11または第2の送受信部17を介して受信されたパケット情報の送出先を決定し、パケット情報の書き換え等を行う機能である。第1のNAPT通信制御部15および第2のNAPT通信制御部16は、例えば、図2に示したCPU1001によって実行されるプログラム等により実現される。
第1のNAPT通信制御部15および第2のNAPT通信制御部16は、NAPT処理用のNAPTテーブルをそれぞれ有している。第1のNAPT通信制御部15および第2のNAPT通信制御部16は、NAPTテーブル(後述するNAPTテーブル330およびNAPTテーブル350)を用いて、IPアドレスの変換処理およびポート番号の変換処理(NAPT処理)を実行する。
また、第1のNAPT通信制御部15および第2のNAPT通信制御部16は、異なるルーティングテーブル(後述する通信経路制御情報320および通信経路制御情報320)を有している。第1のNAPT通信制御部15および第2のNAPT通信制御部16は、ルーティングテーブル、NAPTテーブル、セッションテーブル(TCP/UDPのどのポートからどのポートに通信しているかを管理するテーブル)等のネットワークリソースが分離されている。すなわち、第1のNAPT通信制御部15および第2のNAPT通信制御部16は、それぞれ別々のネットワークリソースを有している。第1のNAPT通信制御部15および第2のNAPT通信制御部16の詳細は、後述する。
第2の送受信部17は、情報処理装置10からパケット情報を受信し、情報処理装置10にパケット情報を送信する機能である。第2の送受信部17は、無線LANまたはBluethooh(登録商標)等の無線通信を用いて、情報処理装置10との通信を行う。通信制御装置30は、情報処理装置10との通信に無線通信を利用することで、物理的なスペースを有効に活用でき、利用者の使い勝手を向上させることができる。なお、第2の送受信部17においても用いる通信方式は、無線通信に限られない。第2の送受信部17は、例えば、図2に示したネットワークインターフェース(I/F)1008およびCPU1001によって実行されるプログラム等により実現される。第2の送受信部17は、取得手段の一例である。
第1の送受信部11および第2の送受信部17によって送受信されるパケット情報は、送信元ならびに送信先のネットワーク、または送信元ならびに送信先の装置の宛先情報(例えば、ネットワークアドレス、IPアドレス、MACアドレス等)を含む。通信制御装置30は、例えば、パケット情報の通信制御において、IPアドレス等を用いることで、ネットワーク管理者にとって既存のセキュリティポリシーと同様の手法で、ネットワーク機器との通信制御を行うことができる。
また、第1の送受信部11および第2の送受信部17によって送受信されるパケット情報は、パケット情報を送受信する通信ポートの情報を含む。通信ポートの情報は、例えば、UDP(User Datagram Protocol)またはTCP(Transmission Control Protocol)等のポート番号である。通信制御装置30は、例えば、パケット情報の通信制御において、通信ポートの情報を用いることで、より細やかなネットワーク機器との通信制御を行うことができる。
○通信制御装置の各部のIPアドレス
ここで、図6および図7を用いて、通信制御装置30の各部のIPアドレスを説明する。ブリッジ通信制御部14のIPアドレス(BRI_A)は、第1の送受信部11を介して受信したパケット情報を情報処理装置10へ送信する場合に用いられるアドレスである。ブリッジ通信制御部14のIPアドレス(BRI_A)は、図7に示すように、例えば、「192.16.1.11/24」である。
ブリッジ通信制御部14のIPアドレス(INT)は、情報処理装置10から受信したパケット情報を第1の送受信部11へ送信する場合に、通信制御装置30の内部でのみ用いられるアドレスである。ブリッジ通信制御部14のIPアドレス(INT)は、図7に示すように、例えば、「192.0.2.10/24」である。
第1のNAPT通信制御部15のIPアドレス(INT_B)は、第1の送受信部11を介して受信したパケット情報をブリッジ通信制御部14へ送信する場合に、通信制御装置30の内部でのみ用いられるアドレスである。第1のNAPT通信制御部15のIPアドレス(INT_B)は、図7に示すように、例えば、「192.0.2.12/24」である。
第2のNAPT通信制御部16のIPアドレス(INT_C)は、第1の送受信部11を介して受信したパケット情報をブリッジ通信制御部14へ送信する場合に、通信制御装置30の内部でのみ用いられるアドレスである。第2のNAPT通信制御部16のIPアドレス(INT_C)は、図7に示すように、例えば、「192.0.2.13/24」である。
第1のNAPT通信制御部15のIPアドレス(MFP_B)は、ネットワークNet_B系から情報処理装置10にアクセスするためのアドレスである。第1のNAPT通信制御部15のIPアドレス(MFP_B)は、図7に示すように、例えば、「172.16.1.10/24」である。
第1のNAPT通信制御部15のIPアドレス(INT_SV_B1)は、ブリッジ通信制御部14から受信したパケット情報をネットワークNet_B系上のサーバ装置90bへ送信する場合に、通信制御装置30の内部でのみ用いられるアドレスである。第1のNAPT通信制御部15のIPアドレス(INT_SV_B1)は、図7に示すように、例えば、「192.0.2.200/24」である。
第2のNAPT通信制御部16のIPアドレス(MFP_C)は、ネットワークNet_C系から情報処理装置10にアクセスするためのアドレスである。第2のNAPT通信制御部16のIPアドレス(MFP_C)は、図7に示すように、例えば、「10.0.1.10/24」である。
第2のNAPT通信制御部16のIPアドレス(INT_SV_C1)は、ブリッジ通信制御部14から受信したパケット情報をネットワークNet_C系上のサーバ装置90cへ送信する場合に、通信制御装置30の内部でのみ用いられるアドレスである。第2のNAPT通信制御部16のIPアドレス(INT_SV_C1)は、図7に示すように、例えば、「192.0.2.201/24」である。
ここで、「192.0.2.0/24」のIPアドレスは、RFC5737(Request for Comments 5737)においてドキュメンテーション用として予約されており、ネットワーク内で利用されることはないアドレスである。なお、本実施形態に係る情報処理システムにおいて、「192.0.2.0/24」のIPアドレスを用いて通信制御装置30内で通信を行うこととしたが、ネットワーク内で利用されるIPアドレスとの重複が無ければ、通信制御装置30内での通信に用いられるIPアドレスは、これに限られない。
○ブリッジ通信制御部の構成
図8は、一実施形態のブリッジ通信制御部の構成の一例を示す図である。図8に示すように、ブリッジ通信制御部14は、通信部141、制御部142および記憶部143を有する。通信部141は、制御部142の制御に応じて、第1の送受信部11または第2の送受信部17から受信したパケット情報の送信、およびNAPT処理を含むパケット情報の書き換えを行う。通信部141は、例えば、図2に示したネットワークインターフェース(I/F)1008およびCPU1001によって実行されるプログラム等により実現される。制御部142は、記憶部143に記憶されている通信制御情報300に基づき、通信部141の通信を制御する。制御部142は、例えば、図2に示したCPU1001によって実行されるプログラム等により実現される。
記憶部143は、通信制御情報300およびNAPTテーブル310を記憶している。記憶部143は、例えば、図2に示したROM1002、ストレージ1004およびCPU1001で実行されるプログラム等により実現される。記憶部143は、記憶手段の一例である。通信制御情報300およびNAPTテーブル310は、制御部142による通信制御に用いられるルーティングテーブルである。
ここで、記憶部143に記憶されている通信制御情報300について説明する。図9は、一実施形態に係る通信制御情報の一例を示す図である。図9に示す通信制御情報300は、ブリッジ通信制御部14のパケット処理のルールを示したルーティングテーブルである。通信制御情報300は、処理決定情報の一例である。
ブリッジ通信制御部14は、受信したパケット情報を用いて通信制御情報300のパケット処理ルールを上から順に走査する。ブリッジ通信制御部14は、受信したパケット情報に合致するパケット処理ルールを検出する。そして、ブリッジ通信制御部14は、検出したパケット処理ルールで示される、受信したパケット情報に対応する動作(actions)を実行する。ブリッジ通信制御部14は、アクションを実行した場合、通信制御情報300の走査を終了する。
通信制御情報300のパケット処理ルールは、図9に示すように、入力元(In port)、タイプ(type)、送信元(src:source)、送信先(dst:destination)、動作(actions)の各条件で構成されている。ブリッジ通信制御部14は、受信したパケット情報の条件が全てマッチするパケット処理ルールを、受信したパケット情報に対応するパケット処理ルールとして検出する。図9における「ANY」の条件は、どのようなパケット情報でもマッチすることを意味している。ブリッジ通信制御部14は、全ての条件にマッチするパケット処理ルールが存在しない場合、図9の最下段に示すデフォルト(default)の処理(破棄:drop)を実行する。
図9に示す「入力元」の条件は、パケット情報を受信したポートを示している。具体的には、「入力元」は、第1の送受信部11、タグ処理部12、第2の送受信部17、第1のNAPT通信制御部15および第2のNAPT通信制御部16等である。また、図9に示す「タイプ」の条件は、通信のタイプを示している。具体的には、「タイプ」は、データリンク層の通信、ネットワーク層の通信である。ブリッジ通信制御部14は、パケット情報がIP通信の場合、「タイプ」がIPの条件にマッチするものとして処理する。
図9に示す「送信元」の条件は、送信元アドレスを示している。また、「送信先」の条件は、送信先アドレスを示している。具体的には、「送信元」および「送信先」は、単一のIPアドレスの場合、ネットワークアドレスの場合、データリンク層に関するMACアドレスの場合がある。ブリッジ通信制御部14は、MACアドレスをマッチング処理の条件とすることで、特定の機器からのパケット情報を、NAPT処理の対象とすることができる。そのため、ブリッジ通信制御部14は、意図しない機器からネットワーク機器にパケットが送信される不都合を防止できる。なお、ブリッジ通信制御部14は、MACアドレスをマッチング処理の条件としなくてもよい。
図9に示す動作は、パケット情報が、各条件にマッチしたときの動作を示している。なお、ブリッジ通信制御部14は、複数の動作を実行してもよい。図9に示す動作のうち、「drop」は、パケット情報を破棄する動作を意味している。「NAPT」は、NAPT処理の実行を意味している。ブリッジ通信制御部14は、パケット情報の第1引数に、SNAT(Source Network Address Translation)を検出した場合、NAPT処理として、送信元アドレスの変換(SNAT)を行う。また、ブリッジ通信制御部14は、パケット情報の第1引数に、DNAT(Destination Network Address Translation)を検出した場合、NAPT処理として、送信先アドレスの変換処理(DNAT)を行う。いずれの場合も、第2引数が、置き換えるIPアドレスとなっている。
ブリッジ通信制御部14は、NAPT処理を実行する場合、NAPTテーブルの内容を書き換え、正しくNAPT処理ができるようにする。この場合、ブリッジ通信制御部14は、不正なTCPセッション等を確認し、不正なパケットの送信を防止する。
図9に示す動作における「mod_mac」は、MACアドレスを置き換える動作を示している。また、図9に示す動作における「output」は、指定されたポートにパケット情報を出力する動作を示している。ブリッジ通信制御部14は、全てのパケット情報を破棄(drop)する動作が、デフォルトの動作となっている。
図9の「1」および「2」は、「送信元」の条件が通信制御装置30内部で用いる「192.0.2.0/24」のIPアドレスの場合の動作を示している。この場合、ブリッジ通信制御部14は、パケット情報を破棄(drop)する。これにより、通信制御装置30は、通信制御装置30内部で用いるIPアドレスのパケット情報を、外部から受信する不都合を防止するとともに、意図しないパケット情報の送信を防止することができる。
図9の「3」は、タグ処理部12から受信したパケット情報を全て(ANY)第2の送受信部17に出力する動作を示している。また、図9の「4」は、第1のNAPT通信制御部15から受信したパケット情報が、ブリッジ通信制御部14の「192.0.2.10(INT)」のIPアドレスを送信先とする場合の動作を示している。この場合、ブリッジ通信制御部14は、NAPT処理により、送信元アドレスをブリッジ通信制御部14のIPアドレス(BRI_A)に変換し、送信先アドレスを情報処理装置10のIPアドレス(MFP)に変換する。そして、ブリッジ通信制御部14は、MACアドレスをルータ70aのMACアドレスとして、パケット情報を第2の送受信部17に送信する。
図9の「5」は、第2のNAPT通信制御部16から受信したパケット情報が、ブリッジ通信制御部14の「192.0.2.10」のIPアドレス(INT)を送信先とする場合の動作を示している。この場合、ブリッジ通信制御部14は、NAPT処理により、送信元アドレスをブリッジ通信制御部14のIPアドレス(BRI_A)に変換し、送信先アドレスを情報処理装置10のIPアドレス(MFP)に変換する。そして、ブリッジ通信制御部14は、MACアドレスをルータ70aのMACアドレスとして、パケット情報を第2の送受信部17に送信する。
図9の「6」は、第2の送受信部17を介して受信したパケット情報(例えば、スキャン処理により生成されたパケット情報)の送信先が、サーバ装置90bであった場合の動作を示している。この場合、ブリッジ通信制御部14は、NAPT処理により、送信元アドレスをサーバ装置90bのIPアドレス(INT_SV_B1)に変換し、送信先アドレスを第1のNAPT通信制御部15のIPアドレス(INT_B)に変換する。そして、ブリッジ通信制御部14は、パケット情報を第1のNAPT通信制御部15に送信する。
図9の「7」の場合、第2の送受信部17を介して受信したパケット情報(例えば、スキャン処理により生成されたパケット情報)の送信先が、サーバ装置90cであった場合、ブリッジ通信制御部14は、NAPT処理により、送信元をサーバ装置90cのIPアドレス(INT_SV_C1)に変換すると共に、送信先を第2のNAPT通信制御部16のIPアドレス(INT_C)に変換して、第2のNAPT通信制御部16に送信する動作を示している。
図9の「8」の場合、ブリッジ通信制御部14が、第2の送受信部17で受信したパケット情報を、どのようなパケット情報でも(ANY)、タグ処理部12へ送信する動作を示している。基本的には、ブリッジ通信制御部14は、第1の送受信部11および第2の送受信部17との間は、全て通信可能としているが、例えば内部通信、第1のNAPT通信制御部15、第2のNAPT通信制御部16に関連するパケット情報等の、一部のパケット情報以外、ブリッジ通信制御部14はブリッジ処理する。
ここで、図9に示す通信制御情報300のパケット処理ルールの順番は、一例として、セキュリティ、合致する確率および制御のしやすさを考慮した順番となっている。本実施形態に係る情報処理システムは、例えば、第1の送受信部11と第2の送受信部17との間の通信が最も多く行われるとする。この場合、図9に示す通信制御情報300の第1番目に走査を行うパケット処理ルールとして、第1の送受信部11と第2の送受信部17との間の通信に対応するパケット処理ルールが設定される。この例は、合致する確率が高いパケット処理ルールから順に並べて走査する例である。この例のように、合致する確率の高いパケット処理ルールから順にパケット処理ルールの走査を行う場合には、より高速に合致するパケット処理ルールを検出できる。
○NAPT通信制御部の構成
図10は、一実施形態に係るNAPT通信制御部の機能構成の一例を示す図である。図10は、第1のNAPT通信制御部15および第2のNAPT通信制御部16の構成を示す。図10に示すように、第1のNAPT通信制御部15は、通信部151、制御部152および記憶部153を有する。
通信部151は、制御部152の制御に応じて、第1の送受信部11または第2の送受信部17から受信したパケット情報の送信、およびNAPT処理を含むパケット情報の書き換えを行う。通信部151は、例えば、図2に示したネットワークインターフェース(I/F)1008およびCPU1001によって実行されるプログラム等により実現される。制御部152は、記憶部153に記憶されている通信経路制御情報320およびNAPTテーブル330に記憶されている情報に基づき、通信部151を制御する。制御部152は、例えば、図2に示したCPU1001によって実行されるプログラム等により実現される。
記憶部153は、通信経路制御情報320およびNAPTテーブル330を記憶している。記憶部153は、例えば、図2に示したROM1002、ストレージ1004およびCPU1001で実行されるプログラム等により実現される。記憶部153は、記憶手段の一例である。通信経路制御情報320およびNAPTテーブル330は、制御部152による通信制御に用いられるルーティングテーブルである。通信経路制御情報320およびNAPTテーブル330には、図11に示すフローテーブルおよびARP(Address Resolution Protocol)テーブル等の内部通信または外部通信を行うための制御情報が記憶される。ここで、記憶部153に記憶されている通信経路制御情報320およびNAPTテーブル330の内容について説明する。
図11(a)は、第1のNAPT通信制御部15の記憶部153に記憶されているNAPTテーブル330の一例である。図11(a)に示すNAPTテーブル330において、デフォルトゲートウェイは、「172.16.1.1[ルータ70b(R_B)]」である。なお、図11(a)において、ゲートウェイが一つのみである例を示すが、ネットワークの構成に応じて、複数のルータを設定してもよい。
図11(b)は、第1のNAPT通信制御部15の記憶部153に記憶されている通信経路制御情報320の一例である。図11(b)に示す通信経路制御情報320は、第1のNAPT通信制御部15のパケット処理ルールを示したものである。通信経路制御情報320は、処理決定情報の一例である。第1のNAPT通信制御部15は、ブリッジ通信制御部14と同様に、受信したパケット情報を用いて通信経路制御情報320のパケット処理ルールを上から順に走査することで、受信したパケット情報に合致するパケット処理ルールを検出する。第1のNAPT通信制御部15は、検出したパケット処理ルールで示される、受信したパケット情報に対応する動作(action)を実行する。第1のNAPT通信制御部15は、アクションを実行した場合、通信経路制御情報320の走査を終了する。
具体的には、図11(b)に「デフォルト(default)」として示す動作は、第1のNAPT通信制御部15が、予期しないパケット情報を破棄(drop)する動作を示している。図11(b)に示す「2」および「3」は、第1のNAPT通信制御部15が、ネットワークNet_B系から受信したパケット情報のNAPT処理を実行し、パケット情報をブリッジ通信制御部14に送信する動作を示している。この場合、第1のNAPT通信制御部15は、アクセス制御設定により、送信元のIPアドレスを制限している。しかし、送信元のIPアドレスを制限しなくてもよい。
図11(b)に示す「4」は、第1のNAPT通信制御部15が、ネットワークNet_B系のサーバ装置90bからブリッジ通信制御部14を介して、第1のNAPT通信制御部15の「192.0.2.12:445」を送信先とするパケット情報を受信した場合の動作を示している。この場合、第1のNAPT通信制御部15は、情報処理装置10からサーバ装置90bへファイル情報等を送信する通信を行うように、受信したパケット情報のNAPT処理を実行し、パケット情報を第1の送受信部11に送信する。
第1のNAPT通信制御部15は、NAPT処理を行う場合、TCP(Transmission Control Protocol)セッションの状態を検出し、まだ開始されていないセッションについては、TCPセッションの途中状態のパケットを受け付けない。TCPセッションが開始されていない場合、第1のNAPT通信制御部15は、TCPセッションの確立のためのハンドシェイクを受け付けることで、例えば攻撃等の意図しないパケット送信を防止することができる。
続いて、第2のNAPT通信制御部16の機能構成を説明する。第2のNAPT通信制御部16は、通信部161、制御部162および記憶部163を有する。通信部161は、制御部162の制御に応じて、第1の送受信部11または第2の送受信部17から受信したパケット情報の送信、およびNAPT処理を含むパケット情報の書き換えを行う。通信部161は、例えば、図2に示したネットワークインターフェース(I/F)1008およびCPU1001によって実行されるプログラム等により実現される。制御部162は、記憶部163に記憶されている通信経路制御情報340およびNAPTテーブル350に記憶されている情報に基づき、通信部161を制御する。制御部162は、例えば、図2に示したCPU1001によって実行されるプログラム等により実現される。
記憶部163は、通信経路制御情報340およびNAPTテーブル350を記憶している。記憶部163は、例えば、図2に示したROM1002、ストレージ1004およびCPU1001で実行されるプログラム等により実現される。記憶部163は、記憶手段の一例である。通信経路制御情報340およびNAPTテーブル350は、制御部162による通信制御に用いられるルーティングテーブルである。通信経路制御情報340およびNAPTテーブル350には、図12に示すフローテーブルおよびARP(Address Resolution Protocol)テーブル等の内部通信または外部通信を行うための制御情報が記憶される。ここで、記憶部163に記憶されている通信経路制御情報340およびNAPTテーブル350の内容について説明する。
図12(a)は、第2のNAPT通信制御部16の記憶部163に記憶されているNAPTテーブル350の一例である。図12(a)に示すNAPTテーブル350において、デフォルトゲートウェイは、「10.0.1.1[ルータ70c(R_C)]」である。なお、図12(a)において、ゲートウェイが一つのみである例を示すが、ネットワークの構成に応じて、複数のルータを設定してもよい。
図12(b)は、第2のNAPT通信制御部16の記憶部163に記憶されている通信経路制御情報340の一例である。図12(b)に示す通信経路制御情報340は、第2のNAPT通信制御部16のパケット処理ルールを示したものである。通信経路制御情報340は、処理決定情報の一例である。第2のNAPT通信制御部16は、ブリッジ通信制御部14と同様に、受信したパケット情報を用いて通信経路制御情報340のパケット処理ルールを上から順に走査することで、受信したパケット情報に合致するパケット処理ルールを検出する。第2のNAPT通信制御部16は、検出したパケット処理ルールで示される、受信したパケット情報に対応する動作(action)を実行する。第2のNAPT通信制御部16は、アクションを実行した場合、通信経路制御情報340の走査を終了する。
具体的には、図12(b)に「デフォルト(default)」として示す動作は、第2のNAPT通信制御部16が、予期しないパケット情報を破棄(drop)する動作を示している。図12(b)に示す「2」および「3」は、第2のNAPT通信制御部16が、ネットワークNet_C系から受信したパケット情報のNAPT処理を実行し、パケット情報をブリッジ通信制御部14に送信する動作を示している。この場合、第2のNAPT通信制御部16は、アクセス制御設定により、送信元のIPアドレスを制限している。しかし、送信元のIPアドレスを制限しなくてもよい。
図12(b)に示す「4」は、第2のNAPT通信制御部16が、ネットワークNet_C系のサーバ装置90cからブリッジ通信制御部14を介して、第2のNAPT通信制御部16の「192.0.2.13:445」を送信先とするパケット情報を受信した場合の動作を示している。この場合、第2のNAPT通信制御部16は、情報処理装置10からサーバ装置90cへファイル情報等を送信する通信を行うように、受信したパケット情報のNAPT処理を実行し、パケット情報を第1の送受信部11に送信する。
第2のNAPT通信制御部16は、NAPT処理を行う場合、TCPセッションの状態を検出し、まだ開始されていないセッションについては、TCPセッションの途中状態のパケットを受け付けない。TCPセッションが開始されていない場合、第2のNAPT通信制御部16は、TCPセッションの確立のためのハンドシェイクを受け付けることで、例えば攻撃等の意図しないパケット送信を防止することができる。
通信制御装置30は、第1のNAPT通信制御部15および第2のNAPT通信制御部16によって、パケット情報のNAPT変換が行われる例を説明したが、パケット情報のNAT(network address translator)変換が行われる構成にしてもよい。また、通信制御装置30は、第1のNAPT通信制御部15および第2のNAPT通信制御部16の二つを設けることとしたが、三つ以上のNAPT通信制御部を設けてもよい。
○タグ処理部のフローテーブル
続いて、図13を用いて、タグ処理部12の処理内容を説明する。図13は、一実施形態に係るタグ処理部の処理フローを説明するための図である。図13に示すフローテーブル230は、タグ処理部12におけるパケット処理のルールを示したルーティングテーブルである。フローテーブル230は、処理決定情報の一例である。図13に示すフローテーブル230は、IEEE802.1Qにおけるトランキング処理を想定している。図13に示すフローテーブル230は、例えば、記憶部13に記憶されている。なお、図13は、タグ処理部12における処理内容を簡単に記載したものであり、パケット情報の入出力は、予め設定された宛先情報(例えば、図7に示した通信制御装置30の各部のIPアドレス)に基づいて行われる。
タグ処理部12は、受信したパケット情報を用いてフローテーブル230に示すパケット処理ルールを上から順に走査する。タグ処理部12は、受信したパケット情報に合致するパケット処理ルールを検出する。そして、タグ処理部12は、検出したパケット処理ルールに対応する動作(action)を実行する。タグ処理部12は、動作(action)を実行すると、フローテーブル230の走査を終了する。
具体的には、図13に示すように、タグ処理部12の「デフォルト(default)」の動作は、予期しないパケット情報を破棄(drop)する動作である。図13に示す「1」の条件において、タグ処理部12は、第1の送受信部11を介してVLANタグが付加されていないパケット情報を受信した場合、すなわちNativeVLANに対応する通信ポートによってパケット情報を受信した場合、受信したパケット情報の処理を行わない。そして、タグ処理部12は、受信したパケット情報をブリッジ通信制御部14へ送信する。
図13に示す「4」の条件において、タグ処理部12は、ブリッジ通信制御部14からパケット情報を受信した場合、受信したパケット情報の処理を行わずに、受信したパケット情報を第1の送受信部11へ送信する。ここで、図13に示す「1」と「4」の条件の場合、タグ処理部12は、受信したパケット情報の処理を行わずに出力するが、情報処理装置10とVLAN対応スイッチ50のNativeVLANのIDは予め揃えておく必要がある。例えば、NativeVLANのIDは、「1」に設定されている。
図13に示す「2」の条件において、タグ処理部12は、第1の送受信部11を介してVLANタグが「10」のパケット情報を受信した場合、「10」のVLANタグをパケット情報から除去する。そして、タグ処理部12は、VLANタグを除去したパケット情報を、第1のNAPT通信制御部15へ出力する。
図13に示す「3」の条件において、タグ処理部12は、第1の送受信部11を介してVLANタグが「30」のパケット情報を受信した場合、「30」のVLANタグをパケット情報から除去する。そして、タグ処理部12は、VLANタグを除去したパケット情報を、第2のNAPT通信制御部16へ出力する。
図13に示す「5」の条件において、タグ処理部12は、第1のNAPT通信制御部15からパケット情報を受信した場合、受信したパケット情報に「10」のVLANタグを付加する。そして、タグ処理部12は、「10」のVLANタグを付加したパケット情報を、第1の送受信部11へ出力する。
図13に示す「6」の条件において、タグ処理部12は、第2のNAPT通信制御部16からパケット情報を受信した場合、受信したパケット情報に「30」のVLANタグを付加する。そして、タグ処理部12は、「30」のVLANタグを付加したパケット情報を、第1の送受信部11へ出力する。
●通信制御装置における通信制御処理
続いて、通信制御装置30における通信制御処理を説明する。図14は、第1の実施形態に係る通信制御装置における、ネットワーク機器から情報処理装置へパケット情報を送信する際の処理フローを説明するためのフローチャートである。
ステップS101において、通信制御装置30の第1の送受信部11は、ネットワーク機器からパケット情報を受信した場合、処理をステップS102へ移行させる(取得ステップの一例)。一方で、通信制御装置30の第1の送受信部11は、ネットワーク機器からパケット情報を受信していない場合、ステップS101の処理を繰り返す。
ステップS102において、通信制御装置30のタグ処理部12は、第1の送受信部11によって受信されたパケット情報にVLANタグが付加されているか否かを識別する。通信制御装置30は、受信したパケット情報にVLANタグが付加されている場合、処理をステップS103へ移行させる。
ステップS103において、通信制御装置30のタグ処理部12は、VLANタグが付加されているパケット情報からVLANタグを除去する。具体的には、ネットワークNet_B系およびネットワークNet_C系から送信されたパケット情報は、それぞれ受信した通信ポートに対応するVLANタグを含む。通信制御装置30のタグ処理部12は、タグVLANに対応していない情報処理装置10へパケット情報を送信するため、受信したパケット情報に含まれるVLANタグを取り除く。
そして、タグ処理部12は、パケット情報に含まれるVLANタグが「10」である場合、すなわちパケット情報に含まれる送信元の宛先情報がネットワークNet_B系に接続されたネットワーク機器である場合、VLANタグを除去したパケット情報を、第1のNAPT通信制御部15へ送信する。一方で、タグ処理部12は、パケット情報に含まれるVLANタグが「30」である場合、すなわちパケット情報に含まれる送信元の宛先情報がネットワークNet_C系に接続されたネットワーク機器である場合、VLANタグを除去したパケット情報を、第2のNAPT通信制御部16へ送信する。
ステップS104において、通信制御装置30の第1のNAPT通信制御部15または第2のNAPT通信制御部16は、受信したパケット情報のNAPT処理を実行する。具体的には、第1のNAPT通信制御部15の制御部152は、記憶部153に記憶された通信経路制御情報320を用いて、通信部151によって受信されたパケット情報のNAPT処理を実行する。この場合、制御部152は、通信部151によって受信されたパケット情報が、図11に示した通信経路制御情報320の「2」または「3」の条件に該当するため、該当する条件に対する動作を実行する。通信経路制御情報320の「2」または「3」に示すように、通信部151は、制御部152によってNAPT処理が行われたパケット情報を、ブリッジ通信制御部14へ出力する。
一方で、第2のNAPT通信制御部16の制御部162は、記憶部163に記憶された通信経路制御情報340を用いて、通信部161によって受信されたパケット情報のNAPT処理を実行する。この場合、制御部162は、通信部161によって受信されたパケット情報が、図12に示した通信経路制御情報340の「2」または「3」の条件に該当するため、該当する条件に対する動作を実行する。通信経路制御情報340の「2」または「3」に示すように、通信部161は、制御部162によってNAPT処理が行われたパケット情報を、ブリッジ通信制御部14へ出力する。
ステップS105において、通信制御装置30のブリッジ通信制御部14は、図9に示した通信制御情報300を用いて、第1のNAPT通信制御部15または第2のNAPT通信制御部16から受信したパケット情報の処理を実行する。具体的には、通信部141によって第1のNAPT通信制御部15から送信されたパケット情報が受信された場合、ブリッジ通信制御部14の制御部142は、図9に示した通信制御情報300の「4」の条件に該当するため、「4」の条件に対する動作を実行する。通信制御情報300の「4」に示すように、制御部142は、通信部141によって受信されたパケット情報のNAPT処理を実行する。そして、通信部141は、制御部142によってNAPT処理が行われたパケット情報を、第2の送受信部17へ出力する。
また、通信部141によって第2のNAPT通信制御部16から送信されたパケット情報が受信された場合、ブリッジ通信制御部14の制御部142は、図9に示した通信制御情報300の「5」の条件に該当するため、「5」の条件に対する動作を実行する。通信制御情報300の「5」に示すように、制御部142は、通信部151によって受信されたパケット情報のNAPT処理を実行する。そして、通信部141は、制御部142によってNAPT処理が行われたパケット情報を、第2の送受信部17へ出力する。
一方で、ステップS102において、通信制御装置30は、第1の送受信部11によって受信されたパケット情報にVLANタグが付加されていない場合、処理をステップS106へ移行させる。
ステップS106において、通信制御装置30のブリッジ通信制御部14は、図9に示した通信制御情報300を用いて、タグ処理部12から受信したパケット情報の処理を実行する。具体的には、通信部141によってタグ処理部12から送信されたパケット情報が受信された場合、ブリッジ通信制御部14の制御部142は、図9に示した通信制御情報300の「2」の条件に該当するため、「2」の条件に対する動作を実行する。通信制御情報300の「2」に示すように、通信部141は、受信したパケット情報を第2の送受信部17へ送信する。すなわち、ステップS106の処理において、ブリッジ通信制御部14は、受信したパケット情報のNAPT処理を行なわずに、直接タグ処理部12から受信したパケット情報を、第2の送受信部17へ送信する。
ステップS107において、通信制御装置30の第2の送受信部17は、ブリッジ通信制御部14から送信されたパケット情報を情報処理装置10へ送信する(通信制御ステップの一例)。これにより、本実施形態に係る情報処理システムにおいて、通信制御装置30は、VLANタグを含むパケット情報およびVLANタグを含まないパケット情報のいずれを受信した場合においても、情報処理装置10へパケット情報を送信する制御を行うことができる。
図15は、一実施形態に係る通信制御装置における、情報処理装置からネットワーク機器へファイル情報を送信する際の処理フローを説明するためのフローチャートである。図15に示す処理は、図14に示した処理と同様に、通信制御情報300、通信経路制御情報320、通信経路制御情報340およびタグ処理部12のフローテーブル230等の処理決定情報を用いて実行される。なお、情報処理装置10からネットワーク機器へ送信される情報は、ファイル情報に限られない。
ステップS201において、通信制御装置30は、第2の送受信部17において、情報処理装置10からファイル情報を受信した場合、処理をステップS202へ移行させる(取得ステップの一例)。一方で、通信制御装置30は、第2の送受信部17において、ファイル情報を受信していない場合、ステップS201の処理を繰り返す。
ステップS202において、通信制御装置30は、第2の送受信部17によって受信されたファイル情報の処理を実行する。具体的には、ブリッジ通信制御部14の通信部141は、第2の送受信部17から送信されたファイル情報を受信する。そして、ブリッジ通信制御部14の制御部142は、記憶部143に記憶された通信制御情報300に基づいて、通信部141によって受信されたファイル情報の処理を実行する。
ステップS203において、制御部142は、ファイル情報の送信先がネットワークNet_A系である場合、処理をステップS208へ移行させる。具体的には、制御部142は、通信部141により受信したファイル情報に含まれる送信先の宛先情報が、ネットワークNet_A系に接続されたネットワーク機器である場合、処理をステップS208へ移行させる。
ステップS208において、通信制御装置30は、第1の送受信部11を用いて、ネットワーク機器へファイル情報を送信する(通信制御ステップの一例)。具体的には、ブリッジ通信制御部14の通信部141は、タグ処理部12へファイル情報を送信する。タグ処理部12は、受信したファイル情報に含まれる送信先の宛先情報がネットワークNet_A系であるため、ファイル情報へのタグ情報の付加または削除は行わない。タグ処理部12は、受信したファイル情報を、第1の送受信部11へ送信する。そして、第1の送受信部11は、ネットワークNet_A系に接続されたネットワーク機器へ、ファイル情報を送信する。
一方で、ステップS203において、通信制御装置30は、ファイル情報の送信先がネットワークNet_A系でない場合、処理をステップS204へ移行させる。ステップS204において、通信制御装置30は、ファイル情報の送信先がネットワークNet_B系である場合、処理をステップS205へ移行させる。
ステップS205において、通信制御装置30は、第1のNAPT通信制御部15において、ファイル情報のNAPT処理を実行する。具体的には、ブリッジ通信制御部14の通信部141は、第1のNAPT通信制御部15へ、ファイル情報を送信する。そして、第1のNAPT通信制御部15の制御部152は、記憶部153に記憶された通信経路制御情報320を用いて、通信部151によって受信されたファイル情報のNAPT処理を実行する。
この場合、制御部152は、通信部151によって受信されたファイル情報が、図11に示した通信経路制御情報320の「4」の条件に該当するため、「4」の条件に対する動作を実行する。通信経路制御情報320の「4」に示すように、制御部152は、通信部151によって受信されたファイル情報のNAPT処理を実行する。そして、通信部151は、制御部152によってNAPT処理が行われたパケット情報を、第1の送受信部11へ送信する。
一方で、ステップS204において、通信制御装置30は、ファイル情報の送信先がネットワークNet_B系でない場合、処理をステップS206へ移行させる。ステップS206において、通信制御装置30は、第2のNAPT通信制御部16において、ファイル情報のNAPT処理を実行する。
具体的には、ブリッジ通信制御部14の通信部141は、第2のNAPT通信制御部16へ、ファイル情報を送信する。そして、第2のNAPT通信制御部16の制御部162は、記憶部163に記憶された通信経路制御情報340を用いて、通信部161によって受信されたファイル情報のNAPT処理を実行する。
この場合、制御部162は、通信部161によって受信されたファイル情報が、図12に示した通信経路制御情報340の「4」の条件に該当するため、「4」の条件に対する動作を実行する。通信経路制御情報340の「4」に示すように、制御部162は、通信部161によって受信されたファイル情報のNAPT処理を実行する。そして、通信部161は、制御部162によってNAPT処理が行われたパケット情報を、第1の送受信部11へ送信する。
ステップS207において、通信制御装置30のタグ処理部12は、第1のNAPT通信制御部15または第2のNAPT通信制御部16から送信されたファイル情報に、VLANタグを付加する。具体的には、第1のNAPT通信制御部15からファイル情報が送信された場合、タグ処理部12は、図13に示したフローテーブル230の「5」の条件に該当するため、受信したファイル情報にVLANタグ「10」を付加する。そして、タグ処理部12は、図13に示したフローテーブル230の「5」に示すように、第1の送受信部11へ、VLANタグ「10」を付加したファイル情報を送信する。
第2のNAPT通信制御部16からファイル情報が送信された場合、タグ処理部12は、図13に示したフローテーブル230の「6」の条件に該当するため、受信したファイル情報にVLANタグ「30」を付加する。そして、タグ処理部12は、図13に示したフローテーブル230の「6」に示すように、第1の送受信部11へ、VLANタグ「30」を付加したファイル情報を送信する。
ステップS208において、通信制御装置30の第1の送受信部11は、タグ処理部12から送信されたファイル情報を、ファイル情報に含まれる宛先情報が示す送信先のネットワーク機器へ、それぞれ送信する。具体的には、第1の送受信部11は、タグ処理部12から送信された、VLANタグ「10」が付加されたファイル情報を、ネットワークNet_B系に接続されたネットワーク機器へ送信する。また、第1の送受信部11は、タグ処理部12から送信された、VLANタグ「30」が付加されたファイル情報を、ネットワークNet_C系に接続されたネットワーク機器へ送信する。
これにより、本実施形態に係る情報処理システムにおいて、通信制御装置30は、VLANタグを含むパケット情報の送受信を行うネットワーク(ネットワークNet_A系)およびVLANタグを含まないパケット情報の送受信を行うネットワーク(ネットワークNet_B系またはネットワークNet_C系)のいずれのネットワークに対しても、情報処理装置10から送信されたパケット情報を送信する制御を行うことができる。
○ネットワークNet_A系のネットワーク機器から情報処理装置へ送信されるパケット情報の流れ
次に、図1に示すネットワークNet_A系に設けられているクライアント端末80aから情報処理装置10へ送信されるパケット情報の流れを図16のシーケンス図を用いて説明する。図16において、パケット情報の「PC_A1:3000」の記載は、送信元(SRC)であるクライアント端末80a(PC_A1)のIPアドレスおよびポート番号を示す。すなわち、「PC_A1」の記載は、クライアント端末80a(PC_A1)のIPアドレスを示しており、「3000」の記載は、ポート番号を示している。
同様に、パケット情報の「MFP:9100」に記載は、送信先(DST)となる情報処理装置10(MFP)のIPアドレスおよびポート番号を示す。すなわち、「MFP」の記載は、送信先(DST)となる情報処理装置10のIPアドレスを示しており、「9100」の記載は、ポート番号を示している。
ネットワークNet_A系に設けられているクライアント端末80aから情報処理装置10へパケット情報を送信する場合、通信制御装置30は、タグ処理部12およびブリッジ通信制御部14を介してパケット情報を送信する。この場合、通信制御装置30のタグ処理部12は、図13に示したフローテーブル230の「1」の条件に該当するため、パケット情報のタグ処理を行わない。また、通信制御装置30のブリッジ通信制御部14は、図9に示した通信制御情報300の「3」の条件に該当するため、パケット情報のNAPT処理等のパケット処理を行わない。
このため、図16に示すように、パケット情報は、タグ処理およびNAPT処理が施されることなく、クライアント端末80a(PC_A1)→ルータ70a(R_A)→VLAN対応スイッチ50→第1の送受信部11→タグ処理部12→ブリッジ通信制御部14→第2の送受信部17→情報処理装置10(MFP)の順に送信される。
同様に、情報処理装置10からネットワークNet_A系に設けられているクライアント端末80a(PC_A1)へパケット情報を送信する場合も、通信制御装置30は、タグ処理部12およびブリッジ通信制御部14を介してパケット情報を送信する。このため、図16に示すように、送信元(SRC)が「MFP:9100」、送信先(DST)が「PC_A1:3000」とされたパケット情報は、情報処理装置10(MFP)→第2の送受信部17→ブリッジ通信制御部14→タグ処理部12→第1の送受信部11→VLAN対応スイッチ50→ネットワークNet_A系のルータ70a(R_A)→クライアント端末80a(PC_A1)の順に送信される。
なお、クライアントとなる装置の送信元ポートは、パケットに着目した場合、セッション層またはアプリケーション層等の上位レイヤに応じて変更される。
○ネットワークNet_B系のネットワーク機器から情報処理装置へ送信されるパケット情報の流れ
次に、図1に示すネットワークNet_B系に設けられているクライアント端末80bから情報処理装置10へ送信されるパケット情報の流れを図17のシーケンス図を用いて説明する。図17において、パケット情報の「PC_B1:3000」の記載は、送信元(SRC)となるクライアント端末80b(PC_B1)のIPアドレスおよびポート番号を示す。すなわち、「PC_B1」の記載は、クライアント端末80b(PC_B1)のIPアドレスを示しており、「3000」の記載は、ポート番号を示している。
同様に、パケット情報の「MFP:9100」に記載は、送信先(DST)となる情報処理装置10(MFP)のIPアドレスおよびポート番号を示す。すなわち、「MFP」の記載は、送信先(DST)となる情報処理装置10のIPアドレスを示しており、「9100」の記載は、ポート番号を示している。
ネットワークNet_B系に設けられているクライアント端末80b(PC_B1)か ら情報処理装置10へパケット情報を送信する場合、通信制御装置30は、タグ処理部12、第1のNAPT通信制御部15およびブリッジ通信制御部14を介してパケット情報が送信する。このため、図17に示すように、パケット情報は、クライアント端末80b(PC_B1)→ルータ70b(R_B)→VLAN対応スイッチ50→第1の送受信部11→タグ処理部12→第1のNAPT通信制御部15→ブリッジ通信制御部14→第2の送受信部17→情報処理装置10(MFP)の順に送信される。
VLAN対応スイッチ50は、通信制御装置30に送信するパケット情報に、「10」のVLANタグを付加する。タグ処理部12は、VLANタグが付されたパケット情報を受信した場合、パケット情報からVLANタグ(この場合、「10」のVLANタグ)を除去して、第1のNAPT通信制御部15に送信する。
第1のNAPT通信制御部15は、ブリッジ通信制御部14にパケット情報を送信する場合、図11(b)に示した通信経路制御情報320の「3」の条件に対応する処理(動作)を実行する。第1のNAPT通信制御部15は、送信元が「PC_B1:3000」、送信先が「MFP:9100」となっているパケット情報に対して、送信元を「INT_B:4000」とするNAPT処理を実行する。第1のNAPT通信制御部15は、NAPT処理を行ったパケット情報をブリッジ通信制御部14に送信する。
ここで、送信元のIPアドレスを「INT_B」に変換する意味は、パケット情報が送信元(この場合、サーバ装置90b(PC_B1))に戻される場合に、第2のNAPT通信制御部16のIPアドレスINT_Cと区別できるようにするためである(IPアドレスINT_Bからのパケット情報は、IPアドレスINT_Bに戻り、IPアドレスINT_Cからのパケット情報は、IPアドレスINT_Cに戻る)。
ブリッジ通信制御部14は、第2の送受信部17にパケット情報を送信する場合、図9に示した通信制御情報300の「4」の条件に対応する処理(動作)を実行する。具体的には、ブリッジ通信制御部14は、送信元が「INT_B:4000」となっているパケット情報に対して、送信元を「BRI_A:5000」とするNAPT処理を実行する。ブリッジ通信制御部14は、NAPT処理を行ったパケット情報を第2の送受信部17に送信する。これにより、ネットワークNet_B系に設けられているクライアント端末80b(PC_B1)からのパケット情報が、情報処理装置10へ送信される。
本実施形態に係る情報処理システムは、通信制御装置30内で用いるIPアドレスである「INT_B:4000」を、通信制御装置30外で用いるIPアドレスである「BRI_A:5000」にNAPT処理する。そのため、本実施形態に係る情報処理システムは、「INT_B」等の通信制御装置30内で用いるIPアドレスが、外部で用いられる不都合を防止できる。
また、ブリッジ通信制御部14は、送信元のMACアドレスを、ネットワークNet_A系上に設けられているルータ70a(R_A)のMACアドレスに変換する。これにより、情報処理装置10は、デフォルトゲートウェイであるルータ70a(R_A)からパケット情報が送信されていると認識する。このため、ネットワークNet_B系のクライアント端末80b(PC_B1)が、あたかもルータ70a(R_A)の先に設けられているものとして取り扱うことができる。
一方、情報処理装置10からネットワークNet_B系に設けられているクライアント端末80b(PC_B1)へパケット情報を送信する場合、通信制御装置30は、ブリッジ通信制御部14、第1のNAPT通信制御部15およびタグ処理部12を介してパケット情報を送信する。このため、図10に示すように、パケット情報は、情報処理装置10(MFP)→第2の送受信部17→ブリッジ通信制御部14→第1のNAPT通信制御部15→タグ処理部12→第1の送受信部11→VLAN対応スイッチ50→ルータ70b(R_B)→クライアント端末80b(PC_B1)の順に送信される。
ブリッジ通信制御部14は、第1のNAPT通信制御部15にパケット情報を送信する場合、図9に示した通信制御情報300の「6」の条件に対応する処理(動作)を実行する。具体的には、ブリッジ通信制御部14は、送信元が「MFP:9100」、送信先が「BRI_A:5000」となっているパケット情報に対して、送信元を「INT:9100」、送信先を「INT_B4000」とするNAPT処理を実行する。そして、ブリッジ通信制御部14は、NAPT処理を行ったパケット情報を第1のNAPT通信制御部15に送信する。
第1のNAPT通信制御部15は、タグ処理部12にパケット情報を送信する場合、図11に示した通信経路制御情報320の「4」の条件に対応する処理(動作)を実行する。具体的には、第1のNAPT通信制御部15は、送信元が「INT:9100」、送信先が「INT_B:4000」となっているパケット情報に対して、送信元を「MFP:9100」、送信先を「PC_B1:3000」とするNAPT処理を実行する。そして、第1のNAPT通信制御部15は、NAPT処理を行ったパケット情報をタグ処理部12に送信する。
タグ処理部12は、パケット情報を第1の送受信部11を介してVLAN対応スイッチ50に送信するために、図13に示したフローテーブル230の「3」の条件に対応する処理を実行する。具体的には、タグ処理部12は、送信元が「MFP:9100」、送信先が「PC_B1:3000」となっているパケット情報に、「10」のVLANタグを付加する。そして、タグ処理部12は、VLANタグ「10」を付加したパケット情報を第1の送受信部11へ送信する。
VLAN対応スイッチ50は、第1の送受信部11を介して受信したパケット情報から、「10」のVLANタグを除去することで、送信元が「MFP:9100」、送信先が「PC_B1:3000」のパケット情報を形成し、ルータ70b(R_B)を介してクライアント端末80b(PC_B1)に送信する。これにより、情報処理装置10からネットワークNet_B系に設けられているクライアント端末80b(PC_B1)へパケット情報を送信することができる。
●実施形態の効果
以上説明したように、本実施形態に係る情報処理システムは、通信制御装置30がVLANタグ(仮想LANのタグ情報の一例)を含まないパケット情報(第1のデータの一例)の通信を行うネットワークNet_A系(第1のネットワークの一例)、並びにVLANタグを含むパケット情報(第2のデータの一例)の通信を行うネットワークNet_B系またはネットワークNet_C系(第2のネットワークの一例)のそれぞれに接続されたネットワーク機器と、情報処理装置10との間のパケット情報(送受信情報の一例)の通信制御を行う。
通信制御装置30は、情報処理装置10またはネットワーク機器からVLANタグを含まないパケット情報を受信した場合、すなわち、受信したパケット情報に含まれる送信先および送信元の宛先情報の少なくとも一方が、ネットワークNet_A系に接続されたネットワーク機器である場合、パケット情報のタグ処理、並びにNAPT処理およびポート変換処理(宛先情報変換処理の一例)を実行せずに、パケット情報の送信先である情報処理装置10またはネットワーク機器へパケット情報を送信する。
一方で、通信制御装置30は、情報処理装置10またはネットワーク機器からVLANタグを含むパケット情報を受信した場合、すなわち、受信したパケット情報に含まれる送信先および送信元の宛先情報の少なくとも一方が、ネットワークNet_B系またはネットワークNet_C系に接続されたネットワーク機器である場合、パケット情報のタグ処理およびNAPT処理を実行する。そして、通信制御装置30は、タグ処理、並びにNAPT処理およびポート変換処理を行ったパケット情報を、パケット情報の送信先である情報処理装置10またはネットワーク機器へ送信する。
これによって、本実施形態に係る情報処理システムは、異なるセグメントを有する複数のネットワーク間の通信にVLAN等の仮想LANを適用したシステムにおいて、仮想LANに対応していない情報処理装置10に対しても送受信情報の通信を行うことができる。そのため、本実施形態に係る情報処理システムは、情報処理装置10が仮想LANに対応しているか否かに関わらず、仮想LANに対応したより大規模なネットワークを形成することができる。
●その他の実施形態●
次に、その他の実施形態に係る情報処理システムについて説明する。なお、上述した実施形態と同一構成および同一機能は、同一の符号を付して、その説明を省略する。その他の実施形態に係る情報処理システムは、図18および図19に示すように、情報処理装置10と通信制御装置30が一体となっている。情報処理装置10Aは、例えば、拡張ボードとして通信制御装置30を設けてもよい。
図19は、その他の実施形態に係る情報処理装置の機能構成の一例を示す図である。情報処理装置10Aに内蔵された通信制御装置30は、第1の送受信部11を外部に開放し、VLAN対応スイッチ50を介して、各ネットワークと接続されている。また、第2の送受信部17は、情報処理装置10が本来有する第3の送受信部18と接続される。したがって、情報処理装置10Aは、通信制御装置30が内部に組み込まれていたとしても、上述の実施形態と同様の処理を行うことができる。
なお、その他の実施形態に係る情報処理システムは、通信制御装置30の一部を情報処理装置10Aの内部に設ける構成としてもよい。また、その他の実施形態に係る情報処理システムは、通信制御装置30とともに、または単独でVLAN対応スイッチ50を情報処理装置10Aの内部に設ける構成にしてもよい。
●補足●
なお、各実施形態の機能は、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムにより実現でき、各実施形態の機能を実行するためのプログラムは、電気通信回線を通じて頒布することができる。
また、各実施形態の機能を実行するためのプログラムは、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、フラッシュメモリ、フレキシブルディスク、CD(Compact Disc)-ROM、CD-RW(Re-Writable)、DVD-ROM、DVD-RAM、DVD-RW、ブルーレイディスク、SDカード、MO(Magneto-Optical disc)等の装置可読な記録媒体に格納して頒布することもできる。
さらに、各実施形態の機能の一部または全部は、例えばFPGA(Field Programmable Gate Array)等のプログラマブル・デバイス(PD)上に実装することができ、またはASICとして実装することができ、各実施形態の機能をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(Very High Speed Integrated Circuits Hardware Description Language)、Verilog-HDL等により記述されたデータとして記録媒体により配布することができる。
これまで本発明の一実施形態に係る通信制御装置、情報処理システム、制御方法およびプログラムについて説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態の追加、変更または削除等、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。