トランスレータ
【課題】バージョンの違い等によりIPアドレスの付与体系が異なっている2つのネットワークを結合する。
【解決手段】トランスレータ55は、IPv6ネットワーク52からIPv4ネットワーク54にパケットを転送する際に、IPv6パケットの宛先IPアドレスフィールドに格納されているIPv6アドレスの下位32ビットからIPv4アドレスを抽出し、このアドレスを、IPv4パケットの宛先IPアドレスフィールドに格納し、IPv4ネットワーク54からIPv6ネットワーク52にパケットを転送する際に、IPv4パケットの
送信元IPアドレスフィールドに格納されているIPv4アドレスを、下位32ビットに格納したIPv6アドレスに変換し、このアドレスをIPv6パケットの送信元IPアドレスフィールドに格納するヘッダ変換部を備える。
【解決手段】トランスレータ55は、IPv6ネットワーク52からIPv4ネットワーク54にパケットを転送する際に、IPv6パケットの宛先IPアドレスフィールドに格納されているIPv6アドレスの下位32ビットからIPv4アドレスを抽出し、このアドレスを、IPv4パケットの宛先IPアドレスフィールドに格納し、IPv4ネットワーク54からIPv6ネットワーク52にパケットを転送する際に、IPv4パケットの
送信元IPアドレスフィールドに格納されているIPv4アドレスを、下位32ビットに格納したIPv6アドレスに変換し、このアドレスをIPv6パケットの送信元IPアドレスフィールドに格納するヘッダ変換部を備える。
【発明の詳細な説明】
【技術分野】
【0001】
複数の対象機器のそれぞれに対して、互いに重複することのないように第1種のIPアドレスが付与される第1種のIPネットワークと、複数の対象機器のそれぞれに対して、互いに重複することのないように第2種のIPアドレスが付与される第2種のIPネットワークを対象とするトランスレータに関する。
【背景技術】
【0002】
TCP/IP通信で使用するネットワーク層のプロトコルとして現在最もよく知られているのは、IP(Internet Protocol)である。IPの役割は、ネットワークに接続しているノードの中から、通信を行う宛先を指定するアドレッシングサービス等、OSI(Open Systems Interconnection)参照モデルの第3層が提供している役割と一致する。現時点では、バージョン4のIP(以下、IPv4と呼ぶ)が普及している。IPv4で使用するヘッダ(以下、IPv4ヘッダと呼ぶ)のフォーマットは、図11(b)に示す通りである。
【0003】
IPv4ヘッダ内において、「バージョン」フィールドには、バージョン番号である“4”が格納される。「ヘッダ長」フィールドには、IPv4ヘッダ自体の長さが格納される。「サービスタイプ」フィールドには、通信処理のサービス品質を示す情報が格納される。「パケット長」フィールドには、IPで取り扱われるデータブロックに該IPv4ヘッダを加えたパケット全体の大きさが格納される。上位層から降りてきた情報は、IPにて一つのデータブロックとして扱われ、このデータブロックは、IPにてIPv4ヘッダが付加されて、下位層に送られる。逆に、下位層から送られたパケットに含まれるIPv4ヘッダは、IPにて解析され、その解析結果に応じて、そのパケットのデータ部分が上位層に上げられる。「識別子」フィールドには、上位層へデータを渡す際の参考情報として用いられる識別子が格納される。「フラグ」フィールドには、パケットの分割に関する制御情報が格納される。「フラグメントオフセット」フィールドには、分割されたデータ(フラグメント)が、オリジナルデータのどこに位置していたのかを示す情報が格納される。「生存時間」フィールドには、そのパケットがネットワークに存在してよい時間が格納される。「プロトコル」フィールドには、上位層のプロトコルが何であるかを示す情報が格納される。「ヘッダチェックサム」フィールドには、該IPヘッダのチェックサムが格納される。「送信元IPアドレス」フィールドには、送信元のIPアドレスが格納される。「宛先IPアドレス」フィールドには、宛先のIPアドレスが格納される。IPアドレスは、ネットワークに接続される各ノードに割り当てられるもので、そのネットワーク内において、それぞれ異なる値に設定される。
【0004】
このような仕様を持つIPは、現在、インターネットの普及などと歩調を合わせて、様々な通信サービスに急速に広がりつつあるが、その一方で、IPアドレスの枯渇という深刻な問題に直面している。
【0005】
これを解決するための手段として、現在、バージョン6のIP(以下、IPv6と呼ぶ
)が提案されている。
【0006】
IPv6で使用するヘッダ(以下、IPv6ヘッダと呼ぶ)のフォーマットは、図11(a)に示す通りである。IPv6ヘッダ内において、「バージョン」フィールドには、バージョン番号である“6”が格納される。「優先度」フィールドには、ネットワークでルータがパケットを中継する際の処理の優先度が格納される。「フローラベル」フィールドは、優先制御等をする際の識別子の格納に用いられる。「ペイロード長」フィールドには、パケットからIPv6ヘッダ部を除いたデータ部分の長さが格納される。「次ヘッダ識別子」フィールドには、IPv6ヘッダの次に、どの上位層プロトコルのヘッダが続くのか、あるいは、どのIPv6拡張ヘッダが続くのか等を識別するための識別子が格納される。「ホップリミット」フィールドには、そのパケットの最大転送回数が格納される。「送信元IPアドレス」フィールドには、送信元のIPアドレスが格納され、「宛先IPアドレス」フィールドには、宛先のIPアドレスが格納される。そして、IPv6ヘッダでは、「送信元IPアドレス」フィールド、「宛先IPアドレス」フィールドのそれぞれが、32ビットから128ビットに拡張されている。これにより接続可能なノードの数が増加する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、IPv6は、IPアドレスの格納領域の拡張は行われているものの、ヘッダや処理の一部に変更が加わったために、既存のIPv4との互換性はない。
【0008】
これからネットワークに新規に接続されるノードでは、ネットワークプロトコルとしてIPv6が実装され、ネットワークアドレスとしてIPv6アドレスが割り当てられるが、既存のノードのネットワークプロトコルを一斉にIPv6に変更することは事実上不可能であるため、IPv4ノードとIPv6ノードが共存する期間が長期に渡って続くものと考えられる。また、既存のノードの一部(特に周辺機器)については、プロトコルの変更が困難なものもあり、この場合、そのまま続けてIPv4が使われる。
【0009】
すなわち、今後は、IPv6が実装されたノード(IPv6ノード)と、IPv4が実装されたノード(IPv4ノード)とが混在するネットワークが出現するものと思われる。
【0010】
しかしながら、IPv6とIPv4は、前述したように互いにヘッダフォーマット等が異なるため、IPv6ノードとIPv4ノードを単純に結合するわけにはいかない。
【0011】
この解決策の一つとして、例えば、図13に示すようなトランスレータを用いた接続方法がある。
【0012】
同図において、IPv6ノード(IPv6端末)10が接続されたIPv6ネットワーク52と、IPv4ノード(IPv4端末)20が接続されたIPv4ネットワーク54は、トランスレータ30を介して相互に接続している。IPv4端末20には、IPv4ネットワーク54内でユニークに割り当てられたアドレス(以下、IPv4アドレスと呼ぶ)が付されており、IPv6端末10には、IPv6ネットワーク52内でユニークに割り当てられたアドレス(以下、IPv6アドレスと呼ぶ)と、IPv4アドレスの両方が付されている。IPv6端末10は、IPv6ネットワーク52内で他のIPv6端末(図示省略)と通信を行う場合には、自己をIPv6アドレスで表し、また、IPv4ネットワーク54内のIPv4端末20と通信を行う場合には、自己をIPv4アドレスで表す。例えば、IPv6端末10からIPv4端末20にパケットを送る場合、IPv6端末10は、送るべきパケットのヘッダ生成時において、「送信元IPアドレス」フィールド(図11(a)参照)に自己(IPv6端末10)のIPv4アドレスを図12(a)に示すような形で格納すると共に、「宛先IPアドレス」フィールド(図11(a)参照)に相手(IPv4端末20)のIPv4アドレスを図12(b)に示すような形で格納する。図12(a)では、用意された128ビットのうちの下位32ビットをアドレス情報の格納に使用し、その他のビットを、‘0’にセットしている。このようなフォーマットで表されるアドレスは、一般に、IPv4−compatible−IPv6アドレスと呼ばれている。また、図12(b)では、用意された128ビットのうちの下位32ビットをアドレス情報の格納に使用し、47ビット目から32ビット目までを‘1’、その他のビットを‘0’にセットしている。このようなフォーマットで表されるアドレスは、一般に、IPv4−mapped−IPv6アドレスと呼ばれている。そして、所定の情報を格納されたヘッダと、送るべきデータは、一つのパケットとして、トランスレータ30に送られる。
【0013】
トランスレータ30は、送られてきたパケットをIPv4ネットワーク54用のパケットに変換する。具体的には、送られてきたパケットのヘッダに含まれている先程のIPv4−compatible−IPv6アドレスから、下位32ビット、すなわち、IPv6端末10のIPv4アドレスを切りだし、これを、図11(b)に示したIPv4ヘッダの「送信元IPアドレス」フィールドに格納する。また、これと同時に、送られてきたパケットのヘッダに含まれている先程のIPv4−mapped−IPv6アドレスから、下位32ビット、すなわち、送り先であるIPv4端末20のIPv4アドレスを切りだし、これを、図11(b)に示したIPv4ヘッダの「宛先IPアドレス」フィールドに格納する。その後、このヘッダは、その他の必要事項が設定され、送信データとともに一つのパケットとなってIPv4端末20に送られる。
【0014】
以上の方法を用いれば、確かに、IPv6ノードとIPv4ノードの相互接続が可能となる。
【0015】
このように、本発明は、バージョンの違い等によりアドレスの付与体系が異なっている2つのネットワークを結合することができるトランスレータを提供する。
【課題を解決するための手段】
【0016】
上記目的を達成するための本発明のトランスレータの一態様によれば、ネットワークプロトコルとして第1種のプロトコルを使用し、第1の長さの第1のアドレスが割り当てられている少なくとも1台の第1の装置と、第2種のプロトコルを使用し、第1の長さとは異なる第2の長さの第2のアドレスが割り当てられている少なくとも1台の第2の装置にネットワークを介して接続されるトランスレータにおいて、第1種のプロトコルを使用して通信される第1種のパケットと、第2種のプロトコルを使用して通信される第2種のパケットをネットワークに対して送受信する送受信部と、送受信部が受信した第1種のパケットに含まれ、少なくとも第1種のプロトコルであることを示す情報とそれぞれ前記第1の長さの送信元アドレス及び宛先アドレスとが格納されている第1種のヘッダを、第1種のヘッダとはヘッダフォーマットが異なり、少なくとも第2種のプロトコルであることを示す情報とそれぞれ前記第2の長さの送信元アドレス及び宛先アドレスとが格納されている第2種のヘッダに変換して第2種のパケットを生成するヘッダ変換部とを有するトランスレータが提供される。
【0017】
トランスレータにおいて、第1の装置から第2の装置に向けて送出された第1種のパケットを送受信部が受信すると、ヘッダ変換部は、第1種のパケットの第1種のヘッダに宛先アドレスとして格納されている第1の長さのアドレスであって下位に第2のアドレスを含む第3のアドレスから第2のアドレスを抽出するアドレス変換と、第1種のヘッダを第2種のヘッダに変換するための処理を実行し、第1種のヘッダを、宛先アドレスとして第2のアドレスが格納された第2種のヘッダに変換して第2種のパケットを生成する。そして、送受信部は、生成された第2種のパケットをネットワークに送出する。
【発明の効果】
【0018】
本発明によれば、第1種のネットワーク(例えば、IPv4ネットワーク)に存在する複数の対象機器のうちの一つである対象機器Aと、第2種のIPネットワーク(例えば、IPv6ネットワーク)に存在する複数の対象機器のうちの一つである対象機器Bとの間で、第1種のネットワークと第2種のネットワークとの間に設けられたトランスレータを介することにより、通信を行うことが可能となる。
【図面の簡単な説明】
【0019】
【図1】本発明が適用されたネットワークの一例を示した構成図。
【図2】図1のネットワークで使用されるIPv4/v6トランスレータの機能を示したブロック図。
【図3】図3(a):図1のネットワークに接続されるタイプAのIPv4端末で行われる処理の概要を示した説明図。図3(b):図1のネットワークに接続されるタイプBのIPv4端末で行われる処理の概要を示した説明図。図3(c):図1のネットワークに接続されるタイプCのIPv4端末で行われる処理の概要を示した説明図。
【図4】図1のネットワークに接続されるタイプAのIPv4端末の機能を示したブロック図。
【図5】図1のネットワークにおける、IPv6端末−IPv4端末間の通信手順(その1)を示したフローチャート。
【図6】図1のネットワークにおける、IPv6端末−IPv4端末間の通信手順(その2)を示したフローチャート。
【図7】図1のネットワークに接続されるタイプA、BのIPv4端末及びIPv4/v6トランスレータのそれぞれに設けられるアドレス変換情報テーブルの一例を示した説明図。
【図8】図7のアドレス変換情報テーブルの格納情報を送信するためのパケットのフォーマットを示した説明図。
【図9】本発明が適用されたネットワークのその他の例を示した構成図。
【図10】図10(a):本発明が適用されたネットワークに接続されるIPv4/v6トランスレータのハードウエア構成の一例を示した構成図。図10(b):本発明が適用されたネットワークに接続されるIPv4端末のハードウエア構成の一例を示した構成図。
【図11】図11(a):IPv6ヘッダのフォーマットの説明図。図11(b):IPv4ヘッダのフォーマットの説明図。
【図12】図12(a):IPv4−compatible−IPv6アドレスのフォーマットの説明図。図12(b):IPv4−mapped−IPv6アドレスのフォーマットの説明図。
【図13】IPv4ネットワークとIPv6ネットワークを接続するための方式を示した説明図。
【発明を実施するための形態】
【0020】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0021】
図1に示すように、本実施形態では、複数のIPv6端末51が接続されたIPv6ネットワーク52と、複数のIPv4端末53が接続されたIPv4ネットワーク54が存在し、これらのネットワークは、IPv6/v4トランスレータ55(以下、トランスレータ55と呼ぶ)を介して相互に接続されている。IPv6ネットワーク52では、図11(a)に示したIPv6ヘッダを有するパケット(以下、IPv6パケットと呼ぶ)によるデータ転送が行われる。IPv6パケットのヘッダでは、IPv6端末51は、通常のIPv6アドレスで表され、IPv4端末53は、IPv4−mapped−IPv6アドレス(図12(b))で表される。また、IPv4ネットワーク54では、図11(b)に示したIPv4ヘッダを有するパケット(以下、IPv4パケットと呼ぶ)によるデータ転送が行われる。IPv4パケットのヘッダにおいて、トランスレータ55は、該トランスレータ55、若しくは、特定のIPv4端末53で割り当てられたIPv4アドレスで表され、IPv4端末53は、通常のIPv4アドレスで表される。
【0022】
トランスレータ55は、図2に示すように、IPv6ネットワーク52に流れるIPv6パケットと、IPv4ネットワーク54に流れるIPv4パケットを順次取り込むIPv4/v6受信処理部31と、IPv4/v6受信処理部31で取り込んだパケットのヘッダを、アドレス変換情報テーブル35に格納されているアドレス変換情報に基づいて変換すると共に、必要に応じて、アドレス変換情報テーブル35の内容の更新を行うヘッダ変換部33と、ヘッダの変換処理を受けたパケットを、送り先となるネットワークに送出するIPv4/v6送信処理部32と、アドレス変換情報テーブル35に格納されているアドレス変換情報を、IPv4ネットワーク54に接続されている特定のノードと交換するアドレス変換情報交換部34とを備える。
【0023】
本実施形態では、IPv4ネットワーク54に接続されるIPv4端末53に3つタイプ(以下、タイプA、B、Cとする)が存在する。タイプAのIPv4端末53は、IPv6端末51で使用されるアプリケーションプログラム(以下、IPv6アプリケーションとする)の搭載が可能で端末であり、さらに、前述したアドレス変換情報を所有する。タイプAのIPv4端末53で行われる処理の概要は、図3(a)に示されている。タイプCのIPv4端末53は、IPv4端末53で使用されるアプリケーションプログラム(以下、IPv4アプリケーションとする)をそのまま搭載した従来の端末であり、例えば、プリンタ等の周辺機器が、これに該当する。タイプCのIPv4端末53で実行される処理の概要は、図3(c)に示す通りである。タイプBのIPv4端末53は、IPv4アプリケーションを搭載し、かつ、前述したアドレス変換情報を所有する端末で、その処理概要は、図3(b)に示す通りである。なお、トランスレータ55がアドレス変換情報の交換を行う特定のノードは、このうちタイプA、BのIPv4端末53である。
【0024】
図3(a)に示したTCP/IPv4処理81は、一般的なTCP/IP通信処理に相当するもので、ここでは、IPv4に従ったサービスが行われる。TCP/IPv4処理81では、この上位で行われる処理とのインターフェースとしてソケットインターフェース(IPv4ソケットIF)が用いられる。IPv6アプリケーション処理84は、IPv6アプリケーションが行う処理であり、この下位で行われる処理とのインターフェースとして、先程と同様、ソケットインターフェース(IPv6ソケットIF)を使用する。アドレス変換処理82及びアドレス変換情報交換処理83のそれぞれは、IPv4ソケットIFとIPv6ソケットIFとの間に介在する。アドレス変換処理82では、IPアドレスの変換処理等を含んだデータ転送が行われ、アドレス変換情報交換処理83では、その他のノード(例えば、トランスレータ55)と該IPv4端末53との間でアドレス変換情報の交換が行われる。
【0025】
図4には、タイプAのIPv4端末53の内部構成が示されている。
【0026】
TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。アドレス変換処理82は、アドレス変換処理部43が担当する。アドレス変換情報交換処理83は、アドレス変換情報交換処理部44が担当する。このほか、タイプAのIPv4端末53には、アドレス変換情報テーブル45が設けられている。
【0027】
つぎに、IPv6端末51とタイプAのIPv4端末53との間で行われるパケット交換について説明する。
【0028】
先ず、IPv6端末51側から通信を開始する場合のパケット交換について、図5のフローチャートに従って説明する。
【0029】
ここでは、前もって、送信元のIPv6端末51に、IPv6アドレス“::1234:5678:9abc”が割り当てられており、宛先のIPv4端末53に、IPv4アドレス“133.144.95.22”が割り当てられていることとする。
【0030】
IPv4アドレスの表記方法は、以下の通りである。
【0031】
1.8ビット毎に“.”で区切って10進数で表す。
例.123.3.2.1
IPv6アドレスの表記方法は、以下の通りである。
【0032】
1.16ビット毎に“:”で区切って16進数で表す。
例.1234:5678:9abc:def0:0fed:cba9:8765:4321
2.区切られた16ビット全てが0の場合、“::”で表してもよい。
例.1234::9abc:def0:0fed:cba9:8765:4321
3.区切られた16ビット全てが0で、これが連続する場合、1個の“::”で表してもよい。
例.1234::4321
4.下位32ビットにIPv4アドレスを含む場合、この下位32ビットについては、IPv4アドレスの表記方法を用いることができる。
例.::ffff:133.144.95.22
そして、IPv6端末51は、IPv6パケット56をIPv6ネットワーク52に送出する際(a1)、そのヘッダ内に、送信元IPアドレスとして自己のIPv6アドレス “::1234:5678:9abc”をセットすると共に、宛先IPアドレスとしてIPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットする。
【0033】
トランスレータ55のIPv4/v6受信処理部31は、IPv6ネットワーク52を流れるIPv6パケットを順次取り込み、その都度、取り込んだIPv6パケットが、「宛先IPアドレス」フィールドにIPv4−mapped−IPv6アドレスが格納されているパケット(具体的には、「宛先IPアドレス」フィールドの47ビット目から32ビット目までが‘1’にセットされ、それより上位の全てのビットが‘0’にセットされているパケット)であるか否かを判断する。該当するパケットを発見した場合、これをヘッダ変換部33に送る(b1)。ヘッダ変換部33は、パケットを受け取ると、該パケットに含まれている、送信元IPアドレスであるIPv6アドレスを抜き出し、抜き出したIPv6アドレスに予め対応付けられているIPv4アドレスを、アドレス変換情報テーブル35の中から探し出す(b2)。目的のIPv4アドレスがアドレス変換情報テーブル35の中に存在しなかった場合、ヘッダ変換部33は、前述のIPv6アドレスに対して、あるIPv4アドレスを割り当てる。ここでは、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てることとする(b3)。アドレス変換情報交換部34は、これらの対応関係をアドレス変換情報として、IPv4端末53に送信する(b4)。アドレス変換情報を交換するためのパケットのフォーマットは、図8に示す通りである。本例の場合、「IPv6アドレス」フィールド101に“::1234:5678:9abc”が格納され、「割当てIPv4アドレス」フィールド102に、“192.168.10.3”が格納される。「オプション」フィールド103は、本実施形態では特に使用しないが、通信に必要な各種制御情報を格納をすることができる。なお、(b4)のアドレス変換情報の送信は、通信相手となるIPv4端末53だけでなく、アドレス変換情報テーブル45を所有する全てのIPv4端末53に対して行う。また、ヘッダ変換部33は、アドレス変換情報をアドレス変換情報テーブル35に格納する(b5)。
【0034】
アドレス変換情報テーブル35の構成例は、図7に示されている。91は、IPv6ア
ドレスの格納領域、92は、割当てられたIPv4アドレスの格納領域、93は、オプシ
ョンデータの格納領域であり、例えば、上から順に、一行ずつ埋められていく。割り当て
るIPv4アドレスは、予め複数用意されており、これらは、図示省略したトランスレー
タ55内のメモリに格納されている。アドレス変換情報テーブル35自体も、このメモリ
に格納されている。
【0035】
なお、割り当てられたIPv4アドレスが使用される領域は、そのIPv4ネットワーク内で閉じているため、例えば、IPv6ネットワーク52に複数のIPv4ネットワークが接続していて、各IPv4ネットワークでIPv4アドレスが重なっていたとしても何の問題も生じない。すなわち、IPv4ネットワーク54が企業内通信網で、IPv6ネットワークが公衆回線を利用した外部の通信網である場合、その企業では、他の企業のIPv4ネットワークで使用されるIPv4アドレスを割当ててもよい。
【0036】
続いて、ヘッダ変換部33は、パケット内の送信元IPアドレスを、IPv6アドレス “::1234:5678:9abc”からIPv4アドレス“192.168.10.3”に置き換える。宛先IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv6ヘッダをIPv4ヘッダに変換するための各種処理も同時に実行する(b6)。続いて、IPv4/v6送信処理部32は、(b6)の変換処理を受けたパケットをIPv4端末53に向けて送出する。なお、(b2)の検索処理において、該当するIPv4アドレスが見つかった場合は、送信元IPアドレスとして、このIPv4アドレスが採用され、(b3)、(b4)、(b5)の各処理は、スキップされる。
【0037】
一方、IPv4端末53は、トランスレータ55から送出されたアドレス変換情報を受信すると(c1)、このアドレス変換情報を用いてアドレス変換情報テーブル45の内容を更新する(c2)。これにより、トランスレータ55のアドレス変換情報テーブル35の内容と、IPv4端末53のアドレス変換情報テーブル45の内容が一致する。アドレス変換情報テーブル45の内容の更新は、具体的には、アドレス変換情報交換処理部44が実施する。(c1)、(c2)の処理については、通信相手となるIPv4端末をはじめ、全てのIPv4端末にて実施される。
【0038】
また、IPv4端末53は、トランスレータ55から送出されたIPv4パケットを受信すると(c3)、更新されたアドレス変換情報テーブル45に基づいて、このIPv4パケットのアドレス変換を実施する。
【0039】
具体的には、IPv4端末53のTCP/IPv4受信処理部41は、IPv4ネットワーク54を流れる先程のIPv4パケットをTCP/IP受信し、これをアドレス変換処理部43に渡す。アドレス変換処理部43は、パケットを受け取ると、該パケットの送信元IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル45の中から探し出す。アドレス変換情報テーブル45の内容は、(c2)にて更新されているため、ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる。アドレス変換処理部43は、IPv6アドレス“::1234:5678:9abc”を送信元IPアドレスとしてパケット内にセットし、このパケットをIPv6アプリケーションに送る。宛先IPアドレスは、IPv4アドレスを図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレスが使われる。このようなアドレス変換を行えば、IPv6アプリケーションは、送信元IPアドレス及び宛先IPアドレスのそれぞれをIPv6アドレスで受け取ることができる。IPv6アプリケーションは、前述したようにIPv6用に開発されたアプリケーションプログラムであるため、受け取るIPアドレスは、IPv6アドレスで表現されている方が都合がよい。
【0040】
また、IPv6アプリケーションは、応答処理として、IPv6端末51にパケットを送ることもある。この場合、IPv6アプリケーションは、送るべきパケットに、送信元IPアドレスとして自己のIPv4アドレス“133.144.95.22”を図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレス“::ffff:133.144.95.22”セットし、宛先IPアドレスとしてIPv6端末51のIPv6アドレス“::1234:5678:9abc”をセットする。このパケットは、アドレス変換処理部43に渡され、先程とは逆のアドレス変換が施される。すなわち、アドレス変換処理部43は、宛先IPアドレスとしてセットされている先程のIPv6アドレス“::1234:5678:9abc”をIPv4アドレス“192.168.10.3”に置き換える。送信元IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。その後、TCP/IPv4送信処理部42は、アドレス変換処理部43にて変換処理を受けたパケット(IPv4パケット57:図1)をトランスレータ55に向けて送出する(c4)。
【0041】
トランスレータ55のIPv4/v6受信処理部31は、IPv4ネットワーク54を流れるIPv4パケット57を取り込み(b8)、これをヘッダ変換部33に送る。ヘッダ変換部33は、パケットを受け取ると、該パケットの宛先IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル35の中から探し出す。ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる(b9)。ヘッダ変換部33は、その後、該パケットに、送信元IPアドレスとして、IPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットすると共に、宛先IPアドレスとして、先程抽出したIPv6アドレス“::1234:5678:9abc”をセットする。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv4ヘッダをIPv6ヘッダに変換するための各種処理も同時に実行する(b10)。IPv4/IPv6送信処理部32は、(b10)の変換処理を受けたパケットをIPv6端末51に向けて送出する(b11)。その後、IPv6端末51は、このパケットを受信する(a2)。
【0042】
なお、IPv6アドレスに対応付けた前述のIPv4アドレスについては、IPv6端末51とIPv4端末53との間の一連の通信が終了した時点で、解放するようにすればよい。また、ネットワークのシステム管理の際に発せられるコマンド等に応じて、アドレス変換情報テーブルのエントリを削除するようにしてもよい。また、アドレス変換情報テーブルのオプションフィールドに、通信が行われなくなってからの時間を格納し、タイムアウトが発生した割り当てIPv4アドレスについては、その時点で強制的に解放するようにしてもよい。
【0043】
つぎに、IPv4端末53側から通信を開始する場合のパケット交換について、図6のフローチャートに従って説明する。
【0044】
ここでも、先程と同様、IPv6端末51に、IPv6アドレス“::1234:5678:9abc”が割り当てられており、IPv4端末53に、IPv4アドレス“133.144.95.22”が割り当てられていることとする。
【0045】
そして、IPv4端末53のIPv6アプリケーションは、送るべきパケットに、送信元IPアドレスとして自己のIPv4アドレス“133.144.95.22”を図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレス“::ffff:133.144.95.22”をセットし、宛先IPアドレスとしてIPv6端末51のIPv6アドレス“::1234:5678:9abc”をセットする。このパケットは、アドレス変換処理部43に渡される。
【0046】
アドレス変換処理部43は、パケットを受け取ると、該パケットに含まれている、宛先IPアドレスであるIPv6アドレスを抜き出し、抜き出したIPv6アドレスに予め対応付けられているIPv4アドレスを、アドレス変換情報テーブル45の中から探し出す(c1)。目的のIPv4アドレスがアドレス変換情報テーブル45の中に存在しなかった場合、アドレス変換処理部43は、前述のIPv6アドレスに対して、あるIPv4アドレスを割り当てる。ここでは、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てることとする(c2)。アドレス変換処理部43は、これらの対応関係をアドレス変換情報として、トランスレータ55に送信する(c3)。アドレス変換情報を交換するためのパケットのフォーマットは、図8に示す通りである。また、アドレス変換処理部43は、このアドレス変換情報をアドレス変換情報テーブル45に格納する(c4)。アドレス変換情報テーブル45の構成例は、図7に示されている。なお、割り当てるIPv4アドレスは、予め複数用意されており、これらは、図示省略したIPv4端末53の内のメモリに格納されている。アドレス変換情報テーブル45自体も、このメモリに格納されている。その後、アドレス変換処理部43は、パケット内のIPv6アドレス“::1234:5678:9abc”をIPv4アドレス“192.168.10.3”に置き換える。送信元IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。また、アドレス変換処理部43は、このようなアドレス変換のほか、IPv6ヘッダをIPv4ヘッダに変換するための各種処理も同時に実行する(c5)。その後、TCP/IPv4送信処理部42は、アドレス変換処理部43にて変換処理を受けたパケット(IPv4パケット57:図1)をトランスレータ55に向けて送出する(c6)。なお、(c1)の検索処理において、該当するIPv4アドレスが見つかった場合は、送信元IPアドレスとして、このIPv4アドレスが採用され、(c2)、(c3)、(c4)の各処理は、スキップされる。
【0047】
一方、トランスレータ55は、IPv4端末53から送出されたアドレス変換情報を受信すると(b1)、このアドレス変換情報を用いてアドレス変換情報テーブル35の内容を更新する(b2)。これにより、IPv4端末53のアドレス変換情報テーブル45の内容とトランスレータ55のアドレス変換情報テーブル35の内容が一致する。アドレス変換情報テーブル35の内容の更新は、具体的には、アドレス変換情報交換部34が実施するなお、(c3)のアドレス変換情報の送信は、トランスレータ55だけでなく、アドレス変換情報テーブル45を所有する全てのIPv4端末53に対して行われ、それぞれのアドレス変換情報テーブル45の内容が更新される。このようにすれば、割り当てるIPv4アドレスが各IPv4端末53とトランスレータとの間で重複しない。
【0048】
そして、トランスレータ55のIPv4/v6受信処理部31は、IPv4ネットワーク54を流れるIPv4パケット57を取り込み(b3)、これをヘッダ変換部33に送る。ヘッダ変換部33は、パケットを受け取ると、該パケットの宛先IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル35の中から探し出す。アドレス変換情報テーブル35の内容は、(b2)にて更新されているため、ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる(b4)。ヘッダ変換部33は、その後、該パケットに、送信元IPアドレスとして、IPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットすると共に、宛先IPアドレスとして、先程抽出したIPv6アドレス“::1234:5678:9abc”をセットする。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv4ヘッダをIPv6ヘッダに変換するための各種処理も同時に実行する(b5)。IPv4/IPv6送信処理部32は、(b5)の変換処理を受けたパケットをIPv6端末51に向けて送出する(b6)。その後、IPv6端末51は、このパケットを受信する(a1)。
【0049】
また、IPv6端末51は、応答処理として、IPv4端末53にIPv6パケット51を送ることもある。この場合、IPv6端末51は、IPv6パケット56をIPv6ネットワーク52に送出する際に(a2)、そのヘッダに、送信元IPアドレスとして自己のIPv6アドレス“::1234:5678:9abc”をセットすると共に、宛先IPアドレスとしてIPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットする。このIPv6パケット56は、トランスレータ55を介してIPv4端末53に送られる(c7)。トランスレータ55の処理((b7)、(b8)、(b9)、b(10))は、図6の(b1)、(b2)、(b6)、(b7)と同様なものなので、ここでは説明を繰り返さない。
【0050】
なお、IPv6アドレスに割り当てた前述のIPv4アドレスについては、前述と同様な解放処理を行えばよい。
【0051】
つぎに、タイプBのIPv4端末53について説明する。
【0052】
タイプBのIPv4端末53は、前述した通り、IPv4アプリケーションを搭載し、かつ、前述したアドレス変換情報を所有する端末である。タイプBのIPv4端末53では、図3(b)に示す様に、TCP/IPv4処理81と、アドレス変換処理82と、アドレス変換処理83と、IPv4アプリケーション処理85とが実施される。IPv4アプリケーション処理85は、同図に示すように、IPv4ソケットインターフェース介してTCP/IPv4処理81上で実行される。これらの階層構造については、従来のIPv4端末53と同じであり、IPv4アプリケーション処理85では、TCP/IPv4処理81から上げられてくるパケットのIPアドレスをIPv4アドレスで受け取ることとなる。なお、TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。アドレス変換処理82は、アドレス変換処理部43が担当する。アドレス変換情報交換処理83は、アドレス変換情報交換処理部44が担当する。
【0053】
このようにタイプBのIPv4端末53では、アプリケーション側がIPv6アドレスを特に必要としていない。
【0054】
しかしながら、ユーザにとっては、確認等のため、通信相手のIPv6アドレスを知りたいということもある。
【0055】
そこで、タイプBのIPv4端末53では、通信相手のIPv6アドレスを表示画面等に出力する。
【0056】
すなわち、タイプBのIPv4端末53のアドレス変換処理部43は、IPv4アプリケーションから出力されたパケットを受け取ると、該パケットの宛先IPアドレスであるIPv4アドレスを抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル45の中から探し出し、これを表示画面等に出力する。
【0057】
また、さらに、タイプBのIPv4端末53では、トランスレータやタイプAのIPv4端末で自動的に行われていたIPv6アドレスとIPv4アドレスとの対応付けを、ユーザが任意に行うことができる。
【0058】
すなわち、アドレス変換処理部43は、ユーザの操作内容に応じて、アドレス変換情報テーブル45を更新する。例えば、ユーザが、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てるといった内容の操作を行った場合は、図7のアドレス変換情報テーブル45は、例えば、図7に示す様な内容に設定される。アドレス変換情報テーブル45が更新されると、アドレス変換情報交換部44は、この更新部分をパケット(図8参照)して、トランスレータ55や、アドレス変換情報テーブルを所有するその他のIPv4端末53に送信する。これにより、各IPv4端末53のアドレス変換情報テーブル45の内容と、トランスレータ55のアドレス変換情報テーブル35の内容が一致する。
【0059】
IPv6端末51とタイプBのIPv4端末53との間で行われるパケット交換については、図5、図6を用いて説明した先程のフローと同様なことが行われるため、これについての説明は省略する。
【0060】
つぎに、タイプCのIPv4端末53について説明する。
【0061】
タイプCのIPv4端末53は、前述した通り、IPv4端末53で使用されるIPv4アプリケーションをそのまま搭載した端末である。IPv4アプリケーションがROM化されていて、そのままではソフトウエア的な変更を行うことができない端末も、このタイプCの端末53に含まれる。タイプCのIPv4端末53では、図3(c)に示す様に、IPv4アプリケーション処理85が、IPv4ソケットインターフェース介してTC
P/IPv4処理81上で実行される。TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。
【0062】
なお、タイプCのIPv4端末53では、その構成上、端末側から通信を開始することはできないが、相手側から通信を開始すれば、以下に示すように特に問題は生じない。
【0063】
タイプCのIPv4端末51のIPv4アプリケーションは、TCP/IPv4受信処理部41から出力されたパケットを受け取ると、受け取ったパケットの送信元IPアドレスと宛先IPアドレスを抜き出し、受け取ったパケットのデータ部で指定された所定の処理を行う。その後、IPv4アプリケーションは、必要があれば、その処理結果をパケットに詰め、これをTCP/IPv4送信処理部42に渡す。この際、IPv4アプリケーションは、抜き出した宛先IPアドレスと送信元IPアドレスを入れ替えて、これらをパケットに設定する。例えば、受け取ったパケットの宛先IPアドレス「フィールド」にIPv4アドレス“133.144.95.22”が格納され、送信元IPアドレス「フィールド」にIPv4アドレス“192.168.10.3”が格納されている場合は、宛先IPアドレス「フィールド」にIPv4アドレス“192.168.10.3”が格納され、送信元IPアドレス「フィールド」にIPv4アドレス“133.144.95.22”が格納される。このパケットは、TCP/IPv4送信処理部42によってIPv4ネットワーク54に送出され、トランスレータ55に届けられる。
【0064】
以上、IPv4ネットワークとIPv6ネットワークがIPv4/v6トランスレータで接続される場合の一実施形態について説明したが、ここで使用されるIPv6/v4トランスレータの実際のハードウエアは、例えば、図10(a)に示すように構成される。
【0065】
このIPv6/v4トランスレータは、CPU71と、メモリ72と、ネットワークインタフェース73−1、73−2〜73−nを有して構成されている。CPU71は、メモリ72の管理や、ネットワークインタフェース73−1、73−2〜73−nの制御を行う。また、メモリ72には、各種プログラムが予め記憶されており、これらのプログラムを必要に応じてCPU71で実行することで、図2に示した、IPv4/v6受信処理部31、IPv4/v6送信処理部32、ヘッダ変換部33、アドレス変換情報交換部34、アドレス変換情報テーブル35が実現される。
【0066】
なお、図1では、IPv6ネットワーク52とIPv4ネットワーク54が一つずつ存在するため、例えば、IPv6ネットワーク52用にネットワークインタフェース73−1が使用され、IPv4ネットワーク54用にネットワークインタフェース73−2が使用されることになる。この場合、ネットワークインタフェース73−1が、IPv6ネットワーク52を流れるIPv6パケットを取り込んでメモリ72に格納し、ネットワークインタフェース73−2が、ヘッダ変換等を施されて生成されたIPv4パケットをIPv4ネットワーク54に送出する。逆方向にパケットを流す場合も、ネットワークインタフェース73−1、73−2のそれぞれが、今と逆の動作を行う。なお、複数のIPv6、IPv4ネットワークが存在する場合には、その数に応じて、ネットワークインタフェースが使用されることになる。
【0067】
また、IPv4端末の実際のハードウエアは、例えば、図10(b)に示すように構成
される。
【0068】
このIPv4端末は、CPU71と、メモリ72と、ネットワークインタフェース73を有して構成されている。CPU71は、メモリ72の管理や、ネットワークインタフェース73の制御を行う。メモリ72には、各種プログラムが予め記憶されている。例えば、タイプAのIPv4端末の場合、メモリ72のプログラムが必要に応じてCPU71で実行され、TCP/IPv4受信処理部41、TCP/IPv4送信処理部42、アドレス変換処理部43、アドレス変換情報交換処理部44、アドレス変換情報テーブル45や、IPv4アプリケーションが実現される。ネットワークインタフェース73は、IPv4ネットワーク54を流れるIPv4パケットを取り込んでメモリ72に格納すると共に、アドレス変換等を施されて生成されたIPv4パケットをIPv4ネットワーク54に送出する。
【0069】
また、特定のIPv6端末については、予めIPv4アドレスを割り当てておき、これをアドレス変換情報テーブルに格納しておくようにしてもよい。このようにすれば、割当てに関する処理時間が削減される。
【0070】
また、本発明は、図1に示すようなネットワーク構成に限定されるわけではない。例えば、IPv4ネットワークとIPv6ネットワークが混在するネットワークにも本発明は適用可能である。図9には、IPv4端末62とIPv6端末61が接続されたIPv4/v6混在ネットワーク64が示されている。IPv4/v6混在ネットワーク64では、IPv4パケット66と、IPv6パケット65が共存することになるが、IPv4/v6トランスレータ63は、これらを自身に取り込み、取り込んだパケットに対して、必要ならば、先程説明したアドレス変換及びヘッダ変換を施し、これをネットワークに返却する。このようにすれば、IPv4端末62とトランスレータ63と間では、IPv4パケット66による通信が行われ、トランスレータ63とIPv6端末61との間ではIPv6パケット65による通信が行われることになる。
【0071】
また、本発明は、IPv4ネットワークとIPv6ネットワークとの結合に限定されるわけでなく、バージョンの違い等によりIPアドレスの付与体系が異なっている2種類のネットワーク(第1種のIPネットワークと第2種のIPネットワーク)に適用可能である。
【符号の説明】
【0072】
31:IPv4/v6受信処理部、 32:IPv4/v6送信処理部、 33:ヘッダ変換部、 34:アドレス変換情報交換部、 35:アドレス変換情報テーブル、 41:TCP/IPv4受信処理部、 42:TCP/IPv4送信処理部、 43:アドレス変換処理部、 44:アドレス変換情報交換処理部、 45:アドレス変換情報テーブル、 51、61:IPv6端末、 52:IPv6ネットワーク、 53、62:IPv4端末、 54:IPv4ネットワーク、 55、63:IPv4/v6トランスレータ、 56、65:IPv6パケット、 57、66:IPv4パケット、 64:IPv6/v4混在ネットワーク、 71:CPU、 72:メモリ、 73:ネットワークインタフェース、 81:TCP/IPv4処理、 82:アドレス変換処理、 83:アドレス変換情報交換処理、 84:IPv6アプリケーション、 85:IPv4アプリケーション、 91、101:IPv6アドレスフィールド、 92、102:割り当てIPv4アドレスフィールド、 93、103:オプションフィールド
【技術分野】
【0001】
複数の対象機器のそれぞれに対して、互いに重複することのないように第1種のIPアドレスが付与される第1種のIPネットワークと、複数の対象機器のそれぞれに対して、互いに重複することのないように第2種のIPアドレスが付与される第2種のIPネットワークを対象とするトランスレータに関する。
【背景技術】
【0002】
TCP/IP通信で使用するネットワーク層のプロトコルとして現在最もよく知られているのは、IP(Internet Protocol)である。IPの役割は、ネットワークに接続しているノードの中から、通信を行う宛先を指定するアドレッシングサービス等、OSI(Open Systems Interconnection)参照モデルの第3層が提供している役割と一致する。現時点では、バージョン4のIP(以下、IPv4と呼ぶ)が普及している。IPv4で使用するヘッダ(以下、IPv4ヘッダと呼ぶ)のフォーマットは、図11(b)に示す通りである。
【0003】
IPv4ヘッダ内において、「バージョン」フィールドには、バージョン番号である“4”が格納される。「ヘッダ長」フィールドには、IPv4ヘッダ自体の長さが格納される。「サービスタイプ」フィールドには、通信処理のサービス品質を示す情報が格納される。「パケット長」フィールドには、IPで取り扱われるデータブロックに該IPv4ヘッダを加えたパケット全体の大きさが格納される。上位層から降りてきた情報は、IPにて一つのデータブロックとして扱われ、このデータブロックは、IPにてIPv4ヘッダが付加されて、下位層に送られる。逆に、下位層から送られたパケットに含まれるIPv4ヘッダは、IPにて解析され、その解析結果に応じて、そのパケットのデータ部分が上位層に上げられる。「識別子」フィールドには、上位層へデータを渡す際の参考情報として用いられる識別子が格納される。「フラグ」フィールドには、パケットの分割に関する制御情報が格納される。「フラグメントオフセット」フィールドには、分割されたデータ(フラグメント)が、オリジナルデータのどこに位置していたのかを示す情報が格納される。「生存時間」フィールドには、そのパケットがネットワークに存在してよい時間が格納される。「プロトコル」フィールドには、上位層のプロトコルが何であるかを示す情報が格納される。「ヘッダチェックサム」フィールドには、該IPヘッダのチェックサムが格納される。「送信元IPアドレス」フィールドには、送信元のIPアドレスが格納される。「宛先IPアドレス」フィールドには、宛先のIPアドレスが格納される。IPアドレスは、ネットワークに接続される各ノードに割り当てられるもので、そのネットワーク内において、それぞれ異なる値に設定される。
【0004】
このような仕様を持つIPは、現在、インターネットの普及などと歩調を合わせて、様々な通信サービスに急速に広がりつつあるが、その一方で、IPアドレスの枯渇という深刻な問題に直面している。
【0005】
これを解決するための手段として、現在、バージョン6のIP(以下、IPv6と呼ぶ
)が提案されている。
【0006】
IPv6で使用するヘッダ(以下、IPv6ヘッダと呼ぶ)のフォーマットは、図11(a)に示す通りである。IPv6ヘッダ内において、「バージョン」フィールドには、バージョン番号である“6”が格納される。「優先度」フィールドには、ネットワークでルータがパケットを中継する際の処理の優先度が格納される。「フローラベル」フィールドは、優先制御等をする際の識別子の格納に用いられる。「ペイロード長」フィールドには、パケットからIPv6ヘッダ部を除いたデータ部分の長さが格納される。「次ヘッダ識別子」フィールドには、IPv6ヘッダの次に、どの上位層プロトコルのヘッダが続くのか、あるいは、どのIPv6拡張ヘッダが続くのか等を識別するための識別子が格納される。「ホップリミット」フィールドには、そのパケットの最大転送回数が格納される。「送信元IPアドレス」フィールドには、送信元のIPアドレスが格納され、「宛先IPアドレス」フィールドには、宛先のIPアドレスが格納される。そして、IPv6ヘッダでは、「送信元IPアドレス」フィールド、「宛先IPアドレス」フィールドのそれぞれが、32ビットから128ビットに拡張されている。これにより接続可能なノードの数が増加する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、IPv6は、IPアドレスの格納領域の拡張は行われているものの、ヘッダや処理の一部に変更が加わったために、既存のIPv4との互換性はない。
【0008】
これからネットワークに新規に接続されるノードでは、ネットワークプロトコルとしてIPv6が実装され、ネットワークアドレスとしてIPv6アドレスが割り当てられるが、既存のノードのネットワークプロトコルを一斉にIPv6に変更することは事実上不可能であるため、IPv4ノードとIPv6ノードが共存する期間が長期に渡って続くものと考えられる。また、既存のノードの一部(特に周辺機器)については、プロトコルの変更が困難なものもあり、この場合、そのまま続けてIPv4が使われる。
【0009】
すなわち、今後は、IPv6が実装されたノード(IPv6ノード)と、IPv4が実装されたノード(IPv4ノード)とが混在するネットワークが出現するものと思われる。
【0010】
しかしながら、IPv6とIPv4は、前述したように互いにヘッダフォーマット等が異なるため、IPv6ノードとIPv4ノードを単純に結合するわけにはいかない。
【0011】
この解決策の一つとして、例えば、図13に示すようなトランスレータを用いた接続方法がある。
【0012】
同図において、IPv6ノード(IPv6端末)10が接続されたIPv6ネットワーク52と、IPv4ノード(IPv4端末)20が接続されたIPv4ネットワーク54は、トランスレータ30を介して相互に接続している。IPv4端末20には、IPv4ネットワーク54内でユニークに割り当てられたアドレス(以下、IPv4アドレスと呼ぶ)が付されており、IPv6端末10には、IPv6ネットワーク52内でユニークに割り当てられたアドレス(以下、IPv6アドレスと呼ぶ)と、IPv4アドレスの両方が付されている。IPv6端末10は、IPv6ネットワーク52内で他のIPv6端末(図示省略)と通信を行う場合には、自己をIPv6アドレスで表し、また、IPv4ネットワーク54内のIPv4端末20と通信を行う場合には、自己をIPv4アドレスで表す。例えば、IPv6端末10からIPv4端末20にパケットを送る場合、IPv6端末10は、送るべきパケットのヘッダ生成時において、「送信元IPアドレス」フィールド(図11(a)参照)に自己(IPv6端末10)のIPv4アドレスを図12(a)に示すような形で格納すると共に、「宛先IPアドレス」フィールド(図11(a)参照)に相手(IPv4端末20)のIPv4アドレスを図12(b)に示すような形で格納する。図12(a)では、用意された128ビットのうちの下位32ビットをアドレス情報の格納に使用し、その他のビットを、‘0’にセットしている。このようなフォーマットで表されるアドレスは、一般に、IPv4−compatible−IPv6アドレスと呼ばれている。また、図12(b)では、用意された128ビットのうちの下位32ビットをアドレス情報の格納に使用し、47ビット目から32ビット目までを‘1’、その他のビットを‘0’にセットしている。このようなフォーマットで表されるアドレスは、一般に、IPv4−mapped−IPv6アドレスと呼ばれている。そして、所定の情報を格納されたヘッダと、送るべきデータは、一つのパケットとして、トランスレータ30に送られる。
【0013】
トランスレータ30は、送られてきたパケットをIPv4ネットワーク54用のパケットに変換する。具体的には、送られてきたパケットのヘッダに含まれている先程のIPv4−compatible−IPv6アドレスから、下位32ビット、すなわち、IPv6端末10のIPv4アドレスを切りだし、これを、図11(b)に示したIPv4ヘッダの「送信元IPアドレス」フィールドに格納する。また、これと同時に、送られてきたパケットのヘッダに含まれている先程のIPv4−mapped−IPv6アドレスから、下位32ビット、すなわち、送り先であるIPv4端末20のIPv4アドレスを切りだし、これを、図11(b)に示したIPv4ヘッダの「宛先IPアドレス」フィールドに格納する。その後、このヘッダは、その他の必要事項が設定され、送信データとともに一つのパケットとなってIPv4端末20に送られる。
【0014】
以上の方法を用いれば、確かに、IPv6ノードとIPv4ノードの相互接続が可能となる。
【0015】
このように、本発明は、バージョンの違い等によりアドレスの付与体系が異なっている2つのネットワークを結合することができるトランスレータを提供する。
【課題を解決するための手段】
【0016】
上記目的を達成するための本発明のトランスレータの一態様によれば、ネットワークプロトコルとして第1種のプロトコルを使用し、第1の長さの第1のアドレスが割り当てられている少なくとも1台の第1の装置と、第2種のプロトコルを使用し、第1の長さとは異なる第2の長さの第2のアドレスが割り当てられている少なくとも1台の第2の装置にネットワークを介して接続されるトランスレータにおいて、第1種のプロトコルを使用して通信される第1種のパケットと、第2種のプロトコルを使用して通信される第2種のパケットをネットワークに対して送受信する送受信部と、送受信部が受信した第1種のパケットに含まれ、少なくとも第1種のプロトコルであることを示す情報とそれぞれ前記第1の長さの送信元アドレス及び宛先アドレスとが格納されている第1種のヘッダを、第1種のヘッダとはヘッダフォーマットが異なり、少なくとも第2種のプロトコルであることを示す情報とそれぞれ前記第2の長さの送信元アドレス及び宛先アドレスとが格納されている第2種のヘッダに変換して第2種のパケットを生成するヘッダ変換部とを有するトランスレータが提供される。
【0017】
トランスレータにおいて、第1の装置から第2の装置に向けて送出された第1種のパケットを送受信部が受信すると、ヘッダ変換部は、第1種のパケットの第1種のヘッダに宛先アドレスとして格納されている第1の長さのアドレスであって下位に第2のアドレスを含む第3のアドレスから第2のアドレスを抽出するアドレス変換と、第1種のヘッダを第2種のヘッダに変換するための処理を実行し、第1種のヘッダを、宛先アドレスとして第2のアドレスが格納された第2種のヘッダに変換して第2種のパケットを生成する。そして、送受信部は、生成された第2種のパケットをネットワークに送出する。
【発明の効果】
【0018】
本発明によれば、第1種のネットワーク(例えば、IPv4ネットワーク)に存在する複数の対象機器のうちの一つである対象機器Aと、第2種のIPネットワーク(例えば、IPv6ネットワーク)に存在する複数の対象機器のうちの一つである対象機器Bとの間で、第1種のネットワークと第2種のネットワークとの間に設けられたトランスレータを介することにより、通信を行うことが可能となる。
【図面の簡単な説明】
【0019】
【図1】本発明が適用されたネットワークの一例を示した構成図。
【図2】図1のネットワークで使用されるIPv4/v6トランスレータの機能を示したブロック図。
【図3】図3(a):図1のネットワークに接続されるタイプAのIPv4端末で行われる処理の概要を示した説明図。図3(b):図1のネットワークに接続されるタイプBのIPv4端末で行われる処理の概要を示した説明図。図3(c):図1のネットワークに接続されるタイプCのIPv4端末で行われる処理の概要を示した説明図。
【図4】図1のネットワークに接続されるタイプAのIPv4端末の機能を示したブロック図。
【図5】図1のネットワークにおける、IPv6端末−IPv4端末間の通信手順(その1)を示したフローチャート。
【図6】図1のネットワークにおける、IPv6端末−IPv4端末間の通信手順(その2)を示したフローチャート。
【図7】図1のネットワークに接続されるタイプA、BのIPv4端末及びIPv4/v6トランスレータのそれぞれに設けられるアドレス変換情報テーブルの一例を示した説明図。
【図8】図7のアドレス変換情報テーブルの格納情報を送信するためのパケットのフォーマットを示した説明図。
【図9】本発明が適用されたネットワークのその他の例を示した構成図。
【図10】図10(a):本発明が適用されたネットワークに接続されるIPv4/v6トランスレータのハードウエア構成の一例を示した構成図。図10(b):本発明が適用されたネットワークに接続されるIPv4端末のハードウエア構成の一例を示した構成図。
【図11】図11(a):IPv6ヘッダのフォーマットの説明図。図11(b):IPv4ヘッダのフォーマットの説明図。
【図12】図12(a):IPv4−compatible−IPv6アドレスのフォーマットの説明図。図12(b):IPv4−mapped−IPv6アドレスのフォーマットの説明図。
【図13】IPv4ネットワークとIPv6ネットワークを接続するための方式を示した説明図。
【発明を実施するための形態】
【0020】
以下、本発明の一実施形態について、図面を参照しながら説明する。
【0021】
図1に示すように、本実施形態では、複数のIPv6端末51が接続されたIPv6ネットワーク52と、複数のIPv4端末53が接続されたIPv4ネットワーク54が存在し、これらのネットワークは、IPv6/v4トランスレータ55(以下、トランスレータ55と呼ぶ)を介して相互に接続されている。IPv6ネットワーク52では、図11(a)に示したIPv6ヘッダを有するパケット(以下、IPv6パケットと呼ぶ)によるデータ転送が行われる。IPv6パケットのヘッダでは、IPv6端末51は、通常のIPv6アドレスで表され、IPv4端末53は、IPv4−mapped−IPv6アドレス(図12(b))で表される。また、IPv4ネットワーク54では、図11(b)に示したIPv4ヘッダを有するパケット(以下、IPv4パケットと呼ぶ)によるデータ転送が行われる。IPv4パケットのヘッダにおいて、トランスレータ55は、該トランスレータ55、若しくは、特定のIPv4端末53で割り当てられたIPv4アドレスで表され、IPv4端末53は、通常のIPv4アドレスで表される。
【0022】
トランスレータ55は、図2に示すように、IPv6ネットワーク52に流れるIPv6パケットと、IPv4ネットワーク54に流れるIPv4パケットを順次取り込むIPv4/v6受信処理部31と、IPv4/v6受信処理部31で取り込んだパケットのヘッダを、アドレス変換情報テーブル35に格納されているアドレス変換情報に基づいて変換すると共に、必要に応じて、アドレス変換情報テーブル35の内容の更新を行うヘッダ変換部33と、ヘッダの変換処理を受けたパケットを、送り先となるネットワークに送出するIPv4/v6送信処理部32と、アドレス変換情報テーブル35に格納されているアドレス変換情報を、IPv4ネットワーク54に接続されている特定のノードと交換するアドレス変換情報交換部34とを備える。
【0023】
本実施形態では、IPv4ネットワーク54に接続されるIPv4端末53に3つタイプ(以下、タイプA、B、Cとする)が存在する。タイプAのIPv4端末53は、IPv6端末51で使用されるアプリケーションプログラム(以下、IPv6アプリケーションとする)の搭載が可能で端末であり、さらに、前述したアドレス変換情報を所有する。タイプAのIPv4端末53で行われる処理の概要は、図3(a)に示されている。タイプCのIPv4端末53は、IPv4端末53で使用されるアプリケーションプログラム(以下、IPv4アプリケーションとする)をそのまま搭載した従来の端末であり、例えば、プリンタ等の周辺機器が、これに該当する。タイプCのIPv4端末53で実行される処理の概要は、図3(c)に示す通りである。タイプBのIPv4端末53は、IPv4アプリケーションを搭載し、かつ、前述したアドレス変換情報を所有する端末で、その処理概要は、図3(b)に示す通りである。なお、トランスレータ55がアドレス変換情報の交換を行う特定のノードは、このうちタイプA、BのIPv4端末53である。
【0024】
図3(a)に示したTCP/IPv4処理81は、一般的なTCP/IP通信処理に相当するもので、ここでは、IPv4に従ったサービスが行われる。TCP/IPv4処理81では、この上位で行われる処理とのインターフェースとしてソケットインターフェース(IPv4ソケットIF)が用いられる。IPv6アプリケーション処理84は、IPv6アプリケーションが行う処理であり、この下位で行われる処理とのインターフェースとして、先程と同様、ソケットインターフェース(IPv6ソケットIF)を使用する。アドレス変換処理82及びアドレス変換情報交換処理83のそれぞれは、IPv4ソケットIFとIPv6ソケットIFとの間に介在する。アドレス変換処理82では、IPアドレスの変換処理等を含んだデータ転送が行われ、アドレス変換情報交換処理83では、その他のノード(例えば、トランスレータ55)と該IPv4端末53との間でアドレス変換情報の交換が行われる。
【0025】
図4には、タイプAのIPv4端末53の内部構成が示されている。
【0026】
TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。アドレス変換処理82は、アドレス変換処理部43が担当する。アドレス変換情報交換処理83は、アドレス変換情報交換処理部44が担当する。このほか、タイプAのIPv4端末53には、アドレス変換情報テーブル45が設けられている。
【0027】
つぎに、IPv6端末51とタイプAのIPv4端末53との間で行われるパケット交換について説明する。
【0028】
先ず、IPv6端末51側から通信を開始する場合のパケット交換について、図5のフローチャートに従って説明する。
【0029】
ここでは、前もって、送信元のIPv6端末51に、IPv6アドレス“::1234:5678:9abc”が割り当てられており、宛先のIPv4端末53に、IPv4アドレス“133.144.95.22”が割り当てられていることとする。
【0030】
IPv4アドレスの表記方法は、以下の通りである。
【0031】
1.8ビット毎に“.”で区切って10進数で表す。
例.123.3.2.1
IPv6アドレスの表記方法は、以下の通りである。
【0032】
1.16ビット毎に“:”で区切って16進数で表す。
例.1234:5678:9abc:def0:0fed:cba9:8765:4321
2.区切られた16ビット全てが0の場合、“::”で表してもよい。
例.1234::9abc:def0:0fed:cba9:8765:4321
3.区切られた16ビット全てが0で、これが連続する場合、1個の“::”で表してもよい。
例.1234::4321
4.下位32ビットにIPv4アドレスを含む場合、この下位32ビットについては、IPv4アドレスの表記方法を用いることができる。
例.::ffff:133.144.95.22
そして、IPv6端末51は、IPv6パケット56をIPv6ネットワーク52に送出する際(a1)、そのヘッダ内に、送信元IPアドレスとして自己のIPv6アドレス “::1234:5678:9abc”をセットすると共に、宛先IPアドレスとしてIPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットする。
【0033】
トランスレータ55のIPv4/v6受信処理部31は、IPv6ネットワーク52を流れるIPv6パケットを順次取り込み、その都度、取り込んだIPv6パケットが、「宛先IPアドレス」フィールドにIPv4−mapped−IPv6アドレスが格納されているパケット(具体的には、「宛先IPアドレス」フィールドの47ビット目から32ビット目までが‘1’にセットされ、それより上位の全てのビットが‘0’にセットされているパケット)であるか否かを判断する。該当するパケットを発見した場合、これをヘッダ変換部33に送る(b1)。ヘッダ変換部33は、パケットを受け取ると、該パケットに含まれている、送信元IPアドレスであるIPv6アドレスを抜き出し、抜き出したIPv6アドレスに予め対応付けられているIPv4アドレスを、アドレス変換情報テーブル35の中から探し出す(b2)。目的のIPv4アドレスがアドレス変換情報テーブル35の中に存在しなかった場合、ヘッダ変換部33は、前述のIPv6アドレスに対して、あるIPv4アドレスを割り当てる。ここでは、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てることとする(b3)。アドレス変換情報交換部34は、これらの対応関係をアドレス変換情報として、IPv4端末53に送信する(b4)。アドレス変換情報を交換するためのパケットのフォーマットは、図8に示す通りである。本例の場合、「IPv6アドレス」フィールド101に“::1234:5678:9abc”が格納され、「割当てIPv4アドレス」フィールド102に、“192.168.10.3”が格納される。「オプション」フィールド103は、本実施形態では特に使用しないが、通信に必要な各種制御情報を格納をすることができる。なお、(b4)のアドレス変換情報の送信は、通信相手となるIPv4端末53だけでなく、アドレス変換情報テーブル45を所有する全てのIPv4端末53に対して行う。また、ヘッダ変換部33は、アドレス変換情報をアドレス変換情報テーブル35に格納する(b5)。
【0034】
アドレス変換情報テーブル35の構成例は、図7に示されている。91は、IPv6ア
ドレスの格納領域、92は、割当てられたIPv4アドレスの格納領域、93は、オプシ
ョンデータの格納領域であり、例えば、上から順に、一行ずつ埋められていく。割り当て
るIPv4アドレスは、予め複数用意されており、これらは、図示省略したトランスレー
タ55内のメモリに格納されている。アドレス変換情報テーブル35自体も、このメモリ
に格納されている。
【0035】
なお、割り当てられたIPv4アドレスが使用される領域は、そのIPv4ネットワーク内で閉じているため、例えば、IPv6ネットワーク52に複数のIPv4ネットワークが接続していて、各IPv4ネットワークでIPv4アドレスが重なっていたとしても何の問題も生じない。すなわち、IPv4ネットワーク54が企業内通信網で、IPv6ネットワークが公衆回線を利用した外部の通信網である場合、その企業では、他の企業のIPv4ネットワークで使用されるIPv4アドレスを割当ててもよい。
【0036】
続いて、ヘッダ変換部33は、パケット内の送信元IPアドレスを、IPv6アドレス “::1234:5678:9abc”からIPv4アドレス“192.168.10.3”に置き換える。宛先IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv6ヘッダをIPv4ヘッダに変換するための各種処理も同時に実行する(b6)。続いて、IPv4/v6送信処理部32は、(b6)の変換処理を受けたパケットをIPv4端末53に向けて送出する。なお、(b2)の検索処理において、該当するIPv4アドレスが見つかった場合は、送信元IPアドレスとして、このIPv4アドレスが採用され、(b3)、(b4)、(b5)の各処理は、スキップされる。
【0037】
一方、IPv4端末53は、トランスレータ55から送出されたアドレス変換情報を受信すると(c1)、このアドレス変換情報を用いてアドレス変換情報テーブル45の内容を更新する(c2)。これにより、トランスレータ55のアドレス変換情報テーブル35の内容と、IPv4端末53のアドレス変換情報テーブル45の内容が一致する。アドレス変換情報テーブル45の内容の更新は、具体的には、アドレス変換情報交換処理部44が実施する。(c1)、(c2)の処理については、通信相手となるIPv4端末をはじめ、全てのIPv4端末にて実施される。
【0038】
また、IPv4端末53は、トランスレータ55から送出されたIPv4パケットを受信すると(c3)、更新されたアドレス変換情報テーブル45に基づいて、このIPv4パケットのアドレス変換を実施する。
【0039】
具体的には、IPv4端末53のTCP/IPv4受信処理部41は、IPv4ネットワーク54を流れる先程のIPv4パケットをTCP/IP受信し、これをアドレス変換処理部43に渡す。アドレス変換処理部43は、パケットを受け取ると、該パケットの送信元IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル45の中から探し出す。アドレス変換情報テーブル45の内容は、(c2)にて更新されているため、ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる。アドレス変換処理部43は、IPv6アドレス“::1234:5678:9abc”を送信元IPアドレスとしてパケット内にセットし、このパケットをIPv6アプリケーションに送る。宛先IPアドレスは、IPv4アドレスを図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレスが使われる。このようなアドレス変換を行えば、IPv6アプリケーションは、送信元IPアドレス及び宛先IPアドレスのそれぞれをIPv6アドレスで受け取ることができる。IPv6アプリケーションは、前述したようにIPv6用に開発されたアプリケーションプログラムであるため、受け取るIPアドレスは、IPv6アドレスで表現されている方が都合がよい。
【0040】
また、IPv6アプリケーションは、応答処理として、IPv6端末51にパケットを送ることもある。この場合、IPv6アプリケーションは、送るべきパケットに、送信元IPアドレスとして自己のIPv4アドレス“133.144.95.22”を図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレス“::ffff:133.144.95.22”セットし、宛先IPアドレスとしてIPv6端末51のIPv6アドレス“::1234:5678:9abc”をセットする。このパケットは、アドレス変換処理部43に渡され、先程とは逆のアドレス変換が施される。すなわち、アドレス変換処理部43は、宛先IPアドレスとしてセットされている先程のIPv6アドレス“::1234:5678:9abc”をIPv4アドレス“192.168.10.3”に置き換える。送信元IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。その後、TCP/IPv4送信処理部42は、アドレス変換処理部43にて変換処理を受けたパケット(IPv4パケット57:図1)をトランスレータ55に向けて送出する(c4)。
【0041】
トランスレータ55のIPv4/v6受信処理部31は、IPv4ネットワーク54を流れるIPv4パケット57を取り込み(b8)、これをヘッダ変換部33に送る。ヘッダ変換部33は、パケットを受け取ると、該パケットの宛先IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル35の中から探し出す。ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる(b9)。ヘッダ変換部33は、その後、該パケットに、送信元IPアドレスとして、IPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットすると共に、宛先IPアドレスとして、先程抽出したIPv6アドレス“::1234:5678:9abc”をセットする。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv4ヘッダをIPv6ヘッダに変換するための各種処理も同時に実行する(b10)。IPv4/IPv6送信処理部32は、(b10)の変換処理を受けたパケットをIPv6端末51に向けて送出する(b11)。その後、IPv6端末51は、このパケットを受信する(a2)。
【0042】
なお、IPv6アドレスに対応付けた前述のIPv4アドレスについては、IPv6端末51とIPv4端末53との間の一連の通信が終了した時点で、解放するようにすればよい。また、ネットワークのシステム管理の際に発せられるコマンド等に応じて、アドレス変換情報テーブルのエントリを削除するようにしてもよい。また、アドレス変換情報テーブルのオプションフィールドに、通信が行われなくなってからの時間を格納し、タイムアウトが発生した割り当てIPv4アドレスについては、その時点で強制的に解放するようにしてもよい。
【0043】
つぎに、IPv4端末53側から通信を開始する場合のパケット交換について、図6のフローチャートに従って説明する。
【0044】
ここでも、先程と同様、IPv6端末51に、IPv6アドレス“::1234:5678:9abc”が割り当てられており、IPv4端末53に、IPv4アドレス“133.144.95.22”が割り当てられていることとする。
【0045】
そして、IPv4端末53のIPv6アプリケーションは、送るべきパケットに、送信元IPアドレスとして自己のIPv4アドレス“133.144.95.22”を図12(b)に示したIPv4−mapped−IPv6アドレスに拡張したIPv6アドレス“::ffff:133.144.95.22”をセットし、宛先IPアドレスとしてIPv6端末51のIPv6アドレス“::1234:5678:9abc”をセットする。このパケットは、アドレス変換処理部43に渡される。
【0046】
アドレス変換処理部43は、パケットを受け取ると、該パケットに含まれている、宛先IPアドレスであるIPv6アドレスを抜き出し、抜き出したIPv6アドレスに予め対応付けられているIPv4アドレスを、アドレス変換情報テーブル45の中から探し出す(c1)。目的のIPv4アドレスがアドレス変換情報テーブル45の中に存在しなかった場合、アドレス変換処理部43は、前述のIPv6アドレスに対して、あるIPv4アドレスを割り当てる。ここでは、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てることとする(c2)。アドレス変換処理部43は、これらの対応関係をアドレス変換情報として、トランスレータ55に送信する(c3)。アドレス変換情報を交換するためのパケットのフォーマットは、図8に示す通りである。また、アドレス変換処理部43は、このアドレス変換情報をアドレス変換情報テーブル45に格納する(c4)。アドレス変換情報テーブル45の構成例は、図7に示されている。なお、割り当てるIPv4アドレスは、予め複数用意されており、これらは、図示省略したIPv4端末53の内のメモリに格納されている。アドレス変換情報テーブル45自体も、このメモリに格納されている。その後、アドレス変換処理部43は、パケット内のIPv6アドレス“::1234:5678:9abc”をIPv4アドレス“192.168.10.3”に置き換える。送信元IPアドレスについては、IPv6アドレスの下位32ビットから抽出したIPv4アドレスを使う。また、アドレス変換処理部43は、このようなアドレス変換のほか、IPv6ヘッダをIPv4ヘッダに変換するための各種処理も同時に実行する(c5)。その後、TCP/IPv4送信処理部42は、アドレス変換処理部43にて変換処理を受けたパケット(IPv4パケット57:図1)をトランスレータ55に向けて送出する(c6)。なお、(c1)の検索処理において、該当するIPv4アドレスが見つかった場合は、送信元IPアドレスとして、このIPv4アドレスが採用され、(c2)、(c3)、(c4)の各処理は、スキップされる。
【0047】
一方、トランスレータ55は、IPv4端末53から送出されたアドレス変換情報を受信すると(b1)、このアドレス変換情報を用いてアドレス変換情報テーブル35の内容を更新する(b2)。これにより、IPv4端末53のアドレス変換情報テーブル45の内容とトランスレータ55のアドレス変換情報テーブル35の内容が一致する。アドレス変換情報テーブル35の内容の更新は、具体的には、アドレス変換情報交換部34が実施するなお、(c3)のアドレス変換情報の送信は、トランスレータ55だけでなく、アドレス変換情報テーブル45を所有する全てのIPv4端末53に対して行われ、それぞれのアドレス変換情報テーブル45の内容が更新される。このようにすれば、割り当てるIPv4アドレスが各IPv4端末53とトランスレータとの間で重複しない。
【0048】
そして、トランスレータ55のIPv4/v6受信処理部31は、IPv4ネットワーク54を流れるIPv4パケット57を取り込み(b3)、これをヘッダ変換部33に送る。ヘッダ変換部33は、パケットを受け取ると、該パケットの宛先IPアドレスである、IPv4アドレス“192.168.10.3”を抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル35の中から探し出す。アドレス変換情報テーブル35の内容は、(b2)にて更新されているため、ここでは、IPv6アドレス“::1234:5678:9abc”が抽出されることになる(b4)。ヘッダ変換部33は、その後、該パケットに、送信元IPアドレスとして、IPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットすると共に、宛先IPアドレスとして、先程抽出したIPv6アドレス“::1234:5678:9abc”をセットする。また、ヘッダ変換部33は、このようなアドレス変換のほか、IPv4ヘッダをIPv6ヘッダに変換するための各種処理も同時に実行する(b5)。IPv4/IPv6送信処理部32は、(b5)の変換処理を受けたパケットをIPv6端末51に向けて送出する(b6)。その後、IPv6端末51は、このパケットを受信する(a1)。
【0049】
また、IPv6端末51は、応答処理として、IPv4端末53にIPv6パケット51を送ることもある。この場合、IPv6端末51は、IPv6パケット56をIPv6ネットワーク52に送出する際に(a2)、そのヘッダに、送信元IPアドレスとして自己のIPv6アドレス“::1234:5678:9abc”をセットすると共に、宛先IPアドレスとしてIPv4端末53のIPv4−mapped−IPv6アドレス“::ffff:133.144.95.22”をセットする。このIPv6パケット56は、トランスレータ55を介してIPv4端末53に送られる(c7)。トランスレータ55の処理((b7)、(b8)、(b9)、b(10))は、図6の(b1)、(b2)、(b6)、(b7)と同様なものなので、ここでは説明を繰り返さない。
【0050】
なお、IPv6アドレスに割り当てた前述のIPv4アドレスについては、前述と同様な解放処理を行えばよい。
【0051】
つぎに、タイプBのIPv4端末53について説明する。
【0052】
タイプBのIPv4端末53は、前述した通り、IPv4アプリケーションを搭載し、かつ、前述したアドレス変換情報を所有する端末である。タイプBのIPv4端末53では、図3(b)に示す様に、TCP/IPv4処理81と、アドレス変換処理82と、アドレス変換処理83と、IPv4アプリケーション処理85とが実施される。IPv4アプリケーション処理85は、同図に示すように、IPv4ソケットインターフェース介してTCP/IPv4処理81上で実行される。これらの階層構造については、従来のIPv4端末53と同じであり、IPv4アプリケーション処理85では、TCP/IPv4処理81から上げられてくるパケットのIPアドレスをIPv4アドレスで受け取ることとなる。なお、TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。アドレス変換処理82は、アドレス変換処理部43が担当する。アドレス変換情報交換処理83は、アドレス変換情報交換処理部44が担当する。
【0053】
このようにタイプBのIPv4端末53では、アプリケーション側がIPv6アドレスを特に必要としていない。
【0054】
しかしながら、ユーザにとっては、確認等のため、通信相手のIPv6アドレスを知りたいということもある。
【0055】
そこで、タイプBのIPv4端末53では、通信相手のIPv6アドレスを表示画面等に出力する。
【0056】
すなわち、タイプBのIPv4端末53のアドレス変換処理部43は、IPv4アプリケーションから出力されたパケットを受け取ると、該パケットの宛先IPアドレスであるIPv4アドレスを抜き出し、抜き出したIPv4アドレスに対応付けられているIPv6アドレスをアドレス変換情報テーブル45の中から探し出し、これを表示画面等に出力する。
【0057】
また、さらに、タイプBのIPv4端末53では、トランスレータやタイプAのIPv4端末で自動的に行われていたIPv6アドレスとIPv4アドレスとの対応付けを、ユーザが任意に行うことができる。
【0058】
すなわち、アドレス変換処理部43は、ユーザの操作内容に応じて、アドレス変換情報テーブル45を更新する。例えば、ユーザが、IPv6アドレス“::1234:5678:9abc”に対して、IPv4アドレス“192.168.10.3”を割り当てるといった内容の操作を行った場合は、図7のアドレス変換情報テーブル45は、例えば、図7に示す様な内容に設定される。アドレス変換情報テーブル45が更新されると、アドレス変換情報交換部44は、この更新部分をパケット(図8参照)して、トランスレータ55や、アドレス変換情報テーブルを所有するその他のIPv4端末53に送信する。これにより、各IPv4端末53のアドレス変換情報テーブル45の内容と、トランスレータ55のアドレス変換情報テーブル35の内容が一致する。
【0059】
IPv6端末51とタイプBのIPv4端末53との間で行われるパケット交換については、図5、図6を用いて説明した先程のフローと同様なことが行われるため、これについての説明は省略する。
【0060】
つぎに、タイプCのIPv4端末53について説明する。
【0061】
タイプCのIPv4端末53は、前述した通り、IPv4端末53で使用されるIPv4アプリケーションをそのまま搭載した端末である。IPv4アプリケーションがROM化されていて、そのままではソフトウエア的な変更を行うことができない端末も、このタイプCの端末53に含まれる。タイプCのIPv4端末53では、図3(c)に示す様に、IPv4アプリケーション処理85が、IPv4ソケットインターフェース介してTC
P/IPv4処理81上で実行される。TCP/IPv4処理81は、TCP/IPv4受信処理部41及びTCP/IPv4送信処理部42が担当する。
【0062】
なお、タイプCのIPv4端末53では、その構成上、端末側から通信を開始することはできないが、相手側から通信を開始すれば、以下に示すように特に問題は生じない。
【0063】
タイプCのIPv4端末51のIPv4アプリケーションは、TCP/IPv4受信処理部41から出力されたパケットを受け取ると、受け取ったパケットの送信元IPアドレスと宛先IPアドレスを抜き出し、受け取ったパケットのデータ部で指定された所定の処理を行う。その後、IPv4アプリケーションは、必要があれば、その処理結果をパケットに詰め、これをTCP/IPv4送信処理部42に渡す。この際、IPv4アプリケーションは、抜き出した宛先IPアドレスと送信元IPアドレスを入れ替えて、これらをパケットに設定する。例えば、受け取ったパケットの宛先IPアドレス「フィールド」にIPv4アドレス“133.144.95.22”が格納され、送信元IPアドレス「フィールド」にIPv4アドレス“192.168.10.3”が格納されている場合は、宛先IPアドレス「フィールド」にIPv4アドレス“192.168.10.3”が格納され、送信元IPアドレス「フィールド」にIPv4アドレス“133.144.95.22”が格納される。このパケットは、TCP/IPv4送信処理部42によってIPv4ネットワーク54に送出され、トランスレータ55に届けられる。
【0064】
以上、IPv4ネットワークとIPv6ネットワークがIPv4/v6トランスレータで接続される場合の一実施形態について説明したが、ここで使用されるIPv6/v4トランスレータの実際のハードウエアは、例えば、図10(a)に示すように構成される。
【0065】
このIPv6/v4トランスレータは、CPU71と、メモリ72と、ネットワークインタフェース73−1、73−2〜73−nを有して構成されている。CPU71は、メモリ72の管理や、ネットワークインタフェース73−1、73−2〜73−nの制御を行う。また、メモリ72には、各種プログラムが予め記憶されており、これらのプログラムを必要に応じてCPU71で実行することで、図2に示した、IPv4/v6受信処理部31、IPv4/v6送信処理部32、ヘッダ変換部33、アドレス変換情報交換部34、アドレス変換情報テーブル35が実現される。
【0066】
なお、図1では、IPv6ネットワーク52とIPv4ネットワーク54が一つずつ存在するため、例えば、IPv6ネットワーク52用にネットワークインタフェース73−1が使用され、IPv4ネットワーク54用にネットワークインタフェース73−2が使用されることになる。この場合、ネットワークインタフェース73−1が、IPv6ネットワーク52を流れるIPv6パケットを取り込んでメモリ72に格納し、ネットワークインタフェース73−2が、ヘッダ変換等を施されて生成されたIPv4パケットをIPv4ネットワーク54に送出する。逆方向にパケットを流す場合も、ネットワークインタフェース73−1、73−2のそれぞれが、今と逆の動作を行う。なお、複数のIPv6、IPv4ネットワークが存在する場合には、その数に応じて、ネットワークインタフェースが使用されることになる。
【0067】
また、IPv4端末の実際のハードウエアは、例えば、図10(b)に示すように構成
される。
【0068】
このIPv4端末は、CPU71と、メモリ72と、ネットワークインタフェース73を有して構成されている。CPU71は、メモリ72の管理や、ネットワークインタフェース73の制御を行う。メモリ72には、各種プログラムが予め記憶されている。例えば、タイプAのIPv4端末の場合、メモリ72のプログラムが必要に応じてCPU71で実行され、TCP/IPv4受信処理部41、TCP/IPv4送信処理部42、アドレス変換処理部43、アドレス変換情報交換処理部44、アドレス変換情報テーブル45や、IPv4アプリケーションが実現される。ネットワークインタフェース73は、IPv4ネットワーク54を流れるIPv4パケットを取り込んでメモリ72に格納すると共に、アドレス変換等を施されて生成されたIPv4パケットをIPv4ネットワーク54に送出する。
【0069】
また、特定のIPv6端末については、予めIPv4アドレスを割り当てておき、これをアドレス変換情報テーブルに格納しておくようにしてもよい。このようにすれば、割当てに関する処理時間が削減される。
【0070】
また、本発明は、図1に示すようなネットワーク構成に限定されるわけではない。例えば、IPv4ネットワークとIPv6ネットワークが混在するネットワークにも本発明は適用可能である。図9には、IPv4端末62とIPv6端末61が接続されたIPv4/v6混在ネットワーク64が示されている。IPv4/v6混在ネットワーク64では、IPv4パケット66と、IPv6パケット65が共存することになるが、IPv4/v6トランスレータ63は、これらを自身に取り込み、取り込んだパケットに対して、必要ならば、先程説明したアドレス変換及びヘッダ変換を施し、これをネットワークに返却する。このようにすれば、IPv4端末62とトランスレータ63と間では、IPv4パケット66による通信が行われ、トランスレータ63とIPv6端末61との間ではIPv6パケット65による通信が行われることになる。
【0071】
また、本発明は、IPv4ネットワークとIPv6ネットワークとの結合に限定されるわけでなく、バージョンの違い等によりIPアドレスの付与体系が異なっている2種類のネットワーク(第1種のIPネットワークと第2種のIPネットワーク)に適用可能である。
【符号の説明】
【0072】
31:IPv4/v6受信処理部、 32:IPv4/v6送信処理部、 33:ヘッダ変換部、 34:アドレス変換情報交換部、 35:アドレス変換情報テーブル、 41:TCP/IPv4受信処理部、 42:TCP/IPv4送信処理部、 43:アドレス変換処理部、 44:アドレス変換情報交換処理部、 45:アドレス変換情報テーブル、 51、61:IPv6端末、 52:IPv6ネットワーク、 53、62:IPv4端末、 54:IPv4ネットワーク、 55、63:IPv4/v6トランスレータ、 56、65:IPv6パケット、 57、66:IPv4パケット、 64:IPv6/v4混在ネットワーク、 71:CPU、 72:メモリ、 73:ネットワークインタフェース、 81:TCP/IPv4処理、 82:アドレス変換処理、 83:アドレス変換情報交換処理、 84:IPv6アプリケーション、 85:IPv4アプリケーション、 91、101:IPv6アドレスフィールド、 92、102:割り当てIPv4アドレスフィールド、 93、103:オプションフィールド
【特許請求の範囲】
【請求項1】
ネットワークに対してIPv4パケットを送受信する端末であって、
プログラムを実行し、IPv6ヘッダを含むIPv6パケットを生成するパケット生成部と、
少なくとも1つのIPv4アドレスを記憶する記憶部と、
前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに宛先アドレスとして格納されているIPv6アドレスに対して、前記記憶部で記憶しているIPv4アドレスを割り当て、前記IPv6ヘッダをIPv4ヘッダに変換するための処理を実行し、前記IPv6ヘッダを、宛先アドレスとして前記割り当てたIPv4アドレスが格納されたIPv4ヘッダに変換してIPv4パケットを生成する変換部と、
前記生成されたIPv4パケットを前記ネットワークに送信する送信部とを有することを特徴とする端末。
【請求項2】
請求項1に記載の端末であって、
前記IPv6アドレスと割り当てた前記IPv4アドレスとを対応付けて記憶する第2の記憶部を有することを特徴とする端末。
【請求項3】
請求項2に記載の端末であって、さらに、
前記ネットワークからIPv4パケットを受信する受信部を有し、
前記受信部がIPv4パケットを受信すると、前記変換部は、前記受信したIPv4パケットのIPv4ヘッダに送信元アドレスとして格納されているIPv4アドレスと対応付けて記憶されているIPv6アドレスを前記第2の記憶部から取得し、前記IPv4ヘッダを、送信元アドレスとして前記取得したIPv6アドレスが格納されているIPv6ヘッダに変換することを特徴とする端末。
【請求項4】
請求項2または請求項3に記載の端末であって、
前記第2の記憶部は、所定時間経過後に前記IPv6アドレスと割り当てた前記IPv4アドレスとを対応付けを解除することを特徴とする端末。
【請求項5】
請求項1乃至請求項4のいずれかに記載の端末であって、さらに、
前記IPv6アドレスと割り当てた前記IPv4アドレスとの対応関係を前記ネットワークへ送信するアドレス変換情報交換部を有することを特徴とする端末。
【請求項6】
請求項1乃至請求項5のいずれかに記載の端末であって、
前記変換部は、さらに、前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに送信元アドレスとして格納されているIPv4−mapped−IPv6アドレスからIPv4アドレスを抽出し、前記IPv6ヘッダを、送信元アドレスとして前記抽出したIPv4アドレスが格納されているIPv4ヘッダに変換することを特徴とする端末。
【請求項7】
ネットワークに対してIPv4パケットを送受信する端末であって、
プログラムを実行し、IPv6ヘッダを含むIPv6パケットを生成するパケット生成部と、
IPv6アドレスとIPv4アドレスとを対応付けて記憶する記憶部と、
前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに宛先アドレスとして格納されているIPv6アドレスと対応付けられて前記記憶部に記憶されているIPv4アドレスを前記記憶部から抽出し、前記IPv6ヘッダを、宛先アドレスとして前記IPv4アドレスが格納され、IPv6ヘッダとはヘッダフォーマットが異なるIPv4ヘッダに変換してIPv4パケットを生成する変換部と、
前記生成されたIPv4パケットを前記ネットワークに送信する送信部とを有することを特徴とする端末。
【請求項8】
請求項7に記載の端末であって、さらに、
前記ネットワークからIPv4パケットを受信する受信部を有し、
前記受信部がIPv4パケットを受信すると、前記変換部は、前記受信したIPv4パケットのIPv4ヘッダに送信元アドレスとして格納されているIPv4アドレスと対応付けて記憶されているIPv6アドレスを前記第2の記憶部から取得し、前記IPv4ヘッダを、送信元アドレスとして前記取得したIPv6アドレスが格納されているIPv6ヘッダに変換することを特徴とする端末。
【請求項9】
請求項7または請求項8に記載の端末であって、さらに、
前記記憶部に記憶したIPv6アドレスとIPv4アドレスとの対応関係を前記ネットワークへ送信するアドレス変換情報交換部を有することを特徴とする端末。
【請求項10】
請求項7乃至請求項9のいずれかに記載の端末であって、
前記変換部は、さらに、前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに送信元アドレスとして格納されているIPv4−mapped−IPv6アドレスからIPv4アドレスを抽出し、前記IPv6ヘッダを、送信元アドレスとして前記抽出したIPv4アドレスが格納されているIPv4ヘッダに変換することを特徴とする端末。
【請求項1】
ネットワークに対してIPv4パケットを送受信する端末であって、
プログラムを実行し、IPv6ヘッダを含むIPv6パケットを生成するパケット生成部と、
少なくとも1つのIPv4アドレスを記憶する記憶部と、
前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに宛先アドレスとして格納されているIPv6アドレスに対して、前記記憶部で記憶しているIPv4アドレスを割り当て、前記IPv6ヘッダをIPv4ヘッダに変換するための処理を実行し、前記IPv6ヘッダを、宛先アドレスとして前記割り当てたIPv4アドレスが格納されたIPv4ヘッダに変換してIPv4パケットを生成する変換部と、
前記生成されたIPv4パケットを前記ネットワークに送信する送信部とを有することを特徴とする端末。
【請求項2】
請求項1に記載の端末であって、
前記IPv6アドレスと割り当てた前記IPv4アドレスとを対応付けて記憶する第2の記憶部を有することを特徴とする端末。
【請求項3】
請求項2に記載の端末であって、さらに、
前記ネットワークからIPv4パケットを受信する受信部を有し、
前記受信部がIPv4パケットを受信すると、前記変換部は、前記受信したIPv4パケットのIPv4ヘッダに送信元アドレスとして格納されているIPv4アドレスと対応付けて記憶されているIPv6アドレスを前記第2の記憶部から取得し、前記IPv4ヘッダを、送信元アドレスとして前記取得したIPv6アドレスが格納されているIPv6ヘッダに変換することを特徴とする端末。
【請求項4】
請求項2または請求項3に記載の端末であって、
前記第2の記憶部は、所定時間経過後に前記IPv6アドレスと割り当てた前記IPv4アドレスとを対応付けを解除することを特徴とする端末。
【請求項5】
請求項1乃至請求項4のいずれかに記載の端末であって、さらに、
前記IPv6アドレスと割り当てた前記IPv4アドレスとの対応関係を前記ネットワークへ送信するアドレス変換情報交換部を有することを特徴とする端末。
【請求項6】
請求項1乃至請求項5のいずれかに記載の端末であって、
前記変換部は、さらに、前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに送信元アドレスとして格納されているIPv4−mapped−IPv6アドレスからIPv4アドレスを抽出し、前記IPv6ヘッダを、送信元アドレスとして前記抽出したIPv4アドレスが格納されているIPv4ヘッダに変換することを特徴とする端末。
【請求項7】
ネットワークに対してIPv4パケットを送受信する端末であって、
プログラムを実行し、IPv6ヘッダを含むIPv6パケットを生成するパケット生成部と、
IPv6アドレスとIPv4アドレスとを対応付けて記憶する記憶部と、
前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに宛先アドレスとして格納されているIPv6アドレスと対応付けられて前記記憶部に記憶されているIPv4アドレスを前記記憶部から抽出し、前記IPv6ヘッダを、宛先アドレスとして前記IPv4アドレスが格納され、IPv6ヘッダとはヘッダフォーマットが異なるIPv4ヘッダに変換してIPv4パケットを生成する変換部と、
前記生成されたIPv4パケットを前記ネットワークに送信する送信部とを有することを特徴とする端末。
【請求項8】
請求項7に記載の端末であって、さらに、
前記ネットワークからIPv4パケットを受信する受信部を有し、
前記受信部がIPv4パケットを受信すると、前記変換部は、前記受信したIPv4パケットのIPv4ヘッダに送信元アドレスとして格納されているIPv4アドレスと対応付けて記憶されているIPv6アドレスを前記第2の記憶部から取得し、前記IPv4ヘッダを、送信元アドレスとして前記取得したIPv6アドレスが格納されているIPv6ヘッダに変換することを特徴とする端末。
【請求項9】
請求項7または請求項8に記載の端末であって、さらに、
前記記憶部に記憶したIPv6アドレスとIPv4アドレスとの対応関係を前記ネットワークへ送信するアドレス変換情報交換部を有することを特徴とする端末。
【請求項10】
請求項7乃至請求項9のいずれかに記載の端末であって、
前記変換部は、さらに、前記パケット生成部が生成したIPv6パケットのIPv6ヘッダに送信元アドレスとして格納されているIPv4−mapped−IPv6アドレスからIPv4アドレスを抽出し、前記IPv6ヘッダを、送信元アドレスとして前記抽出したIPv4アドレスが格納されているIPv4ヘッダに変換することを特徴とする端末。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2013−31197(P2013−31197A)
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2012−192762(P2012−192762)
【出願日】平成24年9月3日(2012.9.3)
【分割の表示】特願2010−102827(P2010−102827)の分割
【原出願日】平成8年7月4日(1996.7.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願日】平成24年9月3日(2012.9.3)
【分割の表示】特願2010−102827(P2010−102827)の分割
【原出願日】平成8年7月4日(1996.7.4)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]