(57)【要約】【課題】近隣ノードのIPv6グローバルアドレスを容易に取得する。【解決手段】リンクローカルマルチキャストアドレス宛てに所定のパケットを送信し、予め定めた応答待ち時間が経過した時点で、近隣キャッシュからアドレス情報を取得し、リンクローカルアドレスのプレフィックスを、グローバルアドレスのプレフィックスに置き換えることにより各グローバルアドレス候補を作成し、それぞれリンク層アドレスと対応付けてアドレス候補格納手段に格納し、前記アドレス候補格納手段に格納された各グローバルアドレス候補宛に順次所定のパケットを送信し、前記応答待ち時間が経過した時点で近隣キャッシュからアドレス情報を取得し、前記アドレス候補格納手段に格納された情報の中で、前記アドレス情報におけるリンク層アドレスと一致するリンク層アドレスに対応するグローバルアドレス候補を前記通信装置のグローバルアドレスとして抽出する。  【選択図】図４
2008098760.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された１つ又は複数の通信装置が有するIPv6のグローバルアドレスを取得するためのアドレス取得装置であって、
リンクローカルマルチキャストアドレス宛てに所定のパケットを送信するパケット送信手段と、
前記所定のパケットを送信してから予め定めた応答待ち時間が経過した時点で、近隣キャッシュからリンク層アドレスとリンクローカルアドレスとを含む１つ又は複数のアドレス情報を取得するアドレス情報取得手段と、
前記アドレス情報取得手段で取得した各アドレス情報におけるリンクローカルアドレスのプレフィックスを、前記アドレス取得装置が保持するグローバルアドレスのプレフィックスに置き換えることにより各グローバルアドレス候補を作成し、それぞれリンク層アドレスと対応付けてアドレス候補格納手段に格納するアドレス候補作成手段と、
前記近隣キャッシュを初期化し、前記アドレス候補格納手段に格納された各グローバルアドレス候補宛に順次所定のパケットを送信する候補宛パケット送信手段と、
前記所定のパケットを全てのグローバルアドレス候補宛に送信してから前記応答待ち時間が経過した時点で近隣キャッシュからアドレス情報を取得し、前記アドレス候補格納手段に格納された情報の中から、前記アドレス情報におけるリンク層アドレスと一致するリンク層アドレスに対応するグローバルアドレス候補を前記通信装置のグローバルアドレスとして抽出するグローバルアドレス決定手段と
を備えたことを特徴とするアドレス取得装置。
【請求項２】
前記アドレス取得装置は、前記パケット送信手段を用いてリンクローカルマルチキャストアドレス宛てに所定のパケットを送信してから所定の時間が経過した時点で近隣キャッシュに蓄積されるアドレス情報の個数を、前記所定の時間を順次増加させながら繰り返し調べ、前記アドレス情報の個数が前記所定の時間の増加に伴って増加しなくなった時点での前記所定の時間を前記応答待ち時間として決定する応答待ち時間決定手段を更に備えることを特徴とする請求項１に記載のアドレス取得装置。
【請求項３】
前記グローバルアドレス決定手段は更に、前記リンク層アドレスに対応するベンダー名を取得し、当該ベンダー名を前記リンク層アドレスに対応するグローバルアドレスとともにノード情報格納手段に格納する請求項１に記載のアドレス取得装置。
【請求項４】
前記アドレス情報取得手段は、前記近隣キャッシュから取得する各アドレス情報にタイムスタンプを付与するタイムスタンプ付与手段を有し、
前記アドレス候補作成手段は、タイムスタンプを各グローバルアドレス候補に対応付けて前記アドレス候補格納手段に格納し、前記候補宛パケット送信手段は、タイムスタンプの値が大きい順番で各グローバルアドレス候補宛に前記所定のパケットを送信することを特徴とする請求項１ないし３のうちいずれか１項に記載のアドレス取得装置。
【請求項５】
ネットワークに接続された１つ又は複数の通信装置が有するIPv6のグローバルアドレスを取得するためのアドレス取得装置が実行するアドレス取得方法であって、
リンクローカルマルチキャストアドレス宛てに所定のパケットを送信するパケット送信ステップと、
前記所定のパケットを送信してから予め定めた応答待ち時間が経過した時点で、近隣キャッシュからリンク層アドレスとリンクローカルアドレスとを含む１つ又は複数のアドレス情報を取得するアドレス情報取得ステップと、
前記アドレス情報取得ステップで取得した各アドレス情報におけるリンクローカルアドレスのプレフィックスを、前記アドレス取得装置が保持するグローバルアドレスのプレフィックスに置き換えることにより各グローバルアドレス候補を作成し、それぞれリンク層アドレスと対応付けてアドレス候補格納手段に格納するアドレス候補作成ステップと、
前記近隣キャッシュを初期化し、前記アドレス候補格納手段に格納された各グローバルアドレス候補宛に順次所定のパケットを送信する候補宛パケット送信ステップと、
前記所定のパケットを全てのグローバルアドレス候補宛に送信してから前記応答待ち時間が経過した時点で近隣キャッシュからアドレス情報を取得し、前記アドレス候補格納手段に格納された情報の中で、前記アドレス情報におけるリンク層アドレスと一致するリンク層アドレスに対応するグローバルアドレス候補を前記通信装置のグローバルアドレスとして抽出するグローバルアドレス決定ステップと
を備えたことを特徴とするアドレス取得方法。
【請求項６】
コンピュータを、ネットワークに接続された１つ又は複数の通信装置が有するIPv6のグローバルアドレスを取得するためのアドレス取得装置として機能させるためのプログラムであって、コンピュータに、
リンクローカルマルチキャストアドレス宛てに所定のパケットを送信するパケット送信手順と、
前記所定のパケットを送信してから予め定めた応答待ち時間が経過した時点で、近隣キャッシュからリンク層アドレスとリンクローカルアドレスとを含む１つ又は複数のアドレス情報を取得するアドレス情報取得手順と、
前記アドレス情報取得手順で取得した各アドレス情報におけるリンクローカルアドレスのプレフィックスを、前記コンピュータが保持するグローバルアドレスのプレフィックスに置き換えることにより各グローバルアドレス候補を作成し、それぞれリンク層アドレスと対応付けてアドレス候補格納手段に格納するアドレス候補作成手順と、
前記近隣キャッシュを初期化し、前記アドレス候補格納手段に格納された各グローバルアドレス候補宛に順次所定のパケットを送信する候補宛パケット送信手順と、
前記所定のパケットを全てのグローバルアドレス候補宛に送信してから前記応答待ち時間が経過した時点で近隣キャッシュからアドレス情報を取得し、前記アドレス候補格納手段に格納された情報の中から、前記アドレス情報におけるリンク層アドレスと一致するリンク層アドレスに対応するグローバルアドレス候補を前記通信装置のグローバルアドレスとして抽出するグローバルアドレス決定手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、近隣ノードのIPv6アドレスを取得するための技術に関するものである。
【背景技術】
【０００２】
IPv4の後継であるIPv6を使用可能としたインターネット接続サービスが提供され始めている。ある装置からインターネットに接続されたIPv6アドレスを持つネットワーク機器へのアクセスを行う場合、アクセス先のネットワーク機器のIPv6アドレスを指定する。
【０００３】
また、DNS（Domain Name System）サーバにそのネットワーク機器のIPv6アドレスと任意に設定した名前とを登録しておくことにより、長いIPv6アドレスの代わりに名前を指定するだけでネットワーク機器へのアクセスを行うことも可能である。
【０００４】
なお、IPv6におけるアドレスには、世界で一意であり利用場所に制限のないグローバルアドレスと、特定の場所でのみ有効なサイトローカルアドレスやリンクローカルアドレスがあるが、どこからでもアクセス可能にする観点から、DNSサーバにはグローバルアドレスと名前とを対応付けて登録する。以下、特に断らない限り、IPv6アドレスはIPv6グローバルアドレスのことを指すものとする。
【０００５】
さて、上記のように、外部からネットワーク機器へのアクセスを行う場合や、ネットワーク機器のIPv6アドレスと名前とをDNSサーバに登録する場合には、利用者は当該ネットワーク機器のIPv6アドレスを知る必要がある。しかし、IPv6アドレスを用いるネットワーク機器では、簡易にIPv6による通信を行うことを可能とするために、ネットワーク機器がネットワークに接続されたときにIPv6アドレスを自動的に生成するため、ネットワーク機器のIPv6アドレスを外部の利用者が知ることは一般に困難である。
【０００６】
ネットワーク機器によっては設定されたIPv6アドレスを表示する機能を持つものがあり、そのようなネットワーク機器であれば容易にIPv6アドレスを知ることができる。しかし、IPv6アドレスを表示する機能を持つネットワーク機器は一般的なものではない。また、IPv4アドレスにアクセスすることによってIPv6アドレスを知る方法や、LLMNR（Linklocal Multicast Name resolution）プロトコル（非特許文献１参照）を用いる方法もあるが、これらの方法はネットワーク機器に特定のソフトウェアが実装されている場合だけ利用できる方法であり、また、ネットワーク機器の処理負荷が大きくなるため、ネットワーク機器のIPv6アドレスを取得するための有効な方法ではない。
【０００７】
更に、pingコマンドを用いて、対象のネットワーク機器と同一リンク内にある端末からリンクローカルマルチキャストアドレス（ff02::1）に向けてICMPv6 Echo Requestパケット（pingパケットとも呼ぶ）を送出し、戻ってきた情報を端末内のアプリケーションで解析することにより、対象ネットワーク機器のIPv6アドレスを取得することも考えられる。しかし、端末にファイアウォールが実装されている場合、ネットワーク機器から戻ってきたパケットがファイアウォールにより遮断されてしまい、ネットワーク機器のIPv6アドレスを取得することができなくなる。
【０００８】
この問題を図１を参照して説明する。図１に示す構成では、ファイアウォールを持つ端末ＷがIPv6アドレスを取得することを希望する装置であり、ネットワーク機器Ａ〜ＣがIPv6アドレスを取得する対象となる装置であるものとする。
【０００９】
まず、端末Ｗが、送信元を端末Ｗのリンクローカルアドレスaとし、宛先をリンクローカルマルチキャストアドレス（ff02::1）とした ICMPv6 Echo Requestパケット（pingパケットとも呼ぶ）を送出する（ステップ１）。このとき、端末Wは、ファイアウォールの機能により、送出した当該パケットの送信元リンクローカルアドレスがaであり、宛先リンクローカルアドレスがff02::1であることを記憶する。上記パケットはネットワーク機器Ａ〜Ｃに到達するが、例としてネットワーク機器Ｂについて説明する。
【００１０】
上記パケットがｂというリンクローカルアドレスを持つネットワーク機器Bに到達したものとする。ネットワーク機器Bは、ICMPv6 Echo Requestパケットに対する応答として、送信元リンクローカルアドレスとしてb、宛先アドレスとしてaを持つパケットを端末Ｗに返送する（ステップ２）。端末Ｗはこのパケットを受信するが、ファイアウォールは、記憶していない送信元からのアドレスｂが含まれているために、このパケットをアプリケーションに渡すことなく廃棄する（ステップ３）。このように、ファイアウォールを有する端末では、pingコマンドを用いてIPv6アドレスを取得する方法を用いることができない。
【非特許文献１】平成１８年１０月５日検索、インターネット  ＜URL: http://www.ietf.org/internet-drafts/draft-ietf-dnsext-mdns-46.txt＞
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記のように、ネットワーク機器のIPv6アドレスを取得する方法は幾つかあるが、汎用性のある有効な方法は従来存在しなかった。
【００１２】
本発明は上記の点に鑑みてなされたものであり、近隣ノードのIPv6グローバルアドレスを容易に取得することを可能とする汎用性のある技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題は、ネットワークに接続された１つ又は複数の通信装置が有するIPv6のグローバルアドレスを取得するためのアドレス取得装置であって、リンクローカルマルチキャストアドレス宛てに所定のパケットを送信するパケット送信手段と、前記所定のパケットを送信してから予め定めた応答待ち時間が経過した時点で、近隣キャッシュからリンク層アドレスとリンクローカルアドレスとを含む１つ又は複数のアドレス情報を取得するアドレス情報取得手段と、前記アドレス情報取得手段で取得した各アドレス情報におけるリンクローカルアドレスのプレフィックスを、前記アドレス取得装置が保持するグローバルアドレスのプレフィックスに置き換えることにより各グローバルアドレス候補を作成し、それぞれリンク層アドレスと対応付けてアドレス候補格納手段に格納するアドレス候補作成手段と、前記近隣キャッシュを初期化し、前記アドレス候補格納手段に格納された各グローバルアドレス候補宛に順次所定のパケットを送信する候補宛パケット送信手段と、前記所定のパケットを全てのグローバルアドレス候補宛に送信してから前記応答待ち時間が経過した時点で近隣キャッシュからアドレス情報を取得し、前記アドレス候補格納手段に格納された情報の中から、前記アドレス情報におけるリンク層アドレスと一致するリンク層アドレスに対応するグローバルアドレス候補を前記通信装置のグローバルアドレスとして抽出するグローバルアドレス決定手段とを備えたことを特徴とするアドレス取得装置により解決される。
【００１４】
前記アドレス取得装置は、前記パケット送信手段を用いてリンクローカルマルチキャストアドレス宛てに所定のパケットを送信してから所定の時間が経過した時点で近隣キャッシュに蓄積されるアドレス情報の個数を、前記所定の時間を順次増加させながら繰り返し調べ、前記アドレス情報の個数が前記所定の時間の増加に伴って増加しなくなった時点での前記所定の時間を前記応答待ち時間として決定する応答待ち時間決定手段を更に備えることとしてもよい。
【００１５】
前記グローバルアドレス決定手段は更に、前記リンク層アドレスに対応するベンダー名を取得し、当該ベンダー名を前記リンク層アドレスに対応するグローバルアドレスとともにノード情報格納手段に格納することとしてもよい。
【００１６】
また、前記アドレス情報取得手段は、前記近隣キャッシュから取得する各アドレス情報にタイムスタンプを付与するタイムスタンプ付与手段を有し、前記アドレス候補作成手段は、タイムスタンプを各グローバルアドレス候補に対応付けて前記アドレス候補格納手段に格納し、前記候補宛パケット送信手段は、タイムスタンプの値が大きい順番で各グローバルアドレス候補宛に前記所定のパケットを送信するようにしてもよい。
【発明の効果】
【００１７】
本発明によれば、近隣キャッシュに蓄積されるアドレス情報を利用するので、アドレス取得装置にファイアウォールが備えられてある場合でも、ネットワーク機器におけるIPv6グローバルアドレスを容易に取得することが可能となる。また、本発明によれば、ネットワーク機器に特別なソフトウェアを備えることなく、ネットワーク機器におけるIPv6グローバルアドレスを取得できる。
【００１８】
また、本発明によれば、所定のパケットを送信してから近隣キャッシュにアドレス情報が蓄積されるまでに待つべき最適な応答待ち時間を最初に決定し、その応答待ち時間を用いてIPv6グローバルアドレスを取得するための処理を行っているため、アドレス情報の取得漏れや近隣キャッシュの更新等を回避して確実に目的のアドレス情報を所得でき、これにより確実にIPv6グローバルアドレスを取得できる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施の形態について説明する。以下の説明では、リンク層のネットワークはイーサネット（登録商標）であるものとする。
【００２０】
＜第１の実施の形態＞
まず、第１の実施の形態について説明する。図２に本実施の形態におけるシステム構成を示す。図２に示すように、本実施の形態のシステムは、本発明に係るアドレス取得装置１０と、IPv6アドレスを取得する対象となる近隣ノードであるネットワーク機器１〜３とがLANにより接続された構成を有している。
【００２１】
IPv6による通信機能を備えた通信装置には、アドレス解決や到達確認等を行うプロトコル（NDP:Neighbour Discovery Protocol)が実装されており、その機能により一旦通信を行った相手のリンクローカルアドレスとMACアドレスを含む情報が近隣キャッシュに蓄積される。本実施の形態では、アドレス取得装置１０は、自身が保持する近隣キャッシュを利用することにより近隣ノードのIPv6アドレスを取得する。
【００２２】
より具体的には、アドレス取得装置１０がリンクローカルマルチキャストアドレス（ff02::1）に向けてICMPv6 Echo Requestパケットを送出し、それに応じて各ネットワーク機器からパケットが返送されることに起因して近隣キャッシュに蓄積されるアドレス情報に対して処理を施すことによりIPv6アドレスを取得する。以下、図３、図４を参照してアドレス取得装置１０の動作を詳細に説明する。
【００２３】
本実施の形態では、まず、ICMPv6 Echo Requestパケットを送信してから近隣キャッシュにアドレス情報が蓄積されるまでに待つべき最適な応答待ち時間を決定する（フェーズ１、図３）。その後、その応答待ち時間を用いて、IPv6アドレスを取得するための処理を行う（フェーズ２、図４）。
【００２４】
最初に、フェーズ１の応答待ち時間決定処理について図３を参照して説明する。アドレス取得装置１０は、近隣キャッシュのアドレス情報数の初期値Nと、応答時間の初期値Ｔを設定する（ステップ１１）。ここでは、Ｎ＝０、Ｔ＝Ｔ０と設定する。なお、Ｔ０は予め定めた０より大きな秒数である。そして、アドレス取得装置１０は近隣キャッシュを初期化する（ステップ１２）。
【００２５】
続いて、アドレス取得装置１０は、リンクローカルマルチキャストアドレス（ff02::1）宛てに ICMPv6 Echo Requestパケットを送出する（ステップ１３）。そして、Ｔ秒待ち（ステップ１４）、近隣キャッシュからアドレス情報を取得する（ステップ１５）。ここでのアドレス情報の数（つまりエントリの数）はｎであるものとする。アドレス取得装置１０はｎとNの比較を行い（ステップ１６）、ｎがＮよりも大きい場合は（ステップ１６のYes）ｎが増加していることを示すので、Ｔをｄｔだけ増やすとともにＮ＝ｎとして（ステップ１７）、ステップ１２〜１５の処理を再度実行する。なお、ｄｔは予め定めた０より大きな秒数である。
【００２６】
その後、ステップ１６においてｎ＞Ｎであればステップ１２〜ステップ１６の処理を繰り返す。ステップ１６においてｎ＞Ｎでなければ、ｎは前回のアドレス情報の取得時から増加していないことになるので、前回のＴの値であるＴ−ｄｔを、最適な応答待ち時間Ｔとし（ステップ１８）、IPv6アドレスの取得処理（フェーズ２）に移る。
【００２７】
なお、応答待ち時間が短かすぎる場合、ICMPv6 Echo Requestパケット送出に起因する近隣キャッシュのアドレス情報蓄積が終了する前に近隣キャッシュからアドレス情報を取得することになる可能性がある。逆に応答待ち時間が長すぎると、近隣キャッシュが更新されてしまう可能性があり、ICMPv6 Echo Requestの応答に起因するアドレス情報を取得できなくなる可能性がある。そこで、上記のフェーズ１の処理を行うことにより最適な応答待ち時間を求め、上記の問題の発生を防止している。
【００２８】
次に、IPv6アドレスの取得処理であるフェーズ２の処理について図４を参照して説明する。
【００２９】
まず、アドレス取得装置１０は、近隣キャッシュ、アドレス候補表、及びノード情報表を初期化する（ステップ２１）。そして、アドレス取得装置１０は、リンクローカルマルチキャストアドレス（ff02::1）に向けて ICMPv6 Echo Requestパケットを送出し（ステップ２２）、フェーズ１で設定した時間Ｔだけ待つ（ステップ２３）。
【００３０】
この時点で蓄積されている近隣キャッシュのアドレス情報の例を図５(a)に示す。図５(a)の例では、２つのアドレス情報（リンク層アドレスとしてのMACアドレスとリンクローカルアドレス）が近隣キャッシュに蓄積されている。
【００３１】
続いて、アドレス取得装置１０は、近隣キャッシュに蓄積されたアドレス情報を取得し、各リンクローカルアドレスのプレフィックス部分を、アドレス取得装置１０が保持するグローバルアドレスのプレフィックスに置き換えることによりグローバルアドレスの候補を求め、MACアドレス、リンクローカルアドレス及び当該グローバルアドレスの候補をアドレス候補表に記録する（ステップ２４）。近隣キャッシュが図５(a)に示すとおりの場合におけるアドレス候補表の例を図５(b)に示す。本実施の形態では、アドレス取得装置１０のグローバルアドレスのプレフィックスが2000:1111::/64であるものとし、リンクローカルアドレスの最初から６４ビットまでをこのプレフィックスに置き換えたものがグローバルアドレスの候補になっている。
【００３２】
さて、ネットワーク機器内が実際に保持するグローバルアドレスは、上記の方法で作成されたものと異なるものである可能性があるため、グローバルアドレス候補が本当にネットワーク機器が保持するグローバルアドレスであるかどうかを確かめるために次の処理を実行する。
【００３３】
アドレス取得装置１０は近隣キャッシュを初期化し（ステップ２５）、アドレス候補表に記載された各グローバルアドレスの候補を宛先として、順次にICMPv6 Echo Requestパケットを送信する（ステップ２６）。このグローバルアドレスが本当に存在するものであれば、このグローバルアドレスを持つICMPv6 Echo Requestパケットの宛先の装置はICMPv6 Echo Requestパケットに対する応答を返す。そしてこの応答に起因して、近隣キャッシュにアドレス情報が蓄積されることになる。
【００３４】
ステップ２６が終了した後、アドレス取得装置１０はT秒間待つ（ステップ２７）。そして、近隣キャッシュに蓄積されたアドレス情報を取り出し、アドレス候補表における各MACアドレスが、近隣キャッシュのアドレス情報におけるいずれかのMACアドレスと一致するかどうかのチェックを行う（ステップ２８）。
【００３５】
そして、アドレス取得装置１０は、近隣キャッシュのアドレス情報におけるいずれかのMACアドレスと一致するMACアドレスに対応するグローバルアドレス候補を、決定されたグローバルアドレスとして、MACアドレス及びリンクローカルアドレスとともにノード情報表に記録する。更に、アドレス取得装置１０は、決定したグローバルアドレスに対応するMACアドレスに基づき、アドレス取得装置１０が予め保持するベンダーコードDBを参照し、このMACアドレスに対応するベンダー情報を取得し、ベンダー情報をノード情報表に記録する。これによりノード情報表が作成される（ステップ２９）。ノード情報表の例を図５(c)に示す。アドレス取得装置１０は、このようにして作成されたノード情報表の情報を、アドレス取得装置１０に接続されている表示装置上に表示する（ステップ３０）。
【００３６】
なお、ノード情報表に複数のエントリが含まれる場合、各ネットワーク機器のベンダー名を識別することはできるが、特定のネットワーク機器を識別することはできない。そこで、予め対象となるネットワーク機器のMACアドレスを調べておき、MACアドレスとネットワーク機器名とを対応付けた表をアドレス取得装置１０に備え、その表を参照することによりMACアドレスからネットワーク機器名を識別し、そのネットワーク機器名をノード情報表に追加することとしてもよい。
【００３７】
上記の処理を実行するアドレス取得装置１０の機能構成例を図６に示す。図６に示すように、本実施の形態のアドレス取得装置１０は、LAN等のネットワークを介した通信を行うためのネットワーク通信部１１、図１で説明した動作を行うファイアウォール部１２、NDP等により実現される近隣探索部１３、IPv6アドレスを取得するためのアドレス取得部１４、近隣キャッシュ１５、各種の表を格納する表格納部１６を備えている。また、アドレス取得装置には、表示装置２０が接続されている。
【００３８】
アドレス取得装置１０の機能部のうち、ネットワーク通信部１１、ファイアウォール部１２、近隣探索部１３、及び近隣キャッシュ１５は従来技術により実現される機能部であり、アドレス取得部１４と表格納部１６が本発明に関する機能部である。
【００３９】
アドレス取得部１４は、パケット送信部１４１、近隣キャッシュ情報取得部１４２、アドレス候補表作成格納部１４３、ノード情報表作成格納部１４４、ノード情報表示部１４５、応答待ち時間決定部１４６、アドレス取得制御部１４７を備えている。
【００４０】
パケット送信部１４１は、図３、図４に示したステップ１３、２２、２６等において、ICMPv6 Echo Requestパケットを送信するための機能部である。近隣キャッシュ情報取得部１４２は、図３、４のステップ１５、２８等において、近隣キャッシュからアドレス情報を取得するための機能部である。アドレス候補表作成格納部１４３は、図４のステップ２４においてアドレス候補表を作成し、表格納部１６に格納する機能部である。ノード情報表作成格納部１４４は、図４のステップ３０において、ノード情報表を作成し、表格納部１６に格納する機能部である。ノード情報表示部１４５は、表格納部１６に格納されたノード情報表の情報を表示装置２０に表示するための機能部である。
【００４１】
また、応答待ち時間決定部１４６は、各機能部を制御して、図３に示した応答待ち時間決定処理を実行することにより、応答待ち時間Tを決定するための機能部である。また、アドレス取得制御部１４７は、各機能部を制御して、図４に示した処理の手順を実行するための機能部である。
【００４２】
アドレス取得装置１０は、CPU、記憶装置等を備えたコンピュータに、本発明に係るプログラムを搭載することにより実現できる。なお、近隣キャッシュ１５や表格納部１６は記憶装置を用いて実現されている。また、アドレス取得部１４の機能構成は、図６に示したものに限られず、図３、図４に示した処理を実行できる構成であればどのような構成でもよい。
【００４３】
＜第２の実施の形態＞
次に、本発明の第２の実施の形態について説明する。第２に実施の形態では、近隣キャッシュから取得するアドレス情報にタイムスタンプを付与し、タイムスタンプに基づきフェーズ２におけるICMPv6 Echo Requestパケットの送信の順番を決定する点が主に第１の実施の形態と異なる。
【００４４】
第２の実施の形態におけるアドレス取得装置１０の処理を図７、図８を参照して説明する。
【００４５】
まず、図７を参照してフェーズ１について説明する。本実施の形態では、応答待ち時間を決定するフェーズ１においてタイムスタンプ表を作成している。
【００４６】
図７において、まず、アドレス取得装置１０は、近隣キャッシュのアドレス情報数の初期値Nと、応答時間の初期値Tを設定する（ステップ３１）。ここでは、Ｎ＝０、Ｔ＝Ｔ０と設定する。なお、Ｔ０は予め定めた０より大きな秒数である。そして、アドレス取得装置１０は近隣キャッシュを初期化する（ステップ３２）。  
続いて、アドレス取得装置１０は、リンクローカルマルチキャストアドレス（ff02::1）宛てに ICMPv6 Echo Requestパケットを送出する（ステップ３３）。そして、アドレス取得装置１０はＴ秒待ち（ステップ３４）、近隣キャッシュからアドレス情報を取得する（ステップ３５）。このときに取得するアドレス情報の個数をｎとする。そして、このときに取得したアドレス情報にタイムスタンプとして例えば１を付与し、タイムスタンプが付与されたアドレス情報を含むタイムスタンプ表を作成し、記憶装置に格納する（ステップ３６）。
【００４７】
次に、アドレス取得装置１０はｎとNの比較を行い（ステップ３７）、ｎがＮよりも大きい場合は（ステップ３７のYes）、ｎが増加していることを示すので、Ｔをｄｔだけ増やすとともにＮ＝ｎとして（ステップ３８）、ステップ３２〜３５の処理を再度実行する。
【００４８】
再度実行したステップ３５で取得されたアドレス情報のうち、既にタイムスタンプ表に記録されているアドレス情報を除くアドレス情報にタイムスタンプ（例えば"２"）を付与し、当該タイムスタンプが付されたアドレス情報をタイムスタンプ表に追加する（ステップ３６）。
【００４９】
そして、ｎ＞Ｎを満たす限りステップ３８〜ステップ３７の処理を繰り返す。この間、ステップ３６において上記のようにタイムスタンプを１づつ増やしてアドレス情報をタイムスタンプ表に追加していく。
【００５０】
ステップ３７でｎ＞Ｎでなければ、ｎは前回のアドレス情報の取得時から増加していないことになるので、前回のＴの値であるＴ−ｄｔを、最適な応答時間Ｔとし（ステップ３９）、IPv6アドレスの取得処理に移る。この時点でのタイムスタンプ表の一例を図９（ａ）に示す。
【００５１】
次に、本実施の形態でのフェーズ２のIPv6アドレスの取得処理について図８を参照して説明する。第１の実施の形態では、フェーズ２でリンクローカルマルチキャストアドレス（ff02::1）宛てのICMPv6 Echo Requestパケット送出を行って、近隣キャッシュで得られたアドレス情報を用いてアドレス候補表を作成していたが、本実施の形態では、フェース２ではリンクローカルマルチキャストアドレス（ff02::1）宛てのICMPv6 Echo Requestパケット送出を行わず、フェース１で得られたタイムスタンプ表を用いてアドレス候補表を作成している。
【００５２】
まず、アドレス取得装置１０は、アドレス候補表、及びノード情報表を初期化する（ステップ４１）。そして、アドレス取得装置１０は、フェース１で得られたタイムスタンプ表内の情報を、タイムスタンプの大きい順にソートする（ステップ４２）。続いて、アドレス取得装置１０は、タイムスタンプ表に格納されたアドレス情報（MACアドレスとリンクローカルアドレス）を取得し、第１の実施の形態と同様にしてグローバルアドレスの候補を求め、MACアドレス、リンクローカルアドレス、タイムスタンプ及びグローバルアドレスの候補をアドレス候補表に記録することによりアドレス候補表を作成する（ステップ４３）。第２の実施の形態におけるアドレス候補表の例を図９(b)に示す。
【００５３】
続いて、アドレス取得装置１０は近隣キャッシュを初期化し（ステップ４４）、アドレス候補表において上に記載されたグローバルアドレス候補から順番に、それを宛先とするICMPv6 Echo Requestパケットを送信する（ステップ４５）。つまり、図９(b)において、タイムスタンプが３であるグローバルアドレス候補を宛先とするパケットを最初に送信し、次にタイムスタンプが２であるグローバルアドレス候補を宛先とするパケットを送信し、最後にタイムスタンプが１であるグローバルアドレス候補を宛先とするパケットを送信する。このように、応答に時間がかかると推定される宛先から最初にパケットを送信することにより、T秒内に全ての宛先の応答に関係するアドレス情報を確実に取得できる。
【００５４】
ステップ４５の処理が終了した後、アドレス取得装置１０はT秒間待つ（ステップ４６）。そして、近隣キャッシュに蓄積されたアドレス情報を取り出し、アドレス候補表におけるMACアドレスが、近隣キャッシュのアドレス情報におけるいずれかのMACアドレスと一致するかどうかのチェックを行う（ステップ４７）。
【００５５】
そして、アドレス取得装置１０は、アドレス情報におけるいずれかのMACアドレスと一致するMACアドレスに対応するグローバルアドレス候補を、決定されたグローバルアドレスとして、MACアドレス及びリンクローカルアドレスとともにノード情報表に記録する。更に、第１の実施の形態と同様にしてMACアドレスに対応するベンダー情報を取得し、ベンダー情報をノード情報表に記録する。これによりノード情報表が作成される（ステップ４８）。アドレス取得装置１０は、このようにして作成されたノード情報表の情報を表示装置上に表示する（ステップ４９）。アドレス取得装置１０の機能構成については図６に示したものと同様であるが、本実施の形態では、応答待ち時間決定部１４６は図７に示すようなタイムスタンプ表の作成を含む処理を行い、アドレス取得制御部１４７は図８に示すアドレス取得処理の制御を行う。
【００５６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【図面の簡単な説明】
【００５７】
【図１】従来技術の問題点を説明するための図である。
【図２】本発明の実施の形態におけるシステム構成を示す図である。
【図３】第１の実施の形態におけるフェーズ１の処理を示すフローチャートである。
【図４】第１の実施の形態におけるフェーズ２の処理を示すフローチャートである。
【図５】第１の実施の形態における各種表の例を示す図である。
【図６】アドレス取得装置１０の機能構成例を示す図である。
【図７】第２の実施の形態におけるフェーズ１の処理を示すフローチャートである。
【図８】第２の実施の形態におけるフェーズ２の処理を示すフローチャートである。
【図９】第２の実施の形態における各種表の例を示す図である。
【符号の説明】
【００５８】
１〜３  ネットワーク機器
１０  アドレス取得装置
１１  ネットワーク通信部
１２  ファイアウォール部
１３  近隣探索部
１４  アドレス取得部
１５  近隣キャッシュ
１６  表格納部
２０  表示装置
１４１  パケット送信部
１４２  近隣キャッシュ情報取得部
１４３  アドレス候補表作成格納部
１４４  ノード情報表作成格納部
１４５  ノード情報表示部
１４６  応答待ち時間決定部
１４７  アドレス取得制御部
【図１】
2008098760.tif 000003
【図２】
2008098760.tif 000004
【図３】
2008098760.tif 000005
【図４】
2008098760.tif 000006
【図５】
2008098760.tif 000007
【図６】
2008098760.tif 000008
【図７】
2008098760.tif 000009
【図８】
2008098760.tif 000010
【図９】
2008098760.tif 000011