(57)【要約】  パケット中継装置であって、受信処理部は、ネットワークからのＩＰパケットの受信に用いたインタフェースを判定し、そのインタフェースを識別する情報である受信インタフェース識別子（ＲＩＤ）をパケット送受信管理テーブルに記録する。経路制御部は、送信経路の選択によって得た送信インタフェースを識別する情報である送信インタフェース識別子（ＳＩＤ）を、上記の受信インタフェース識別子（ＲＩＤ）と対応付けてパケット送受信管理テーブルに記録する。送信処理部は、パケット送受信管理テーブルに記録された受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）とを比較し、双方が同一の仮想ネットワークのインタフェース識別子である場合には、当該ＩＰパケットを廃棄して送信処理を無効とするように処理を行う。
2011052729.tif 000002
【特許請求の範囲】
【請求項１】
仮想ネットワークインタフェースを含む複数のインタフェースと、
前記複数のインタフェースのいずれか１つを用いてパケットを受信する受信処理部と、
前記複数のインタフェースのいずれか１つを、前記受信したパケットの送信に用いるインタフェースとして経路選択により決定する経路制御部と、
前記受信処理部での前記パケットの受信に用いられたインタフェースと、前記経路制御部により決定されたインタフェースとが同一であり、且つ仮想ネットワークインタフェースである場合に、前記受信したパケットを破棄する送信処理部と、
を具備するパケット中継装置。
【請求項２】
請求項１に記載のパケット中継装置であって、
前記送信処理部は、前記受信処理部で前記パケットの受信に用いられたインタフェースと前記経路制御部により決定されたインタフェースとが同一でない場合、または同一であっても仮想ネットワークインタフェースでない場合には、前記経路制御部により決定されたインタフェースを用いて前記パケットを送信する処理を行う、
パケット中継装置。
【請求項３】
請求項１または２に記載のパケット中継装置であって、
前記パケットの受信に用いられたインタフェースを識別する受信インタフェース識別子および前記パケットの送信に用いるように決定されたインタフェースを識別する送信インタフェース識別子を互いに対応付けて記憶する記憶部をさらに有し、
前記受信処理部は、前記パケットの受信に用いられたインタフェースの識別子を前記受信インタフェース識別子として前記記憶部に記録し、
前記経路制御部は、経路選択により決定されたインタフェースの識別子を前記送信インタフェース識別子として前記記憶部に記録し、
前記送信処理部は、前記記憶部に記録された前記受信インタフェース識別子と前記送信インタフェース識別子とを比較する、
パケット中継装置。
【請求項４】
請求項１から３のいずれか一項に記載のパケット中継装置であって、
前記複数のインタフェースは論理ポートである、パケット中継装置。
【請求項５】
仮想ネットワークインタフェースを含む複数のインタフェースのいずれか１つを用いてパケットを受信するステップと、
前記複数のインタフェースのいずれか１つを前記受信したパケットの送信に用いるインタフェースとして経路選択により決定するステップと、
前記パケットの受信に用いられたインタフェースと前記経路選択により決定されたインタフェースとが同一であり、かつ仮想ネットワークインタフェースである場合には、前記受信したパケットを破棄するステップと、
を有するパケット中継方法。
【請求項６】
請求項５に記載のパケット中継方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク間でパケットの中継を行うパケット中継装置、パケット中継方法およびプログラムに関する。
【背景技術】
【０００２】
インターネットではトンネリングが利用される場面が多い。トンネリングは、物理媒体を基盤とする物理的なネットワーク環境において２点間リンクを提供する仮想ネットワークを構築する。【０００３】
ところで、トンネリングでは、仮想ネットワークを通過したパケットが経路制御の結果、再び同じ仮想ネットワークに送り出されることによる無限ループの発生が問題として指摘されている。詳しくは、一般にパケットのヘッダには、パケットのルーティングにおける生存期間を示すＴＴＬ（Ｔｉｍｅ ｔｏ Ｌｉｖｅ）またはｈｏｐ ｌｉｍｉｔが含まれる。通常、これらが示すパケットの生存期間が０になった場合に、パケットを破棄することで、パケットのループを防いでいる。しかしながら、トンネリングの際には、パケットにカプセル化のためのヘッダが付加され、ヘッダに含まれるＴＴＬまたはｈｏｐ ｌｉｍｉｔ（すなわちパケットの生存期間）が更新されてしまう。これにより、パケットが破棄されることなく、転送され続ける無限ループが発生してしまう。また、トンネリングによっては、パケットがループを１周するたびに新たなカプセル化ヘッダが追加されるものもある。この場合、パケットのサイズが次第に大きくなって消費される回線の帯域が増大してしまうといった問題もある。【０００４】
このようなパケットの無限ループの発生を抑制するために、ループの発生を検出する仕組みが考えられている。例えば、特表２００９−５１４２６５号公報（以下、「特許文献１」という）には、パケットのヘッダに識別子を挿入し、当該識別子に基づいてループの発生を検出することが記載されている。具体的には、特許文献１に記載のシステムでは、パケットを送信するノードが、送信パケットのヘッダに自身を識別する識別子を挿入してカプセル化を行なう。そして、カプセル化によって生成されたトンネルパケットは、次のノードに転送される。その後、トンネルパケットを受信したノードは、ヘッダに挿入された識別子が自身のものであるか否かを判断する。そして、自身のものでない場合は、当該トンネルパケットのヘッダに、元々挿入されていた識別子（すなわち最初にトンネルパケットを送信したノードの識別子）と同じ識別子を挿入してカプセル化し、次のノードに転送する。こうして転送が繰り返され、最初にトンネルパケットを送信したノードにトンネルパケットが戻ってきた場合、当該ノードにより受信したトンネルパケットのヘッダに挿入される識別子が自身の識別子であると判断され、トンネリングループであることが検出される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１のトンネリングループ検出の仕組みによると、トンネリングループの検出のためにパケットの構造を変更する必要があるとともに、ネットワーク上の全てのノードにおいて識別子を挿入または確認する構成を実装する必要がある。そのため、インターネットなどのグローバルなネットワークへの導入は容易ではない。【０００６】
以上のような事情に鑑み、本発明の目的は、パケットの構造を変更することなく、パケットの無限ループの発生を抑制することのできるパケット中継装置およびパケット中継方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一形態に係るパケット中継装置は、仮想ネットワークインタフェースを含む複数のインタフェースと、該複数のインタフェースのいずれか１つを用いてパケットを受信する受信処理部と、複数のインタフェースのいずれか１つを受信したパケットの送信に用いるインタフェースとして経路選択により決定する経路制御部と、受信処理部でのパケットの受信に用いられたインタフェースと経路制御部により決定されたインタフェースとが同一であり、かつ仮想ネットワークインタフェースである場合に、受信したパケットを破棄する送信処理部とを具備する。【０００８】
本発明では、上記のように構成することで、ネットワークより受信したパケットが、そのパケットの受信で用いられた受信インタフェースと同じインタフェースを使ってさらにネットワークに送信されることによるパケットの無限ループを抑制することができる。また、本発明は、送信処理部が受信インタフェースと送信インタフェースとを比較し、双方が同一の仮想ネットワークインタフェースであることを判定した場合に受信パケットを破棄してパケットの無限ループを抑制するので、パケットの構造に変更を加える必要がない。【０００９】
また、本発明の送信処理部は、受信処理部でのパケットの受信に用いられたインタフェースと経路制御部により決定されたインタフェースとが同一でない場合、または同一であっても仮想ネットワークインタフェースでない場合には、経路制御部により決定されたインタフェースを用いてパケットを送信する処理を行うものとしてもよい。【００１０】
さらに、本発明のパケット中継装置は、パケットの受信に用いられたインタフェースを識別する受信インタフェース識別子およびパケットの送信に用いるように決定されたインタフェースを識別する送信インタフェース識別子を互いに対応付けて記憶する記憶部をさらに有しても良い。また、受信処理部は、パケットの受信に用いられたインタフェースの識別子を、受信インタフェース識別子として記憶部に記録し、経路制御部は、経路選択により決定されたインタフェースの識別子を、送信インタフェース識別子として記憶部に記録し、送信処理部は、記憶部に記録された受信インタフェース識別子と送信インタフェース識別子とを比較するようにしてもよい。【００１１】
また、本発明の中継装置における複数のネットワークインタフェースは、論理ポートであっても良い。【００１２】
また、本発明の別の観点に基づくパケット中継方法は、仮想ネットワークインタフェースを含む複数のインタフェースのいずれか１つを用いてパケットを受信するステップと、複数のインタフェースのいずれか１つを受信したパケットの送信に用いるインタフェースとして経路選択により決定するステップと、パケットの受信に用いられたインタフェースと経路選択により決定されたインタフェースとが同一であり、かつ仮想ネットワークインタフェースである場合に、受信したパケットを破棄するステップとを有するものである。さらに、本発明により、上記パケット中継方法をコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、パケットの構造を変更することなく、パケットの無限ループの発生を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】典型的なトンネリングによるパケット中継処理について説明するための図である。
【図２】本発明の一実施形態に係るパケット中継装置としてのホストの構成を示す図である。
【図３】図２に示すホストにおけるパケット送受信管理テーブルの例を示す図である。
【図４】図２に示すホストの具体的なハードウェアの構成例を示す図である。
【図５】図２のホストによるパケット中継処理のフローチャートである。
【図６】図５のパケット中継処理におけるパケット送受信管理テーブルの遷移の例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、本発明の実施形態を説明する。
図１は典型的なトンネリングによるパケット中継処理について説明するための図である。同図において、第１のホスト１０は第１のネットワーク１と第２のネットワーク２とを相互接続するルータ、第２のホスト２０は第２のネットワーク２と第３のネットワーク３とを相互接続するルータとする。これらのホスト１０および２０は、第２のネットワーク２を物理媒体としたトンネリングによる仮想ネックワーク４によって仮想的に接続されていることとする。例として、第１のネットワーク１および第３のネットワーク３がＩＰｖ６ネットワークであり、第２のネットワーク２がＩＰｖ４ネットワークの場合、ＩＰｖ６ ｏｖｅｒ ＩＰｖ４のトンネリングにより仮想ネットワーク４が構築される。
【００１６】
第１のホスト１０は、第１のネットワーク１から、宛先アドレスを「2400：2db8：0002：：1」としたＩＰパケットＰａを受信すると、ＩＰパケットＰａの宛先アドレス中のネットワークアドレスに基づいて、図示しないルーティングテーブルを参照し、ＩＰパケットＰａの送信経路を選択する。そして、選択された経路から決定される送信インタフェースが仮想ネットワーク４に対応する仮想ネットワークインタフェースＶＩＦ１である場合、仮想ネットワークインタフェースＶＩＦ１にＩＰパケットＰａを渡す。
【００１７】
仮想ネットワークインタフェースＶＩＦ１は、トンネルインタフェースであり、ＩＰパケットＰａに仮想ネットワーク４を転送するためのＩＰｖ４ヘッダ（すなわち、送信元である第１のホスト１０のＩＰｖ４アドレスと宛先である第２のホスト２０のＩＰｖ４アドレス）を付加してカプセル化したＩＰパケットＰｂを生成する。そして、仮想ネットワークインタフェースＶＩＦ１にて生成されたＩＰパケットＰｂは、第２のネットワーク２に送り出される。
【００１８】
第２のホスト２０は、第２のネットワーク２を通じて自身に宛てられたＩＰパケットＰｂを仮想ネットワークインタフェースＶＩＦ２を用いて受信する。仮想ネットワークインタフェースＶＩＦ２は、受信したＩＰパケットＰｂのカプセル化を解除し、ＩＰパケットＰａとする。そして、カプセル化が解除されたＩＰパケットＰａは、ネットワーク・プロトコルの処理を行うモジュール（図示せず）へ渡され、以後は、通常の場合と同様に、プロトコルに対応した処理が実行される。
【００１９】
また、第２のホスト２０は、ＩＰパケットＰａが自局宛でない場合には、ＩＰパケットＰａの転送処理を行なう。詳しくは、まず、ＩＰパケットＰａに含まれる宛先アドレス中のネットワークアドレスに基づいて、図示しないルーティングテーブルを参照してＩＰパケットＰａの送信経路の選択を行なう。そして、選択された送信経路に基づいて，ＩＰパケットＰａの転送を行なう。ここで、ＩＰパケットＰａの宛先アドレスに該当する経路が、ルーティングテーブルに存在しない場合（すなわち、ＩＰパケットＰａの宛先アドレスのネットワークアドレス「2400：2db8：0002」が第３のネットワークのネットワークアドレス「2400：2db8：0001」と一致しない場合）には、ＩＰパケットＰａを、第１のホスト１０へ送り返すように経路選択され、仮想ネットワークインタフェースＶＩＦ２へと送られる。
【００２０】
そして、仮想ネットワークインタフェースＶＩＦ２にて、ＩＰパケットＰａに仮想ネットワーク４を転送するためのＩＰｖ４ヘッダ（すなわち、送信元である第２のホスト２０のＩＰｖ４アドレスと宛先である第１のホスト１０のＩＰｖ４アドレス）が付加され、ＩＰパケットＰｃが生成される。仮想ネットワークインタフェースＶＩＦ２で生成されたＩＰパケットＰｃは、仮想ネットワーク４を介して第１のホスト１０に転送される。第２のホスト２０から返却されたＩＰパケットＰｃを受け取った第１のホスト１０は、仮想ネットワークインタフェースＶＩＦ１にて、まず受信したＩＰパケットＰｃのカプセル化が解除され、ＩＰパケットＰａとする。そして、上記と同様にＩＰパケットＰａの宛先アドレスに基づいて送信経路が選択され、再度ＩＰパケットＰｂが生成されて第２のホスト２０へと送られる。この結果、ＩＰパケットが、第１のホスト１０と第２のホスト２０との間で無限に転送される無限ループが発生する。
【００２１】
上記のような無限ループの原因としては、第１のホスト１０におけるルーティングテーブルの設定ミスにより、ＩＰパケットＰａの送信インタフェースを仮想ネットワーク４に対応する仮想ネットワークインタフェースＶＩＦ１としてしまったことが考えられる。また、上記以外にも、第２のホスト２０におけるルーティングテーブルの設定ミスにより、ＩＰパケットＰａの送信経路により決定される送信インタフェースを仮想ネットワーク４に対応する仮想ネットワークインタフェースＶＩＦ２としてしまった場合にも、上記と同様の無限ループが発生する。
【００２２】
これに対し、本実施形態のパケット中継装置は、このようなルーティングテーブルの設定ミス等によって生じる無限ループの発生を、ＩＰパケットの構造を変更することなく抑制できるように構成されたものである。
【００２３】
図２は本発明の一実施形態に係るパケット中継装置としてのホスト３０の構成を示す図である。このホスト３０は、図１の第１のホスト１０、第２のホスト２０のどちらにも採用することが可能であるが、本実施形態では、第２のホスト２０に採用した場合について説明する。図２に示すように、ホスト３０は、受信処理部３１、経路制御部３２、送信処理部３３、パケット送受信管理テーブル３４、およびネットワークインタフェース部３５を有する。
【００２４】
受信処理部３１は、ネットワークインタフェース部３５における複数のインタフェース（ＩＦ０、ＩＦ１、ＩＦ２・・・）の何れかを用いてＩＰパケットの受信処理を行なう。また、ＩＰパケットの受信に用いたインタフェースを識別する情報である受信インタフェース識別子（ＲＩＤ）をパケット送受信管理テーブル３４に記録する。
【００２５】
経路制御部３２は、ルーティングテーブル等に基づいて受信処理部３１で受信したＩＰパケットの送信経路を選択する。また、経路制御部３２は、選択された送信経路よりＩＰパケットの送信インタフェースを決定し、決定した送信インタフェースを識別する情報である送信インタフェース識別子（ＳＩＤ）を、上記の受信インタフェース識別子（ＲＩＤ）と対応付けてパケット送受信管理テーブル３４に記録する。
【００２６】
送信処理部３３は、パケット送受信管理テーブル３４に基づいて、ＩＰパケットをネットワークインタフェース部３５における複数のインタフェース（ＩＦ０、ＩＦ１、ＩＦ２・・・）の何れかを用いてネットワークに送信する処理を行う。詳しくは、送信処理部３３は、パケット送受信管理テーブル３４に記録された受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）とを比較し、双方が一致し、かつ双方とも仮想ネットワークインタフェースの識別子である場合には、当該ＩＰパケットを破棄して送信処理を無効とする。また、それ以外の場合には、送信インタフェース識別子（ＳＩＤ）が示すインタフェースを用いてＩＰパケットをネットワークに送信する処理を行う。
【００２７】
パケット送受信管理テーブル３４は、例えば、図３に示すように、受信されたＩＰパケットの受信時刻、パケット長、受信インタフェース識別子（ＲＩＤ）および送信インタフェース識別子（ＳＩＤ）などが互いに対応付けられて一時的に記録されるテーブルである。このパケット送受信管理テーブル３４に記録されたパケット単位の情報は、例えば、送信処理部３３での受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）との比較の終了後等に削除される。
【００２８】
ネットワークインタフェース部３５は、物理ポートを介して送受信されるＩＰパケットに対し、カプセル化やカプセル解除などの送受信処理を行なう論理ポートである。これらのインタフェースとしては、イーサネット（登録商標）インタフェース（ＩＦ０）、PPPoE（Point to Point Protocol over ethernet）インタフェース（ＩＦ１）、仮想ネットワークインタフェース（ＩＦ２）などがある。
【００２９】
図４はホスト３０の具体的なハードウェアの構成例を示す図である。同図に示すように、ホスト３０は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）３０１、システムバス３０２、主メモリ３０３、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）３０４、およびネットワーク接続部３０５などを構成要素とするコンピュータで構成される。
【００３０】
ＲＯＭ３０４には、ホスト３０の稼動時に、上記のコンピュータを、受信処理部３１、経路制御部３２、送信処理部３３、およびネットワークインタフェース部３５として動作させるためのプログラムや各種のデータなどのソフトウェア、および後述するログ等が格納される。また、主メモリ３０３には、ＲＯＭ３０４に格納されるプログラムや各種のデータなどのソフトウェアがロードされて格納され、ＣＰＵ３０１は、主メモリ３０３に格納されたプログラムに従って、以下に説明するＩＰパケットの中継処理を行う。また、主メモリ３０３には、パケット送受信管理テーブル３４も格納される。なお、ＲＯＭ３０４は、これに格納されたプログラムや各種のデータを最新のものに書き換えることが可能なように、フラッシュＲＯＭなど、書き換え可能型のＲＯＭであってもよい。
【００３１】
ネットワーク接続部３０５は、例えば、インターネットなどの広域ネットワーク、ホームネットワークなどのローカルネットワークとの有線あるいは無線での接続を行なうための複数の物理ポートからなる。ホスト３０に宛てられたＩＰパケットは、物理ポートであるネットワーク接続部３０５にて受信され、ＩＰパケットに対応する何れかのインタフェース（ＩＦ０、ＩＦ１、ＩＦ２．．．）に渡される。例えば、ネットワーク接続部３０５にてカプセル化されたＩＰパケットを受信した場合、当該ＩＰパケットは仮想ネットワークインタフェース（ＩＦ２）に送られる。尚、ネットワーク接続部３０５は複数あってもよい。
【００３２】
次に、本実施形態のホスト３０によるパケット中継処理について説明する。図５は、このパケット中継処理を示すフローチャートである。
【００３３】
まず、ネットワークよりホスト３０宛てに送られたＩＰパケットは、受信処理部３１により、ネットワークインタフェース部３５のいずれかのインタフェース（ＩＦ０、ＩＦ１、ＩＦ２・・・）を用いて受信処理が行なわれる（Ｓ１０１）。
【００３４】
また、受信処理部３１は、ＩＰパケットを受信すると、パケット送受信管理テーブル３４に当該受信ＩＰパケットの受信時刻、パケット長などの情報を記録するとともに、当該ＩＰパケットの受信に用いられたインタフェースを識別する受信インタフェース識別子（ＲＩＤ）を記録する（Ｓ１０２）。例えば、イーサネットインタフェース（ＩＦ０）にてＩＰパケットを受信した場合には、当該インタフェースを識別する「ＩＦ０」を受信インタフェース識別子（ＲＩＤ）としてパケット送受信管理テーブル３４に記録し、仮想ネットワークインタフェース（ＩＦ２）にてＩＰパケットを受信した場合には、当該インタフェースを識別する「ＩＦ２」を受信インタフェース識別子（ＲＩＤ）としてパケット送受信管理テーブル３４に記録する。PPPoEインタフェースの場合も同様である。そして、受信処理部３１は、ＩＰパケットを経路制御部３２へ送る。
【００３５】
経路制御部３２は、受信処理部３１より受け取ったＩＰパケットの送信経路を選択する（Ｓ１０３）。具体的には、ルーティングテーブル（不図示）を参照して、ＩＰパケットの宛先アドレスからロンゲストマッチ（longest match）にて該当する経路を選択する。ここで、ＩＰパケットの宛先アドレスに該当する経路があった場合（Ｓ１０４：Ｙｅｓ）、選択された経路における送信インタフェースを識別する送信インタフェース識別子（ＳＩＤ）を、パケット送受信管理テーブル３４に上記の受信インタフェース識別子（ＲＩＤ）と対応付けて記録する（Ｓ１０６）。詳しくは、選択された送信経路における送信インタフェースが、イーサネットインタフェース（ＩＦ０）の場合には「ＩＦ０」を送信インタフェース識別子（ＳＩＤ）としてパケット送受信管理テーブル３４に記録し、仮想ネットワークインタフェース（ＩＦ２）の場合には「ＩＦ２」を送信インタフェース識別子（ＳＩＤ）としてパケット送受信管理テーブル３４に記録する。また、受信処理部３１にてパケット送受信管理テーブル３４に記録された受信ＩＰパケットの受信時刻およびパケット長は、経路制御部３２における送信インタフェース識別子（ＳＩＤ）と受信インタフェース識別子（ＲＩＤ）とを対応付ける際に用いられても良い。
【００３６】
一方、該当する経路がなかった場合（Ｓ１０４：Ｎｏ）、経路制御部３２は、受信ＩＰパケットを送信元に送り返すために、ＩＰパケットの受信に用いたインタフェースを、ＩＰパケットを送信するための送信インタフェースとする（Ｓ１０５）。そして、Ｓ１０６に進み、送信インタフェース識別子（ＳＩＤ）として、受信インタフェース識別子（ＲＩＤ）と同じＩＤを、パケット送受信管理テーブル３４に記録される受信インタフェース識別子（ＲＩＤ）と対応付けて記録する。その後、ＩＰパケットは、送信処理部３３に送られる。
【００３７】
次に、送信処理部３３は、まず、受信ＩＰパケットのパケット受信時刻およびパケット長に基づいて、パケット送受信管理テーブル３４から、受信インタフェース識別子（ＲＩＤ）および送信インタフェース識別子（ＳＩＤ）を読み出す。そして、読み出された受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）とを比較して、双方が同一の仮想ネットワークのインタフェース識別子であるかどうかを判定する。詳しくは、まず、受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）が同一であるか否かを判断する（Ｓ１０７）。そして、受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）が同一である場合（Ｓ１０７：Ｙｅｓ）、続いて、当該識別子が仮想ネットワークインタフェースの識別子であるか否かを判断する（Ｓ１０８）。
【００３８】
ここで、受信／送信インタフェース識別子が仮想ネットワークインタフェースの識別子である場合（Ｓ１０８：Ｙｅｓ）、当該ＩＰパケットを破棄して当該ＩＰパケットの送信を無効とするとともに（Ｓ１０９）、当該ＩＰパケットに関するログの記録を行う（Ｓ１１０）。ログとしては、ＩＰパケットの宛先、送信元アドレス等のＩＰヘッダ情報、仮想ネットワークインタフェース名、および破棄したＩＰパケット数などが記録される。このようなログを記録することにより、ループによりＩＰパケットが破棄されたことをネットワークオペレータに通知することができる。また、ネットワークオペレータはログにおけるこれらの情報に基づいて、ルーティング情報等をチェックし、ネットワーク上の不具合を修正することができる。ログの記録が終了すると、Ｓ１１２の処理に進む。
【００３９】
一方、受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）とが同一の仮想ネットワークのインタフェース識別子ではない場合、すなわち、双方のインタフェース識別子が同一でない場合（Ｓ１０７：Ｎｏ）、あるいは同一のインタフェース識別子であっても仮想ネットワークインタフェースの識別子ではない場合には（Ｓ１０８：Ｎｏ）、送信インタフェース識別子（ＳＩＤ）に対応するインタフェースの何れかを用いてＩＰパケットの送信処理を行う（ステップＳ１１１）。そして、パケット送受信管理テーブル３４から受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）を含む登録情報一式を削除する（Ｓ１１２）。
【００４０】
ここで具体例として、仮想ネットワークを介して転送されたＩＰパケットを仮想ネットワークインタフェース（ＩＦ２）を用いて受信した場合を考える。この場合、まず、受信されたＩＰパケットは、仮想ネットワークインタフェース（ＩＦ２）にて、カプセル解除等の受信処理が行なわれる。受信処理部３１は、図６（ａ）に示すように、パケット送受信管理テーブル３４に仮想ネットワークインタフェース（ＩＦ２）を識別する「ＩＦ２」を受信インタフェース識別子（ＲＩＤ）として記録する。その後、受信ＩＰパケットは経路制御部３２に送られる。
【００４１】
経路制御部３２は、当該ＩＰパケットの宛先アドレスに基づいて、ルーティングテーブルを参照して送信経路の選択を行なう。ここで、ルーティングテーブルに宛先アドレスに該当する経路がない場合、経路制御部３２は当該ＩＰパケットを送信元のホストに送り返すことを決定する。そして、この場合、図６（ｂ）に示すように、送信インタフェース識別子（ＳＩＤ）として、受信インタフェース識別子と同じＩＤ「ＩＦ２」をパケット送受信管理テーブル３４に対応付けて記録する。また、経路が選択され、選択された送信経路における送信インタフェースが仮想ネットワークインタフェース（ＩＦ２）となる場合も同様である。
【００４２】
続いて、送信処理部３３では、受信インタフェース識別子（ＲＩＤ）と送信インタフェース識別子（ＳＩＤ）とが同一であり、また「ＩＦ２」は仮想インタフェースの識別子であると判断される。これにより、受信したＩＰパケットは破棄され、送信元であるホストへのＩＰパケットの転送が無効となることで、ＩＰパケットの仮想ネットワークを通じての無限ループの発生を防止することができる。
【００４３】
以上のように、本実施形態によれば、ルーティングテーブルの設定情報の誤り等により、特定のパケットがループした場合にも、ＩＰパケットを破棄し、不要なループを防ぐことができる。これにより、回線帯域の圧迫を防ぎ、その他のＩＰパケットを保護することが可能となる。また、本実施形態によれば、ホスト３０の送信処理部３３が受信インタフェース識別子と送信インタフェース識別子とを比較し、双方が同一の仮想ネットワークインタフェースであることを判定した場合に受信パケットを破棄してパケットの無限ループを抑制するので、パケットの構造に変更を加える必要がない。さらに、ループ検出の機能をトンネルの入り口または出口の何れかの中継装置に備えれば良いため、ネットワーク上の全ての中継装置において当該機能を実装させる必要がない。
【００４４】
尚、本発明のパケット中継装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加え得ることは勿論である。上記実施形態においては、パケット送受信管理テーブル３４に、受信インタフェース識別子（ＲＩＤ）および送信インタフェース識別子（ＳＩＤ）を記録し、これらの識別子に基づいてループの発生を判断する構成となっているが、本発明はこれに限定されるものではない。例えば、ホスト３０においてＩＰパケットを受信した際に、ＩＰパケットデータとともに管理される、ルーティング情報、パケットの種別、またはパケットの優先度といった種々の情報からなるＩＰパケットの「属性（attribute）」を用いてループの発生を判断しても良い。
【００４５】
この場合は、まず、受信処理部３１にて、ＩＰパケットを受信したインタフェースの識別子（受信インタフェース識別子（ＲＩＤ））を、受信したＩＰパケットの属性として記録する。そして、経路制御部３２にて経路が選択され、送信処理部３３にて、選択された経路における送信インタフェースの識別子（送信インタフェース識別子（ＳＩＤ））と、受信処理部３１にて属性として記録された受信インタフェース識別子（ＲＩＤ）とが比較される。この結果、両者が同一で、且つ仮想ネットワークインタフェースを識別するものである場合には、ループが発生したと判断し、ＩＰパケットが破棄される。このような構成とすることで、テーブルの記録を行なわない場合においても、ループの発生を防ぐことが可能となる。
【００４６】
また、本発明のパケット中継装置は、ルータなどの機器として提供することが可能であるとともに、パーソナルコンピュータにアプリケーションプログラムとして組み込まれるプログラムとして提供することも可能である。さらに、本発明は、６ＲＤ（ＩＰｖ６ Ｒａｐｉｄ Ｄｅｐｌｏｙｍｅｎｔ）、ＩＰｖ４ ｏｖｅｒ ＩＰｖ６、ＩＰｖ４ ｏｖｅｒ ＩＰｖ４、ＩＰｖ６ ｏｖｅｒ ＩＰｖ６、Ｅｔｈｅｒｎｅｔ ｏｖｅｒ ＩＰｖ４、Ｅｔｈｅｒｎｅｔ ｏｖｅｒ ＩＰｖ６、Ｅｔｈｅｒｎｅｔ ｏｖｅｒ ＭＰＬＳ、といった各種トンネリング技術に適用が可能である。
【符号の説明】
【００４７】
Ｐａ，Ｐｂ，Ｐｃ…ＩＰパケット
ＩＦ０，ＩＦ１，ＩＦ２…インタフェース
ＶＩＦ１，ＶＩＦ２…仮想ネットワークインタフェース
１…第１のネットワーク
２…第２のネットワーク
３…第３のネットワーク
４…仮想ネットワーク
１０，２０，３０…ホスト
３１…受信処理部
３２…経路制御部
３３…送信処理部
３４…パケット送受信管理テーブル
３５…ネットワークインタフェース部
【図１】
2011052729.tif 000003
【図２】
2011052729.tif 000004
【図３】
2011052729.tif 000005
【図４】
2011052729.tif 000006
【図５】
2011052729.tif 000007
【図６】
2011052729.tif 000008
【手続補正書】
【提出日】平成23年4月7日(2011.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想ネットワークインタフェースを含む複数のインタフェースと、
前記複数のインタフェースのいずれか１つを用いてパケットを受信する受信処理部と、
前記複数のインタフェースのいずれか１つを、前記受信したパケットの送信に用いるインタフェースとして経路選択により決定する経路制御部と、
前記受信処理部での前記パケットの受信に用いられたインタフェースと、前記経路制御部により決定されたインタフェースとが同一であり、且つ仮想ネットワークインタフェースである場合に、前記受信したパケットを破棄する送信処理部と、
を具備するパケット中継装置。
【請求項２】
請求項１に記載のパケット中継装置であって、
前記送信処理部は、前記受信処理部で前記パケットの受信に用いられたインタフェースと前記経路制御部により決定されたインタフェースとが同一でない場合、または同一であっても仮想ネットワークインタフェースでない場合には、前記経路制御部により決定されたインタフェースを用いて前記パケットを送信する処理を行う、
パケット中継装置。
【請求項３】
請求項１または２に記載のパケット中継装置であって、
前記パケットの受信に用いられたインタフェースを識別する受信インタフェース識別子および前記パケットの送信に用いるように決定されたインタフェースを識別する送信インタフェース識別子を互いに対応付けて記憶する記憶部をさらに有し、
前記受信処理部は、前記パケットの受信に用いられたインタフェースの識別子を前記受信インタフェース識別子として前記記憶部に記録し、
前記経路制御部は、経路選択により決定されたインタフェースの識別子を前記送信インタフェース識別子として前記記憶部に記録し、
前記送信処理部は、前記記憶部に記録された前記受信インタフェース識別子と前記送信インタフェース識別子とを比較する、
パケット中継装置。
【請求項４】
請求項１から３のいずれか一項に記載のパケット中継装置であって、
前記複数のインタフェースは論理ポートである、パケット中継装置。
【請求項５】
仮想ネットワークインタフェースを含む複数のインタフェースのいずれか１つを用いてパケットを受信するステップと、
前記複数のインタフェースのいずれか１つを前記受信したパケットの送信に用いるインタフェースとして経路選択により決定するステップと、
前記パケットの受信に用いられたインタフェースと前記経路選択により決定されたインタフェースとが同一であり、かつ仮想ネットワークインタフェースである場合には、前記受信したパケットを破棄するステップと、
を有するパケット中継方法。
【請求項６】
前記破棄するステップは、前記パケットの受信に用いられたインタフェースと前記経路選択により決定されたインタフェースとが同一でない場合、または同一であっても仮想ネットワークインタフェースでない場合には、前記経路選択により決定されたインタフェースを用いて前記パケットを送信するステップを有する、ことを特徴とする請求項５に記載のパケット中継方法。
【請求項７】
前記パケットの受信に用いられたインタフェースを識別する受信インタフェース識別子および前記パケットの送信に用いるように決定されたインタフェースを識別する送信インタフェース識別子を互いに対応付けて記憶部に記憶するステップをさらに有し、
前記受信するステップにおいて、前記パケットの受信に用いられたインタフェースの識別子を前記受信インタフェース識別子として前記記憶部に記録し、
前記決定するステップにおいて、前記経路選択により決定されたインタフェースの識別子を前記送信インタフェース識別子として前記記憶部に記録し、
前記破棄するステップにおいて、前記記憶部に記録された前記受信インタフェース識別子と前記送信インタフェース識別子とを比較する、ことを特徴とする請求項５または６に記載のパケット中継方法。
【請求項８】
前記複数のインタフェースは論理ポートであること、を特徴とする請求項５から７のいずれか一項に記載のパケット中継方法。
【請求項９】
請求項５から８のいずれか一項に記載のパケット中継方法を、コンピュータに実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
また、本発明の別の観点に基づくパケット中継方法は、仮想ネットワークインタフェースを含む複数のインタフェースのいずれか１つを用いてパケットを受信するステップと、複数のインタフェースのいずれか１つを受信したパケットの送信に用いるインタフェースとして経路選択により決定するステップと、パケットの受信に用いられたインタフェースと経路選択により決定されたインタフェースとが同一であり、かつ仮想ネットワークインタフェースである場合に、受信したパケットを破棄するステップとを有するものである。なお、破棄するステップは、パケットの受信に用いられたインタフェースと、経路選択により決定されたインタフェースとが同一でない場合、または同一であっても仮想ネットワークインタフェースでない場合には、経路選択により決定されたインタフェースを用いてパケットを送信するステップを有していても良い。また、パケットの受信に用いられたインタフェースを識別する受信インタフェース識別子およびパケットの送信に用いるように決定されたインタフェースを識別する送信インタフェース識別子を互いに対応付けて記憶部に記憶するステップをさらに有していても良い。この場合、上記受信するステップにおいて、パケットの受信に用いられたインタフェースの識別子を受信インタフェース識別子として記憶部に記録し、上記決定するステップにおいて、経路選択により決定されたインタフェースの識別子を送信インタフェース識別子として記憶部に記録し、上記破棄するステップにおいて、記憶部に記録された受信インタフェース識別子と送信インタフェース識別子とを比較しても良い。なお、複数のインタフェースは論理ポートであっても良い。さらに、本発明により、上記パケット中継方法をコンピュータに実行させるためのプログラムが提供される。
【国際調査報告】
2011052729.tif 000009
2011052729.tif 000010