説明

パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体

【課題】
従来PC/WS上のIPv4に対応したアプリケーションをIPv6ネットワークに接続するホストと通信させるためには、アドレス変換ルータが必要であった。アドレス変換ルータを使用する場合、アドレス変換ルータにかかる負荷が高くなるという問題点があった。
【解決手段】
IPv6ネットワークに接続するLAN制御装置において、IPv4−IPv6プロトコル変換制御機能をLANドライバ内に持たせる。プロトコル変換制御部は、プロトコル制御部からIPv4パケットデータが渡されると、ヘッダ内の送信先IPv4アドレスがプロトコル変換制御部内のアドレス変換テーブルに登録されていたら、対応するIPv6アドレスに変換して、IPv6ヘッダを作成し、IPv6パケットとしてLAN上に送信する。このような制御手段を用いることにより、従来のIPv4対応APをIPv6ネットワーク上で動作させることが可能になる。

【発明の詳細な説明】
【技術分野】
【0001】
IPv4ネットワークに対応するアプリケーションをIPv6ネットワーク上で動作させる方法,パケット生成方法、IPネットワーク用トランスレータ,およびNAT(Network Address Translator)、並びにパケット生成プログラムを記録した記憶媒体に関する。
【背景技術】
【0002】
TCP(Transmission Control Protocol)/IP(Internet Protocol)通信で使用するネットワーク層のプロトコルとして現在最もよく知られているのはIPである。現時点では、バージョン4のIP(以下、IPv4と呼ぶ)が普及している。
【0003】
IPは現在、インターネットの普及などと歩調を合わせて、様々な通信サービスに急速に広がりつつあるが、その一方で、IPアドレスの枯渇という深刻な問題に直面している。
【0004】
これを解決するための手段として現在、IPv4のプライベートアドレス空間をローカルなLANにつける暫定的な解決策やバージョン6のIP(以下、IPv6と呼ぶ)が提案されている。
【0005】
現在では、IPv6によるLANとIPv4によるLANが混在した形で大規模なLANが形成されつつある。そして、IPv6によるLANとIPv4によるLANの相互接続に関する標準化のドキュメントとして非特許文献1のRFC1933がある。非特許文献1ではIPv6ソフトウエアを有する通信制御装置においてIPv4アドレスをIPv6アドレスにマッピングすることでIPv6ネットワークの相互接続を可能にしている。
【0006】
このように、IPv6ネットワークが形成されつつある中で、IPv6対応のAPは、IPv4対応のAPに比べて、非常に少ない。
【0007】
【非特許文献1】RFC1933(Transition Mechanism for IPv6 Hosts and Routers; R.Gilligan, 1996.4, IETF)
【発明の開示】
【発明が解決しようとする課題】
【0008】
従来PC/WS上のIPv4対応アプリケーションとPC/WSのIPv6対応アプリケーションが、NAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに直接通信する手段はなかった。
【0009】
アドレス変換ルータを使用する場合、従来ルーティング処理に加えてプロトコル変換も行うためアドレス変換ルータにかかる負荷が大きい。また、IPv4のハードウエアアドレス解決用パケットは、変換されない。
【0010】
本発明の目的は、
(1)PC/WS上のIPv4対応のAPがNAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに、直接PC/WS上のIPv6対応アプリケーションと通信できるようにすること。
(2)既存のIPv4対応のAPが接続先ホストのIPアドレスを意識することなく通信するためには、DNS(Domain Name System)による論理名によるアドレス解決が必須である。本発明の第2の目的は、IPv4対応のAPが、通信相手のアドレスを意識せずに通信させるため、IPv6対応のDNS機能(IPv6アドレス問い合わせ機能)を提供することである。
(3)IPv4対応APがIPv6対応APと通信するため、既存APが出すIPv4のハードウエアアドレス解決パケットをIPv6対応のハードウエアアドレス解決パケットに変換できるようにすることである。
【課題を解決するための手段】
【0011】
PC/WS等のLAN制御装置は、通常IPv4対応AP、IPv4プロトコル制御部から構成される。
【0012】
上記目的を達成させるため、LAN制制御装置内のIPv4プロトコル制御部とLAN制御部の間にプロトコル変換制御部を設ける。プロトコル変換制御部はIPv4−IPv6スイッチ制御部、バッファ変換制御部、ヘッダ変換制御部、IPv6送受信制御部1014,DNS−NAT連携制御部から構成する。
【0013】
上記第1の課題を解決するためプロトコル変換制御部は、IPv4プロトコル制御部から出力されるIPv4パケットをIPv6パケットに変換してLAN制御部へ出力する。またLAN制御部から出力されたIPv6パケットをIPv4パケットに変換し、IPv4プロトコル制御部へ出力する。
【0014】
つぎに第2、第3の課題を解決するための各制御部間の制御とデータの流れを説明する。
【0015】
まず、送信の場合について説明する。
【0016】
IPv4対応APからIPv4プロトコル制御部にデータが渡されIPv4プロトコル制御部からIPv4パケットがプロトコル変換制御部1006に渡されると、プロトコル変換制御部は渡されたパケットを解釈し、次のような処理を行う。ARPリクエストパケットの場合、IPv4プロトコル制御部に対して、プロトコル変換制御部で生成したハードウエアアドレスを通知し、実際のハードウエアアドレス解決は、IPv6プロトコルを使って行うことにより解決する。
【0017】
DNSの問い合わせパケットの場合、IPv6アドレスとIPv4アドレスの両方を問い合わせ、IPv6アドレスが応答パケットとして返ってきたときには、IPv6アドレスに対応するIPv4アドレスをIPv4プロトコル制御部に伝える。
【0018】
通常のパケットの場合、IPv4ヘッダ内の送信先IPv4アドレスを見て、プロトコル変換制御部内のアドレス変換テーブルに登録されているアドレスの場合は、対応するIPv6アドレスに変換して、IPv6ヘッダを作成し、IPv6パケットとしてLAN上に送信する。プロトコル変換制御部内のアドレス変換テーブルに登録されていない場合は、そのままIPv4パケットをLAN上に送信する。
【0019】
次に受信の場合について説明する。
【0020】
LAN制御部からIPv6パケットを受信すると、プロトコル変換制御部はIPv6ヘッダ内の送信元IPv6アドレスを見てプロトコル変換制御部内のアドレス変換テーブルに登録されているアドレスの場合は、対応するIPv4アドレスに変換してIPv4ヘッダを作成し、上位のIPv4プロトコル制御部にIPv4パケットデータを渡す。
【0021】
プロトコル制御部内のアドレス変換テーブルに登録されていないIPv6アドレスの場合は、その受信パケットを廃棄する。LAN制御部からIPv4パケットを受信したときはDNS応答パケット以外のパケットデータをプロトコル制御部に渡す。このようにして、IPv4対応APとIPv6対応APを通信させることができる。
【0022】
以上のような手段を用いることにより上記目的は達成される。
【発明の効果】
【0023】
プロトコル変換制御部を従来のプロトコル制御部とLAN制御部の間におき、プロトコル制御部とLAN制御部との間で流れるパケットをプロトコル変換制御部がIPv4とIPv6のヘッダ変換することにより、プロトコル制御部にデータを渡すアプリケーションがIPv4対応のものであってもIPv6ネットワークに接続される他の装置とIPv6による通信が可能になる。
【発明を実施するための最良の形態】
【0024】
本発明を示す一実施例について説明する。
【0025】
まず、本実施例を使用したホストを接続したネットワーク構成例について説明する。
【0026】
図2は、本実施例のネットワーク構成例を示した図である。IPv6ネットワークとIPv4ネットワークをIPv4−IPv6変換ルータ2012が接続している。IPv4ネットワーク上には、IPv4ネットワークとIPv6ネットワークのドメインネームを管理するDNS(ドメインネームシステム)サーバ2017が接続している。それから、PC等の既存のIPv4対応のホストD2018が接続している。
【0027】
IPv6ネットワークには、ホストA1001,ホストB2001,ホストC2007が接続している。ホストA1001及びホストB2001は、本実施例で説明するIPv4−IPv6変換機能を持ったホストである。ホストCは、IPv6専用ホストで、IPv6対応のAPが動作していホストA及びB内には、IPv4対応AP1004,プロトコル制御部1005,プロトコル変換制御部1006,LAN制御部1007がある。
【0028】
まず、ホストA内の各制御部間のインタフェースについて説明する。
【0029】
TCP/IPv4対応AP1004とインタフェースプロトコル制御部1005間のインタフェースは、ユーザデータで行われる。
【0030】
プロトコル制御部1005とプロトコル変換制御1006の間は、IPv4パケットで行われる。IPv4パケットとは、MAC(Media Access Control)ヘッダ部とIPv4パケットデータ部から構成される。プロトコル変換制御部1006とLAN制御部1007の間はIPv6パケットとIPv4パケットで行われる。
【0031】
IPv6パケットとは、MACヘッダ部とIPv6ヘッダ部とIPv6パケットデータ部から構成される。つまり、プロトコル変換制御部1006は、プロトコル制御部1005から入力される。IPv4パケットのIPv4ヘッダを見てヘッダ変換するかどうかを判定し、変換する場合はIPv6ヘッダに変換してIPv6パケットをLAN制御部へ出力する。
【0032】
つぎにホストA〜Dで設定されるアドレスについて説明する。
【0033】
ホストAのプロトコル制御部が保持するIPv4アドレスをIPv4−A,ホストBのプロトコル制御部が保持するIPv4アドレスをIPv4−B,ホストDのプロトコル制御部が保持するIPv4アドレスをIPv4−Dとする。
【0034】
ホストAのアドレス変換テーブルの構成例を図3に示す。
【0035】
ホストAのIPv4アドレスIPv4−AにIPv6アドレスIPv6−Aが対応し、ホストBのIPv6アドレスIPv6−BにプライベートIPv4アドレスIPv4−B(private)が対応し、ホストCのIPv6アドレスIPv6−CにプライベートIPv4アドレスIPv4−C(private)が対応している。
【0036】
ホストBのアドレス変換テーブルの構成例を図4に示す。
【0037】
ホストBのIPv4アドレスIPv4−BにIPv6アドレスIPv6−Bが対応し、ホストCのIPv6アドレスIPv6−CにプライベートIPv4アドレスIPv4−C(private)が対応し、ホストAのIPv6アドレスIPv6−AにプライベートIPv4アドレスIPv4−A(private)が対応している。
【0038】
NATテーブルの1つめのエントリである自局のIPv4アドレスとIPv6アドレスの対応テーブルは、初期化時に設定される。2つめ以降のエントリは、ユーザがスタティックに設定するか、プロトコル変換制御部内のDNS−NAT連携制御部によってダイナミックに設定される。
【0039】
つぎにホストAとホストB,ホストAとホストC,ホストAとホストDの間での通信をアドレス変換テーブルを使って説明する。
【0040】
まず、ホストAとホストBの通信について説明する。
【0041】
ホストAのIPv4対応APは、ホストBに対する仮のIPv4アドレスIPv4−B(private)を使ってIPv4パケットを送信する。プロトコル変換制御部は、IPv4ヘッダ中の送信先IPv4アドレスを見て、それがアドレス変換テーブルに登録されているので対応するIPv6アドレスをアドレス変換テーブルから取り出してIPv6ヘッダを作成し、IPv6パケットをLAN制御部を使ってLANに送出する。ホストBのLAN制御部2006はIPv6パケットを受信するとそれをプロトコル変換制御部2004へ渡す。
【0042】
プロトコル変換制御部2009はIPv6ヘッダ中の送信先IPv6アドレスを見て、それがアドレス変換テーブルに登録されている場合、対応するIPv4アドレスをアドレス変換テーブル4001から取り出してIPv4ヘッダを作成し、IPv4パケットをプロトコル変換制御部へ渡す。
【0043】
つぎにホストAとホストCの通信について説明する。ホストAではホストBへの通信と同様にホストCに対する仮のIPv4アドレスに対してアドレス変換テーブル3001を使ってIPv6パケットを生成し、ホストCはIPv6パケットをそのまま受信し、プロトコル制御部2009によって解釈される。
【0044】
つぎにホストAとホストDの通信について説明する。
【0045】
ホストAのIPv4対応APは、ホストDに対するIPv4アドレスIPv4−Dを使ってIPv4パケットを送信する。プロトコル変換制御部は、IPv4ヘッダ中の送信先IPv4アドレスを見る。IPv4−Dは、アドレス変換テーブルに登録されてないのでヘッダ変換は行われず、IPv4パケットLAN制御部を通して送出される。
【0046】
つぎにホストAやホストBのLAN制御装置の構成について図1を使って説明する。図1は、LAN制御装置1001の構成を示している。
【0047】
LAN制御装置1001は、アプリケーション(AP)が動くユーザ空間1002とカーネルが動くカーネル空間1003から構成される。ユーザ空間1002には、TCP/IPv4対応AP1004がある。このAPにtelnet,ftp,HTTPクライアント等TCP/IPv4に対応したプログラムがある。
【0048】
ユーザ空間1002内のTCP/IPv4対応AP 1004とカーネル空間1003内のプロトコル制御部1005間のインタフェースは、TCP/IPv4対応AP 1004が生成するデータパケットを入出力することにより行われる。
【0049】
カーネル空間1003は、プロトコル制御部1005,プロトコル変換制御部1006,LAN制御部1007から構成されている。
【0050】
プロトコル制御部1005とプロトコル変換制御部のインタフェースは、IPv4パケットを入出力することにより行われる。IPv4パケットとは、データパケットにIPv4ヘッダとMAC(Media Access Control)ヘッダを加えたパケットである。プロトコル変換制御部1006とLAN制御部1007の間のインタフェースは、IPv4パケット、又はIPv6パケットを入出力することにより行われる。IPv6パケットとは、データパケットにIPv6ヘッダとMACヘッダを加えたパケットである。
【0051】
プロトコル制御部1005は、TCP送受信制御部1008とIPv4送受信制御部1009から構成される。
【0052】
プロトコル変換制御部1006は、IPv4−IPv6スイッチ制御部1010,バッファ変換制御部1011,DNS−NAT連携制御部1012,ヘッダ変換制御部1013,IPv6送受信制御部1014,アドレス変換テーブル1015、問い合わせパケットキュー1016から構成される。
【0053】
つぎに、プロトコル変換制御部内の各制御部について説明する。
【0054】
まず、各制御部間の入出力インタフェースについて説明する。プロトコル変換制御部内の各制御部間はすべて、IPv4パケット又はIPv6パケットを入出力することによって行われる。
【0055】
次に各制御部の機能について説明する。
【0056】
IPv4−IPv6スイッチ制御部1010は、プロトコル制御部1005から渡されたIPv4パケットとLAN制御部からの受信パケット(IPv4パケット又はIPv6パケット)に対するパケットスイッチング機能とプロトコル制御部1005に対するハードウエアアドレスダミー応答処理機能を持つ。この処理内容については後で詳しく説明する。
【0057】
バッファ変換制御部1011は、プロトコル制御部1005が扱うバッファとプロトコル変換制御部1006が扱うバッファの変換制御を行う。
【0058】
IPv6送受信制御部1014は、IPv6プロトコル処理を行う。
【0059】
ヘッダ変換制御部1013は、アドレス変換テーブル1015に従ってIPv4ヘッダとIPv6ヘッダの変換を行う。DNS−NAT連携制御部は、プロトコル制御部1015からのDNSアドレス問い合わせパケットをコピーし、IPv4アドレスとIPv6アドレスの両方の問い合わせを行う。また、DNS−NAT連携制御部1012は、IPv4のアドレス(通常プライベートアドレス)をプールしていて、接続先ホストのIPv6アドレスに対してプールしていたIPv4アドレスを割り当て(仮IPv4アドレス)、それをヘッダ変換制御部1013内のアドレス変換制御テーブル1015に登録し、その仮IPv4アドレスをプロトコル制御部1005に伝えることにより、上位のTCP/IPv4対応AP1004から仮IPv4アドレスを使ってIPv6ネットワークに接続できるようにする。
【0060】
また、DNS−NAT連携制御部1012内部には、問い合わせパケットキュー1016を持っている。問い合わせパケットキューとは、プロトコル変換制御部1005が出力するDNS問い合わせパケット情報とその問い合わせパケットに対する処理フラグ(DNS問い合わせパケットに対するDNS応答パケットを処理したかどうかを示すフラグ)を合わせた情報を登録しているテーブルである。この問い合わせパケットキューを使ってアドレス問い合わせパケットをキューイングし、アドレス問い合わせパケットに対する応答パケットの受信制御を行う。DNS−NAT連携制御部1012の処理内容については、後で詳しく説明する。
【0061】
IPv4−IPv6スイッチ制御部1010のハードウエアアドレスダミー処理機能について図7を使って説明する。
【0062】
図7は、LAN制御装置1001内のプロトコル制御部1005、IPv4―IPv6スイッチ制御部1010と接続先ホスト2001間のMACアドレス解決のためのパケットシーケンスを示す図である。
【0063】
プロトコル制御部1005とIPv4−IPv6スイッチ制御部1010の間は、IPv4パケットが入出力され、IPv4−IPv6スイッチ制御部1010と接続先ホスト2001の間は、IPv6パケットがLANを介して入出力される。
【0064】
まず、プロトコル制御部1005が接続先ホスト2001に対するハードウエアアドレス解決をするため、ARPのリクエストパケットをIPv4−IPv6スイッチ制御部1010に出力する。
【0065】
IPv4−IPv6スイッチ制御部1010は、ARP応答メッセージを作り、プロトコル制御部1005に出力する。ARP応答メッセージ中の送信元ハードウエアアドレスは、IPv4−IPv6スイッチ制御部1010が任意のアドレスを生成し、セットする。プロトコル制御部1005は、このハードウエアアドレスを使ってMACヘッダを作成し、IPv4パケットをIPv4−IPv6スイッチ制御部1010に出力する。IPv4−IPv6スイッチ制御部1010は、ヘッダ変換制御部1013を通してIPv4パケットをIPv6パケットに変換する。このとき、MACヘッダを生成するため、接続先ホスト2001のハードウエアアドレス情報が必要になる。そのため、プロトコル制御部1005から入力し、IPv6パケットに変換したデータを一時IPv4−IPv6スイッチ制御部1010内に保持し、接続先ホスト2001のハードウエアアドレスを問い合わせるためのNS(Neighbor Solicitation)パケットを生成する。
【0066】
IPv4―IPv6スイッチ制御部1010は、このNSパケット(IPv6パケット)をLANを介して接続先ホスト2001に出力する。接続先ホスト2001はNSパケットに対し、自局のハードウエアアドレスを通知するためのNA(Neighbor Advertisement)パケットを生成し、LANを介してLAN制御装置1001のIPv4―IPv6スイッチ制御部1010に出力する。NAパケットを受信したIPv4−IPv6スイッチ制御部1010は、NAパケットに含まれる接続先ホスト2001のハードウエアアドレス情報を元にMACヘッダを生成し、保持していたIPv6パケットデータと共にIPv6パケットを生成し、接続先ホスト2001へLANを介して出力する。
【0067】
ARPメッセージデータのフォーマットを図15に示す。
【0068】
ARPメッセージのハードウエアタイプフィールドは、LANの種別を示す。Ethernet(登録商標)の場合、1が入る。プロトコルタイプフィールドは、プロトコルタイプを示す0x0800はIPを示している。HLENフィールドは、物理ハードウエアアドレスの長さ、PLENフィールドは、プロトコルアドレスの長さを示している。オペレーションフィールドには、ARPリクエスト、ARP応答等のARPパケットの種別を示している。
【0069】
つぎに、図10を使ってIPv4−IPv6スイッチ制御部1010のパケットスイッチ制御機能について説明する。
【0070】
図10は、IPv4−IPv6スイッチ制御部1010のパケットスイッチ制御処理フローを示している。
【0071】
IPv4−IPv6スイッチ制御部1010は、プロトコル制御部1006から入力されるIPv4パケットのヘッダ変換処理判定とDNSパケット判定をしている。また、LAN制御部1007から入力されたIPv4パケットのヘッダ変換処理判定を行っている。
【0072】
まず、プロトコル制御部1005から入力されるパケットに対する処理について説明する。
【0073】
IPv4−IPv6スイッチ制御部1010は、プロトコル制御部1005からIPv4パケットを入力すると、まず、それがDNSパケットであるかどうかを判定する(10001)。DNSパケットの場合、DNSヘッダのメッセージ内容を解釈してメッセージの内容により呼び出す制御部をスイッチする(10002)。
【0074】
そのメッセージの内容がDNS応答パケットの場合、IPv4パケットをそのままLAN制御部に出力する(10003)。そのメッセージの内容がDNS問い合わせパケットの場合は、DNS−NAT連携制御部にIPv4パケットを出力する(10004)。
【0075】
プロトコル制御部1005からの入力されたIPv4パケットがDNSパケット以外の場合は、入力したIPv4パケットのIPv4ヘッダ内の送信先IPv4アドレスを元にヘッダ変換制御部1013内のアドレス変換テーブル1015の検索を行う(10005)。IPv4ヘッダ内の送信先IPv4アドレスがアドレス変換テーブル1015に登録されているIPv4アドレスと一致していなかったら、LAN制御部にIPv4パケットをそのまま出力する(10006)。一致していたらヘッダ変換制御部1011にIPv4パケットを出力して、プロトコル変換処理を行う(10007)。
【0076】
つぎに、IPv4−IPv6スイッチ制御部1010がLAN制御部1007からIPv4又はIPv6パケット入力した場合についての処理を説明する。
【0077】
LAN制御部1007からパケットを入力するとIPv4−IPv6スイッチ制御部1010はそのパケットがIPv4パケットかIPv6パケットかを判定する(10008)。IPv4パケットの場合、それがDNS応答パケットであるかどうかを判定し(10009)、DNS応答パケットでない場合、プロトコル制御部にIPv4パケットを出力する(10010)。DNS応答パケットの場合、DNS−NAT連携制御部にIPv4パケットを出力する(10011)。LAN制御部1007から入力されたパケットがIPv6パケットの場合、IPv6送受信制御部1014にIPv6パケットを出力する(10012)。
【0078】
DNSパケットのフォーマットについて図11〜図14を使って説明する。
【0079】
DNSパケットは通常、UDP(User Datagram Protocol)が使われる。UDPヘッダフォーマットを図11に示す。UDPヘッダは、ソースポート番号、ディスティネーションポート番号、データ長、UDPチェックサムフィールドで構成される。DNSのポート番号は通常53が使用される。図12は、DNSヘッダフォーマットを示している。DNSヘッダは、ID、制御フィールド、問い合わせレコード数、応答レコード数、登録機関レコード数、追加レコード数のフィールドに分かれている。IDフィールドは、問い合わせパケットを生成するときに任意に生成される値で、問い合わせパケットに対応する応答パケットのDNSヘッダ中のIDは、これと同じ値を持つ。制御フィールドには、問い合わせ/応答種別等のパケット情報が入っている。
【0080】
図13は、DNS問い合わせメッセージフォーマットを示している。名前フィールドには、問い合わせのドメインネームがセットされる。QTYPEフィールドは、IPv4/IPv6アドレスの等の問い合わせ種別情報がセットされる。
【0081】
図14は、DNS応答メッセージフォーマットを示している。名前フィールドは問い合わせのドメインネームがセットされる。QTYPEフィールドは、IPv4/IPv6アドレスの等の問い合わせ種別情報がセットされる。IPv4 or IPv6アドレスフィールドは、QTYPEフィールドで指定したアドレス種別に対応するアドレスがセットされる。
【0082】
DNS−NAT連携制御部1012の処理フローについて図8、9を使って説明する。DNS−NAT連携制御部1012は、その処理内容を大きく分けてプロトコル制御部1005から入力されるDNSパケットの処理(図8のDNSパケット送信処理で説明する)とLAN制御部1007から入力するDNSパケットの処理(図9のDNSパケット受信処理で説明する)に分けられる。
【0083】
まず、図8を使ってDNS−NAT連携制御部1012がIPv4―IPv6スイッチ制御部1010からDNSアドレス問い合わせパケット(IPv4パケット)を入力したときの処理フローについて説明する。
【0084】
まず、入力したIPv4パケットのUDPヘッダをチェックし、ソースポート番号が53でDNSヘッダ内のタイプがDNS問い合わせパケットかどうか判定する(8001)。DNSアドレス問い合わせパケットでない場合、IPv4パケットをそのままLAN制御部に出力する(8002)。
【0085】
DNSアドレス問い合わせパケットの場合、DNSパケットをコピーし(8003)、コピーしたパケットを使ってIPv6アドレスに対するDNS問い合わせパケットを生成する(8004)。そして、DNSヘッダのIDを問い合わせパケットキューに登録する(8005)。
【0086】
最後に、IPv6アドレスのDNS問い合わせパケットをLAN制御部1007に出力し(8006)、IPv4アドレスのDNS問い合わせパケットをLAN制御部1007に出力する(8007)。
【0087】
つぎに図9を使ってDNS−NAT連携制御部1012がLAN制御部1007よりDNS応答パケットを入力したときの処理フローについて説明する。
【0088】
まず、受信パケットのDNSヘッダのIDと問い合わせパケットキューに登録してあるIDの比較を行い、DNS応答パケットのIDが問い合わせパケットキュー1016に登録してある識別子と合致したものがあるかどうか検索する(9001)。
【0089】
無かったらそのままプロトコル制御部1005へDNS応答パケットを出力する(9002)。あった場合、DNS問い合わせキューの該当パケットに対し、既に応答パケットがきたかどうかをチェックする(9003)。既に応答パケットが来ていたら、該当レコードを問い合わせキューからデキューして(9004)、現在受信処理中のDNS応答パケットは廃棄する(9005)。
【0090】
まだ、応答パケットが未処理の場合は、問い合わせキューの該当レコードに処理済みフラグを立て(9006)。次の処理に進む。
【0091】
つぎに、応答メッセージ内のIPアドレスを判定する(9007)。応答メッセージのIPアドレスがIPv4アドレスの場合、そのままDNS応答パケットをプロトコル制御部に渡す(9008)。応答メッセージ内のIPアドレスがIPv6の場合、対応するIPv4アドレスをアドレスプールテーブルより取り出して、アドレス変換テーブルに登録する(9009)。つぎに、アサインしたIPv4アドレスを使ってDNS応答パケットを作成(9010)し、作成したDNS応答パケットをプロトコル制御部1005へ出力する(9011)。
【0092】
つぎに、本発明の第二の実施例について説明する。
【0093】
図5は、LAN制御装置5001の構成を示している。LAN制御装置5001は、アプリケーション(AP)が動くユーザ空間1002とカーネルが動くカーネル空間1003からなる。ユーザ空間1002には、TCP/IPv4対応AP1004がある。
【0094】
カーネル空間1003には、プロトコル制御部1005、プロトコル変換制御部1006、LAN制御部1007から構成されている。
【0095】
プロトコル制御部は、TCP送受信制御部1008とIPv4制御部1009から構成され、TCP/IP対応AP1004から受け取ったデータをIPv4パケットとしてプロトコル変換制御部1006に渡す。
【0096】
プロトコル変換制御部1006は、IPv4−IPv6スイッチ制御部1010、バッファ変換制御部1011、DNS−NAT連携制御部1012、ヘッダ変換制御部1013、IPv4送受信制御部1016、IPv6送受信制御部1014から構成される。
【0097】
つぎに、各制御部についての機能内容について説明する。
【0098】
IPv4−IPv6スイッチ制御部1010は、プロトコル制御部1005から渡されたIPv4パケットとLAN制御部1007からの受信パケット(IPv4パケット、IPv6パケット)に対して、パケットスイッチ制御機能を持つ。バッファ変換制御部1011は、プロトコル制御部1005とプロトコル変換制御部1006のバッファ変換制御を行う。
【0099】
IPv4送受信制御部は、IPv4プロトコル処理を行う。
【0100】
IPv6送受信制御部は、IPv6プロトコル処理を行う。アドレス変換制御部は、アドレス変換テーブルに従ってIPv4ヘッダとIPv6ヘッダの変換を行う。DNS−NAT連携制御部は、IPv4のアドレス(通常プライベートアドレス)をプールしていて、接続先ホストのIPv6アドレスにプールしていたIPv4アドレスを割り当て、それをアドレス変換制御部内のアドレス変換制御テーブルに登録する。
【0101】
つぎに、本発明の第三の実施例について説明する。
【0102】
図6は、LAN制御装置6001の構成を示している。これは、PC等で一般的に使用される構成として、カーネル6004、TCP/IPv4対応AP6002、ソケットエミュレータ6003、トランスポートドライバ(TCP/IP)6005、カーネル−ネットワーク間インタフェース制御部6006、ネットワークインタフェース制御部6007、NIC(Netowork Interface Card)制御部6015がある。
【0103】
本発明では、ネットワークインタフェース制御部6007とNIC制御部6015の間に、IPv4−IPv6スイッチ制御部1010、バッファ変換制御部6009、ヘッダ変換制御部1013、IPv4送受信制御部5017、IPv6送受信制御部1014、DNS−NAT連携制御部1012を設けることによりIPv4−IPv6ヘッダ変換機能を実現し、IPv4対応アプリケーションをIPv6ネットワーク上で通信可能にさせる。
【0104】
IPv4−IPv6スイッチ制御部1010は、ネットワークインタフェース制御部6007から渡されたIPv4パケットとNIC制御部6015からの受信パケット(IPv4パケットまたは、IPv6パケット)に対して、パケットスイッチ制御を行う。バッファ変換制御部6009は、カーネル6004が管理するバッファとIPv4送受信制御部5017、IPv6送受信制御部1014、ヘッダ変換制御部1013、DNS−NAT連携制御部1012が扱うバッファとの変換制御を行う。
【0105】
IPv4送受信制御部5017は、IPv4プロトコル処理を行う。
【0106】
IPv6送受信制御部1014は、IPv6プロトコル処理を行う。ヘッダ変換制御部1013は、アドレス変換テーブル1015に従ってIPv4ヘッダとIPv6ヘッダの変換を行う。DNS−NAT連携制御部1012は、IPv4のアドレス(通常プライベートアドレス)をプールしていて、接続先ホストのIPv6アドレスに対してプールしていたIPv4アドレスを割り当て、それをヘッダ変換制御部内のアドレス変換制御テーブル1015に登録する。
【図面の簡単な説明】
【0107】
【図1】本発明の第一の実施例におけるLAN制御装置の構成を示す図である。
【図2】本発明の実施例における通信ネットワークシステムの構成例を示す図である。
【図3】本発明の実施例におけるホストAのアドレス変換テーブルの構成例を示す図である。
【図4】本発明の実施例におけるホストBのアドレス変換テーブルの構成例を示す図である。
【図5】本発明の第二の実施例におけるLAN制御装置の構成を示す図である。
【図6】本発明の第三の実施例におけるLAN制御装置の構成を示す図である。
【図7】MACアドレス解決のためのパケットシーケンスを示す図である。
【図8】DNS−NAT連携制御部の処理フロー(DNSパケット送信処理)である。
【図9】DNS−NAT連携制御部の処理フロー(DNSパケット受信処理)である。
【図10】IPv4−IPv6スイッチ制御部のパケットスイッチ制御処理フロー
【図11】UDPヘッダパケットのフォーマットである。
【図12】DNSヘッダパケットのフォーマットである。
【図13】DNS問い合わせメッセージのフォーマットである。
【図14】DNS応答メッセージのフォーマットである。
【図15】ARPメッセージのフォーマットである。
【図16】情報処理装置の構成を示す図である。
【符号の説明】
【0108】
1001…LAN制御装置、
1004…TCP/IPv4対応AP、
1005…プロトコル制御部、
1006…プロトコル変換制御部、
1007…LAN制御部、
1008…TCP送受信制御部、
1009…IPv4送受信部、
1010…IPv4−IPv6スイッチ制御部、
1011…バッファ変換制御部、
1012…DNS−NAT連携制御部、
1013…ヘッダ変換制御部、
1014…IPv6送受信制御部、
1015…アドレス変換テーブル。

