JP3915230B2 - パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 - Google Patents
パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP3915230B2 JP3915230B2 JP4673998A JP4673998A JP3915230B2 JP 3915230 B2 JP3915230 B2 JP 3915230B2 JP 4673998 A JP4673998 A JP 4673998A JP 4673998 A JP4673998 A JP 4673998A JP 3915230 B2 JP3915230 B2 JP 3915230B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- address
- control unit
- ipv4
- protocol
- 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 - Lifetime
Links
Images
Description
【発明の属する技術分野】
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の相互接続に関する標準化のドキュメントとしてRFC1933があるRFC1933(Transition Mechanism for IPv6 Hosts and Routers; R.Gilligan, 1996.4, IETF)ではIPv6ソフトウエアを有する通信制御装置においてIPv4アドレスをIPv6アドレスにマッピングすることでIPv6ネットワークの相互接続を可能にしている。
【0006】
このように、IPv6ネットワークが形成されつつある中で、IPv6対応のAPは、IPv4対応のAPに比べて、非常に少ない。
【0007】
【発明が解決しようとする課題】
従来PC/WS上のIPv4対応アプリケーションとPC/WSのIPv6対応アプリケーションが、NAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに直接通信する手段はなかった。
【0008】
アドレス変換ルータを使用する場合、従来ルーティング処理に加えてプロトコル変換も行うためアドレス変換ルータにかかる負荷が大きい。また、IPv4のハードウエアアドレス解決用パケットは、変換されない。
【0009】
本発明の目的は、
(1)PC/WS上のIPv4対応のAPがNAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに、直接PC/WS上のIPv6対応アプリケーションと通信できるようにすること。
【0010】
(2)既存のIPv4対応のAPが接続先ホストのIPアドレスを意識することなく通信するためには、DNS(Domain Name System)による論理名によるアドレス解決が必須である。本発明の第2の目的は、IPv4対応のAPが、通信相手のアドレスを意識せずに通信させるため、IPv6対応のDNS機能(IPv6アドレス問い合わせ機能)を提供することである。
【0011】
(3)IPv4対応APがIPv6対応APと通信するため、既存APが出すIPv4のハードウエアアドレス解決パケットをIPv6対応のハードウエアアドレス解決パケットに変換できるようにすることである。
【0012】
【課題を解決するための手段】
PC/WS等のLAN制御装置は、通常IPv4対応AP、IPv4プロトコル制御部から構成される。
【0013】
上記目的を達成させるため、LAN制制御装置内のIPv4プロトコル制御部とLAN制御部の間にプロトコル変換制御部を設ける。プロトコル変換制御部はIPv4−IPv6スイッチ制御部、バッファ変換制御部、ヘッダ変換制御部、IPv6送受信制御部1014,DNS−NAT連携制御部から構成する。
【0014】
上記第1の課題を解決するためプロトコル変換制御部は、IPv4プロトコル制御部から出力されるIPv4パケットをIPv6パケットに変換してLAN制御部へ出力する。またLAN制御部から出力されたIPv6パケットをIPv4パケットに変換し、IPv4プロトコル制御部へ出力する。
【0015】
つぎに第2、第3の課題を解決するための各制御部間の制御とデータの流れを説明する。
【0016】
まず、送信の場合について説明する。
【0017】
IPv4対応APからIPv4プロトコル制御部にデータが渡されIPv4プロトコル制御部からIPv4パケットがプロトコル変換制御部1006に渡されると、プロトコル変換制御部は渡されたパケットを解釈し、次のような処理を行う。ARPリクエストパケットの場合、IPv4プロトコル制御部に対して、プロトコル変換制御部で生成したハードウエアアドレスを通知し、実際のハードウエアアドレス解決は、IPv6プロトコルを使って行うことにより解決する。
【0018】
DNSの問い合わせパケットの場合、IPv6アドレスとIPv4アドレスの両方を問い合わせ、IPv6アドレスが応答パケットとして返ってきたときには、IPv6アドレスに対応するIPv4アドレスをIPv4プロトコル制御部に伝える。
【0019】
通常のパケットの場合、IPv4ヘッダ内の送信先IPv4アドレスを見て、プロトコル変換制御部内のアドレス変換テーブルに登録されているアドレスの場合は、対応するIPv6アドレスに変換して、IPv6ヘッダを作成し、IPv6パケットとしてLAN上に送信する。プロトコル変換制御部内のアドレス変換テーブルに登録されていない場合は、そのままIPv4パケットをLAN上に送信する。
【0020】
次に受信の場合について説明する。
【0021】
LAN制御部からIPv6パケットを受信すると、プロトコル変換制御部はIPv6ヘッダ内の送信元IPv6アドレスを見てプロトコル変換制御部内のアドレス変換テーブルに登録されているアドレスの場合は、対応するIPv4アドレスに変換してIPv4ヘッダを作成し、上位のIPv4プロトコル制御部にIPv4パケットデータを渡す。
【0022】
プロトコル制御部内のアドレス変換テーブルに登録されていないIPv6アドレスの場合は、その受信パケットを廃棄する。LAN制御部からIPv4パケットを受信したときはDNS応答パケット以外のパケットデータをプロトコル制御部に渡す。このようにして、IPv4対応APとIPv6対応APを通信させることができる。
【0023】
以上のような手段を用いることにより上記目的は達成される。
【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】
【発明の効果】
プロトコル変換制御部を従来のプロトコル制御部とLAN制御部の間におき、プロトコル制御部とLAN制御部との間で流れるパケットをプロトコル変換制御部がIPv4とIPv6のヘッダ変換することにより、プロトコル制御部にデータを渡すアプリケーションがIPv4対応のものであってもIPv6ネットワークに接続される他の装置とIPv6による通信が可能になる。
【図面の簡単な説明】
【図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】情報処理装置の構成を示す図である。
【符号の説明】
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…アドレス変換テーブル。
Claims (13)
- ネットワークに接続され、該ネットワークを介して他の装置と通信する情報処理装置であって、
第1の通信プロトコルに対応した第1のパケットを生成するパケット制御部と、
前記第1のパケットを第2の通信プロトコルに対応する第2のパケットに変換するプロトコル変換部と、
前記第1のパケット又は前記第2のパケットをネットワークに送信するネットワーク制御部と、
前記他の装置に割り当てられている前記第1の通信プロコルに対応したアドレスと前記第2の通信プロトコルに対応したアドレスとの対応を保持する記憶部とを有し、
前記プロトコル変換部は、前記第1のパケットに宛先アドレスとして含まれる前記第1の通信プロトコルに対応した第1のアドレスに対応付けられた前記第2の通信プロトコルに対応した第2のアドレスが前記記憶部に保持されている場合、前記第1のパケットを、前記第2のアドレスを宛先アドレスとして含む前記第2のパケットに変換し、
前記プロトコル変換部は、前記第1のアドレスに対応付けられた前記第2のアドレスが前記記憶部に保持されていない場合、前記第1のパケットを前記ネットワーク制御部に送る。 - 請求項1記載の情報処理装置であって、更に、
前記他の装置の前記第2のアドレスに、任意の前記第1のアドレスを割り当て、前記第2のアドレスと、割り当てた前記第1のアドレスとを対応付けて前記記憶部に予め格納するアドレス制御部を有する。 - 請求項2記載の情報処理装置であって、更に、
前記第1の通信プロトコルに対応した2以上のアドレスを予め保持するプール部を有し、
前記アドレス制御部は、前記プール部に保持された2以上のアドレスから前記第2のアドレスに割り当てる前記第1のアドレスを選択する。 - 請求項1記載の情報処理装置であって、
前記ネットワーク制御部は、前記第1の通信プロトコルに対応した第3のパケット又は前記第2の通信プロトコルに対応した第4のパケットを前記ネットワークから受信する。 - 請求項4記載の情報処理装置であって、
前記ネットワーク制御部が前記第4のパケットを受信した場合、前記プロトコル変換部は、前記第4のパケットを前記第1の通信プロトコルに対応する第5のパケットに変換する。 - 請求項5記載の情報処理装置であって、
前記パケット制御部は、前記ネットワーク制御部が受信した前記第3のパケット又は前記プロトコル変換部により変換された前記第5のパケットを受け取る。 - ネットワークに接続され、該ネットワークを介して他の装置と通信する情報処理装置であって、
第1の通信プロトコルに対応したアプリケーションプログラムを実行するアプリケーション実行部と、
前記アプリケーション実行部により生成されたデータから前記第1の通信プロトコルに対応した第1のパケットを作成するパケット制御部と、
前記第1のパケットを第2の通信プロトコルに対応する第2のパケットに変換するプロトコル変換部と、
前記第1のパケット又は前記第2のパケットをネットワークに送信するネットワーク制御部と、
前記他の装置に割り当てられている前記第1の通信プロコルに対応したアドレスと前記第2の通信プロトコルに対応したアドレスとの対応を保持する記憶部とを有し、
前記プロトコル変換部は、前記第1のパケットに宛先アドレスとして含まれる前記第1の通信プロトコルに対応した第1のアドレスに対応付けられた前記第2の通信プロトコルに対応した第2のアドレスが前記記憶部に保持されている場合、前記第1のパケットを、前記記憶部に保持されている前記第2のアドレスを宛先アドレスとして含む前記第2のパケットに変換し、
前記プロトコル変換部は、前記第1のアドレスに対応付けられた前記第2のアドレスが前記記憶部に保持されていない場合、前記第1のパケットを前記ネットワーク制御部に送る。 - 第1の通信プロトコルに対応したアプリケーションプログラムを実行し、ネットワークを介して他の装置と通信する情報処理装置であって、
前記アプリケーションプログラムを実行することにより生成されたデータから前記第1の通信プロトコルに対応した第1のパケットを作成するパケット制御部と、
前記第1のパケットを第2の通信プロトコルに対応する第2のパケットに変換するプロトコル変換部と、
前記第1のパケット又は前記第2のパケットをネットワークに送信するネットワーク制御部と、
前記他の装置に割り当てられている前記第1の通信プロコルに対応したアドレスと前記第2の通信プロトコルに対応したアドレスとの対応を保持する記憶部とを有し、
前記プロトコル変換部は、前記第1のパケットに宛先アドレスとして含まれる前記第1の通信プロトコルに対応した第1のアドレスに対応付けられた前記第2の通信プロトコルに対応した第2のアドレスが前記記憶部に保持されている場合、前記第1のパケットを、前記記憶部に保持されている前記第2のアドレスを宛先アドレスとして含む前記第2のパケットに変換し、
前記プロトコル変換部は、前記第1のアドレスに対応付けられた前記第2のアドレスが前記記憶部に保持されていない場合、前記第1のパケットを前記ネットワーク制御部に送る。 - 請求項8記載の情報処理装置であって、更に、
前記他の装置の前記第2のアドレスに、任意の前記第1のアドレスを割り当て、前記第2のアドレスと、割り当てた前記第1のアドレスとを対応付けて前記記憶部に予め格納するアドレス制御部を有する。 - 請求項9記載の情報処理装置であって、更に、
前記第1のプロトコルに対応した2以上のアドレスを予め保持するプール部を有し、
前記アドレス制御部は、前記プール部に保持された2以上のアドレスから前記第2のアドレスに割り当てる前記第1のアドレスを選択する。 - 請求項8記載の情報処理装置であって、
前記ネットワーク制御部は、前記第1の通信プロトコルに対応した第3のパケット又は前記第2の通信プロトコルに対応した第4のパケットを前記ネットワークから受信する。 - 請求項11記載の情報処理装置であって、
前記ネットワーク制御部が前記第4のパケットを受信した場合、前記プロトコル変換部は、前記第4のパケットを前記第1の通信プロトコルに対応する第5のパケットに変換する。 - 請求項12記載の情報処理装置であって、
前記パケット制御部は、前記ネットワーク制御部が受信した前記第3のパケット又は前記プロトコル変換部により変換された前記第5のパケットを受け取る。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4673998A JP3915230B2 (ja) | 1998-02-27 | 1998-02-27 | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
US09/257,003 US6580717B1 (en) | 1996-07-04 | 1999-02-25 | Packet communication method and apparatus and a recording medium storing a packet communication program |
US10/207,247 US7385989B2 (en) | 1996-07-04 | 2002-07-30 | Packet communication method and apparatus and a recording medium storing a packet communication program |
US10/453,589 US7158526B2 (en) | 1996-07-04 | 2003-06-04 | Packet communication method and apparatus and a recording medium storing a packet communication program |
US11/976,639 US7701952B2 (en) | 1996-07-04 | 2007-10-26 | Packet communication method and apparatus and a recording medium storing a packet communication program |
US12/714,742 US7957405B2 (en) | 1996-07-04 | 2010-03-01 | Packet communication method and apparatus and a recording medium storing a packet communication program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4673998A JP3915230B2 (ja) | 1998-02-27 | 1998-02-27 | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006337736A Division JP4349413B2 (ja) | 2006-12-15 | 2006-12-15 | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11252172A JPH11252172A (ja) | 1999-09-17 |
JP3915230B2 true JP3915230B2 (ja) | 2007-05-16 |
Family
ID=12755710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4673998A Expired - Lifetime JP3915230B2 (ja) | 1996-07-04 | 1998-02-27 | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3915230B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009207182A (ja) * | 2009-06-11 | 2009-09-10 | Hitachi Ltd | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100782266B1 (ko) * | 1999-09-24 | 2007-12-04 | 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 | 패킷 네트워크 인터페이스와 그 동작방법 |
JP4347497B2 (ja) | 2000-04-03 | 2009-10-21 | 株式会社日立製作所 | 通信制御装置及びパケット変換方法 |
JP4365998B2 (ja) | 2000-07-21 | 2009-11-18 | 株式会社日立製作所 | マルチキャスト通信方法および通信装置 |
KR100724232B1 (ko) * | 2001-07-07 | 2007-05-31 | 엘지전자 주식회사 | Ppp 링크에서의 ip 버전 타입별 프로토콜 식별 방법 |
JP3857183B2 (ja) | 2002-05-24 | 2006-12-13 | 株式会社日立コミュニケーションテクノロジー | アドレス変換機能を備えたパケット転送装置 |
KR20040066331A (ko) * | 2003-01-17 | 2004-07-27 | 엘지전자 주식회사 | 인트라 네트워크에서의 디엔에스(dns) 메시지 처리시스템 및 방법 |
CN1870569B (zh) * | 2005-05-25 | 2012-02-08 | 国际商业机器公司 | 网络系统及其管理方法、通信终端和报文发送方法 |
JP4241681B2 (ja) | 2005-07-05 | 2009-03-18 | ブラザー工業株式会社 | 情報処理装置、およびプログラム |
KR100908320B1 (ko) * | 2009-03-20 | 2009-07-17 | (주)넷맨 | IPv6 네트워크 내 호스트 차단 및 탐색방법 |
JP4851565B2 (ja) * | 2009-06-17 | 2012-01-11 | 株式会社日立製作所 | 通信装置 |
US20110153807A1 (en) * | 2009-12-21 | 2011-06-23 | Lorenzo Vicisano | Systems and Methods for Preemptive DNS Resolution |
JP5942808B2 (ja) * | 2012-11-19 | 2016-06-29 | 富士ゼロックス株式会社 | 通信装置及びプログラム |
-
1998
- 1998-02-27 JP JP4673998A patent/JP3915230B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009207182A (ja) * | 2009-06-11 | 2009-09-10 | Hitachi Ltd | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
JP4670979B2 (ja) * | 2009-06-11 | 2011-04-13 | 株式会社日立製作所 | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPH11252172A (ja) | 1999-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7158526B2 (en) | Packet communication method and apparatus and a recording medium storing a packet communication program | |
US7701952B2 (en) | Packet communication method and apparatus and a recording medium storing a packet communication program | |
US7639686B2 (en) | Access network clusterhead for providing local mobility management of a roaming IPv4 node | |
KR100560737B1 (ko) | 듀얼스택을 이용한 아이피브이4 - 아이피브이6 전환 장치및 그 방법 | |
JP4186446B2 (ja) | アドレス変換方法 | |
US7231452B2 (en) | Method and apparatus for communicating on a communication network | |
US7443880B2 (en) | Arrangement for reaching IPv4 public network nodes by a node in a IPv4 private network via an IPv6 access network | |
US7315543B2 (en) | Apparatus and method for data communication on packet-switching network | |
KR100485801B1 (ko) | 서로 다른 사설망에 존재하는 네트워크장치들 간의직접접속을 제공하는 망접속장치 및 방법 | |
KR100817552B1 (ko) | 맵핑 테이블을 이용한 IPv4/IPv6 단말 또는 응용프로그램간 프로토콜 변환 장치 및 방법과, 프로토콜 변환장치의 맵핑 테이블 생성 방법 | |
JP3735348B2 (ja) | インターネットプロトコルアドレス変換装置、これを用いた通信ネットワークシステム及び通信方法 | |
US7653745B1 (en) | Method and apparatus for distributed network address translation processing | |
US20070094411A1 (en) | Network communications system and method | |
JP2003348173A5 (ja) | ||
JP3915230B2 (ja) | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 | |
Fiuczynski et al. | The Design and Implementation of an IPv6/IPv4 Network Address and Protocol Translator. | |
JP4572938B2 (ja) | アドレス変換方法 | |
KR100433621B1 (ko) | 사설 인터넷의 단대단 서비스를 위한 다중 계층 인터넷프로토콜 및 상기 다중 계층 인터넷 프로토콜 패킷의송/수신 방법 | |
JP4670979B2 (ja) | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 | |
JP4349413B2 (ja) | パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体 | |
JP3965729B2 (ja) | IPv4−IPv6通信方法およびIPv4−IPv6変換装置 | |
JPH11136285A (ja) | IPv4−IPv6通信方法およびIPv4−IPv6変換装置 | |
Elahi et al. | Internet Protocols Part I | |
KR20040069502A (ko) | IPv4-IPv6 공존 환경하에서 프로토콜 기능 공유방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050216 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050216 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050216 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060417 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061017 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061215 |
|
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: 20070116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070129 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100216 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130216 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |