【文献】
高橋 健太郎,「v6接続新機能にバッファローが対応 IPv6普及を大きく進める「v4 over v6」 DS−LiteとMAP−Eの2方式が本格稼働」,日経NETWORK 第177号,日本,日経BP社 Nikkei Business Publications,Inc.,2015年 1月,pp.16-17
【文献】
志田 智、ほか,「マスタリングTCP/IP IPv6編」,株式会社オーム社,2013年 7月25日,第2版,p.242,254,287-301
【文献】
M. Boucadair and I. Farrer,"Unified IPv4-in-IPv6 Software CPE, draft-ietf-software-unified-cpe-02",Internet-Draft,IETF,2015年10月19日,pp.1-9,[検索日 2018.08.09],インターネット:<https://tools.ietf.org/pdf/draft-ietf-softwire-unified-cpe-02.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
IPv4を用いて通信するIPv4ネットワーク及びIPv6を用いて通信するIPv6ネットワークの境界に位置する複数のルータと前記IPv6ネットワークを介して通信する通信部と、
前記複数のルータのそれぞれの識別情報と、前記複数のルータのそれぞれが実行するIPv4−IPv6変換方式とを関連付けて管理する管理テーブルを有する情報保持部と、
前記管理テーブルにおいて管理されている前記複数のルータの中から前記通信部が通信する第1のルータを選択する選択部と、
前記第1のルータが実行するIPv4−IPv6変換方式に応じて前記第1のルータへ送信するパケットを生成するパケット生成部と、を備え、
前記選択部は、前記IPv4−IPv6変換方式がMAP−Eを含み、通信端末から受信したパケットの使用ポートが前記MAP−Eにおいて利用可能ポートの範囲内である場合、前記第1のルータを選択する、
通信装置。
IPv4を用いて通信するIPv4ネットワーク及びIPv6を用いて通信するIPv6ネットワークの境界に位置する複数のルータと前記IPv6ネットワークを介して通信する場合に、
前記複数のルータのそれぞれの識別情報と、前記複数のルータのそれぞれが実行するIPv4−IPv6変換方式とを関連付けて管理する管理テーブルにおいて管理されている前記複数のルータの中から、通信する第1のルータを選択し、
前記第1のルータが実行するIPv4−IPv6変換方式に応じて前記第1のルータへ送信するパケットを生成し、
前記IPv4−IPv6変換方式がMAP−Eを含み、通信端末から受信したパケットの使用ポートが前記MAP−Eにおいて利用可能ポートの範囲内である場合、前記第1のルータを選択する、通信方法。
IPv4を用いて通信するIPv4ネットワーク及びIPv6を用いて通信するIPv6ネットワークの境界に位置する複数のルータと前記IPv6ネットワークを介して通信する場合に、
前記複数のルータのそれぞれの識別情報と、前記複数のルータのそれぞれが実行するIPv4−IPv6変換方式とを関連付けて管理する管理テーブルにおいて管理されている前記複数のルータの中から、通信する第1のルータを選択し、
前記第1のルータが実行するIPv4−IPv6変換方式に応じて前記第1のルータへ送信するパケットを生成し、
前記IPv4−IPv6変換方式がMAP−Eを含み、通信端末から受信したパケットの使用ポートが前記MAP−Eにおいて利用可能ポートの範囲内である場合、前記第1のルータを選択することをコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0012】
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。はじめに、
図1を用いて本発明の実施の形態1にかかる通信システムの構成例について説明する。
図1の通信システムは、ルータ11、ルータ12、及び通信装置20を有している。ルータ11は、IPv4を用いて通信するIPv4ネットワーク1及びIPv6を用いて通信するIPv6ネットワーク2の境界に位置する。
図1においては、IPv4ネットワーク1及びIPv6ネットワーク2の境界に、2台のルータが存在することを示しているが、3台以上のルータが存在してもよい。
【0013】
続いて、通信装置20の構成例について説明する。通信装置20は、通信部21、パケット生成部22、選択部23、及び情報保持部24を有している。通信装置20は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置であってもよい。通信部21、パケット生成部22、選択部23、及び情報保持部24は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュール等であってもよい。または、通信部21、パケット生成部22、選択部23、及び情報保持部24は、回路もしくはチップ等のハードウェアであってもよい。
【0014】
通信部21は、ルータ11及びルータ12の少なくとも一方と通信する。通信部21は、ルータ11及びルータ12と、IPv6を用いてデータを伝送する。通信部21がルータ11及びルータ12へ送信したデータは、IPv4に変換されて、ルータ11及びルータ12からIPv4ネットワーク1上のWebサーバ等へ送信される。
【0015】
ルータ11及びルータ12は、予め定められたIPv4−IPv6変換方式を実行して、IPv6ネットワーク2を介してIPv6を用いて送信されたデータをIPv4に変換し、IPv4へ変換後のデータをIPv4ネットワーク1へ送信する。ルータ11は、ルータ12とは異なるIPv4−IPv6変換方式を実行する。
【0016】
情報保持部24は、ルータ11及びルータ12の識別情報と、それぞれのルータが実行するIPv4−IPv6変換方式とを関連付けて管理する管理テーブルを有する。情報保持部は、通信装置20が有するメモリ等であってもよい。管理テーブルに設定される情報は、通信装置20を管理するユーザ等によって設定及び更新されてもよく、外部サーバ(図示せず)等から送信される情報であってもよい。
【0017】
選択部23は、情報保持部24が保持する管理テーブルにおいて管理されている複数のルータの中から、通信部21が通信するルータを選択する。選択部23は、例えば、予め定められた優先度に従って、ルータ11及びルータ12のいずれかを選択してもよい。もしくは、選択部23は、識別情報に若番が設定されているルータを優先的に選択してもよく、ラウンドロビンにルータを選択してもよい。また、選択部23は、通信中のルータに障害が発生した場合においても、優先度、識別情報等に応じて残りのルータの中から通信するルータを選択する。
【0018】
パケット生成部22は、選択部23において選択されたルータが実行するIPv4−IPv6変換方式において用いられる形式のパケットを生成する。IPv4−IPv6変換方式は、例えば、DS-Lite、464XLAT、MAP-E等が用いられてもよい。パケット生成部22は、ルータが実行するIPv4−IPv6変換方式が、カプセル化を行うのか否か、IPヘッダの書き換えを行うのか否か、等に応じて適切な形式のパケットを生成する。カプセル化は、例えば、IPv4パケットをIPv6パケットのペイロードに設定することであってもよい。また、IPヘッダの書き換えは、IPv4パケットのIPヘッダを、IPv6パケットのIPヘッダに書き換えることであってもよい。
【0019】
通信部21は、パケット生成部22において生成されたパケットを、選択部23において選択されたルータへ送信する。
【0020】
以上説明したように、
図1の通信システムにおける通信装置20は、用いるIPv4−IPv6変換方式が異なる複数のルータと通信を行うことができる。さらに、通信装置20のパケット生成部22は、選択部23において選択されたルータが実行するIPv4−IPv6変換方式において用いられる形式のパケットを生成することができる。そのため、通信部21が通信中のルータに障害が発生した場合であっても、パケット生成部22は、代替ルータにおいて実行されるIPv4−IPv6変換方式において用いられる形式のパケットを生成し、代替ルータとの通信を行うことができる。
【0021】
(実施の形態2)
続いて、
図2を用いて本発明の実施の形態2にかかる通信装置30の構成例について説明する。通信装置30は、通信部21、パケット生成部22、選択部23、情報保持部24、及び監視部31を有している。通信装置30は、
図1の通信装置20に監視部31を追加した構成である。通信部21、パケット生成部22、選択部23、及び情報保持部24については、
図1と同様の内容については説明を省略し、
図1との差分について主に説明する。
【0022】
また、通信装置30は、例えば、HGW(Home Gateway)であってもよい。HGWは、家庭内の通信機器と無線LAN通信を行い、家庭内の通信機器と外部ネットワークとの間の通信を中継する装置である。
【0023】
通信部21は、PE(Provider Edge)ルータ41〜44とIPv6ネットワーク2を介してIPv6通信を行う。PEルータ41〜44は、IPv4ネットワーク1及びIPv6ネットワーク2との境界に配置されるルータであり、
図1のルータ11及びルータ12に相当する。PEルータ41〜44は、それぞれ異なるIPv4−IPv6変換方式を実行してもよく、PEルータ41〜44のうち少なくとも一つのPEルータが、他のPEルータと異なるIPv4−IPv6変換方式を実行してもよい。通信部21は、PEルータ41〜44のいずれかのPEルータを介して、IPv4ネットワーク1に配置されているサーバ装置等と通信を行う。
【0024】
監視部31は、PEルータ41〜44に対して、定期的に死活監視を行う。死活監視は、PEルータ41〜44に障害が発生していないか否か、もしくは、通信装置30とPEルータ41〜44との間の経路に障害が発生していないか否か等を監視する。監視部31は、通信部21を介して、定期的に監視用パケットをPEルータ41〜44へ送信してもよい。監視部31は、PEルータ41〜44から、送信した監視用パケットに対する応答パケットを受信した場合に、応答パケットを送信してきたPEルータには障害が発生していないと判定してもよい。もしくは、監視部31は、監視用パケットを送信してから、応答パケットを受信するまでの時間が予め定められた時間を超えている場合に、応答パケットを送信してきたPEルータもしくは応答パケットを送信してきたPEルータとの間の経路に障害が発生していると判定してもよい。
【0025】
具体的に、監視部31は、監視用パケットとして、ICMPv6(Internet Control Message Protocol for IPv6)のEcho RequestをPEルータに送信してもよい。さらに、監視部31は、Echo Requestに対して、PEルータからICMPv6のEcho Replyが送信されてきた場合、PEルータと正常に通信が可能な状態と判定してもよい。監視部31は、Echo Replyが送信されてくるのを一定時間待機し、Echo Replyを受信できない、もしくは、ICMPv6のDestination Unreachableを受信した場合に、PEルータと正常に通信を行うことができない状態と判定してもよい。
【0026】
情報保持部24は、PEルータに関する情報を管理する管理テーブルを有している。ここで、
図3を用いて、管理テーブルにおいて保持されている情報について説明する。接続先識別情報には、PEルータの識別情報が設定されている。例えば、
図3の管理テーブルにおいては、接続先識別情報として、PEルータ41、PEルータ42、PEルータ43、及びPEルータ44が設定されている。
【0027】
IPv6マイグレーション技術には、それぞれのPEルータが実行するIPv6マイグレーション技術が設定されている。PEルータ41及び42は、DS-Lite(Dual Stack Lite)を実行し、PEルータ43は、464XLATを実行し、PEルータ44は、MAP-E(Mapping of Address and Port with Encapsulation)を実行する。
【0028】
接続先アドレスには、PEルータのドメイン名が設定されている。PEルータ41のドメイン名は、dslite1.domainname.comであり、PEルータ42のドメイン名は、dslite2.domainname.comであり、PEルータ43のドメイン名は、464xlat1.domainname.comであり、PEルータ44のドメイン名は、mape1.domainname.comである。
【0029】
IPv6アドレスには、PEルータに割り当てられているIPv6アドレスが設定されている。
図3においては、選択部23が、通信部21の通信先としてPEルータ42を選択している場合に、選択されたPEルータ42のIPv6アドレスのみが設定されている。選択部23によって選択されたPEルータのIPv6アドレスは、例えば、DNSサーバから受信してもよい。
【0030】
優先度情報には、選択部23によって選択される優先度が設定されている。
図3においては、1が最も優先度が高く、4が最も優先度が低いとする。優先度は、例えば、IPv6マイグレーション技術に応じて定められてもよい。例えば、DS-Liteを実行するPEルータを最も高い優先度とし、MAP−Eを実行するPEルータを最も低い優先度としてもよい。また、
図3に示すように、PEルータ41及びPEルータ42のように、同じIPv6マイグレーション技術を用いるPEルータに関しては、一方の優先度を最も低く設定してもよい。具体的には、
図3においては、PEルータ41の優先度が最も低く設定されている。もしくは、優先度は、伝送遅延に応じて定められてもよい。例えば、伝送遅延の最も短いPEルータの優先度を最も高くし、伝送遅延の最も長いPEルータの優先度を最も低くしてもよい。伝送遅延は、例えば、監視部31が監視パケットを送信してから応答パケットを受信するまでの時間であってもよい。
【0031】
図2に戻り、選択部23は、監視部31において通信の継続が困難な状態であるPEルータが検出された場合、情報保持部24に保持されている管理テーブルに設定されている優先度情報を変更する。ここで、
図3を用いて優先度情報の変更について説明する。
【0032】
図3は、PEルータ42のIPv6アドレスが設定されているため、現在は、PEルータ42と通信中であることを示している。監視部31において、PEルータ42との通信の継続ができない状態であると判定された場合、選択部23は、PEルータ42の優先度を一番低い4とし、他のPEルータの優先度を一つ高くしてもよい。具体的には、PEルータ43の優先度を1、PEルータ44の優先度を2、PEルータ41の優先度を3としてもよい。
【0033】
通信中のPEルータ42との通信の継続が困難になった場合、選択部23は、変更後の優先度情報に従い、通信を行うPEルータとしてPEルータ43を選択する。
【0034】
続いて、
図4を用いて本発明の実施の形態2にかかるPEルータの変更処理の流れについて説明する。
図4に示す処理の流れが実行される前提として、通信部21は、IPv6ネットワーク2に対してリンクアップした場合、IPv6ネットワーク2に配置されているルータより送信されるRA(Router Advertisement)により、IPv6アドレスの先頭部分(Prefix)を取得し、自動的にIPv6アドレスを生成する。さらに、通信部21は、DHCPv6(Dynamic Host Configuration Protocol Version 6)を実行するDHCPサーバより、DNS(Domain Name System)サーバアドレスをを取得する。通信装置30が、IPv6アドレスを生成する方法及びDNSサーバアドレスを取得する方法はこれに限定されず、例えば、DHCPサーバがPrefix又はIPv6アドレスを配布する方式であってもよい。もしくは、ユーザが、プロバイダが指定したIPv6アドレス及びDNSサーバアドレスを手動設定してもよい。
【0035】
はじめに、選択部23は、情報保持部24に保持されている管理テーブルを参照し、接続先のPEルータを選択する(S11)。例えば、選択部23は、
図3の管理テーブルを用いて、優先度情報が1と最も高い優先度が設定されているPEルータ42を選択する。また、選択部23は、特定したPEルータのIPv6アドレスを、管理テーブルに設定する。ここで、選択したPEルータのアドレス取得方法について説明する。
【0036】
DS-Lite方式を用いるPEルータ41もしくは42の場合、DNSサーバからAAAAレコードを取得することによって、PEルータ42のアドレス情報を取得する。464XLAT方式を用いる場合、DNSサーバからAPL RRレコードを取得することにより、PEルータ43の存在する宛先Prefixを特定する。MAP-E方式を用いる場合、IPv6ネットワーク2上に配置されているMAPルール配信サーバから、PEルータ44のアドレスを取得する。
【0037】
また、選択部23は、選択したPEルータ42に関するIPv6アドレスを取得できない場合、次に優先度が高いPEルータ43を選択し、PEルータ43のIPv6アドレスを取得してもよい。
【0038】
次に、監視部31は、選択部23において選択されたPEルータ42に関して定期的に死活監視を行う(S12)。次に、監視部31は、死活監視を行った結果、PEルータ42と通信可能な状態か否かを判定する(S13)。監視部31は、PEルータ42と通信可能な状態であると判定した場合、次に死活監視を行う契機まで、PEルータ42との接続を継続する。
【0039】
監視部31においてPEルータ42と通信可能な状態ではないと判定された場合、選択部23は、情報保持部24において保持されている
図3に示す管理テーブルにおける優先度情報を変更する(S14)。具体的には、PEルータ42の優先度を4とし、PEルータ43の優先度を1とし、PEルータ44の優先度を2とし、PEルータ41の優先度を3とする。
【0040】
次に、選択部23は、PEルータ42に設定されているIPv6アドレス情報を削除する(S15)。次に、ステップS11の処理に戻り、選択部23は、優先度情報及びIPv6アドレスが更新された管理テーブルを用いて、接続先のPEルータを選択する。
【0041】
以上説明したように、本発明の実施の形態2にかかる通信装置30は、通信中のPEルータと通信可能な状態ではなくなった場合に、情報保持部24に保持されている管理テーブルにおいて、代替PEルータのIPv4-IPv6変換方式を特定することができる。さらに、パケット生成部22は、特定したIPv4−IPv6変換方式に従った形式のパケットを生成することができる。これより、通信装置30は、IPv4−IPv6変換方式の異なるPEルータへ変更後も通信を継続することができる。
【0042】
また、通信装置30は、通信中のPEルータに障害等が発生した場合以外にも、次の要因によりPEルータと通信を行うことができない場合がある。例えば、MAP-Eにおいては、利用可能なポートに制限があるため、利用可能なポート以外のポートを用いている場合、MAP-Eを用いた通信を行うことができない。このような場合であっても、通信装置30は、MAP-Eとは異なるIPv4−IPv6変換方式を用いているPEルータへ変更することによって通信を継続することができる。
【0043】
また、通信装置30は、IEEE802.11を用いた無線通信、LTE(Long Term Evolution)等の携帯電話網を介した無線通信、もしくはLANケーブルを用いた通信等、それぞれの通信形態において異なるIPv6アドレスを取得することが可能であり、様々なIPv6ネットワークに接続することが可能である。
【0044】
このように、様々なIPv6ネットワークに接続することが可能である場合に、通信装置30は、接続するPEルータを切り替えて通信を継続することができる。そのため、通信装置30は、IPv6ネットワーク自体を切り替えることができるため、IPv6ネットワーク設計の制限の影響を軽減することができる。
【0045】
(実施の形態3)
続いて、
図5を用いて本発明の実施の形態3にかかる通信装置30の接続形態について説明する。
図5の通信装置30は、
図3に示す管理テーブルにおいて優先度の高いPEルータ42とともに、IPv4−IPv6変換方式がMAP-EであるPEルータ44とも接続する。
【0046】
通信装置30は、接続しているPEルータ42及びPEルータ44のいずれかにIPv6パケットを送信する。
【0047】
続いて、
図6を用いて、本発明の実施の形態3にかかる通信装置30におけるパケットを送信するルータの選択処理の流れについて説明する。はじめに、選択部23は、情報保持部24に保持されている管理テーブルを参照し、接続先のPEルータを選択する(S21)。例えば、選択部23は、
図3の管理テーブルを用いて、優先度情報が1と最も高い優先度が設定されているPEルータ42を選択する。さらに、選択部23は、IPv4−IPv6変換方式がMAP-EであるPEルータ44を選択する。
【0048】
次に、通信装置30は、通信装置30が形成する通信エリアに位置する通信端末から、IPv4ネットワーク1を送信先とするパケットを受信する(S22)。次に、選択部23は、受信したパケットの送信元ポートもしくは宛先ポート(以下、使用ポートと称する)のどちらかがMAP-Eにおいて利用可能ポートの範囲内か否かを判定する(S23)。
【0049】
選択部23は、使用ポートが、MAP-Eにおいて利用可能なポートの範囲内であると判定した場合、IPv4−IPv6変換方式としてMAP-Eを実行するPEルータ44へパケットを送信する(S24)。
【0050】
ステップS23において、選択部23は、使用ポートが、MAP-Eにおいて利用可能なポートの範囲内ではないと判定した場合、優先度の高いPEルータ42へパケットを送信する(S24)。
【0051】
以上説明したように、本発明の実施の形態3にかかる通信装置30の接続形態を利用することによって、例えば、MAP-Eの利用可能範囲内のポートではないポートを使用しなければならないとする制約のあるアプリケーションが用いられる場合であっても、MAP-E以外のIPv4−IPv6変換方式を用いて、インターネットに接続することができる。
【0052】
(実施の形態4)
続いて、
図7を用いて本発明の実施の形態4にかかる通信装置30におけるパケットを送信するルータの選択処理の流れについて説明する。実施の形態4においては、通信部21が、PEルータ41〜44と接続し、通信可能な状態であることを前提とする。ステップS31は、
図4のステップS11と同様であるため詳細な説明を省略する。ステップS31においては、選択部23は、
図3の管理テーブルを用いて、優先度情報が1と最も高い優先度が設定されているPEルータ42を選択する。
【0053】
次に、監視部31は、PEルータ41〜44に対して定期的に死活監視を行う(S32)。次に、監視部31は、死活監視を行った結果、通信できないPEルータが存在するか否かを判定する(S33)。監視部31は、PEルータ41〜44と通信可能な状態であると判定した場合、ステップS32の処理に戻り、定期的に死活監視を行う。
【0054】
ステップS33において、監視部31は、通信できないPEルータが存在すると判定した場合、ステップS31にて選択部23によって選択されたPEルータ42が通信可能な状態か否かを判定する(S34)。
【0055】
監視部31において、PEルータ42と通信可能な状態であると判定された場合、選択部23は、PEルータ42以外のPEルータの優先度を変更する(S37)。例えば、
図4において優先度が2と設定されているPEルータ43と通信可能な状態ではないと判定された場合、選択部23は、PEルータ43の優先度を4とし、PEルータ44の優先度を2とし、PEルータ41の優先度を3とする。
【0056】
ステップS34において、PEルータ42と通信可能な状態ではないと判定された場合、選択部23は、情報保持部24において保持されている管理テーブルにおける優先度情報を変更する(S35)。具体的には、PEルータ42の優先度を4とし、PEルータ43の優先度を1とし、PEルータ44の優先度を2とし、PEルータ41の優先度を3とする。
【0057】
次に、選択部23は、PEルータ42に設定されているIPv6アドレス情報を削除する(S36)。次に、ステップS31の処理に戻り、選択部23は、優先度情報及びIPv6アドレスが更新された管理テーブルを用いて、接続先のPEルータを選択する。
【0058】
以上説明したように、本発明の実施の形態4にかかる通信装置30におけるパケットを送信するルータの選択処理の流れを実行することによって、選択部23が選択したPEルータ以外のPEルータについても死活監視を行うことができる。
【0059】
これによって、情報保持部24が保持する管理テーブルにおいて、通信可能な状態ではないPEルータの優先度を低く設定することができる。そのため、選択部23が選択したPEルータと通信可能な状態ではなくなった場合に、選択部23は、次に選択されるPEルータとして、確実に通信可能な状態のPEルータを選択することができる。
【0060】
上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、通信装置における処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
【0061】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0062】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。