(57)【要約】  集中制御型のネットワークにおいて、ロールベースのアクセス制御を行う場合の、制御装置や通信ノードの負荷を抑制する。通信ノードは、受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるパケット処理部と、を備える。
2014061583.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、
前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、
パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるパケット処理部と、
を備えた通信ノード。
【請求項２】
前記受信したパケットのヘッダ中の第１の情報は、パケットの送信元に関する情報である請求項１の通信ノード。
【請求項３】
前記受信したパケットのヘッダ中の第２の情報は、パケットの宛先に関する情報である請求項１又は２の通信ノード。
【請求項４】
前記第１のテーブルには、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元に付与するロール情報と、を対応付けたエントリが格納され、
前記第２のテーブルには、前記ロール情報及び前記受信したパケットのヘッダ中の第２の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元からのパケットに対する処理内容とを対応付けたエントリが格納されている請求項１から３いずれか一の通信ノード。
【請求項５】
ロール毎に分割された第２のテーブルを有し、
前記第１のテーブルには、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合する場合に参照すべき第２のテーブル情報と、を対応付けたエントリが格納され、
前記パケット処理部は、
前記第１のテーブルから、受信したパケットのヘッダ中の第１の情報に適合するエントリを検索し、
前記第１の情報に適合するマッチ条件を持つエントリの第２のテーブル情報に対応する第２のテーブルを選択して、パケットに対する処理内容を求める請求項１から３いずれか一の通信ノード。
【請求項６】
前記第１のテーブルによるパケット送信元の属性又は権限の判定結果に基づいて、受信パケットの所定の領域に、パケット送信元の属性又は権限を示す情報を書き込み、
前記第２のテーブルのマッチ条件として、受信パケットの所定の領域に書き込まれた前記パケット送信元の属性又は権限を示す情報を用いる請求項１から３いずれか一の通信ノード。
【請求項７】
受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるパケット処理部と、を備えた通信ノードに対し、
前記第１、第２のテーブルのエントリを設定する制御装置。
【請求項８】
前記受信したパケットのヘッダ中の第１の情報は、パケットの送信元に関する情報である請求項７の制御装置。
【請求項９】
前記受信したパケットのヘッダ中の第２の情報は、パケットの宛先に関する情報である請求項７又は８の制御装置。
【請求項１０】
前記第１のテーブルに、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元に付与するロール情報と、を対応付けたエントリを設定し、
前記第２のテーブルに、前記ロール情報及び前記受信したパケットのヘッダ中の第２の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元からのパケットに対する処理内容とを対応付けたエントリを設定する請求項７から９いずれか一の制御装置。
【請求項１１】
前記通信ノードに、ロール毎に分割された第２のテーブルを設定し、
前記第１のテーブルに、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合する場合に参照すべき第２のテーブル情報と、を対応付けたエントリを格納し、
前記通信ノードに、
前記第１のテーブルから、受信したパケットのヘッダ中の第１の情報に適合するエントリを検索させ、
前記第１の情報に適合するマッチ条件を持つエントリの第２のテーブル情報に対応する第２のテーブルから、パケットに対する処理内容を求めさせる請求項７から９いずれか一の制御装置。
【請求項１２】
前記通信ノードに、第１のテーブルによるパケット送信元の属性又は権限の判定結果に基づいて、受信パケットの所定の領域に、パケット送信元の属性又は権限を示す情報を書き込ませ、
前記第２のテーブルのマッチ条件として、受信パケットの所定の領域に書き込まれた前記パケット送信元の属性又は権限を示す情報を用いさせる請求項７から９いずれか一の制御装置。
【請求項１３】
受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるパケット処理部と、を備えた通信ノードと、
前記通信ノードの前記第１、第２のテーブルにエントリを設定する制御装置と、
を含む通信システム。
【請求項１４】
受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、を備える通信ノードが、
前記第１のテーブルを用いてパケット送信元の属性又は権限を判定するステップと、
前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めて受信パケットを処理するステップと、
を含むパケット処理方法。
【請求項１５】
受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、を備える通信ノードに搭載されたコンピュータが、
前記第１のテーブルを用いてパケット送信元の属性又は権限を判定する処理と、
前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めて受信パケットに前記処理内容を適用する処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１２−２２７９２２号（２０１２年１０月１５日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信ノード、制御装置、通信システム、パケット処理方法及びプログラムに関し、特に、制御装置からの制御に従い受信パケットを処理する通信ノード、制御装置、通信システム、パケット処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。【０００４】
特許文献１には、ロールベースアクセス制御（Ｒｏｌｅ−Ｂａｓｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、以下、「ＲＢＡＣ」）を行うアクセス制御装置の一例が開示されている。同文献のアクセス制御装置は、ユーザ毎に属性値が設定されるユーザ情報テーブルと、属性値の組み合わせを示すロールが設定されるロール情報テーブルと、コンテンツ毎にアクセス条件としてロールＩＤが設定されるアクセス制御テーブルとを記憶する。そして、同文献のアクセス制御装置は、ユーザ情報テーブルとロール情報テーブルとに基づいて、属性値がロールに対応するユーザのリストをロール毎にユーザリスト情報テーブルに設定する。コンテンツへのアクセス要求が発生した場合、アクセス制御部は、アクセス制御テーブルに基づいてアクセス条件のロールを特定し、特定したロールのユーザリストにアクセスユーザが含まれるかによりアクセス権限を判定する、と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１７８８５号公報
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年９月２５日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年９月２５日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。非特許文献１、２の技術を用いれば、経路上のオープンフロースイッチにロールを考慮したフローエントリを設定することで、特許文献１のようなロールベースのアクセス制御はもちろんのこと、経路制御まで実現可能となる。【０００８】
その一方で、非特許文献１、２の技術を用いた場合、あるロールを持つユーザがアクセス可能なリソースに対し、フローエントリを作成することになる。このため、ユーザ数やリソースの数が増えると、これらの組み合わせの分だけのフローエントリが必要となり、オープンフロースイッチやコントローラの負荷が増大してしまうという問題点がある。【０００９】
本発明は、上記オープンフローに代表される集中制御型のネットワークにおいて、ロールベースのアクセス制御を行う場合の制御装置（上記「コントローラ」に相当）や通信ノード（上記「オープンフロースイッチ」に相当）の負荷軽減に貢献できるようにした通信ノード、制御装置、通信システム、パケット処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の視点によれば、受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるパケット処理部と、を備えた通信ノードが提供される。【００１１】
第２の視点によれば、上記した通信ノードに対し、前記第１、第２のテーブルのエントリを設定する制御装置が提供される。【００１２】
第３の視点によれば、上記した通信ノードと制御装置とを含む通信システムが提供される。【００１３】
第４の視点によれば、受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、を備える通信ノードが、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定するステップと、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めて受信パケットを処理するステップと、を含むパケット処理方法が提供される。
本方法は、前記第１、第２のテーブルを参照して受信パケットを処理する通信ノードという、特定の機械に結びつけられている。【００１４】
第５の視点によれば、受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限を判定するための第１のテーブルと、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるための第２のテーブルと、を備える通信ノードに搭載されたコンピュータが、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定する処理と、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めて受信パケットに前記処理内容を適用する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１５】
本発明によれば、集中制御型のネットワークにおいて、ロールベースのアクセス制御を行う場合の、制御装置や通信ノードの負荷軽減に貢献することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信システムの構成を示す図である。
【図３】本発明の第１の実施形態の通信ノードの模式的構成を示す図である。
【図４】本発明の第１の実施形態の制御装置による通信ノードの第１、第２テーブルへのエントリ設定処理の概要を示す図である。
【図５】本発明の第１の実施形態の制御装置による通信ノードの第１、第２テーブルへのエントリ設定処理の具体例を示す図である。
【図６】本発明の第１の実施形態の通信ノードの動作を説明するための図である。
【図７】本発明の第１の実施形態の制御装置の動作（第２テーブルの設定）を説明するための流れ図である。
【図８】本発明の第１の実施形態の制御装置の動作（第１テーブルの設定）を説明するための流れ図である。
【図９】本発明の第２の実施形態の通信ノードの構成を示す図である。
【図１０】本発明の第２の実施形態の通信ノードの模式的構成を示す図である。
【図１１】本発明の第２の実施形態の通信ノードの動作を説明するための図である。
【図１２】本発明の第２の実施形態の制御装置の動作（第２テーブルの設定）を説明するための流れ図である。
【図１３】本発明の第２の実施形態の制御装置の動作（第１テーブルの設定）を説明するための流れ図である。
【発明を実施するための形態】
【００１７】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１８】
本発明は、その一実施形態において、図１に示すように、第１、第２のテーブル１１Ａ、１２Ａと、これら２つのテーブルを参照して受信パケットを処理するパケット処理部１３Ａを備える通信ノードにて実現できる。第１のテーブル１１Ａは、受信したパケットのヘッダ中の第１の情報と照合することにより、パケット送信元の属性又は権限（例えば、ＲＢＡＣの「ロール」）を判定するためのエントリを保持している。第２のテーブル１２Ａは、前記受信したパケットのヘッダ中の第２の情報と照合することにより、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めるためのエントリを保持している。パケット処理部１３Ａは、パケットを受信すると、前記第１のテーブルを用いてパケット送信元の属性又は権限を判定した後、前記第２のテーブルを用いて、前記第１のテーブルを用いて判定された属性又は権限を持つパケット送信元からのパケットに対する処理内容を求めて、その内容に従ってパケットの処理を行う。なお、図１では、第１のテーブルが１つ、第２のテーブルが複数の構成を示したが、これは一例であり、第１のテーブルが複数個であってもよいし、第２のテーブルが１つであってもよい。同様に、第１、第２のテーブルがそれぞれ複数あってもよい。
【００１９】
なお、前記ヘッダ中の第１の情報としては、送信元のアドレスに代表されるパケット送信元の属性又は権限（例えば、ＲＢＡＣのロール）を判定するための情報を好ましく用いることができる。この場合に、入力ポート情報を合わせて照合し、送信元のアドレスが正当なものであっても、その入力ポートがありえないポートである場合には、当該パケットを処理することなく廃棄するようにしてもよい。また、前記ヘッダ中の第２の情報としては、受信パケットの宛先アドレス等を用いることができる。
【００２０】
以上により、制御装置側にその都度判断を仰がなくとも、通信ノード単体で、ロールベースのアクセス制御を行うことが可能となる。また、通信ノードが保持するエントリの数も単純にユーザ数×リソース数とはならず、ユーザ数（第１のテーブルのエントリ数）＋（第２のテーブルのエントリ数＝ロール数×リソース数）と削減できるので、制御装置や通信ノードの負荷を軽減することも可能となっている。
【００２１】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の通信システムの構成を示す図である。図２を参照すると、クライアント４０とサーバ５０間の通信を実現する通信ノード１０と、通信ノード１０を制御する制御装置２０とを含む構成が示されている。また、図２の例では、クライアント４０からの要求に応じて認証処理を行い、その結果を制御装置２０に通知する認証サーバ３０が含まれている。
【００２２】
通信ノード１０は、第１テーブル１１と、第２テーブル１２と、パケット処理部１３と受信パケットから判別した送信元のロールＩＤを一時的に記憶するロール判定結果記憶領域が設けられた記憶部１４と、を備えている。通信ノード１０の各部の構成については後に詳細に説明する。なお、図２の例では、１つの通信ノード１０のみを示しているが、通信ノード１０は複数あってもよい。
【００２３】
制御装置２０は、認証サーバ３０からの認証結果の受信や、ポリシデータベース（以下「ポリシＤＢ」）の更新を契機として通信ノード１０に設定するエントリを生成するエントリ生成部２１と、生成したエントリを通信ノード１０に設定するエントリ設定部２２と、ユーザとロールの関係、ロールとアクセス権限の関係等を定めたテーブル等の通信ポリシを格納するポリシＤＢ２３とを備えている。エントリ生成部２１の詳細な動作については後に具体的を用いて詳細に説明する。
【００２４】
認証サーバ３０は、クライアント４０からの要求に応じて、クライアント４０を操作するユーザのユーザ認証を行なうサーバである。認証サーバ３０は、ユーザ認証の結果を制御装置２０に通知する。
【００２５】
クライアント４０は、ユーザが操作するパーソナルコンピュータ、モバイル端末、携帯電話端末等の情報処理装置であり、サーバ５０は、クライアント４０に対し、サービスを提供する各種のサーバである。なお、図２の例では、それぞれ１つのクライアント４０及びサーバ５０を示しているが、クライアント４０及びサーバ５０は複数あってもよい。
【００２６】
なお、図２に示した通信ノード１０及び制御装置２０の各部（処理手段）は、これらの装置に登載されたコンピュータに、そのハードウェアを用いて、後記する処理を実行させるコンピュータプログラムにより実現することもできる。
【００２７】
図３は、上記通信ノード１０の第１、第２テーブル１１、１２の模式的構成を示す図である。第１テーブル１１は、例えば、送信元アドレスを元に、ロールを特定するためのエントリを保持している。第２テーブル１２は、第１テーブル１１により判定されたロールと宛先アドレスの組み合わせから、パケット処理内容を特定するためのエントリを保持している。例えば、ある送信元Ａから宛先Ｂとするパケットを受信した場合、通信ノード１０のパケット処理部１３は、第１テーブル１１から送信元Ａのエントリを検索して、送信元Ａのロールを特定する。そして、パケット処理部１３は、第２テーブル１２から前記特定したロールと宛先の組み合わせを持つエントリを検索して、当該エントリに定められた処理（インストラクション）を実行する。
【００２８】
図４は、制御装置２０による通信ノードの第１、第２テーブルへのエントリ設定処理の概要を示す図である。図４の例では、制御装置のポリシＤＢ２３に、認証情報テーブルと、アクセス制御ポリシ情報テーブルとが格納されている。認証情報テーブルは、認証サーバ３０から通知されたＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスで特定された送信元の認証結果（ロール情報）を格納するテーブルである。アクセス制御ポリシ情報テーブルは、各ロール毎に宛先ＩＰアドレスと、アクセス可否（Ａｃｔｉｏｎ）を格納するテーブルである。
【００２９】
この場合、制御装置２０のエントリ生成部２１は、図４の上段の認証情報テーブルに新規エントリが追加されると、そのＩＰアドレスをマッチ条件とし、記憶部１４のロール判定結果記憶領域にロールＩＤを示すビットを立てる第１テーブル１１用のエントリを生成する。また、制御装置２０のエントリ生成部２１は、図４の上段のアクセス制御ポリシ情報テーブルが更新されると、記憶部１４のロール判定結果記憶領域のロールを示すビット情報とアクセス可能な宛先ＩＰアドレスをマッチ条件とし、処理内容を特定する第２テーブル１２用のエントリを生成する。なお、ロールを示すビット情報は、非特許文献２においてマッチ条件として使用できるとされている「ｍｅｔａｄａｔａ」として取り扱うことができる（非特許文献２の「４．１．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」参照）。
【００３０】
制御装置２０のエントリ設定部２２は、上記のようにして生成されたエントリを通信ノード１０の第１テーブル１１、第２テーブル１２にそれぞれ設定する。図５は、図４に示した動作の具体例を示す図である。図５の例では、図５の上段の認証情報テーブルのエントリ（ＩＰアドレスが１９２．１６８．１００．１のユーザはロールＩＤ＝ｒｏｌｅ＿０００１を持つ）から、マッチ条件として送信元ＩＰアドレスに１９２．１６８．１００．１が設定され、このマッチ条件に適合する場合に記憶部１４のロール判定結果記憶領域にロールＩＤ＝ｒｏｌｅ＿０００１を示すビットを立てるようにしたエントリが生成されている。同様に、図５の上段のアクセス制御ポリシ情報テーブルのエントリ（ロールＩＤ＝ｒｏｌｅ＿０００１は、ＩＰアドレス＝１９２．１６８．０．１の資源にアクセス権を持つ）から、マッチ条件としてロールＩＤ＝ｒｏｌｅ＿０００１と、宛先ＩＰアドレス＝１９２．１６８．０．１が設定され、処理内容として、ａｌｌｏｗ（ポート＃Ｎから転送）を設定したエントリが生成されている。ここで、ポート＃Ｎは、通信ノードから、宛先ＩＰアドレス＝１９２．１６８．０．１にパケットを送信するための経路上の次の転送先に接続されたポートである。
【００３１】
なお、図５のｒｏｌｅ＿０００２のように、あるロールＩＤからある宛先へのアクセスを禁止したい場合、ロールＩＤと宛先に対応するエントリのアクセス可否フィールドにＤｒｏｐ（パケット廃棄）を設定したエントリを作成、設定する。また、前記エントリの作成に代えて、そのようなエントリは作成せず、ロールＩＤと宛先に対応するエントリが無い場合には受信パケットを廃棄する設定を行うことでもよい。
【００３２】
以上のようにして、第１のテーブル１１及び第２のテーブル１２にエントリが設定されると、通信ノード１０は、送信元ＩＰアドレス＝１９２．１６８．１００．１、宛先ＩＰアドレス＝１９２．１６８．０．１とするパケットを受信すると、第１テーブル１１に基づいて、ロールＩＤを判別し、第２テーブルに基づきロールＩＤと宛先の組み合わせからアクセス可否を判断して、パケット転送を行う。同様に、通信ノード１０は、送信元ＩＰアドレス＝１９２．１６８．１００．１０、宛先ＩＰアドレス＝１９２．１６８．１００．０／２４とするパケットを受信すると、第１テーブル１１に基づいて、ロールＩＤを判別し、第２テーブルに基づきロールＩＤと宛先の組み合わせからアクセス可否を判断して、パケットを転送しないと判断する。
【００３３】
以上が本実施形態の基本動作であるが、ＲＢＡＣにおいて、一人のユーザが複数のロールを付与されていることがある。図６は、そのようなケースを想定した通信ノード１０の動作を説明するための図である。通信ノード１０のパケット処理部１３は、パケットを受信すると、第１テーブル１１を参照して、送信元ＩＰアドレスを元に、ユーザが有しているロールを順次判断していく。ここで、該当するロールを有すると判断された場合、記憶部１４のロール判定結果記憶領域１４１にロールＩＤを示すビットが立てられる。
【００３４】
なお、図６の例では１つの第１テーブルを用いてロールの有無を判定しているが、第１のテーブルを分けて、ロール毎にテーブルを設けてもよい。非特許文献１のオープンフローの仕様では、１つのテーブルから選択できるのは１つのエントリであるので、このようにすれば、複数のテーブルを順次参照していき、ユーザに付与されているロールを記録することができる。
【００３５】
一連のロールの有無の判断が完了すると、通信ノード１０のパケット処理部１３は、第２テーブル１２から、記憶部１４のロール判定結果記憶領域１４１の内容（ユーザが有するロール）と、受信パケットの宛先ＩＰアドレスとに適合するエントリを検索する。そして、該当するエントリが見つかった場合には、そのエントリに定められている処理内容（アクション）を実行する。例えば、第１テーブル１１によるロール判定の結果、送信元のユーザがロールＡ、ロールＢと有している場合には、第２テーブルによる判定の結果、ロールＡ、ロールＢのいずれかで該当の宛先へのアクセスが許可されていれば、パケット転送が行われることになる。一方、第１テーブル１１によるロール判定の結果、送信元のユーザがロールを有していない（認証サーバ３０に認証されていない）、又は、第２テーブルによる判定の結果、当該ユーザが有しているロールで該当の宛先へのアクセスが許可されていない場合、受信パケットは廃棄されることになる。また、ここでは、受信パケットを破棄することとしているが、破棄ではなく、制御装置２０に対し処理を問い合わせるようにしてもよい。
【００３６】
次に、制御装置２０による上記第１テーブル１１、第２テーブル１２の設定処理について説明する。図７は、本発明の第１の実施形態の制御装置の動作（第２テーブルの初期設定）を説明するための流れ図である。図７を参照すると、まず、制御装置２０は、ロール判定結果記憶領域１４１のどのビットがどのロールを表すかを決定する（ステップＳ００１）。より具体的には、制御装置２０がロールの数に応じたロール判定結果記憶領域１４１を確保し、その割当を決定する。
【００３７】
次に、制御装置２０は、ポリシＤＢ２３から、第２テーブルへのエントリ設定が行われていないロールを１つ選択する（ステップＳ００２）。なお、すべてのロールの処理が完了している場合、制御装置２０は、以降の処理を行わず、終了する。
【００３８】
次に、制御装置２０は、ポリシＤＢ２３から、前記選択したロールに対応するアクセス制御ポリシ情報テーブル（図４上段参照）を読み込み、当該ロールが許可されているＩＰアドレスの一覧を取得する（ステップＳ００３）。
【００３９】
次に、制御装置２０は、ＩＰアドレスの一覧を用いて、以下のエントリを第２テーブルに設定する（ステップＳ００４）。なお、ここで、アクションとして設定する転送先のポートは、制御装置２０が、通信ノード１０から取得した情報に基づいてトポロジを構築し、経路計算して求めることとしてもよいし、予め計算された経路情報を用いてもよい。
マッチ条件：ロールを示すフラグ  ＆  宛先ＩＰアドレス＝許可ＩＰアドレス
アクション：指定ポートから転送
【００４０】
以上の処理をすべてのロールについて行うことで、第２テーブルの設定が完了する。なお、上記の例では通信を許可する場合のエントリの例を示したが、アクションをパケット破棄としたエントリを設定することで、通信を禁止する制御を行うことができる。
【００４１】
図８は、本発明の第１の実施形態の制御装置の動作（第１テーブルの設定）を説明するための流れ図である。図８を参照すると、まず、制御装置２０は、認証サーバ３０からのユーザ認証結果の通知を待つ（ステップＳ１０１）。
【００４２】
認証サーバ３０からユーザ認証結果を受信すると、制御装置２０は、ユーザ認証結果から、クライアントのＩＰアドレスとユーザに割り当てられたロールを取得する（ステップＳ１０２）。
【００４３】
次に、制御装置２０は、クライアントのＩＰアドレスとユーザに割り当てられたロールを用いて、以下のエントリを第１テーブルに設定する（ステップＳ１０３）。
マッチ条件：送信元ＩＰアドレス＝クライアントのＩＰアドレス
アクション：ロール判定結果記憶領域１４１のロールに対応するビットを立てる
【００４４】
以上のように、第１テーブル１１、第２テーブル１２に必要な設定を行っておくことで、通信ノード単体で、ロールベースのアクセス制御を行うことが可能となる。すなわち、制御装置２０が、通信ノードからの照会を受けてその都度ロールベースのアクセス可否の判定を行って通信ノードにエントリを設定しなくとも、同等の処理が通信ノードで行われることになる。
【００４５】
なお、上記の説明では、認証サーバ３０からのユーザの認証結果の通知をトリガとして、第１のテーブルにエントリを設定したが、端末のＩＰアドレスとロールとの対応関係が分かっている場合には、バッチやネットワーク管理者の指示等をトリガとして、第１のテーブルにロールを判別するためのエントリを設定してもよい。
【００４６】
また、上記の説明では、ビットを立てることによってロールを記録したが、ロールを表す文字や数字を記録する方式も採用可能である。例えば、ロールＡは１、ロールＢは２と決めておいて、この数字を記憶領域に書き込んでおいてもよい。また、この場合、ロールＡとロールＢの兼務は３、のように、兼務を表す数字を決めておいてもよい。
【００４７】
［第２の実施形態］
以上、本発明の第１の実施形態では、第２テーブルは一つのテーブルであるものとして説明したが、例えば、図９に示すように、ロール毎に複数の第２テーブル１２−１〜１２−Ｎ（但し、ロール数はＮとする）を用意することもできる。このようにすれば、ロールの権限に変更が生じた場合等の第２テーブルの管理が容易化されるほか、第２テーブル１２の全エントリではなく、第１テーブル１１により判定されたロールに対応する第２テーブルを参照すれば足りるため、通信ノード１０Ｂにおけるエントリ検索処理を高速化することができる。なお、第１テーブル１１から第２テーブル１２を参照する仕組みとしては、次の第２の実施形態でも用いる非特許文献２のオープンフロースイッチがサポートする「ｇｏｔｏ」インストラクションを用いることができる（非特許文献２の「４．１．１  Ｐｉｐｅｌｉｎｅ  Ｐｒｏｃｅｓｓｉｎｇ」参照）。
【００４８】
続いて、非特許文献２の「ｇｏｔｏ」インストラクションと同様の仕組みを用いることを前提とした構成について図面を参照して詳細に説明する。図１０は、本発明の第２の実施形態の制御装置２０Ｂ及び通信ノード１０Ｂの模式的構成を示す図である。図３に示した第１の実施形態と異なる点は、第１テーブル１１においてロールを特定すると同時に参照する第２テーブルを特定している点、第２テーブル１２が複数（Ｚ個）用意されている点、第２テーブルのマッチ条件からロールが省略されている点、これらに伴う制御装置のエントリ生成部２１Ｂの動作である。その他、基本的な構成は第１の実施形態と同様であるので、以下、第１の実施形態との相違点を中心に説明する。
【００４９】
図１１は、第２の実施形態の通信ノード１０Ｂの動作を説明するための図である。通信ノード１０Ｂのパケット処理部１３は、パケットを受信すると、第１テーブル１１から、送信元ＩＰアドレスがマッチ条件として設定されたＩＰアドレスと一致するエントリを検索する。前記検索の結果、マッチ条件と一致するエントリが見つかった場合、通信ノード１０Ｂのパケット処理部１３は、以降の第１テーブル１１の検索を中止し、当該エントリに記述されているｇｏｔｏインストラクションにて指定された第２テーブル（１２−Ａ〜１２−Ｚのいずれか）を検索先として決定する。
【００５０】
次に、通信ノード１０Ｂのパケット処理部１３は、前記決定した第２テーブル（１２−Ａ〜１２−Ｚのいずれか）から、受信パケットの宛先ＩＰアドレスと一致するマッチ条件を持つエントリを検索する。前記検索の結果、見つかったエントリに「許可（Ａｌｌｏｗ）」が設定されている場合、通信ノード１０Ｂのパケット処理部１３は、受信パケットを指定されたポートから転送する。一方、前記検索の結果、該当するエントリが見つからなかった場合や、見つかったエントリに「禁止（ｄｅｎｙ）」が設定されている場合、通信ノード１０Ｂのパケット処理部１３は、受信パケットを廃棄する。
【００５１】
また、第２のテーブルに、エントリが見つからなかった場合は、受信パケットを破棄するほか、制御装置２０に対し、処理を問い合わせるようにしてもよい。具体的には、第２のテーブルの最後（優先順位を一番低くして）に、条件無しで、破棄もしくは制御装置に問い合わせるエントリを追加すればよい。また、エントリが見つからなかったとき用のテーブルを作成し、第２のテーブルの最後（優先度最低で）に、ｇｏｔｏインストラクションで、そのテーブルへジャンプするようにしてもよい。
【００５２】
次に、本実施形態における第１テーブル１１Ｂ、第２テーブル１２Ａ〜１２Ｚの設定処理について説明する。図１２は、本発明の第２の実施形態の制御装置の動作（第２テーブルの初期設定）を説明するための流れ図である。図１２を参照すると、まず、制御装置２０Ｂは、ポリシＤＢ２３から、第２テーブルへのエントリ設定が行われていないロールを１つ選択する（ステップＳ２０１）。なお、すべてのロールの処理が完了している場合、制御装置２０Ｂは、以降の処理を行わず、終了する。
【００５３】
次に、制御装置２０Ｂは、ポリシＤＢ２３から、前記選択したロールに対応するアクセス制御ポリシ情報テーブル（図４上段参照）を読み込み、当該ロールが許可されているＩＰアドレスの一覧を取得する（ステップＳ２０２）。
【００５４】
次に、制御装置２０Ｂは、通信ノード１０Ｂに、前記選択したロール用の第２テーブルを作成する（ステップＳ２０３）。
【００５５】
次に、制御装置２０Ｂは、ＩＰアドレスの一覧を用いて、以下のエントリを第２テーブルに設定する（ステップＳ２０４）。なお、本実施形態においても、アクションとして設定する転送先のポートは、制御装置２０Ｂが、通信ノード１０Ｂから取得した情報に基づいてトポロジを構築し、経路計算して求めることとしてもよいし、予め計算された経路情報を用いてもよい。
マッチ条件：宛先ＩＰアドレス＝許可ＩＰアドレス
アクション：指定ポートから転送
【００５６】
以上の処理をすべてのロール（Ｚ種）について行うことで、Ｚ個の第２テーブルの設定が完了する。なお、上記の例では通信を許可する場合のエントリの例を示したが、アクションをパケット破棄としたエントリを設定することで、通信を禁止する制御を行うことができる。
【００５７】
図１３は、本発明の第２の実施形態の制御装置２０Ｂの動作（第１テーブルの設定）を説明するための流れ図である。図１３を参照すると、まず、制御装置２０Ｂは、認証サーバ３０からのユーザ認証結果の通知を待つ（ステップＳ１０１）。
【００５８】
認証サーバ３０からユーザ認証結果を受信すると、制御装置２０Ｂは、ユーザ認証結果から、クライアントのＩＰアドレスとユーザに割り当てられたロールを取得する（ステップＳ１０２）。ここまでは、図８に示した第１の実施形態の制御装置２０の動作と同様である。
【００５９】
次に、制御装置２０Ｂは、ステップＳ１０２で特定したロールに対応する第２テーブルを検索する（ステップＳ３０３）。
【００６０】
次に、制御装置２０Ｂは、クライアントのＩＰアドレスと前記検索した第２テーブルを用いて、以下のエントリを第１テーブルに設定する（ステップＳ３０４）。
マッチ条件：送信元ＩＰアドレス＝クライアントのＩＰアドレス
アクション：検索した第２テーブルへｇｏｔｏ
【００６１】
以上のように、複数の第２テーブルを作成しておくことで、ロールの権限に変更が生じた場合等の第２テーブルの管理が容易化される。また、ほか、第２テーブル１２の全エントリではなく、第１テーブル１１により判定されたロールに対応する第２テーブルを参照すれば足りるため、通信ノード１０Ｂにおけるエントリ検索処理を高速化することができる。
【００６２】
なお、上記の説明では、認証サーバ３０からのユーザの認証結果の通知をトリガとして、第１のテーブルにエントリを設定したが、端末のＩＰアドレスとロールとの対応関係が分かっている場合には、バッチやネットワーク管理者の指示等をトリガとして、第１のテーブルに、ロールに応じて参照する第２テーブルへのジャンプを指示するエントリを設定してもよい。
【００６３】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００６４】
また、上記した実施形態では、ＩＰアドレスを用いてロールと、ロールから宛先のアクセス可否を判定するものとして説明したが、当然にＩＰアドレス以外の情報を用いることも可能である。例えば、ＩＰアドレスに代えて、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｏｒｏｌ）アドレスを用いてもよいし、その他入力ポート情報をマッチ条件に設定することができる。
【００６５】
また、上記した第１の実施形態では、通信ノード１０の記憶部１４に、ロール判定結果記憶領域を設けてロール判定結果を保持させるものとして説明したが、その他の形態も採用可能である。例えば、非特許文献２のオープンフローの仕様では、インストラクションとして、ヘッダ書換えアクションを設定可能であるため、第１テーブルによる判定の結果に基づいて、パケットヘッダの所定の領域にロール情報（属性情報や権限情報でも良い）等を書き込む構成も採用可能である。この場合、第２テーブルのマッチ条件として、前記所定の領域に書き込まれたロール情報（属性情報や権限情報でも良い）を設定すればよい。
【００６６】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信ノード参照）
［第２の形態］
第１の形態の通信ノードにおいて、
前記受信したパケットのヘッダ中の第１の情報は、パケットの送信元に関する情報である通信ノード。
［第３の形態］
第１又は第２の形態の通信ノードにおいて、
前記受信したパケットのヘッダ中の第２の情報は、パケットの宛先に関する情報である通信ノード。
［第４の形態］
第１〜第３いずれか一の形態の通信ノードにおいて、
前記第１のテーブルには、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元に付与するロール情報と、を対応付けたエントリが格納され、
前記第２のテーブルには、前記ロール情報及び前記受信したパケットのヘッダ中の第２の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合するパケット送信元からのパケットに対する処理内容とを対応付けたエントリが格納されている通信ノード。
［第５の形態］
第１〜第３いずれか一の形態の通信ノードにおいて、
ロール毎に分割された第２のテーブルを有し、
前記第１のテーブルには、受信したパケットのヘッダ中の第１の情報と照合する内容を指定したマッチ条件と、該マッチ条件に適合する場合に参照すべき第２のテーブル情報と、を対応付けたエントリが格納され、
前記パケット処理部は、
前記第１のテーブルから、受信したパケットのヘッダ中の第１の情報に適合するエントリを検索し、
前記第１の情報に適合するマッチ条件を持つエントリの第２のテーブル情報に対応する第２のテーブルを選択して、パケットに対する処理内容を求める通信ノード。
［第６の形態］
第１〜第３いずれか一の形態の通信ノードにおいて、
前記第１のテーブルによるパケット送信元の属性又は権限の判定結果に基づいて、受信パケットの所定の領域に、パケット送信元の属性又は権限を示す情報を書き込み、
前記第２のテーブルのマッチ条件として、受信パケットの所定の領域に書き込まれた前記パケット送信元の属性又は権限を示す情報を用いる通信ノード。
［第７の形態］
（上記第２の視点による制御装置参照）
［第８の形態］
（上記第３の視点による通信システム参照）
［第９の形態］
（上記第４の視点によるパケット処理方法参照）
［第１０の形態］
（上記第５の視点によるプログラム参照）
なお、上記第７〜第１０の形態は、第１の形態と同様に、第２〜第６の形態に展開することが可能である。
【００６７】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００６８】
１０、１０Ａ、１０Ｂ  通信ノード
１１、１１Ａ、１１Ｂ  第１テーブル
１２、１２Ａ、１２−１〜１２−Ｎ、１２−Ａ〜１２〜Ｚ  第２テーブル
１３、１３Ａ、１３Ｂ  パケット処理部
１４  記憶部
２０、２０Ｂ  制御装置
２１、２１Ｂ  エントリ生成部
２２  エントリ設定部
２３  ポリシＤＢ
３０  認証サーバ
４０  クライアント
５０  サーバ
１４１  ロール判定結果記憶領域
【図１】
2014061583.tif 000003
【図２】
2014061583.tif 000004
【図３】
2014061583.tif 000005
【図４】
2014061583.tif 000006
【図５】
2014061583.tif 000007
【図６】
2014061583.tif 000008
【図７】
2014061583.tif 000009
【図８】
2014061583.tif 000010
【図９】
2014061583.tif 000011
【図１０】
2014061583.tif 000012
【図１１】
2014061583.tif 000013
【図１２】
2014061583.tif 000014
【図１３】
2014061583.tif 000015
【国際調査報告】
2014061583.tif 000016
2014061583.tif 000017
2014061583.tif 000018
2014061583.tif 000019