IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7508284通信装置、通信装置の制御方法及びプログラム
<>
  • 特許-通信装置、通信装置の制御方法及びプログラム 図1
  • 特許-通信装置、通信装置の制御方法及びプログラム 図2
  • 特許-通信装置、通信装置の制御方法及びプログラム 図3
  • 特許-通信装置、通信装置の制御方法及びプログラム 図4
  • 特許-通信装置、通信装置の制御方法及びプログラム 図5
  • 特許-通信装置、通信装置の制御方法及びプログラム 図6
  • 特許-通信装置、通信装置の制御方法及びプログラム 図7
  • 特許-通信装置、通信装置の制御方法及びプログラム 図8
  • 特許-通信装置、通信装置の制御方法及びプログラム 図9
  • 特許-通信装置、通信装置の制御方法及びプログラム 図10
  • 特許-通信装置、通信装置の制御方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-21
(45)【発行日】2024-07-01
(54)【発明の名称】通信装置、通信装置の制御方法及びプログラム
(51)【国際特許分類】
   H04L 61/45 20220101AFI20240624BHJP
【FI】
H04L61/45
【請求項の数】 17
(21)【出願番号】P 2020104675
(22)【出願日】2020-06-17
(65)【公開番号】P2021197687
(43)【公開日】2021-12-27
【審査請求日】2023-04-14
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【弁理士】
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【弁理士】
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【弁理士】
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【弁理士】
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】内川 慎一
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2010-193015(JP,A)
【文献】特開2005-151314(JP,A)
【文献】米国特許出願公開第2005/0111384(US,A1)
【文献】国際公開第2013/069161(WO,A1)
【文献】米国特許出願公開第2014/0211807(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置であって、
ホスト名の名前解決を外部に依頼する依頼手段と、
前記依頼手段で依頼した前記ホスト名の名前解決が成功した場合に、当該名前解決に成功したDNSサーバが対応付けられている通信インタフェースを特定し、当該特定された通信インタフェース経由で前記名前解決の結果得られたIPアドレスで特定される外部装置と通信を行うための経路情報をルーティングテーブルに登録する登録手段と、
を有することを特徴とする通信装置。
【請求項2】
前記複数の通信インタフェースは、
第1のDNSサーバのある第1のネットワークに対応する第1の通信インタフェースと、
第2のDNSサーバのあるネットワークであって、前記第1のネットワーとは異なる第2のネットワークに対応する第2の通信インタフェースとを含むことを特徴とする請求項1に記載の通信装置。
【請求項3】
前記登録手段は、前記第2のDNSサーバで前記ホスト名の名前解決が成功した場合に、前記第1のネットワークと前記第2のネットワークとのいずれとも異なる第3のネットワークにある外部装置と、前記2の通信インタフェースを介して通信を行うための経路情報を前記ルーティングテーブルに登録するように制御することを特徴とする請求項2に記載の通信装置。
【請求項4】
前記第2のネットワークと前記第3のネットワークは接続されていることを特徴とする請求項3に記載の通信装置。
【請求項5】
前記第1のネットワークと前記第3のネットワークは接続されていないことを特徴とする請求項3または4に記載の通信装置。
【請求項6】
前記第1の通信インタフェースは前記第1のネットワークに接続されており、前記第2の通信インタフェースは前記第2のネットワークに接続されていることを特徴とする請求項2乃至5のいずれか1項に記載の通信装置。
【請求項7】
前記登録手段は、前記第1のDNSサーバで前記ホスト名の名前解決が成功した場合に、前記外部装置と通信を行うための経路情報を前記ルーティングテーブルに登録しないように制御することを特徴とする請求項2乃至6のいずれか1項に記載の通信装置。
【請求項8】
前記登録手段は、前記依頼手段によって依頼された前記依頼に応じた前記ホスト名の前記名前解決に成功したDNSサーバが、前記第1のDNSサーバであるか否かに基づいて、前記外部装置と通信するための経路情報を前記ルーティングテーブルに登録するか否かを異ならせるように制御することを特徴とする請求項2乃至7のいずれか1項に記載の通信装置。
【請求項9】
前記依頼手段は、前記名前解決を前記第1の通信インタフェースを介して前記第1のDNSサーバに依頼し、かつ、前記名前解決を前記第2の通信インタフェースを介して前記第2のDNSサーバに依頼することを特徴とする請求項2乃至8のいずれか1項に記載の通信装置。
【請求項10】
前記第1の通信インタフェースは、デフォルトゲートウェイが設定された通信インタフェースであることを特徴とする請求項2乃至9のいずれか1項に記載の通信装置。
【請求項11】
前記登録手段による、名前解決の結果得られたIPアドレスで特定される外部装置と通信を行うための経路情報の登録処理を行うか否かを設定する設定手段を更に有し、
前記設定手段で登録処理を行わない設定がなされている場合、前記登録手段による経路情報の登録は行われないことを特徴とする請求項1乃至10のいずれか1項に記載の通信装置。
【請求項12】
ホスト名と、当該ホスト名で特定される外部装置との通信に利用すべき通信インタフェースの対応関係を登録するユーザ操作を受け付ける受付手段を更に有し、
前記依頼手段は、前記受付手段で前記登録するユーザ操作を受け付けたことに従って、
前記利用すべき通信インタフェースに対応付けられているDNSサーバに名前解決を依頼し、
前記登録手段は、前記依頼手段で依頼した前記ホスト名の名前解決が成功した場合に、
前記受付手段で受け付けた対応関係に基づき前記名前解決に成功したDNSサーバが対応付けられている通信インタフェースを特定することを特徴とする請求項1に記載の通信装置。
【請求項13】
原稿を読み取る読取手段を更に有することを特徴とする請求項1乃至12のいずれか1項に記載の通信装置。
【請求項14】
前記通信装置は、前記読取手段で原稿を読み取ることで得られた画像を外部装置に送信する送信アプリケーションを有しており、
前記送信アプリケーションで使用する送信宛先としてホスト名が指定され、当該ホスト名の名前解決の結果得られたIPアドレスで特定される外部装置と通信を行う場合に、当該通信に使用する通信インタフェースは、前記ルーティングテーブルに登録された経路情報に基づき決定されることを特徴とする請求項13に記載の通信装置。
【請求項15】
名前解決の結果をキャッシュする記憶手段と、
キャッシュの有効期限に到達した名前解決の結果を削除する第1の削除手段と、
前記第1の削除手段で名前解決の結果を削除する際に、前記名前解決の結果を示すIPアドレスが前記ルーティングテーブルに経路情報に登録されている場合、当該経路情報を削除する第2の削除手段と、を更に有することを特徴とする請求項1乃至14のいずれか1項に記載の通信装置。
【請求項16】
複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置の制御方法であって、
ホスト名の名前解決を外部に依頼する依頼工程と、
前記依頼工程で依頼した前記ホスト名の名前解決が成功した場合に、当該名前解決に成功したDNSサーバが対応付けられている通信インタフェースを特定し、当該特定された通信インタフェース経由で前記名前解決の結果得られたIPアドレスで特定される外部装置と通信を行うための経路情報をルーティングテーブルに登録する登録工程と、
を有することを特徴とする制御方法。
【請求項17】
少なくとも1つのコンピュータを、請求項1乃至15のいずれか1項に記載された通信装置が有するすべての手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部にデータを送信する通信装置に関するものである。
【背景技術】
【0002】
近年、ネットワークに求められるセキュリティや、機能性の複雑化に伴い、オフィスや商業施設などで複数のLAN(Local Area Network)を使い分ける構成が一般的になってきた。
【0003】
特許文献1には、クライアント端末が複数のドメイン名管理が行われているネットワークに接続された環境において、ドメイン名の名前解決を効率的に行う方法が開示されている。
【0004】
また、特許文献2には、ルーターが要求された通信の最適経路を選択するために、それぞれの経路に存在するDNSサーバに対して名前解決の問い合わせを行い、その応答が得られた経路の中から優先度の高い経路を選択して通信を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2010-193015号公報
【文献】特開2005-151314号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、通信装置において、DNSサーバによる名前解決が成功し、ホスト名に対応するIPアドレスが取得できた場合であっても、ルーティングテーブルの設定によっては当該IPアドレスで特定される相手先装置との通信に失敗する場合がある。
【0007】
具体的な一例について説明する。例えば、通信装置が2つの独立したネットワークAとネットワークBに接続されており、ネットワークAのルーターがデフォルトゲートウェイに設定されているものとする。また、通信装置が通信したい通信相手先がネットワークBのルーターを介したネットワークCに存在するとする。この場合、通信装置が相手先装置に対応するドメイン名の名前解決を試行すると、ネットワークBのDNSサーバからネットワークCに所属する相手先装置のIPアドレスを取得できる。しかしながら、通信装置のデフォルトゲートウェイには、ネットワークAのルーターが設定されているため、ネットワークAのルーターに送信してしまう。その結果、ネットワークCに属する相手先装置に到達できず、通信が失敗してしまう場合がある。
【0008】
本発明は、上述の問題点の少なくとも1つを鑑みなされたものである。本発明の1つの側面としては、名前解決を行った経路に基づいて、名前解決の結果得られたIPアドレスで特定される外部装置との通信のための経路情報を適切にルーティングテーブルに登録する仕組みを提供することを目的の1つとする。本発明の別の側面としては複数のインタフェースを有する通信装置における通信の利便性を高めることを目的の1つとする。
【課題を解決するための手段】
【0009】
上記の少なくとも1つの目的を達成するために本発明の通信端末は、複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置であって、ホスト名の名前解決を外部に依頼する依頼手段と、前記依頼手段で依頼した前記ホスト名の名前解決が成功した場合に、当該名前解決に成功したDNSサーバが対応付けられている通信インタフェースを特定し、当該特定された通信インタフェース経由で前記名前解決の結果得られたIPアドレスで特定される外部装置と通信を行うための経路情報をルーティングテーブルに登録する登録手段と、を有することを特徴とする。
【発明の効果】
【0010】
本発明の1つの側面によれば、名前解決の結果得られたIPアドレスで特定される外部装置との通信のための経路情報を適切にルーティングテーブルに登録することができるようになる。また、本発明の1つの側面によれば、複数のインタフェースを有する通信装置における通信の利便性を高めることができるようになる。
【図面の簡単な説明】
【0011】
図1】通信システムの一例を示す図である。
図2】MFP200のハードウェア構成の一例を示す図である。
図3】MFP200のソフトウェア構成の一例を示す図である。
図4】MFP200の制御の一例を示すフローチャートである。
図5】MFP200の制御の一例を示すフローチャートである。
図6】MFP200の制御の一例を示すフローチャートである。
図7】MFP200の制御の一例を示すフローチャートである。
図8】ネットワークに関する設定画面の一例を示す図である。
図9】ルーティングテーブルに登録される経路情報を説明するための図である。
図10】第2の実施形態における設定画面の一例を示している。
図11】第2の実施形態におけるMFP200の制御の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではなく、また、実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【0013】
<第1の実施形態>
まず、図1を用いて、本発明に係る通信システムの構成を説明する。本実施形態に係る通信システムは、MFP(Multi Function Peripheral)200、DNSサーバ100及びDNSサーバ101を少なくとも含む。MFP200は、複数の通信インタフェース(NWインタフェース)を有し、異なるネットワークであるネットワークA400とネットワークB410に接続されている。
【0014】
ネットワークA400には、DNS(Domain Name System)サーバ100とルーター300が接続されている。ルーター300はネットワークA400とネットワークD412を接続しており、ネットワークD412にはデバイス500、501が接続されている。また、ネットワークB410にはDNSサーバ101とルーター301が接続されている。ルーター301はネットワークB410とネットワークC411を接続している。ネットワークC411には、デバイス502が接続されている。
【0015】
DNSサーバ100はネットワークA400とネットワークD412に参加している機器のDNS名(ホスト名)とIPアドレスの対応関係を管理している。ここでは、デバイス500とデバイス501のDNS名を管理する。一方、DNSサーバ101はネットワークB410とネットワークC411のDNS名(ホスト名)とIPアドレスの対応関係を管理する。
【0016】
本実施形態では、ネットワークA400とネットワークB410は独立した異なるネットワーク構成である場合を想定している。この場合、DNSサーバ100にデバイス502のDNS名の解決を依頼しても、当該名前解決は行えない。逆に、DNSサーバ101にデバイス500、501のホスト名の解決を依頼しても当該名前解決は行えない。
【0017】
なお、本実施形態では、通信装置の一例として、印刷機能やスキャン機能を有するMFP200を例示している。しかしながら、本実施形態を適用できる通信装置は、MFPに限定されない。例えば、IoTデバイスやパーソナルコンピューター、エッジサーバ、スマートフォンなどに適用することもできる。また、デバイス500~デバイス502は、例えばファイルサーバや、MFP200の情報を管理する情報管理サーバ、プリントサービスを提供するサーバなどを想定している。しかしながらこれに限定されるものではなく、基幹業務システムのサーバやクラウドサーバなどであってもよい。
【0018】
MFP200は、外部装置にスキャンして得られた画像に基づくデータを送信したり、MFP200が収集したデータを送信したりすることができる。データを送信する際に、MFP200は、デバイス501や503のホスト名を指定した宛先を用いて送信を行う。この際の名前解決の方法については、後述する。
【0019】
続けて、図2を用いて、MFP200の構成について説明する。図2は、MFP200のハードウェア構成を示すブロック図である。MFP200はシート上の画像を読み取る読取機能、当該読み取った画像を外部の通信装置に送信可能なファイル送信機能などを有している。また、シートに画像を印刷する印刷機能も有する。
【0020】
CPU(Central Processing Unit)202を含む制御部201は、MFP200全体の動作を制御する。CPU202は、ROM(Read Only Memory)204又はストレージ205に記憶された制御プログラムを読み出して、印刷制御や読取制御などの各種制御を行う。ROM204は、CPU202で実行可能な制御プログラムを格納する。RAM(Random Access Memory)203は、CPU202の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ205は、印刷データ、画像データ、各種プログラム、及び各種設定情報を記憶する不揮発性の記憶領域である。このように、CPU202、ROM204、RAM203、ストレージ205等のハードウェアは、いわゆるコンピュータを構成している。
【0021】
なお、本実施形態のMFP200では、1つのCPU202が1つのメモリ(RAM203)を用いて後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のプロセッサ、メモリ、及びストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、ハードウェア回路を用いて一部の処理を実行するようにしてもよい。
【0022】
プリンタI/F206は、プリンタ207(プリンタエンジン)と制御部201とを接続する。プリンタ207は、プリンタI/F206を介して入力された印刷データに基づいて、不図示の給紙カセットから給紙されたシートに画像を印刷する。印刷の方式はトナーを紙に転写して定着させる電子写真方式であってもよいし、紙にインクを吐出して印刷するインクジェット方式であってもよい。また、プリンタ207は造形材料を用いて3次元形状の出力物を生成する3Dプリンタであってもよい。この場合、印刷データは3D形状を示す印刷データとなり、トナーやインク等の色材に代えて造形材やサポート材を用いて3次元形状の出力物を生成する。
【0023】
スキャナI/F208は、スキャナ209と制御部201とを接続する。スキャナ209は、載置された原稿を読み取り、そして画像データを生成する。スキャナ209が生成した画像データは、プリンタ207で印刷されたり、ストレージ205に記憶されたり、FAX I/F214や通信I/F212、213を介して外部装置に送信されたりする。なお、本実施形態では原稿を読み取るスキャナ209を例示しているがこれに限定されるものではない。立体物の形状データを読みとる三次元スキャナであってもよい。この場合、プリンタ207は、前述した3Dプリンタとして機能する。スキャナ209が三次元スキャナの場合、画像データに代えて形状データが生成される。生成された形状データは外部装置に送信されたり、3Dプリンタによる立体物の複製(3Dコピー)に利用されたりする。
【0024】
操作パネルI/F210は、操作パネル211と制御部201とを接続する。操作パネル211には、タッチパネル機能を有する液晶表示部や各種ハードキーなどが備えられ、情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。CPU202は、操作パネル211と協働して情報の表示制御やユーザ操作の受け付け制御を行う。
【0025】
通信I/F212、213には、ネットワークケーブルが接続され、外部装置とネットワークを経由した通信を実行することができる。
【0026】
通信I/F212は、MFP200が備える第1の通信インタフェースであり、ネットワーク400Aに接続されている。通信I/F213は、MFP200が備える第2の通信インタフェースであり、ネットワーク410Bに接続されている。
【0027】
本実施形態のMFP200では、複数の通信I/Fが有効である場合、いずれか一方がプライマリネットワークとして機能する。なお、本実施形態において、プライマリネットワークとして機能する通信インタフェースに関連する設定として、経路が分からないパケットを転送するデフォルトゲートウェイが設定される。即ち、経路が分からないパケットは、プライマリネットワークとして機能する通信I/Fを経由して送信されることになる。
【0028】
本実施形態では、通信I/F212、213がイーサネット(登録商標)に準拠する有線通信を行う通信インタフェースである場合を想定しているがこれに限定されるものではない。例えば、一方がIEEE802.11シリーズに準拠する無線通信インタフェースであってもよい。また、両方が無線通信インタフェースであってもよい。また、CDMA等の3G回線、LTEなどの4G回線、5Gなどの移動体通信を行う通信インタフェースであってもよい。
【0029】
FAX I/F214には、電話回線ケーブルが接続され、PTSN(Public Switched Telephone Network)に接続される。
【0030】
続けて、図3を用いて、MFP200のソフトウェア構成について説明する。アプリケーション群1000は、MFP101が備えるアプリケーションを示している。送信アプリケーション1010aはネットワークDのデバイス500、501や、ネットワークCのデバイス502等の外部装置と通信を行うアプリケーションである。例えば、通信アプリケーションは、WebDAVなどのHTTP(HyperText Transfer Protocol)ベースの通信でデバイスに対してデータを送信する送信アプリケーションである。送信アプリケーションは、スキャナ209で原稿を読み取って得られた画像に基づくファイルをユーザにより指定された送信宛先に送信することができる。送信宛先は図示省略の送信設定画面を介してユーザ操作により指定することができる。ユーザは、ファイルサーバのホスト名をFQDN(Fully Qualified Domain Name)の形式で入力することで宛先を指定する。送信設定画面を介して送信宛先が設定された後に、送信を開始するキーの選択を受け付けたことに従って、送信アプリケーション1010aは原稿の読み取りをスキャナ209に依頼する。続けて送信アプリケーション1010aは、原稿を読み取って得られた画像に基づくデータをユーザにより指定された送信宛先に送信する。なお、本実施形態では送信プロトコルの一例としてWebDAV(Web-based Distributed Authoring and Versioning)を例示したがこれに限定されるものではない。例えば、FTP(File Transfer Protocol)やFTPS(FTP Over SSL/TLS)等の送信プロトコルを用いることもできる。
【0031】
クラウドプリントアプリケーション1010bは特定のクラウドプリントサービスと通信するアプリケーションである。アプリケーション1010bは、特定のクラウドプリントサービス(クラウドサーバ)に対してジョブの問い合わせを行ったり、URL形式で指定されるジョブデータをクラウドサーバやクラウドストレージからダウンロードして印刷を行ったりする。これらの通信にもホスト名やURL(Uniform Resourse Locater)で指定された宛先と通信を行うことになる。
【0032】
また、デバイス管理アプリケーション1010cはネットワーク上のデバイス管理サーバにデバイスステータスを送信するアプリケーションである。例えば、印刷装置の消耗材(インク、トナー、造形材、サポート材)などの消耗材のステータスや、利用実績、エラー情報などの稼働情報を管理サーバに送信する。これらの管理サーバとの通信を行う場合にも、管理サーバを識別するホスト名からIPアドレスを正引きする名前解決が必要となる。
【0033】
オペレーティングシステム1020はネットワーク通信を行うためのTCP/IPプロトコルスタックや、名前解決を行うためのDNSクライアント1021およびルーティングテーブル1022も含む。DNSクライアント1021は指定されたDNSサーバに対して名前解決を依頼する機能を備える。本実施形態では、DNSクライアント1021は、Linux(登録商標)システムにおける標準のDNSクライアントである場合を想定している。これらのクライアントを用いてドメイン名の名前解決を行う場合、「/etc/resolve.conf」に位置するファイルに対して、「nameserver “DNSサーバのIPアドレス“」といった記載を行ってDNSサーバを指定する。冗長化のため、利用するDNSサーバを複数指定することもできる。DNSクライアント1021は指定されたDNSサーバに対して名前解決を依頼する機能を備える。しかしながら、ここで登録するDNSサーバは、登録されたDNSサーバから応答がない場合に代替で利用する冗長化のためのDNSサーバである。そのため、DNS名前解決を行った結果、該当する名前が見つからない場合(通信は成功した場合)は、代替で利用するDNSサーバへの問い合わせは行わない。すなわち、LinuxシステムのDNSクライアントを単純に利用する場合、それぞれのネットワークのDNS名前解決を実現することは困難である。
【0034】
これを鑑み、本実施形態では、MFP200にDNSキャッシュサーバ1030を設けている。DNSクライアント1021は、アプリケーションから依頼を受けた名前解決をMFP200が内部に備える当該DNSキャッシュサーバ1030に転送する。DNSキャッシュサーバ1030は、クライアント1021から転送された名前解決の処理を行うために、複数のDNSサーバに問合せを行う。この処理により、複数の異なるネットワークに対するDNS名前解決を実現する。
【0035】
名前解決の結果得られるホスト名に対応するIPアドレスは、DNSクライアントを介して依頼元のアプリケーションに通知される。アプリケーションは、OS1020と協働して、当該IPアドレスで特定される外部装置との通信を行う。
【0036】
ここで、OS1020は、宛先IPアドレスとルーティングテーブル1022に基づき通信経路を決定する。
【0037】
ルーティングテーブル1022には宛先IPアドレスに対して、どのネットワークインタフェースを利用し、どの中継先(ゲートウェイ)に送信するか定義した経路情報が登録されている。なお、登録済の各経路に一致しない場合に、デフォルトゲートウェイにデータを送信するための経路情報も登録されている。具体的な経路情報については後述する。
【0038】
続けて、OS1020は、決定した経路情報に基づきデータ送信に使用する通信インタフェースを特定する。そして、特定した通信インタフェース経由で宛先IPアドレス宛のパケットデータを送信する。
【0039】
ところで、MFP200において、DNSサーバによる名前解決が成功し、ホスト名に対応するIPアドレスが取得できた場合であっても、ルーティングテーブルの設定によっては当該IPアドレスで特定される相手先装置との通信に失敗する場合がある。
【0040】
具体的な一例について説明する。MFP200が通信したい通信相手先がネットワークBのルーターを介したネットワークCに存在するデバイス502であるとする。また、MFP200において、通信I/F212がプライマリネットワークとして機能し、デフォルトゲートウェイとして、ネットワークAのルーター300が設定されているものとする。
【0041】
この場合、MFP200のDNSクライアント、DNSキャッシュサーバが協働して、デバイス502のホスト名の名前解決を試みると、ネットワークBのDNSサーバ101からデバイス502のIPアドレスを取得できる。
【0042】
しかしながら、当該IPアドレスに対応する静的な経路情報が管理者等によりルーティングテーブルに事前登録されていない限り、OS1020が実行する通信経路の決定処理で、デフォルトゲートウェイへパケットを転送する経路が選択される。即ち、ネットワークAのルーター300経由でパケットを外部に送信すべく、通信I/F212からパケットを送信することになる。その結果、ネットワークCに属するデバイス502に到達できず、通信が失敗してしまう恐れがある。
【0043】
本実施形態では、上述の問題点の少なくとも1つを鑑み、デフォルトゲートウェイの設定されていない通信I/FのDNSサーバを利用してIPアドレスを取得した場合、当該通信I/Fを経由して通信が行えるよう、経路情報を登録する仕組みを提供する。以下具体的に説明する。
【0044】
図3の説明に戻り、設定値DB1050には通信I/Fに関する設定を含むMFP200の動作設定が記憶される。通信I/Fに関する設定には、各通信インタフェースの有効/無効を示す設定や、静的ルーティングに関する設定情報や登録情報を含む。また、各インタフェースに割り当てられたIPアドレス、ネットワークアドレス等の設定も含まれる。更に、通信インタフェースごとのDNSサーバのアドレスや、各通信インタフェースを使用する際のゲートウェイの設定も含まれているものとする。当該設定値DB1050はルーティングテーブルへの経路情報の登録制御や、各種フローチャートに示す制御で適宜参照される。
【0045】
また、ネットワーク設定制御部1040は、設定画面を操作パネル211に表示し、管理者等のユーザから各種ネットワーク設定の変更を受け付けて設定値DB1050に格納する機能を有する。また、制御部1040は、ルーティング設定制御部1040aを有する。ルーティング設定制御部1040aは、設定値DB1050の値を参照しルーティングテーブル1022への設定の追加、削除を行う。なお、設定制御部1040は、図示省略のWebサーバ機能と協働して、ネットワーク設定を確認、変更するためのWebページを提供することもできる。この場合、管理者等のユーザは、PCなどのクライアントからMFP200が提供するWebページにアクセスし、ネットワーク設定の変更を行うことができる。
【0046】
本実施形態におけるネットワーク設定の一例について説明する。本実施形態では、通信I/F212と通信I/F213の両方が有効に設定されており、通信I/F212がプライマリネットワークとして機能するよう設定されている場合を例に説明する。
【0047】
プライマリネットワークとして機能しないその他のインタフェースは同一ネットワークに属する通信装置と通信を行ったり、当該インタフェースに対してスタティックルートが事前設定された通信装置と通信を行ったりするサブネットワークとして機能する。本実施形態では、デフォルトゲートウェイとして機能する通信インタフェースと、サブネットワークとして機能する通信インタフェースの差異はデフォルトゲートウェイが設定できるかどうかである。しかしながらこれに限定されるものではない。サブネットワークとして機能する通信インタフェースはよりプライマリネットワークとして機能するネットワークインタフェースと比較して機能が限定されていてもよい。例えば、一部プロトコルの使用を制限したりしてもよい。
【0048】
以降、説明のため、通信I/F212に対応する「ネットワークA」がプライマリネットワークとして機能し、通信I/F213に対応する「ネットワークB」がプライマリネットワークより優先順位が低いサブネットワークとして機能する場合を例に説明する。以降通信I/F212を単に「ネットワークA」と呼び、通信I/F213を単に「ネットワークB」とも呼ぶものとする。また、サブネットワークのことをセカンダリネットワークとも呼ぶ。
【0049】
ルーティング設定制御部1040aは、設定DBに記憶された情報に基づき通信I/F212が属するネットワークに属する外部装置に対する通信を、通信I/F212から行うための経路情報をテーブル1022に登録する。更に、制御部1040aは、通信I/F213が属するネットワークに属する外部装置に対する通信を通信I/F213から行うための経路情報をテーブル1022に登録する。また、これら以外の経路が不明な宛先はプライマリネットワークとして機能する通信I/Fからデフォルトゲートウェイに転送するための経路情報をルーティングテーブル1022に登録する。
【0050】
ネットワークの設定について図8を用いて説明する。図8は設定制御部1040が操作パネル211上に表示する設定画面の一例であり、ルーティングテーブル1022に登録するルーティング情報を登録する静的経路の設定画面2000を示している。
【0051】
管理者等のユーザは、画面2000を介して、ルーティングテーブル1022に反映される静的経路情報を登録することができる。キー2001、2002は、静的ルーティングを有効にするか、無効にするかを設定するための表示アイテムである。キー2001、2002はいずれか一方が有効にセットされ、他方は無効にセットされる。本実施形態ではキー2001が有効に設定されている場合を例示している。
【0052】
なお、本実施形態において、表示アイテムとは、ユーザ操作を受け付けるためのキー、ボタン、情報表示のためのラベル、表示領域、描画オブジェクトなどを含む表示オブジェクトの総称を意味する。以降、説明のため操作パネル211上に設定画面を表示する場合を例に説明するが、クライアント端末のWebブラウザから、MFP200が提供するWebページにアクセスすることで同様の設定を行うことができる。
【0053】
領域2003は、設定した静的ルーティング設定を表示する領域である。静的ルーティングとしては、ルーティング条件として送信先のアドレスとプレフィックスを設定し、そのアドレスに一致した場合に送信するゲートウェイ情報が表示される。ユーザは、編集キー2004を選択することで、静的ルーティング設定を編集することができる。編集キー2004が選択されたことを検知すると、MFP200は、操作パネル211上に図示省略のソフトウェアキーボードと編集画面を表示する。ユーザは、編集画面とソフトウェアキーボードを用いて送信先のアドレス、プレフィックス、ゲートウェイの情報を入力することができる。
【0054】
図9はルーティングテーブル1022に登録される経路情報を説明する図であり、図9(A)は画面2000で例示した静的経路設定が反映されたルーティングテーブル1022を例示している。eth1は通信I/F212に対応する論理インタフェースであり、eth2は、通信I/F213に対応する論理インタフェースを示している。また、eth1が属するネットワークのネットワークアドレスが、192.168.250.0であり、eth2が属するネットワークのネットワークアドレスが172.24.10.0である場合を例示している。また、デフォルトゲートウェイとして、通信I/F212を介して通信可能なルーター300が設定されているものとする。ここでは、ルーター300のIPアドレスが192.168.250.2であり、ルーター301のIPアドレスが172.24.10.1である場合を例示している。また、静的ルーティング設定として画面2000に例示した設定がなされており、当該設定に基づく静的経路が登録されている場合を示している。
【0055】
ここで、経路情報901は、ルーティングテーブルの他の経路に明記されていないパケットの送信先を示すデフォルトルートを示している。経路情報901は、902~904の経路情報に合致しない宛先へのパケットを、デフォルトデートウェイであるルーター300(192.168.250.2)に転送することを示している。
【0056】
経路情報902は、eth1(通信I/F212)のネットワークに属する外部装置との通信はeth1(通信I/F212)から通信するよう制御する経路情報を示している。経路情報903は、eth2(通信I/F213)のネットワークに属する外部装置との通信はeth2(通信I/F213)から通信するよう制御する経路情報を示している。経路情報904は、画面2000を介して登録された静的経路情報に基づき登録された経路情報を示している。具体的には経路情報904は宛先IPアドレスが「210.210.10.4」の宛先へのパケットを、eth2(通信I/F213)を使用し、ルーター301(172.24.10.1)に転送するといった転送条件を示している。
【0057】
図8の説明に戻り、キー2010、2011は、静的ルーティングの自動登録設定を有効にするか、無効にするかを設定するための表示アイテムである。キー2010、2011はいずれか一方が有効にセットされ、他方は無効にセットされる。本実施形態ではキー2010が有効に設定されている場合を例示している。
【0058】
図8の画面を介してなされた静的ルーティングの自動登録を行うか否かの設定や、領域2003に入力された静的経路情報は、設定値DB1050に記憶される。MFP200は、静的ルーティングの自動登録設定が有効に設定されている場合に静的ルーティングの自動追加制御を行う。
【0059】
具体的な制御について、図4を用いて説明する。各処理の冒頭における記号「S」はステップを意味する。図4乃至図6のフローチャートに示す各動作(ステップ)は、CPU202がROM204またはストレージ205に記憶された各制御モジュールを実現するためのプログラムをRAM203に呼び出し、実行することにより実現される。なお、データの送受信処理などは、各通信I/Fと協働して実現されるものとする。また、処理の主体を明確にしたいケースにおいては、CPU202により実行されるソフトウェアモジュールを主語として説明する。
【0060】
図4のフローチャートは、DNSキャッシュサーバ1030が、アプリケーション及びDNSクライアント1021から名前解決の依頼を受信したことに従って開示される。
【0061】
S100において、DNSキャッシュサーバ1030はDNS名前解決の要求を受け付けると、DNS名前解決を試行する。具体的には、DNSキャッシュサーバ1030は、設定値DB1050に記憶された各通信インタフェースに対応するDNSサーバに名前解決を依頼する。
【0062】
続けて、S101において、DNSキャッシュサーバ1030は、名前解決が成功したか否かを判断する。いずれのDNSサーバからも応答がなかった場合、又はいずれのDNSサーバでもIPアドレスを正引きできなかった場合、名前解決が失敗したと判断する。いずれか1つ以上のDNSサーバからホスト名のIPアドレスを正引きできた場合、名前解決が成功したと判断する。名前解決に成功したと判断した場合、処理をS102に進め、名前解決に失敗したと判断した場合、DNSクライアント1021にエラーを通知し、一連の処理を終了する。
【0063】
S102において、DNSキャッシュサーバ1030は名前解決の結果を示すDNSキャッシュをDNSキャッシュ1030aに保存する。当該DNSキャッシュには有効期限であるキャッシュ時間が設定される。サーバ1030は、DNSキャッシュのキャッシュ時間に、DNSの名前解決の応答に含まれるTTL(Time to Live)の値を設定する。以降、依頼を受信したキャッシュサーバ1030は、DNSキャッシュ1030aに該当する情報が存在するかどうかを更に判定する。当該判定の結果、該当する情報が存在する場合、外部のDNSサーバに問い合わせを行うことなく当該キャッシュ情報を用いてDNSクライアントに名前解決結果を応答する。また、判定の結果、該当する情報が存在しない場合、S100で説明した外部のDNSサーバへ問合せを実行する。
【0064】
続けて、S103において、DNSキャッシュサーバ1030は、IPアドレスの正引きを行ったDNSサーバが、プライマリネットワークとして機能する通信インタフェースに対応付けられたDNSサーバであるか否かを判断する。プライマリネットワークとして機能する通信インタフェースに対応付けられたDNSサーバで正引きが行われた場合、経路情報の登録を行うことなく一例の処理を終了する。一方、プライマリネットワークとして機能する通信I/Fに対応付けられたDNSサーバで正引きが行われていない場合、処理をS104に進める。
【0065】
S104において、DNSキャッシュサーバ1030は、制御部1040aに対して名前解決の結果得られたIPアドレスに対するパケット通信を、正引きを行ったDNSサーバに対応付けられた通信I/F経由で通信するための経路情報の登録を依頼する。依頼が完了すると一連の名前解決処理を終了する。当該依頼には、IPアドレスと当該IPアドレスの名前解決に使用すべき通信I/Fを識別する情報が含まれるものとする。
【0066】
次に、図5のフローチャートを用いて、ルーティング設定制御部1040aによるルーティング自動登録処理について説明する。図5の各処理は、S104の依頼を制御部1040aが受信したことに従って実行される。
【0067】
S200において、ルーティング設定制御部1040aは設定値DB1050を参照し、静的ルーティングの自動登録設定が有効に設定されているか否かを判断する。静的ルーティングの自動登録設定が有効に設定されている場合、処理をS201に進め、静的ルーティングの自動登録設定が有効に設定されていない(即ち無効に設定されている)場合、依頼に基づく登録処理を行うことなく一連の処理を終了する。
【0068】
S201において、制御部1040aは、依頼に含まれるIPアドレスがルーティングテーブル1022に登録済みであるか否かを判断する。ルーティングテーブル1022に登録済みであると判断した場合、一連の処理を終了する。一方、未登録であると判断した場合、処理をS202に進める。
【0069】
S202において、制御部1040aは、名前解決で取得したIPアドレス宛のパケットを、名前解決を行ったDNSサーバのインタフェースに設定されたゲートウェイに転送する経路情報を、ルーティングテーブル1022に対して登録して処理を終了する。また、制御部1040aは、当該登録した経路情報を、自動登録した静的経路情報として設定値DB1050に記憶される。この情報は画面2000を介して手動登録された静的経路情報とは区別して管理される。
【0070】
以上の図4及び図5で説明した各処理により、セカンダリインタフェースを介して通信相手先の名前解決が行われた場合、当該名前解決を行ったインタフェースを介して通信相手先とのIP通信を行うための経路情報を適切に設定できるようになる。従って、適切に通信を行えるようになる。
【0071】
具体的な例を図9Bを用いて説明する。図9B図4及び図5の処理によりルーティング設定が自動登録された後のルーティングテーブル1022を示す。図9Bは、eth2(通信I/F213)に対応するDNSサーバによりホスト名の正引きが行われ、ネットワークC上のデバイスのIPアドレス「210.210.20.20」が取得できた場合の自動登録結果を示している。
【0072】
この場合、S104で送信される依頼は、IPアドレスを示す情報である「210.210.20.20」と当該IPアドレスの名前解決に使用すべき通信I/Fを識別する情報である「eth2」を含んでいる。この依頼を受信した制御部1040aは、当該依頼に基づき経路情報905をルーティングテーブル1022に自動登録する。
【0073】
最後に、自動登録した経路情報を削除する制御について説明する。時間の経過に伴い、各ネットワークの構成や外部装置のIPアドレスが変更となる可能性がある。また、外部装置がDDNS技術を用いて管理されている場合、時間の経過に伴いIPアドレスが変動する可能性もある。この場合、図4図5で自動登録した経路情報を登録し続けていると、意図しない通信が発生してしまう恐れがある。従って、本実施形態では、図6図7を用いて自動登録した経路情報を削除する仕組みを提供する。具体的には、DNSキャッシュサーバの所有するDNSキャッシュの有効期間の終了に同期して、登録したルーティング設定を削除する。
【0074】
図6は、DNSキャッシュサーバ1030におけるキャッシュの削除制御を説明するフローチャートである。当該フローチャートはMFP200において、定期的に読みだされ、実行される。
【0075】
S300において、DNSキャッシュサーバ1030は、DNSキャッシュ1030aを参照し、有効期限切れのキャッシュがあるか否かを判断する。有効期限切れのキャッシュがある場合、処理をS301に進め、有効期限切れのキャッシュがない場合、一連の処理を終了する。
【0076】
続けて、S301において、DNSキャッシュサーバ1030は、期限切れのDNSキャッシュ情報を削除する。S302において、サーバ1030は、ルーティング設定制御部1040aに対してS301で削除したキャッシュに対応するIPアドレスに関する経路情報の削除を依頼する。削除の依頼には、S301で削除したキャッシュに対応するIPアドレスの情報が含まれる
図7は制御部1040aのルーティング自動登録の削除処理を説明するフローチャートである。図7のフローチャートに示す各処理はサーバ1030から削除の依頼を受信したことに従って実行される。
【0077】
S400において、制御部1040aは、設定値DB1050に記憶された自動登録された静的経路情報を参照し、削除が依頼されたIPアドレスが静的ルーティングテーブルに自動登録したIPアドレスであるか否かを判断する。削除が依頼されたIPアドレスが静的ルーティングテーブルに自動登録したIPアドレスであると判断した場合、処理をS401に進める。一方、削除が依頼されたIPアドレスが静的ルーティングテーブルに自動登録したIPアドレスではないと判断した場合、一連の処理を終了する。
【0078】
S401において、制御部1040aは、設定値DB1050の自動登録された静的経路情報から当該削除が依頼されたIPアドレスを削除する。続けて、削除が依頼されたIPアドレスの経路情報をルーティングテーブルから削除するようOS1020に依頼する。OS1020は、当該依頼に基づきルーティングテーブル1022を更新する。更新が完了すると一例の処理を終了する。
【0079】
<第2の実施形態>
第1の実施形態では、DNSキャッシュサーバ1030が各通信インタフェースに対応するDNSサーバ100、101の両方に名前解決の問い合わせを行う場合を例示した。しかしながら、ネットワークの物理的な分断を目的として通信インタフェースを使い分ける場合、一方のネットワークに他方のネットワークの情報を伝えることが望ましくない場合もある。即ち、各ネットワークに送信するデータを確実に分離したい場合、一方のネットワークに属するホスト名の情報が、他方のネットワークに漏洩すること自体が許容されないケースがある。
【0080】
第2の実施形態では、DNSキャッシュサーバ1030に、他のDNSサーバに再帰問い合わせを行う際の転送条件を登録できることに着目する。当該転送条件を活用して、DNSサーバの問い合わせ先のネットワークを定義し、当該転送条件に基づきいずれか1つのDNSサーバに問い合わせを行う仕組みを提供する。
【0081】
図10は、第2の実施形態において、操作部116上に表示される設定画面の一例である。
【0082】
画面610は、セカンダリネットワーク(サブネットワーク)として機能する通信I/F213に関する設定を受け付ける設定画面である。ユーザは、設定画面610を介して、eth2(通信I/F212)側のDNSサーバに名前解決を依頼すべきドメイン名を登録する設定を行うことができる。領域616は、登録されているドメイン名をユーザに提示するための表示アイテムである。ユーザは領域616に対するタッチ操作により、登録済みのドメイン名に対応する1つの行を選択することができる。
【0083】
新規登録キー614はeth2側のDNSサーバに名前解決を依頼すべきドメイン名を新たに登録する場合に使用する表示アイテムである。編集キー615は、領域616に対するタッチ操作により選択された、登録済みのドメイン名を編集する場合に使用する表示アイテムである。メッセージ617は、ユーザに機能を説明するための表示アイテムである。具体的にはネットワーク上のサーバのドメイン名を事前登録することで、eth2側のDNSサーバを用いた名前解決が可能となることをユーザに通知するメッセージが含まれる。更に、事前登録されていないドメインで管理されるホスト名の名前解決はeth1(プライマリネットワーク)側のDNSサーバに依頼される旨、警告するメッセージが含まれる。当該メッセージを表示することで、ユーザに対して当該機能が何のための機能であるのか、設定をしないと何が起きるのかを分かりやすく、直感的に理解させることができる。決定キー619は、画面を介してなされた設定を設定値DB1050に適用する場合に使用するキーである。戻るキーは画面を介してなされた設定を破棄し、設定を終了する場合に使用するキーである。
【0084】
新規登録キー614が選択されたことを検知した場合、設定制御部1040は、ドメイン名の入力を受け付けるテキストボックスを含む設定画面を表示する。ユーザは、当該テキストボックスにドメイン名の入力を行い、設定画面を介して当該ドメイン名を登録する操作を行う。当該登録する操作を検知したことに従って、設定制御部1040は、設定値DB1050に記憶される、eth2側のDNSサーバに名前解決を依頼すべきドメインの一覧を示すドメインリストを更新する。当該更新されたドメインリストは図11のフローチャートにおいて適宜参照される。当該ドメインリストはいずれのDNSサーバに問合せを行うべきか判定する転送条件の判定に用いられる。
【0085】
図11は、第2の実施形態におけるDNSキャッシュサーバ1030の制御を説明するフローチャートである。図11に示すフローチャートは第1の実施形態における図4のフローチャートに代えて実行される処理を示している。
【0086】
S510において、サーバ1030は、設定値DB1050を参照しドメインリストを取得する。続けて、名前解決の依頼に含まれるホスト名とドメインリストに基づき、依頼を行うべきDNSサーバを決定する。具体的には、サーバ1030は、ドメインリストに名前解決の依頼に対応するホスト名が登録されている場合、セカンダリネットワークとして機能する通信インタフェース側のDNSサーバに問合せを行うと決定する。一方、ドメインリストに名前解決の依頼に対応するホスト名が登録されていない場合、プライマリネットワークとして機能する通信インタフェース側のDNSサーバに問い合わせを行うと決定する。
【0087】
S511において、サーバ1030は、問合せ先して決定した単一のDNSサーバに対して名前解決を依頼し、名前解決処理を実行する。以降のS501~S504の処理は、第2の実施形態におけるS101~S104の処理と同様であるため、説明を省略する。また、静的経路の登録処理、削除処理についても第1の実施形態と同様であるため説明を省略する。
【0088】
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICやFPGA)によっても実現可能である。
【符号の説明】
【0089】
200 MFP
202 CPU
212 通信I/F
213 通信I/F
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11