JP4176794B2 - 通信に用いるアドレスを選択する装置、方法およびプログラム - Google Patents

通信に用いるアドレスを選択する装置、方法およびプログラム Download PDF

Info

Publication number
JP4176794B2
JP4176794B2 JP2006253386A JP2006253386A JP4176794B2 JP 4176794 B2 JP4176794 B2 JP 4176794B2 JP 2006253386 A JP2006253386 A JP 2006253386A JP 2006253386 A JP2006253386 A JP 2006253386A JP 4176794 B2 JP4176794 B2 JP 4176794B2
Authority
JP
Japan
Prior art keywords
address
ipv6
connection
ipv4
communication device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006253386A
Other languages
English (en)
Other versions
JP2008078814A (ja
Inventor
達哉 神明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006253386A priority Critical patent/JP4176794B2/ja
Priority to US11/773,492 priority patent/US7830911B2/en
Priority to CN2007101465627A priority patent/CN101150600B/zh
Publication of JP2008078814A publication Critical patent/JP2008078814A/ja
Application granted granted Critical
Publication of JP4176794B2 publication Critical patent/JP4176794B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

この発明は、プロトコル変換を必要とする宛先アドレスをそれ以外のアドレスと区別して通信に用いるアドレスを選択する装置、方法およびプログラムに関するものである。
従来から用いられているインターネットの通信プロトコルであるIPv4(Internet Protocol Version 4)では、通信に用いるアドレス(IPアドレス)は32ビットで定義されている。IPアドレスは各々の機器(ノード)を識別するための識別子として利用されているが、現在のように爆発的にインターネット接続する機器が増えると、IPアドレスの数が足りなくなるという問題が予想された。
これを解決するために、128ビットで定義されるIPv6アドレスを用いて通信を行うIPv6(Internet Protocol Version 6)が定められている。IPv6では単にアドレス空間が広がっただけでなく、IPヘッダの構成を単純化したことによりルータの負荷が低減され、また、IPアドレスを自動的に割り当てる仕組みなどが改良されている。
一方、IPv4からIPv6への移行はすぐに進むというわけでなく、徐々にIPv4アドレス体系からIPv6アドレス体系へ移行が進められている。具体的には、IPv6からIPv4への変換機能(トランスレータ)や、トンネリングという技術を用いて既存のIPv4ネットワークと接続しながらIPv6への移行が進行している。
また、IPv4アドレスのみを有する宛先通信装置に対するIPアドレスの問合せに対し、IPv4アドレスに所定のプレフィクスを付加してIPv6で通信可能とした拡張IPv6アドレスを返信するDNS(Domain Name Server)キャッシュサーバが開発されている。このようなDNSキャッシュサーバでは、IPv4アドレスおよびIPv6アドレスの双方が割当てられた宛先通信装置に対するアドレスの問合せの応答として、IPv4アドレスおよびIPv6アドレスだけでなく、拡張IPv6アドレスを返信することも可能である。
このようにDNSに対する問合せの結果として複数のIPアドレスが得られた場合、一般に広く用いられている通信装置の実装では、まず一方のアドレスに対する接続の確立を試みて、それが成功すればそのまま通信を継続する。もし接続に失敗すれば、別のIPアドレスに対して同様に接続確立を試みる。この手順は、接続確立が成功するまで繰り返される。
ただし、一般には、トランスレータを経由せずに通信できる場合にはそれを優先すること、すなわち、拡張IPv6アドレスを用いないことが望ましい。トランスレータを経由する場合には、トランスレータが不良になっただけで通信が成立しなくなるという問題や、IPセキュリティ機能を適用しにくいといった問題が存在するからである。
非特許文献1では、特定のプレフィクスに応じて宛先アドレスの優先度を指定するための枠組みが規定されている。この方法を用いて、拡張IPv6アドレスに用いられるプレフィクスに合致するアドレスの優先度を他のアドレスの優先度より下げることにより、上述の問題を解消することが可能となる。
さらに、非特許文献2では、DHCPv6(Dynamic Host Configuration Protocol Version 6)サーバを用いて、アドレスの優先度を自動配布する技術が提案されている。この方法を利用すれば、送信元の通信装置側で特に設定を行わずに所望の優先度を指定することが可能となる。
R. Draves et al.、 "RFC3484、Default Address Selection for Internet Protocol version 6 (IPv6)" [online]、 February 2003、 retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3484.txt> T. Fujisaki et al.、 "Distributing Default Address Selection Policy using DHCPv6" [online]、 June 9, 2005、 retrieved from the Internet: <URL: http://www.nttv6.net/dass/draft-fujisaki-dhc-addr-select-opt-00.txt>
しかしながら、非特許文献1および非特許文献2の方法では、送信元の通信装置の管理者の手作業による設定や、DHCPv6サーバなどの外部のノードを利用する必要があるという問題があった。例えば、非特許文献1の方法において、ポリシーテーブルに拡張IPv6アドレス用のプレフィクスに関するエントリを追加する必要があるが、このプレフィクスはトランスレータの設定によって異なるため、管理者が明示的に設定する必要がある。非特許文献2の方法ではDHCPv6を利用することで送信元通信装置において手作業による設定を不要にできるが、DHCPv6サーバを設定・管理する負荷が別途生ずる。
また、非特許文献2では、上述のようにDHCPv6サーバから優先度を自動配布する必要があるため、当該DHCPv6サーバで各アドレスの優先度等を管理するための処理負荷がかかる。
本発明は、上記に鑑みてなされたものであって、外部装置に依存せずに、自律的に最善の宛先アドレスを選択することができる装置、方法およびプログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、ネットワークを介して接続された外部通信装置に対してIPv6ネットワークで接続可能なIPv6接続用アドレスを取得する第1取得部と、前記外部通信装置に付与されたIPv4アドレスを取得する第2取得部と、取得した前記IPv6接続用アドレスのそれぞれについて、前記外部通信装置に対して接続するときに優先して用いる度合いを表す優先度を設定する設定部と、取得した前記IPv6接続用アドレスのそれぞれについて、前記IPv6接続用アドレスを構成する第1ビット列内に、取得した前記IPv4アドレスを構成する第2ビット列が含まれるか否かを判断し、前記第1ビット列内に前記第2ビット列が含まれる場合に、前記IPv6接続用アドレスは前記IPv4アドレスに予め定められたビットを付加してIPv6アドレスのアドレス長に拡張した拡張アドレスであると判断する判断部と、取得した前記IPv6接続用アドレスのうち、前記拡張アドレスであると判断された前記IPv6接続用アドレスの前記優先度を変更する変更部と、前記外部通信装置との接続を確立するときに、優先度の大きい前記IPv6接続用アドレスを優先して選択する選択部と、を備えたことを特徴とする。
また、本発明は、上記装置を実行することができる方法およびプログラムである。
本発明によれば、取得したアドレスを比較することによりアドレスの優先度を判断することができる。このため、管理者の手作業による設定や外部装置に依存せずに、自律的に最善の宛先アドレスを選択することができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
本実施の形態にかかる通信装置は、DNSキャッシュサーバから取得したIPv4アドレスとIPv6アドレスとを比較することにより、取得したIPv6アドレスが、IPv4アドレスにプレフィクスを付加した拡張IPv6アドレスか否かを判断し、拡張IPv6アドレスの優先度を変更した後、接続に用いるアドレスの選択を行うものである。
図1は、本実施の形態の通信装置100を含むネットワーク全体の構成を示す説明図である。同図に示すように、通信装置100はIPv6ネットワーク11に接続されており、IPv6ネットワーク11およびIPv4ネットワーク12の双方に接続されている外部通信装置である宛先ホスト200とIPv6で通信を行う。
このように、本実施の形態は、IPv4からIPv6への移行過程で想定されるように、IPv6からIPv4への変換機能や、トンネリング技術を用いてIPv6ネットワーク11と既存のIPv4ネットワーク12とが接続された状況を前提としている。
IPv6ネットワーク11内には、IPv6ネットワーク11とIPv4ネットワーク12との間でプロトコル変換を行うトランスレータ15と、宛先ホスト200が含まれるドメイン(foobar.example)のアドレスを管理するDNSのネームサーバ17と、通信装置100からのアドレスの問合せを処理するDNSキャッシュサーバ16とが含まれる。
宛先ホスト200は、IPv6ネットワーク11およびIPv4ネットワーク12の双方に接続されているため、IPv4アドレス「x.y.z.w」に加えて、IPv6アドレス「Q::H」が付与されており、それぞれに対応したDNSのA RR(Resource Record)およびAAAA RRがネームサーバ17に登録されている。
ここで、トランスレータ15の機能を説明するために、IPv4ネットワーク12のみに接続された宛先ホスト300と通信装置100との通信方法について説明する。図2は、IPv4ネットワーク12のみに接続された宛先ホスト300を含むネットワーク全体の構成を示す説明図である。
図2に示すように、通信装置100から、IPv4ネットワーク12に接続された宛先ホスト300のIPアドレスを、DNSを使って調べる場合を考える。ここではIPv6ネットワーク11とIPv4ネットワーク12はトランスレータ15を介して接続されているものとする。
通信装置100は、DNSキャッシュサーバ16に宛先ホスト300のFQDN(Fully Qualified Domain Name)である「www.foobar.example」のアドレスを問合せる。これは正引きと呼ばれ、FQDNからIPアドレスを調べるものである。
実際には通信装置100上で動作しているアプリケーションが、自装置のDNSリゾルバ宛にライブラリーコールを発行する。リゾルバはこの問合せを受けるとDNSキャッシュサーバ16へ問合せを送信し、「www.foobar.example」に対応するIPv6アドレス(DNSのリソースレコードであるAAAA RR)を要求する。
なお、ここではDNSキャッシュサーバ16はトランスレータ15とは異なる装置で動作しているものと仮定しているが、これらは同一の装置に組み込まれていてもよい。
DNSキャッシュサーバ16は、この問合せを通信装置100から受け取ると、その問合せドメイン名に基づいて、「foobar.example」ゾーンを管理しているネームサーバ317へAAAA RRを問合せる。ここでネームサーバ317は「foobar.example」ゾーンを管理することができれば設置場所は問わないが、通常宛先ホスト300に近接された場所に設置されることが多い。ここではIPv4ネットワーク12に接続されていると仮定する。
しかし、ネームサーバ317にはIPv4用のA RRしか登録されていないため、この要求は失敗し、DNSキャッシュサーバ16はAAAA RRを取得することができない。
次に、DNSキャッシュサーバ16は同じ名前(www.foobar.example)でIPv4アドレスのA RRをネームサーバ317へ問合わせる。この問合せは成功し、例えば「www.foobar.example」のIPv4アドレスとして「x.y.z.w」が回答として返信される。なお、ここでは「www.foobar.example」のIPv4アドレスは「x.y.z.w」であると仮定している。
ここで、DNSキャッシュサーバ16は、IPv4ネットワーク12への変換用に用いるIPv6 prefix(P)をあらかじめ知っており、通信装置100からの「www.foobar.example」の問合わせに対する回答として「P::x.y.z.w」というアドレスを持つAAAA RRを返す。この「P::x.y.z.w」は、IPv4アドレス「x.y.z.w」(32ビット整数)に対する拡張IPv6アドレスであり、下位32ビットにIPv4アドレスを埋め込み、上位92ビットをプレフィクスとして使っていることを示す記法である。
通信装置100は、この「P::x.y.z.w」に対して、IPv6からIPv4へのトランスレータ15を介して、「connect P::x.y.z.w」のような接続要求を送信する。
トランスレータ15は、この宛先アドレスの下位96ビット目からIPv4アドレス「x.y.z.w」を取り出し、IPv4を用いて宛先ホスト300への接続を確立する。トランスレータ15は、これが成功すると、IPv4およびIPv6による接続を関連づけて、通信装置100と宛先ホスト300との通信を可能とする。
通信装置100から、図1に示すようなIPv6ネットワーク11およびIPv4ネットワーク12の双方に接続された宛先ホスト200に接続する場合も、原則として図2と同様の方法により接続が確立される。
例えば、通信装置100が宛先ホスト200への通信を試みたとする。通信装置100はDNSキャッシュサーバ16に対して宛先ホスト200の名前である「www.foobar.example」に対するAAAA RRを要求する。DNSキャッシュサーバ16はネームサーバ17への問合せによって、IPv6アドレス「Q::H」に対応するAAAA RRを得る。
DNSキャッシュサーバ16は、この場合でも、同じ名前に対するA RRを問合せ、IPv4アドレス「x.y.z.w」に対応するA RRを得る。DNSキャッシュサーバ16は、このA RRから、IPv4アドレスに所定のプレフィクス(P)を付加した拡張IPv6アドレス「P::x.y.z.w」およびそれに対応するAAAA RRを生成し、「Q::H」に対応するAAAA RRと合わせて通信装置100に返答する。
このように、通信先のノードが持つDNS RRの種類に関わらず、変換用のAAAA RRを応答することにより、IPv6ネットワーク11の品質に問題がある場合でも、最大限の接続性を提供することが可能となる。
例えば、IPv6による宛先ホスト200への接続性が実際には不通となっていたため、通信装置100が最初に試みた「Q::H」への接続の確立が失敗したとしても、次に「P::x.y.z.w」への接続を試みることで、トランスレータ15経由で接続が成功する可能性があるからである。
実際に、このような状況は、IPv6への移行初期などのように、実験的な導入サイトで運用体制が不十分な場合や、トンネル技術などのオーバヘッドを伴うような接続性に依存している場合に発生する可能性がある。なお、実際に宛先ホスト200に付与されたIPv6アドレスおよび拡張IPv6アドレスは、ともにIPv6ネットワーク11による接続に用いることができるアドレスであるため、以下では、両者を合わせてIPv6接続用アドレスと呼ぶ。
次に、通信装置100の構成の詳細について説明する。図3は、本実施の形態にかかる通信装置100の構成を示すブロック図である。同図に示すように、通信装置100は、記憶部120と、送信部101と、第1取得部102と、第2取得部103と、設定部104と、判断部105と、変更部106と、選択部107と、を備えている。
記憶部120は、DNSキャッシュサーバ16から取得したIPv6アドレスおよびIPv4アドレスを格納するものであり、IPv6アドレスリスト121と、IPv4アドレスリスト122とを備えている。なお、記憶部120は、RAM(Random Access Memory)、HDD(Hard Disk Drive)、光ディスク、メモリカードなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
IPv6アドレスリスト121は、AAAA RRの問合せに対してDNSキャッシュサーバ16から返信されたIPv6接続用アドレスを格納するものである。図4は、IPv6アドレスリスト121のデータ構造の一例を示す説明図である。同図に示すように、IPv6アドレスリスト121は、IPv6接続用アドレスと、宛先ホスト200に接続するときに当該IPv4アドレスを優先して用いる度合いを表す優先度とを対応づけて格納している。
IPv4アドレスリスト122は、A RRの問合せに対してDNSキャッシュサーバ16から返信されたIPv4アドレスを格納するものである。図5は、IPv4アドレスリスト122のデータ構造の一例を示す説明図である。同図に示すように、IPv4アドレスリスト122は、IPv4アドレスと、優先度とを対応づけて格納している。
送信部101は、DNSキャッシュサーバ16に対して宛先ホスト200のAAAA RRまたはAA Rを問合せるアドレス問合せメッセージを送信するものである。
第1取得部102は、AAAA RRを問合わせるアドレス問合せメッセージに対してDNSキャッシュサーバ16から返信された応答メッセージを受信し、応答メッセージのAAAA RRからIPv6接続用アドレスを取得するものである。
第2取得部103は、A RRを問合わせるアドレス問合せメッセージに対してDNSキャッシュサーバ16から返信された応答メッセージを受信し、応答メッセージのA RRからIPv4アドレスを取得するものである。
図6は、DNSキャッシュサーバ16から返信される応答メッセージの一例を示す説明図である。同図に示すように、応答メッセージは通常のDNSで用いられるアドレス問い合わせメッセージに対する応答と同様の形式であり、DNSヘッダの次に返信されたアドレスの情報を含む回答リソースレコードが格納されている。また、回答リソースレコードの後には、応答したネームサーバがドメインの正式なネームサーバかを表すオーソリティや、追加情報が格納されている。
第1取得部102および第2取得部103は、同図に示すような応答メッセージの回答リソースレコードから、問い合わせた宛先ホスト200のアドレスを取得する。また、第1取得部102および第2取得部103は、取得したIPv6接続用アドレスおよびIPv4アドレスを、それぞれIPv6アドレスリスト121およびIPv4アドレスリスト122に保存する。
設定部104は、取得されたIPv6接続用アドレスおよびIPv4アドレスに対して優先度を設定するものである。設定部104は、各アドレスを取得した時点では、デフォルトで所定の優先度を割当てる。例えば、優先度を1〜10(1が最小の優先度、10が最大の優先度)の整数で表した場合、設定部104は、デフォルトで優先度5を各アドレスに割当ててIPv6アドレスリスト121およびIPv4アドレスリスト122に保存する。
判断部105は、取得されたIPv6接続用アドレスが、拡張IPv6アドレスであるか否かを判断するものである。拡張IPv6アドレスとは、IPv4アドレスをIPv6ネットワーク11環境で利用できるように所定のプリフィクスなどを付加してIPv6アドレスと同じビット長(128ビット)に拡張したアドレスをいう。
具体的には、判断部105は、IPv6接続用アドレスを構成するビット列内に、IPv4アドレスを構成するビット列が含まれる場合に、当該IPv6接続用アドレスは拡張IPv6アドレスであると判断する。通常、拡張IPv6アドレスは、IPv4アドレスにプリフィクス等が付加されて生成されるためである。
変更部106は、拡張IPv6アドレスの優先度を変更するものである。具体的には、変更部106は、拡張IPv6アドレスの優先度を、IPv6アドレスの優先度より小さくなるように優先度の値を変更する。例えば、変更部106は、拡張IPv6アドレスの優先度をデフォルトの5から4以下の値に変更する。これにより、トランスレータ15を経由した接続ではなく、宛先ホスト200との直接通信を優先して選択可能となる。
なお、トランスレータ15を経由した接続のほうが安定している場合などであれば、変更部106が拡張IPv6アドレスの優先度をIPv6アドレスの優先度より大きく設定するように構成してもよい。
選択部107は、宛先ホスト200との接続時に、利用するアドレスとしてより優先度の大きいアドレスを選択するものである。
次に、このように構成された本実施の形態にかかる通信装置100によるアドレス選択処理について説明する。図7は、本実施の形態におけるアドレス選択処理の全体の流れを示すフローチャートである。
以下では、図1に示すようなネットワーク環境で、通信装置100が宛先ホスト200への接続を確立するために、宛先ホスト200の端末名(www.foobar.example)に対するアドレスを解決し、その中から適切なアドレスを選択する処理を例に説明する。
まず、送信部101が、宛先ホスト200の端末名(www.foobar.example)に対するIPv6接続用アドレスを取得するために、DNSのAAAA RRのアドレス問合せメッセージをDNSキャッシュサーバ16に送信する(ステップS701)。
DNSキャッシュサーバ16は、この端末名に対応するネームサーバ17を通じて、宛先ホスト200のIPv6アドレス「Q::H」を含むAAAA RRを得る。DNSキャッシュサーバ16はさらに、同じ端末名のIPv4アドレスを得るためにA RRのアドレス問合せメッセージをネームサーバ17に送信し、IPv4アドレス「x.y.z.w」を含むA RRを得る。DNSキャッシュサーバ16は、A RRに含まれるIPv4アドレスに、所定のプレフィクスを付加した拡張IPv6アドレス「P::x.y.z.w」を得る。最後に、DNSキャッシュサーバ16は、これら2つのAAAA RRを含むDNSの応答メッセージを通信装置100に送信する。
次に、通信装置100の第1取得部102は、DNSキャッシュサーバ16から送信された応答メッセージを受信し、受信したメッセージからIPv6接続用アドレスを取得する(ステップS702)。
次に、送信部101は、宛先ホスト200の端末名(www.foobar.example)に対するIPv4アドレスを取得するために、A RRの問合せメッセージをDNSキャッシュサーバ16に送信する(ステップS703)。
DNSキャッシュサーバ16は、この端末名に対応するネームサーバ17を通じて、宛先ホスト200のIPv4アドレス「x.y.z.w」を含むA RRを得る。DNSキャッシュサーバ16は、このA RRを含む応答を通信装置100に送信する。
次に、通信装置100の第2取得部103は、DNSキャッシュサーバ16から送信された応答メッセージを受信し、受信したメッセージからIPv4アドレスを取得する(ステップS704)。
図1のような構成では、第1取得部102および第2取得部103により、2つのIPv6接続用アドレス「Q::H」および「P::x.y.z.w」と、1つのIPv4アドレス「x.y.z.w」が得られる。
次に、設定部104が、取得された各アドレスにデフォルトの優先度(5)と対応づけて記憶部120に保存する(ステップS705)。この例では、図4に示すようなIPv6アドレスリスト121と、図5に示すようなIPv4アドレスリスト122が記憶部120に保存される。
次に、これらの取得したアドレスを、接続確立を試みるべき順番にしたがって整列するアドレス整列処理が実行される(ステップS706)。アドレス整列処理の詳細については後述する。
アドレス整列処理の後、選択部107が、宛先ホスト200との接続確立に用いるアドレスとして、整列されたアドレスの中から優先度の最も大きいアドレスを選択する(ステップS707)。この後、このようにして選択されたアドレスを用いて、宛先ホスト200との接続が確立される。
次に、ステップS706のアドレス整列処理の詳細について説明する。図8は、アドレス整列処理の全体の流れを示すフローチャートである。
まず、判断部105は、IPv6アドレスリスト121からIPv6接続用アドレスを1つ取得する(ステップS801)。次に、判断部105は、IPv4アドレスリスト122からIPv4アドレスを1つ取得する(ステップS802)。
なお、この例では1つのIPv4アドレス(「x.y.z.w」)のみがIPv4アドレスリスト122に格納されているが、負荷分散などのため同一の端末名で複数のIPv4アドレスが付与されている場合があり、この場合は複数のIPv4アドレスがIPv4アドレスリスト122に格納される。したがって、このような場合は、判断部105は、IPv4アドレスリスト122内の複数のIPv4アドレスからいずれか1つを取得する。
次に、判断部105は、取得したIPv6接続用アドレスとIPv4アドレスとの対応関係を判定することにより、IPv6接続用アドレスが拡張IPv6アドレスであるか否かを判断するアドレス対応判定処理を実行する(ステップS803)。アドレス対応判定処理の詳細については後述する。
次に、判断部105は、アドレス対応判定処理の結果を参照してIPv6接続用アドレスとIPv4アドレスとは対応するか否かを判断する(ステップS804)。対応する場合は(ステップS804:YES)、変更部106が、当該IPv6接続用アドレスの優先度を下げる(ステップS805)。
優先度を下げたあと、または、ステップS804で、アドレスが対応しないと判断された場合は(ステップS804:NO)、判断部105は、すべてのIPv4アドレスを処理したか否かを判断する(ステップS806)。
すべてのIPv4アドレスを処理していない場合は(ステップS806:NO)、判断部105は、次のIPv4アドレスをIPv4アドレスリスト122から取得して処理を繰り返す(ステップS802)。すべてのIPv4アドレスを処理した場合は(ステップS806:YES)、判断部105は、すべてのIPv6接続用アドレスを処理したか否かを判断する(ステップS807)。
すべてのIPv6接続用アドレスを処理していない場合は(ステップS807:NO)、判断部105は、次のIPv6接続用アドレスをIPv6アドレスリスト121から取得して処理を繰り返す(ステップS801)。すべてのIPv6接続用アドレスを処理した場合は(ステップS807:YES)、変更部106は、IPv4アドレスの優先度を、IPv6接続用アドレスの優先度より下げる(ステップS808)。例えば、変更部106は、IPv4アドレスの優先度を1に設定する。これにより、IPv4アドレスよりIPv6接続用アドレスが優先して利用されるようになる。
このように、IPv6接続用アドレスとIPv4アドレスとの対応を判定し、IPv6接続用アドレスが拡張IPv6アドレスであると判断された場合に、拡張IPv6アドレスの優先度を下げることにより、拡張IPv6アドレス以外のIPv6アドレスを優先して利用するようにアドレスを整列することができる。
なお、上述の説明では、各アドレスに優先度を付与してアドレスを整列する例について説明したが、優先度を用いずに、拡張IPv6アドレスであると判断されたIPv6接続用アドレスのIPv6アドレスリスト121内での格納位置を変更することによりアドレスを整列するように構成してもよい。例えば、拡張IPv6アドレスであると判断されたIPv6接続用アドレスをリストの後方に移動し、接続時にはリストの先頭からアドレスを取得することにより、適切なアドレスを優先して選択することが可能となる。
次に、ステップS803のアドレス対応判定処理の詳細について説明する。図9は、アドレス対応判定処理の全体の流れを示すフローチャートである。
まず、判断部105は、カウンタiを1に初期化し(ステップS901)、IPv6接続用アドレスのiビット目以降の32ビットのビット列と、IPv4アドレスを構成する32ビットのビット列とを比較する(ステップS902)。
次に、判断部105は、両者が一致するか否かを判断し(ステップS903)、一致する場合は(ステップS903:YES)、アドレスが対応すると判定する(ステップS904)。一致しない場合は(ステップS903:NO)、判断部105は、カウンタiに1を加算し(ステップS905)、カウンタiの値が96を越えたか否かを判断する(ステップS906)。
カウンタiの値が96を越えていない場合は(ステップS906:NO)、次の32ビットを取得して処理を繰り返す(ステップS902)。カウンタiの値が96を越えた場合は(ステップS906:YES)、判断部105は、アドレスが対応していないと判定し(ステップS907)、アドレス対応判定処理を終了する。
なお、本実施の形態では、「x.y.z.w」のように表現される32ビットの整数は、128ビットのIPv6アドレス「Q::H」内のいずれの連続する32ビットにも現れないと仮定している。このような仮定は、「Q::H」が一般のグローバルIPv6アドレスであれば通常成り立つと考えてよい。仮にIPv6アドレス内の連続する32ビットとIPv4アドレスの32ビットが一致するとしてもその可能性は極めて低いと考えられ、また、誤判定により拡張IPv6アドレスが優先して用いられたとしても接続性に与える影響は小さい。
次に、本実施の形態における通信装置100によるアドレス選択処理の具体例について説明する。ここでは、上述の例と同様に、図1に示すようなネットワーク環境で、通信装置100が宛先ホスト200への接続を確立するために適切なアドレスを選択する処理を例に説明する。
この例では、2つのIPv6接続用アドレス「Q::H」および「P::x.y.z.w」と、1つのIPv4アドレス「x.y.z.w」が取得される(ステップS702、ステップS704)。判断部105は、すでに述べた仮定により、IPv6接続用アドレス「Q::H」とIPv4アドレス「x.y.z.w」には対応関係がないと判定する(ステップS907)。すなわち、「Q::H」はプロトコル変換用の拡張IPv6アドレスではないと判定する。また、「Q::H」の優先度は維持される(ステップS804:NO)。
一方、判断部105は、IPv6接続用アドレス「P::x.y.z.w」について、その96ビット目以降の32ビットがIPv4アドレス「x.y.z.w」と一致することから、2つのアドレスに対応関係があると判定する(ステップS904)。すなわち、「P::x.y.z.w」は、拡張IPv6アドレスであると判定する。また、変更部106は、「P::x.y.z.w」の優先度を下げる(ステップS805)。
また、変更部106は、IPv4アドレス「x.y.z.w」の優先度を2つのIPv6接続用アドレスよりも下げる(ステップS808)。ただし、IPv4アドレスの優先度自体は、本実施形態における効果には影響はない。すなわち、IPv4アドレス「x.y.z.w」が、2つのIPv6接続用アドレスに対してどのような優先度を与えられた場合にも、本実施形態の効果は成立する。
以上の結果により、選択部107は、IPv6アドレス「Q::H」、拡張IPv6アドレス「P::x.y.z.w」、およびIPv4アドレス「x.y.z.w」の順に接続用のアドレスを選択する。これにより、プロトコル変換によらずにIPv6のみによる直接の通信が可能な場合にはその方法で接続が確立される。ネットワークの不良等の理由によりIPv6による直接通信に失敗した場合には、変換用の拡張IPv6アドレス「P::x.y.z.w」が選択され、トランスレータ15を用いたプロトコル変換を利用して接続が確立される。
なお、上記実施の形態においては、IPv4アドレス「x.y.z.w」は、対応する拡張IPv6アドレス「P::x.y.z.w」の下位32ビット(96ビット以降の32ビット)と一致していたが、IPv6接続用アドレス中におけるIPv4アドレスの開始位置は96ビット目でなくても同様の効果が成立する。
また、上述の手順では、IPv6接続用アドレスを構成するビット列のうち、IPv4アドレスとの対応関係を有する可能性のあるすべてのビット列について判定していたが、判定効率を上げるために、特定のビットから開始するビット列にのみ限定して判定するように構成してもよい。例えば、通常の計算機における自然なビット境界である4、8、16、32、48、または64ビットの境界ごとに判定するために、カウンタiの増分をそれぞれ4、8、16、32、48、または64とするように構成してもよい。同様に、ある特定のビットの集合に対してのみ適用するように構成してもよい。
また、上記実施の形態においては、宛先ホスト200の端末名に対応するIPアドレスを得るためにDNSを用いているが、接続を確立する宛先ホスト200のIPアドレスを取得できるものであれば、他のあらゆる方法を適用することができる。
このように、本実施の形態にかかる通信装置では、DNSキャッシュサーバから取得したIPv4アドレスとIPv6アドレスとを比較することにより、取得したIPv6アドレスが拡張IPv6アドレスか否かを判断し、拡張IPv6アドレスの優先度を変更した後、接続に用いるアドレスの選択を行うことができる。すなわち、管理者が手作業で設定したり、外部装置に依存したりせずに、自律的に最善の宛先アドレスを選択することができる。
また、IPv6からIPv4へのプロトコル変換が利用できる環境で、与えられた宛先ホストがIPv6とIPv4の両方の接続性およびアドレスを持つ場合に、IPv6のみによる接続確立を優先した上で、次善の候補としてプロトコル変換を利用して接続を行うことが可能となる。その結果、IPv6ネットワークの品質に問題が生じうる場合でも、最大限の接続性を最善の順序で提供することが可能となる。また、この接続順序は、候補となるアドレスが得られた後はホスト内の動作のみによって決定され、外部のサーバ等の情報に依存していないため、外部サーバの運用に伴うコストが不要となる。
図10は、本実施の形態にかかる通信装置のハードウェア構成を示す説明図である。
本実施の形態にかかる通信装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
本実施の形態にかかる通信装置で実行されるアドレス選択プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態にかかる通信装置で実行されるアドレス選択プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる通信装置で実行されるアドレス選択プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、本実施の形態のアドレス選択プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施の形態にかかる通信装置で実行されるアドレス選択プログラムは、上述した各部(送信部、第1取得部、第2取得部、設定部、判断部、変更部、選択部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体からアドレス選択プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかる装置、方法およびプログラムは、IPv6ネットワークとIPv4ネットワークの双方に接続された外部通信装置と通信する通信装置に適している。
本実施の形態の通信装置を含むネットワーク全体の構成を示す説明図である。 IPv4ネットワークのみに接続された宛先ホストを含むネットワーク全体の構成を示す説明図である。 本実施の形態にかかる通信装置の構成を示すブロック図である。 IPv6アドレスリストのデータ構造の一例を示す説明図である。 IPv4アドレスリストのデータ構造の一例を示す説明図である。 DNSキャッシュサーバから返信される応答メッセージの一例を示す説明図である。 本実施の形態におけるアドレス選択処理の全体の流れを示すフローチャートである。 アドレス整列処理の全体の流れを示すフローチャートである。 アドレス対応判定処理の全体の流れを示すフローチャートである。 本実施の形態にかかる通信装置のハードウェア構成を示す説明図である。
符号の説明
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
11 IPv6ネットワーク
12 IPv4ネットワーク
15 トランスレータ
16 DNSキャッシュサーバ
17 ネームサーバ
100 通信装置
101 送信部
102 第1取得部
103 第2取得部
104 設定部
105 判断部
106 変更部
107 選択部
120 記憶部
121 IPv6アドレスリスト
122 IPv4アドレスリスト
200 宛先ホスト
300 宛先ホスト
317 ネームサーバ

Claims (7)

  1. ネットワークを介して接続された外部通信装置に対してIPv6ネットワークで接続可能なIPv6接続用アドレスを取得する第1取得部と、
    前記外部通信装置に付与されたIPv4アドレスを取得する第2取得部と、
    取得した前記IPv6接続用アドレスのそれぞれについて、前記外部通信装置に対して接続するときに優先して用いる度合いを表す優先度を設定する設定部と、
    取得した前記IPv6接続用アドレスのそれぞれについて、前記IPv6接続用アドレスを構成する第1ビット列内に、取得した前記IPv4アドレスを構成する第2ビット列が含まれるか否かを判断し、前記第1ビット列内に前記第2ビット列が含まれる場合に、前記IPv6接続用アドレスは前記IPv4アドレスに予め定められたビットを付加してIPv6アドレスのアドレス長に拡張した拡張アドレスであると判断する判断部と、
    取得した前記IPv6接続用アドレスのうち、前記拡張アドレスであると判断された前記IPv6接続用アドレスの前記優先度を変更する変更部と、
    前記外部通信装置との接続を確立するときに、優先度の大きい前記IPv6接続用アドレスを優先して選択する選択部と、
    を備えたことを特徴とする通信装置。
  2. 前記判断部は、取得した前記IPv6接続用アドレスを構成する任意の連続する32ビットと、取得した前記IPv4アドレスを構成する32ビットとが一致するか否かを判断し、一致する場合に、取得した前記IPv6接続用アドレスは前記拡張アドレスであると判断すること、
    を特徴とする請求項1に記載の通信装置。
  3. 前記判断部は、前記IPv6接続用アドレスの先頭ビットからのビット数が4、8、16、32、48、または64の倍数であるビットから連続する32ビットと、取得した前記IPv4アドレスを構成する32ビットとが一致するか否かを判断し、一致する場合に、取得した前記IPv6接続用アドレスは前記拡張アドレスであると判断すること、
    を特徴とする請求項1に記載の通信装置。
  4. 前記IPv6接続用アドレスは、前記拡張アドレスと前記IPv6アドレスの少なくともいずれかであり、
    前記判断部は、前記第1ビット列内に前記第2ビット列が含まれない場合に、前記IPv6接続用アドレスは、前記IPv6アドレスであると判断し、
    前記変更部は、前記拡張アドレスであると判断された前記IPv6接続用アドレスの前記優先度を、前記IPv6アドレスの前記優先度より小さくすること、
    を特徴とする請求項1に記載の通信装置。
  5. 前記外部通信装置の前記IPv6アドレス、または前記外部通信装置の前記IPv4アドレスを問合せるアドレス問合せメッセージを、ネットワークを介して接続されたDNSサーバに送信する送信部をさらに備え、
    前記第1取得部は、前記DNSサーバから送信された前記IPv6接続用アドレスを取得し、
    前記第2取得部は、前記DNSサーバから送信された前記IPv4アドレスを取得すること、
    を特徴とする請求項1に記載の通信装置。
  6. 第1取得部によって、ネットワークを介して接続された外部通信装置に対してIPv6ネットワークで接続可能なIPv6接続用アドレスを取得する第1取得ステップと、
    第2取得部によって、前記外部通信装置に付与されたIPv4アドレスを取得する第2取得ステップと、
    設定部によって、取得した前記IPv6接続用アドレスのそれぞれについて、前記外部通信装置に対して接続するときに優先して用いる度合いを表す優先度を設定する設定ステップと、
    判断部によって、取得した前記IPv6接続用アドレスのそれぞれについて、前記IPv6接続用アドレスを構成する第1ビット列内に、取得した前記IPv4アドレスを構成する第2ビット列が含まれるか否かを判断し、前記第1ビット列内に前記第2ビット列が含まれる場合に、前記IPv6接続用アドレスは前記IPv4アドレスに予め定められたビットを付加してIPv6アドレスのアドレス長に拡張した拡張アドレスであると判断する判断ステップと、
    変更部によって、取得した前記IPv6接続用アドレスのうち、前記拡張アドレスであると判断された前記IPv6接続用アドレスの前記優先度を変更する変更ステップと、
    選択部によって、前記外部通信装置との接続を確立するときに、優先度の大きい前記IPv6接続用アドレスを優先して選択する選択ステップと、
    を備えたことを特徴とするアドレス選択方法。
  7. ネットワークを介して接続された外部通信装置に対してIPv6ネットワークで接続可能なIPv6接続用アドレスを取得する第1取得手順と、
    前記外部通信装置に付与されたIPv4アドレスを取得する第2取得手順と、
    取得した前記IPv6接続用アドレスのそれぞれについて、前記外部通信装置に対して接続するときに優先して用いる度合いを表す優先度を設定する設定手順と、
    取得した前記IPv6接続用アドレスのそれぞれについて、前記IPv6接続用アドレスを構成する第1ビット列内に、取得した前記IPv4アドレスを構成する第2ビット列が含まれるか否かを判断し、前記第1ビット列内に前記第2ビット列が含まれる場合に、前記IPv6接続用アドレスは前記IPv4アドレスに予め定められたビットを付加してIPv6アドレスのアドレス長に拡張した拡張アドレスであると判断する判断手順と、
    取得した前記IPv6接続用アドレスのうち、前記拡張アドレスであると判断された前記IPv6接続用アドレスの前記優先度を変更する変更手順と、
    前記外部通信装置との接続を確立するときに、優先度の大きい前記IPv6接続用アドレスを優先して選択する選択手順と、
    をコンピュータに実行させるアドレス選択プログラム。
JP2006253386A 2006-09-19 2006-09-19 通信に用いるアドレスを選択する装置、方法およびプログラム Expired - Fee Related JP4176794B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006253386A JP4176794B2 (ja) 2006-09-19 2006-09-19 通信に用いるアドレスを選択する装置、方法およびプログラム
US11/773,492 US7830911B2 (en) 2006-09-19 2007-07-05 Apparatus, method and computer program product for selecting address used in communication
CN2007101465627A CN101150600B (zh) 2006-09-19 2007-08-21 选择通信中使用的地址的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006253386A JP4176794B2 (ja) 2006-09-19 2006-09-19 通信に用いるアドレスを選択する装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2008078814A JP2008078814A (ja) 2008-04-03
JP4176794B2 true JP4176794B2 (ja) 2008-11-05

Family

ID=39188513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006253386A Expired - Fee Related JP4176794B2 (ja) 2006-09-19 2006-09-19 通信に用いるアドレスを選択する装置、方法およびプログラム

Country Status (3)

Country Link
US (1) US7830911B2 (ja)
JP (1) JP4176794B2 (ja)
CN (1) CN101150600B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905376B2 (ja) * 2008-01-31 2012-03-28 横河電機株式会社 複数のネットワークプロトコルに対応した通信システムおよび通信方法
KR101548959B1 (ko) * 2008-06-04 2015-09-01 삼성전자주식회사 패킷 통신 시스템에서 네트워크 주소 설정을 위한 장치 및방법
US8156249B2 (en) * 2009-02-20 2012-04-10 Microsoft Corporation Using server type to obtain network address
EP2465247B1 (en) * 2009-08-14 2019-08-14 Akamai Technologies, Inc. Method for correlating nameserver ipv6 and ipv4 addresses
CN101997934A (zh) * 2009-08-21 2011-03-30 中国移动通信集团公司 地址获取的方法和系统以及移动终端及其应用方法
JP5638063B2 (ja) * 2010-03-23 2014-12-10 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
CN102859972A (zh) * 2010-04-26 2013-01-02 诺基亚公司 用于合成地址检测的方法和装置
US8811393B2 (en) * 2010-10-04 2014-08-19 Cisco Technology, Inc. IP address version interworking in communication networks
EP2649766A4 (en) * 2010-12-11 2014-06-04 Hewlett Packard Development Co SEARCH FOR COMPUTER NETWORK N UDS
CN102625469A (zh) * 2011-11-01 2012-08-01 北京小米科技有限责任公司 一种移动终端接入移动互联网的方法
US9135092B2 (en) 2012-02-02 2015-09-15 International Business Machines Corporation Multicast message filtering in virtual environments
US9531704B2 (en) 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US11095608B2 (en) * 2019-04-30 2021-08-17 Citrix Systems, Inc. Cross protocol association for internet addresses for metadata association systems and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1453989A (zh) * 2002-04-23 2003-11-05 欧特斯科技股份有限公司 Ip网络上的直译装置
US7277453B2 (en) * 2003-05-30 2007-10-02 Motorola, Inc. Inter private network communications between IPv4 hosts using IPv6
CN100525295C (zh) * 2004-04-21 2009-08-05 华为技术有限公司 一种IPv4网络与IPv6网络通信的实现方法
CN1842051A (zh) * 2005-03-30 2006-10-04 国际商业机器公司 流量均衡设备和方法以及使用它们的网络转发设备和方法

Also Published As

Publication number Publication date
CN101150600B (zh) 2012-04-18
US7830911B2 (en) 2010-11-09
JP2008078814A (ja) 2008-04-03
CN101150600A (zh) 2008-03-26
US20080069137A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
JP4176794B2 (ja) 通信に用いるアドレスを選択する装置、方法およびプログラム
US9935921B2 (en) Correlating nameserver IPv6 and IPv4 addresses
US10027623B2 (en) Internet protocol address resolution
US6424992B2 (en) Affinity-based router and routing method
CN103141074B (zh) 名称数据库服务器、名称解析系统、条目搜索方法
US8489726B2 (en) Distributed network construction method, system and task processing method
US8769057B1 (en) Employing a hierarchy of servers to resolve fractional IP addresses
US7594031B2 (en) Network address selection
US20100023593A1 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
JP2005505830A (ja) 中央ディレクトリサーバ
JP5100414B2 (ja) ネットワークデバイス管理装置及びその制御方法、ネットワークシステム、並びにプログラム
KR20060009676A (ko) 자동으로 터널을 설정하는 방법 및 장치
JP3919781B2 (ja) ワイヤレス・クライアント用のipアドレスならびに名前マッビングを管理するための方法および装置
JP2008502227A (ja) ドメインに左右されるプレフィックス割当て方法および装置
US20040153502A1 (en) Enhanced DNS server
JP6605149B2 (ja) 共有端末の検出方法及びその装置
JP2010193015A (ja) 通信装置およびその通信方法
JP3864397B2 (ja) ユーザエッジルータ、ゲートウェイルータ、マルチホーミング通信システム、マルチホーミング通信方法およびマルチホーミング通信プログラム
JP3896361B2 (ja) 通信経路設定装置、通信経路設定方法および通信経路設定プログラム
JP5347383B2 (ja) ネットワークアドレス変換制御プログラム、ネットワークアドレス変換制御装置、及びネットワークアドレス変換装置制御方法
JP5054666B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
US20060209833A1 (en) Communication apparatus and computer program product for communicating with other communication apparatus
JP2007243248A (ja) 検索処理装置、検索処理方法および検索処理プログラム
JP6665620B2 (ja) サーバ装置、端末装置、クライアントサーバシステム、通知方法、および情報取得方法、並びにコンピュータ・プログラム
JP4252041B2 (ja) Dhcp情報管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080812

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080820

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120829

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees