(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】通信装置、通信装置の制御方法及びプログラム
(51)【国際特許分類】
H04L 61/00 20220101AFI20240401BHJP
【FI】
H04L61/00
(21)【出願番号】P 2019235096
(22)【出願日】2019-12-25
【審査請求日】2022-12-22
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】内川 慎一
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2019-036059(JP,A)
【文献】特開2016-170618(JP,A)
【文献】特開2005-142702(JP,A)
【文献】国際公開第2004/045164(WO,A1)
【文献】米国特許出願公開第2004/0095962(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 61/00
(57)【特許請求の範囲】
【請求項1】
複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置であって、
ドメイン名と、当該ドメイン
名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付ける受付手段と、
前記登録された対応関係に基づいて、ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置のホスト名の名前解決を転送すべきDNSサーバの対応関係を示す設定を生成する生成手段と、
DNSキャッシュサーバを起動する起動手段と、
を有し、
前記起動手段によって起動された前記DNSキャッシュサーバは、前記生成手段で生成された設定に基づき動作し、
前記通信装置が有するアプリケーションから名前解決を依頼されたDNSクライアントは、前記起動手段で起動したDNSキャッシュサーバに名前解決の依頼を送信し、
前記DNSキャッシュサーバは、受信した前記名前解決の依頼に含まれるホスト名に基づいて、名前解決を依頼する外部のDNSサーバを決定し、当該決定したDNSサーバに名前解決を依頼することを特徴とする通信装置。
【請求項2】
前記通信装置において、1つの通信インタフェースが有効化され、他の通信インタフェースが有効化されていない場合、前記起動手段は前記DNSキャッシュサーバを起動せず、
前記DNSクライアントは、前記有効化された通信インタフェースに対して設定されたDNSサーバに対して名前解決を依頼することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記DNSキャッシュサーバは、インターナルループバックで送信された名前解決の依頼を処理するよう構成され、前記通信装置の外部からの名前解決の依頼は処理しないよう構成されることを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
当該ドメイン名で特定される外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付けた場合に、当該ドメイン名を前記通信インタフェースに対応付けられたDNSサーバに当該ドメイン名を名前解決する依頼を送信し、名前解決が成功するか否かを判定する判定手段を更に有し、
前記判定手段による名前解決が失敗したことに従って、前記対応関係を登録するか否かユーザに問い合わせる表示アイテムを表示する表示制御手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の通信装置。
【請求項5】
前記受付手段は、第1の通信インタフェースに関する設定画面を介して、当該第1の通信インタフェースを介してネットワーク上の外部装置との通信に使用したいドメイン名の入力を受け付け、ドメイン名と、当該ドメイン
名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付けることを特徴とする請求項1乃至4のいずれか1項に記載の通信装置。
【請求項6】
前記設定画面には、更にファイルを選択する表示アイテムが表示され、前記受付手段は、更に前記表示アイテムを介してドメイン名を列挙したファイルを選択するユーザ操作を受け付け、当該選択されたファイルに列挙されているドメイン名と、当該ドメイン
名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付けることを特徴とする請求項5に記載の通信装置。
【請求項7】
原稿を読み取る読取手段を更に有することを特徴とする請求項1乃至6のいずれか1項に記載の通信装置。
【請求項8】
前記通信装置は、前記読取手段で原稿を読み取ることで得られた画像を外部装置に送信する送信アプリケーションを有しており、
前記送信アプリケーションで使用する送信宛先としてホスト名が指定され、前記原稿を読み取ることで得られた画像に基づくデータの送信を開始するユーザ操作を受け付けた場合、前記送信アプリケーションは前記DNSクライアントに対して、当該ホスト名の名前解決を依頼することを特徴とする請求項7に記載の通信装置。
【請求項9】
前記通信装置は、所定の種類のクラウドプリントサービスから印刷データを取得して印刷するクラウドプリントアプリケーションを有しており、
前記クラウドプリントアプリケーションが前記所定の種類のクラウドプリントサービスにジョブに関する問い合わせを行う場合に、前記クラウドプリントアプリケーションは前記DNSクライアントに対して、当該所定の種類のクラウドプリントサービスに対応するホスト名の名前解決を依頼することを特徴とする請求項1乃至8のいずれか1項に記載の通信装置。
【請求項10】
前記複数の
異なる通信インタフェースは、プライマリネットワークとして機能する通信インタフェースと、セカンダリネットワークとして機能する通信インタフェースが少なくとも含まれており、
前記所定の
種類のクラウドプリントサービスに関する動作設定として当該クラウドプリントサービスとの通信に用いる通信ネットワークを設定する設定手段と、
前記所定の種類のクラウドプリントサービスを使用する設定が有効に設定された場合であって、前記設定手段により当該クラウドプリントサービスとの通信に用いる通信ネットワークとして、セカンダリネットワークとして機能する通信インタフェースが設定された場合、前記生成手段は、前記所定の種類のクラウドプリントサービスに対応する1以上のドメイン名と、前記設定手段により設定されたセカンダリネットワークとして機能する通信インタフェースに対応するDNSサーバとの対応関係を示す設定を更に生成することを特徴とする請求項9に記載の通信装置。
【請求項11】
前記通信装置は、前記通信装置の稼働情報を外部サーバに送信する管理アプリケーションを有しており、
前記管理アプリケーションが前記外部サーバに稼働情報の送信を行う場合に、前記管理アプリケーションは前記DNSクライアントに対して、当該外部サーバに対応するホスト名の名前解決を依頼することを特徴とする請求項1乃至9のいずれか1項に記載の通信装置。
【請求項12】
前記複数の
異なる通信インタフェースには、プライマリネットワークとして機能する通信インタフェースと、サブネットワークとして機能する通信インタフェースが少なくとも含まれており、
前記管理アプリケーションの動作設定として稼働情報の送信に用いる通信ネットワークを設定する設定手段と、
前記管理アプリケーションを使用する設定がなされた場合であって、前記設定手段により前記稼働情報の送信に用いる通信ネットワークとして、セカンダリネットワークとして機能する通信インタフェースが設定された場合、前記生成手段は、前記外部サーバに対応する1以上のドメイン名と、前記設定手段により設定されたセカンダリネットワークとして機能する通信インタフェースに対応するDNSサーバとの対応関係を示す設定を更に生成することを特徴とする請求項11に記載の通信装置。
【請求項13】
前記DNSキャッシュサーバは、外部のDNSサーバによる名前解決が成功し、IPアドレスが取得できた場合、当該名前解決の結果をキャッシュすることを特徴とする請求項1乃至12のいずれか1項に記載の通信装置。
【請求項14】
複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置のコンピュータを、
ドメイン名と、当該ドメイン
名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付ける受付工程と、
前記登録された対応関係に基づいて、ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置のホスト名の名前解決を転送するDNSサーバの対応関係を示す設定を生成する生成工程と、
DNSキャッシュサーバを起動する起動工程と、
として機能させるためのプログラムであって、
前記起動工程で起動された前記DNSキャッシュサーバは、前記生成工程で生成された設定に基づき動作し、
前記通信装置が有するアプリケーションから名前解決を依頼されたDNSクライアントは、前記起動工程で起動した前記DNSキャッシュサーバに名前解決の依頼を送信し、
前記DNSキャッシュサーバは、受信した前記名前解決の依頼に含まれるドメイン名に基づいて、名前解決を依頼する外部のDNSサーバを決定し、当該決定したDNSサーバに名前解決を依頼することを特徴とするプログラム。
【請求項15】
複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置の制御方法であって、
ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付ける受付工程と、
前記登録された対応関係に基づいて、ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置のホスト名の名前解決を転送すべきDNSサーバの対応関係を示す設定を生成する生成工程と、
DNSキャッシュサーバを起動する起動工程と、
を有し、
前記起動工程で起動された前記DNSキャッシュサーバは、前記生成工程で生成された設定に基づき動作し、
前記通信装置が有するアプリケーションから名前解決を依頼されたDNSクライアントは、前記起動工程で起動した前記DNSキャッシュサーバに名前解決の依頼を送信し、
前記DNSキャッシュサーバは、受信した前記名前解決の依頼に含まれるドメイン名に基づいて、名前解決を依頼する外部のDNSサーバを決定し、当該決定したDNSサーバに名前解決を依頼することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部にデータを送信する通信装置に関するものである。
【背景技術】
【0002】
近年、ネットワークに求められるセキュリティや、機能性の複雑化に伴い、オフィスや商業施設などで複数のLAN(Local Area Network)を使い分ける構成が一般的になってきた。
【0003】
これらのネットワークは、各ネットワークが分離されており、それぞれ独立でドメイン名を管理したりする。このようなネットワーク環境下において使用されるMFPなどの通信装置に対しても、複数のネットワークに対応できることが求められてきている。
【0004】
特許文献1には、クライアント通信端末が複数のドメイン名管理が行われているネットワークに接続された環境において、ドメイン名の名前解決を効率的に行う方法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
まず、一般的なLANインタフェースにおける名前解決の実現方法の一例をLinux(登録商標)システムの制御を例に説明する。Linuxシステムにおいて、ドメイン名の名前解決を行う場合は所定のファイルにDNSサーバの記載を行ってDNSサーバを指定する。具体的には、「/etc/resolve.conf」に位置するファイルに対して、「nameserver “DNSサーバのIPアドレス“」といった記載を行うことで利用するDNSサーバを指定することができる。また、冗長化のため、DNSサーバを複数台指定することもできる。この場合「conf」ファイル内に同様の記載をDNSサーバの数だけ記載すればよい。
【0007】
しかしながら、ここで登録するDNSサーバは、登録されたDNSサーバから応答がない場合に代替で利用する冗長化のためのDNSサーバである。そのため、DNS名前解決を行った結果、該当する名前が見つからない場合(即ち、サーバへの通信は成功し、名前解決に失敗した場合)は、代替で利用するDNSサーバへの問い合わせは行わない。すなわち、Linuxシステムなどの一般的なDNSクライアントを利用する場合、それぞれのネットワークのDNS名前解決を実現することが困難であるという課題がある。
【0008】
また、特許文献1には、複数のネットワークインタフェースを備え、一方が広域網、他方が閉域網に接続されている通信装置が記載されている。また、特許文献1の通信装置は、ネットワークインタフェース毎に名前解決に使用するDNSサーバを管理する。通信装置は、広域網のDNSサーバに問い合わせを試行し、IPアドレスが取得できれば広域網であり、IPアドレスが取得できなければ閉域網であると判断し、判断結果をネットワークリストに記憶し、当該ネットワークリストを用いて名前解決を実現する。
【0009】
しかしながら、各ネットワークに送信するデータを確実に分離したい場合、特許文献1のように問い合わせを試行すること自体が許容されない場合がある。例えば、一方のネットワークが機密性の高いネットワークであり、当該ネットワークで管理されているドメイン名が他方のネットワーク上で傍受可能となること自体が許容されない場合がある。
【0010】
本発明は上述の問題点の少なくとも1つを鑑みなされたものである。本発明の1つの側面としては、通信装置をDNSキャッシュサーバとして機能させ、名前解決のDNSサーバを適切に切り替える仕組みを提供することを目的の1つとする。また、本発明の別の側面としては、DNSキャッシュサーバに、ドメイン名と問合せ先のDNSサーバの対応関係を登録し、当該DNSキャッシュサーバを活用して名前解決先のDNSサーバを異ならせる仕組みを提供することを目的の1つとする。
【課題を解決するための手段】
【0011】
上記の少なくとも1つの目的を達成するために本発明の通信端末は、複数の異なる通信インタフェースを介して外部にデータを送信可能な通信装置であって、ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置との通信に利用すべき通信インタフェースの対応関係の登録を受け付ける受付手段と、前記登録された対応関係に基づいて、ドメイン名と、当該ドメイン名に対応するドメインに属する外部装置のホスト名の名前解決を転送すべきDNSサーバの対応関係を示す設定を生成する生成手段と、DNSキャッシュサーバを起動する起動手段と、を有し、
前記起動手段によって起動された前記DNSキャッシュサーバは、前記生成手段で生成された設定に基づき動作し、前記通信装置が有するアプリケーションから名前解決を依頼されたDNSクライアントは、前記起動手段で起動したDNSキャッシュサーバに名前解決の依頼を送信し、前記DNSキャッシュサーバは、受信した前記名前解決の依頼に含まれるホスト名に基づいて、名前解決を依頼する外部のDNSサーバを決定し、当該決定したDNSサーバに名前解決を依頼することを特徴とする。
【発明の効果】
【0012】
本発明の1つの側面によれば、通信装置をDNSキャッシュサーバとして機能させることで、名前解決のDNSサーバを適切に切り替えることができるようになる。また、本発明の1つの側面によれば、DNSキャッシュサーバに、ドメイン名と問合せ先のDNSサーバの対応関係を登録し、当該DNSキャッシュサーバが当該対応関係を用いて名前解決先のDNSサーバを適切に切り替えることができるようになる。
【図面の簡単な説明】
【0013】
【
図2】MFP200のハードウェア構成の一例を示す図である。
【
図3】MFP200のソフトウェア構成の一例を示す図である。
【
図4】MFP200の制御の一例を示すフローチャートである。
【
図5】MFP200の制御の一例を示すフローチャートである。
【
図6】ネットワークに関する設定画面の一例を示す図である。
【
図7】設定値DBの設定と生成される設定ファイルの一例を説明する図である。
【
図8】第2の実施形態におけるMFP200のソフトウェア構成の一例を示す図である。
【
図9】第2の実施形態におけるMFP200の制御の一例を示すフローチャートである。
【
図10】第2の実施形態におけるネットワークに関する設定画面の一例を示す図である。
【
図11】第3の実施形態におけるネットワークに関する設定画面の一例を示す図である。
【
図12】第3の実施形態におけるMFP200の制御の一例を示すフローチャートである。
【
図14】第4の実施形態におけるMFP200の制御の一例を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではなく、また、実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【0015】
<第1の実施形態>
まず、
図1を用いて、本発明に係る通信システムの構成を説明する。本実施形態に係る通信システムには、MFP(Multi Function Peripheral)200、DNS(Domain Name System)サーバ100、デバイス120がネットワーク300を介して通信可能に接続されている。デバイス120には、DNSサーバ100で管理されるホスト名が割り振られている。また、MFP200と、DNSサーバ110、デバイス130がネットワーク310を介して通信可能に接続されている。デバイス130には、DNSサーバ110で管理されるホスト名が割り振られている。
【0016】
本実施形態では、ネットワーク300とネットワー310は、独立した異なるネットワークである場合を想定している。すなわち、DNSサーバ100にデバイス130のホスト名の解決を依頼しても、当該名前解決は行えない。逆に、DNSサーバ110にデバイス120のホスト名の解決を依頼しても当該名前解決は行えない。
【0017】
MFP200は、通信端末の一例である。本実施形態では、一例として印刷機能やスキャン機能を有するMFPを例示しているがこれに限定されず、IoTデバイスやパーソナルコンピューター、エッジサーバなどに適用することもできる。また、デバイス120やデバイス130は、例えばファイルサーバや、MFP200の情報を管理する情報管理サーバなどを想定している。しかしながらこれに限定されるものではなく、基幹業務システムのサーバやクラウドサーバなどであってもよい。
【0018】
MFP200は、デバイス120や130にスキャンして得られた画像に基づくデータを送信したり、MFP200が収集したデータを送信したりすることができる。データを送信する際に、MFP200は、デバイス120や130のホスト名を指定した宛先を用いて送信を行う。この際の名前解決の方法については、後述する。
【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等のハードウェアは、いわゆるコンピュータを構成している。
【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を介して外部装置に送信されたりする。
【0024】
操作パネルI/F210は、操作パネル211と制御部201とを接続する。操作パネル211には、タッチパネル機能を有する液晶表示部や各種ハードキーなどが備えられ、情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。CPU202は、操作パネル211と協働して情報の表示制御やユーザ操作の受け付け制御を行う。
【0025】
通信I/F212、213には、ネットワークケーブルが接続され、外部装置とネットワークを経由した通信を実行することができる。
【0026】
通信I/F212は、MFP200が備える第1の通信インタフェースであり、ネットワーク300に接続されている。通信I/F213は、MFP200が備える第2の通信インタフェースであり、ネットワーク310に接続されている。
【0027】
本実施形態では、通信I/F212、213がイーサネット(登録商標)に準拠する有線通信を行う通信インタフェースである場合を想定しているがこれに限定されるものではない。例えば、一方がIEEE802.11シリーズに準拠する無線通信インタフェースであってもよい。また、両方が無線通信インタフェースであってもよい。また、CDMA等の3G回線、LTEなどの4G回線、5Gなどの移動体通信を行う通信インタフェースであってもよい。
【0028】
FAX I/F214には、電話回線ケーブルが接続され、PTSN(Public Switched Telephone Network)に接続される。
【0029】
続けて、
図3を用いて、MFP200のソフトウェア構成について説明する。送信アプリケーション1010aはネットワーク300のデバイス120や、ネットワーク310のデバイス130と通信を行うアプリケーションである。例えば、通信アプリケーションは、WebDAVなどのHTTP(HyperText Transfer Protocol)ベースの通信でデバイスに対してデータを送信する送信アプリケーションである。送信アプリケーションは、スキャナ209で原稿を読み取って得られた画像に基づくファイルをユーザにより指定された送信宛先に送信することができる。送信宛先は図示省略の送信設定画面を介してユーザ操作により指定することができる。ユーザは、ファイルサーバのホスト名をFQDN(Fully Qualified Domain Name)の形式で入力することで宛先を指定する。第1の実施形態において、送信アプリケーションがどちらのインタフェースを使用するかはあらかじめユーザ操作などに基づき設定されているものとする。送信設定画面を介して送信宛先が設定された後に、送信を開始するキーの選択を受け付けたことに従って、送信アプリケーション1010aは原稿の読み取りをスキャナ209に依頼する。続けて送信アプリケーション1010aは、原稿を読み取って得られた画像に基づくデータをユーザにより指定された送信宛先に送信する。なお、本実施形態では送信プロトコルの一例としてWebDAV(Web-based Distributed Authoring and Versioning)を例示したがこれに限定されるものではない。例えば、FTP(File Transfer Protocol)やFTPS(FTP Over SSL/TLS)等の送信プロトコルを用いることもできる。
【0030】
クラウドプリントアプリケーション1010bは特定のクラウドプリントサービスと通信するアプリケーションである。アプリケーション1010bは、特定のクラウドプリントサービス(クラウドサーバ)に対してジョブの問い合わせを行ったり、URL形式で指定されるジョブデータをクラウドサーバやクラウドストレージからダウンロードして印刷を行ったりする。これらの通信にもホスト名やURL(Uniform Resourse Locater)で指定された宛先と通信を行うことになる。
【0031】
また、デバイス管理アプリケーション1010cはネットワーク上のデバイス管理サーバにデバイスステータスを送信するアプリケーションである。例えば、印刷装置の消耗材(インク、トナー、造形材、サポート材)などの消耗材のステータスや、利用実績、エラー情報などの稼働情報を管理サーバに送信する。これらの管理サーバとの通信にもホスト名で指定された宛先と通信を行うことになる。
【0032】
オペレーティングシステム1020はネットワーク通信を行うためのTCP/IPプロトコルスタックや、名前解決を行うためのOS標準DNSクライアント1021も含む。本実施形態では、DNSクライアント1021は、Linux(登録商標)システムにおける標準のDNSクライアントである場合を想定している。これらのクライアントを用いてドメイン名の名前解決を行う場合、「/etc/resolve.conf」に位置するファイルに対して、「nameserver “DNSサーバのIPアドレス“」といった記載を行ってDNSサーバを指定する。冗長化のため、利用するDNSサーバを複数指定することもできる。DNSクライアント1021は指定されたDNSサーバに対して名前解決を依頼する機能を備える。
【0033】
しかしながら、ここで登録するDNSサーバは、登録されたDNSサーバから応答がない場合に代替で利用する冗長化のためのDNSサーバである。そのため、DNS名前解決を行った結果、該当する名前が見つからない場合(通信は成功した場合)は、代替で利用するDNSサーバへの問い合わせは行わない。すなわち、LinuxシステムのDNSクライアントを利用する場合、それぞれのネットワークのDNS名前解決を実現すること困難であるという問題点がある。
【0034】
本実施形態では、上述の問題点の少なくとも1つを鑑み、DNSキャッシュサーバを起動し、当該キャッシュサーバを用いて名前解決を行う仕組みについて説明する。
【0035】
以下具体的な仕組みについて説明する。
【0036】
設定値DB1050には通信I/Fに関する設定を含むMFP200の動作設定が記憶される。通信I/Fに関する設定には、各通信インタフェースの有効/無効を示す設定や、DNSサーバのアドレスを自動取得するかどうかを示す設定を含む。また、後述するドメイン名リストも当該設定値DB1050に記憶される。
【0037】
ネットワーク設定制御部1040は、設定画面を操作パネル211に表示し、管理者等のユーザから各種ネットワーク設定の変更を受け付けて設定値DB1050に格納する機能を有する。また、制御部1040は、DNS設定制御部1040aを有する。DNS設定制御部1040aは、設定値DB1050の値を参照し、DNSキャッシュサーバ1030およびDNSクライアント1021の起動制御や動作設定制御を行う。
【0038】
なお、設定制御部1040は、図示省略のWebサーバ機能と協働して、ネットワーク設定を確認、変更するためのWebページを提供することもできる。この場合、管理者等のユーザは、PCなどのクライアントからMFP200が提供するWebページにアクセスし、ネットワーク設定の変更を行うことができる。
【0039】
ネットワーク設定の一例について
図6を用いて説明する。本実施形態では、通信I/F212と通信I/F213の両方が有効の場合を例に説明する。複数の通信インタフェースが有効な場合、いずれか一方がプライマリネットワークとして機能する。なお、本実施形態において、プライマリネットワークとして機能する通信インタフェースは、経路が分からないパケットを転送するデフォルトゲートウェイが設定される。その他のインタフェースは同一ネットワークに属する通信装置と通信を行ったり、当該インタフェースに対してスタティックルートが事前設定された通信装置と通信を行ったりするサブネットワークとして機能する。本実施形態では、デフォルトゲートウェイとして機能する通信インタフェースと、サブネットワークとして機能する通信インタフェースの差異はデフォルトゲートウェイが設定できるかどうかである。しかしながらこれに限定されるものではない。サブネットワークとして機能する通信インタフェースはよりプライマリネットワークとして機能するネットワークインタフェースと比較して機能が限定されていてもよい。例えば、一部プロトコルの使用を制限したりしてもよい。
【0040】
以降、説明のため、通信I/F212に対応する「ネットワーク1」がプライマリネットワークとして機能し、通信I/F213に対応する「ネットワーク2」がプライマリネットワークより優先順位が低いサブネットワークとして機能する場合を例に説明する。以降通信I/F212を単に「ネットワーク1」と呼び、通信I/F213を単に「ネットワーク2」とも呼ぶものとする。また、サブネットワークのことをセカンダリネットワークとも呼ぶ。
【0041】
ネットワークの設定について
図6を用いて説明する。
図6(A)、(B)は設定制御部1040が操作パネル211上に表示する設定画面の一例である。
図6(A)はプライマリネットワークとして機能する「ネットワーク1」の設定画面600を示しており、セカンダリネットワークとして機能する「ネットワーク2」の設定画面610を示している。
【0042】
ユーザは、画面600を介して、DNSサーバに関する設定とネットワークの名称(愛称)の設定を行うことができる。キー601、602は、DNSサーバのIPアドレスを自動取得するかどうかを設定するための表示アイテムである。キー601、602はいずれか一方が有効にセットされ、他方は無効にセットされる。本実施形態ではキー601が有効に設定されている場合を例示している。
【0043】
なお、本実施形態において、表示アイテムとは、ユーザ操作を受け付けるためのキー、ボタン、情報表示のためのラベル、表示領域、描画オブジェクトなどを含む表示オブジェクトの総称を意味する。以降、説明のため操作パネル211上に設定画面を表示する場合を例に説明するが、クライアント端末のWebブラウザから、MFP200が提供するWebページにアクセスすることで同様の設定を行うことができる。
【0044】
領域603は、ネットワーク1に割り当てられたDNSサーバの設定を表示する領域である。また領域603は、キー602が有効に設定され、DNSサーバのIPアドレスを自動取得する設定が無効に設定された場合に、当該領域はDNSサーバのIPアドレスを手動設定する領域として機能する。この場合、ユーザは操作パネル211に表示される図示省略のソフトウェアキーボードを介してIPアドレスを入力することで、DNSサーバを手動設定することができる。
【0045】
領域604は、ネットワークの名称を設定する領域である。管理者等のユーザは、当該領域に愛称を設定することで、設定画面やレポートプリントなどにおいて、複数のネットワークを容易に識別することが可能になる。ここでは、一例として「LAN1」が設定されている場合を例示している。なお、紙面の都合上省略しているが、その他の設定として、プロキシサーバの設定、DHCPサーバの設定、IPアドレスの設定なども行えるものとする。制御部1040は、決定キーが選択されたことを検知すると、設定画面を介してなされた設定値に基づき、設定値DB1050の設定値を変更する。
【0046】
図2の説明に戻り、DNSサーバ自動取得部1070はDNSサーバの自動取得が有効に設定された場合、ネットワークからDNSサーバの設定を取得する。自動取得部1070はDHCP(Dynamic Host Configuration Protocol)クライアントを含む。自動取得部107のDHCPクライアントは、ネットワーク上のDHCPサーバに対してDNSサーバのアドレスを要求するDHSPオプションを含む要求を送信して、DNSサーバのIPアドレスを取得する。なお、プロトコルスタックとしてIPv6を採用する場合、RS(Router Solicitation)、RA(Router Advertisement)のやり取りに基づきDNSサーバのIPアドレスを取得することもできる。
【0047】
図7は、設定値DBに記憶される設定値と、後述する制御で生成される設定ファイルの一例を説明する図である。
図7(A)は設定値DBに記憶される画面600で手動設定されたDNSサーバのIPアドレスや自動取得で取得されたDNSサーバのIPアドレスを例示している。
図7(B)は設定値DBに記憶される、画面610を介して手動設定されたDNSサーバのIPアドレスや自動取得で取得されたDNSサーバのIPアドレスを例示している。これらの設定値は、後述するフローチャートで示す各処理で適宜参照される。
【0048】
図2の説明に戻る。DNSキャッシュサーバ1030は、DNSクライアント1021から名前解決の問い合わせを受信し、そのホスト名、ドメイン名を管理するDNSサーバに代理で問い合わせを行い、その結果をDNSクライアント1021に応答するキャッシュサーバである。また、問い合わせ結果は一定期間キャッシュされる。サーバ1030は、一定期間内に同じホスト名の名前解決が依頼された場合、外部サーバへ新たに問い合わせを行わず、キャッシュした結果を返答する機能を有する。
【0049】
また、制御部1040は、1つの通信インタフェースのみが有効化されている場合や、1つの通信インタフェースのみをデータ送信に使用する場合、プライマリネットワークとして機能するネットワーク1に割り当てられたDNSサーバを問い合わせ先に指定する。即ち、
図7(A)に例示したIPアドレスを問い合わせ先に指定する。更に、制御部1040はハードウェアリソースやメモリリソースの浪費を抑制する目的でDNSキャッシュサーバ1030を起動しないように制御する。
【0050】
一方、ネットワーク設定制御部1040は、ネットワーク1とネットワーク2の両方が有効に設定され、両方の通信インタフェースをデータ送信に使用する場合、当該DNSキャッシュサーバ1030を起動するよう制御する。更に、制御部1040は、OS1020のDNSクライアント1021の問い合わせ先をDNSキャッシュサーバ1030に変更する。即ち、DNSクライアントの問い合わせ先をインターナルループバックのIPアドレスである127.0.0.1に設定する。この設定により、DNSキャッシュサーバ1030は、MFP200が備えるDNSクライアント以外のDNSクライアントからの名前解決の要求を無視又は破棄するよう動作する。
【0051】
サーバ1030の実装はBIND(https://www.isc.org/bind/)や、UNBOUND(https://www.nlnetlabs.nl/projects/unbound/about/)を用いることができる。本実施形態では一例としてDNSキャッシュサーバとしてUNBOUNDを採用する場合を例に説明する。
【0052】
また、本実施形態では、このDNSキャッシュサーバ1030が、他のDNSサーバに再帰問い合わせを行う際の転送条件を登録できることに着目する。当該転送条件を活用して、DNSサーバの問い合わせ先のネットワークを異ならせる。
【0053】
まず、ネットワーク2のDNSサーバに問い合わせを行いたいドメインを登録する方法について
図6(B)の画面610を用いて説明する。
【0054】
画面610は、サブネットワークとして機能するネットワーク2に関する設定を受け付ける設定画面である。表示アイテム611~613に示されるDNSサーバに関する設定は画面600と同様であるため省略する。画面610は、ネットワーク2上のDNSサーバのIPアドレスが自動取得され、ネットワーク2で使用するDNSサーバとして当該取得されたIPアドレスが設定されている場合を例示している。また領域618は、領域604と同様にネットワーク2の名称(愛称)を設定するための表示アイテムである。ここでは、「インターネット」といった名称が設定されている場合を例示している。
【0055】
更に、ユーザは、サブネットワークであるネットワーク2の設定画面610を介して、ネットワーク2のDNSサーバに名前解決を依頼すべきドメイン名を登録する設定を行うことができる。領域616は、登録されているドメイン名をユーザに提示するための表示アイテムである。ユーザは領域616に対するタッチ操作により、登録済みのドメイン名に対応する1つの行を選択することができる。
【0056】
新規登録キー614はネットワーク2のDNSサーバに名前解決を依頼すべきドメイン名を新たに登録する場合に使用する表示アイテムである。編集キー615は、領域616に対するタッチ操作により選択された、登録済みのドメイン名を編集する場合に使用する表示アイテムである。メッセージ617は、ユーザに機能を説明するための表示アイテムである。具体的にはネットワーク上のサーバのドメイン名を事前登録することで、ネットワーク2のDNSサーバを用いた名前解決が可能となることをユーザに通知するメッセージが含まれる。更に、事前登録されていないドメインで管理されるホスト名の名前解決はネットワーク1(LAN1)に依頼される旨、警告するメッセージが含まれる。当該メッセージを表示することで、ユーザに対して当該機能が何のための機能であるのか、設定をしないと何が起きるのかを分かりやすく、直感的に理解させることができる。決定キー619は、画面を介してなされた設定を設定値DB1050に適用する場合に使用するキーである。戻るキーは画面を介してなされた設定を破棄し、設定を終了する場合に使用するキーである。
【0057】
新規登録キー614が選択されたことを検知した場合、設定制御部1040は、ドメイン名の入力を受け付けるテキストボックスを含む設定画面を表示する。ユーザは、当該テキストボックスにドメイン名の入力を行い、設定画面を介して当該ドメイン名を登録する操作を行う。当該登録する操作を検知したことに従って、設定制御部1040は、設定値DB1050に記憶される、ネットワーク2のDNSサーバに名前解決を依頼すべきドメインの一覧を示すドメインリストを更新する。当該更新されたドメインリストは後述する設定処理のフローチャートにおいて適宜参照される。
【0058】
具体的な制御について
図4、
図5のフローチャートを用いて説明する。
図4、
図5のフローチャートに示す各動作(ステップ)は、CPU202がROM204またはストレージ205に記憶された各制御モジュールを実現するためのプログラムをRAM203に呼び出し、実行することにより実現される。なお、データの送受信処理などは、各通信I/Fと協働して実現されるものとする。また、処理の主体を明確にしたいケースにおいては、CPU202により実行されるソフトウェアモジュールを主語として説明する。
【0059】
図4のフローチャートは、電源OFF状態のMFP200を起動する操作を受け付け、MFP200が電源OFF状態から、スタンバイ状態に遷移する際に実行される起動処理を説明するフローチャートである。なお、起動処理においては、ネットワークに関する設定処理だけでなく、その他の起動処理(パネル211に表示する画面の準備や、各種ハードウェアの起動処理等)も並列又はシーケンシャルに行われるが、当該処理の説明は省略する。
【0060】
ステップS401において、設定制御部1040は、設定値DB1050から、DNSサーバの情報及び各通信I/Fの有効/無効を示す設定情報を取得する。DNSサーバの情報は、インタフェースごとのDNSサーバの設定や、サブネットワークに対応付けて記憶されたドメインリストを含む。
【0061】
S402において、設定制御部1040は、S401で取得した設定情報に基づき、複数のネットワークI/Fを使用する設定がなされているか否かを判断する。複数のネットワークI/Fを使用する設定がなされていると判断した場合、処理をS403に進める。複数のネットワークI/Fを使用する設定がなされていないと判断した場合、処理をS404に進める。具体的には、設定制御部1040は、ネットワーク1/ネットワーク2のいずれか一方のみを有効にする設定がなされている場合、複数のネットワークI/Fを使用する設定がなされていないと判断する。設定制御部1040は、ネットワーク1、ネットワーク2の両方を有効にする設定がなされている場合、複数のネットワークI/Fを使用する設定がなされていると判断する。
【0062】
続けて、S403において、設定制御部1040は、S401で取得したDNSサーバの設定に基づき、ネットワーク2のDNSサーバに名前解決を依頼すべきドメインが登録されているか否かを判断する。設定制御部1040は、ドメインリストに1以上のドメイン名が登録されている場合、ネットワーク2のDNSサーバに名前解決を依頼すべきドメインが登録されていると判断し、処理をS405に進める。一方、ドメインリストに1以上のドメイン名が登録されていない場合、ネットワーク2のDNSサーバに名前解決を依頼すべきドメインが登録されていないと判断し、処理をS404に進める。
【0063】
S404において、設定制御部1040は、DNSクライアント1021の問い合わせ先となるDNSサーバとしてプライマリネットワークに対応するDNSサーバのIPアドレスを登録する。例えば、OS1020がLinuxの場合、設定制御部1040は「/etc/resolve.conf」の設定ファイルを編集し、プライマリネットワークに対応するDNSサーバのIPアドレスを問い合わせ先とする設定に変更する。続けて、設定制御部1040は、OS1020にDNSクライアント1021を起動するよう依頼する。OS1020は、当該依頼に基づいて、DNSクライアント1021を起動する。起動したDNSクライアント1021は、設定ファイルを参照し、名前解決依頼の問い合わせ先となるDNSサーバを読み込む。S404の処理により、1つの通信インタフェースのみ使用する場合は、DNSキャッシュサーバを起動することなく、DNSクライアント1021に、有効な通信インタフェースが接続するネットワーク上のDNSサーバを適切に設定できるようになる。また、複数の通信インタフェースを使用する場合であっても、サブネットワーク用のドメインリストが登録されていない場合は、DNSキャッシュサーバを起動せずに、プライマリネットワーク用のDNSサーバをクライアントに適切に設定できるようになる。
【0064】
一方、S405において、設定制御部1040は、DNSキャッシュサーバが使用する問い合わせ設定ファイルを作成する。具体的な処理について
図5(A)を用いて説明する。
【0065】
ここでは、説明のため、ネットワーク1がプライマリネットワークとして機能する通信インタフェースであり、ネットワーク2がサブネットワークとして機能する通信インタフェースである場合を例に説明する。
【0066】
S501において、設定制御部1040は、ネットワーク2のDNSサーバ設定、及び、ドメインリストを取得する。取得が完了すると、CPU202は、ドメインリストへのアクセスに用いる参照情報をドメインリストの先頭に設定する。S502において、設定制御部1040はドメインリスト内に存在する1つのドメイン名を対象として読み出し、当該ドメイン名に属するホスト名の名前解決依頼をネットワーク2のDNSサーバに転送するルールを設定ファイルに追加する。
【0067】
S503において、設定制御部1040は、ドメインリストの末尾に到達したか否かを判断する。CPU202は、S502で行った読み出しの結果、ドメインリストの末尾に到達していると判断した場合、処理をS504に進める。一方、設定制御部1040は、ドメインリストの末尾に到達していない(即ち、ルールを追加する処理を行っていないドメイン名がリストにある)と判断した場合、S502で対象として読み出すべきリストを示す参照情報を更新し、処理をS502に進める。
【0068】
S504において、設定制御部1040は、プライマリネットワークとして機能するネットワーク1のDNSサーバ設定を取得する。
【0069】
S505において、設定制御部1040は、追加したルールに合致しないドメインの名前解決の依頼を、ネットワーク1のDNSサーバに転送するルールを追加し、DNSキャッシュサーバの設定ファイルを更新する。設定ファイルの更新が完了すると、処理をS406に進める。
【0070】
図7(C)は、
図5(A)のフローチャートで設定される設定ファイルの具体例を説明するための図である。
図7(C)は設定ファイルの一例である。
図7(A)、(B)は前述したように、各通信ネットワークに割り当てられたDNSサーバのIPアドレスを示している。
【0071】
図7では、DNSキャッシュサーバがUNBOUNDである場合を例に説明する。この場合、DNSキャッシュサーバの設定ファイル(forward-zone.conf)は
図7(C)のような設定ファイルとなる。
図7(C)の設定の定義について説明する。「forward-zone」は転送先を指定することを示す文字列である。UNBOUNDではforward-zoneのnameで指定されたドメインに属するホスト名の名前解決をクライアントから依頼された場合、forwad-addrで指定されたDNSサーバへ名前解決を転送する。
【0072】
また、forward-zoneのnameで”.”が指定されている設定は、既定のDNSサーバに対して名前解決を依頼するための設定である。UNBOUNDでは、自己解決できないドメインに属するホスト名の名前解決をクライアントから依頼された場合、「.」に対応付けられているforwad-addrで指定されたDNSサーバに対して名前解決を転送する。
【0073】
例えば、画面610で例示した「example.org」と「test.org」がネットワーク2のDNSサーバに問い合わせるべきドメイン名に指定されている場合、710に示す設定がS502~S503の処理によって生成される。710の設定は、画面610で設定されたドメインに属するホスト名の名前解決を
図7(B)に示すDNSサーバに転送するルールを示している。
【0074】
また、S505の処理により、特定のドメインに属さないホスト名の名前解決はプライマリネットワークであるネットワーク1のDNSサーバに転送する720の設定が生成される。
【0075】
図4の説明に戻り、S406において、設定制御部1040は、ループバックアドレスである127.0.0.1からの名前解決の依頼のみを許可する設定でDNSキャッシュサーバ1030を起動する。起動を指示されたDNSキャッシュサーバ1030は、
図5(A)の処理で生成された設定ファイルを参照して、名前解決の転送先を判断する経路テーブルをRAM203に展開する。即ち、DNSキャッシュサーバ1030は起動時に設定ファイルに基づき動作設定を行う。起動したDNSキャッシュサーバ1030は、当該動作設定に基づき問い合わせ先を異ならせる制御を行う。
【0076】
S407において、設定制御部1040は、OS1020が提供するDNSクライアント1021の問い合わせ先となるDNSサーバとしてDNSキャッシュサーバのIPアドレスを登録する。例えば、OS1020がLinuxの場合、設定制御部1040は「/etc/resolve.conf」の設定ファイルを編集し、名前解決の依頼先をDNSキャッシュサーバのIPアドレス(ループバックアドレス)設定に変更する。続けて、設定制御部1040は、OS1020にDNSクライアント1021を起動するよう依頼する。OS1020は、当該依頼に基づいて、DNSクライアント1021を起動する。起動したDNSクライアント1021は、変更された設定ファイルを参照し、名前解決依頼の問い合わせ先となるDNSサーバとして内部のDNSキャッシュサーバを使用すると決定する。
【0077】
S404、S407のいずれか一方の処理が実行され、DNSに関する設定処理が完了するとともに、並列又はシーケンシャルに実行するその他の起動処理も完了すると、CPU202は、一連の起動処理を完了する。起動処理が完了するとMFP200はスタンバイ状態となり、前述した印刷機能、スキャン機能、管理機能、クラウドプリント機能を利用できる状態に遷移する。
【0078】
続けて、
図5(B)を用いてDNSキャッシュサーバ1030による名前解決の制御を説明する。
【0079】
図5(B)に示すフローチャートは、各アプリケーションから名前解決の依頼を受けたOS1020のDNSクライアント1021がDNSキャッシュサーバ1030に名前解決を依頼する際に実行される。
【0080】
S510において、サーバ1030は、DNSクライアントから受信した名前解決依頼に対応するキャッシュがあるかどうかを判断する。キャッシュがある場合、処理をS515に進め、キャッシュがない場合、処理をS511に進める。
【0081】
S511において、サーバ1030は、受信した名前解決依頼に含まれるドメイン名が転送条件に合致するかどうかを判断する。サーバ1030は、RAM203に展開された名前解決の転送先を判断する経路テーブルに基づき特定のDNSサーバに転送すべき名前解決依頼であるかどうかを判断する。特定のDNSサーバに転送すべき名前解決依頼であると判断した場合、処置をS512に進め、特定のDNSサーバに転送すべき名前解決依頼でないと判断した場合、処理をS513に進める。具体的には、名前解決依頼のホスト名を構成する上位ドメインが
図7の710に例示したドメイン名と合致する場合、特定のDNSサーバに転送すべき名前解決依頼であると判断される。
【0082】
S512において、サーバ1030は、通信I/Fと協働して転送条件に対応するDNSサーバに名前解決を転送する。S513において、サーバ1030は、通信I/Fと協働して既定のDNSサーバ(即ち、プライマリネットワークとして機能する通信インタフェースに割り当てられたDNSサーバ)に名前解決を転送する。
【0083】
S514において、サーバ1030は、転送した名前解決の結果をDNSサーバから受信したか否かを判断する。結果を受信した場合、処理をS515に進め、受信していない場合、名前解決の結果を待つ。
【0084】
S515において、サーバ1030は、DNSクライアント1021に名前解決の結果を通知する。また、サーバ1030は、当該結果をキャッシュとして登録する。なお、S510でキャッシュがあると判断された場合は、キャッシュに基づき名前解決の結果が通知される。この場合、キャッシュは登録されない。当該結果を受信したDNSクライアント1021は、名前解決を依頼したアプリケーションに、名前解決の結果を通知する。アプリケーションは名前解決の結果得られたIPアドレスを用いて外部装置と通信を行う。
【0085】
以上説明した通り、本実施形態では、設定ファイルを利用して、DNSキャッシュサーバに、ドメイン名と問合せ先のDNSサーバの対応関係を登録する。その結果、当該DNSキャッシュサーバを活用して名前解決先のDNSサーバを異ならせることができるようになる。
【0086】
なお、本実施形態では、DNSキャッシュサーバ1030が名前解決の結果をキャッシュするよう構成したが、キャッシュを活用しないよう制御してもよい。この場合、DNSキャッシュサーバは、S510の処理と、S515のキャッシュ処理をスキップすればよい。
【0087】
また、本実施形態では、MFP200が有する通信インタフェースが2つの場合を例示したが、MFP200が、3つ以上の通信インタフェースを有していてもよい。この場合、1つの通信インタフェースのみがプライマリネットワークとして機能し、その他の通信インタフェースはサブネットワークとして機能する。この場合、MFP200は、サブネットワークとして機能する各通信インタフェースに対応付けて、
図6(B)で例示した名前解決と同様の設定を行う機能を提供する。更に、MFP200は、S501~S503の処理をサブネットワークとして機能する通信インタフェースの数だけ実行する。この処理により、3つ以上の通信インタフェースにおける名前解決を適切に行えるようになる。なお、プライマリネットワークとして機能する通信インタフェースは工場出荷時に決められていてもよいし、ユーザ操作によりいずれの通信インタフェースをプライマリネットワークとして機能させるかをMFP200の動作設定として設定させるようにしてもよい。
【0088】
<第2の実施形態>
第1の実施形態では、ネットワーク2のDNSサーバに名前解決すべきドメイン名を登録するユーザ操作を受け付け、ドメインリストを更新する方法について説明した。
【0089】
第2の実施形態では、第1の実施形態における処理に加えて、登録するユーザ操作を受け付けたタイミングで名前解決が行えるかどうかを確認する仕組みについて説明する。なお、第2の実施形態におけるハードウェア構成は第1の実施形態と同様であるため、説明を省略する。
【0090】
第2の実施形態におけるソフトウェア構成を
図8を用いて説明する。
図2との差異は、DNSチェックアプリケーション1010dを追加している点である。
【0091】
アプリケーション1010dは、指定したDNSサーバに対して、指定したドメイン名の名前解決を依頼するアプリケーションである。アプリケーション1010dは、例えば、名前解決を依頼したいDNSサーバ名をオプションとして指定したnslookupコマンドを用いて、OS1020にドメインの正引きを依頼する。OS1020は当該DNSサーバに名前解決を依頼する。
【0092】
次に、
図9、
図10を用いて具体的な制御について説明する。
図9のフローチャートに示す各動作(ステップ)は、CPU202がROM204またはストレージ205に記憶された各制御モジュールを実現するためのプログラムをRAM203に呼び出し、実行することにより実現される。なお、データの送受信処理などは、各通信I/Fと協働して実現されるものとする。また、処理の主体を明確にしたいケースにおいては、CPU202により実行されるソフトウェアモジュールを主語として説明する。
【0093】
図10は、第2の実施形態における設定画面の一例を示している。
図10(A)に例示する画面1080は、第1の実施形態の画面610を介して編集キー615又は新規登録キー614が選択された場合に表示される画面の一例である。
【0094】
テキストボックス1082はユーザがドメイン名を入力する場合に使用する表示アイテムである。設定制御部1040は、表示アイテム1082を選択する操作を検知すると、図示省略のソフトウェアキーボードを表示し、当該キーボードを介してドメイン名の入力を受け付ける。画面1080では、「hoge.example0.jp」といったドメイン名の入力を受け付けた場合を例示している。
【0095】
決定キー1083は、当該ドメイン名を登録する場合に使用するキーである。戻るキーは画面1080を介してなされた設定を破棄し、画面610に例示したネットワーク設定画面に戻る場合に使用するキーである。削除キー1084は編集画面に表示されるキーである。ユーザは削除キー1084を介して登録済みのドメインを削除することができる。なお、削除キー1084は新規登録画面には表示されない。
【0096】
設定制御部1040は、ドメイン名の入力を受け付けた後に、決定キー1083が選択されたことを検知すると、
図9のフローチャートに示す各処理を実行する。
【0097】
S901において、設定制御部1040は、アプリケーション1010dに画面1080を介して入力されたドメイン名と、名前解決を行うべきDNSサーバを示すIPアドレスをアプリケーション1010dに通知する。即ち、設定制御部1040は、アプリケーション1010dに名前解決を依頼する。DNSチェックアプリケーション1010dは、当該通知された情報に基づいて、OS1020にnslookupコマンドを用いた正引きを依頼する。OS1020は、DNSクライアント1021及び通信I/Fと協働して、オプションコマンドで指定されたDNSサーバに対して名前解決を依頼する。指定された名前解決の結果はアプリケーション1010dに通知される。
【0098】
S902において、設定制御部1040は、アプリケーション1010dから名前解決の結果を受信し、受信結果に基づきIPアドレスを取得できたか否かを判断する。ドメイン名に対応するIPアドレスを取得できた場合、処理をS903に進め、取得できなかった場合、処理をS904に進める。
【0099】
S903において、設定制御部1040は、DB1050が記憶するドメインリストに名前解決でIPアドレスが取得できたドメイン名を追加する。
【0100】
一方、S904において、設定制御部1040は、確認画面を表示する。
図10(B)の例示する画面1090は、確認画面の一例である。ポップアップ1091はユーザに情報を提示するポップアップに対応する表示アイテムを示している。ポップアップ1091には、名前解決に失敗したこと、及び、当該名前解決に失敗したドメイン名を本当に追加するかどうかをユーザに通知するメッセージが含まれている。追加キー1092は名前解決に失敗したドメイン名を追加する場合に使用するキーであり、キャンセルキー1093は、名前解決に失敗したドメイン名の追加をキャンセルする場合に使用するキーである。
【0101】
図9の説明に戻り、S905では、設定制御部1040は、追加キー1092の選択を受け付けたか否かを判断する。追加キーの選択を受け付けた場合は処理をS903に進め、追加キーの選択を受け付けていない場合は、処理をS906に進める。
【0102】
S906において、設定制御部1040は、キャンセルキー1093の選択を受け付けたか否かを判断する。キャンセルキーの選択を受け付けた場合は処理をS907に進め、キャンセルキーの選択を受け付けていない場合は、S905に戻り、ユーザによるキーの選択を待ち受ける。
【0103】
S907において、設定制御部1040は、操作パネル211上に表示する画面を新規入力画面又は編集画面に切り替える。当該画面は例えば画面1080のように登録しなかったドメイン名をプリセットした画面である場合を想定している。しかしながらこれに限定されるものではない。ドメイン名のテキストボックスを空欄としてもよい。更には、画面1080のドメイン名のテキストボックスの色を薄いピンクなどに変更するとともに、ドメイン名を修正することを促すメッセージなどを表示してもよい。
【0104】
以上説明した実施形態によれば、ドメイン名と問合せ先のDNSサーバの対応関係を登録する際に、ドメイン名の入力ミスなどに起因して、名前解決が行えない組み合わせが登録されることを抑制することができる。また、現時点ではネットワークに参加していないドメイン名をMFPに事前入力するケースなども鑑み、確認画面からユーザが追加を明示的に指示した場合は、当該名前解決を行えない組み合わせも登録を行える。従って、管理者等のユーザにより、入力ミスに基づく設定ミスを抑制しつつも、柔軟な事前登録処理を行えるようになる。
【0105】
<第3の実施形態>
サブネットワークのDNSサーバに問合せすべきドメイン名が多数ある場合、第1の実施形態で説明した1つのドメイン名を手作業で入力する事前登録処理だと手間がかかる。そこで、第3の実施形態では、第1の実施形態で説明した制御に加えて、ドメイン名を一括インポートする機能を提供する。
【0106】
図11に例示する画面1100は、第3の実施形態におけるサブネットワークとして機能する通信インタフェースに関する設定画面である。当該画面1100は、第1の実施形態における
図6(B)の画面610に代えて表示される。
【0107】
画面610との差異は、インポートキー1101が追加されている点である。ユーザはインポートキー1101を用いてドメイン名を列挙したファイル(例えば、CSV(Comma Separated Value)形式のファイル)を選択することができる。
【0108】
次に、
図12を用いて具体的な制御について説明する。
図12のフローチャートに示す各動作(ステップ)は、CPU202がROM204またはストレージ205に記憶された各制御モジュールを実現するためのプログラムをRAM203に呼び出し、実行することにより実現される。なお、データの送受信処理などは、各通信I/Fと協働して実現されるものとする。また、処理の主体を明確にしたいケースにおいては、CPU202により実行されるソフトウェアモジュールを主語として説明する。
【0109】
S1201において、設定制御部1040は、ドメイン名を列挙したファイルを選択するユーザ操作を受け付けたか否かを判断する。例えば、ユーザはPCを用いてドメイン名を列挙したCSVファイルを生成しておき、USBメモリに当該ファイルを格納する。続けてユーザはMFP200の図示省略のUSBポートに、当該ファイルを格納したUSBメモリを装着する。CPU202は、装着されたUSBメモリを外部ストレージとしてマウントする。続けて、設定制御部1040は、インポートキー1101が選択されたことを検知すると、マウントした外部ストレージからファイルを選択する選択画面を操作パネル211上に表示する。設定制御部1040は、当該選択画面を介してドメイン名を列挙したファイルが選択されると、選択するユーザ操作を受け付けたと判断する。ドメイン名を列挙したファイルを選択するユーザ操作を受け付けた場合、処理をS1202に進め、受け付けていない場合処理をS1203に進める。
【0110】
S1202において、設定制御部1040は、ドメイン名を列挙したファイルを参照し、設定値DB1050のドメインリストを更新する。一方、S1203において、設定制御部1040は、編集、新規登録の操作を受け付けたか否かを判断する。編集又は新規登録の操作を受け付けた場合、処理をS1204に進め、編集又は新規登録の操作を受け付けていない場合、設定画面を介したユーザ操作を待ち受ける。
【0111】
S1204において、設定制御部1040は、編集又は新規登録の操作に基づき設定値DB1050のドメインリストを更新する。S1202又はS1204のいずれか一方の処理が完了すると一連の処理を終了する。
【0112】
この処理により、ドメイン名の一括インポートが可能となり、管理者の利便性をより高めることができる。更新されたドメインリストは、
図5(A)に示すフローチャートを実行する際に参照され、設定ファイルの生成制御に用いられる。
【0113】
なお、本実施形態では、USBメモリ経由でドメイン名を列挙したファイルを取得する場合を例示したがこれに限定されるものではない。例えば、クライアント端末のWebブラウザに対して
図11に対応するWeb画面を提供する場合は、以下の制御を行うようにすることができる。具体的には、S1201の処理に代えて、クライアントからドメイン名を列挙したファイルを受信したか否かを判定するよう制御する。
【0114】
制御部1040は、
図11に対応するWebコンテンツとして、ファイルアップロードのためのフォーム部品を含むWebコンテンツを生成して、クライアントに当該生成したWebコンテンツを送信する。クライアント上では、当該フォーム部品を含むWebコンテンツに基づき、ファイルアップロードボタンを含むWeb画面が表示される。Webブラウザ上でファイルをアップロードするユーザ操作が行われると、クライアントのWebブラウザは、ファイルアップロードのHTTPリクエストをMFP200に対して送信する。設定制御部1040は、当該HTTPリクエストを受信した場合に、クライアントからドメイン名を列挙したファイルを受信したと判定する。続けて、S1202において、設定制御部1040は、受信したドメイン名を列挙したファイルを参照し、設定値DB1050のドメインリストを更新する。
【0115】
更に、本実施形態では、一例として第1の実施形態の処理に加えてインポート機能の処理を更に実行する場合を例示したがこれに限定されるものではない。例えば、第2の実施形態にインポート機能を追加してもよい。この場合S1203とS1204の間に
図9で説明したチェック処理を行うようにする。更に、MFP200は、ドメイン名を列挙したファイルに含まれる各ドメイン名に対して、
図9で説明したチェック処理を行い、チェック結果に応じて適宜ドメインリストに追加するか否かを切り替えるようにする。この処理により、一括インポートを行う場合においても、管理者等による入力ミスに起因して意図しないドメイン名が事前登録されることを抑制できるようになる。
【0116】
<第4の実施形態>
上述の実施形態では管理者等のユーザがドメイン名を入力する場合を例示した。第4の実施形態では、第1の実施形態の制御に加えて、管理者等のユーザがMFP200の機能と、通信に使用すべき通信インタフェースを明示的に対応付けている場合の制御を考える。
【0117】
図13は第4の実施形態を説明するための図であり、
図13(A)はMFP200が提供する機能と、通信に使用すべきインタフェースの対応関係を設定する設定画面の一例である。ユーザは、当該画面を介して各機能が外部と通信する際に使用すべき通信インタフェースを事前登録することができる。例えば、デバイス管理アプリケーション1010cと管理サーバとより提供される機器管理機能を有効にする場合、サブネットワークであるネットワーク2経由で管理サーバと通信したい場合がある。この場合、管理者等のユーザは機器情報管理機能が使用すべき通信インタフェースとしてネットワーク2(インターネット)を設定する。また、所定のクラウドプリント機能においても同様に、サブネットワークであるネットワーク2経由でクラウドプリントサーバと通信したい場合がある。この場合、管理者等のユーザは所定の種類のクラウドプリント機能(例えば、クラウドプリントA)が使用すべき通信インタフェースとしてネットワーク2(インターネット)を設定する。
図13(A)を介してなされた設定値は、機能別インタフェース設定として、設定値DB1050に格納される。
【0118】
また、
図13(A)に例示した各機能では、外部サーバやクラウドサーバに対するデータの送信やジョブの問い合わせ処理が発生する。
図13(B)は、設定値DB1050に記憶される各機能が通信する外部サーバのホスト名のリストを示している。例えば、機器情報管理機能では、「printer_mainenance.example3.jp」といったホスト名で識別されるサーバと通信を行うことが予め決められている。また、クラウドプリントAでは、「cloudprinterabc.example4.jp」といったホスト名で識別されるサーバと通信を行うことが予め決められている。また、クラウドプリントBでは、「cloudprinterdef.example5.jp」といったホスト名で識別されるサーバと通信を行うことが予め決められている。なお、本実施形態では、一例として1つの機能に1つのホスト名が対応付けられている場合を例示しているがこれに限定されるものではない。1つの機能が複数の外部装置と通信する場合は、1つの機能に複数のホスト名が対応付けられていてもよい。また、複数のホスト名で特定される各サーバは、異なるドメインに属していてもよい。
【0119】
このように、MFP200の提供する機能によっては、通信先のホスト名や当該ホスト名で特定される外部サーバが属するドメインが事前に決まっている。この際に外部サーバのホスト名の名前解決も機能ごとに指定された通信インタフェースが参加するネットワーク上のDNSサーバに依頼すると、事前登録の手間をより簡略化することができる。
【0120】
第4の実施形態では、
図13で例示した設定に基づき、ホスト名の名前解決に使用すべきDNSサーバを特定し、ドメイン名と問合せ先のDNSサーバの対応関係を自動的に登録する仕組みについて説明する。具体的な制御について
図14と
図13(C)を用いて説明する。
【0121】
図14のフローチャートに示す各動作(ステップ)は、CPU202がROM204またはストレージ205に記憶された各制御モジュールを実現するためのプログラムをRAM203に呼び出し、実行することにより実現される。なお、データの送受信処理などは、各通信I/Fと協働して実現されるものとする。また、処理の主体を明確にしたいケースにおいては、CPU202により実行されるソフトウェアモジュールを主語として説明する。
図14の処理は、
図5(A)のファイル生成処理に代えて実行されるフローチャートであり、
図5(A)との差異は、S1401の取得ステップの後に、追加ステップ(S1411)が新たに追加されている点である。
【0122】
S1401において、設定制御部1040は、ネットワーク2のDNSサーバ設定及び、ネットワーク2のDNSサーバに名前解決を依頼すべきドメインリストを取得する。
【0123】
続けて、S1411において、設定制御部1040は、機能別インタフェースの設定値を参照する。続けて、使用すべき通信インタフェースとして、ネットワーク2が指定されている機能を特定する。続けて、当該特定された機能に対応付けて記憶されているホスト名を設定値DB1050から取得する。当該ホスト名に対応するドメイン名を導出し、S1401で取得したドメインリストに追加する。例えば、
図13(A)の設定がなされている場合、
図13(B)のホスト名に基づき、ドメインリストに「example4.jp」及び「example3.jp」を追加する。設定制御部1040は、追加が完了すると処理をS1402に進める。S1402~S1405の処理は、第1の実施形態におけるS502~S505の処理と同様のドメインリストに基づく転送ルールの生成処理を行う。
図13(C)はS1401、S1411、S1402~S1405の処理に基づき生成される設定ファイルの一例である。
図7(B)で説明した設定ファイルの各記述と比較して、1330に示す設定が新たに追記されている。この設定がDNSキャッシュサーバ1030に読みこまれることで、適切なDNSサーバに名前解決依頼の転送を行えるようになる。
【0124】
なお、S1411において、下位のドメイン名を特定せず、FQDN形式のホスト名をドメインリストに登録するように構成してもよい。
【0125】
また、第4の実施形態では第1の実施形態に加えて設定に応じた自動登録を行う場合を例示したがこれに限定されるものではない。例えば、第3の実施形態のインポート機能を有するMFP200に、自動登録の制御を組みわせることもできる。また、第2の実施形態のチェック処理を第4の実施形態に組み合わせることもできる。この場合、設定制御部1040は、
図13の画面を介してネットワーク2に対応するチェックボックスを選択する操作を受け付けたことに応じて、第2の実施形態の
図9で説明したチェック処理を行えばよい。
【0126】
<変形例>
本実施形態では、起動時に設定ファイルを生成する場合を例示したが設定ファイルの生成のタイミングはこれに限定されるものではない。例えば、設定制御部1040は、前述した画面610、画面1100、画面1300等の画面を介して設定の変更を決定する操作を受け付けた場合に、設定ファイルを生成するようにしてもよい。この場合、設定制御部1040は、ネットワーク設定の変更中であることを示す画面を操作パネル211に表示するとともに、設定ファイルを生成する。生成が完了すると、OS1020と協働して、DNSクライアント及びDNSキャッシュサーバの再起動処理を行う。なお、再起動処理はMFP200全体を再起動する処理であってもよい。この変形例によれば、起動時に都度ファイルを生成する演算コストを低減することができ、MFP200の起動に係る時間を短くすることができる。
【0127】
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICやFPGA)によっても実現可能である。
【符号の説明】
【0128】
200 MFP
202 CPU
212 通信I/F
213 通信I/F