(57)【要約】【課題】  ２つ以上のローカルネットワーク間の通信を適切に行なうこと。【解決手段】  第１ローカルネットワーク１０５と第２ローカルネットワーク１０４とに接続する情報処理装置１０２であって、第２ローカルネットワーク１０４側で使用されていない第１ローカルネットワーク１０５用の第１ＩＰアドレス及び第２ＩＰアドレスを生成し、第２ローカルネットワーク１０４内及び、第２ローカルネットワーク１０４にルータを介して接続されているネットワーク１１０内で、第１ＩＰアドレス及び第２ＩＰアドレスが使用されているか否かを確認する。第１ＩＰアドレスが使用されていないと判断された場合には、第１ＩＰアドレスを外部コントローラ１０２の第１ローカルネットワーク側のＩＰアドレスとして決定する。第２ＩＰアドレスが使用されていないと判断された場合には、第２ＩＰアドレスを第１ローカルネットワーク上のノードに割り当てる。【選択図】  図１
2006246412.tif 000002
【特許請求の範囲】
【請求項１】
第１ネットワークと第２ネットワークとに接続する情報処理装置であって、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成手段と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定手段と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置であって、
前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換手段と、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識手段と、
前記アドレス認識手段で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成手段と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認する確認手段と、
前記確認手段によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定手段と、
前記確認手段によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定手段と、
を有することを特徴とする情報処理装置。
【請求項３】
前記アドレス生成手段は、
前記確認手段によって前記第１アドレス及び第２アドレスが使用されていると判断された場合に、再度、前記第１アドレス及び第２アドレスを生成することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記確認手段によって前記第１アドレス及び第２アドレスが使用されていると判断された場合に、警告メッセージを通知するメッセージ通知手段を更に有することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記確認手段がルータの先のネットワーク内のアドレス使用状況を確認する際にはＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を使用することを特徴とする請求項２、３または４に記載の情報処理装置。
【請求項６】
第１ネットワークと第２ネットワークとの間で情報処理を行なう情報処理方法であって、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
を有することを特徴とする情報処理方法。
【請求項７】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を用いて情報処理を行なう情報処理方法であって、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識工程と、
前記アドレス認識工程で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認するアドレス確認工程と、
前記アドレス確認工程によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記アドレス確認工程によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
前記第１アドレス及び前記第２アドレスを用いて、前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換工程と、
を含むことを特徴とする情報処理方法。
【請求項８】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を制御する情報処理プログラムであって、
前記情報処理装置に、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
を実行させることを特徴とする情報処理プログラム。
【請求項９】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を制御する情報処理プログラムであって、
前記情報処理装置に、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識工程と、
前記アドレス認識工程で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認するアドレス確認工程と、
前記アドレス確認工程によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記アドレス確認工程によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
前記第１アドレス及び前記第２アドレスを用いて、前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換工程と、
を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ローカルネットワーク間に接続された情報処理装置、その装置を用いた情報処理方法及び情報処理プログラムに関するものである。
【背景技術】
【０００２】
従来から、ローカルネットワークに所属するノードのアドレス管理技術が知られている。例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ／Ｐｒｏｔｏｃｏｌ）ネットワーク環境において、異なるネットワークアドレス間を接続する技術として、ルータ（デフォルトゲートウェイ）による接続技術がある。ルータは、自装置内にルーティングテーブルと呼ばれるテーブルを持ち、受信したＩＰパケットの送信方向を決定し、パケットを適切なネットワークへと転送する。たとえば、ＩＰネットワークＡに所属するノードＡがＩＰネットワークＢに所属するノードＢとＩＰ通信を行う場合には、ＩＰネットワークＡのネットワークアドレスとＩＰネットワークＢのネットワークアドレスとが異なるため直接的に通信を行うことはできない。その場合には、ノードＡが送出するパケットの送信先ＩＰアドレスをノードＢのアドレスとして、送信先ＭＡＣアドレスにルータのＭＡＣアドレスを指定することにより、ルータが当該パケットを受信し、自装置のルーティングテーブルを参照することにより、ルータはパケットをネットワークＢへ転送する。ネットワークＢに転送されたパケットはノードＢの元に届き、データの送信が完了する。
【０００３】
また、ＤＨＣＰサーバとしての機能を持っていて、ＩＰアドレスを付与することができるルータも存在する（例えば、特許文献１）
【特許文献１】特開２００２−２１７９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
今日のインターネット環境においては、オフィスや家庭ではそれぞれＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）が構築されている。この場合、それぞれのＬＡＮに接続されるノードのＩＰアドレスは、プライベートアドレスと呼ばれるアドレス範囲が使用される。プライベートアドレスはその環境において自由に使用することが許されたＩＰアドレスの集合であり、インターネット上で使用されるグローバルアドレスとは異なる値が定義されている。ＬＡＮとインターネットとはルータによって接続されるが、ＬＡＮ上のノードがインターネット上のＷｅｂサーバ等に接続する場合に、プライベートアドレスがインターネット上に流出してしまうという問題が発生する。ＬＡＮとインターネットとを接続するルータは、セキュリティの観点から、ＬＡＮ上のノードがインターネットへ接続することは許可しているが、インターネットからＬＡＮへのルーティングは通常は許可していないことが多い。そのため、プライベートアドレスがインターネット上に流出した場合には、通信自体が行えない現象が発生する。
【０００５】
その問題を回避するためにＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）技術又はＮＡＰＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｐｏｒｔ  Ｔｒａｎｓｌａｔｉｏｎ）を利用したネットワークルーティング技術が存在している。ＮＡＴは、ＬＡＮ上のノードがインターネット上のノードに通信を行う場合に、ＬＡＮとインターネットとを接続するルータがパケットの送信元ＩＰアドレスを自装置のグローバルアドレスに書き換える技術である。この処理により、ＬＡＮ上のノードが送出したパケットに含まれるプライベートアドレスがインターネット上の送出されることを防ぐことが可能になり、且つインターネット上の通信先ノードも、パケットの送信元ＩＰアドレスはルータのインターネットＩＰアドレスであるために、応答することが可能になる。ルータは応答パケットを受信したら、ＬＡＮ上のノードにパケットを転送する。
【０００６】
しかしながら今日のネットワーク機器においては、機器内のモジュール間がネットワークによって接続されており、ＩＰ通信が行われている場合がある。さらには機器内のモジュールに限らず、複数の機器が集合することによって複合的な機能を実現するシステムにおいては、その機器間がＩＰ通信を行っている場合がある。このような場合においては、機器間で使用するネットワークアドレスとオフィスのＬＡＮ内で使用するネットワークアドレスが同一または一部が重複する形になり、互いの通信に支障をきたす場合が存在した。
【０００７】
例えば、ネットワーク上に接続された複合機やプリンタなどの機器の機能を拡張する外部制御装置が存在する。この場合、外部制御装置と複合機やプリンタとの間はＥｔｈｅｒｎｅｔで接続されており、ローカルネットワークを構築する。そして、そのローカルネットワーク内で複合機又はプリンタと外部制御装置は所定のプライベートＩＰアドレスを所有してＩＰ通信を行っている。互いの機器が使用するＩＰアドレス及びサブネットマスクは、現状の技術では、固定されており変更することはできない。そして外部制御装置はＮＡＴ処理を行う機能を有しており、複合機又はプリンタがオフィス内ＬＡＮ上のノードと通信を行う場合には、複合機又はプリンタが送出したＩＰパケットに対して外部制御装置がＮＡＴ処理を行い、ＩＰアドレスの書き換えを行った後に、オフィス内ＬＡＮ上のノードに転送するといった処理を行っていた。
【０００８】
この場合、外部制御装置と複合機とが接続するローカルネットワークで使用しているプライベートＩＰアドレスが含まれるネットワークアドレスと、オフィス内ＬＡＮで使用しているプライベートＩＰアドレスが含まれるネットワークアドレスとが同一または一部重複した場合には、ＮＡＴ処理を行う外部制御装置のルーティングテーブルに矛盾が生じ、転送処理を行うことができなくなってしまうという欠点があった。たとえば、ローカルネットワークで使用されるＩＰアドレス及びサブネットマスクが以下のような場合であったとする。
外部制御装置のＩＰアドレス：１９２．１６８．０．１
複合機のＩＰアドレス：１９２．１６８．０．２
サブネットマスク：２５５．２５５．２５５．０
この場合、ローカルネットワークのネットワークアドレスは１９２．１６８．０．０である。また、オフィス内ＬＡＮで使用しているネットワークアドレスが１９２．１６８．０．０という値を取るものとする。
【０００９】
このような場合には、外部制御装置では、ローカルネットワーク側とオフィス内ＬＡＮ側のネットワークアドレスが同一であると登録されてしまう。そのため、例えば外部制御装置が１９２．１６８．０．４宛てにデータを送信したい場合、ローカルネットワーク側及びオフィス内ＬＡＮ側のいずれにそのデータを送信すべきかを判断することができず、パケットルーティングを行う際に転送経路の決定ができなかった。ローカルネットワーク及びオフィス内ＬＡＮでは、前述のようにプライベートＩＰアドレスを用いているため、そのＩＰアドレス範囲は制限されたものとなり重複する可能性があった。オフィス内ＬＡＮで使用するＩＰアドレスはＬＡＮ管理者によって管理されており、ＩＰアドレスの変更は容易な作業ではない。またローカルＩＰアドレスに関しては、前述の通り固定でＩＰアドレスを持っているため変更することができなかった。
【００１０】
また一部の技術では、ローカルネットワークで使用するＩＰアドレス及び関連情報を、ＤＨＣＰといったＡｕｔｏＩＰプロトコルを使用することにより自動で配信している。代表的な例として、家庭内ＬＡＮ等で使用されるブロードバンドルータが存在する。ブロードバンドルータは家庭内ＬＡＮに接続されているノードをインターネットにルーティングする機器である。ルーティングにはＮＡＴを使用するのが一般的である。このようなブロードバンドルータにおいては、家庭内ＬＡＮのノードに対してＤＨＣＰプロトコルを用いてＩＰアドレス及び関連情報を配布することが可能であった。しかしながら、家庭内ＬＡＮで使用するＩＰネットワークとインターネットで使用されるＩＰネットワークとが重複することはありえないため、重複への対策技術は存在しなかった。家庭内ＬＡＮではプライベートＩＰアドレスが使用され、インターネットではプライベートＩＰアドレス外のＩＰアドレスが使用されるからである。そのため、ＤＨＣＰで配布するＩＰアドレスは、ブロードバンドルータの使用者が手動でアドレス値を入力するか、またはブロードバンドルータがプライベートＩＰアドレスから自動的に割り当てる方法が採用されている。つまり、ブロードバンドルータで用いられている技術を外部制御装置に導入したとしても、問題を完全に解決することができなかった。
【００１１】
本発明は、上記従来技術の課題を解決するためになされたもので、その目的とするところは、２つ以上のローカルネットワーク間の通信を適切に行なうことを可能とする技術を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明に係る装置は、
第１ネットワークと第２ネットワークとに接続する情報処理装置であって、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成手段と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定手段と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定手段と、
を有することを特徴とする。
【００１３】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置であって、
前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換手段と、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識手段と、
前記アドレス認識手段で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成手段と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認する確認手段と、
前記確認手段によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定手段と、
前記確認手段によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定手段と、
を有することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係る方法は、
第１ネットワークと第２ネットワークとの間で情報処理を行なう情報処理方法であって、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
を有することを特徴とする。
【００１５】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を用いて情報処理を行なう情報処理方法であって、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識工程と、
前記アドレス認識工程で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認するアドレス確認工程と、
前記アドレス確認工程によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記アドレス確認工程によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
前記第１アドレス及び前記第２アドレスを用いて、前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換工程と、
を含むことを特徴とする。
【００１６】
上記目的を達成するため、本発明に係るプログラムは、
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を制御する情報処理プログラムであって、
前記情報処理装置に、
前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
を実行させることを特徴とする。
【００１７】
第１ネットワークと第２ネットワークとの間に接続される情報処理装置を制御する情報処理プログラムであって、
前記情報処理装置に、
前記第２ネットワーク用の自装置のアドレス及びサブネットマスクを認識するアドレス認識工程と、
前記アドレス認識工程で認識した情報に基づいて、前記第２ネットワーク側で使用されていない前記第１ネットワーク用の第１アドレス及び第２アドレスを生成するアドレス生成工程と、
前記第２ネットワーク内及び、前記第２ネットワークにルータを介して接続されているネットワーク内で、前記第１アドレス及び第２アドレスが使用されているか否かを確認するアドレス確認工程と、
前記アドレス確認工程によって前記第１アドレスが使用されていないと判断された場合に、前記第１アドレスを前記第１ネットワーク用の自装置のアドレスとして設定する第１のアドレス設定工程と、
前記アドレス確認工程によって前記第２アドレスが使用されていないと判断された場合に、前記第２アドレスを前記第１ネットワーク上のノードに割り当てる第２のアドレス設定工程と、
前記第１アドレス及び前記第２アドレスを用いて、前記第１ネットワーク上のノードが前記第２ネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換工程と、
を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、２つ以上のネットワーク間の通信を適切に行なうことが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２０】
（第１実施形態）
以下、図面を参照して本発明の第１実施形態としての外部コントローラについて説明する。まず、外部コントローラが適用可能なネットワークシステムについて図１を用いて説明する。ユーザ環境のネットワーク１０４にはＰＣ１０３とＰＣ１０６が接続され、更に外部コントローラ１０２とＤＨＣＰサーバ１０８とが接続されている。ルータ１０７はネットワーク１０４及びネットワーク１１０に接続されており、ネットワークルーティングを行っている。ネットワーク１１０にはＰＣ１０９が接続されている。また、外部コントローラ１０２はネットワーク１０４とは別のローカルネットワーク１０５にも接続されており、ローカルネットワーク１０５には画像処理装置１０１が接続されている。ここで、ネットワーク１０４及びローカルネットワーク１０５及びネットワーク１１０はイーサネット（Ｅｔｈｅｒｎｅｔ）であるものとする。外部コントローラ１０２は、第１ローカルネットワークとしてのローカルネットワーク１０５と第２ローカルネットワークとしてのローカルネットワーク１０４とに接続された情報処理装置である。
【００２１】
画像処理装置１０１は複合機であるものとし、スキャナ機能、コピー機能、プリンタ機能とが動作する機器である。画像処理装置１０１はまた、複合機としての機能を実行する上で、様々なネットワーク通信を行う。例えば、画像処理装置１０１のスキャナによって読み取った画像をネットワーク上のサーバに格納する機能を有している。ＤＨＣＰサーバ１０８はＰＣが基本となるハードウェアにＤＨＣＰサーバ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌサーバ）を動作させるためのソフトウェアを導入したものであり、ＤＨＣＰプロトコルを用いてホストへのネットワークコンフィギュレーションを行うものである。
【００２２】
次に、図２を用いて外部コントローラ１０の内部構成について説明する。図２に示すように、外部コントローラ１０２は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、マウスコントローラ２０５、マウス２０６、キーボードコントローラ２０７、キーボード２０８、ＣＲＴコントローラ２０９、ＣＲＴ２１０、ディスクコントローラ２１１、ハードディスクドライブ２１２、フロッピー（登録商標）ディスクドライブ２１３、ネットワークインタフェースカード２１４、２１５を備えている。
【００２３】
ここで、ＣＰＵ２０１は、外部コントローラ１０２全体の動作制御を司る。ＲＯＭ２０２は、ＣＰＵ２０１での動作制御のための各種プログラムやデータなどを格納する。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリや作業エリアなどを含む。また、マウスコントローラ２０５は、マウス２０６からの指示入力を制御する。キーボードコントローラ２０７は、キーボード２０８やポインティングデバイス（図示せず）からの指示入力を制御する。ＣＲＴコントローラ２０９は、ＣＲＴディスプレイ２１０の表示を制御する。ハードディスクドライブ２１２及びフロッピー（登録商標）ディスクドライブ２１３は、各種プログラムやデータ（ブートプログラム、オペレーティングシステム、種々のアプリケーション、など）を記憶しており、ディスクコントローラ２１１は、ハードディスクドライブ２１２及びフロッピーディスクドライブ２１３とのアクセスを制御する。
【００２４】
ネットワークインターフェイスカード２１４及び２１５は、ここでは、それぞれユーザ環境のローカルネットワーク１０５及びネットワーク１０４に接続されている。そして、ネットワークインターフェイスカード２１４は、ネットワーク１０４を介してＦＴＰサーバ１０３やＰＣと双方向にデータをやりとりする。一方、ネットワークインターフェイスカード２１５は、ローカルネットワーク１０５を介して画像処理装置１０１と双方向にデータをやりとりする。以上の各構成部は、システムバス２０４を介して互いに通信可能となっている。
【００２５】
次に、印刷ジョブを受信する側となる画像処理装置１０１の構成について図３を用いて説明する。画像処理装置１０１は、図３に示すように、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、エンジン３０４、エンジンコントローラ３０５、パネル３０６、パネルコントローラ３０７、ハードディスクドライブ３０８、ディスクコントローラ３０９、ＮＶＲＡＭ３１０、ネットワークインタフェースカード３１１、スキャナコントローラ３１３、スキャナ３１４を備えている。
【００２６】
このうち、ＣＰＵ３０１は、画像処理装置１０１全体の動作制御を司る。ＲＡＭ３０２は、ＣＰＵ３０１での動作制御のための各種プログラムやデータ等を格納する。ＲＡＭ３０３は、ＣＰＵ３０１の主メモリや作業用エリア等を含む。エンジン３０４は、デバイス機能（プリンタ機能やコピー機能等）を実現する。エンジンコントローラ３０５は、エンジン３０４の駆動を制御する。パネル３０６は、ユーザから各種操作指示を受け付けたり種々の情報を表示する。パネルコントローラ３０７は、パネル３０６での入出力をコントロールしたりパネル３０６を管理する。ハードディスクドライブ３０８は、各種プログラムやデータを記憶しており、ディスクコントローラ３０９が、ハードディスクドライブ３０８とのアクセスを制御する。ＮＶＲＡＭ３１０は、不揮発性ＲＡＭである。ネットワークインタフェイスカード３１１は、ローカルネットワーク１０５を介して外部コントローラ１０２やＦＴＰサーバ１０３と双方向にデータをやりとりする。そして、スキャナコントローラ３１３はスキャナ３１４を制御する。これらの各構成部は、システムバス３１２を介して互いに通信可能なように接続されている。
【００２７】
次に、図４を用いて、外部コントローラ１０２のハードディスクドライブ２１２に格納されているソフトウェアのうち代表的なものについて説明する。ハードディスクドライブ２１２は、図４に示すように、各機能を司る複数のソフトウェアを随時読み出し可能に保存している。図４において、ＯＳ部４０１は、オペレーティングシステムであり、ルーティングソフトウェア４０２は、ネットワークインターフェイスカード２１４及び２１５で送受信するデータを互いのネットワークインターフェイスカードにルーティングするためのソフトウェアである。
【００２８】
ローカルアドレス生成モジュール４０５は、画像処理装置１０１及び外部コントローラ１０２のネットワークインターフェイスカード２１５に割り当てるための、ＩＰアドレスの生成を行うソフトウェアである。つまり、このモジュールを実行するＣＰＵは、ＩＰアドレスを生成するＩＰアドレス生成手段として機能する。また、ローカルアドレス生成モジュール４０５は、外部コントローラ１０２のネットワークインターフェイスカード２１４に対応付けられているＩＰアドレスとサブネットマスク情報とを、ＯＳ部４０１に問い合わせるＩＰアドレス認識手段としても機能する。更に、このローカルアドレス生成モジュール４０５は、この外部コントローラ１０２に、直接、または間接的に接続されたネットワーク内で使用されているＩＰアドレスを確認する確認手段としても機能する。
【００２９】
ＮＡＴ部４０６は、ルーティングソフトウェア４０２のサブセットモジュールであり、ローカルネットワーク１０５とネットワーク１０４とをＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）で接続するためのソフトウェアである。タイマ４０７は、これらのソフトウェアを時間によって管理するために設けられている。つまり、ＮＡＴ部４０６は、ローカルネットワーク上のノードが他のローカルネットワーク上のノードと通信する際にネットワークパケットのアドレスを変換するアドレス変換手段として機能する。
【００３０】
外部コントローラアプリケーション４０３は、画像処理装置１０１の機能を補足するための各種の機能を有するソフトウェアである。外部コントローラアプリケーション４０３の一機能としては例えば暗号化通信機能がそれにあたる。本実施の形態においては画像処理装置１０１は暗号化通信機能を有していない。この場合、外部コントローラプリケーション４０３は印刷クライアントから暗号化された印刷データを受信し、暗号を解凍した上で、解凍されたデータを画像処理装置１０１に送信する。こうすることによって、パブリックなネットワークであるネットワーク１０４上を流れるデータのセキュリティを保つことが可能である。
【００３１】
ＡｕｔｏＩＰサーバ４０４は、ＤＨＣＰプロトコルを用いて画像処理装置１０１にＩＰアドレスの供給を行うモジュールであり、ＩＰアドレスを動的にローカルネットワーク上のノードに割り当てるＩＰアドレス自動設定手段として機能する。そのためＡｕｔｏＩＰサーバ４０４は、ネットワークインターフェイスカード２１５に対してポートをリッスンしている。
【００３２】
次に、図５を用いて、画像処理装置１０１のハードディスクドライブ３０８に格納されているソフトウェアのうち代表的なものについて説明する。ハードディスクドライブ３０８は、図５に示すように、各機能を司る複数のソフトウェアを随時読み出し可能に保存している。図５において、ＯＳ部５０１は、オペレーティングシステムであり、複合機制御ソフトウェア５０２は、複合機全体の動作を制御するためのソフトウェアである。複合機制御ソフトウェア５０２にはＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）プロトコル通信を行うためのモジュールが組み込まれている。ＤＨＣＰクライアントソフトウェア５０３は、ＤＨＣＰリクエストを送出し、外部からＩＰアドレス及びサブネットマスク及びデフォルトゲートウェイの情報を取得する。
【００３３】
ＭＩＢ５０４（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｍａｔｉｏｎ  Ｂａｓｅ）は、機器情報データベースである。
【００３４】
次に、外部コントローラ１０２のパケットルーティングを実現するための構成に関してより詳細に説明していく。外部コントローラ１０２にはルーティング機能としてＮＡＴが実装されている。ＮＡＴとは、ローカルネットワーク内のＩＰアドレスとパブリックネットワークとを１対１で対応付けて、ローカルネットワークのＩＰアドレスを持つネットワークノードがパブリックネットワーク内のノードと通信を行う際には、パブリックネットワーク側のＩＰアドレスに書き換えられるものである。
【００３５】
ＮＡＴについて、図６を用いて具体的に説明する。図６は画像処理装置１０１がＰＣ６０１とＩＰプロトコルを用いて通信する場合の、パケット中のＩＰアドレスの変化について示したものである。ここで、画像処理装置１０１のＩＰアドレスは１０．２５５．２５５．２であり、外部コントローラのローカルアドレス１０５側のＩＰアドレスは１０．２５５．２５５．１であるものとする。また外部コントローラ１０１のネットワーク１０４側のＩＰアドレスは１７２．２４．０．２であり、ＰＣ６０１のＩＰアドレスは１７２．２４．０．１であるものとする。ここで、ローカルネットワーク１０５とネットワーク１０４とはネットワークアドレスが異なるため、画像処理装置１０１がＰＣ６０１とＩＰ通信を行うためには外部コントローラ１０２がルータの役割を行う必要がある。
【００３６】
つまり、画像処理装置１０１に設定されているデフォルトゲートウェイアドレスは外部コントローラのＩＰアドレスである１０．２５５．２５５．２である。その状態にて、画像処理装置１０１がＰＣ６０１に対してＴＣＰ／ＩＰで通信を行うことを考える。画像処理装置１０１がＰＣ６０１に対して送信したパケット６０２に含まれるＩＰプロトコル部の送信元ＩＰアドレスは１０．２５５．２５５．２であり、送信先ＩＰアドレスは１７２．２４．０．１である。パケット６０２はルータの役割を司る外部コントローラ１０２に到達する。
【００３７】
ネットワークインターフェイスカード２１５が受信したパケット６０２は、ルーティングソフトウェア４０２のサブセットモジュールであるＮＡＴ部４０６によってＩＰアドレスが書き換えられる。ＮＡＴ部４０６はパケット６０２の送信元ＩＰアドレスを画像処理装置１０１のＩＰアドレスから、外部コントローラ１０２のパブリックネットワーク側のＩＰアドレスに書き換えて、送信先ＩＰアドレスに対して送信を行う。外部コントローラ１０２によってネットワーク１０４側に送信されたパケット６０３の送信元ＩＰアドレスは、外部コントローラのパブリックネットワーク側のＩＰアドレスである１７２．２４．０．２であり、送信先ＩＰアドレスはＰＣ６０１のＩＰアドレスである１７２．２４．０．１である。つまり、画像処理装置１０１がパブリックネットワーク１０４内に送出したパケットは、外部コントローラ１０２を介すことによって、送信元ＩＰアドレスが書き換えられ、外部コントローラ１０２が送出したかのようなパケットに書き換えられている。
【００３８】
ＰＣ６０１はパケット６０３を受信して、そのパケットに対してリプライを行う。ＰＣ６０１が送出したリプライのパケット６０４は、画像処理装置１０１に対してのものであるが、ＰＣ６０１が受信したパケット６０３の送信元ＩＰアドレスは外部コントローラ１０２のアドレスであるため、ＰＣ６０１は外部コントローラ１０２に対してパケットを送出する。そのため、パケット６０４の送信先ＩＰアドレスは外部コントローラのパブリックネットワーク側のＩＰアドレスである１７２．２４．０．２であり、送信元ＩＰアドレスはＰＣ６０１のＩＰアドレスである１７２．２４．０．１である。外部コントローラ１０２がパケット６０４を受信すると、ＮＡＴ部４０６は送信先ＩＰアドレスを画像処理装置１０１のアドレスに書き換えてローカルネットワーク１０５側に送出する。
【００３９】
送出されたパケット６０５の送信先ＩＰアドレスは、画像処理装置１０１のアドレスである１０．２５５．２５５．２であり、送信元ＩＰアドレスはＰＣ６０１のアドレスである１７２．２４．０．１である。これにより、パケット６０５は画像処理装置１０１によって受信される。
【００４０】
このように、ルータの役割を果たす外部コントローラ１０２がＩＰアドレスを付け替えることによって画像処理装置１０１のローカルＩＰアドレスを外部に出すことなくネットワーク１０４上のノードと通信することを可能にする技術がＮＡＴである。この場合、画像処理装置１０１がネットワーク１０４上のノードとＴＣＰやＵＤＰにて通信する場合の宛て先ポートの値によってＮＡＴの実行の可否が決定されることはない。画像処理装置１０１の通信先となるノードの待ちうけポートが何番であっても、ＮＡＴ４０６はＮＡＴ処理を行い、通信を許可する。対して、ネットワーク１０４上のノードが外部コントローラ１０２または画像処理装置１０１と通信を行う場合には、セキュリティの観点から制限がかけられている。
【００４１】
図７は外部コントローラ１０２がネットワーク１０４上のノードからＴＣＰ／ＩＰまたはＵＤＰ／ＩＰによる通信を受信した場合の動作を説明するための図である。外部コントローラ１０２上では、ＴＣＰ／ＩＰによってネットワーク１０４上のノードと通信を行う機能を持つアプリケーション７０１が動作している。アプリケーション７０１はネットワークインターフェイス２１４側のＴＣＰポート１００００番をオープンして常にリッスンしている。また、ルーティングソフトウェア４０２は、ネットワークインターフェイス２１４側のＴＣＰポート１０１００番を画像処理装置１０１に転送する設定がされている。
【００４２】
ルーティングソフトウェア４０２はネットワークインターフェイス２１４側のＴＣＰポート１０１００番で受信したＩＰパケットの送信先ＩＰアドレスを画像処理装置１０１のアドレスである１０．２５５．２５５．２に付け替えて、ローカルネットワーク１０５に送信する。つまり、ルーティングソフトウェア４０２はネットワークインターフェイス２１４で自装置宛てに受信したＩＰパケットの送信先ポートが１００００であればアプリケーション７０１に渡し、送信先ポートが１０１００であれば画像処理装置１０１に転送する。それ以外のポート番号であった場合には、パケットは破棄される。つまりネットワーク１０４上のノードが画像処理装置１０１とＩＰ通信を行う場合には、使用する宛て先ポート番号を予めルーティングソフトウェア４０２に登録しておく必要がある。
【００４３】
次に図８を用いて本実施の形態の動作の流れについて説明していく。ステップＳ８０１では、ユーザが外部コントローラ１０２の電源を投入する行為を示している。本実施の形態においては、外部コントローラ１０２と画像処理装置１０１とは、互いの機能連携を保つためにそれらの電源はユーザによって連動させなければならない仕組みになっている。それぞれ単体では全ての機能を有効に活用することができないため、ユーザは外部コントローラ１０２や画像処理装置１０１を単体または複合的に使用する場合には、どちらの電源も投入しなければならない。そのため、ステップＳ８０２において、ユーザは画像処理装置１０１の電源を投入する。
【００４４】
次にステップＳ８０３において、外部コントローラ１０２のＯＳが起動する。ここでは、ハードディスクドライブ２１２に格納されているＯＳ部４０１がＲＡＭ２０３にロードされる。ＯＳの基本的な動作が立ち上がったら、次にステップＳ８０４において、外部コントローラ１０２のローカルネットワーク１０５側のＩＰアドレス（これを第１ＩＰアドレスと呼ぶ）として、ローカルアドレスＡを仮決定する。ローカルアドレス生成モジュール４０５は、外部コントローラ１０２のネットワークインターフェイスカード２１４に対応付けられているＩＰアドレスとサブネットマスク情報とを、ＯＳ部４０１に問い合わせる。本実施の形態においては、ネットワークインターフェイスカード２１４に対応付けられているＩＰアドレスとサブネットマスクには、静的なアドレス値が設定されており、そのアドレスＸは１７２．２４．０.１／２４であるものとする。
【００４５】
ローカルアドレス生成モジュール４０５は、アドレスＸのネットワーク空間とは異なる空間に所属し、且つプライベートＩＰアドレスであるＩＰアドレスを生成する。ネットワークインターフェイスカード２１４に対応付けられているサブネットマスクは２５５．２５５．２５５．０であるため、ネットワークインターフェイスカード２１４に対応付けられているＩＰアドレスが所属するネットワーク空間は、１７２．２４．０．２５５である。ここでは、ローカルアドレス生成モジュール４０５は、１７２．２４．０．２５５とは別のネットワークに所属していて、且つ、奇数で終わる値の中からＩＰアドレスを生成する。ローカルアドレス生成モジュール４０５はＩＰアドレス１９２．１６８．９９．１（ローカルアドレスＡ）を生成したものとする。
【００４６】
次に、ステップＳ８０５において、ローカルアドレスＡがネットワーク１１０上のノードですでに使用されているか否かのチェックを行う。ここでチェックを行なう理由はネットワーク１１０上のノードがローカルアドレスＡを使用している場合、外部コントローラ装置１０２のルーティングテーブルに矛盾が生じて、外部コントローラ装置の通信に支障が発生する可能性があるからである。
【００４７】
ネットワーク１１０は外部コントローラ装置１０２が直接的に接続するネットワークとは異なり、ルータ１０７を介して接続しているが、そのような場合においてもネットワーク１１０上のノードがローカルアドレスＡを使用している場合、該当ノードが外部コントローラ装置１０２とＩＰプロトコルによる通信を行うと外部コントローラ装置１０２のルーティングテーブルには該当ノードのＩＰアドレスと使用するネットワークインターフェイス及びルータ１０７のアドレス情報が記録される。ローカルアドレスＡが外部コントローラ装置１０２のネットワークインターフェイスカード２１５又は画像処理装置１０１で使用されることを考える場合、そのＩＰアドレスと使用するネットワークインターフェイス情報もまたルーティングテーブルに記録される。つまり、互いのネットワークインターフェイスはそれぞれネットワークインターフェイスカード２１４及びネットワークインターフェイスカード２１５であるにも関わらず、送信先ＩＰアドレスが同一であるため、外部コントローラ装置１０２は送出するパケットを送出するネットワークインターフェイスがどちらであるか判断することができないという現象が発生する。
【００４８】
ローカルアドレス生成モジュール４０５は、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を送出することにより、ノードがアドレスＡを使用しているか否かのチェックを行う。本実施の形態においては、ＯＳ部４０１に設定されているデフォルトゲートウェイは、ルータ１０７のＩＰアドレスである。ローカルアドレス生成モジュール４０５は、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰを送出するが、その際のＡＲＰプロトコルにおける宛て先ステーションのＩＰアドレスは１９２．１６８．９９．１である。
【００４９】
またデータリンク層に含まれる宛て先ＭＡＣアドレスはルータ１０７のネットワーク１０４側のＭＡＣアドレスである。ＡＲＰプロトコルに含まれる送信先ＭＡＣアドレスは全て０である。ローカルアドレス生成モジュール４０５によって送出されたＡＲＰパケットは、ルータ１０７によって受信される。ルータ１０７は受信したＡＲＰパケットのデータリンク層に含まれるＭａｃアドレスが自装置のアドレスと一致することから、当該ＡＲＰパケットが自分に宛てられたものであることを認識する。
【００５０】
次にルータ１０７は、ＡＲＰプロトコルに含まれる宛て先ＩＰアドレスが自装置が持つアドレスとは異なる１９２．１６８．９９．１であることから、受信ＡＲＰパケットを転送する。ルータ１０７は、自装置のルーティングテーブルを参照することで、ＩＰアドレス１９２．１６８．９９．１が所属するネットワークをマッピングする。ここでは、ＩＰアドレス１９２．１６８．９９．１に対応するアドレス空間はネットワーク１１０で使用されていることとする。そのためルータ１０７は、ネットワーク１１０に対して、ＡＲＰを送出する。その際のデータリンク層に含まれる宛て先ＭＡＣアドレスはブロードキャストアドレスであり、ＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは１９２．１６８．９９．１であり、送信元ステーションのＩＰアドレスはルータ１０７のネットワーク１１０側のＩＰアドレスである。
【００５１】
ここで、ネットワーク１１０に、ＩＰアドレス１９２．１６８．９９．１を所有するノードが存在すれば、ノードからＡＲＰ応答が返信される。ノードはＡＲＰ応答を送信するが、その際のデータリンク層に含まれるＭＡＣアドレス情報はノード自身のＭＡＣアドレスである。また、ＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは、ルータ１０７のネットワーク１１０側のＩＰアドレスであり、送信元ステーションのＩＰアドレスはノードのＩＰアドレス、つまり１９２．１６８．９９．１である。ルータ１０７はＡＲＰ応答を受信して、外部コントローラ１０２にＡＲＰ応答を送信する。ルータ１０７が外部コントローラ１０２に対して送出するＡＲＰ応答の、データリンク層に含まれる送信元ＭＡＣアドレスは、ルータ１０７のネットワーク１０４側のＭＡＣアドレスである。また、ＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは、外部コントローラ１０２のネットワークインターフェイスカード２１４側のＩＰアドレスである１７２．２４．０.１であり、送信元ステーションのＩＰアドレスはネットワーク１１０上のノードのＩＰアドレスとなる。
【００５２】
本実施の形態においては、ネットワーク１１０上には１９２．１６８．９９．１を所有するノードは存在していないものとし、ＡＲＰ応答もなかったものとする。ステップＳ８０５で、もしＡＲＰ応答があれば、１９２．１６８．９９．１はネットワークインターフェイス２１５のＩＰアドレスとしては使用できないと判断できるため、再度仮アドレスの生成処理を行うためステップＳ８０４を行う。ステップＳ８０４において、再度ＩＰアドレスの生成を行う場合には、一度生成したＩＰアドレスは外部コントローラ１０２の電源が落とされるまでの間、使用されないような仕組みが入っているものとする。
【００５３】
このように、生成したＩＰアドレスが使用済みであれば何度でもＩＰアドレスの生成処理を行なうため、確実に、フリーのＩＰアドレスを設定でき、ネットワーク間の通信を確実なものとすることができる。
【００５４】
ステップＳ８０４において、外部コントローラ１０２のローカルネットワーク１０５側のローカルアドレスＡの仮決定処理が行われ、ステップＳ８０５で、そのローカルアドレスＡが未使用と判断されたら、次にステップＳ８０６において、画像処理装置１０１に配布するＩＰアドレス（これを第２ＩＰアドレスと呼ぶ）としてＩＰアドレスＢの仮決定処理を行う。ここでは、ＩＰアドレスＢはローカルアドレスＡ＋１の値が使用されるものとする。ローカルアドレスＡは奇数であり、且つＩＰアドレスＢはローカルアドレスＡ＋１の値にすることにより、ローカルアドレスＡとＩＰアドレスＢとは実質的な最少ネットマスクである２５５．２５５．２５５．２５２で通信することが可能になる。
【００５５】
ここでは、ローカルアドレスＡは１９２．１６８．９９．１であるため、ＩＰアドレスＢは１９２．１６８．９９．２になる。このような手法によって画像処理装置１０１に配布するＩＰアドレスＢの仮決定が行われたら、次に、ステップＳ８０７において、ＩＰアドレスＢがネットワーク１１０上のノードで使用済みか否かの判定を行う。具体的には、ステップＳ８０５で説明した処理とほぼ同じ処理を行なう。すなわち、ローカルアドレス生成モジュール４０５が、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を送出することにより、ノードがアドレスＡを使用しているか否かのチェックを行う。
【００５６】
ただし、ローカルアドレス生成モジュール４０５が、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰを送出する際のＡＲＰプロトコルにおける宛て先ステーションのＩＰアドレスは、ＩＰアドレスＢの値である１９２．１６８．９９．２である。
【００５７】
本実施の形態においては、ネットワーク１１０上のノードからの返信はなかったものとする。それにより、ＩＰアドレスＢはネットワーク１１０上のノードによって使用されていないと判断できるため、ローカルアドレスＡ及びＩＰアドレスＢはそれぞれネットワークインターフェイスカード２１５及び画像処理装置１０１のＩＰアドレスとして使用可能であるものとしてアドレス値が決定される。ここで、ＡＲＰ応答があれば、１９２．１６８．９９．２は画像処理装置１０１のＩＰアドレスとしては使用できないと判断できる。そして、ステップＳ８０４に戻り、ローカルアドレス生成モジュール４０５は、再度、ネットワークインターフェイスカード２１５及び画像処理装置１０１の仮アドレスの生成処理を行う。
【００５８】
ステップＳ８０４からステップＳ８０７の一連の処理によってネットワークインターフェイスカード２１５及び画像処理装置１０１のＩＰアドレスが決定したら、次にステップＳ８０８において、外部コントローラ１０２のネットワークインターフェイス２１５のＩＰアドレスの設定を行う。外部コントローラ１０２のネットワークインターフェイス２１５のＩＰアドレスは、ステップＳ８０６及びステップＳ８０７にて決定されたＩＰアドレスＢ（１９２．２６８．９９．２）である。ローカルアドレス生成モジュールは、ＩＰアドレスＢをＯＳ部４０１に通知する。ＯＳ部４０１は通知されたＩＰアドレスＢの値を、ネットワークインターフェイス２１５のＩＰアドレスとして設定する。この処理により、ネットワークインターフェイス２１５に関連付けられるＩＰアドレスはＩＰアドレスＢ（１９２．１６８．９９．２）となる。
【００５９】
外部コントローラ１０２のネットワークインターフェイス２１４に関連付けられるＩＰアドレスは１７２．２４．０.１であり、ネットワークインターフェイス２１５に関連付けられるＩＰアドレスは１９２．２６８．９９．２であることになり、ＮＡＴ部４０６がＮＡＴ処理を行う際に参照するＯＳ部４０１のルーティングテーブルにも矛盾は発生しない。これにより、ＮＡＴ部４０６はＮＡＴ処理を行うことが可能になる。
【００６０】
次にステップＳ８０９において、ＤＨＣＰサーバを起動する。つまり、ＡｕｔｏＩＰサーバ４０４のＩＰアドレス配信機能の起動が行われる。この時点では、ＡｕｔｏＩＰサーバ４０４自体は外部コントローラ１０２内で起動されているが、ＡｕｔｏＩＰサーバ４０４におけるＩＰアドレスの配布機能は無効となっている。ＩＰアドレス配布はローカルアドレス生成モジュール４０５からＩＰアドレスを受け取った時点で有効になる。
【００６１】
そこで、ステップＳ８０９では、ローカルアドレス生成モジュール４０５が、外部コントローラ１０１のＩＰアドレスとして生成した値１９２.１６８．９９．１を、ローカルループバックアドレスを用いたアプリケーション間通信を使用することによって、ＡｕｔｏＩＰサーバ４０４に通知する。通知を受けたＡｕｔｏＩＰサーバ４０４は、ＩＰアドレスの配布処理を開始する。ＩＰアドレスの配布は、ＤＨＣＰプロトコルによって実現される。ＡｕｔｏＩＰサーバ４０４はＤＨＣＰサーバとしての機能を有しており、ネットワークインターフェイスカード２１５上のノードに対してＩＰアドレスを配信する。ここで、ＡｕｔｏＩＰサーバ４０４がＤＨＣＰサーバとして動作するのは、ネットワークインターフェイスカード２１５に対してのみであり、ネットワークインターフェイスカード２１４に対しては、ポートのリッスンは行わない。
【００６２】
外部コントローラ１０２がＩＰアドレスの配信が可能な状態になると、次にステップＳ８１０において、画像処理装置１０１内で動作するＤＨＣＰクライアントソフトウェア５０３がＤＨＣＰリクエストを送出する。そして、ステップＳ８１１において、外部コントローラ１０２は、受信したＤＨＣＰリクエストに対して、ＩＰアドレス及びサブネットマスク及びデフォルトゲートウェイの情報を返信する。
【００６３】
画像処理装置１０１は、電源が投入されて起動した直後には、ネットワークインターフェイスカード３１１に対応付けられる有効なＩＰアドレスは所有していない。そこで、ＤＨＣＰクライアントソフトウェア５０３が外部コントローラ１０２からＤＨＣＰプロトコルによってＩＰアドレスを取得する。ここで外部コントローラ１０２のＡｕｔｏＩＰサーバ４０４が供給するＩＰアドレスは、１９２.１６８．９９．１であり、サブネットマスクは２５５．２５５．２５５．２５２であり、デフォルトゲートウェイは１９２.１６８．９９．２である。サブネットマスクは外部コントローラ１０２と画像処理装置１０１とがローカルネットワーク１０５内で同一ネットワークとして設定可能な最少マスク値である。デフォルトゲートウェイは、外部コントローラ１０２のネットワークインターフェイスカード２１５のＩＰアドレスであり、画像処理装置１０１がＮＡＴを使用してノードと通信するために必要な情報である。
【００６４】
ところで、外部コントローラ１０２と画像処理装置１０１とは、起動順序の連携は行っていない。そのため、ステップＳ８０９において、ＡｕｔｏＩＰサーバ４０４がＤＨＣＰ通信可能な状態となる前に、画像処理装置１０１が起動して、ステップＳ８１０においてＤＨＣＰクライアントソフトウェア５０３がＤＨＣＰプトロコルによるリクエストを送出してしまう場合がある。そこで、ステップＳ８１０で、ＤＨＣＰプトロコルによるリクエストを送出した後、ステップＳ８１２に進み、応答があったか否かの判定を行なう。そして、ＡｕｔｏＩＰサーバ４０４からの応答がない場合にはステップＳ８１０に戻り、一定間隔でＤＨＣＰリクエストを送出する。一方、ＤＨＣＰクライアントソフトウェア５０３は、ステップＳ８１２において、送出したＤＨＣＰリクエストの応答を得ることができればＤＨＣＰによるアドレス取得処理を終了する。
【００６５】
画像処理装置１０１は、外部コントローラ１０２からＩＰアドレス及びサブネットマスク及びデフォルトゲートウェイを取得したら、それらの値をネットワークインターフェイスカード３１１に対応するＩＰ情報として設定し、ネットワーク通信が有効な状態に移行する。
【００６６】
このような流れによって、外部コントローラ１０２及び画像処理装置１０１が起動したら、外部コントローラは自装置のネットワークが有効である状態の場合には、ネットワークインターフェイスカード２１５及び画像処理装置１０１のネットワークインターフェイスカード３１１に対応付けられているＩＰアドレスを使用するノードがネットワーク内に存在しないことをチェックする。その処理の流れについては、図９を用いて説明する。
【００６７】
図９では、その初期状態において画像処理装置１０１及び外部コントローラ１０２は起動しているものとする。外部コントローラ１０２のネットワークインターフェイスカード２１４には、ＩＰアドレスとして１７２．２４．０．１が設定されているものとする。またネットワークインターフェイスカード２１５には１９２．１６８．９９．１が設定されており、画像処理装置１０１のネットワークインターフェイスカード３１１には１９２．１６８．９９．２が設定されているものとする。ステップＳ９０１において、ローカルアドレス生成モジュール４０５は、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰを送出し、ステップＳ９０２において、ＡＲＰ応答があるか否かを判断することにより、ノードが１９２．１６８．９９．１を使用しているか否かのチェックを行う。
【００６８】
ＯＳ部４０１に設定されているデフォルトゲートウェイは、ルータ１０７のＩＰアドレスである。ローカルアドレス生成モジュール４０５は、ネットワークインターフェイスカード２１４側のネットワークに対してＡＲＰを送出するが、その際のＡＲＰプロトコルにおける宛て先ステーションのＩＰアドレスは１９２．１６８．９９．１である。またデータリンク層に含まれる宛て先ＭＡＣアドレスはルータ１０７のネットワーク１０４側のＭＡＣアドレスである。ＡＲＰプロトコルに含まれる送信先ＭＡＣアドレスは全て０である。
【００６９】
ステップＳ９０２でローカルアドレス生成モジュール４０５によって送出されたＡＲＰパケットが、ルータ１０７によって受信されると、ルータ１０７は、受信したＡＲＰパケットのデータリンク層に含まれるＭａｃアドレスが自装置のアドレスと一致することから、当該ＡＲＰパケットが自分に宛てられたものであることを認識する。次にルータ１０７は、ＡＲＰプロトコルに含まれる宛て先ＩＰアドレスが自装置が持つアドレスとは異なる１９２．１６８．９９．１であることから、受信ＡＲＰパケットを転送する。更にルータ１０７は、自装置のルーティングテーブルを参照することで、ＩＰアドレス１９２．１６８．９９．１が所属するネットワークをマッピングする。
【００７０】
ここで、当該アドレス空間がネットワーク１１０で使用されていることとすると、ルータ１０７は、ネットワーク１１０に対して、ＡＲＰを送出する。その際のデータリンク層に含まれる宛て先ＭＡＣアドレスはブロードキャストアドレスであり、ＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは１９２．１６８．９９．１であり、送信元ステーションのＩＰアドレスはルータ１０７のネットワーク１１０側のＩＰアドレスである。ここで、ネットワーク１１０に、ＩＰアドレス１９２．１６８．９９．１を所有するノードが存在すれば、ノードからルータ１０７に対してＡＲＰ応答が返信される。
【００７１】
なお、ノードがＡＲＰ応答を送信する際のデータリンク層に含まれるＭＡＣアドレス情報はノード自身のＭＡＣアドレスである。またＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは、ルータ１０７のネットワーク１１０側のＩＰアドレスであり、送信元ステーションのＩＰアドレスはノードのＩＰアドレス、つまり１９２．１６８．９９．１である。ルータ１０７はＡＲＰ応答を受信して、外部コントローラ１０２にＡＲＰ応答を送信する。ルータ１０７が外部コントローラ１０２に対して送出するＡＲＰ応答の、データリンク層に含まれる送信元ＭＡＣアドレスはルータ１０７のネットワーク１０４側のＭＡＣアドレスである。また、ＡＲＰプロトコルに含まれる宛て先ステーションのＩＰアドレスは、外部コントローラ１０２のネットワークインターフェイスカード２１４側のＩＰアドレスである１７２．２４．０.１であり、送信元ステーションのＩＰアドレスはネットワーク１１０上のノードのＩＰアドレスとなる。
【００７２】
外部コントローラ１０２は、ルータ１０７からのＡＲＰ応答を受信すると、１９２．１６８．９９．１はネットワークインターフェイス２１５のＩＰアドレスとしては使用できないと判断できる。このため、ステップＳ９０２からステップＳ９０５に進み、ユーザに再起動を促す処理を行う。
【００７３】
一方、ルータ１０７からＡＲＰ応答がなければ、外部コントローラ１０２がネットワークインターフェイスカード２１４側でＩＰ通信が可能な範囲には、１９２．１６８．９９．１を使用しているノードはないものと判断できるため、ステップＳ９０３の処理に移行する。
【００７４】
ステップＳ９０３においては、画像処理装置１０１のＩＰアドレスである１９２．１６８．９９．２の使用状況を調査する。ローカルアドレス生成モジュール４０５はステップＳ９０１と同様の手法によって、１９２．１６８．９９．２が外部コントローラ１０２がネットワークインターフェイスカード２１４側でＩＰ通信が可能な範囲に存在しているか否かをテストする。ここで、ＡＲＰ応答があれば、１９２．１６８．９９．２はネットワークインターフェイス３１１のＩＰアドレスとしては使用できないと判断できる。ユーザに再起動を促す処理を行う。一方、ＡＲＰ応答がなければ、外部コントローラ１０２がネットワークインターフェイスカード２１４側でＩＰ通信が可能な範囲には、１９２．１６８．９９．２を使用しているノードはないものと判断できステップＳ９０８へと移行する。
【００７５】
ステップＳ９０８では、タイマ４０７を起動して、一定時間のウェイト処理を行う。一定時間が経過したらステップＳ９０１に戻り、再度ＩＰアドレスの使用状況のチェックを行う。
【００７６】
ステップＳ９０２又はステップＳ９０４において、ＡＲＰ応答があった場合には、外部コントローラ１０２内のＯＳ部４０１に保持されているルーティングテーブルが矛盾するため、それらのＩＰアドレスを所有するノードとの通信に不具合が発生する可能性がある。そのため、画像処理装置１０１のパネル３０６に、ユーザに外部コントローラ１０２及び画像処理装置１０１の再起動を促すメッセージを表示する。
【００７７】
このように、メッセージを表示することで、ユーザは、ローカルネットワーク間の通信に不具合が発生することを回避できる。
【００７８】
このため、ステップＳ９０５において、ローカルアドレス生成モジュール４０５はＳＮＭＰプロトコルのＳｅｔＲｅｑｕｅｓｔを使用して、メッセージを画像処理装置１０１に通知する。ここで使用されるＯＩＤはプライベートＭＩＢの範囲であり、パネルにメッセージを表示するためのＯｂｊｅｃｔが存在しているものとする。ローカルアドレス生成モジュール４０５はＳｅｔＲｅｑｕｅｓｔのＳＮＭＰフォーマット内に所定のＯＩＤをセットして、値として外部コントローラ１０２及び画像処理装置１０１の再起動を促す内容のメッセージを示すＩＤをセットし、画像処理装置１０１に送信する。
【００７９】
画像処理装置１０１はステップＳ９０６において、当該ＳＮＭＰパケットを受信し、ＳＮＭＰメッセージの内容は複合機制御ソフトウェア５０２によって解析され、受信したＯｂｊｅｃｔの値はＭＩＢ５０４に設定される。そして更に、ステップＳ９０７において、複合機制御ソフトウェア５０２は、ＭＩＢ５０４に設定された指示に従い、パネル３０６への図１０に示すようなメッセージの表示を行う。
【００８０】
図１０では、パネル３０６に表示されている複合機のメニュー画面の下部にメッセージが表示されている。メッセージ１００１は「デバイスと外部コントローラの電源を入れ直してください」とパネル下部に表示されることによって、ユーザに対して、画像処理装置１０１及び外部コントローラ１０２の電源の入れ直しを促している。この処理により、画像処理装置１０１及び外部コントローラ１０２のＯＳが再度起動することにより、ローカルネットワーク１０５で使用されるＩＰアドレスの再割り当てが行われる。
【００８１】
以上に示したように、本実施形態では、ローカルネットワークとパブリックネットワーク間にルーティングを行う外部コントローラが存在し、外部コントローラはＮＡＴによってＩＰパケット転送を行うような環境下において、ローカルネットワークで使用されるＩＰアドレス及びＩＰネットワークとパブリックネットワークで使用されるＩＰアドレス及びＩＰネットワークとが重複しないように、ＩＰアドレスを生成し、設定する。これにより、ローカルネットワークに接続している画像処理装置は、パブリックネットワーク上のノード又は外部コントローラとの間で、不具合なく通信を行なうことができる。また、逆に、パブリックネットワーク上のノードも、外部コントローラ又はローカルネットワークに接続された機器と不具合なく通信することができる。
【００８２】
また、外部コントローラは、毎回パブリックネットワークで使用しているＩＰネットワーク情報を探索して自動的にＩＰアドレス及び関連情報を生成し、割り当てるため、ユーザが手動でアドレスを入力する必要がなく、非常に簡便にネットワークの管理を行なうことができる。
【００８３】
（第２実施形態）
図面を参照して本発明の第２実施形態について説明する。第２実施形態が第１実施形態と異なる主なる点は、ネットワーク１０４側に接しているネットワークインターフェイス２１４に対応付けられるＩＰアドレスが動的に決定されるという点である。第２実施形態において、それぞれの機器の構成は第１実施形態で説明したものと同じである。また、画像処理装置１０１及び外部コントローラ１０２の動作の流れについても、第１実施形態にて図８に示された流れと一部同じ処理を行っている部分が存在する。そのため、本実施の形態においては、図８を基本的な流れとして、異なる手法が用いられている箇所を別図を用いて説明していく。まず、図８におけるステップＳ８０１からステップＳ８０３までの一連の処理に関しては第１実施形態で説明したものと同様である。
【００８４】
ステップＳ８０３の処理が終了した後で、第２実施形態においては、図１１で示されたステップＳ１１０１に移行する。ステップＳ１１０１では、外部コントローラ１０２はネットワークインターフェイス２１４に対応付けられるＩＰアドレスとして、動的に値を取得する手段を用いるところが第１実施形態と異なる部分である。ＯＳ部４０１は、ネットワーク１０４に対してＤＨＣＰプロトコルによるＩＰアドレス取得リクエストを送出して、ステップＳ１１０２に進む。ステップＳ１１０２では、ＩＰアドレスを取得したか否かを判断する。送出したリクエストに対して、ネットワーク１０４上のＤＨＣＰサーバ１０８が応答を返した場合、外部コントローラ１０２はＩＰアドレス情報の取得を正しく行うことができたことになり、ネットワークインターフェイスカード２１４にはＩＰアドレスが対応付けられる。
【００８５】
ＩＰアドレス情報を取得することができたら、ステップＳ１１０３に進み、取得したＩＰアドレスを元にローカルアドレスＡの値を生成するため、ネットワークインターフェイスカード２１４のＩＰアドレスを示す変数であるアドレスＸの値を生成する。ステップＳ１１０３では、ＤＨＣＰサーバ１０８からＩＰアドレス情報を取得することができた場合の処理が行われる。ＯＳ部４０１は取得したＩＰアドレスをネットワークインターフェイスカード２１４のＩＰアドレスとして設定するが、更にネットワークインターフェイスカード２１４のＩＰアドレスを表す内部変数であるアドレスＸに、取得したＩＰアドレス値を格納する。
【００８６】
その後、図８のステップＳ８０４の処理に移行する。そのためステップＳ８０４にて生成されるローカルアドレスＡは、アドレスＸのネットワークと同じにならないように計算される形になる。なお、第１実施形態におけるステップＳ８０４の説明においては、アドレスＸは静的なＩＰアドレスである１７２．２４．０．１／２４が使用されているが、第２実施形態において、ＤＨＣＰプロトコルによってＩＰアドレスの取得が行われ、その値がアドレスＸに格納されている場合には、その値が優先的に使用される。
【００８７】
一方、ＤＨＣＰサーバ１０８からの応答がなかった場合など、ＩＰアドレス情報の取得に失敗したら、ステップＳ１１０４の処理に移行する。ステップＳ１１０４では、ステップＳ１１０２にてＤＨＣＰプロトコルによるＩＰアドレスの取得に失敗した場合の処理が行われる。ＯＳ部４０１は過去にネットワークインターフェイスカード２１４に対応付けられるＩＰアドレスとして有効であったＩＰアドレスの中で、一番新しいＩＰアドレス値を読み出す。
【００８８】
ＯＳ部４０１は、ＯＳ部４０１の構成ファイルの一部として存在している、自装置がネットワークインターフェイス２１４のＩＰアドレスとして使用した最も新しいＩＰアドレスが記録されたファイルを読み込む。次にＯＳ部４０１及びローカルアドレス生成モジュール４０５はステップＳ１１０４にて読み出したＩＰアドレスをアドレスＸに格納する（ステップＳ１１０５）。そして更に、図８のステップＳ８０４の処理に移行する。つまり、ステップＳ８０４にて生成されるローカルアドレスＡは、アドレスＸのネットワークと同じにならないように計算される形になる。
【００８９】
（他の実施形態）
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００９０】
なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。従って、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。
【００９１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００９２】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【００９３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【００９４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【００９６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態に係るシステムの接続構成を例示したブロック図である。
【図２】外部コントローラの内部構造を示すブロック図である。
【図３】画像処理装置の内部構造を示すブロック図である。
【図４】外部コントローラのソフトウェア構成を示すブロック図である。
【図５】画像処理装置のソフトウェア構成を示すブロック図である。
【図６】ＮＡＴ処理におけるデータ内容を示した図である。
【図７】外部コントローラにおけるポート振り分けの構造を示した図である。
【図８】ローカルアドレス決定時において機器単位の処理フローを示した図である。
【図９】ローカルアドレス決定後において機器単位の処理フローを示した図である。
【図１０】ローカルアドレスが使用不可能になった場合の、画像処理装置のパネルＵＩ（ユーザインターフェイス）を例示した図である。
【図１１】外部コントローラがＤＨＣＰによってＩＰアドレスを取得する際のフローを示した図である。
【符号の説明】
【００９８】
１０１  画像処理装置
１０２  外部コントローラ
１０３  ＰＣ
１０４  ネットワーク
１０５  ローカルネットワーク
１０６  ＰＣ
１０７  ルータ
１０８  ＤＨＣＰサーバ
１０９  ＰＣ
１１０  ネットワーク
２０１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  システムバス
２０５  マウスコントローラ
２０６  マウス
２０７  キーボードコントローラ
２０８  キーボード
２０９  ＣＲＴコントローラ
２１０  ＣＲＴ
２１１  ディスクコントローラ
２１２  ハードディスクドライブ
２１３  フロッピーディスクドライブ
２１４  ネットワークインターフェイスカード
２１５  ネットワークインターフェイスカード
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  エンジン
３０５  エンジンコントローラ
３０６  パネル
３０７  パネルコントローラ
３０８  ハードディスクドライブ
３０９  ディスクコントローラ
３１０  ＮＶＲＡＭ
３１１  ネットワークインターフェイスカード
３１２  システムバス
４０１  ＯＳ部
４０２  ルーティングソフトウェア
４０３  外部コントローラアプリケーション
４０４  ＡｕｔｏＩＰサーバ
４０５  ローカルアドレス生成モジュール
４０６  ＮＡＴ部
４０７  タイマ
５０１  ＯＳ部
５０２  複合機制御ソフトウェア
５０３  ＤＨＣＰクライアントソフトウェア
５０４  ＭＩＢ
６０１  ＰＣ
６０２  パケット
６０３  パケット
６０４  パケット
６０５  パケット
７０１  アプリケーション
１００１  パネルＵＩ
【図１】
2006246412.tif 000003
【図２】
2006246412.tif 000004
【図３】
2006246412.tif 000005
【図４】
2006246412.tif 000006
【図５】
2006246412.tif 000007
【図６】
2006246412.tif 000008
【図７】
2006246412.tif 000009
【図８】
2006246412.tif 000010
【図９】
2006246412.tif 000011
【図１０】
2006246412.tif 000012
【図１１】
2006246412.tif 000013