図1は、実施形態に係る通信方法が用いられるネットワークの例を示す。図1の例では、プライベートネットワーク1、回線事業者のネットワーク4、Internet Services Provider(ISP)事業者ネットワーク6、IPv4インターネット11、および、IPv6インターネット12が含まれる。ここで、プライベートネットワーク1はIPv4とIPv6の両方に対応しているものとする。ユーザは、端末2で用いられるアプリケーション、通信先などにより、IPv4とIPv6のいずれかのプロトコルを用いた通信を行うことができる。IPv4インターネット11では、IPv4が用いられ、回線事業者のネットワーク4、ISP事業者ネットワーク6、IPv6インターネット12ではIPv6が用いられているものとする。回線事業者のネットワーク4はIPv6ルータ5を備え、ISP事業者ネットワーク6もIPv6ルータ7を備えているものとする。なお、図1などの図では、図を見やすくするためにIPv6ルータ5、7を1つずつ示しているが、IPv6ルータ5、7の数は任意である。さらに、IPv4インターネット11も任意の数のIPv4ルータを備え、IPv6インターネット12も任意の数のIPv6ルータを備えているものとする。さらに、図1等に示すいずれのネットワークもルータ以外の通信装置を含むことができる。また、プライベートネットワーク1に含まれている端末2の数も任意である。
カスタマーエッジルータ(IPv4 ResidualDeployment customer edge、4rd CE)3は、プライベートネットワーク1と回線事業者のネットワーク4に接続されている。なお、カスタマーエッジルータ3は、customer SAM(C−SAM)と称される場合もあるが、以下の説明では、「カスタマーエッジルータ」とする。また、IPv4 over IPv6トンネリング通信に使用されるトンネルルータであって、IPv4インターネット11に接続しているルータを、ボーダールータ(IPv4 ResidualDeployment Border Router、4rd BR)8と記載する。なお、ボーダールータ8は、provider SAM(P−SAM)と称される場合もあるが、以下の説明では、「ボーダールータ」とする。
カスタマーエッジルータ3は、端末2から受信したパケットがIPv4パケットであって、さらに、プライベートネットワーク1に含まれていない通信装置を宛先としている場合、受信したパケットはカプセル化の対象であると判断する。そこで、カスタマーエッジルータ3は、認証サーバ13に、端末2から受信したIPv4パケットのトンネル通信を行う際に使用するトンネルの終点アドレス(トンネルエンドポイントアドレス)を問い合わせる。このとき、カスタマーエッジルータ3は、認証サーバ13に、端末2を識別する識別子を通知する。
認証サーバ13は、予め、ボーダールータ8を介してIPv4インターネット11にアクセスすることを許可されているユーザの端末2の識別子を記憶している。また、認証サーバ13は、端末2の識別子に対応付けて、その端末2に対して使用が許可されているトンネルの終点アドレスも記憶しているものとする。認証サーバ13は、カスタマーエッジルータ3から通知された識別子に対応付けて記憶されている終点アドレスを検出できた場合、検出した終点アドレスをカスタマーエッジルータ3に通知する。すなわち、端末2がトンネル通信に対して権限のあるユーザ(正規ユーザ)の端末であると確認されたときに、認証サーバ13は、終点アドレスをカスタマーエッジルータ3に通知する。なお、正規ユーザの通信に用いられる端末を「許可端末」と記載することがある。
カスタマーエッジルータ3は、認証サーバ13から終点アドレスを通知された場合、端末2から受信したIPv4パケットをIPv6ヘッダでカプセル化すると共に、通知された終点アドレスに向けてカプセル化後のパケットを送信する。一方、認証サーバ13から終点アドレスが通知されなかった場合、カスタマーエッジルータ3は、端末2がIPv4インターネット11にアクセスする権限を持たないと判断する。そこで、カスタマーエッジルータ3は、端末2から受信したIPv4パケットを転送しない。
ボーダールータ8は、カスタマーエッジルータ3から送信されたパケットを受信すると、デカプセル化してIPv4インターネット11に転送する。このとき、ボーダールータ8は、ボーダールータ8に割り当てられた終点アドレスに宛てられているパケットを、転送先のネットワークの正規ユーザからのパケットであるとみなす。つまり、ボーダールータ8は、終点アドレスに到達したパケットを正規ユーザからのパケットであると判断して、認証を行わずにデカプセル化と転送を行う。
以上の通信方法では、ボーダールータ8が受信した個々のパケットについてIPv4インターネット11にアクセスする権限を有するユーザからのパケットであるかを確認しなくても、IPv4インターネット11への不正アクセスを防ぐことができる。従って、ボーダールータ8やカスタマーエッジルータ3などのトンネルルータは、ユーザに対する通信の許可状況を管理しなくても良い。
<装置構成>
以下、図面を参照しながら、図1に含まれている装置の構成の例を説明する。なお、以下の説明では、カプセル化により付加されたIPv6ヘッダを「アウターヘッダ」と記載することがある。また、カプセル化されたパケットの中のIPv4ヘッダは、「インナーヘッダ」と記載されることがある。以下の例では、トンネル通信は、SAMを用いたIPv6 over IPv4トンネリングであるものとする。なお、SAMは、4rd(IPv4 ResidualDeployment)と記載されることがある。
図2は、カスタマーエッジルータ3の構成の例を示す。カスタマーエッジルータ3は、転送制御部110、経路制御部120、SAM制御部130、記憶部140を備える。転送制御部110は、回線インタフェース111(111a、111b)とパケット転送処理部113を備える。SAM制御部130は、TEPA(tunnel endpoint address、終点アドレス)処理部131、カプセリング処理部132、ユーザ情報処理部133、アドレス情報処理部134を備える。記憶部140は、IPv6ルーティングテーブル141、IPv4ルーティングテーブル142、Network Address Port Translation(NAPT)テーブル143を備える。
回線インタフェース111aはカスタマーエッジルータ3をプライベートネットワーク1と接続する。回線インタフェース111bは、カスタマーエッジルータ3と回線事業者のネットワーク4を接続する。なお、回線インタフェース111の数は実装に応じて任意に変更される場合がある。
パケット転送処理部113は、回線インタフェース111a、111bから受信したパケットを経路制御部120に出力して、転送先を問い合わせる。経路制御部120から転送先が通知されると、パケット転送処理部113は、通知された転送先に応じて、回線インタフェース111a、111bのいずれかにパケットを出力する。例えば、プライベートネットワーク1に含まれている端末2Aから回線インタフェース111aを介して受信したパケットが、プライベートネットワーク1に含まれている端末2Bに転送されるとする。この場合、パケット転送処理部113は、経路制御部120から受信したパケットをプライベートネットワーク1中の端末2Bに向けて送信することを指示される。すると、パケット転送処理部113は、受信したパケットを回線インタフェース111aから端末2Bに送信する。一方、後述するように、カプセル化後のパケットを回線事業者のネットワーク4に向けて送信するように指示されると、パケット転送処理部113は、そのパケットを回線インタフェース111bに出力する。
経路制御部120は、パケット転送処理部113やSAM制御部130から入力されたパケットの転送先をIPv6ルーティングテーブル141、もしくは、IPv4ルーティングテーブル142を参照して決定する。経路制御部120は、転送先をパケット転送処理部113に通知する。また、経路制御部120は、トンネル通信に用いられるパケットをカプセリング処理部132に出力する。例えば、経路制御部120は、プライベートネットワーク1から受信したIPv4パケットで回線事業者のネットワーク4に転送されるパケットを、カプセリング処理部132に出力する。また、経路制御部120は、回線事業者のネットワーク4から受信したパケットであって、アウターヘッダの宛先アドレスがSAM用IPv6プレフィックスを含むパケットも、カプセリング処理部132に出力する。SAM用IPv6プレフィックスは予め設定されており、経路制御部120やアドレス情報処理部134に記憶されているものとする。
TEPA処理部131は、終点アドレスを問い合わせるための制御メッセージを生成する。以下、終点アドレスを問い合わせるための制御メッセージのことを、「問合せメッセージ」と記載することがある。認証サーバ13から終点アドレスを通知する制御メッセージがカスタマーエッジルータ3で受信されると、TEPA処理部131は、受信された制御メッセージを処理して終点アドレスを取得する。以下の記載では、認証サーバ13が終点アドレスを通知するためにカスタマーエッジルータ3に送信する制御メッセージのことを「アドレス通知メッセージ」もしくは「TEPA通知メッセージ」と記載することがある。TEPA処理部131は、アドレス通知メッセージから取得した終点アドレスを、アドレス情報処理部134に記憶させることができる。
カプセリング処理部132は、回線事業者のネットワーク4に転送されるパケットにアウターヘッダを付加することによりカプセル化する。一方、プライベートネットワーク1に転送されるパケットについて、カプセリング処理部132は、適宜、アウターヘッダを除去することにより、デカプセル化する。
ユーザ情報処理部133は、ユーザ情報を記憶しており、TEPA処理部131などからの要求に応じてユーザ情報を通知する。以下の説明では、ユーザ情報は、端末2を使用するユーザのユーザID(identification)とパスワードの組合せである。なお、ユーザ情報は、トンネル通信を要求している端末2もしくは端末2を使用するユーザを一意に特定することができる任意の情報とすることができる。さらに、ユーザ情報処理部133は、ユーザID、パスワードなどの認証に用いられる文字列を、端末2を識別する識別子に対応付けて記憶することもできる。
アドレス情報処理部134は、SAMによる通信を行うために予め設定されているプレフィックスの情報を格納する。すなわち、アドレス情報処理部134は、SAMによる通信で用いられるIPv4プレフィックスとIPv6プレフィックスを記憶する。また、アドレス情報処理部134は、これらのプレフィックスを用いて、カスタマーエッジルータ3に割り当てられるIPv6アドレス、IPv4グローバルアドレス、ポート番号などを求める。さらに、アドレス情報処理部134は、ボーダールータ8に備えられたアドレス情報処理部232(図4)と共通のアドレス決定ルールを記憶しており、アドレスを計算する際に使用する。アドレス情報処理部134がアドレスやポート番号を求める方法については、後で詳しく説明する。アドレス情報処理部134は、TEPA処理部131から通知された終点アドレスも格納する。
NAPTテーブル143は、アドレス情報処理部134で計算されたIPv4グローバルアドレスを、端末2が用いているIPv4プライベートアドレスと対応付けて記憶する。カプセリング処理部132は、パケットをカプセル化する際やデカプセル化する際にNAPTテーブル143を参照する。
図3は、カスタマーエッジルータ3のハードウェア構成の例を表す。カスタマーエッジルータ3は、Central Processing Unit(CPU)401、メモリ402、バス410(410a、410b)、パケット転送エンジン411、および、回線インタフェース111を備える。CPU401は、経路制御部120およびSAM制御部130として動作する。メモリ402は記憶部140として動作し、さらに、アドレス情報処理部134やユーザ情報処理部133で用いられるアドレス情報などを格納することができる。また、オプションとして、カスタマーエッジルータ3は、アドレス情報管理メモリ412、ユーザ情報管理メモリ413の少なくとも1つを備えることもできる。この場合、アドレス情報管理メモリ412はアドレス情報処理部134が計算したアドレスやポートの情報を格納し、ユーザ情報管理メモリ413は、ユーザ情報処理部133で処理される識別子やパスワードなどを記憶する。パケット転送エンジン411はパケット転送処理部113として動作する。バス410a、410bは、CPU401、メモリ402、パケット転送エンジン411、回線インタフェース111、アドレス情報管理メモリ412、ユーザ情報管理メモリ413を、データの入出力が可能となるように接続する。
図4は、ボーダールータ8の構成の例を示す図である。ボーダールータ8は、転送制御部210、経路制御部220、SAM制御部230、記憶部240を備える。SAM制御部230は、カプセリング処理部231とアドレス情報処理部232を備える。記憶部240は、IPv6ルーティングテーブル241とIPv4ルーティングテーブル242を備える。
回線インタフェース211aは、ボーダールータ8をISP事業者ネットワーク6に含まれるIPv6ルータ7などの装置と接続している。また、回線インタフェース211bは、IPv4インターネット11とボーダールータ8を接続している。なお、回線インタフェース211の数は実装に応じて任意に変更される場合がある。パケット転送処理部213は、回線インタフェース211から受信したパケットを経路制御部220に出力し、転送先を問い合わせる。また、経路制御部220から転送先が通知されると、パケット転送処理部213は、通知された転送先に応じて回線インタフェース211aもしくは211bにパケットを出力する。
経路制御部220は、パケット転送処理部213やカプセリング処理部231から入力されたパケットの転送先を、IPv6ルーティングテーブル241やIPv4ルーティングテーブル242を参照して決定する。経路制御部220は転送先をパケット転送処理部213に通知する。また、経路制御部220は、ボーダールータ8に割り当てられた終点アドレスを宛先としたIPv6パケットを、カプセリング処理部231に出力する。さらに、経路制御部220は、IPv4インターネット11からボーダールータ8が受信したパケットのうちでISP事業者ネットワーク6に転送されるパケットも、カプセリング処理部231に出力する。
カプセリング処理部231は、経路制御部220から入力されたパケットの種類を確認することにより、そのパケットにカプセル化とデカプセル化のどちらの処理を行うかを判定する。カプセリング処理部231は、IPv6パケットはデカプセル化の対象であると判定し、IPv4パケットはカプセル化の対象であると判定する。従って、例えば、カプセリング処理部231は、IPv6ルータ7から転送制御部210等を介して受信したIPv6パケットのアウターヘッダを除去して、IPv4パケットに変換する。一方、IPv4インターネット11から受信したIPv4パケットには、カプセリング処理部231は、アウターヘッダを付加してIPv6パケットに変換する。このとき、カプセリング処理部231は、カプセル化に用いるIPv6アドレスをアドレス情報処理部232に要求する。
アドレス情報処理部232は、カプセリング処理部231の要求に応じてIPv4アドレスからIPv6アドレスへのマッピングを行い、得られたIPv6アドレスをカプセリング処理部231に出力する。マッピングの際に、アドレス情報処理部232は、アドレス情報処理部134(図2)が用いるアドレス決定ルールと同じルールを用いる。アドレスのマッピングについては後述する。カプセリング処理部231は、アドレス情報処理部232から取得したアドレスを用いてパケットをカプセル化する。さらに、カプセリング処理部231は、カプセル化もしくはデカプセル化したパケットを経路制御部220に出力する。
図5は、ボーダールータ8のハードウェア構成の例を示す。ボーダールータ8は、CPU501、メモリ502、バス510(510a、510b)、パケット転送エンジン511、回線インタフェース211を備える。CPU501は、経路制御部220およびSAM制御部230として動作する。メモリ502は、IPv6ルーティングテーブル241、IPv4ルーティングテーブル242を格納し、さらに、適宜、経路制御部220やSAM制御部230の処理によって得られたデータを格納する。パケット転送エンジン511は、パケット転送処理部213として動作する。バス510aとバス510bは、CPU501、メモリ502、パケット転送エンジン511、回線インタフェース211を、データの入出力が可能となるように接続する。
図6は、認証サーバ13の構成の例を示す図である。認証サーバ13は、転送制御部310と認証制御部320を備える。転送制御部310は回線インタフェース311とパケット転送処理部312を備える。また、認証制御部320は、認証処理部321とユーザ情報テーブル322を備える。
回線インタフェース311は、認証サーバ13をIPv6ルータ7と接続する。パケット転送処理部312は、回線インタフェース311を介してIPv6ルータ7から問合せメッセージを受信する。さらに、パケット転送処理部312は、アドレス通知メッセージを、回線インタフェース311を介して、カスタマーエッジルータ3に向けて送信する。認証処理部321は、問合せメッセージを受信するとユーザ情報テーブル322に記憶されている情報を参照して、問合せメッセージに含まれているユーザ情報に対応付けられた終点アドレスを検索する。図7は、ユーザ情報テーブル322の例を示す図である。図7の例では、ユーザを識別するために用いられるユーザ情報と終点アドレス(TEPA)が対応付けて格納されている。
図8は、認証サーバのハードウェア構成の例を示す。認証サーバ13は、CPU601、メモリ602、バス610(610a、610b)、パケット転送エンジン611、回線インタフェース311を備える。CPU601は、認証処理部321として動作する。メモリ602は、ユーザ情報テーブル322を格納する。パケット転送エンジン611は、パケット転送処理部312として動作する。バス610aとバス610bは、CPU601、メモリ602、パケット転送エンジン611、回線インタフェース311を、データの入出力が可能となるように接続する。
<第1の実施形態>
図9は、端末2の通信に際して行われるパケットの送受信の例を説明するシーケンス図である。以下の説明では、カスタマーエッジルータ3のアドレス情報処理部134と、ボーダールータ8のアドレス情報処理部232が記憶している共通のアドレス生成ルールおよびプレフィックスは、以下のとおりであるものとする。
(a)SAM用IPv6プレフィックス : 2001:db8::/32
(b)SAM用IPv4プレフィックス : 192.0.2.0/24
(c)カスタマーエッジルータ3に配布されるプレフィックスの長さ:48ビット
(d)カスタマーエッジルータ3が用いるIPv6アドレスのネットワーク部は、初めの48ビットを配布されたプレフィックスとし、次の16ビットの値を0x01とする。
(e)カスタマーエッジルータ3が用いるIPv6アドレスのインタフェース部の値は「::1」とする。
なお、図9はシーケンスの一例であり、例えば、手順(4)と手順(8)を省略した上で、手順(5)〜(7)を手順(9)の後にするなどの変更が行われる場合がある。さらに、図9は、プライベートネットワーク1でIPv4とIPv6の両方が用いられるデュアルスタックネットワークである場合の例を示しているが、プライベートネットワーク1がIPv6に対応していない場合は、手順(3)は行われない。
(1)端末2は、カスタマーエッジルータ3にユーザ情報を含む制御パケットを送信する。ここでは、ユーザ情報は、ユーザID「user1」とパスワード「password11」であるものとする。カスタマーエッジルータ3は、回線インタフェース111aを介して制御パケットを受信すると、端末2から通知されたユーザIDとパスワードをユーザ情報処理部133に格納する。
(2)IPv6ルータ5は、カスタマーエッジルータ3がIPv6通信する際に用いるIPv6プレフィックスを通知する。ここでは、「2001:db8:abcd::/48」が、カスタマーエッジルータ3に通知されたとする。すると、アドレス情報処理部134は、通知されたプレフィックスに基づいて、カスタマーエッジルータ3がパケットを回線事業者のネットワーク4に送信する際に用いるIPv6アドレスを生成する。アドレス情報処理部134は、前述のアドレス生成ルールの(d)と(e)に基づいて、カスタマーエッジルータ3が用いるIPv6アドレスを「2001:db8:abcd:1::1」に決定する。アドレス情報処理部134は、生成したIPv6アドレスを記憶する。
(3)アドレス情報処理部134は、生成したIPv6アドレスとIPv6デフォルトルータを端末2に通知する。この処理により、端末2は、カスタマーエッジルータ3を介して、ISP事業者ネットワーク6やIPv6インターネット12に含まれる装置と通信することができるようになる。
(4)端末2は、IPv4パケットをIPv4インターネット11に送信するための設定をカスタマーエッジルータ3に要求する。
(5)カスタマーエッジルータ3は、ユーザ情報がユーザ情報処理部133に記憶されているかを確認する。ユーザ情報がユーザ情報処理部133に記憶されていない場合、カスタマーエッジルータ3は処理を中止する。一方、ユーザ情報がユーザ情報処理部133に記憶されている場合、ユーザ情報処理部133は、TEPA処理部131に終点アドレスを要求する。TEPA処理部131は、端末2に対して使用が許可された終点アドレスがアドレス情報処理部134に格納されているかを確認する。終点アドレスが格納されていない場合、TEPA処理部131は、問合せメッセージを生成する。カスタマーエッジルータ3は、認証サーバ13に問合せメッセージを送信して、終点アドレスを問い合わせる。
図10(a)に問合せメッセージの例を示す。問合せメッセージは、IPヘッダ、User Datagram Protocol(UDP)ヘッダの他に、4rdによる通信であることを示す識別子(4rd識別子)と任意の数のattribute-value(AV)ペアを含む。例えば、図10(a)の例では、AV1〜AV3の3つのAVペアを含んである。それぞれのAVペアは、データの属性、データ長、データの値の3つの情報を含む。AV1は、属性がメッセージタイプで、メッセージタイプを表す値の長さが1ビットであることと、メッセージタイプの値が0であることを示す。ここで、メッセージタイプ=0は、問合せメッセージであることを示すものとする。同様に、AV2は、ユーザIDが「user1」の5文字であることを示し、AV3は、パスワードが「password11」の10文字であることを示す。
(6)認証サーバ13は、カスタマーエッジルータ3から問合せメッセージを受信する。認証処理部321は、問合せメッセージに含まれているユーザ情報を抽出して、抽出した情報がユーザ情報テーブル322に含まれているかを確認する。問合せメッセージから抽出されたユーザIDとパスワードの組み合わせがユーザ情報テーブル322に含まれている場合、認証サーバ13は、IPv4インターネット11にアクセスする権限を有するユーザから認証の要求を受けたと判断する。そこで、ユーザ情報に対応付けて記憶されている終点アドレスを含むアドレス通知メッセージを生成してカスタマーエッジルータ3に返信する。例えば、認証サーバ13が図7に示すユーザ情報テーブル322を備えている場合、認証サーバ13は、「TEPA−A」を通知するアドレス通知メッセージを端末2に送信する。図10(b)に認証サーバ13からカスタマーエッジルータ3に送信されるアドレス通知メッセージの例を示す。なお、アドレス通知メッセージを示すメッセージタイプは「1」であるものとする。
一方、問合せメッセージから抽出されたユーザIDとパスワードの組み合わせがユーザ情報テーブル322に含まれていない場合、認証サーバ13は、IPv4インターネット11にアクセスする権限を持たないユーザから認証の要求を受けたと判断する。すると、認証処理部321は、認証に失敗した旨を通知するエラーメッセージを、カスタマーエッジルータ3に向けて送信する。例えば、エラーメッセージは、メッセージタイプの値が「3」であり、図10に示す制御メッセージと同様の構成とすることができる。
(7)カスタマーエッジルータ3は、認証サーバ13から制御メッセージを受信する。ここでは、カスタマーエッジルータ3がアドレス通知メッセージを受信したものとする。TEPA処理部131は、アドレス通知メッセージに含まれている情報を確認する。TEPA処理部131はアドレス通知メッセージから終点アドレスを取得すると、終点アドレスをアドレス情報処理部134に記憶させる。
(8)カスタマーエッジルータ3は、端末2にIPv4インターネット11へのアクセスが許可されたことを端末2に通知する。なお、手順(8)は、手順(4)の要求に対する応答メッセージである。
図11は、SAMによる通信が行われる際に用いられるアドレスの例を説明する図である。以下、適宜、図11を参照しながら、図9の手順(9)〜(11)で行われる動作について説明する。図11の例では、TEPA−Aは「2001:db8:0:1::1」であるものとする。さらに、カスタマーエッジルータ3のプライベートネットワーク1側のポートのアドレスは「192.168.0.1/24」であるものとする。さらに、端末2がIPv4パケットを用いた通信を行う対向装置14のアドレスは、「203.0.113.254」である。さらに、ボーダールータ8のIPv4インターネット11側のポートに割り当てられたアドレスは「203.0.113.1」であるものとする。
(9)端末2がIPv4インターネット11に向けたIPv4パケットを生成して、カスタマーエッジルータ3に送信したとする。以下の説明では、端末2は、プライベートネットワーク1ではプライベートアドレス「192.168.0.30」を用いているとする。すると、端末2は、対向装置14を宛先アドレスとして図11(a)に示すアドレスとポートを指定したIPv4パケットをカスタマーエッジルータ3に送信する。
カスタマーエッジルータ3の経路制御部120は、IPv4パケットを受信すると、IPv4ルーティングテーブル142を参照して、パケットの転送先を取得する。転送先がプライベートネットワーク1ではない場合、経路制御部120は、受信したパケットをカプセリング処理部132に出力する。
カプセリング処理部132は、パケットをカプセル化する前に、IPv4プライベートアドレスをIPv4グローバルアドレスに変換する。カプセリング処理部132は、端末2が使用しているIPv4プライベートアドレスとポート番号の組み合わせに対応するIPv4グローバルアドレスとポート番号が、NAPTテーブル143に格納されているかを確認する。図9の例では、手順(9)より前に端末2はIPv4インターネット11に含まれる装置と通信していないので、NAPTテーブル143にIPv4グローバルアドレスとポート番号が記録されていない。そこで、カプセリング処理部132は、アドレス情報処理部134にIPv4グローバルアドレスの計算を要求する。
アドレス情報処理部134は、IPv6ルータ5から配布されたIPv6プレフィックスがSAM用IPv6プレフィックスに該当することを確認する。配布されたプレフィックスがSAM用IPv6プレフィックスである場合、アドレス情報処理部134は、配布されたプレフィックスのうちでSAM用プレフィックスに含まれていないビット数の値を求める。ここでは
配布されたプレフィックス : 2001:db8:abcd::/48
SAM用IPv6プレフィックス: 2001:db8::/32
であるので、配布されたプレフィックスのうちの下位の16ビット「abcd」により個々のカスタマーエッジルータ3を識別することができる。以下、配布されたプレフィックスのうちでカスタマーエッジルータ3の識別に用いることができるビット列を「ユーザ識別ビット列」と記載することある。アドレス情報処理部134は、SAM用IPv4プレフィックスとユーザ識別ビット列から、IPv4グローバルアドレスとポート番号を計算する。
アドレス情報処理部134は、SAM用IPv4プレフィックスの長さとIPv4グローバルアドレスの長さの差分を求め、差分と同じビット数をユーザ識別ビット列の上位から取得する。アドレス情報処理部134は、取得したビット列をSAM用IPv4プレフィックスの後に続けて得られたアドレスをIPv4グローバルアドレスとする。ここでは、SAM用IPv4プレフィックスは24ビットでIPv4グローバルアドレスは32ビットであるので、差分は8ビットである。そこで、ユーザ識別ビット列の最初の8ビットの「ab」をSAM用IPv4プレフィックスに続けるとIPv4グローバルアドレスとなる。「ab」を10進数で表すと、「171」である。従って、IPv4グローバルアドレスは「192.0.2.171/24」となる。
アドレス情報処理部134は、次に、ポート番号を求める。アドレス情報処理部134は、ユーザ識別ビット列のうちでIPv4グローバルアドレスの計算に用いていないビットを2進数で表した値の前に、ポートレンジインデックスを付加して得られた文字列を10進数に変換した値をポート番号とする。ここで、ポートレンジインデックスは、SAMによる通信でユーザデータの送受信に使用されないポート番号を端末2に割り当てないために使用される。ポートレンジインデックスは「1」、「01」、「001」、「0001」のいずれかである。ここでは、図12(a)に示すように、ユーザ識別ビット列が「abcd」であり、「ab」がIPv4グローバルアドレスの生成に使用されているので、ポート番号の計算には、「cd」にあたるビット列が使用される。16進数の「cd」を2進数に変換すると、「11001101」となる。そこで、図12(b)に示すように、「11001101」の前にポートレンジインデックスのうちのいずれかを付加して得られたビット列に、任意のビット列を追加することにより16ビットのビット列が得られる。アドレス情報処理部134は、得られたビット列で示される値をポート番号とする。図12(b)の右端に、得られるポート番号の範囲を16進数と10進数で表す。以下の説明では、0x1CD0がポート番号として得られた場合を例として説明する。
アドレス情報処理部134は、計算したIPv4グローバルアドレスとポート番号をカプセリング処理部132に通知する。カプセリング処理部132は、端末2から送信されたパケットの送信元アドレスと送信元ポートを、アドレス情報処理部134から通知されたIPv4グローバルアドレスとポート番号に置き換える。さらに、カプセリング処理部132は、アドレス等を置き換える前にパケットに設定されていたIPv4プライベートアドレスと送信元ポート番号の組み合わせを、置き換え後のIPv4グローバルアドレス等と対応付けてNAPTテーブル143に格納する。図11(b)に、NAPTテーブル143の例を示す。
(10)次に、カプセリング処理部132は、パケットをカプセル化する。カプセリング処理部132は、アドレス情報処理部134に格納されている終点アドレスを取得し、アウターヘッダの宛先IPv6アドレスに設定する。ここでは、手順(7)で述べたとおり、TEPA−A(2001:db8:0:1::1)がアドレス情報処理部134に記憶されているものとする。また、カプセリング処理部132は、アドレス情報処理部134に対して、カスタマーエッジルータ3のIPv6アドレスを要求する。カスタマーエッジルータ3のIPv6アドレスは、手順(2)で説明したように、「2001:db8:abcd:1::1」である。カプセリング処理部132は、カスタマーエッジルータ3のIPv6アドレスをアウターヘッダの送信元IPアドレスに設定する。従って、カプセル化後のパケットに設定されている送信元アドレス、宛先アドレス、および、ポート番号は、図11(c)に示すようになる。カプセリング処理部132は、カプセル化後のパケットを経路制御部120に出力する。経路制御部120は、IPv6ルーティングテーブル141を参照して転送先を決定し、パケット転送処理部113に出力する。パケット転送処理部113は、ボーダールータ8に向けてカプセル化後のパケットを送信する。図9の(10)では、カプセル化後のパケットを「IPv4 over IPb6パケット」と記載している。カスタマーエッジルータ3からボーダールータ8に送信されたパケットは、IPv6ルータ5を介してボーダールータ8に送信される。
(11)ボーダールータ8は、TEPA−Aに宛てたパケットを受信する。ここで、TEPA−Aを宛先として指定できる端末2は、認証サーバ13での認証に成功した結果として認証サーバ13から終点アドレスを通知されているといえる。従って、ボーダールータ8は、ボーダールータ8に割り当てられているアドレスをアウターヘッダの宛先アドレスとしているパケットは、認証サーバ13での認証に成功したユーザからのパケットであるとみなす。このため、ボーダールータ8は、TEPA−A宛てのパケットについては正規ユーザからのパケットであるかを判定しない。そこで、パケット転送処理部213をからTEPA−A宛てのパケットが入力されると、経路制御部220は、そのパケットをカプセリング処理部231に出力する。カプセリング処理部231は、TEPA−A宛てのパケットをデカプセル化する。デカプセル化された後のパケットのIPヘッダに含まれているアドレスとポート番号は、図11(d)に示すとおりである。
カプセリング処理部231は、デカプセル化後のパケットを経路制御部220に出力する。経路制御部220は、IPv4ルーティングテーブル242を参照して、パケットをIPv4インターネット11に転送する。パケットはIPv4インターネット11中でルーティングされて対向装置14に到達する。
図13は、対向装置14から端末2への通信が行われる際に用いられるアドレスの例を説明する図である。以下、適宜、図13を参照しながら、図9の手順(12)〜(14)で行われる動作について説明する。
(12)対向装置14は、手順(11)で受信した端末2からのパケットに応答するパケット(応答パケット)を生成したとする。生成されたパケットは、対向装置14からボーダールータ8に送信される。また、対向装置14から送信される応答パケットのIPv4ヘッダに含まれるアドレスとポート番号は、図13(a)に示すとおりである。
(13)ボーダールータ8の経路制御部220は、IPv4パケットを受信すると、IPv4ルーティングテーブル242を参照して、パケットの転送先を取得する。転送先がIPv4インターネット11ではない場合、経路制御部220は、アドレス情報処理部232からSAM用IPv4プレフィックスを取得し、宛先アドレスのプレフィックスと一致するかを確認する。経路制御部220は、宛先IPv4アドレスのプレフィックスがSAM用IPv4プレフィックスと一致したパケットをカプセリング処理部231に出力する。
カプセリング処理部231は、アドレス情報処理部232にカプセル化に用いるためのIPv6アドレスの算出を要求する。アドレス情報処理部232は、宛先IPv4アドレスについて、SAM用IPv4プレフィックス以外のビット列と、宛先ポート番号を取得する。すなわち、図13(a)の丸で囲んだ情報に基づいてカプセル化に用いる宛先IPv6アドレスを算出する。ここでは、宛先IPv4アドレスが「192.0.2.171」であり、SAM用IPv4プレフィックスは「192.0.2.0/24」である。そこで、アドレス情報処理部232は、宛先IPv4アドレスの下位8ビットにあたる「171」を4ビットずつで区切った16進数に変換する。すると、「171」は「ab」に変換される。
次に、アドレス情報処理部232は、宛先ポート番号を2進数で表記したときに「1」の値が設定されている最上位のビットの位置を確認する。「0x1CD0」の場合、2進数に変換すると「0001 1100 1101 0000」となる。従って、「1」の値が設定されている最上位のビットは4ビット目であるので、「0001」がポート番号の算出のために付加されたポートレンジインデックスである。
ここで、アドレス情報処理部232は、ポート番号を表すビット列からアドレスの算出に用いるビット数を計算する。ユーザ配布IPv6プレフィックス長さは48ビットである。SAM用IPv6プレフィックスの長さが32ビットであるため、ユーザ識別ビット列は16ビットである。宛先IPv4アドレスの長さからSAM用IPv4プレフィックスの長さを差し引いた8ビット分の情報は、既に宛先IPv4アドレスから取得されている。従って、宛先ポート番号からは、16−8=8ビットの情報を取得すればよい。そこで、アドレス情報処理部232は、宛先ポート番号を表すビット列から、ポートレンジインデックスに続く8ビット(11001101)を取得し、16進数(cd)に変換する。得られた値「cd」を宛先IPv4アドレスから計算した値の後につなげることにより、ユーザ識別ビット列の値を16進数で示した「abcd」が得られる。
アドレス情報処理部232は、SAM用IPv6プレフィックスの後にユーザ識別ビット列をつなげることにより、カスタマーエッジルータ3に配布されたプレフィックスは「2001:db8:abcd:/48」であると計算する。アドレス情報処理部232は、アドレス生成ルール(d)と(e)に従って、カスタマーエッジルータ3のIPv6アドレスは「2001:db8:abcd:1::1」であることを求める。アドレス情報処理部232は、カスタマーエッジルータ3のIPv6アドレスをカプセリング処理部231に通知する。さらに、アドレス情報処理部232は、ボーダールータ8がカスタマーエッジルータ3にパケットを送信する際に用いるIPv6アドレスも通知する。ここでは、カスタマーエッジルータ3へのパケットの送信にTEPA−Aが用いられるものとする。
カプセリング処理部231は、アドレス情報処理部232から通知されたアドレスを用いてパケットをカプセリングする。カプセル化されたパケットのアウターヘッダとインナーヘッダに含まれているアドレスとポート番号は、図13(b)に示すとおりである。カプセル化されたパケットは、ボーダールータ8からIPv6ルータ5を介してカスタマーエッジルータ3に送信される。
(14)カスタマーエッジルータ3は、ボーダールータ8からパケットを受信する。カスタマーエッジルータ3の経路制御部120は、パケット転送処理部113から入力されたパケットをカプセリング処理部132に出力する。カプセリング処理部132は、パケットをデカプセル化する。さらに、カプセリング処理部132は、IPv4グローバルアドレスをキーとしてNAPTテーブル143を検索し、IPv4プライベートアドレスとポート番号を取得する。カプセリング処理部132は、IPv4ヘッダの宛先アドレスと宛先ポート番号をNAPTテーブル143から得られた値に書き換える。書き換え後のIPv4ヘッダは図13(c)に示すとおりである。カプセリング処理部132は、IPv4ヘッダを変換したパケットを経路制御部120に出力する。経路制御部120は、IPv4ルーティングテーブル142を参照して、端末2にパケットを送信する。
図14は、カスタマーエッジルータ3の動作の例を説明するフローチャートである。図14では、図9を参照しながら説明した手順(2)〜(7)で行われる動作を表している。カスタマーエッジルータ3は、回線事業者のネットワーク4に含まれているIPv6ルータ5からIPv6プレフィックスを取得する(ステップS1)。アドレス情報処理部134は、取得されたIPv6プレフィックスを用いてIPv4グローバルアドレスと、カスタマーエッジルータ3が使用することができるポート番号の範囲を算出する(ステップS2)。ユーザ情報処理部133は、ユーザ情報が格納されているかを確認する(ステップS3)。ユーザ情報処理部133にユーザ情報が格納されていない場合、ユーザ情報処理部133は処理を終了する(ステップS3でNo)。一方、ユーザ情報がすでにユーザ情報処理部133に格納されている場合、TEPA処理部131は、認証サーバ13に終点アドレス(TEPA)を問い合わせる(ステップS3でYes、ステップS4)。認証サーバ13からアドレス通知メッセージを受信すると、TEPA処理部131は、アドレス通知メッセージからTEPAを抽出してアドレス情報処理部134に出力する(ステップS5)。アドレス情報処理部134は、TEPAを記憶する(ステップS6)。一方、認証サーバ13からカスタマーエッジルータ3に送信された制御メッセージがエラーメッセージである場合、TEPAが通知されていないので、TEPA処理部131は処理を中止する(ステップS5でNo)。
図15は、認証サーバ13の動作の例を説明するフローチャートである。図15では、図9を参照しながら説明した手順(5)〜(7)で行われる動作を表している。認証処理部321は、認証サーバ13が受信したパケットからユーザ情報を取得できるかを確認する(ステップS11)。受信パケットからユーザ情報が取得できない場合、認証処理部321は、処理を中止する(ステップS11でNo)。受信パケットからユーザ情報を取得できた場合、認証処理部321は、取得したユーザ情報をキーとしてユーザ情報テーブル322を検索する(ステップS12、S13)。ユーザ情報がユーザ情報テーブル322に登録されていない場合、認証処理部321は、カスタマーエッジルータ3にエラーメッセージを送信して処理を中止する(ステップS14でNo)。一方、ユーザ情報がユーザ情報テーブル322に登録されている場合、認証処理部321は、ユーザ情報に対応付けて記録されているTEPAを取得する(ステップS14でYes、ステップS15)。さらに、認証処理部321は、問合せメッセージを送信してきたカスタマーエッジルータ3に対して、TEPAを含むアドレス通知メッセージを送信して、TEPAを通知する(ステップS16)。なお、図15は動作の例であり、例えば、ステップS14でNoと判定された場合、認証処理部321は、エラーメッセージの送信を行わないように変形することもできる。
図16は、端末2からパケットを受信したときのカスタマーエッジルータ3の動作の例を説明するフローチャートである。図16では、図9を参照しながら説明した手順(10)で行われる動作を表している。カプセリング処理部132は、端末2から受信したパケットはインターネット側に転送されるパケットであるかを確認する(ステップS21)。インターネット側に転送されるパケットではない場合、カプセリング処理部132は処理を終了する(ステップS21でNo)。インターネット側に転送されるパケットを端末2から受信している場合、カプセリング処理部132は、アドレス情報処理部134にカプセリングに用いるアドレス情報を要求する。アドレス情報処理部134は、TEPAが登録されているかを確認する(ステップS22)。TEPAが登録されていない場合、アドレス情報処理部134はTEPAが登録されていないことをカプセリング処理部132に通知し、処理を終了する(ステップS22でNo)。一方、TEPAが登録されている場合、アドレス情報処理部134は、カプセリング処理部132にIPv6アドレス、IPv4グローバルアドレス、使用可能なポート範囲、TEPAを通知する。カプセリング処理部132は、IPv4グローバルアドレスと、使用可能なポートの範囲から選択したポート番号を用いて、アドレスを変換する(ステップS22でYes、ステップS23)。カプセリング処理部132は、アドレス変換で用いたマッピングの情報をNAPTテーブル143に記録する(ステップS24)。さらに、カプセリング処理部132は、端末2から受信したパケットを、送信元アドレスがIPv6アドレスで宛先アドレスがTEPAとなるアウターヘッダを用いてカプセリングする(ステップS25)。経路制御部120は、カプセリング処理部132から入力されたカプセル化後のパケットを、IPv6ルーティングテーブル141に従ってルーティングする(ステップS26)。
図17は、対向装置14からパケットを受信したときのボーダールータ8の動作の例を説明するフローチャートである。図17では、図9を参照しながら説明した手順(13)で行われる動作の変形例を表している。すなわち、図17では、ステップS34で述べるように、ボーダールータ8は、予め、ローカル側送信用アドレスを記憶している。ローカル側送信用アドレスは、プライベートネットワーク1で用いられるデータを含むパケットがボーダールータ8からカスタマーエッジルータ3に向けて送信される場合に用いられる。なお、図9を参照しながら説明したように、ローカル側送信用アドレスをカスタマーエッジルータ3に通知されたTEPAと同じアドレスとすることもできる。
ボーダールータ8がIPv4インターネット11に含まれている対向装置14からパケットを受信すると、アドレス情報処理部232は、受信パケットの宛先IPv4アドレスはSAM用IPv4プレフィックスを含んでいるかを確認する(ステップS31)。宛先IPv4アドレスのプレフィックスがSAM用IPv4プレフィックスと一致する場合、アドレス情報処理部232は、カスタマーエッジルータ3が取得しているIPv6プレフィックスを算出する。このとき、宛先IPv4アドレス、宛先ポート番号、SAM用IPv6プレフィックスが用いられる(ステップS32)。さらに、アドレス情報処理部232は、カスタマーエッジルータ3が取得しているIPv6プレフィックスとアドレス決定ルールを用いて、カスタマーエッジルータ3が使用しているIPv6アドレスを算出する(ステップS33)。カプセリング処理部231は、受信パケットをカプセリングする。このとき、アウターヘッダの送信元アドレスは、ローカル側送信用アドレスであり、宛先アドレスは、アドレス情報処理部232で計算されたIPv6アドレスである(ステップS34)。経路制御部220は、カプセリング処理部231でカプセル化されたパケットを、IPv6ルーティングテーブル241に従って、IPv6ルータ7に転送する(ステップS35)。一方、ステップS31において、IPv4アドレスのプレフィックスがSAM用IPv4プレフィックスと一致しない場合、経路制御部220は、IPv4ルーティングテーブル242に従ってパケットを転送する(ステップS36)。
図18は、ボーダールータ8からパケットを受信したときのカスタマーエッジルータ3の動作の例を説明するフローチャートである。図18では、図9を参照しながら説明した手順(14)で行われる動作の変形例を表している。経路制御部120は、受信したパケットをカプセリング処理部132に出力する。カプセリング処理部132は、パケットの送信元IPv6アドレスをアドレス情報処理部134に出力し、IPv6アドレスがSAM用IPv6プレフィックスを含んでいるかを問い合わせる(ステップS41)。IPv6アドレスがSAM用IPv6プレフィックスを含んでいる場合、カプセリング処理部132は、受信したパケットをデカプセリングしてIPv4パケットを取り出す(ステップS42)。カプセリング処理部132は、得られたIPv4パケットの宛先IPv4アドレスと宛先ポート番号がNAPTテーブル143に登録されているかを確認する(ステップS43)。宛先IPv4アドレスと宛先ポート番号がNAPTテーブル143に登録されている場合、カプセリング処理部132は、NAPTテーブル143に従って宛先アドレスとポート番号を変換する(ステップS43でYes、ステップS44)。経路制御部120は、カプセリング処理部132から入力されたパケットを、IPv4ルーティングテーブル142を参照して転送する(ステップS45)。一方、ステップS43で、宛先IPv4アドレスと宛先ポート番号がNAPTテーブル143に登録されていない場合、カプセリング処理部132は処理を終了する。また、ステップS41において、送信元IPv6アドレスのプレフィックスがSAM用IPv6プレフィックスとは異なる場合、経路制御部120は、受信パケットを、IPv6ルーティングテーブル141を用いて転送する(ステップS46)。
図9〜図18を用いて説明したように、本実施形態に係る方法を用いると、認証サーバ13は、IPv4インターネット11にアクセスする権限を有するユーザに対して、ボーダールータ8に割り当てられているトンネルの終点アドレスを通知する。つまり、IPv4インターネット11にアクセスする権限を有さないユーザ(不正ユーザ)には、ボーダールータ8に到達するトンネルの終点アドレスが通知されない。このため、不正ユーザは、ボーダールータ8を介してIPv4インターネット11にアクセスすることができない。このため、ボーダールータ8がユーザの認証を行わなくても、不正ユーザによるアクセスを防ぐことができる。従って、本実施形態によると、ボーダールータ8は認証に用いるためのデータを保持しなくても良いため、ボーダールータ8の管理や増設などが容易である。従って、本実施形態に係る方法を用いると、トンネリングを用いた通信サービスでの不正なアクセスの防止と、システムの管理の両方が簡便に実現される。
<第2の実施形態>
第2の実施形態では、ボーダールータ20に複数の終点アドレスが割り当てられており、ボーダールータ20は、受信パケットの宛先に指定されているアドレスに基づいて、そのパケットの転送先を決定することができる。
図19は、ボーダールータ20の構成の例を示す図である。ボーダールータ20は、転送制御部210、経路制御部220、SAM制御部230、および、記憶部250を備える。記憶部250は、転送設定テーブル251を備え、さらに、IPv6ルーティングテーブル241とIPv4ルーティングテーブル242も備える。転送制御部210、経路制御部220、SAM制御部230、IPv6ルーティングテーブル241、IPv4ルーティングテーブル242は、第1の実施形態と同様である。
転送設定テーブル251は、ボーダールータ20に割り当てられている終点アドレス(TEPA)の各々に対応付けて、パケットの転送先を指定する情報を格納する。図20は、転送設定テーブル251の例を示す。経路制御部220は、転送設定テーブル251とIPv4ルーティングテーブル242の両方に転送先が記録されている場合、転送設定テーブル251に格納されている転送先を優先する。
図21は、第2の実施形態が用いられるネットワークの例を示す図である。図21に示すネットワークでは、ISP事業者ネットワーク6にボーダールータ20が含まれる。ボーダールータ20は、ISP事業者ネットワーク6、ISP事業者ネットワーク9、および、IPv4インターネット11に接続されている。ISP事業者ネットワーク9ではIPv4が使用されており、ISP事業者ネットワーク9は任意の数のIPv4ルータ10を含むものとする。なお、プライベートネットワーク1、回線事業者のネットワーク4、IPv6インターネット12、IPv4インターネット11、カスタマーエッジルータ3、IPv6ルータ5、IPv6ルータ7の動作は、第1の実施形態と同様である。
オペレータは、予め、ユーザごとにIPv4インターネット11に接続を許可するときに、ボーダールータ20からIPv4インターネット11までの間にISP事業者ネットワーク9などのネットワークを通過させるかを決定する。例えば、オペレータは、ユーザAから送信されたパケットは、IPv4インターネット11に接続する前にISP事業者ネットワーク9で処理したいと考えたとする。さらに、ユーザBについては、パケットを、ISP事業者ネットワーク9を介さずに、IPv4インターネット11に送信することをオペレータが決定したとする。すると、オペレータは、各ユーザのユーザ情報に対応付けて、そのユーザの転送先に合わせた終点アドレスを認証サーバ13のユーザ情報テーブル322に予め登録しておく。
例えば、図20に示すように、TEPA−Aのアドレスに到達したパケットは、ISP事業者ネットワーク9に転送されるように設定され、TEPA−Bのアドレスに到達したパケットはIPv4インターネット11に転送されるとする。この場合、オペレータは、認証サーバ13のユーザ情報テーブル322には、ユーザAを識別するユーザ情報に対応付けてTEPA−Aを記録し、ユーザBを識別するユーザ情報に対応付けてTEPA−Bを記録する。さらに、オペレータは、TEPAごとに転送先を転送設定テーブル251に設定しておく。
以上の登録が行われた後、プライベートネットワーク1に属する端末2からIPv4インターネット11に含まれる対向装置14への通信が行われる。手順(1)〜(5)の動作は、図9を参照しながら説明したとおりである。手順(6)は、本実施形態では、ユーザごとに通知されるTEPAが異なる場合がある。例えば、前述の設定が行われている場合、認証処理部321は、カスタマーエッジルータ3から通知されたユーザ情報がユーザAを識別する情報である場合、TEPA−Aを含むアドレス通知メッセージを生成し、カスタマーエッジルータ3に送信する。一方、問合せメッセージで通知されたユーザ情報がユーザBを識別する情報である場合、認証処理部321は、TEPA−Bを含むアドレス通知メッセージを生成し、カスタマーエッジルータ3に送信する。
手順(7)〜(10)の処理は、第1の実施形態と同様である。手順(11)において、本実施形態では、カプセリング処理部231は、デカプセル化後のパケットを経路制御部220に出力するときに、アウターヘッダに含まれていた宛先アドレスを経路制御部220に通知する。経路制御部220は、デカプセル化されたパケットを転送する際に、通知された宛先アドレスをキーとして転送設定テーブル251を検索する。経路制御部220は、転送設定テーブル251に設定されている宛先に向けて、デカプセル化後のパケットを転送する。例えば、図20に示す転送設定テーブル251が用いられる場合、TEPA−Aで受信されたパケットをデカプセル化して得られたパケットは、ISP事業者ネットワーク9に転送される。一方、TEPA−Bで受信されたパケットをデカプセル化して得られたパケットは、IPv4インターネット11に転送される。
図22は、ボーダールータ20の動作の例を説明するフローチャートである。経路制御部220は、ボーダールータ20で受信されたパケットの宛先IPv6アドレスはボーダールータ20に割り当てられているアドレスであるかを確認する(ステップS51)。宛先IPv6アドレスがボーダールータ20に割り当てられているアドレスである場合、カプセリング処理部231は、受信パケットをデカプセリングしてIPv4パケットを取り出す(ステップS52)。次に、経路制御部220は、転送設定テーブル251を確認し、宛先IPv6アドレスに設定されていたTEPAに対応付けて、転送先が記録されているかを確認する(ステップS53)。TEPAに対応する転送先が記録されていない場合、経路制御部220は、IPv4ルーティングテーブル242に従って、デカプセル化後のパケットを転送する(ステップS54)。TEPAに対応する転送先が記録されている場合、経路制御部220は、転送設定テーブル251に設定された転送先に、デカプセル化後のパケットを転送する(ステップS55)。また、ステップS51において、宛先IPv6アドレスはボーダールータ20に割り当てられているアドレスではないと判定されると、経路制御部220は、受信パケットをIPv6ルーティングテーブル241に従って、転送する。なお、この場合は、デカプセル化は行われない(ステップS56)。
本実施形態によると、ユーザからのパケットを、個々のユーザに対して決定されているサービスポリシーに応じて振り分けることができる。従って、例えば、ISP事業者がアクセスを監視したいと考えているユーザからのパケットをISP事業者ネットワーク9に転送することができる。一方、また、監視対象とならないユーザからのアクセスはISP事業者ネットワーク9を介さずにIPv4インターネット11に転送される。
また、TEPAに対応付けて転送先が決定されるため、デカプセル化された後のパケットの転送先の変更は、TEPAの変更により簡便に行われる。すなわち、パケットの通過する経路の変更が行われる場合には、経路の変更が行われるユーザに対応付けられたTEPAを、デカプセル化されたパケットの転送先に合わせて、認証サーバ13のユーザ情報テーブル322において変更すればよいことになる。
<第3の実施形態>
第3の実施形態では、ユーザが複数の事業者と契約しており、ISP事業者ネットワーク6に複数のISP事業者のISP事業者ネットワーク9が接続されている場合に、ユーザが使用するサービスに応じてパケットの振り分けを行う方法を説明する。図23は、第3の実施形態が用いられるネットワークの例を示す。第3の実施形態では、事業者Aと事業者Bの2つのISP事業者がISP事業者ネットワーク9をISP事業者ネットワーク6およびIPv4インターネット11に接続しているものとする。以下、事業者AはISP事業者ネットワーク9aを管理し、事業者BはISP事業者ネットワーク9bを管理しているものとする。また、ISP事業者ネットワーク9aに含まれているルータはIPv4ルータ10a、ISP事業者ネットワーク9bに含まれるルータはIPv4ルータ10bと表記するものとする。
プライベートネットワーク1、回線事業者のネットワーク4、ISP事業者ネットワーク6、IPv4インターネット11、IPv6インターネット12については、第1および第2の実施形態と同様である。また、カスタマーエッジルータ3、認証サーバ13、IPv6ルータ5、7の動作も第1および第2の実施形態と同様であり、ボーダールータ20の動作は第2の実施形態と同様である。
端末2のユーザが、事業者Aとの契約で得たユーザ情報は、ユーザID「user1」とパスワード「password9a」の組み合わせであるとする。一方、事業者Bとユーザの契約で得られたユーザ情報は、ユーザID「userA」とパスワード「password9b」の組み合わせであるとする。端末2は、事業者A、事業者Bの両方から得られたユーザIDとパスワードをカスタマーエッジルータ3のユーザ情報処理部133に記憶させる。また、端末2も事業者Aのユーザ情報と、事業者Bのユーザ情報の両方を記憶しているが、通信を行う際に、いずれの事業者のサービスを受けるかを選択し、選択した事業者の設定を有効にしてから通信を行うものとする。端末2は、通信を開始する際に有効になっているユーザ情報を、カスタマーエッジルータ3に通知する。
カスタマーエッジルータ3は、端末2から通知されたユーザ情報に対応付けられたTEPAを認証サーバ13に問い合わせる。問い合わせに用いられる問合せメッセージは、第1の実施形態と同様である。認証サーバ13は、ユーザ情報テーブル322に記録されている情報に基づいてTEPAをカスタマーエッジルータ3に通知する。例えば、ユーザ情報テーブル322が図24(a)に示すとおりであるとする。すると事業者Aのサービスを用いた通信が行われる場合、TEPA−Aがカスタマーエッジルータ3に通知される。一方、事業者Bのサービスを用いた通信が行われる場合、TEPA−Bがカスタマーエッジルータ3に通知される。
カスタマーエッジルータ3でのカプセリングは、認証サーバ13から通知されたTEPAを用いて行われる。ボーダールータ20は、受信したパケットに含まれているTEPAに従って、転送先を決定する。例えば、転送設定テーブル251は図24(b)に示すとおりであるとする。すると、端末2が事業者Aのサービスを用いて通信すると、ボーダールータ20は、デカプセル化後のパケットをISP事業者ネットワーク9aに転送する。また、端末2が事業者Bのサービスを用いて通信すると、ボーダールータ20は、デカプセル化後のパケットをISP事業者ネットワーク9bに転送する。
このように、サービスを提供する事業者に応じて転送先を変更することができるため、図23に示すように複数の事業者がISP事業者ネットワーク9を提供しているネットワークでは、本実施形態にかかる方法が有用である。
<第4の実施形態>
第4の実施形態は、複数のプライベートネットワーク1(1a、1b)が回線事業者のネットワーク4に接続された場合について説明する。図25は、第4の実施形態にかかるネットワークの例を示す。カスタマーエッジルータ3a、3bの動作は、第1〜第3の実施形態のカスタマーエッジルータ3と同様である。プライベートネットワーク1a、1bは、第1〜第3の実施形態のプライベートネットワーク1と同様である。また、端末2a、端末2bの動作も第1〜第3の実施形態の端末2と同様である。さらに、回線事業者のネットワーク4、ISP事業者ネットワーク6、ISP事業者ネットワーク9、IPv4インターネット11、ボーダールータ20、IPv6ルータ5、7、IPv4ルータ10なども、第2および第3の実施形態と同様である。
図26は、ユーザ情報テーブルと転送設定テーブルの例を示す。第4の実施形態では、認証サーバ13のユーザ情報テーブル322は図26(a)のとおりであるものとする。また、ボーダールータ20の転送設定テーブル251は、図26(b)であるとする。
端末2aのユーザのユーザ情報は、ユーザID「user1」とパスワード「password11」の組み合わせであるとする。一方、端末2bのユーザのユーザ情報は、ユーザID「user2」とパスワード「password12」の組み合わせであるとする。さらに、カスタマーエッジルータ3aは端末2aのユーザ情報を記憶しており、カスタマーエッジルータ3bは端末2bのユーザ情報を記憶しているものとする。
カスタマーエッジルータ3aから送信された問合せメッセージには、端末2aのユーザ情報が含まれているので、認証サーバ13は、ユーザ情報テーブル322を参照して、TEPA−Aをカスタマーエッジルータ3aに通知する。同様に、カスタマーエッジルータ3bからの問合せメッセージには端末2bのユーザ情報が含まれているので、カスタマーエッジルータ3bにはTEPA−Cが通知される。従って、カスタマーエッジルータ3aでカプセリングされたパケットはTEPA−A宛て、カスタマーエッジルータ3bでカプセリングされたパケットはTEPA−B宛てとなる。
ボーダールータ20は、転送設定テーブル251を参照して、カスタマーエッジルータ3aから受信したパケットをISP事業者ネットワーク9に転送する。一方、ボーダールータ20は、カスタマーエッジルータ3bから受信したパケットを、直接、IPv4インターネット11に転送する。従って、端末2aと端末2bが通信を行う際には、端末2aからのパケットはISP事業者ネットワーク9を経由し、端末2bからのパケットはISP事業者ネットワーク9を経由しないでIPv4インターネット11に転送される。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図27にネットワークの例を示す。図27に示すように、認証サーバ13をISP事業者ネットワーク9におくこともできる。この場合、ISP事業者ネットワーク9は、IPv4とIPv6のデュアルスタックとなる。また、ISP事業者ネットワーク9に含まれるルータ10も、デュアルスタックルータである。端末2、カスタマーエッジルータ3、認証サーバ13、ボーダールータ20の動作は、第2〜第4の実施形態と同様である。
問合せメッセージやアドレス通知メッセージなどの制御メッセージの構成は実装に応じて変更することができる。例えば、制御メッセージはUDPヘッダの代わりにTransmission Control Protocol(TCP)ヘッダを含むこともできる。また、カスタマーエッジルータ3と認証サーバ13の間で行われる認証は、問合せメッセージやアドレス通知メッセージを用いる代わりに、Remote Authentication Dial In User Service(RADIUS)プロトコルなどを用いて行われる場合がある。
さらに、オペレータは、一定時間ごとにTEPAの値が変更されるように変形して、偶然TEPAを知った不正ユーザからのアクセスを防ぐことができる。TEPAが変更されるたびに、ユーザ情報テーブル322と転送設定テーブル251が変更される。TEPAが変更されるとカスタマーエッジルータ3に記憶されているTEPAは使用できなくなるので、カスタマーエッジルータ3は、図9を参照しながら説明した手順(5)以降の処理を行うことにより、変更後のTEPAを取得する。正規ユーザの場合、TEPAが変更されても変更後のTEPAが取得されれば、通信が可能になる。