(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】トラヒック識別装置、スイッチ、ルータ、トラヒック識別方法及びトラヒック識別プログラム
(51)【国際特許分類】
H04L 45/30 20220101AFI20241119BHJP
H04L 45/42 20220101ALI20241119BHJP
【FI】
H04L45/30
H04L45/42
(21)【出願番号】P 2023542112
(86)(22)【出願日】2021-08-18
(86)【国際出願番号】 JP2021030269
(87)【国際公開番号】W WO2023021635
(87)【国際公開日】2023-02-23
【審査請求日】2023-12-01
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】中務 諭士
(72)【発明者】
【氏名】武井 勇樹
(72)【発明者】
【氏名】西口 雅人
(72)【発明者】
【氏名】大西 浩行
【審査官】速水 雄太
(56)【参考文献】
【文献】特開2015-162693(JP,A)
【文献】国際公開第2015/125801(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項1】
パケットを第1の粒度で識別する第1のパケット識別情報と、前記第1のパケット識別情報に関連付けられたネットワーク識別子とを取得する第1取得部と、
前記第1のパケット識別情報及び前記ネットワーク識別子を、ユーザ拠点からパケットを受信するルータに接続されたスイッチに、前記スイッチが前記第1のパケット識別情報に合致するパケットに前記ネットワーク識別子を付与するように設定する第1設定部と、
前記ユーザ拠点から送信されるパケットを前記第1の粒度よりも粗い第2の粒度で識別する第2のパケット識別情報を取得する第2取得部と、
前記第2のパケット識別情報を、前記ルータに、前記ルータが前記第2のパケット識別情報に合致するパケットを前記スイッチに転送するように設定する第2設定部と
を備えるトラヒック識別装置。
【請求項2】
前記第1取得部は、前記第1のパケット識別情報として、パケットのヘッダ情報を受信する
請求項1に記載のトラヒック識別装置。
【請求項3】
前記第1取得部は、前記ヘッダ情報として、パケットの送信元アドレス、宛先アドレス、送信ポート番号、受信ポート番号又はプロトコル番号のうちの少なくとも1つを取得する
請求項2に記載のトラヒック識別装置。
【請求項4】
前記第2取得部は、前記第2のパケット識別情報として、前記ユーザ拠点から送信されるパケットのネットワーク識別子を受信する
請求項1~3のうちいずれか1つに記載のトラヒック識別装置。
【請求項5】
パケットを識別するパケット識別情報と、前記パケット識別情報に関連付けられたネットワーク識別子とを受信する第1受信部と、
第1のパケットをルータから受信する第2受信部と、
前記第1のパケットが前記パケット識別情報に合致するかを判定する判定部と、
前記第1のパケットが前記パケット識別情報に合致すると判定された場合に、前記第1のパケットに前記ネットワーク識別子を付与する付与部と、
前記ネットワーク識別子が付与された前記第1のパケットである第2のパケットを前記ルータに送信する送信部と
を備えるスイッチ。
【請求項6】
ユーザ拠点から送信されるパケットを識別するパケット識別情報を受信する第1受信部と、
前記ユーザ拠点から第1のパケットを受信する第2受信部と、
前記第1のパケットが前記パケット識別情報に合致するかを判定する判定部と、
前記第1のパケットが前記パケット識別情報に合致すると判定された場合に、前記第1のパケットをスイッチに転送する転送部と、
新たなネットワーク識別子が付与された前記第1のパケットである第2のパケットを前記スイッチから受信する第3受信部と
を備えるルータ。
【請求項7】
コンピュータが実行するトラヒック識別方法であって、
パケットを第1の粒度で識別する第1のパケット識別情報と、前記第1のパケット識別情報に関連付けられたネットワーク識別子とを取得する第1取得工程と、
前記第1のパケット識別情報及び前記ネットワーク識別子を、ユーザ拠点からパケットを受信するルータに接続されたスイッチに、前記スイッチが前記第1のパケット識別情報に合致するパケットに前記ネットワーク識別子を付与するように設定する第1設定工程と、
前記ユーザ拠点から送信されるパケットを前記第1の粒度よりも粗い第2の粒度で識別する第2のパケット識別情報を取得する第2取得工程と、
前記第2のパケット識別情報を、前記ルータに、前記ルータが前記第2のパケット識別情報に合致するパケットを前記スイッチに転送するように設定する第2設定工程と
を含むトラヒック識別方法。
【請求項8】
パケットを第1の粒度で識別する第1のパケット識別情報と、前記第1のパケット識別情報に関連付けられたネットワーク識別子とを取得する第1取得手順と、
前記第1のパケット識別情報及び前記ネットワーク識別子を、ユーザ拠点からパケットを受信するルータに接続されたスイッチに、前記スイッチが前記第1のパケット識別情報に合致するパケットに前記ネットワーク識別子を付与するように設定する第1設定手順と、
前記ユーザ拠点から送信されるパケットを前記第1の粒度よりも粗い第2の粒度で識別する第2のパケット識別情報を取得する第2取得手順と、
前記第2のパケット識別情報を、前記ルータに、前記ルータが前記第2のパケット識別情報に合致するパケットを前記スイッチに転送するように設定する第2設定手順と
をコンピュータに実行させるトラヒック識別プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、トラヒック識別装置、スイッチ、ルータ、トラヒック識別方法及びトラヒック識別プログラムに関する。
【背景技術】
【0002】
ネットワーク上で動作するアプリケーションは、近年、多様化している。アプリケーションの多様化は、アプリケーションを意識したネットワーキングへの期待を高めている。このような期待により、ネットワークオペレータは、高付加価値を与える、より高品質なネットワークサービスを提供することを検討している。例えば、ネットワークオペレータは、より高品質なネットワークサービスを、ユーザが送信するパケットに対して優先制御やパス選択を実施することによって、提供することができる。
【0003】
優先制御やパス選択に関しては、例えば、DPI(Deep Packet Inspection)等の、専用のハードウェア製品を用いてパケットを細かなアプリケーションレベルで識別する技術がある。
【先行技術文献】
【非特許文献】
【0004】
【文献】“DPI(Deep Packet Inspection)入門”[online]、[2021年8月18日検索]、インターネット<https://www.netone.co.jp/knowledge-center/blog-column/knowledge_takumi_050/>
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の先行技術では、粒度の細かいパケット識別を経済的に実施することが難しい場合がある。
【0006】
例えば、DPI等の専用のハードウェア製品は、一般には、高額である。
【0007】
その一方で、市販のルータを用いてパケットを細かなアプリケーションレベルで識別する技術もある。例えば、パケットの転送先を決定するための転送機構が、キャリアネットワークを構成する市販のルータに導入されている。
【0008】
この転送機構では、パケットの転送先は、5tuple(送信元アドレス、宛先アドレス、送信ポート番号、受信ポート番号およびプロトコル番号)に基づいてアクセスリストによるフィルタリングを行うことで、パケットの転送先を決定する。市販のルータに導入されたこのような転送機構を用いることで識別可能なアプリケーションもある。市販のルータがアプリケーションの識別に用いられる場合に、エントリが、送信元アドレスやTCP(Transmission Control Protocol)ポート番号等のヘッダ情報を識別するために、登録される。
【0009】
しかしながら、一般的な市販のルータに登録可能なエントリの数は、数千程度である。一方、アプリケーションが使用するヘッダ情報のパタンの数は、数千以上である場合もある。ユーザごとに、さらに細かい粒度でネットワークを制御するには、エントリの登録の数は、市販ルータだけでは不十分である。
【0010】
そこで、本開示は、粒度の細かいパケット識別を経済的に実施することができるトラヒック識別装置、スイッチ、ルータ、トラヒック識別方法及びトラヒック識別プログラムを提案する。
【課題を解決するための手段】
【0011】
本開示の一態様では、トラヒック識別装置は、パケットを第1の粒度で識別する第1のパケット識別情報と、前記第1のパケット識別情報に関連付けられたネットワーク識別子とを取得する第1取得部と、前記第1のパケット識別情報及び前記ネットワーク識別子を、ユーザ拠点からパケットを受信するルータに接続されたスイッチに、前記スイッチが前記第1のパケット識別情報に合致するパケットに前記ネットワーク識別子を付与するように設定する第1設定部と、前記ユーザ拠点から送信されるパケットを前記第1の粒度よりも粗い第2の粒度で識別する第2のパケット識別情報を取得する第2取得部と、前記第2のパケット識別情報を、前記ルータに、前記ルータが前記第2のパケット識別情報に合致するパケットを前記スイッチに転送するように設定する第2設定部とを備える。
【発明の効果】
【0012】
本開示の1つまたは複数の実施形態に係るトラヒック識別装置は、粒度の細かいパケット識別を経済的に実施することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、現在のネットワーク制御の例と本開示に係るネットワーク制御の例との比較を示す。
【
図2】
図2は、市販のルータにおけるエントリ識別の例を示す。
【
図3】
図3は、トラヒック識別のための環境の例のブロック図である。
【
図4】
図4は、本開示に係るトラヒック識別装置の構成の例のブロック図である。
【
図5】
図5は、本開示に係るスイッチの構成の例のブロック図である。
【
図6】
図6は、本開示に係るルータの構成の例のブロック図である。
【
図7】
図7は、本開示に係るトラヒック識別の例を示す。
【
図8】
図8は、本開示に係るMPLS VPNネットワークの例を示す。
【
図9】
図9は、本開示に係るトラヒック識別管理の例を示す。
【
図10】
図10は、本開示に係るサービス識別情報の設定の例を示す。
【
図11】
図11は、本開示に係るユーザ識別情報の設定の例を示す。
【
図12】
図12は、トラヒックを識別するための処理の例を示すフローチャートである。
【
図13】
図13は、コンピュータのハードウェア構成の例を示す。
【発明を実施するための形態】
【0014】
複数の実施形態を、図面を参照して、以下で詳細に説明する。なお、本発明は、これらの複数の実施形態によって限定されるものではない。様々な実施形態の複数の特徴は、これらの複数の特徴が互いに矛盾しないという条件で、様々なやり方で組み合わされ得る。同一の要素は、同一の符号で示され、重複する説明は、省略される。
【0015】
〔1.はじめに〕
キャリアネットワークのような大規模ネットワークでは、市販のPE(Provider Edge)ルータが、大量のパケットの通信経路の識別や、パケットの優先度の識別を実施している。
【0016】
図1は、現在のネットワーク制御の例と本開示に係るネットワーク制御の例との比較である比較10を示す。比較10は、現在のネットワーク制御の例と、本開示に係るネットワーク制御の例とを含む。
【0017】
現在のネットワーク制御の例では、送出パスは、ユーザ識別子の単位で選択される。例えば、パケットが、ユーザ拠点からPEルータに送信される。ネットワークは、高優先パス、中優先パス、ベストエフォートパス等の複数のパスを含む。PEルータは、パケットのユーザ識別子に基づいて、パケットのパスを選択する。
【0018】
一方、本開示に係るネットワーク制御の例は、より粒度の細かいトラフィック識別を行うものである。本開示に係るネットワーク制御の例では、送出パスは、デバイスやアプリケーションの単位で選択される。ユーザ拠点は、例えば、カメラ、ラップトップ、スマートフォン等の複数のデバイスを含む。また、各種アプリケーションが、複数のデバイスにインストールされていてもよい。PEルータは、このようなデバイスやアプリケーションを識別する情報に基づいて、パケットのパスを選択する。
【0019】
ネットワーク制御を実施するために、例えば、市販のルータが、PEルータとして用いられる。しかしながら、市販のルータを、大規模ネットワークのネットワーク制御に適用することは難しい場合がある。
【0020】
図2は、市販のルータにおけるエントリ識別の例であるエントリ識別20を示す。
図2に示されるように、テレビ電話アプリ等のアプリケーションのパケットは、ヘッダ情報を有する。例えば、ヘッダ情報は、5tuple(例えば、ユーザアドレスとアプリケーションの送信先アドレスの組み合わせ等)を含む。
【0021】
送信元アドレスやTCPポート番号等のヘッダ情報を識別するために、エントリが登録されるが、そのエントリの数は、数千程度である。
【0022】
一方、アプリケーションが使用するヘッダ情報のパタンの数は、数千以上である場合がある。
図2の例では、テレビ電話アプリのトラヒックを識別するパターンの数は、送信先アドレスの組み合わせの数である。その組み合わせの数は、1,740パタンである。
【0023】
図2の例では、市販のルータは、優先ユーザA、一般ユーザB、優先ユーザC等の複数のユーザを識別する。市販のルータでは、例えば、識別可能なエントリの数は、約10万である。しかしながら、送信先アドレスの組み合わせの数が1,740パタンであるため、
図2の市販のルータは、57ユーザしか識別することができない。もし、市販のルータのみが、粒度の細かいネットワーク制御を実施するために用いられるのならば、エントリの登録の数が、不足している。
【0024】
上記の課題を解決するために、本開示の1つまたは複数の実施形態に係るトラヒック識別装置は、以下に説明される1つまたは複数のトラヒック識別処理を行う。
【0025】
〔2.トラヒック識別のための環境〕
まず、
図3を参照して、本開示に係るトラヒック識別のための環境について説明する。
【0026】
図3は、トラヒック識別のための環境の例である環境1のブロック図である。
図3に示されるように、環境1は、トラヒック識別装置100と、ネットワーク200と、保守者端末300と、スイッチ400と、ユーザ端末500と、ルータ600とを含む。
【0027】
トラヒック識別装置100は、1つまたは複数のトラヒック識別処理を行う装置である。1つまたは複数のトラヒック識別処理は、スイッチ400やルータ600の設定を行う処理を含む。トラヒック識別処理は、パケットが何のサービスに対応するのかを、細かい粒度で、経済的に識別するために行われる。本開示に係るトラヒック識別処理の例は、6節で説明される。
【0028】
トラヒック識別装置100は、サーバ等のデータ処理装置である。トラヒック識別装置100の構成の例は、4節で説明される。
【0029】
ネットワーク200は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等のネットワークである。ネットワーク200は、トラヒック識別装置100、保守者端末300、スイッチ400、ユーザ端末500およびルータ600を接続する。
【0030】
保守者端末300は、クライアント装置等のデータ処理装置である。例えば、保守者端末300は、ネットワークの保守者によって利用されるコンソール端末である。
【0031】
スイッチ400は、スイッチ等のデータ処理装置である。例えば、スイッチ400は、L(Layer)3スイッチである。
【0032】
ユーザ端末500は、クライアント装置等のデータ処理装置である。例えば、ユーザ端末500は、ラップトップ、スマートフォン等のデバイスである。
【0033】
ルータ600は、ルータ等のデータ処理装置である。例えば、ルータ600は、PEルータや、コアルータである。
【0034】
〔3.トラヒック識別装置の構成〕
次に、
図4を参照して、トラヒック識別装置100の構成の例について説明する。
【0035】
図4は、本開示に係るトラヒック識別装置の構成の例であるトラヒック識別装置100のブロック図である。
図4に示されるように、トラヒック識別装置100は、通信部110、制御部120および記憶部130とを含む。トラヒック識別装置100は、トラヒック識別装置100の管理者から入力を受け付ける入力部(例えば、キーボード、マウス)を含んでもよい。また、トラヒック識別装置100は、トラヒック識別装置100の管理者に情報を表示する出力部(例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ)を含んでもよい。
【0036】
〔3-1.通信部110〕
通信部110は、例えば、NIC(Network Interface Card)によって実装される。通信部110は、有線または無線によりネットワーク200と接続される。通信部110は、ネットワーク200を介して、保守者端末300と、スイッチ400と、ユーザ端末500と、ルータ600との間で、情報の送受信を行うことができる。
【0037】
〔3-2.制御部120〕
制御部120は、コントローラ(controller)である。制御部120は、RAM(Random Access Memory)を作業領域として使用し、トラヒック識別装置100の記憶装置に記憶された各種プログラムを実行する1つまたは複数のプロセッサ(例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit))によって実装される。また、制御部120は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の、集積回路により実装されてもよい。
【0038】
図4に示されるように、制御部120は、第1受信部121、第1取得部122、第1設定部123、第2受信部124、第2取得部125および第2設定部126を含む。トラヒック識別装置100の1つまたは複数のプロセッサは、トラヒック識別装置100の1つまたは複数のメモリに記憶された命令を実行することによって、各制御部を実装することができる。各制御部によって行われるデータ処理は例であり、各制御部(例えば、第1設定部123)は、他の制御部(例えば、第1受信部121)に関連して説明されるデータ処理を行ってもよい。
【0039】
第1受信部121は、パケットを特定の粒度で識別するパケット識別情報(例えば、5tuple等のヘッダ情報)を、保守者端末300から受信する。また、第1受信部121は、パケット識別情報に関連付けられたネットワーク識別子を、保守者端末300から受信する。第1受信部121は、パケット識別情報およびネットワーク識別子を、記憶部130に格納する。
【0040】
第1取得部122は、パケットを特定の粒度で識別するパケット識別情報(例えば、5tuple等のヘッダ情報)を、記憶部130から取得する。また、第1取得部122は、パケット識別情報に関連付けられたネットワーク識別子を、記憶部130から取得する。
【0041】
第1設定部123は、第1取得部122によって取得されたパケット識別情報およびネットワーク識別子を、スイッチ400に設定する。この設定は、
図7、
図8、
図9、
図10および
図11を参照して以下でより詳細に説明される。
【0042】
第2受信部124は、パケットを特定の粒度で識別するパケット識別情報(例えば、VLAN-ID)を、ユーザ端末500から受信する。第2受信部124は、パケット識別情報を、記憶部130に格納する。
【0043】
第2取得部125は、パケットを特定の粒度で識別するパケット識別情報(例えば、VLAN(Virtual LAN)-ID(Identifier))を、記憶部130から取得する。
【0044】
第2設定部126は、第2取得部125によって取得されたパケット識別情報を、ルータ600に設定する。この設定は、
図7、
図8、
図9、
図10および
図11を参照して以下でより詳細に説明される。
【0045】
記憶部130は、例えば、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実装される。記憶部130は、第1受信部121によって受信されたパケット識別情報およびネットワーク識別子を記憶する。また、第2受信部124によって受信されたパケット識別情報を記憶する。
【0046】
〔4.スイッチの構成〕
次に、
図5を参照して、スイッチ400の構成の例について説明する。
【0047】
図5は、本開示に係るスイッチの構成の例であるスイッチ400のブロック図である。
図5に示されるように、スイッチ400は、通信部410、制御部420および記憶部430とを含む。
【0048】
通信部410は、ルータ600と接続される。通信部410は、ルータ600との間で、パケットの送受信を行うことができる。
【0049】
制御部420は、コントローラである。制御部420は、スイッチ400の記憶装置に記憶された各種プログラムを実行する1つまたは複数のプロセッサ(例えば、専用のプロセッサ)によって実装される。例えば、制御部420は、ASICによって実装される。
【0050】
図5に示されるように、制御部420は、第1受信部421、第2受信部422、判定部423、付与部424および送信部425を含む。スイッチ400の1つまたは複数のプロセッサは、トラヒック識別装置100の1つまたは複数のメモリに記憶された命令を実行することによって、各制御部を実装することができる。
【0051】
第1受信部421は、パケットを識別するパケット識別情報を受信する。例えば、パケット識別情報は、5tuple等のヘッダ情報である。また、第1受信部421は、パケット識別情報に関連付けられたネットワーク識別子を受信する。例えば、ネットワーク識別子は、VLAN-ID)である。
【0052】
第2受信部422は、パケットをルータ600から受信する。
【0053】
判定部423は、パケットがパケット識別情報に合致するかを判定する。
【0054】
付与部424は、判定部423がパケットがパケット識別情報に合致すると判定した場合に、パケットにネットワーク識別子を付与する。
【0055】
送信部425は、ネットワーク識別子が付与されたパケットを、ルータ600に送信する。
【0056】
記憶部430は、半導体メモリ素子、または、ハードディスク等の記憶装置によって実装される。記憶部430は、パケット識別情報およびネットワーク識別子を記憶する。また、記憶部430は、トラヒック識別装置100から受信された設定を記憶する。
【0057】
〔5.ルータの構成〕
次に、
図6を参照して、ルータ600の構成の例について説明する。
【0058】
図6は、本開示に係るルータの構成の例であるルータ600のブロック図である。
図6に示されるように、ルータ600は、通信部610、制御部620および記憶部630とを含む。
【0059】
通信部610は、スイッチ400と接続される。通信部410は、スイッチ400との間で、パケットの送受信を行うことができる。
【0060】
制御部620は、コントローラである。制御部420は、ルータ600の記憶装置に記憶された各種プログラムを実行する1つまたは複数のプロセッサ(例えば、汎用のプロセッサ)によって実装される。
【0061】
図6に示されるように、制御部620は、第1受信部621、第2受信部622、判定部623、転送部624および第3受信部625を含む。ルータ600の1つまたは複数のプロセッサは、ルータ600の1つまたは複数のメモリに記憶された命令を実行することによって、各制御部を実装することができる。
【0062】
第1受信部621は、ユーザ拠点から送信されるパケットを識別するパケット識別情報を受信する。
【0063】
第2受信部622は、ユーザ拠点からパケットを受信する。
【0064】
判定部623は、パケットがパケット識別情報に合致するかを判定する。
【0065】
転送部624は、判定部623がパケットがパケット識別情報に合致すると判定した場合に、パケットをスイッチ400に転送する。
【0066】
第3受信部625は、パケットをスイッチ400から受信する。
【0067】
記憶部630は、半導体メモリ素子、または、ハードディスク等の記憶装置によって実装される。記憶部630は、パケット識別情報を記憶する。また、記憶部630は、トラヒック識別装置100から受信された設定を記憶する。
【0068】
〔6.トラヒック識別処理〕
次に、
図7、
図8、
図9、
図10および
図11を参照して、本開示に係るトラヒック識別処理の例を説明する。
【0069】
図7は、本開示に係るトラヒック識別の例であるトラヒック識別30を示す。トラヒック識別30は、プログラマブルスイッチ400a、プログラマブルスイッチ400b、ユーザ端末500a、ユーザ端末500b、ユーザ端末500c、ユーザ端末500d、PEルータ600aおよびPEルータ600bを用いる。また、トラヒック識別30は、PEルータ以外の複数のルータ(例えば、複数のコアルータ)を用いる。
図7のプレミアムパスおよび一般パスは、これらの機器によって実装される。
【0070】
図7に示されるように、PEルータ600aでは、エントリの数は、ユーザの数に比例する。プログラマブルスイッチ400aでは、エントリの数は、トラヒックの識別パタンの数に比例する。
【0071】
トラヒック識別30は、より多様なトラヒック識別を行うため、パケットの識別を2段階で実施するネットワークを構成する。PEルータ600aが、比較的粗い粒度のパケット識別を実施する。例えば、パケット識別は、ユーザごとに実施される。パケット識別の後、PEルータ600aは、プログラマブルスイッチ400aに、トラヒックを転送する。
【0072】
PEルータ600aに併設されたプログラマブルスイッチ400aが、より細かい粒度のパケット識別を実施する。このことは、装置ごとに必要とされるエントリの数を低減することができる。このため、トラヒック識別30の構成は、大規模ネットワークにも耐え得る。
【0073】
プログラマブルスイッチ400aでの処理の例は、トラヒック識別(Match)(例えば、L(Layer)4ヘッダ情報、ペイロード情報、ネットワークフロー等)や、制御(Action)(例えば、VLAN変換、遅延の可視化/INT情報の付与等)を含む。プログラマブルスイッチ400aは、トラヒックの識別パタンの単位で制御処理を実施する。
【0074】
なお、必要ならば、PEルータ600bは、プログラマブルスイッチ400bに、トラヒックを転送する。
【0075】
図8は、本開示に係るMPLS(Multiprotocol Label Switching) VPN(Virtual Private Network)ネットワークの例であるMPLS VPNネットワーク40を示す。MPLS VPNネットワーク40では、VLAN-IDの付け替えが実施される。付け替え処理は、4つのステップを含む。
【0076】
ステップS1では、ルータ600(例えば、PEルータ)が、プレミアムユーザのパケットをプログラマブルスイッチへ転送する。
【0077】
ステップS2では、スイッチ400(例えば、プログラマブルスイッチ)が、予め登録されたエントリーに基づいて、転送されたパケットを識別する。
【0078】
ステップS3では、スイッチ400(例えば、プログラマブルスイッチ)が、パケットの識別の粒度でVLAN-IDの付け替えを実施する。
【0079】
ステップS4では、ルータ600(例えば、PEルータ)が、着信したパケットのVLAN-IDに基づいて転送されるVPNパスを決定する。
【0080】
なお、トラヒックが、トラヒック識別の条件に合致しない場合には、ルータ600(例えば、PEルータ)は、このトラヒックを、一般のVPNパスと同等の経路にしてもよい。
【0081】
図8に示されるように、ルータ600(例えば、PEルータ)は、優先的に扱われるユーザのパケットのVLAN-ID等の粒度で、スイッチ400(例えば、プログラマブルスイッチ)へ、パケットを転送する。例えば、パケットの転送は、static/PBR(Policy Base Routing)によって行われる。スイッチ400がパケット識別を実施した後に、スイッチ400は、パケットのネットワーク識別子を、ルータ600によって識別可能な識別子(例えば、VLAN-ID)に変換する。ルータ600は、パケットの送出先を決定する。
【0082】
図9は、本開示に係るトラヒック識別管理の例であるトラヒック識別管理50を示す。トラヒック識別管理50は、
図7のトラヒック識別30および
図8のMPLS VPNネットワーク40を実装するためのトラヒック識別システムを導入するものである。
【0083】
トラヒック識別管理50では、保守者端末300の保守者は、パケットの識別が実施されるサービスのパタンを選択する。また、保守者は、エントリが登録されるプログラマブルスイッチを選択する。
図9の例では、保守者は、プログラマブルスイッチ400aや、プログラマブルスイッチ400bを選択する。
【0084】
そして、保守者は、選択されたパタンおよびプログラマブルスイッチを、トラヒック識別装置100に登録する。トラヒック識別装置100は、プログラマブルスイッチに、条件とアクションを設定する。
【0085】
トラヒック識別装置100は、複数のプログラマブルスイッチへの条件およびアクションの登録を可能にする。また、トラヒック識別装置100は、保守者が、どのプログラマブルスイッチへパケットが転送されるかを自律的に判断できるように、各種情報の登録を可能にするユーザインタフェースを提供することができる。保守者は、エントリの数がスケールするように、各種情報を登録することができる。
【0086】
ユーザ端末500のユーザは、カスタマコントロールのように、トラヒック識別装置100にアクセスする。ユーザがトラヒック識別サービスに加入したい場合に、ユーザは、保守者が登録したサービスを選択する。また、ユーザは、ユーザ自身が追加で登録したい条件(例えば、特定のデバイス(の送信元IPアドレス)だけを識別対象として設定するための条件)を入力する。トラヒック識別装置100は、自動的に、ルータ600(例えば、PEルータ)に対して、設定を実施する。トラヒック識別管理50では、優先されるパスと、優先されるパスに流されるPE識別子(例えば、VLAN-ID)は、事前に登録されていること、が仮定される。なお、
図4の記憶部130が、
図9のユーザ管理DB(Data Base)を含んでもよい。また、記憶部130は、
図9のサービス識別パタンテーブルや、ユーザ識別パタンテーブルを含んでもよい。
【0087】
図10は、本開示に係るサービス識別情報の設定の例である設定60を示す。
図10に示されるように、保守者端末300の保守者が、サービス識別パタンを追加する。
【0088】
識別可能なサービスは、サービス識別パタンテーブルに追加される。サービス識別パタンテーブルは、サービス名、エントリ格納の対象であるプログラマブルスイッチ、サービス識別のための条件、Action等を含む。サービス識別のための条件は、パケット識別情報の一例である。サービス識別情報は、プログラマブルスイッチ400cや、プログラマブルスイッチ400dに登録される。
図4の記憶部130が、
図10のサービス識別パタンテーブルを含んでもよい。
【0089】
図11は、本開示に係るユーザ識別情報の設定の例である設定70を示す。
図11に示されるように、ユーザ端末500のユーザが、識別サービスへの加入を要求する。
【0090】
ユーザは、登録済みサービスを選択する。トラヒック識別装置100は、ユーザ管理DBから、PEルータ、利用可能なプログラマブルスイッチおよび基本識別条件を取得する。ユーザは、複数のパケットの転送先の中から、転送先を選択することができる。ユーザがパケットの転送先をデバイスの送信元IPアドレスに限定したい場合には、ユーザは、識別追加情報を登録することができる。転送先が選択された後、トラヒック識別装置100は、ユーザ識別情報を、PEルータ600aに設定する。
図4の記憶部130が、
図11のユーザ管理DB、サービス識別パタンテーブル、およびユーザ識別パタンテーブルを含んでもよい。
【0091】
〔7.トラヒック識別処理のフローチャート〕
次に、
図12を参照して、本開示に係るトラヒック識別処理の例のフローチャートについて説明する。トラヒック識別処理の例は、トラヒックを識別するための処理を含む。ラヒックを識別するための処理は、例えば、
図3のトラヒック識別装置100によって行われる。
【0092】
図12は、トラヒックを識別するための処理の例である処理P100を示すフローチャートである。
【0093】
図12に示されるように、はじめに、トラヒック識別装置100の第1取得部122は、トラヒック識別装置100の記憶部130から、サービス識別パタンを取得する(ステップS101)。
【0094】
次いで、トラヒック識別装置100の第1設定部123は、サービス識別情報をスイッチ400に設定する(ステップS102)。
【0095】
次いで、トラヒック識別装置100の第2取得部125は、記憶部130から、ユーザ識別パタンを取得する(ステップS103)。
【0096】
次いで、トラヒック識別装置100の第2設定部126は、ユーザ識別情報をルータ600に設定する(ステップS104)。
【0097】
〔8.効果〕
上述のように、本開示に係るトラヒック識別処理では、ルータ600(例えば、PEルータ)が、ユーザごとのパケット識別等の、粗い粒度のパケット識別を行う。ルータ600は、特定の条件(例えば、特定のユーザ、優先トラヒック)のパケットのみを、スイッチ400(例えば、プログラマブルスイッチ)に引き込む。
【0098】
スイッチ400は、パケット識別を実施し、パケットの識別子を、ルータによって識別可能な識別子(例えば、VLAN-ID)に変換する。ルータ600は、ルータによって識別可能な識別子に基づいて、送出先(例えば、VPNパス)を決定する。
【0099】
その結果、市販のPEルータがパケット識別に用いられる場合でも、トラヒック識別装置100は、ルータのエントリの数以上のパケットを識別することができる。また、パケットは、パケット識別に応じたパスに送出され得る。トラヒック識別装置100は、十分に細かい粒度で、アプリケーションを意識したネットワーク制御を提供することができる。
【0100】
トラヒック識別装置100は、市販のルータが持つ機能を活用し、プログラマブルスイッチにトラヒックを引き込むことができる。例えば、トラヒック識別装置100は、優先されるトラヒックを、パケットの識別子を市販のルータによって識別可能な識別子に変換するヘッダ変換によって、一般のトラヒックから分離することができる。また、トラヒック識別装置100は、優先されるトラヒックを、優先パスへ転送することができる。このため、既存のネットワークは、本開示に係るトラヒック識別処理を導入することができる。
【0101】
本開示に係るトラヒック識別処理では、複数のプログラマブルスイッチがある場合でも、エントリを分散させることで、エントリの数をスケールすることが可能である。トラヒック識別装置100は、アプリケーションを識別することができるエントリの数をスケールさせることができる。
【0102】
〔9.その他〕
自動的に行われる処理として述べられた処理の一部は、手動的に行われ得る。あるいは、手動的に行われる処理として述べられた処理の全部または一部は、公知の方法で、自動的に行われ得る。さらに、本明細書や図面中で示された処理の手順、具体的名称、各種のデータやパラメータを含む情報は、特に明記しない限り、任意に変更され得る。例えば、各図に示された各種情報は、図示された情報に限られない。
【0103】
図示された装置の構成要素は、装置の機能を、概念的に示すものである。構成要素は、必ずしも、図面に示されたように物理的に構成されているとは限らない。言い換えると、分散または統合された装置の具体的形態は、図面に示されたシステムおよび装置の形態に限られない。装置の全部または一部は、各種の負荷や使用状況に応じて、機能的または物理的に分散または統合され得る。
【0104】
〔10.ハードウェア構成〕
図13は、コンピュータのハードウェア構成の例であるコンピュータ1000を示す図である。本明細書で説明されたシステムや方法は、例えば、
図13に示されたコンピュータ1000よって実装される。
【0105】
図13は、プログラムが実行されることにより、トラヒック識別装置100が実装されるコンピュータの一例を示している。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0106】
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0107】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、トラヒック識別装置100の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、トラヒック識別装置100における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0108】
ハードディスクドライブ1090は、トラヒック識別処理のためのトラヒック識別プログラムを記憶することができる。また、トラヒック識別プログラムは、プログラムプロダクトとして作成され得る。プログラムプロダクトは、実行された場合に、上述したような、1つまたは複数の方法を実行する。
【0109】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0110】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0111】
〔10.実施形態のまとめ〕
上述のように、本開示に係るトラヒック識別装置100は、第1取得部122、第1設定部123、第2取得部125および第2設定部126を含む。少なくとも1つの実施形態では、第1取得部122は、パケットを第1の粒度で識別する第1のパケット識別情報と、第1のパケット識別情報に関連付けられたネットワーク識別子とを取得する。少なくとも1つの実施形態では、第1設定部123は、第1のパケット識別情報およびネットワーク識別子を、ユーザ拠点からパケットを受信するルータ600に接続されたスイッチ400に、スイッチ400が第1のパケット識別情報に合致するパケットにネットワーク識別子を付与するように設定する。少なくとも1つの実施形態では、第2取得部125は、ユーザ拠点から送信されるパケットを第1の粒度よりも粗い第2の粒度で識別する第2のパケット識別情報を取得する。少なくとも1つの実施形態では、第2設定部126は、第2のパケット識別情報を、ルータ600に、ルータ600が第2のパケット識別情報に合致するパケットをスイッチ400に転送するように設定する。
【0112】
いくつかの実施形態では、第1取得部122は、第1のパケット識別情報として、パケットのヘッダ情報を受信する。
【0113】
いくつかの実施形態では、第1取得部122は、ヘッダ情報として、パケットの送信元アドレス、宛先アドレス、送信ポート番号、受信ポート番号又はプロトコル番号のうちの少なくとも1つを取得する。
【0114】
いくつかの実施形態では、第2取得部125は、第2のパケット識別情報として、ユーザ拠点から送信されるパケットのネットワーク識別子を受信する。
【0115】
上述のように、本開示に係るスイッチ400は、第1受信部421、第2受信部422、判定部423、付与部424および送信部425を含む。少なくとも1つの実施形態では、第1受信部421は、パケットを識別するパケット識別情報と、パケット識別情報に関連付けられたネットワーク識別子とを受信する。少なくとも1つの実施形態では、第2受信部422は、第1のパケットをルータ600から受信する。少なくとも1つの実施形態では、判定部423は、第1のパケットがパケット識別情報に合致するかを判定する。少なくとも1つの実施形態では、付与部424は、第1のパケットがパケット識別情報に合致すると判定された場合に、第1のパケットにネットワーク識別子を付与する。少なくとも1つの実施形態では、送信部425は、ネットワーク識別子が付与された第1のパケットである第2のパケットをルータ600に送信する。
【0116】
上述のように、本開示に係るルータ600は、第1受信部621、第2受信部622、判定部623、転送部624および第3受信部625を含む。少なくとも1つの実施形態では、第1受信部621は、ユーザ拠点から送信されるパケットを識別するパケット識別情報を受信する。少なくとも1つの実施形態では、第2受信部622は、ユーザ拠点から第1のパケットを受信する。少なくとも1つの実施形態では、判定部623は、第1のパケットがパケット識別情報に合致するかを判定する。少なくとも1つの実施形態では、転送部624は、第1のパケットがパケット識別情報に合致すると判定された場合に、第1のパケットをスイッチ400に転送する。少なくとも1つの実施形態では、第3受信部625は、新たなネットワーク識別子が付与された第1のパケットである第2のパケットをスイッチ400から受信する。
【0117】
様々な実施形態を、図面を参照して、本明細書で詳細に説明したが、これらの複数の実施形態は例であり、本発明をこれらの複数の実施形態に限定することを意図するものではない。本明細書に記載された特徴は、当業者の知識に基づく様々な変形や改良を含む、様々な方法によって実現され得る。
【0118】
また、上述した「部(module、-er接尾辞、-or接尾辞)」は、ユニット、手段、回路などに読み替えることができる。例えば、通信部(communication module)、制御部(control module)および記憶部(storage module)は、それぞれ、通信ユニット、制御ユニットおよび記憶ユニットに読み替えることができる。
【符号の説明】
【0119】
1 環境
100 トラヒック識別装置
110 通信部
120 制御部
121 第1受信部
122 第1取得部
123 第1設定部
124 第2受信部
125 第2取得部
126 第2設定部
130 記憶部
200 ネットワーク
300 保守者端末
400 スイッチ
410 通信部
420 制御部
421 第1受信部
422 第2受信部
423 判定部
424 付与部
425 送信部
430 記憶部
500 ユーザ端末
600 ルータ
610 通信部
620 制御部
621 第1受信部
622 第2受信部
623 判定部
624 転送部
625 第3受信部
630 記憶部