(57)【要約】【課題】各スイッチにおける処理能力を向上させる。【解決手段】通信装置は、自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、を備える。【選択図】図１
2017200153.tif 000002
【特許請求の範囲】
【請求項１】
自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、
他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、
前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、
を備える通信装置。
【請求項２】
前記三値データが、前記受信パケットの入力若しくは出力ポート又は入力若しくは出力チャネルの識別番号及びデータリンク層、ネットワーク層及びトランスポート層のヘッダ情報の一部又は全部に対応する固定長のビット列と、同ビット列の中の照合対象となるビットを識別するワイルドカードとから生成されたものである
請求項１記載の通信装置。
【請求項３】
前記制限部による前記転送の制限が、前記通信装置内で前記受信パケットに対してルーティング処理が実行される前に行われる
請求項１又は２に記載の通信装置。
【請求項４】
請求項１から３のいずれか１項に記載の通信装置を
複数備える
通信システム。
【請求項５】
自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、
他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、
前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、
を備えて、
通信を中継する通信装置の通信制御方法であって、
前記自ノードが受信した受信データの転送を制限する条件を定めた前記第１規則を前記第１記憶部に記憶する過程と、
前記他ノードから取得した制限要求に基づいて前記第１規則の条件を追加する過程と、
前記第１規則に基づく三値データを前記三値連想記憶部に記憶する過程と、
を含む通信制御方法。
【請求項６】
自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、
他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、
前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、
を備えて、
通信を中継する通信装置が有する１又は複数のコンピュータが実行するプログラムであって、
前記自ノードが受信した受信データの転送を制限する条件を定めた前記第１規則を前記第１記憶部に記憶する過程と、
前記他ノードから取得した制限要求に基づいて前記第１規則の条件を追加する過程と、
前記第１規則に基づく三値データを前記三値連想記憶部に記憶する過程と、
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信システム、通信制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数のノードを含んで構成されるネットワークにおける通信を、そのネットワークの管理者が定める通信規則に従って制御する集中制御型の通信制御装置が知られている。関連するＯｐｅｎＦｌｏｗ（登録商標）という技術がある。ＯｐｅｎＦｌｏｗでは、コントローラが各ノードのスイッチを一元管理する（特許文献１、非特許文献１参照）。このようなスイッチでは、例えば廃棄対象を一覧にして示すブラックリストを用いて該当パケットの廃棄する（あるいは対処する）処理が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１４−５２６８１０号公報
【非特許文献】
【０００４】
【非特許文献１】“OpenFlow Switch Specification Version 1.3.1,”The Open Networking Foundation,(2013),［ｏｎｌｉｎｅ］、［平成２８（２０１６）年１月７日検索］、インターネット〈https://www.opennetworking.org/images/stories/downloads/sdn-resources/onf-specifications/openflow/openflow-spec-v1.3.1.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ネットワークに接続されるＩｏＴ機器が増加する傾向にある。そのため、例えば上述したブラックリストを用いた各スイッチにおける処理能力の向上が求められている。
【０００６】
本発明が解決しようとする課題は、各スイッチにおける処理能力を向上させることができる通信装置、通信システム、通信制御方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様に係る通信装置は、自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、を備える通信装置である。
【０００８】
また、本発明の一態様に係る通信装置は、前記三値データが、前記受信パケットの入力若しくは出力ポート又は入力若しくは出力チャネルの識別番号及びデータリンク層、ネットワーク層及びトランスポート層のヘッダ情報の一部又は全部に対応する固定長のビット列と、同ビット列の中の照合対象となるビットを識別するワイルドカードとから生成されたものである。  
【０００９】
また、本発明の一態様に係る通信装置は、前記制限部による前記転送の制限が、前記通信装置内で前記受信パケットに対してルーティング処理が実行される前に行われる。
【００１０】
また、本発明の一態様に係る通信システムは、上記通信装置を複数備える通信システムである。
【００１１】
また、本発明の一態様に係る通信制御方法は、自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、を備えて、通信を中継する通信装置の通信制御方法であって、前記自ノードが受信した受信データの転送を制限する条件を定めた前記第１規則を前記第１記憶部に記憶する過程と、前記他ノードから取得した制限要求に基づいて前記第１規則の条件を追加する過程と、前記第１規則に基づく三値データを前記三値連想記憶部に記憶する過程と、を含む通信制御方法である。
【００１２】
また、本発明の一態様に係るプログラムは、自ノードが受信した受信データの転送を制限する条件を定めた第１規則を記憶する第１記憶部と、他ノードから取得した制限要求に基づき前記第１規則の条件を追加する制御部と、前記第１規則に基づく三値データを記憶した三値連想記憶部を有し、前記三値連想記憶部の出力に応じて前記受信データを含む受信パケットの転送を制限する制限部と、を備えて、通信を中継する通信装置が有する１又は複数のコンピュータが実行するプログラムであって、前記自ノードが受信した受信データの転送を制限する条件を定めた前記第１規則を前記第１記憶部に記憶する過程と、前記他ノードから取得した制限要求に基づいて前記第１規則の条件を追加する過程と、前記第１規則に基づく三値データを前記三値連想記憶部に記憶する過程と、を前記コンピュータに実行させるプログラムである。
【発明の効果】
【００１３】
本発明の一態様によれば、各スイッチにおける処理能力を向上させることができる通信装置、通信システム、通信制御方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る通信システムを示す構成図である。
【図２】本実施形態に係る通信システムの構成例を示す図である。
【図３】ＩｏＴ機器のセキュリティ対策を実施するための処理の手順を示すフローチャートである。
【図３Ａ】ｅＭＬＢＲ１１における処理の手順を示すフローチャートである。
【図３Ｂ】ｉＭＬＢＲ１２における処理の手順を示すフローチャートである。
【図３Ｃ】ｂＭＬＢＲ１３における処理の手順を示すフローチャートである。
【図４】ｅＭＬＢＲ１１を示す図である。
【図５】廃棄テーブル１１２１の一例を説明するための図である。
【図６】パケットタイプテーブル１１２２の一例を示す図である。
【図７】ＳＣＯＰＥテーブル１１２３の一例を示す図である。
【図８】ＭＬＢテーブル１１２４の一例を示す図である。
【図９】ルーティングテーブル１１２５の一例を示す図である。
【図１０】ＱｏＳテーブル１１２６の一例を示す図である。
【図１１】ＤＲＭの一例を説明するための図である。
【図１２】図４に示すＢＬ管理部１１１９と廃棄テーブル１１２１の構成例を示す図である。
【図１３】図１２に示すＢＬ管理テーブル１１１９２に記憶するデータ形式の一例を示す図である。
【図１４】図１２に示すＢＬ管理部１１１９の動作例を示すフローチャートである。
【図１５】図１２に示すＢＬ管理部１１１９の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照し、本発明の通信装置、通信システム、通信制御方法、及びプログラムの実施形態について説明する。
【００１６】
図１は、本実施形態の通信装置を含む通信システム１の構成を示す図である。通信システム１は、ネットワークＮＷ１を形成する。ネットワークＮＷ１は、互いに通信を可能とする１又は複数の他のネットワークに接続されている。ネットワークＮＷ２とネットワークＮＷ３とネットワークＮＷ４は、他のネットワークの一例である。以下の説明において、ネットワークＮＷ１、ネットワークＮＷ２、ネットワークＮＷ３、ネットワークＮＷ４等を総称してネットワークＮＷということがある。例えば、各ネットワークＮＷは、異なるＩＳＰ（Internet Service Provider）等によって独立して管理されており、管理者が定める通信規則（ポリシー等）はそれぞれ異なるものとする。例えば、各ネットワークＮＷは、互いに接続されており、例えば、それぞれがインターネットの一部を構成する。
【００１７】
本実施形態の各通信システムにおいて、それぞれの通信規則を次の４つの規則に分けて規定する。
第１規則は、自通信システムにおいて通信することを許可しないものを、制限対象の通信として定める。例えば、通信システム１は、制限対象として定められた通信のパケットを、廃棄対象のパケットとして選択するための条件（「廃棄対象条件」）を、「廃棄対象情報」として管理する。通信システム１は、廃棄対象情報をリスト化したブラックリスト（「廃棄対象ブラックリスト」）又はテーブル化した「廃棄テーブル」を利用することにより、制限対象とする通信を規制する。通信システム１は、廃棄対象ブラックリスト、又は、廃棄テーブルを各装置の廃棄対象記憶部等にそれぞれ格納してもよい。制限対象には、各装置に共通するもの、装置毎に固有のものが含まれていてもよい。なお、上記及び以下の説明における「廃棄」には、当該パケットに付与されている宛先情報に基づく通信を制限する、又は宛先情報に基づく通信を許可しない、又は宛先情報に基づく通信を遮断する、又は宛先情報に基づく通信を遮断し特定のポートに出力するなどのケースも含まれるものとし、これらを纏めて単に「廃棄」という。
【００１８】
第２規則は、自通信システムにおいて通信することを許可する条件を定めるものである。例えば、通信システム１は、許可する通信によるパケットを選択する条件（「通信許可条件」）を、「通信許可情報」に纏めて管理する。通信システム１は、通信許可情報をリスト化したホワイトリスト（「通信許可ホワイトリスト」）又はテーブル化した「ＭＬＢテーブル」を利用することにより、許可する通信を抽出する。ＭＬＢテーブルの詳細については後述する。なお、「通信許可ホワイトリスト」はホワイトリストの一例である。
【００１９】
第３規則は、自通信システムにおける通信のパケットの転送先を決定する「ルーティング条件」を定めるものである。例えば、通信システム１は、ルーティング条件を、「ルーティング情報」として管理する。通信システム１は、「ルーティング情報」をテーブル化した「ルーティングテーブル」を利用して、通信を制御する。
【００２０】
第４規則は、自通信システムにおいて、通信相手として許可するものを限定する条件を定めるものである。例えば、通信システム１は、限定した通信相手からのパケットを選択する条件（「通信相手許可条件」）を、「通信相手許可情報」に纏めて管理する。通信システム１は、通信相手許可情報をリスト化したホワイトリスト（「通信相手許可ホワイトリスト」）又はテーブル化した「ＱｏＳテーブル」を利用することにより、限定した通信相手を抽出する。ＱｏＳテーブルの詳細については後述する。なお、「通信相手許可ホワイトリスト」はホワイトリストの一例である。
【００２１】
通信システム１は、上記の規則の一部又は全部を利用して、その通信を制御する。
【００２２】
なお、本実施形態の以下の説明において、第２規則の通信許可ホワイトリストと第４規則の通信相手許可ホワイトリストの双方を区別することなく説明する場合に、単に「ホワイトリスト」という。また、第２規則の通信許可情報と第３規則のルーティング情報と第４規則の通信相手許可情報の全部または一部を纏めて経路情報という。また、通信システム１において通信相手を限定して通信する特定の装置を対象装置と呼び、対象装置又は対象装置による通信の何れかを特定する情報を特定情報と呼ぶ。例えば、特定情報には、通信許可情報又は通信相手許可情報を生成するための情報が含まれる。
【００２３】
なお、特定の装置又は通信を識別するための情報を識別情報と呼ぶことがある。例えば、受信したパケットに付与された識別情報を取得する場合には、通信の階層のレイヤ１の識別子、レイヤ２（Ｌ２）アドレス、レイヤ３（Ｌ３）アドレス（ＩＰアドレス）、及び、レイヤ４（Ｌ４）プロトコルのポート番号の一部又は全部を含む情報が識別情報に含まれる。また、特定の通信相手を特定する場合の識別情報には、各装置のＩＰアドレス又はＵＲＬ（Uniform Resource Locator）などが含まれる。第３規則のルーティング情報は、上記の識別情報としての宛先ＩＰアドレスによって規定される場合がある。
【００２４】
通信システム１は、ｅＭＬＢＲ（egress Multi Layer Binding Router）１１と、ｉＭＬＢＲ（ingress MLBR）１２と、ｂＭＬＢＲ（border MLBR）１３と、中継装置１４と、管理ホスト１５とを含む。以下の説明において、ｅＭＬＢＲ１１と、ｉＭＬＢＲ１２と、ｂＭＬＢＲ１３とを総称してＭＬＢＲ１０ということがある。各ＭＬＢＲ１０は、通信システム１の通信ノードとして機能する。通信システム１は、複数のＭＬＢＲ１０によってネットワークＮＷ１を構成する。ネットワークＮＷ１内の各ＭＬＢＲ１０間は、互いに直接的に接続されていてもよく、中継装置１４等を介して接続されていてもよい。
【００２５】
通信システム１には、ユーザが操作する端末装置１７、ＩｏＴ（Internet of Things）等と総称される各種データ端末１８などの端末が通信可能に接続される。例えば、端末装置１７とデータ端末１８は、ｅＭＬＢＲ１１等を介して、各端末からの要求等に起因する所望の通信を実施する。ＩｏＴ等と総称される各種データ端末１８は、対象装置の一例である。
【００２６】
管理ホスト１５は、通信システム１における基本設定を行うとともに、各ＭＬＢＲ１０の状態を監視させてもよい。さらに管理ホスト１５は、連携サーバとして機能し、端末装置１７などの認証と検疫を担うＨＲＳ（Home RADIUS Server）として機能させてもよい。また、管理ホスト１５は、ＩＤＳ（Intrusion Detection System）／ＩＰＳ（Intrusion Prevention System）等により検出した通信履歴を記憶するように構成してもよい。また、管理ホスト１５は、通信プロトコルを監視するプロトコルモニタとして機能してもよい。また、管理ホスト１５は、特定の装置に対してポートスキャンを実施するように構成してもよい。
【００２７】
通信システム１と同様に、通信システム２は、ネットワークＮＷ２を形成する。通信システム２は、ｅＭＬＢＲ２１と、ｉＭＬＢＲ２２と、ｂＭＬＢＲ２３と、管理装置２５とを含む。また、通信システム３は、ネットワークＮＷ３を形成する。通信システム３は、ｅＭＬＢＲ３１と、ｉＭＬＢＲ３２と、ｂＭＬＢＲ３３と、管理装置３５とを含む。通信システム２におけるｅＭＬＢＲ２１と、ｉＭＬＢＲ２２と、ｂＭＬＢＲ２３と、管理装置２５、及び、通信システム３におけるｅＭＬＢＲ３１と、ｉＭＬＢＲ３２と、ｂＭＬＢＲ３３と、管理装置３５は、通信システム１のｅＭＬＢＲ１１と、ｉＭＬＢＲ１２と、ｂＭＬＢＲ１３と、管理ホスト１５にそれぞれ対応する。
【００２８】
通信システム４は、ネットワークＮＷ４を形成する。通信システム４は、通信システム１とは異なり、ＭＬＢＲ１０を含まずに、ＭＬＢＲ１０とは異なるルータ等により構成される。
【００２９】
以下、通信システム１は、ＩｏＴ機器等のデータ端末１８を含み、データ端末１８による通信を中継する場合にその通信に対するセキュリティ対策を講じることにより、ＩｏＴ機器であるデータ端末１８による通信のセキュリティ面の不安を低減する方法の一例を例示する。なお、データ端末１８は、様々な形態の通信端末であってよい。
【００３０】
ＩｏＴ機器による通信におけるセキュリティ面の不安としては、例えば、下記のものが挙げられる。第１の不安として、ＩｏＴ機器を標的としたサイバー攻撃が増加しており、これによりＩｏＴ機器がマルウェアに感染するリスクが挙げられる。第２の不安として、マルウェアに感染したＩｏＴ機器が、Ｃ＆Ｃサーバなどに接続を試みるようになるリスクが挙げられる。第３の不安として、マルウェアに感染したＩｏＴ機器が、本来の機能を全うせずに異常な動作をするリスクが挙げられる。第４の不安として、マルウェアに感染したＩｏＴ機器が、他の機器を攻撃したり、不正なパケットを送信したりするリスクが挙げられる。
【００３１】
なお、上記の第１の不安として挙げたマルウェアの感染は、ＩｏＴ機器に対する探索パケット等によってマルウェアが埋め込まれる場合のように、ネットワークを介して感染することが想定される。また、その他に、例えば、ＩｏＴ機器の製造段階でマルウェアや遠隔操作などのためのバックドア（裏口、侵入口）が埋め込まれていたりする場合など様々なパターンが想定される。これまで、一般的な端末装置については、マルウェアなどの感染を予防する様々な処置がとられてきたが、ＩｏＴ機器では、それらの方法を必ずしも適用することができない場合がある。
【００３２】
例えば、パーソナルコンピュータなどの汎用の端末装置の多くのものは、ＯＳ等の機能によりＩＥＥＥ８０２．１Ｘ認証を利用できることが知られている。ＩＥＥＥ８０２．１Ｘ認証を利用することで、許容する通信の範囲を制限することが可能になる。これに対し、ＩｏＴ機器については、ＩＥＥＥ８０２．１Ｘ認証を利用できないものがある。ＩＥＥＥ８０２．１Ｘ認証を利用できるＩｏＴ機器については、汎用の端末装置と同様にＩＥＥＥ８０２．１Ｘ認証を適用できるが、ＩＥＥＥ８０２．１Ｘ認証を利用できないＩｏＴ機器については、汎用の端末装置と同様の手法を利用することができない。以下の説明で例示するＩｏＴ機器は、例えば、ＩＥＥＥ８０２．１Ｘ認証を利用できない通信端末装置の一例である。
【００３３】
そこで、通信システム１では、下記の点に着目してＩｏＴ機器のマルウェア感染に対する対策を実施する。
第１に、ＩｏＴ機器の多くは、特定の通信相手と通信する場合が多く、通信先が限定されていることが多い。
第２に、ＩｏＴ機器であることが、その機器が示す属性情報から判別可能である。
第３に、ＩｏＴ機器が通信相手を限定して通信するように容易にネットワークの設定を変更可能にする。
第４に、上記第１から第３までの結果をｅＭＬＢＲ１１に適切に反映させる。
【００３４】
なお、通信システム１では、上記の着目点の他、下記の点に留意して通信の完全性を確保する。
【００３５】
通信システム１は、端末装置１７とデータ端末１８などの端末について、真正性と健全性を検査して、その結果に応じて帯域制限や通信相手の限定等を課すサービス品質（ＱｏＳ）を決定する。
【００３６】
通信システム１は、ＭＬＢＲ１０が保持管理する物理ポート又は（セキュア）チャネルとＭＡＣアドレスとＩＰアドレスとの対応関係を管理する。例えば、通信システム１は、上記の対応関係を満足しないパケットについて、通信を許可しないものであると判定して廃棄する。なお、以下の説明における「パケット」には、当該パケットにレイヤ２でＭＡＣヘッダとトレーラを付加した所謂ＭＡＣフレームなどフレームも含まれるものとし、これらを纏めて単に「パケット」という。
【００３７】
（ＭＬＢＲ１０）
通信システム１を構成するＭＬＢＲ１０には、複数のタイプがあり、互いに構成と用途が異なる。利用者ネットワーク側の出口（egress）に設置するｅＭＬＢＲ１１と、ネットワークＮＷ１の利用者側入口（ingress）端部（エッジ）に設置するｉＭＬＢＲ１２と、他のネットワークとの境界（border）に配置するｂＭＬＢＲ１３は、ＭＬＢＲ１０の一例である。ＭＬＢＲ１０の各タイプを上記のように配置することにより、例えば、外部のネットワークから大量の送信元ＩＰアドレスを詐称するパケットが送り付けられても、ｂＭＬＢＲ１３等が経路表の逆行経路から外れた当該攻撃パケットを遮断する。さらに、ｂＭＬＢＲ１３等は、その処理を実施するに当たり送信元ＩＰアドレス以外の情報を組み合わせて利用して、より正確に処理をする。例えば、送信元ＩＰアドレス以外の情報には、攻撃パケットの廃棄を要請した端末装置１７もしくは実際に攻撃された通信端末等のＩＰアドレス、ＴＣＰ等のレイヤ４（Ｌ４）のポート番号、制御フラグ等が含まれていてもよい。
【００３８】
図２を参照して、通信システム１における各ＭＬＢＲ１０について説明する。図２は、通信システム１の構成例を示す図である。通信システム１におけるＭＬＢＲ１０の詳細について順に説明する。
【００３９】
（ｅＭＬＢＲ１１）
ｅＭＬＢＲ１１（通信装置）は、コントローラ１１１（制御部）と、ＩＦ部１１３と、ＩＦ部１１４と、スイッチ部１１２（転送部）と、記憶部１１５とを含む。コントローラ１１１と記憶部１１５の組み合わせは通信制御装置の一例である。
【００４０】
ＩＦ部１１３は、端末装置１７又はデータ端末１８とのインタフェースである。例えば、端末装置１７又はデータ端末１８と有線で通信する場合、ＩＦ部１１３は、通信回線が接続される物理ポートに対応させて設けられ、物理ポートを介して通信回線から取得したパケットをスイッチ部１１２に出力し、スイッチ部１１２により転送されたパケットを、物理ポートに接続される通信回線に出力する。また、例えば、端末装置１７又はデータ端末１８と無線で通信する場合、ＩＦ部１１３は、無線通信の（セキュア）チャネルに対応させて設けられ、特定の（セキュア）チャネルから取得したパケットをスイッチ部１１２に出力し、スイッチ部１１２により転送されたパケットを、特定の（セキュア）チャネルまたは有線の物理ポートに出力する。以下、物理ポートと（セキュア）チャネルを接続ポートと総称する。
【００４１】
ＩＦ部１１４は、他のＭＬＢＲ１０等と通信する際のインタフェースである。例えば、ＩＦ部１１４は、通信回線が接続される物理ポートに対応させて設けられ、物理ポートを介して通信回線から取得したパケットをスイッチ部１１２に出力する。また、スイッチ部１１２から転送されたパケットを、物理ポートに接続される通信回線に出力する。
【００４２】
スイッチ部１１２は、コントローラ１１１により設定された条件に基づいて、ＩＦ部１１３とＩＦ部１１４とコントローラ１１１等の間でパケットを転送する。例えば、スイッチ部１１２は、プロトコルスタックのレイヤ２（Ｌ２）からレイヤ４（Ｌ４）までの各ヘッダ情報と物理ポートの識別情報などに基づいて、当該パケットの転送を制御する。パケットを転送する処理の詳細は後述する。
【００４３】
記憶部１１５は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）、ＨＤＤ（Hard Disk Drive）等の不揮発性の記憶装置と、ＲＡＭ（Random Access Memory）レジスタ等の揮発性の記憶装置によって実現される。記憶部１１５は、ｅＭＬＢＲ１１を機能させるためのプログラム、スイッチ部１１２を制御するための複数のテーブル、通信履歴情報等を格納する。
【００４４】
例えば、第１記憶部１１５１と第２記憶部１１５２と第３記憶部１１５３と第４記憶部１１５４とは、上記の複数のテーブルの一例である。第１記憶部１１５１は、ｅＭＬＢＲ１１が受信した受信パケット（受信データ）の転送を制限する条件を定めた第１規則（廃棄対象ブラックリスト）を記憶する。受信パケットは、ヘッダ情報とデータ（受信データ）とを含んで構成される。第２記憶部１１５２は、受信パケットの転送を許可する条件を定めた第２規則（通信許可ホワイトリスト）を記憶する。第３記憶部１１５３は、パケットの転送先を決定するルーティング条件を定めた第３規則（ルーテイングテーブル、経路情報）を記憶する。第４記憶部１１５４は、限定した通信相手との通信のみを許可する条件を定めた第４規則（通信相手許可ホワイトリスト、経路情報）を記憶する。
【００４５】
コントローラ１１１は、例えば、ＣＰＵ（Central Processing Unit）等のプロセッサ、揮発性や不揮発性の記憶装置等を有する。コントローラ１１１は、記憶部１１５に記憶されているプログラムにより、複数の物理ポートを有するスイッチ部１１２から得た情報と、記憶部１１５に記憶されている複数のテーブルの情報の少なくとも何れかの情報に基づいて、スイッチ部１１２を制御する。例えば、コントローラ１１１は、管理ホスト１５から取得した各種情報、端末装置１７又はデータ端末１８からの要請などに基づいて、第１記憶部１１５１や第２記憶部１１５２、第３記憶部１１５３、第４記憶部１１５４を必要に応じて更新し、スイッチ部１１２の転送処理を変更する。より具体的には、後述するように、第１記憶部１１５１に格納された第１規則はスイッチ部１１２内の廃棄テーブル１１２１に、第２記憶部１１５２に格納された第２規則はスイッチ部１１２内のＭＬＢテーブル１１２４に、第３記憶部１１５３に格納された第３規則はスイッチ部１１２内のルーティングテーブル１１２５に、第４規則はスイッチ部１１２内のＱｏＳテーブル１１２６に、登録され、パケットの転送を制御する。
【００４６】
通信システム１における通信メッセージは、フレーム又はパケットとして通信される。フレーム又はパケットのヘッダ情報には、通信メッセージを含むフレーム又はパケットを識別する識別情報が付与される。
【００４７】
特定情報取得部１１１１は、スイッチ部１１２を介する通信において、通信相手を限定して通信するデータ端末１８などの対象装置を特定する特定情報又はデータ端末１８などの対象装置による通信を特定する特定情報の少なくとも何れかを取得する。
【００４８】
識別情報取得部１１１２は、特定情報に基づいて特定される通信を識別する識別情報を取得する。識別情報取得部１１１２は、データ端末１８からの通信要求に起因する認証処理、検疫処理、レイヤ３アドレスの割り当て処理の一部又は全部の処理の結果から、識別情報を取得してもよい。
【００４９】
ＷＬ管理部１１１３は、通信を許可する条件を抽出し、ホワイトリストを生成して、その条件を管理する。このホワイトリストには、第２規則の通信許可ホワイトリストと第４規則の通信相手許可ホワイトリストの何れか一方又は両方が含まれる。
【００５０】
出力制御部１１１４は、複数の出力ポートを有するスイッチ部１１２の出力ポートを選択するためのルーティング情報を生成する。
【００５１】
ＢＬ管理部１１１９は、通信を制限する条件を抽出し、第１規則の廃棄対象ブラックリスト（あるいは廃棄テーブル）を生成して第１記憶部１１５１に記憶し、記憶した条件を管理する。また、ＢＬ管理部１１１９は、第１記憶部１１５１に記憶されている条件に応じて廃棄テーブル（制限部）１１２１に設定する制限条件を管理する。
【００５２】
（ｉＭＬＢＲ１２）
ｉＭＬＢＲ１２は、コントローラ１２１と、ＩＦ部１２３と、ＩＦ部１２４と、スイッチ部１２２と、記憶部１２５とを含む。記憶部１２５が備える第１記憶部１２５１と第２記憶部１２５２と第３記憶部１２５３と第４記憶部１２５４とは、上記の複数のテーブルの一例である。第１記憶部１２５１は、ｉＭＬＢＲ１２が受信した受信パケット（受信データ）の転送を制限する条件を定めた第１規則（廃棄対象ブラックリスト）を記憶する。受信パケットは、ヘッダ情報とデータ（受信データ）とを含んで構成される。第２記憶部１２５２は、受信パケットの転送を許可する条件を定めた第２規則（通信許可ホワイトリスト）を記憶する。第３記憶部１２５３は、パケットの転送先を決定するルーティング条件を定めた第３規則（ルーテイングテーブル、経路情報）を記憶する。第４記憶部１２５４は、限定した通信相手との通信のみを許可する条件を定めた第４規則（通信相手許可ホワイトリスト、経路情報）を記憶する。
【００５３】
コントローラ１２１は、例えば、ＣＰＵ等のプロセッサ、揮発性又は不揮発性の記憶装置等を有する。コントローラ１２１は、記憶部１２５に記憶されているプログラムにより、複数の物理ポートを有するスイッチ部１２２から得た情報と、記憶部１２５に記憶されている複数のテーブルの情報の少なくとも何れかの情報に基づいて、スイッチ部１２２を制御する。例えば、コントローラ１２１は、管理ホスト１５から取得した各種情報、端末装置１７又はデータ端末１８からの要請などに基づいて、第１記憶部１２５１や第２記憶部１２５２、第３記憶部１２５３、第４記憶部１２５４を必要に応じて更新し、スイッチ部１２２の転送処理を変更する。スイッチ部１２２は、各段のフローテーブルとして、廃棄テーブル１２２１、パケットタイプテーブル１２２２、ＳＣＯＰＥテーブル１２２３、ＭＬＢテーブル１２２４、ルーティングテーブル１２２５、及びＱｏＳテーブル１２２６を備える。例えば、第１記憶部１２５１に格納された第１規則はスイッチ部１２２内の廃棄テーブル１２２１に、第２記憶部１２５２に格納された第２規則はスイッチ部１２２内のＭＬＢテーブル１２２４に、第３記憶部１２５３に格納された第３規則はスイッチ部１２２内のルーティングテーブル１２２５に、第４規則はスイッチ部１２２内のＱｏＳテーブル１２２６に、登録され、パケットの転送を制御する。
【００５４】
（ｂＭＬＢＲ１３）
ｂＭＬＢＲ１３は、コントローラ１３１と、ＩＦ部１３３と、ＩＦ部１３４と、スイッチ部１３２と、記憶部１３５とを含む。記憶部１３５が備える第１記憶部１３５１と第２記憶部１３５２と第３記憶部１３５３と第４記憶部１３５４とは、上記の複数のテーブルの一例である。第１記憶部１３５１は、ｂＭＬＢＲ１３が受信した受信パケット（受信データ）の転送を制限する条件を定めた第１規則（廃棄対象ブラックリスト）を記憶する。受信パケットは、ヘッダ情報とデータ（受信データ）とを含んで構成される。第２記憶部１３５２は、受信パケットの転送を許可する条件を定めた第２規則（通信許可ホワイトリスト）を記憶する。第３記憶部１３５３は、パケットの転送先を決定するルーティング条件を定めた第３規則（ルーテイングテーブル、経路情報）を記憶する。第４記憶部１３５４は、限定した通信相手との通信のみを許可する条件を定めた第４規則（通信相手許可ホワイトリスト、経路情報）を記憶する。
【００５５】
コントローラ１３１は、例えば、ＣＰＵ等のプロセッサ、揮発性又は不揮発性の記憶装置等を有する。コントローラ１３１は、記憶部１３５に記憶されているプログラムにより、複数の物理ポートを有するスイッチ部１３２から得た情報と、記憶部１３５に記憶されている複数のテーブルの情報の少なくとも何れかの情報に基づいて、スイッチ部１３２を制御する。例えば、コントローラ１３１は、管理ホスト１５から取得した各種情報、端末装置１７又はデータ端末１８からの要請などに基づいて、第１記憶部１３５１や第２記憶部１３５２、第３記憶部１３５３、第４記憶部１３５４を必要に応じて更新し、スイッチ部１３２の転送処理を変更する。スイッチ部１３２は、各段のフローテーブルとして、廃棄テーブル１３２１、パケットタイプテーブル１３２２、ＳＣＯＰＥテーブル１３２３、ＭＬＢテーブル１３２４、ルーティングテーブル１３２５、及びＱｏＳテーブル１３２６を備える。例えば、第１記憶部１３５１に格納された第１規則はスイッチ部１３２内の廃棄テーブル１３２１に、第２記憶部１３５２に格納された第２規則はスイッチ部１３２内のＭＬＢテーブル１３２４に、第３記憶部１３５３に格納された第３規則はスイッチ部１３２内のルーティングテーブル１３２５に、第４規則はスイッチ部１３２内のＱｏＳテーブル１３２６に、登録され、パケットの転送を制御する。
【００５６】
上記のとおり、各ＭＬＢＲ１０は、それぞれコントローラとスイッチ部とを含む。ＭＬＢＲ１０のコントローラは、他のＭＬＢＲ１０のコントローラから取得した情報等に基づいて、自装置のコントローラ及びスイッチ部をそれぞれ制御する。
【００５７】
（端末装置１７）
端末装置１７は、ＣＰＵと、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、ＲＡＭ、レジスタ等の記憶装置と、を含むコンピュータであり、実行するプログラムにより端末或いはサーバとして機能する。例えば、端末装置１７は、パーソナルコンピュータ、タブレット等の汎用端末である。端末装置１７のＣＰＵは、プログラムの実行により、端末装置１７を、ＩＤＳ／ＩＰＳとして機能させてもよい。この場合、端末装置１７は、端末装置１７に実装したもしくは端末装置１７が接続しているローカルエリアネットワークに接続されたＩＤＳ／ＩＰＳにより、所定の通信量又は頻度を超えて到来するパケットや、その振る舞いの異常さもしくは既知の攻撃パターン（シグネチャ）や既知の攻撃パターンから予測される未知の攻撃パターン、もしくは既知のマルウェアや既知のマルウェア等から予想されるマルウェア、既知のエクスプロイトコード（プログラムのセキュリティ上の脆弱性（セキュリティホール）を攻撃するために作成されたプログラムの総称）もしくは既知のエクスプロイトコードから予測される未知のエクスプロイトコードなどから攻撃パケットとして検出する。なお、上記の検出に当たり、ハニーポットを設置してもよい。ハニーポットとは、不正アクセスを行う攻撃パケットをおびき寄せ、攻撃をそらすためのおとりであり、ウイルスやワームの検体の入手、記録された操作ログ・通信ログなどから不正アクセスの手法や傾向の調査などに用いられるものである。例えば、端末装置１７は、攻撃パケットを検出した場合に、ネットワークＮＷ１への流入を遮断するようＭＬＢＲ１０へ要求する。
【００５８】
ｅＭＬＢＲ１１は、ネットワークＮＷ１における攻撃パケットの転送を中断させることを要求するメッセージをｉＭＬＢＲ１２に対して送信してもよい。例えば、ｉＭＬＢＲ１２は、攻撃パケットの転送を中断させることを要求するメッセージを、攻撃パケットを廃棄することを要求する廃棄要請メッセージとして受け付けて、攻撃パケットを廃棄してもよい。以下の説明では、攻撃パケットの転送を中断させることを要求するメッセージ（制限要求）をＤＲＭ（Dropping Request Message）と呼ぶ。例えば、端末装置１７は、自装置の正当性と完全性を示す検証用データもしくは認証コードをＤＲＭに付加してｅＭＬＢＲ１１へ送信する。さらに、ＤＲＭは、攻撃パケットの送信元アドレスに接近するようＭＬＢＲ１０間でバケツリレーされ、ＤＲＭを受信した各ＭＬＢＲ１０では、前述の第１規則として第１記憶部に登録する。
【００５９】
（データ端末１８）
データ端末１８は、ＣＰＵと、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、ＲＡＭ、レジスタ等の記憶装置と、を含むコンピュータであり、実行するプログラムにより端末或いはサーバ或いはＩｏＴ機器として機能する。以下の説明に例示するデータ端末１８は、パケットのタイプとしてＩＰｖ４のパケットを利用して通信するものとし、IEEE802.1X認証を利用できないものとする。例えば、データ端末１８は、ネットワークに接続される各種センサ、スマートメータ、コネクテッドカー（自動車）、プリンター、テレビ、冷蔵庫、スマート家電、Ｍ２Ｍ（Machine to Machine）デバイス、ネットワークカメラ、自動販売機など多種多様な端末を総称する。これらの端末の通信相手は、特定のアドレス又はＵＲＬに限定される場合が多い。
【００６０】
（スイッチ部を制御してＩｏＴ機器のセキュリティ対策を実施するための処理）
図３を参照して、ＩｏＴ機器のセキュリティ対策を実施するための処理について説明する。図３は、ＩｏＴ機器のセキュリティ対策を実施するための処理の手順を示すフローチャートである。
【００６１】
通信システム１は、ＩｏＴ機器を、通信システム１において双方向通信を実施する端末として登録する（Ｓ１０）。
通信システム１において、例えば、上記の処理（Ｓ１０）は、下記する複数の処理の組み合わせとして実現される。
まず、通信システム１は、通信相手を限定する対象のＩｏＴ機器を特定する（Ｓ１１）。
次に、通信システム１は、上記で特定された対象を識別可能な識別情報（第１識別情報）を取得する（Ｓ１２）。
次に、通信システム１は、上記で特定された対象の通信相手を識別可能な識別情報（第２識別情報）を取得する（Ｓ１３）。
次に、通信システム１は、限定する対象として特定された対象から送信されたパケットの通信相手を、上記で取得した識別情報（第１識別情報と第２識別情報）に基づいて限定するための通信相手許可ホワイトリストの要素（第１要素）を生成する（Ｓ１４）。
次に、通信システム１は、限定する対象として特定された対象宛に送信されたパケットの通信相手を、上記で取得した識別情報（第１識別情報と第２識別情報）に基づいて限定するための通信相手許可ホワイトリストの要素（第２要素）を生成する（Ｓ１５）。
次に、通信システム１は、通信相手許可ホワイトリストに上記の第１要素と第２要素とを追加する（Ｓ１６）。
通信システム１は、通信相手許可ホワイトリストに登録後に、第１要素と第２要素とに基づいて実際の通信を保護するための処理（Ｓ２０）を実施する。
これにより、通信システム１は、ＩｏＴ機器のセキュリティ対策を実施する。
【００６２】
（攻撃パケットの転送を制限する処理）
図３Ａから図３Ｃを参照して、攻撃パケットの転送を制限する処理について説明する。攻撃パケットの転送を制限する処理として、端末装置１７によるＤＲＭの生成から、ネットワークＮＷ１におけるＭＬＢＲ１０のうち攻撃パケットの送信元アドレスに最も接近しているｂＭＬＢＲ１３に、ＤＲＭによる要求が伝搬されて、ｂＭＬＢＲ１３が攻撃パケットを遮断するまでの処理を例示する。図３Ａは、ｅＭＬＢＲ１１における処理の手順を示すフローチャートである。図３Ｂは、ｉＭＬＢＲ１２における処理の手順を示すフローチャートである。図３Ｃは、ｂＭＬＢＲ１３における処理の手順を示すフローチャートである。
【００６３】
まず、端末装置１７は、自装置に備える、もしくは接続しているローカルエリアネットワークに接続されたＩＤＳ／ＩＰＳが所定の通信量又は頻度を超えて到来するパケットや、設置されたハニーポットなどを利用して、到来するパケットの振る舞いの異常さもしくは既知の攻撃パターンや既知の攻撃パターンから予測される未知の攻撃パターン、もしくは既知のマルウェアや既知のマルウェア等から予想されるマルウェア、既知のエクスプロイトコードもしくは既知のエクスプロイトコードから予測される未知のエクスプロイトコードなどから、攻撃パケットの到来を検知する。その検知結果は、端末装置１７などの記憶領域に通信履歴情報（ログ）として書き込まれる。端末装置１７は、このログに基づいて攻撃パケットに付与されている送信元アドレスを特定する。上記により特定された送信元アドレスは、攻撃パケットを実際に送信した攻撃ノードの実際のアドレスと一致しないこともある。端末装置１７は、特定された送信元アドレスと、宛先アドレスや宛先／送信元ポート番号などを組み合せた制限条件を含むＤＲＭを自動もしくは一部ネットワーク管理者やセキュリティ技術者が介在してで生成し、ＤＲＭに検証用データもしくは認証コードを付与してｅＭＬＢＲ１１に送信する。なお、ＤＲＭには、ＤＲＭに記載された攻撃先ＩＰアドレスなどが正規に割り当てられたものかを検証するためにＲＰＫＩ（Resource Public-Key Infrastructure）を付加してもよい。
【００６４】
図３Ａに示すように、ｅＭＬＢＲ１１のコントローラ１１１は、検証用データもしくは認証コードが付与されたＤＲＭを端末装置１７から取得する（Ｓａ１１）。コントローラ１１１は、検証用データもしくは認証コードに基づいて、取得したＤＲＭが正当なものか否かを判定する（Ｓａ１２）。ＤＲＭが正当なものでないと判定した場合、コントローラ１１１は、そのＤＲＭを破棄して、Ｓａ１９の処理に進む。
【００６５】
一方、ＤＲＭが正当なものであると判定した場合、コントローラ１１１は、ＤＲＭを送信した端末装置の識別情報が正当か否かの判定（認証処理）を実施する（Ｓａ１３）。これにより、コントローラ１１１は、検証用データもしくは認証コードが付与されているＤＲＭのみを処理の対象にすることで、虚偽の要求を処理の対象から削除してシステムの完全性を確保する。
【００６６】
次に、コントローラ１１１は、端末装置がＤＲＭのパケットに付与したＲＰＫＩの認証コードに基づいて、パケットに付与された送信元アドレス（端末装置１７のアドレス等）が正当なものであることについて判定する。ＤＲＭを送信した端末装置の識別情報が正当でないと判定した場合、コントローラ１１１は、そのＤＲＭを破棄して、Ｓａ１９の処理に進む。
【００６７】
一方、端末装置の識別情報が正当であると判定した場合、コントローラ１１１は、そのＤＲＭに基づいて制限条件を生成する（Ｓａ１４）。制限条件の生成についての詳細は後述する。
【００６８】
次に、コントローラ１１１は、抽出した制限条件が、第１記憶部１１５１に第１規則（廃棄対象ブラックリスト）として登録されているか否かを判定する（Ｓａ１５）。抽出した制限条件が第１記憶部１１５１に登録されていないと判定した場合、コントローラ１１１は、抽出した制限条件を第１記憶部１１５１に追加して更新する（Ｓａ１６）。ｅＭＬＢＲ１１は、更新された第１記憶部１１５１の情報を用いて、パケットの転送処理を実施する。
【００６９】
一方、抽出した制限条件が第１記憶部１１５１に既に登録されていると判定した場合、又はＳａ１６の処理を終えた場合、コントローラ１１１は、抽出したＤＲＭに、そのＤＲＭに基づいて生成した制限条件を含めて転送用のＤＲＭを生成する。その転送用のＤＲＭに、予め接続先のｉＭＬＢＲ１２との間で交換した共有鍵を用いて生成したＡＨ（Authentication Header）を付加して転送ＤＲＭを生成する（Ｓａ１７）。転送ＤＲＭは、ｅＭＬＢＲ１１の接続先のｉＭＬＢＲ１２に送られるものである。このＡＨにより、転送ＤＲＭにおけるデータの完全性が保証される。なお、転送ＤＲＭでは、ＡＨによりデータの完全性を保証できることから、端末装置１７により付与された検証用データもしくは認証コードに代えることができる。
【００７０】
次に、コントローラ１１１は、転送ＤＲＭを当該ｉＭＬＢＲ１２宛に送信する（Ｓａ１８）。
【００７１】
なお、ＤＲＭを送信した端末装置１７の識別情報が正当ではないと判定した場合、又はＳａ１８の処理を終えた場合、コントローラ１１１は、第１記憶部１１５１に登録されている制限条件のうち、攻撃パケットが到来しない状態になった後、或いは、到来しなくなって所定期間が経過した後、その制限条件を削除する（Ｓａ１９）。
【００７２】
上記の処理により、通信システム１は、ネットワークＮＷ１の端部に設けられたｅＭＬＢＲ１１（図１）を介して送られる端末装置１７等を標的とする攻撃パケットを、通信システム１単独で遮断することができる。上記のｅＭＬＢＲ１１は、例えば、アクセス系のルータとして構成されるスイッチであり、更には、目的のトラフィックを遮断するＩＰＳとしての機能を有している。
【００７３】
図３Ｂに示すように、ｉＭＬＢＲ１２のコントローラ１２１は、図３ＡのＳａ１８においてｅＭＬＢＲ１１から送信された転送ＤＲＭを取得する（Ｓａ２１）。ｉＭＬＢＲ１２は、ＡＨに基づいて、取得した転送ＤＲＭが正当なものか否かを判定する（Ｓａ２２）。転送ＤＲＭが正当なものでないと判定した場合、ｉＭＬＢＲ１２は、その転送ＤＲＭを破棄して、Ｓａ２９の処理に進む。
【００７４】
一方、転送ＤＲＭが正当なものであると判定した場合、コントローラ１２１は、その転送ＤＲＭにより指定される制限条件を抽出する（Ｓａ２４）。
【００７５】
次に、コントローラ１２１は、抽出した制限条件が、第１記憶部１２５１に第１規則（廃棄対象ブラックリスト）として登録されているか否かを判定する（Ｓａ２５）。抽出した制限条件が第１記憶部１２５１に登録されていないと判定した場合、コントローラ１２１は、抽出した制限条件を第１記憶部１２５１に追加して更新する（Ｓａ２６）。ｉＭＬＢＲ１２は、更新された第１記憶部１２５１の情報を用いて転送処理を実施する。
【００７６】
一方、抽出した制限条件が第１記憶部１２５１に既に登録されていると判定した場合、又はＳａ２６の処理を終えた場合、コントローラ１２１は、抽出した制限条件に基づいて、転送先のｂＭＬＢＲ１３等を自己の経路表等をもとに決定する。転送先のｂＭＬＢＲ１３等には、同じＩＳＰに属する他のｉＭＬＢＲ１２を含めてもよい。コントローラ１２１は、転送先のｂＭＬＢＲ１３等との間で予め交換した共有鍵を用いて生成したＡＨを付加して、ｉＭＬＢＲ１２の接続先のｂＭＬＢＲ１３に送る転送ＤＲＭを生成する。このＡＨにより、転送ＤＲＭにおけるデータの完全性が保証される（Ｓａ２７）。
【００７７】
次に、コントローラ１２１は、転送ＤＲＭを当該ｂＭＬＢＲ１３等に送信する（Ｓａ２８）。
【００７８】
なお、ＤＲＭを送信した端末装置１７の識別情報が正当ではないと判定した場合、又はＳａ２８の処理を終えた場合、ｉＭＬＢＲ１２は、第１記憶部１２５１に登録されている制限条件のうち、攻撃パケットが到来しない状態になった後、或いは、到来しなくなって所定期間が経過した後、その制限条件を削除する（Ｓａ２９）。
【００７９】
上記の処理により、通信システム１は、ネットワークＮＷ１の端部に設けられたｉＭＬＢＲ１２−１（図１）を介して送られる端末装置１７等を標的とする攻撃パケットを、通信システム１単独で遮断することができる。上記のｉＭＬＢＲ１２−１は、例えば、エッジルータとして構成されるスイッチであり、更には、目的のトラフィックを遮断するＩＰＳとしての機能を有している。
【００８０】
図３Ｃに示すように、ｂＭＬＢＲ１３は、図３ＢのＳａ２８においてｉＭＬＢＲ１２から送信された転送ＤＲＭを取得する（Ｓａ３１）。ｂＭＬＢＲ１３は、ＡＨに基づいて、取得した転送ＤＲＭが正当なものか否かを判定する（Ｓａ３２）。転送ＤＲＭが正当なものでないと判定した場合、ｂＭＬＢＲ１３は、その転送ＤＲＭを破棄して、Ｓａ３９の処理に進む。
【００８１】
一方、転送ＤＲＭが正当なものであると判定した場合、コントローラ１３１は、その転送ＤＲＭにより指定される制限条件を抽出する（Ｓａ３４）。
【００８２】
次に、コントローラ１３１は、抽出した制限条件が、第１記憶部１３５１に第１規則として登録されているか否かを判定する（Ｓａ３５）。抽出した制限条件が第１記憶部１３５１に登録されていないと判定した場合、コントローラ１３１は、抽出した制限条件を第１記憶部１３５１に追加して更新する（Ｓａ３６）。ｂＭＬＢＲ１３は、更新された第１記憶部１３５１の情報（廃棄対象ブラックリスト）を用いて遮断処理を実施する。
【００８３】
なお、ＤＲＭを送信した端末装置１７の識別情報が正当ではないと判定した場合、又はＳａ３６の処理を終えた場合、コントローラ１３１は、自装置に接続されているネットワークＮＷの通信システムが、契約先ＩＳＰなど連携可能なものであるか否かを判定する（Ｓａ４０）。連携可能な通信システムがないと判定した場合には、Ｓａ３９の処理に進む。
【００８４】
一方、連携可能な通信システムがあると判定した場合には、コントローラ１３１は、抽出した転送ＤＲＭに基づいて、その転送ＤＲＭに、予め交換した共有鍵を用いてＡＨを付加して、ｂＭＬＢＲ１３の接続先のネットワークＮＷ２に送る転送ＤＲＭを生成する。このＡＨにより、転送ＤＲＭにおけるデータの完全性が保証される（Ｓａ４７）。
【００８５】
次に、コントローラ１３１は、転送ＤＲＭを当該ネットワークＮＷ宛に送信する（Ｓａ４８）。
【００８６】
なお、ＤＲＭを送信した端末装置１７の識別情報が正当でないと判定した場合、連携可能な通信システムがないと判定した場合、又はＳａ４８の処理を終えた場合、コントローラ１３１は、第１記憶部１３５１に登録されている制限条件のうち、攻撃パケットが到来しない状態になった後、或いは、到来しなくなって所定期間が経過した後、その制限条件を削除する（Ｓａ３９）。
【００８７】
上記の処理により、通信システム１は、ネットワークＮＷ１の境界に設けられたｂＭＬＢＲ１３−１（図１）を介してネットワークＮＷ１に流入する攻撃パケットを、通信システム１単独で遮断することができる。例えば、上記のｂＭＬＢＲ１３−１は、ボーダルータとして構成されるスイッチであり、更には、制限条件に該当するトラフィックを遮断するＩＰＳ（図１）としての機能を有している。上記の処理により、制限条件の通知を受けたｂＭＬＢＲ１３−１は、ネットワークＮＷ１に流入する攻撃パケットを、通信システム１単独で遮断する。
【００８８】
さらに、ＭＬＢＲ１０を導入しているネットワークＮＷ２やネットワークＮＷ３を経由して攻撃パケットがネットワークＮＷ１に送られている場合には、ネットワークＮＷ１内の転送と同様にして、ネットワークＮＷ２やネットワークＮＷ３内で該当するｂＭＬＢＲ１３等に、各ＭＬＢＲ１０によって転送ＤＲＭがバケツリレーされる。このバケツリレーにより転送ＤＲＭが通知されて、例えば、攻撃パケットの送信元アドレスに最も接近したＭＬＢＲ１０で攻撃が遮断されるようになる。
【００８９】
［より具体的な一実施例］
以下の説明では、ＯｐｅｎＦｌｏｗ（登録商標）の技術を適用してＭＬＢＲ１０を構成する場合を例示する。
【００９０】
（分散型のコントローラ）
ＯｐｅｎＦｌｏｗの各ノードは、ＯｐｅｎＦｌｏｗコントローラにより制御されるＯｐｅｎＦｌｏｗスイッチ部を備える。一般的なＯｐｅｎＦｌｏｗの技術では、１つのＯｐｅｎＦｌｏｗコントローラが複数のＯｐｅｎＦｌｏｗスイッチを一元管理する。
これに代えて、本実施形態のＭＬＢＲ１０は、コントローラ１１１とスイッチ部１１２とを備えており、ＭＬＢＲ１０毎に設けられたコントローラ１１１がスイッチ部１１２を管理する。コントローラ１１１は、他のＭＬＢＲ１０のコントローラと独立に機能してもよく、連系して機能してもよい。この点が一般的なＯｐｅｎＦｌｏｗの構成と異なる。以下、上記の相違点を中心に説明する。
【００９１】
図４に示すように、例えばコントローラ１１１は、特定情報取得部１１１１、識別情報取得部１１１２、ＷＬ管理部１１１３、出力制御部１１１４、管理部１１１５、パケットイン（Packet-In）１１１６、パケットアウト（Packet-Out）１１１７、フロー変更出力部（Flow-Mod）１１１８、及び、ＢＬ管理部１１１９を備える。
パケットイン１１１６は、スイッチ部１１２からの情報を受信する。パケットアウト１１７は、パケットとその宛先情報とを、スイッチ部１１２宛に出力する。フロー変更出力部（Flow-Mod）１１１８は、スイッチ部１１２の設定を変更するための情報をスイッチ部宛に出力する。スイッチ部１１２における他の構成の詳細については、後述する。
【００９２】
ＭＬＢＲ１０のコントローラは、少なくとも自装置のスイッチ部を制御して、その通信のセキュリティ性を確保する。なお、ＭＬＢＲ１０のコントローラは、互いに通信することにより、分散型のコントローラとして機能してもよく、その場合に、例えばＤＲＭを順に転送する。上記のとおり、ＤＲＭは、各ＭＬＢＲ１０における転送を制限するための情報である。ＭＬＢＲ１０は、ＤＲＭが通知されるまでに構成されていた転送情報を変更することなく、転送を制限する制限条件を追加し、また、制限条件を単位にして個々に削除する。これにより、通信システム１は、ネットワークＮＷ内の転送規則を維持したまま、転送を制限する制限条件のみを変更する。
【００９３】
(スイッチ部の一例)
図４から図１０を参照して、スイッチ部のより具体的な一例について説明する。図４は、ｅＭＬＢＲ１１を示す図である。スイッチ部１１２は、各段のフローテーブルとして、廃棄テーブル１１２１、パケットタイプテーブル１１２２、ＳＣＯＰＥテーブル１１２３、ＭＬＢテーブル１１２４、ルーティングテーブル１１２５、及びＱｏＳテーブル１１２６を備える。図５から図１０のそれぞれは、廃棄テーブル１１２１、パケットタイプテーブル１１２２、ＳＣＯＰＥテーブル１１２３、ＭＬＢテーブル１１２４、ルーティングテーブル１１２５、及びＱｏＳテーブル１１２６の一例を示す図である。
【００９４】
（スイッチ部における各種テーブルの一例）
スイッチ部１１２において、廃棄テーブル１１２１には、廃棄するパケットのフローエントリが必要数格納される。廃棄するパケットのフローエントリは、前述のパケットの転送を制限する条件である第１規則（ブラックリスト）に対応する。図５は、廃棄テーブル１１２１に設定される第１規則の一例を示す。例えば図５に示すような第１規則に従い、廃棄テーブル１１２１は、格納されたフローエントリにマッチしたパケットを廃棄（ｄｒｏｐ）する。格納されたフローエントリにマッチしなかったパケットは、パケットタイプテーブル１１２２による選択処理の対象にする。フローエントリに規定する制限情報は、１つのＩＰアドレスであってもよく、或いは、複数のＩＰアドレスを含むネットワークアドレスであってもよい。さらに、宛先ＩＰアドレスや宛先ポート番号、送信元ポート番号、パケット長、パケットタイプ、ＴＣＰ制御フラグ等を適宜組み合わせて規定することによって、攻撃パケットと同じ宛先IPアドレスに送信しようとしている他の一般ユーザの通信を妨げることを抑制することができる。例えば、廃棄テーブル１１２１のフローエントリとして、転送を制限する領域に対応するネットワークアドレスをマッチ条件として規定する。廃棄テーブル１１２１は、そのネットワークアドレスが示すアドレス空間に含まれた送信元ＩＰアドレスが付与されているパケットの転送を制限する。図５に示す「１２９．１６８．３．０／２４」は、ＩＰｖ４で記述した場合のネットワークアドレスの一例である。なお、本実施形態における廃棄テーブル１１２１の構成の詳細については後述する。
【００９５】
パケットタイプテーブル１１２２は、廃棄テーブル１１２１により廃棄されなかったパケットと、コントローラから取得したパケットを処理対象のパケットとし、パケットのタイプ毎のフローエントリを格納する。例えば図６に示すように、パケットタイプテーブル１１２２に格納するフローエントリには、ＩＰｖ４のパケットであることを特定するものと、ＩＰｖ６のパケットであることを特定するものと、コントローラ宛に送信するパケットであることを特定するものが含まれる。例えば、パケットタイプテーブル１１２２として、各パケットのタイプに対応するアクションを下記のように定義する。パケットタイプテーブル１１２２は、自ＭＬＢＲ１０宛のＩＣＭＰｖ６（Internet Control Message Protocol for IPv6）、又はＡＲＰ（Address Resolution Protocol）、ＩＣＭＰ（Internet Control Message Protocol）、ＤＨＣＰ（Dynamic Host Configuration Protocol）、ＤＲＰ（Dropping Request Message Protocol）、ＲＩＰ（Routing Information Protocol）、ＯＳＰＦ（Open Shortest Path First）、ＢＧＰ（Border Gateway Protocol）、ＵＰｎＰ（Universal Plug and Play）、ＤＮＳ（Domain Name System）、ＳＩＰ（Session Initiation Protocol）などの通信制御パケットをコントローラ１１１宛のパケット（Ｐａｃｋｅｔ−Ｉｎ）とし、上記を除くＩＰｖ４のパケットをＭＬＢテーブル１１２４による処理の対象にし、上記を除くＩＰｖ６のパケットをＳＣＯＰＥテーブル１１２３による処理の対象にする。上記のＤＲＰは、ＤＲＭに検証データもしくは認証コードを付加した規格である。ＤＲＰの詳細については後述する。パケットタイプテーブル１１２２は、コントローラ１１１宛のパケットのうち、コントローラ１１１による判定結果に基づいて、必要であればＦｌｏｗ−Ｍｏｄにて各テーブルを更新するとともに、他のＭＬＢＲに転送が必要なパケットは、スイッチ部１１２に戻す（Ｐａｃｋｅｔ−Ｏｕｔ）。
【００９６】
ＳＣＯＰＥテーブル１１２３は、パケットタイプテーブル１１２２によりＩＰｖ６のパケットであると特定されたパケットに対し、スコープ（SCOPE）の逸脱有無を判定して当該パケットのルーティングを許可するか否かを特定する。例えば図７に示すように、当該パケットの送信元IPアドレスと宛先IPアドレスが同じスコープ（グローバルアドレス、ユニークローカルアドレス、リンクローカルアドレスなど）に属し、ルーティングを許可すると判定した場合には、ＳＣＯＰＥテーブル１１２３は、当該パケットをＭＬＢテーブル１１２４による処理の対象にする。一方、当該パケットのスコープに逸脱がありルーティングを許可しないと判定した場合には、ＳＣＯＰＥテーブル１１２３は、対象のパケットを廃棄する。
【００９７】
ＭＬＢテーブル１１２４は、パケットタイプテーブル１１２２によりＩＰｖ４のパケットであると特定されたパケット、又は、ＳＣＯＰＥテーブル１１２３によりルーティングを許可するＩＰｖ６のパケットであると特定されたパケットに対し、当該パケットが転送を許可すべきパケットであるか否かを特定する条件である第２規則（通信許可ホワイトリスト）に対応する。ＭＬＢテーブル１１２４は、ＩｏＴ装置やホスト等のＭＡＣアドレスとＩＰアドレス及びｅＭＬＢＲ１１の接続ポートの識別情報を組み合わせて、当該パケットが偽装パケットでないかをチェックする通信許可ホワイトリストとして機能するが、ＩｏＴ装置から送信されたパケットであるか否かを判別することもできる。例えば図８に示すように、マッチ条件には、スイッチ部１１２の入力ポート番号（IN_Port）、ＩｏＴ装置に割り付けられているＭＡＣアドレスとＩＰアドレスなどが設定される。例えば、当該パケットが、ＩｏＴ装置から送信されたパケットであると判別すると（図８上段）、ＱｏＳテーブル１１２６（図１０）に遷移し、通信相手として許可された宛先アドレスであるかをＱｏＳテーブル１１２６によって判定し、該当する通信相手許可ホワイトリストがＱｏＳテーブル１１２６に存在した場合、ＱｏＳテーブル１１２６は、当該パケットをルーティングテーブル１１２５による転送処理の対象（図１０上段）にする。
【００９８】
図９に示すように、ルーティングテーブル１１２５は、ＭＬＢテーブル１１２４（図８）により当該パケットが偽装されたパケットでないと判定された場合、当該パケットをルーティングテーブル１１２５により規定される物理ポートに出力するのが基本であるが、ルーティングテーブル１１２５によりＩｏＴ装置宛のパケットであることが判明した場合（図９上段）は、ＱｏＳテーブル１１２６（図１０）に遷移し、送信元が該ＩｏＴ装置の通信相手であるか否かを判定し、該当する通信相手許可ホワイトリストが存在した場合に、転送処理の対象にする（図１０中段）。ルーティングテーブル１１２５は、当該パケットが転送すべきパケットでないと特定された場合（図９下段）、当該パケットをルーティングテーブル１１２５の第３規則に従って、廃棄処理の対象にしてもよい。
【００９９】
ＱｏＳテーブル１１２６は、ＭＬＢテーブル１１２４により当該パケットが、ＩｏＴ装置から送信されたパケット、又は、ＩｏＴ装置宛に送信されたパケットであると判定されたパケットに対し、所望のＱｏＳを設定する。ＱｏＳとして設定する条件は、第４規則（通信相手許可ホワイトリスト）に対応する。例えば図１０に示すように、ＱｏＳテーブル１１２６における所望のＱｏＳには、送信元アドレスと宛先アドレスがマッチ条件に一致する場合に、パケットの転送を許可することで、許可される範囲を超えた宛先への転送を制限する（図１０下段）ことが含まれる。その詳細は後述する。
【０１００】
（ＤＲＭの構成）
図１１を参照して、ＤＲＭの一例とその通信手順（ＤＲＰ）について説明する。図１１は、ＤＲＭの一例を説明するための図である。同図にＤＲＭを送信するパケットのフレーム構成の一例を示す。同フレームは、ＭＡＣヘッダ、ＩＰヘッダ、ＴＣＰヘッダ、ペイロードを含む。ペイロードにはＤＲＭが割り付けられる。ＤＲＭを送受信する端末装置１７及びＭＬＢＲ１０等は、ＤＲＭの通信手順を規定するＤＲＰを共有し、ＤＲＰに基づいて通信する。
【０１０１】
例えば、ＤＲＭは、ＤＲＭの通信手順を定めるプロトコル（ＤＲＰ）のバージョン、ＤＲＭのメッセージ長、ＤＲＭを送信する端末装置の識別情報、有効期間、監視規定時間、廃棄対象情報、ＲＰＫＩや攻撃の履歴情報の付加、さらに将来の機能拡張のための拡張情報、検証用データもしくは認証コードなどの情報を含む。有効期間は、ＭＬＢＲ１０が転送の制限を継続する期間を示す。監視規定時間は、攻撃パケットの有無を含む通信状態の監視を実施する周期を規定する。廃棄対象情報は、攻撃パケットの転送を制限するための攻撃パケットの送信元アドレス等を含む。なお、廃棄対象情報は、例えば、特定した送信元アドレスと宛先ＩＰアドレス、送信元／宛先ポート番号、さらにＴＣＰ制御フラグやパケット長、パケットタイプなどの属性データを適宜組み合せてもよい。このような組み合わせにより、廃棄対象とした送信元ネットワークアドレス空間内から、一般ユーザが同じ宛先にパケットを送っても、誤廃棄する確率を減らすことができる。検証用コードもしくは認証コードは、前述の端末装置１７が自装置及びＤＲＭの正当性と完全性を示す情報を付与するものである。
【０１０２】
端末装置１７とｅＭＬＢＲ１１との間にファイアウォールが設けられている場合には、通信可能なプロトコルが制限される。この場合、端末装置１７は、ＩＣＭＰなどを用いてＭＬＢＲ１０に発見要求メッセージを送り、ｅＭＬＢＲ１１からの応答を取得して、ｅＭＬＢＲ１１を特定するとともに、先に応答したｅＭＬＢＲ１１の真正を確認する手順を実施する。その後、端末装置１７は、上記のフレームを用いてＤＲＭをｅＭＬＢＲ１１に送信する。
【０１０３】
なお、ＭＬＢＲ１０間の通信において、相手先を認証する必要が無い場合には、ＤＲＭの検証が行えればよいため、ＭＬＢＲ１０は、検証用コードもしくは認証コードに代えて、上記のフレームのＩＰヘッダとＵＤＰヘッダの間にＡＨを付与したフレームを用いてもよく、ＤＲＭにＡＨを付与して上記のペイロードに収納してもよい。
【０１０４】
ここで図１２〜図１５を参照して、図４に示すＢＬ管理部１１９１と廃棄テーブル１１２１の構成例および動作例について説明する。図１２は、図４に示すＢＬ管理部１１９１と廃棄テーブル１１２１の構成例を示す図である。図１３は、図１２に示すＢＬ管理テーブル１１１９２に格納されるデータの形式の一例を示す図である。図１４及び図１５は、図１２に示すＢＬ管理部１１１９の動作例を示すフローチャートである。
【０１０５】
図１２に示す構成例では、ＢＬ管理部１１９１がコントローラ１１１が備えるハードウェアを用いて所定のプログラムを実行することで提供される機能としての制御部１１１９１と制御部１１１９１が管理するテーブルであるＢＬ管理テーブル１１１９２とを含む。ただし、ＢＬ管理テーブル１１１９２は、ＢＬ管理部１１１９内に限らず、例えば記憶部１１５内に記憶されていてもよい。その場合、ＢＬ管理テーブル１１１９２は、第１記憶部１１５１に統合される形で記憶されていてもよい。
【０１０６】
制御部１１１９１は、第１記憶部１１５１に記憶されている制限条件に基づき、ＢＬ管理テーブル１１１９２の内容を管理する。ＢＬ管理テーブル１１１９２は、廃棄対象ブラックリストが含む各項目に対応する１又は複数のレコードを含む。図１２に示す例において、各レコードは、当該レコードの有効又は無効を示す情報を格納するフィールドと、廃棄対象ブラックリスト内の１項目に対応する廃棄対象情報を表す検索データを構成する書込データ及び書込マスクを表す情報を格納するフィールドと、当該項目の有効期限を表す情報を格納するフィールドと、当該項目が廃棄テーブル１１２１で制限された最終の時刻を表す情報を格納するフィールドと、廃棄テーブル１１２１が備える三値連想メモリアレイ１１２１４（三値連想記憶部）の書き込みアドレスを表す情報を格納するフィールドとを含む。ここで、廃棄対象情報を表す書込データとは、廃棄対象の受信パケットの入力若しくは出力ポート又は入力若しくは出力チャネルの識別番号及びレイヤ２（データリンク層）、レイヤ３（ネットワーク層）及びレイヤ４（トランスポート層）のヘッダ情報の一部又は全部に対応する固定長のビット列である。また、書込マスクとは、同ビット列の中の照合対象となるビットを識別するワイルドカード、すなわち、データを表す固定長のビット列のどのビットがドントケア（Ｄｏｎ‘ｔ  ｃａｒｅ）なのかを示すビット列である。書込マスクは、例えば各ビットの値が「１」の場合にドントケアを表す。三値連想メモリアレイ１１２１４の各アドレスに書き込まれるデータは、書込データと書込マスクから生成される、書き込みアドレスは、例えば、各レコードに対して予め割り当てられていて通常は変更されない。
【０１０７】
ここで、図１３を参照して図１２のＢＬ管理テーブル１１１９２に登録される書込データの形式について一例を挙げて説明する。図１３に示すように、ＢＬ管理テーブル１１１９２に登録される書込データは、例えば、８０Ｂ（バイト）の固定長のビット列である。各データは、第０〜第４グループＰ０〜Ｐ４に属する情報をこの順に並べることで構成されている。第０〜第４グループＰ０〜Ｐ４は、それぞれ１Ｂ、１４Ｂ、４０Ｂ、１Ｂ、２４Ｂの固定長のデータである。第０グループＰ０は、物理ポート又はチャネル（セキュアチャネル）番号（識別番号）を示す１バイトのデータＰ０１を含む。第１グループＰ１は、１４バイトのＭＡＣ（Media Access Control）ヘッダ情報Ｐ１１を含む。第２グループＰ２は、ＩＰｖ４（Internet Protocol version 4）の２０バイト（括弧で囲って示す数字）のヘッダ情報Ｐ２１、ＩＰｖ６（Internet Protocol version 6）の４０バイトのヘッダ情報Ｐ２２、ＩＥＥＥ８０２．１Ｘの４バイトのヘッダ情報Ｐ２３（あるいはヘッダ情報Ｐ２３にＥＡＰ（PPP Extensible Authentication Protocol）のヘッダ情報Ｐ２３１を付加した８バイトの情報）、及びＡＲＰ（Address Resolution Protocol）の２４バイトのヘッダ情報Ｐ２４のいずれかを含む。第２グループＰ２のビット列は、ヘッダ情報Ｐ２１〜Ｐ２４のいずれかから選択的に構成される。第３グループＰ３は、第４グループＰ４の情報の種類が何であるかを示す１バイトの情報ＮＨ（Next Header）Ｐ３１を含む。第４グループＰ４のビット列は、ヘッダ情報Ｐ４１〜Ｐ４７のいずれかから選択的に構成される。また、ＵＤＰ（User Datagram Protocol）のヘッダ情報Ｐ４７に対してはＴＣＰ／ＩＰ群のアプリケーション層（ＯＳＩ参照モデルのレイヤ５〜７（セッション層、プレゼンテーション層又はアプリケーション層））等のヘッダ情報Ｐ４７１〜４７６を付加することができる。
【０１０８】
ヘッダ情報Ｐ４１はＩＣＭＰ（Internet Control Message Protocol）のヘッダ、ヘッダ情報Ｐ４２はＩＣＭＰｖ６のヘッダ、ヘッダ情報Ｐ４３はＩＧＭＰ（Internet Group Management Protocol）のヘッダ、ヘッダ情報Ｐ４４はＯＳＰＦ（Open Shortest Path First）のヘッダ、ヘッダ情報Ｐ４５はＴＣＰ（Transmission Control Protocol）のヘッダ、ヘッダ情報Ｐ４６はＳＣＴＰ（Stream Control Transmission Protocol）のヘッダ、そして、ヘッダ情報Ｐ４７はＵＤＰのヘッダの内容をそれぞれ表す。また、ヘッダ情報Ｐ４７１はＤＮＳ（Domain Name System）の、ヘッダ情報Ｐ４７２はＤＨＣＰ（Dynamic Host Configuration Protocol）の、ヘッダ情報Ｐ４７３はＲＡＤＩＵＳ（Remote Authentication Dial In User Service）の（あるいはさらにＥＡＰのヘッダＰ４７３１を付加したものの）、ヘッダ情報Ｐ４７４はＮＴＰ（Network Time Protocol）の、ヘッダ情報Ｐ４７５はＲＴＰ（Real-time Transport Protocol）の、及び、ヘッダ情報Ｐ４７６はＲＩＰ（Routing Information Protocol）の各ヘッダの内容をそれぞれ表す。なお、各プロトコル名に添えて示す括弧内の数値は、各情報に割り付けたバイト数を示す。
【０１０９】
なお、図１３は構成の一例を示すものであって、ヘッダの種類やグループ分けの仕方は図示したものに限定されない。また、各グループの固定長に満たないヘッダ情報については未使用のビットのマスクを書込マスクにおいてドントケアとすることで対応する。
【０１１０】
一方、図１２に示す廃棄テーブル１１２１は、制御部１１２１１と、入力バッファ・検索キー生成部１１２１２と、検索キー記憶部１１２１３と、三値連想メモリアレイ１１２１４と、出力制御部１１２１５と、書込マスク記憶部１１２１６と、書込データ記憶部１１２１７と、検索結果記憶部１１２１８と、Ｄｒｏｐ判定部１１２１９とを備える。
【０１１１】
三値連想メモリアレイ１１２１４は、ＴＣＡＭ（Ternary Content Addressable Memory）とも呼ばれ、各記憶素子が「０」と「１」と「Ｘ（ドントケア）」の三値のいずれかを記憶する。三値連想メモリアレイ１１２１４は、複数アドレスに対応した記憶領域を有していて、各アドレスの記憶領域は８０Ｂ等の任意の長さに対応するものとすることができる。三値連想メモリアレイ１１２１４は、検索キー記憶部１１２１３に格納されている２値データを検索キーとして全アドレスを検索対象として検索し、一致する場合に記憶領域のアドレスを出力する。検索キー記憶部１１２１３に格納されているデータの各ビットのうち、三値連想メモリアレイ１１２１４内で「Ｘ（ドントケア）」に対応するビットの値は検索結果に影響を与えず、三値連想メモリアレイ１１２１４内「０」及び「１」に対応する検索キー記憶部１１２１３内のデータの各ビットがすべて一致した場合に検索結果が一致となり、アドレスの値が出力される。出力制御部１１２１５は、例えば、検索結果記憶部１１２１８内の記憶アドレスを示すポインタ記憶用のレジスタを有し、検索結果が一致したアドレスの値をポインタを増加させながら検索結果記憶部１１２１８に書き込んでいく。また、出力制御部１１２１５は、検索結果の一致又は不一致を示す信号をＤｒｏｐ判定部１１２１９に対して出力する。また、出力制御部１１２１５は、検索時に複数のアドレスが一致した場合には、予め定められた優先順位にしたがって１つのアドレスのみを出力してもよい。
【０１１２】
なお、三値連想メモリアレイ１１２１４へのデータの書き込みは次のようにして行うことができる。廃棄テーブル１１２１内の各部を制御する制御部１１２１１は、ＢＬ管理部１１１９の制御部１１１９１から書込データ及び書込マスクの内容とアドレスを指定した三値データの書き込み指示を受け付けて、三値連想メモリアレイ１１２１４内の指定されたアドレスに三値データ（各値が「１」、「０」又は「Ｘ」（ドントケア）からなるデータ）のいずれかを書き込む。その際、制御部１１１９１が書き込みを指示した書込マスクは書込マスク記憶部１１２１６に記憶され、書き込みを指示した書込データは書込データ記憶部１１２１７に記憶される。そして、三値連想メモリアレイ１１２１４の各アドレスの三値データの値は、書込マスク記憶部１１２１６と書込データ記憶部１１２１７の両方の記憶内容にしたがって決定される。
【０１１３】
入力バッファ・検索キー生成部１１２１２は、ＩＦ部１１４（またはＩＦ部１１３）から入力した入力パケットを一時的に記憶してＤｒｏｐ判定部１１２１９へ出力するとともに、図１３に示すようにパケットの先頭に物理ポート又はチャネル（セキュアチャネル）番号（識別番号）を示す１バイトのデータＰ０１を追加したり、各グループＰ１〜Ｐ４の先頭位置を固定された位置に移動したりしたビット列からなる検索キーを生成して検索キー記憶部１１２１３に記憶する。また、入力バッファ・検索キー生成部１１２１２は、新たに検索キーとして生成して検索キー記憶部１１２１３に記憶した場合、制御部１１２１１に対して検索動作の実行開始を指示する。なお、入力バッファ・検索キー生成部１１２１２は、例えば先入れ先出しで複数の入力パケットを記憶する記憶装置を備えていてもよい。
【０１１４】
Ｄｒｏｐ判定部１１２１９は、ＩＦ部１１４（またはＩＦ部１１３）から入力した入力パケットを入力バッファ・検索キー生成部１１２１２から受け取り、出力制御部１１２１５が出力した検索結果を示す信号に応じて、一致した場合には当該パケットを廃棄したり又は特定のポートから出力したりし、一致しなかった場合には当該パケットをパケットタイプテーブル１１２２に対して出力する。
【０１１５】
検索結果記憶部１１２１８は、出力制御部１１２１５から供給される制御信号（例えばアドレスやデータを指定する制御信号）に基づき、出力制御部１１２１５が出力した検索が一致した場合のアドレスの値を記憶する。制御部１１２１１は、制御部１１１９１から要求があった場合に、まだ読み出されていない検索結果（書き込みアドレス）をすべて（あるいは所定数）検索結果記憶部１１２１８から読み出して制御部１１１９１に対して出力する。
【０１１６】
以上の構成で、廃棄テーブル１１２１は、入力されたパケットが三値連想メモリアレイ１１２１４に記憶されている制限条件のいずれかに一致する場合に、一致したパケットを廃棄又は特定のポートから出力する。また、廃棄テーブル１１２１は、一致した場合のアドレスを検索結果記憶部１１２１８に逐次蓄積し、ＢＬ管理部１１１９からの求めに応じてパケット廃棄のタイミングとは非同期で一致したアドレスを表す情報をＢＬ管理部１１１９に対して提供する。したがって、廃棄テーブル１１２１は、制限条件を満たすパケットの廃棄処理をコントローラ１１１の処理とは非同期で容易に高速に行うことができる。
【０１１７】
次に、図１４及び図１５を参照して、図１２に示すＢＬ管理部１１１９の動作例について説明する。図１４は、ＢＬ管理部１１１９が制限条件を廃棄テーブル１１２１に書き込む処理を示す。図１５は、ＢＬ管理部１１１９が廃棄テーブル１１２１から検索結果を読み出し、ＢＬ管理テーブル１１１９２の内容を更新する処理を示す。図１４及び図１５に示す各処理は例えば一定の周期で繰り返し実行される。
【０１１８】
図１４に示す処理において、ＢＬ管理部１１１９の制御部１１１９１は、第１記憶部１１５１に新たな制限条件が追加された場合、追加された制限条件に応じて書込データと書込マスクを生成する（Ｓｂ１１）。次に、制御部１１１９１は、ＢＬ管理テーブル１１１９２が有する複数のレコードから、生成した書込データと書込マスクの登録先のレコードを選択する（Ｓｂ１２）。ステップＳｂ１２において、制御部１１１９１は、無効なレコードあるいは有効期限が最も早いレコード、あるいは最終一致時刻が最も早いレコードを選択する。次に、制御部１１１９１は、ステップＳｂ１２で選択したレコードにステップＳｂ１１で生成した書込データと書込マスクを、制限条件が示す期限の情報とともに書き込み、さらに、書き込んだレコードを有効に設定する（Ｓｂ１３）。次に、制御部１１１９１は、書き込んだレコードに設定されているアドレスと、書込データと書込マスクを指定して、三値連想メモリアレイ１１２１４へのデータの書き込みを制御部１１２１１に対して指示する（Ｓｂ１４）。
【０１１９】
一方、図１５に示す処理において、ＢＬ管理部１１１９の制御部１１１９１は、廃棄テーブル１１２１の検索結果記憶部１１２１８から検索結果を読み出す（Ｓｂ２１）。次に、制御部１１１９１は、ＢＬ管理テーブル１１１９２において検索結果に含まれているアドレスが設定されたレコードの最終一致時刻を現在の時刻で更新する（Ｓｂ２３）。次に、制御部１１１９１は、ＢＬ管理テーブル１１１９２において有効期限が切れたレコードをすべて抽出して（Ｓｂ１２：Ｙｅｓ）、当該レコードすべてを無効にし（Ｓｂ２４）、三値連想メモリアレイ１１２１４において各レコードに設定されたアドレスのデータを初期化（検索が一致とならない値に設定）する（Ｓｂ２５）。
【０１２０】
なお、上記では、ＢＬ管理部１１１９と三値連想メモリアレイ１１２１４を用いた廃棄テーブル１１２１の例を、ｅＭＬＢＲ１１を例に説明したが、ｅＭＬＢＲ１１、ｉＭＬＢＲ１２及びｂＭＬＢＲ１３の各廃棄テーブル１１２１、１２２１及び１３２１をすべて同じ構成としてもよいし、例えば、ｅＭＬＢＲ１１の廃棄テーブル１１２１をソフトウェア処理による構成とし、ｂＭＬＢＲ１３の廃棄テーブル１３２１を三値連想メモリアレイを用いたハードウェア構成による廃棄テーブルとする等、適宜異ならせてもよい。
【０１２１】
また、廃棄テーブルを生成するきっかけは、ＩＤＳ／ＩＰＳにて検出した結果によることができる。ＭＬＢＲ１０は、ＩＤＳ／ＩＰＳ又はその情報を統合（統計処理）した結果に基づいてブラックリストを設定する。これ以降、廃棄テーブルにより、廃棄対象パケットがｄｒｏｐ（廃棄）される。ｂＭＬＢＲ１３がｅＭＬＢＲ１１、ｉＭＬＢＲ１２を経由して、ＩＤＳ／ＩＰＳからの通知（ＤＲＭ）を受けてもよく、またＩＤＳ／ＩＰＳから直接通知（ＤＲＭ）を受けてもよい。
【０１２２】
また、ＢＬ管理部１１１９は、履歴情報を管理するテーブル等を有して、廃棄パケットの履歴情報に追加するようにしてもよい。
【０１２３】
以上のように本実施形態によれば、各スイッチにおける処理能力を向上させることができる通信装置、通信システム、通信制御方法、及びプログラムを提供することができる。なお、本実施形態は、例えば次のような作用を奏する。すなわち、高速で転送されてきたもしくは転送するパケットを、少なくとも一つのブラックリストに該当したパケットを所定の方法で処理する。高速とは、例えば１００Ｇｂｐｓや４００Ｇｂｐｓといった高速のビットレートである。本実施形態は、予め登録された「パケットの入力若しくは出力ポートまたは入力若しくは出力(セキュア)チャネルの識別番号とＬ２〜Ｌ４のヘッダ情報のすべてまたは一部からなる固定長(例：６４０ビット)のビット列と、同ビット列の中の照合対象となるビットを識別するワイルドカード(don't care)」からなる複数のブラックリスト(廃棄テーブル)と照合し、少なくとも一つのブラックリストに該当したパケットを所定の方法で処理することができる。その際、パケット処理は、ＴＣＡＭ(Ternary Content Addressable Memory)を用いたハードウェアによって処理される。大量のパケットのワイヤスピードでの処理が要求されるｂＭＬＢＲでは、廃棄テーブル処理をソフトウェアで行うことは困難となる場合がある。すなわち、ルータの経路制御やＡＣＬ（Access Control List）処理などで用いられているＴＣＡＭによるハードウェア処理を用いることが望ましい。ＴＣＡＭは、単純な０／１の２値比較に、don't care（wildcard）を加えた三値比較ができるため、ネットマスクを含むバイナリパターンにてメモリ空間を１オペレーションで検索できることが特徴である。
【０１２４】
一方、ＴＣＡＭを用いた比較例として上述のＡＣＬがあるが、これは自ネットワークへの攻撃／不正パケットの流入若しくは自ネットワークからの攻撃／不正パケットの流出を阻止しようとするものである。また、比較例としての標準ＡＣＬでは、送信元Ｌ３アドレス(ＩＰアドレスまたはネットワークアドレス)のみ、拡張ＡＣＬでも送信元／宛先Ｌ３アドレスと送信元／宛先Ｌ４アドレス(ポート番号)、プロトコルのすべてまたは一部を対象にする。上記の比較例のＡＣＬ又は拡張ＡＣＬをｂＭＬＢＲやｉＭＬＢＲに適用した場合には、例えば攻撃元と同じ送信元アドレス空間から同じ宛先アドレスに送信している善良なユーザからのパケットを誤廃棄する可能性がある。
【０１２５】
そこで、本実施形態では、上述のＬ３、Ｌ４アドレスに加えて、ＭＡＣフレームやＩＰパケットのヘッダの中から当該攻撃や不正パケットに固有な属性情報を付加して廃棄要請メッセージ(ブラックリスト)を構成可能とした。当該攻撃や不正パケットに固有な属性情報には、パケット長や次ヘッダプロトコル、プロトコルタイプ、サービスタイプ(ＩＰｖ６では、トラヒッククラス)、制御フラグ、シーケンス番号、送信元／宛先ＭＡＣアドレスなどを含む。これによれば、善良なユーザからのパケットを誤廃棄する確率を格段に減らすことができる。
【０１２６】
ところで、ＡＲＰパケットをルータに大量に送りつけるＰａｃｋｅｔ  Ｉｎ攻撃などが知られている。上記のような攻撃を、ＭＬＢＲ１０が遮断するには、攻撃パケットを送信している物理ポートまたは(セキュア)チャネルを指定した廃棄要請メッセージを生成する必要がある。すなわち、廃棄要請メッセージは、物理ポート等の識別番号を含むＬ２〜Ｌ４のヘッダ情報を収容可能な固定長のビット列であること、固定長のビット列の中で有意なビット以外のビットを示すワイルドカード(don't care)情報が含まれることが求められ。本実施形態では、上述したＴＣＡＭによるハードウェア処理を行うことで、この要求に応えることができる。
【０１２７】
さらに、ＴＣＡＭを用いた廃棄テーブルは、ルーティング処理用のバッファの前段に配置し、ワイヤスピードで処理するため、例え帯域攻撃を受けても、ルーティング処理の前で帯域攻撃パケットを廃棄するため、ルーティング処理用のバッファを大幅に削減でき、またルーティング処理に加わる負荷を大幅に軽減できるだけでなく、パケットの転送遅延の削減やバッファオーバフローによるパケットの消失を抑制することができる。なお、本実施形態においてルーティング処理とは、廃棄テーブル１１２１による処理を除くスイッチ部１１２による入出力パケットに対する処理の一部又は全部を意味するものであり、図４に示すパケットタイプテーブル１１２２、ＳＣＯＰＥテーブル１１２３、ＭＬＢテーブル１１２４、ルーティングケーブル１１２５、又はＱｏＳテーブル１１２６によるパケットに対する処理の一部又は全部を含む。また、ルーティング処理用のバッファとは、スイッチ部１１２が備える図示していない１又は複数の入力又は出力バッファであり、例えば、パケットタイプテーブル１１２２、ＳＣＯＰＥテーブル１１２３、ＭＬＢテーブル１１２４、ルーティングケーブル１１２５、又はＱｏＳテーブル１１２６によるパケットに対する処理においてパケットを一時的に蓄積するために用いられる。すなわち、本実施形態では、廃棄テーブル１１２１（あるいは廃棄テーブル１２２１又は廃棄テーブル１３２１）によるパケットの転送の制限が、スイッチ部１１２（あるいはスイッチ部１２２又はスイッチ部１３２、あるいはＭＬＢＲ１０）内で受信パケットに対してルーティング処理が実行される前に行われる。
【０１２８】
前述したようにＬ１〜Ｌ４の基本ヘッダなどの記述が可能な８０バイトのバイナリパターンを検索対象にした場合の構成例について整理する。この場合、入手可能なＴＣＡＭチップを用いて、最大１２８Ｋ（キロ）個の廃棄エントリを登録できる三値連想メモリ空間と、１秒間に４００Ｍ（メガ）回（４００Ｍｐｐｓ）での検索が可能な構成を実現できる。ＭＬＢＲ１０における廃棄テーブルを上記のＴＣＡＭチップで構成することにより、１パケット当たりの平均パケット長を１２５バイトと仮定すると、廃棄テーブルは４００Ｇｂｐｓのワイヤスピードで処理する能力を有するものとなる。例えば、廃棄テーブルのオバーフローを狙った攻撃などに備えて、上記の規模の１０００個のＴＣＡＭチップを直並列に搭載し、１億個以上の廃棄エントリの登録が可能なｂＭＬＢＲを、未導入ネットワーク（図１の通信システムＮＷ４）との境界に配備してもよい。なお、上記のＴＣＡＭチップは、一例を示したものであり、これに限定されることはない。ＴＣＡＭチップの規模や応力に応じて、並列にする系統数や直列にする段数などを、上記を参考にして適宜決定してもよい。
【０１２９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【０１３０】
例えば、上記の実施形態の説明では、ＭＬＢＲ１０等のスイッチ部が攻撃パケットを“廃棄する”こととして説明したが、ＭＬＢＲ１０等は、当該パケットを、各スイッチ部内で廃棄せずに、特定のポートから外部記憶装置に出力して格納させてもよい。
【０１３１】
なお、上記の実施形態の説明では、端末装置１７がＩＤＳ／ＩＰＳを備えるものとして説明したが、ｅＭＬＢＲ１１又はｉＭＬＢＲ１２がＩＤＳ／ＩＰＳを備えるように構成してもよい。この場合、ｅＭＬＢＲ１１又はｉＭＬＢＲ１２は、端末装置１７のＩＤＳ／ＩＰＳに代えて、ｅＭＬＢＲ１１又はｉＭＬＢＲ１２が備えるＩＤＳ／ＩＰＳの検出結果を取得するように構成する。
【符号の説明】
【０１３２】
１、２、３、４…通信システム、１０…ＭＬＢＲ、１１…ｅＭＬＢＲ、１２…ｉＭＬＢＲ、１３…ｂＭＬＢＲ、１４…中継装置、１５…管理ホスト、１７…端末装置、１８…データ端末、１１１…コントローラ（制御部）、１１２…スイッチ部、１１３、１１４…ＩＦ部、１１５…記憶部、ＮＷ、ＮＷ１、ＮＷ３、ＮＷ４…ネットワーク
【図１】
2017200153.tif 000003
【図２】
2017200153.tif 000004
【図３】
2017200153.tif 000005
【図３Ａ】
2017200153.tif 000006
【図３Ｂ】
2017200153.tif 000007
【図３Ｃ】
2017200153.tif 000008
【図４】
2017200153.tif 000009
【図５】
2017200153.tif 000010
【図６】
2017200153.tif 000011
【図７】
2017200153.tif 000012
【図８】
2017200153.tif 000013
【図９】
2017200153.tif 000014
【図１０】
2017200153.tif 000015
【図１１】
2017200153.tif 000016
【図１２】
2017200153.tif 000017
【図１３】
2017200153.tif 000018
【図１４】
2017200153.tif 000019
【図１５】
2017200153.tif 000020