【特許請求の範囲】
【請求項1】
ネットワークに接続され、該ネットワークを介して他の装置と通信する情報処理装置であって、
通信先の前記他の装置に割り当てられている第1の通信プロトコルに対応したアドレスを問合せる第1の問合せパケットを生成するパケット生成部と、
前記第1の問合せパケットから前記他の装置に割り当てられている第2の通信プロトコルに対応したアドレスを問合せる第2の問合せパケットを作成するアドレス解決部と、
前記第1の問合せパケットと前記第2の問合せパケットとを前記ネットワークにそれぞれ送信するネットワーク制御部とを有する。
【請求項2】
請求項1記載の情報処理装置であって、
前記第1のアドレス問合せパケットは、問合せるアドレスの種別が第1の通信プロトコルに対応したアドレスであることを示す情報を含み、前記第2のアドレス問合せパケットは、問合せるアドレスの種別が第2の通信プロトコルに対応したアドレスであることを示す情報を含む。
【請求項3】
請求項2記載の情報処理装置であって、
前記第1のアドレス問合せパケットと前記第2のアドレス問合せパケットは、前記ネットワークに接続された各装置のアドレスを管理するアドレス管理装置に対してアドレスを問合せるためのパケットである。
【請求項4】
請求項1記載の情報処理装置であって、
前記ネットワーク制御部は、前記他の装置に割り当てられている前記第1の通信プロトコルに対応したアドレスまたは前記他の装置に割り当てられている前記第2の通信プロトコルに対応したアドレスを含むアドレス応答パケットを前記ネットワークから受信する。
【請求項5】
請求項3記載の情報処理装置であって、
前記ネットワーク制御部は、前記他の装置の前記第1の通信プロトコルに対応したアドレスまたは前記他の装置の前記第2の通信プロトコルに対応したアドレスを含むアドレス応答パケットを前記アドレス管理装置から受信する。
【請求項6】
請求項4記載の情報処理装置であって、更に、
前記第1の通信プロトコルに対応した少なくとも1つのアドレスを予め保持する記憶部を有し、
前記ネットワーク制御部が、前記他の装置に割り当てられている第2の通信プロトコルに対応した第1のアドレスを含むアドレス応答パケットを受信した場合、前記アドレス解決部は、前記アドレス応答パケットに含まれる前記第1のアドレスに対して、前記記憶部に保持されているアドレスのうちの任意の第2のアドレスを割り当て、前記第2のアドレスを前記他の装置のアドレスとして前記パケット作成部に伝える。
【請求項7】
請求項6記載の情報処理装置であって、更に、
前記第1のアドレスと前記第2のアドレスとを対応付けて保持するアドレス記憶部を有する。
【請求項8】
請求項1記載の情報処理装置であって、更に、
前記第1の通信プロトコルに対応した少なくとも1つのアドレスを予め保持するプール部を有し、
前記ネットワーク制御部が、前記他の装置に割り当てられている第2の通信プロトコルに対応した第1のアドレスを含む第1のアドレス応答パケットを受信した場合、前記アドレス解決部は、前記第1のアドレス応答パケットに含まれる前記第1のアドレスに対して、前記プール部に保持されているアドレスのうちの任意の第2のアドレスを割り当て、前記第2のアドレスを含む第2のアドレス応答パケットを作成し、前記第2のアドレス応答パケットを前記パケット作成部に送る。
【請求項9】
第1の通信プロトコルに対応したアプリケーションプログラムを実行し、ネットワークを介して他の通信装置と通信を行う情報処理装置であって、
前記他の装置と通信を開始する際に、前記他の装置に割り当てられている第1の通信プロトコルに対応したアドレスを問合せる第1の問合せパケットを作成するパケット作成部と、
前記第1の問合せパケットから前記他の装置に割り当てられている第2の通信プロトコルに対応したアドレスを問合せる第2の問合せパケットを作成するアドレス解決部と、
前記第1の問合せパケットと前記第2の問合せパケットとを前記ネットワークにそれぞれ送信するネットワーク制御部とを有する。
【請求項10】
請求項9記載の情報処理装置であって、
前記第1のアドレス問合せパケットと前記第2のアドレス問合せパケットは、前記ネットワークに接続された各装置のアドレスを管理するアドレス管理装置に対してアドレスを問合せるためのパケットである。
【請求項11】
請求項9記載の情報処理装置であって、
前記ネットワーク制御部は、前記他の装置に割り当てられている前記第1の通信プロトコルに対応したアドレスまたは前記他の装置に割り当てられている前記第2の通信プロトコルに対応したアドレスを含むアドレス応答パケットを前記ネットワークから受信する。
【請求項12】
請求項10記載の情報処理装置であって、
前記ネットワーク制御部は、前記他の装置に割り当てられている前記第1の通信プロトコルに対応したアドレスまたは前記他の装置に割り当てられている前記第2の通信プロトコルに対応したアドレスを含むアドレス応答パケットを前記アドレス管理装置から受信する。
【請求項13】
請求項11記載の情報処理装置であって、更に、
前記第1の通信プロトコルに対応した少なくとも1つのアドレスを予め保持する記憶部を有し、
前記ネットワーク制御部が、前記他の装置に割り当てられている第2の通信プロトコルに対応した第1のアドレスを含むアドレス応答パケットを受信した場合、前記アドレス解決部は、前記アドレス応答パケットに含まれる前記第1のアドレスに対して、前記記憶部に保持されているアドレスのうちの任意の第2のアドレスを割り当て、前記第2のアドレスを前記他の装置のアドレスとして前記パケット作成部に伝える。
【請求項14】
請求項13記載の情報処理装置であって、更に、
前記第1のアドレスと前記第2のアドレスとを対応付けて保持するアドレス記憶部を有する。
【請求項15】
請求項9記載の情報処理装置であって、更に、
前記第1の通信プロトコルに対応した少なくとも1つのアドレスを予め保持するプール部を有し、
前記ネットワーク制御部が、前記他の装置に割り当てられている第2の通信プロトコルに対応した第1のアドレスを含む第1のアドレス応答パケットを受信した場合、前記アドレス解決部は、前記第1のアドレス応答パケットに含まれる前記第1のアドレスに対して、前記プール部に保持されているアドレスのうちの任意の第2のアドレスを割り当て、前記第2のアドレスを含む第2のアドレス応答パケットを作成し、前記第2のアドレス応答パケットを前記パケット作成部に送る。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2007−151141(P2007−151141A)
【公開日】平成19年6月14日(2007.6.14)
【国際特許分類】
【出願番号】特願2006−337736(P2006−337736)
【出願日】平成18年12月15日(2006.12.15)
【分割の表示】特願平10−46739の分割
【原出願日】平成10年2月27日(1998.2.27)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】