(57)【特許請求の範囲】
【請求項１】
入力されたパケットに含まれる情報から所定の区分けに属する情報として選択された情報と、当該区分けに属する情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する複数の比較部各々について、コードと当該コードの指定を受け付けた場合に当該比較部がパケットに含まれる情報の内どの部位を比較対象として選択すべきかを示す区分けとの対応づけを複数記憶するコード記憶部と、
コードの指定を受け付けた場合に、後段の処理を行う比較部について前記コード記憶部にて当該コードに対応づけて記憶されている区分けに属する情報を、入力されたパケットに含まれる情報から選択する情報として設定し、パケットの入力を受け付けた場合に、当該パケットに含まれる情報から当該区分けに属する情報を選択する選択部各々と、
前段の処理を行う前記選択部によって選択された情報と、当該情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する比較部各々と、
前記比較部全てによって比較結果各々が出力されると、入力されたパケットが、所定の区分けに属する情報と比較値とが一致するか否かを示す一致関係を区分け各々に関する論理積で設定した複数のルールの内、いずれのルールに該当するパケットであるかを検索し、検索したルールを識別する識別情報を出力するルール検索部と、
前記ルール検索部によって出力された識別情報に基づいて、前記入力されたパケットの転送を制御する転送制御部と、
を備え、前記比較部各々は、当該比較部において出力する比較結果を反転させる指示を受け付けた場合に、前記選択された情報と前記比較値との比較結果が一致するとの比較結果を一致しないとの比較結果に反転してから出力し、前記選択された情報と前記比較値との比較結果が一致しないとの比較結果を一致するとの比較結果に反転してから出力することを特徴とするパケット転送制御装置。
【請求項２】
前記パケット転送制御装置は、所定の区分けに属する情報と比較値とが一致することを示す肯定の一致関係が複数の区分けに関して論理積の関係にあり、かつ、当該論理積の関係全体を否定する否定論理積を前記ルールとして設定すべき場合に、当該複数の区分け各々が１のビットである１つのルールを、前記ルールとして設定するものであって、
前記比較部全てによって出力された比較結果各々について複数論理反転させる指示を受け付けた場合に、当該比較結果各々が出力されると、出力された当該比較結果各々の前記複数の区分け全てが１のビットである場合にのみ当該複数の区分け全てが０のビットであるビット列を出力し、他の場合には当該複数の区分け全てが１のビットであるビット列を出力する複数論理反転部をさらに備え、
前記ルール検索部は、前記複数論理反転部によって出力されたビット列に基づいて前記ルールを検索し、前記識別情報を出力することを特徴とする請求項１に記載のパケット転送制御装置。
【請求項３】
コードの指定を受け付けた場合に、入力されたパケットに含まれる情報から所定の区分けに属する情報として選択された情報と当該区分けに属する情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する複数の比較工程各々について、コードと当該コードの指定を受け付けた場合に当該比較工程がパケットに含まれる情報の内どの部位を比較対象として選択すべきかを示す区分けとの対応づけを複数記憶するコード記憶部から、後段の処理を行う比較工程について当該コードに対応づけて記憶されている区分けに属する情報を検索し、検索した情報を、入力されたパケットに含まれる情報から選択する情報として設定し、パケットの入力を受け付けた場合に、当該パケットに含まれる情報から当該区分けに属する情報を選択する選択工程各々と、
前段の処理を行う前記選択工程によって選択された情報と、当該情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する比較工程各々と、
前記比較工程全てによって比較結果各々が出力されると、入力されたパケットが、所定の区分けに属する情報と比較値とが一致するか否かを示す一致関係を区分け各々に関する論理積で設定した複数のルールの内、いずれのルールに該当するパケットであるかを検索し、検索したルールを識別する識別情報を出力するルール検索工程と、
前記ルール検索工程によって出力された識別情報に基づいて、前記入力されたパケットの転送を制御する転送制御工程と、
を含み、前記比較工程各々は、当該比較工程において出力する比較結果を反転させる指示を受け付けた場合に、前記選択された情報と前記比較値との比較結果が一致するとの比較結果を一致しないとの比較結果に反転してから出力し、前記選択された情報と前記比較値との比較結果が一致しないとの比較結果を一致するとの比較結果に反転してから出力することを特徴とするパケット転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送制御装置およびパケット転送制御方法に関する。
【背景技術】
【０００２】
ネットワーク機器や、ネットワークに接続するコンピュータなどの装置は、一般的に、ネットワーク経由で行われる不正アクセスを防止することなどを目的として、アクセス制御リスト（ＡＣＬ：Access  Control  List）を設定する（例えば、特許文献１など）。また、ネットワーク機器やコンピュータなどの装置は、通信内容に応じてパケットの転送先を変更することなどを目的として、アクセス制御リストを設定する。
【０００３】
例えば、図１４に示すように、ネットワーク機器であるスイッチ（Switch）は、ＬＡＮ（Local  Area  Network）に接続する受信ポート側にアクセス制御リストを設定する。この時、スイッチは、パターンに従って記述されたルールをアクセス制御リストに設定している。ここで、パターンとは、パケットに含まれる情報の内どの情報を比較対象として照合を行うかといった選択や、選択した比較対象をどのように組み合わせて照合を行うかといった組合せなどのことである。そして、スイッチは、スイッチに入力されたパケットに含まれる情報とルールとを比較することで、不正アクセスを防止したり、転送先のサーバ（Server）を変更する。なお、図１４は、アクセス制御リストを説明するための図である。
【０００４】
装置にアクセス制御リストを実装する手法には、ソフトウェアによって実装する手法とハードウェアによって実装する手法とがあり、ハードウェアによって実装する手法の方が、高速な処理に適している。また、ハードウェアによって実装する手法には、図１５に示すように、連想メモリ（ＣＡＭ：Content  Addressable  Memory）による方式と、フリップフロップ（ＦＦ：Flip−Flop）回路による方式とがある。なお、図１５は、従来技術を説明するための図である。
【０００５】
【特許文献１】特開平１１−８８４３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の技術では、回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現することができないという課題があった。すなわち、アクセス制御リストを設定する装置は、比較対象が多様であり、かつ、比較対象の組合せが複雑であるパターンによるアクセス制御を、高速に処理しなければならない。なぜならば、比較対象が限定され、また、比較対象の組合せが限定されるパターンによるアクセス制御では、アクセス制御の機能が制限されたり、上位プロセッサの処理が必要になるからである。
【０００７】
この点、連想メモリによる方式は、比較対象がメモリの幅で限定され、かつ、比較対象の組合せもメモリの幅で限定される（図１５の（Ａ）を参照）。このため、連想メモリによる方式は、多様かつ複雑なパターンによるアクセス制御を実現することができない。一方、フリップフロップ回路による方式は、比較対象や比較対象の組合せがメモリの幅で限定されることはない。しかしながら、比較対象の多様化は、比較器の数の拡大を招き、比較器の数の拡大は、ルールを記憶する記憶部の拡大を招く（図１５の（Ｂ）を参照）。このため、フリップフロップ回路による方式は、多様かつ複雑なパターンによるアクセス制御を実現することはできても、回路規模の抑制を実現することができない。
【０００８】
そこで、本発明は、上記した従来の技術の課題を解決するためになされたものであり、回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現することが可能なパケット転送制御装置およびパケット転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記した課題を解決し、目的を達成するため、複数の比較部各々について、コードと当該コードの指定を受け付けた場合に当該比較部が比較すべき区分けとの対応づけを複数記憶するコード記憶部と、コードの指定を受け付けた場合に、後段の処理を行う比較部について前記コード記憶部にて当該コードに対応づけて記憶されている区分けに属する情報を、入力されたパケットに含まれる情報から選択する情報として設定し、パケットの入力を受け付けた場合に、当該パケットに含まれる情報から当該区分けに属する情報を選択する選択部各々と、前段の処理を行う前記選択部によって選択された情報と、当該情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する比較部各々と、前記比較部全てによって比較結果各々が出力されると、入力されたパケットが、所定の区分けに属する情報と比較値とが一致するか否かを示す一致関係を区分け各々に関する論理積で設定した複数のルールの内、いずれのルールに該当するパケットであるかを検索し、検索したルールを識別する識別情報を出力するルール検索部と、前記ルール検索部によって出力された識別情報に基づいて、前記パケットの転送を制御する転送制御部と、を備える。
【発明の効果】
【００１０】
回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現することが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、本発明に係るパケット転送制御装置およびパケット転送制御方法の実施例を詳細に説明する。なお、以下では、まず、実施例１に係るパケット転送制御装置の概要を説明し、続いて、実施例１に係るパケット転送制御装置の構成、処理の手順および効果を説明する。その後、他の実施例として、実施例２および実施例３に係るパケット転送制御装置を説明する。
【実施例１】
【００１２】
［実施例１に係るパケット転送制御装置の概要］
まず、図１を用いて、実施例１に係るパケット転送制御装置の概要を説明する。図１は、実施例１に係るパケット転送制御装置の概要を説明するための図である。
【００１３】
一般的に、パケット転送制御装置は、ルールテーブルとアクションリスト（図示を省略）とを予め記憶している。ルールテーブルとは、例えば、「送信先アドレスが『192.168.170.0』であるパケット」というルールを設定したものである。また、アクションリストとは、例えば、「パケットを転送せずに廃棄する」というアクションを設定したものである。パケット転送制御装置は、ルールテーブルとアクションリストとを対応づけて記憶することで、例えば、「入力されたパケットの送信アドレスが『192.168.170.0』である場合には、パケットを転送せずに廃棄する」というポリシーを記憶することになる。
【００１４】
簡単に説明すると、まず、パケット転送制御装置は、パケットの入力を受け付けると、パケットから情報を抽出し、抽出した情報を用いてルールを検索する。例えば、パケット転送制御装置は、パケットの入力を受け付けると、パケットから送信先アドレス情報『192.168.170.0』を抽出し、抽出した送信先アドレス情報『192.168.170.0』を用いてルールを検索する。そして、パケット転送制御装置は、検索したルールに対応づけて記憶されているアクションに従って、パケットの転送を制御する。例えば、パケット転送制御装置は、アクション「パケットを転送せずに廃棄する」を検索し、パケットを廃棄する。
【００１５】
ところで、パケット転送制御装置は、上記した一連の処理を高速に処理しなければならない。具体的には、パケット転送制御装置は、パケットから情報を抽出し、抽出した情報を用いてルールを検索する処理を、高速に処理しなければならない。このため、実施例１に係るパケット転送制御装置は、図１に示すように、パケットから情報を抽出し、抽出した情報を用いてルールを検索する処理を、ハードウェアによって実装している。
【００１６】
まず、図１に示すように、実施例１に係るパケット転送制御装置は、ルール番号（１〜ｄ）で識別されるルールを予め記憶している。また、実施例１におけるルールは、図１に示すように、『Ｍ』、『Ｕ』および『Ｄ．Ｃ』の３値で設定される。『Ｍ』は、『Match』のことであり、『一致』を意味する。『Ｕ』は、『Unmatch』のことであり、『不一致』を意味する。『Ｄ．Ｃ』は、『Don’t  Care』のことであり、『無視』を意味する。実施例１に係るパケット転送制御装置は、２ビットを用いて３値を記述することで、ルールを設定する。また、パケット転送制御装置は、３値の論理積でルールを設定する。
【００１７】
次に、図１に示すように、実施例１に係るパケット転送制御装置は、ルールに設定されている３値各々を、比較器各々から出力された比較結果各々と比較することで、ルールを検索する。ここで、比較器各々は、入力されたパケットから所定の区分けに属する情報として選択された情報と、情報の比較対象として設定された比較値とが一致するか否かの比較結果（『Ｍ』もしくは『Ｕ』）を出力するものである。言い換えると、ルールは、比較器各々に設定された比較値各々の選択や組合せのパターンに従って記述されるものである。
【００１８】
そうであるとすると、実施例１に係るパケット転送制御装置において、多様かつ複雑なパターンによるアクセス制御をどのように実現するかという点は、比較器各々をどのように実装するかという点に関連してくる。ここで、多様かつ複雑なパターンによるアクセス制御を実現するとは、パケットに含まれる情報の内どの情報を比較対象として照合を行うかといった選択や、選択した比較対象をどのように組み合わせて照合を行うかといった組合せなどが、多様かつ複雑な場合であっても、パターンに従ったルールを記述できることを意味する。
【００１９】
ここで、例えば、パケット転送制御装置は、比較器の数を拡大する手法によって、多様かつ複雑なパターンによるアクセス制御を実現することも可能である。比較器の数を拡大する手法によれば、比較対象の選択を多様にすることができ、また、比較対象の組合せも複雑にすることができるからである。しかしながら、比較器の数の拡大は、回路規模を拡大することに他ならない。結局、比較器の数を拡大する手法では、多様かつ複雑なパターンによるアクセス制御を実現することはできても、回路規模の抑制を実現することはできない。
【００２０】
このため、実施例１に係るパケット転送制御装置は、図１に示すように、比較器の前段にセレクタを備えることで、回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現する。
【００２１】
具体的に説明すると、まず、実施例１に係るパケット転送制御装置は、複数の比較器各々について、コードと、コードの指定を受け付けた場合に比較器が比較すべき区分けとの対応づけを、複数記憶している（図１において図示を省略）。このため、セレクタ各々は、コードの指定を受け付けた場合に、指定を受け付けたコードに対応づけて後段の処理を行う比較器について記憶されている区分けに属する情報を、入力されたパケットに含まれる情報から選択する情報として設定する。そして、セレクタ各々は、パケットの入力を受け付けた場合に、パケットに含まれる情報から、設定した区分けに属する情報を選択する。
【００２２】
例えば、図１に示すように、セレクタ１は、コード１の指定を受け付けた場合に、コード１に対応づけて比較器１について記憶されている区分けに属する情報を、入力されたパケットに含まれる情報（Ｗ1、Ｗ2、Ｗ3、・・・、Ｗ1+k）から選択する情報として設定する。そして、セレクタ１は、設定した区分けに属する情報を選択し、検索ワード１を出力する。
【００２３】
一方、比較器各々は、前段の処理を行うセレクタによって選択された情報と、情報の比較対象として設定された比較値とが一致するか否かの比較結果を出力する。例えば、図１に示すように、比較器１は、セレクタ１によって選択された検索ワード１と、比較値１とが一致するか否かの比較結果として、キー１（『Ｍ』もしくは『Ｕ』）を出力する。
【００２４】
その後、実施例１に係るパケット転送制御装置は、比較器全てによって比較結果各々が出力されると、入力されたパケットが、複数のルールの内いずれのルールに該当するパケットであるかを検索し、検索したルールを識別するルール番号を出力する。
【００２５】
このように、実施例１に係るパケット転送制御装置は、比較器の前段にセレクタを備え、コードの指定を受け付けるだけで、セレクタが選択する情報を変更し、比較器が比較する比較対象を変更する。言い換えると、実施例１に係るパケット転送制御装置は、コードの指定を受け付けるだけで、単一の比較器によってコード数分の複数の比較対象と比較することを可能にし、比較対象が多様であるパターンによるアクセス制御を実現する。また、実施例１に係るパケット転送制御装置は、このような比較器を並列して備えることで、比較対象の組合せが複雑であるパターンによるアクセス制御を実現する。こうして、実施例１に係るパケット転送制御装置は、回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現するのである。
【００２６】
［実施例１に係るパケット転送制御装置の構成］
次に、図２および図３を用いて、実施例１に係るパケット転送制御装置の構成を説明する。図２は、実施例１に係るパケット転送制御装置の構成を示すブロック図であり、図３は、実施例１におけるコード記憶部を説明するための図である。
【００２７】
パケット転送制御装置１０は、図２に示すように、特に、受信ポート１１と、送信ポート１２と、アクセス制御リスト部１００と、スイッチ部２００とを備える。
【００２８】
受信ポート１１は、パケットを受信する。送信ポート１２は、パケットを送信する。スイッチ部２００は、アクセス制御リスト部１００からアクションを伝達されると、伝達されたアクションに従ってパケットの転送を制御し、送信ポート１２に送出したり、廃棄する。
【００２９】
アクセス制御リスト部１００は、図２に示すように、特に、パケット情報抽出部１１０と、キー生成部１２０と、ルール検索部１３０と、アクション検索部１４０とを備える。
【００３０】
パケット情報抽出部１１０は、パケットに含まれる情報を抽出する。具体的には、パケット情報抽出部１１０は、受信ポート１１からパケットの入力を受け付けると、パケットから、パケットに含まれる情報を抽出し、キー生成部１２０に伝達する。
【００３１】
キー生成部１２０は、ルールを検索するためのキーを生成し、図２に示すように、特に、コード記憶部１２１と、セレクタ１２２と、比較器１２３とを備える。
【００３２】
コード記憶部１２１は、比較器１２３各々について、コードと、コードの指定を受け付けた場合に比較器１２３が比較すべき区分けとの対応づけを、複数記憶する。例えば、コード記憶部１２１は、図３に示すような情報を記憶する。例えば、コード記憶部１２１は、『比較器１』について、コード『１』と区分け『ＤＡ［１５：０］』（ＤＡ：Destination  Address）との対応づけを記憶する。
【００３３】
セレクタ１２２は、コードの指定を受け付けた場合に、後段の処理を行う比較器１２３についてコード記憶部１２１を検索する。そして、セレクタ１２２は、指定を受け付けたコードに対応づけて記憶されている区分けに属する情報を、入力されたパケットに含まれる情報から選択する情報として設定する。また、セレクタ１２２は、パケットの入力を受け付けた場合に、パケットに含まれる情報から、設定した区分けに属する情報を選択し、検索ワードとして出力する。
【００３４】
例えば、セレクタ１２２は、コード『１』の指定を受け付けた場合に、後段の処理を行う比較器１２３についてコード記憶部１２１を検索し、『ＤＡ［１５：０］』を、入力されたパケットに含まれる情報から選択する情報として設定する。また、セレクタ１２２は、パケットの入力を受け付けた場合に、パケットに含まれる情報から、『ＤＡ［１５：０］』に属する情報を選択する。すなわち、セレクタ１２２は、パケットに含まれる情報の内、送信先アドレスの０ビット目から１５ビット目を選択し、検索ワードとして出力する。
【００３５】
比較器１２３は、前段の処理を行うセレクタ１２２によって選択された情報と、情報の比較対象として設定された比較値とが一致するか否かを比較し、比較結果をキーとして出力する。例えば、比較器１２３は、セレクタ１２２によって選択された送信先アドレスと、比較値（特定の送信先アドレスの値）とが一致するか否かを比較し、『Ｍ』もしくは『Ｕ』のキーを出力する。
【００３６】
ルール検索部１３０は、キーを用いてルールを検索する。具体的には、ルール検索部１３０は、図２に示すように、ルール記憶部１３１を備える。ルール記憶部１３１は、例えば、図１に示すようなルールを記憶する。すなわち、ルールは、所定の区分けに属する情報と比較値とが一致するか否かを示す一致関係を、区分け各々に関する論理積で設定したものである。
【００３７】
また、ルール検索部１３０は、比較器１２３全てによって比較結果各々が出力されると、入力されたパケットが、ルール記憶部１３１が記憶する複数のルールの内いずれのルールに該当するパケットであるかを検索する。この結果、ルール検索部１３０は、全ての比較結果が等しいルール、もしくは、『Don’t  Care』の論理積で記述されたルールを検索することになる。そして、ルール検索部１３０は、検索したルールを識別するルール番号を出力する。
【００３８】
アクション検索部１４０は、ルール番号を用いてアクションを検索する。具体的には、アクション検索部１４０は、図２に示すように、アクション記憶部１４１を備える。アクション記憶部１４１は、例えば、ルール番号と、「パケットを転送せずに廃棄する」といったアクションとの対応づけを、複数記憶する。
【００３９】
また、アクション検索部１４０は、ルール検索部１３０によってルール番号が出力されると、出力されたルール番号を用いてアクション記憶部１４１を検索し、ルール番号に対応づけて記憶されているアクションを取得する。そして、アクション検索部１４０は、取得したアクションを、スイッチ部２００に伝達する。
【００４０】
［実施例１に係るパケット転送制御装置による処理の手順］
続いて、図４〜図８を用いて、実施例１に係るパケット転送制御装置による処理の手順を説明する。図４は、セレクタ設定処理の手順を示すフローチャートである。図５は、比較器設定処理の手順を示すフローチャートである。図６は、パケット転送制御処理の手順（全体）を示すフローチャートである。図７は、キー生成処理の手順を示すフローチャートである。図８は、ルール検索処理の手順を示すフローチャートである。
【００４１】
［セレクタ設定処理（図４）］
まず、キー生成部１２０は、全てのセレクタ１２２について設定を終了したか否かを判定する（ステップＳ１０１）。終了したと判定した場合には（ステップＳ１０１肯定）、キー生成部１２０は、処理を終了する。
【００４２】
一方、全てのセレクタ１２２について設定を終了していないと判定した場合には（ステップＳ１０１否定）、キー生成部１２０は、次に、コードの指定を受け付けた否かを判定する（ステップＳ１０２）。受け付けていないと判定した場合には（ステップＳ１０２否定）、キー生成部１２０は、コードの指定を待機する。
【００４３】
一方、受け付けたと判定した場合には（ステップＳ１０２肯定）、キー生成部１２０は、指定を受け付けたコードに対応する区分けを検索する（ステップＳ１０３）。具体的には、キー生成部１２０は、指定を受け付けたコードを用いてコード記憶部１２１を検索し、指定を受け付けたコードに対応づけて記憶されている区分けを検索する。
【００４４】
そして、キー生成部１２０は、検索した区分けに属する情報を、選択する情報としてセレクタ１２２に設定する（ステップＳ１０４）。その後、キー生成部１２０は、全てのセレクタ１２２について設定を終了したか否かを判定する処理に戻る。
【００４５】
［比較器設定処理（図５）］
まず、キー生成部１２０は、全ての比較器１２３について設定を終了したか否かを判定する（ステップＳ２０１）。終了したと判定した場合には（ステップＳ２０１肯定）、キー生成部１２０は、処理を終了する。
【００４６】
一方、全ての比較器１２３について設定を終了していないと判定した場合には（ステップＳ２０１否定）、キー生成部１２０は、次に、比較値の指定を受け付けたか否かを判定する（ステップＳ２０２）。受け付けていないと判定した場合には（ステップＳ２０２否定）、キー生成部１２０は、比較値の指定を待機する。
【００４７】
一方、受け付けたと判定した場合には（ステップＳ２０２肯定）、キー生成部１２０は、指定を受け付けた比較値を比較器１２３に設定する（ステップＳ２０３）。その後、キー生成部１２０は、全ての比較器１２３について設定を終了したか否かを判定する処理に戻る。
【００４８】
［パケット転送制御処理（図６）］
まず、パケット情報抽出部１１０は、受信ポート１１にてパケットを受信したか否かを判定する（ステップＳ３０１）。パケットを受信していないと判定した場合には（ステップＳ３０１否定）、パケット情報抽出部１１０は、パケットの受信を待機する。
【００４９】
一方、パケットを受信したと判定した場合には（ステップＳ３０１肯定）、パケット情報抽出部１１０は、入力されたパケットから情報を抽出し、キー生成部１２０に伝達する（ステップＳ３０２）。
【００５０】
次に、キー生成部１２０が、キーを生成してルール検索部１３０に伝達し（ステップＳ３０３）、続いて、ルール検索部１３０が、キーを用いてルール記憶部１３１を検索し、検索したルールのルール番号をアクション検索部１４０に伝達する（ステップＳ３０４）。
【００５１】
その後、アクション検索部１４０が、ルール番号を用いてアクション記憶部１４１を検索し、検索したアクションをスイッチ部２００に伝達する（ステップＳ３０５）。
【００５２】
すると、スイッチ部２００が、伝達されたアクションに従って、パケットの転送を制御する。例えば、スイッチ部２００は、パケットをスイッチし（ステップＳ３０６）、送信ポート１２からパケットを送信するなどする（ステップＳ３０７）。
【００５３】
［キー生成処理（図７）］
まず、キー生成部１２０は、全ての比較器１２３についてキーを生成したか否かを判定する（ステップＳ３０３−１）。キーを生成したと判定した場合には（ステップＳ３０３−１肯定）、キー生成部１２０は、処理を終了する。
【００５４】
一方、キーを生成していないと判定した場合には（ステップＳ３０３−１否定）、キー生成部１２０は、パケットに含まれる情報から、セレクタ１２２に設定された情報を選択する（ステップＳ３０３−２）。
【００５５】
続いて、キー生成部１２０は、選択した情報と、比較器１２３に設定された比較値とが一致するか否かを比較する（ステップＳ３０３−３）。
【００５６】
そして、キー生成部１２０は、比較結果からキーを生成し、出力する（ステップＳ３０３−４）。その後、キー生成部１２０は、全ての比較器１２３についてキーを生成したか否かを判定する処理に戻る。
【００５７】
［ルール検索処理（図８）］
まず、ルール検索部１３０は、ルール記憶部１３１に記憶されている先頭のルールをＥ（エントリ）に格納する（ステップＳ３０４−１）。
【００５８】
次に、ルール検索部１３０は、Ｅに格納されているルールと、全ての比較器１２３にて生成されたキーとを照合する（ステップＳ３０４−２）。
【００５９】
続いて、ルール検索部１３０は、該当するルールであったか否かを判定し（ステップＳ３０４−３）、該当するルールであったと判定した場合には（ステップＳ３０４−３肯定）、ルールを識別するルール番号を出力し（ステップＳ３０４−６）、処理を終了する。
【００６０】
一方、該当するルールではないと判定した場合には（ステップＳ３０４−３否定）、ルール検索部１３０は、全てのルールについて照合したか否かを判定する（ステップＳ３０４−４）。そして、ルール検索部１３０は、全てのルールについて照合したと判定した場合には（ステップＳ３０４−４肯定）、「該当ルールなし」を出力して（ステップＳ３０４−７）、処理を終了する。
【００６１】
一方、全てのルールについて照合していないと判定した場合には（ステップＳ３０４−４否定）、ルール検索部１３０は、次のルールをＥに格納し（ステップＳ３０４−５）、Ｅに格納されているルールとキーとを照合する処理に戻る。
【００６２】
［実施例１の効果］
上記してきたように、実施例１によれば、パケット転送制御装置は、複数の比較器各々について、コードと当該コードの指定を受け付けた場合に当該比較器が比較すべき区分けとの対応づけを複数記憶する。また、セレクタ各々は、受け付けたコードに対応づけて記憶されている区分けに属する情報を、パケットから選択する情報として設定する。そして、セレクタ各々は、パケットの入力を受け付けた場合に設定した情報を選択する。そして、比較器各々は、セレクタ各々によって選択された情報と比較値とが一致するか否かの比較結果を出力する。続いて、ルール検索部は、比較器全てによって比較結果各々が出力されると、パケットが、複数のルールの内いずれのルールに該当するパケットであるかを検索し、ルール番号を出力する。
【００６３】
このようなことから、実施例１に係るパケット転送制御装置は、比較器の前段にセレクタを備え、コードの指定を受け付けるだけで、セレクタが選択する情報を変更し、比較器が比較する比較対象を変更する。言い換えると、実施例１に係るパケット転送制御装置は、コードの指定を受け付けるだけで、単一の比較器によってコード数分の複数の比較対象と比較することを可能にし、比較対象が多様であるパターンによるアクセス制御を実現する。また、実施例１に係るパケット転送制御装置は、このような比較器を並列して備えることで、比較対象の組合せが複雑であるパターンによるアクセス制御を実現する。こうして、実施例１に係るパケット転送制御装置は、回路規模の抑制と、多様かつ複雑なパターンによるアクセス制御とを両立して実現する。
【００６４】
すなわち、実施例１によれば、フリップフロップ回路による方式であることから、高速処理が可能になる。また、実施例１によれば、コード選択方式であることから、多様なパターン表現と同時に回路規模を「１／コード数」に圧縮することが可能になる。また、実施例１によれば、キーの組合せによってルール検索を行うことから、ルールテーブル幅の分だけ複雑なパターンを照合することが可能になる。
【実施例２】
【００６５】
さて、実施例１に係るパケット転送制御装置は、ルール記憶部１３１に記憶するルールが、『Ｍ』、『Ｕ』および『Ｄ．Ｃ』の３値で設定されることを想定するものであった。このため、実施例１に係るパケット転送制御装置は、２ビットを用いて３値を記述することで、ルールを設定していた。この点、実施例２に係るパケット転送制御装置は、１ビットを用いて２値（『Ｍ』および『Ｄ．Ｃ』）を記述することでルールを設定し、ルール記憶部１３１の規模を半分にしようとするものである。以下、実施例２に係るパケット転送制御装置の概要、処理の手順を順に説明する。
【００６６】
［実施例２に係るパケット転送制御装置の概要］
まず、図９を用いて、実施例２に係るパケット転送制御装置の概要を説明する。図９は、実施例２に係るパケット転送制御装置の概要を説明するための図である。
【００６７】
図９に示すように、実施例２に係るパケット転送制御装置は、比較器が反転指示を受け付けている点、および、ルールが『Ｍ』および『Ｄ．Ｃ』のみで記述されている点で、実施例１に係るパケット転送制御装置（図１を参照）と異なる。なお、図９においては、説明の便宜上から、比較器全てが反転指示を受け付けているように表現されているが、これに限られるものではない。パケット転送制御装置は、パターンやルールの設定などに伴い、反転指示を比較器に適宜設定する。
【００６８】
ここで、実施例２における比較器は、比較器において出力する比較結果を反転させる指示を受け付けた場合に、比較結果を反転してから出力する。具体的には、比較器は、セレクタによって選択された情報と比較値との比較結果が一致する（『Ｍ』）との比較結果である場合には、一致しない（『Ｕ』）との比較結果に反転してから、キーを出力する。また、比較器は、セレクタによって選択された情報と比較値との比較結果が一致しない（『Ｕ』）との比較結果である場合には、一致する（『Ｍ』）との比較結果に反転してから、キーを出力する。
【００６９】
技術的な意義は、次の点にある。例えば、パケット転送制御装置が、「入力されたパケットの送信先アドレスが『Ａ』でない場合には、パケットを転送せずに廃棄する」という制御を行うとする。実施例１に係るパケット転送制御装置であれば、セレクタが、パケットに含まれる情報から送信先アドレスを選択し、比較器が、選択した送信先アドレスと比較値『Ａ』とを比較し、『Ｍ』もしくは『Ｕ』の比較結果を出力する。また、実施例１に係るパケット転送制御装置であれば、ルール記憶部１３１は、比較器（比較値『Ａ』）に対応する一致関係が『Ｕ』と記述されているルールを記憶する。こうして、実施例１に係るパケット転送制御装置は、比較器（比較値『Ａ』）から出力された比較結果が『Ｕ』である場合に、比較値『Ａ』と比較する比較器に対応する一致関係が『Ｕ』と記述されているルールを検索する。すなわち、実施例１に係るパケット転送制御装置は、一致関係が『Ｕ』と記述されているルールを検索することで、ルール「入力されたパケットの送信先アドレスが『Ａ』でない場合」を検索する。
【００７０】
これに対し、実施例２に係るパケット転送制御装置は、実施例１と同様、セレクタが、パケットに含まれる情報から送信先アドレスを選択し、比較器が、選択した送信先アドレスと比較値『Ａ』とを比較し、『Ｍ』もしくは『Ｕ』の比較結果を判定するが、さらに、比較結果を反転してから出力する。すなわち、セレクタが選択した送信先アドレスが『Ａ』でない場合、比較器は、『Ｕ』の比較結果を一旦判定し、さらに、比較結果を『Ｍ』に反転してから出力する。
【００７１】
また、実施例２に係るパケット転送制御装置は、実施例１と異なり、比較器（比較値『Ａ』）に対応する一致関係が『Ｍ』と記述されているルールをルール記憶部１３１に記憶する。すると、実施例２に係るパケット転送制御装置は、比較器（比較値『Ａ』）から出力された比較結果が『Ｍ』である場合に、比較値『Ａ』と比較する比較器に対応する一致関係が『Ｍ』と記述されているルールを検索する。この時、「比較器（比較値『Ａ』）から出力された比較結果が『Ｍ』である場合」とは、「セレクタが選択した送信先アドレスが『Ａ』でない場合」である。すなわち、実施例２に係るパケット転送制御装置は、一致関係が『Ｍ』と記述されているルールを検索することで、ルール「入力されたパケットの送信先アドレスが『Ａ』でない場合」を検索したことになる。
【００７２】
このように、実施例２に係るパケット転送制御装置は、比較器が反転指示を受け付け、比較結果を反転してから出力することで、ルールを２値（『Ｍ』および『Ｄ．Ｃ』）で記述することを可能にしている。この結果、パケット転送制御装置は、１ビットを用いれば２値を記述することができるので、実施例１におけるルール記憶部１３１と比較して、ルール記憶部１３１の規模を半分にすることが可能になる。
【００７３】
［実施例２に係るパケット転送制御装置による処理の手順］
図１０を用いて、実施例２におけるキー生成処理の手順を説明する。図１０は、実施例２におけるキー生成処理の手順を示すフローチャートである。
【００７４】
図１０に示すように、実施例２におけるキー生成処理は、実施例１と同様、まず、キー生成部１２０が、全ての比較器１２３についてキーを生成したか否かを判定する（ステップＳ４０１）。キーを生成していないと判定した場合には（ステップＳ４０１否定）、実施例１と同様、キー生成部１２０は、パケットに含まれる情報から、セレクタ１２２に設定された情報を選択する（ステップＳ４０２）。続いて、実施例１と同様、キー生成部１２０は、選択した情報と、比較器１２３に設定された比較値とが一致するか否かを比較する（ステップＳ４０３）。
【００７５】
次に、実施例１と異なり、実施例２におけるキー生成部１２０は、反転指示を受け付けているか否かを判定する（ステップＳ４０４）。反転指示を受け付けていると判定した場合には（ステップＳ４０４肯定）、キー生成部１２０は、比較結果を反転（単一論理反転）し（ステップＳ４０５）、反転した比較結果からキーを生成し、出力する（ステップＳ４０６）。ここで、単一論理反転とは、単一の比較器について論理反転することを意味する。
【００７６】
一方、反転指示を受け付けていないと判定した場合には（ステップＳ４０４否定）、キー生成部１２０は、そのまま比較結果からキーを生成し、出力する（ステップＳ４０６）。その後、キー生成部１２０は、実施例１と同様、全ての比較器１２３についてキーを生成したか否かを判定する処理に戻る。
【００７７】
［実施例２の効果］
上記してきたように、実施例２によれば、比較器各々は、比較器において出力する比較結果を反転させる指示を受け付けた場合に、選択された情報と比較値との比較結果が一致するとの比較結果を一致しないとの比較結果に反転してから出力する。また、選択された情報と比較値との比較結果が一致しないとの比較結果を一致するとの比較結果に反転してから出力する。
【００７８】
このようなことから、実施例２に係るパケット転送制御装置は、比較器が反転指示を受け付け、比較結果を反転してから出力することで、ルールを２値（『Ｍ』および『Ｄ．Ｃ』）で記述することを可能にしている。この結果、パケット転送制御装置は、１ビットを用いれば２値を記述することができるので、実施例１におけるルール記憶部と比較して、ルール記憶部の規模を半分にすることが可能になる。
【実施例３】
【００７９】
さて、実施例３に係るパケット転送制御装置は、さらに、複数の比較器についてまとめて論理反転を行う機能を備えることで、ルール記憶部１３１に記憶するルールのエントリ消費を削減しようとするものである。以下、実施例３に係るパケット転送制御装置の概要、処理の手順を順に説明する。
【００８０】
［実施例３に係るパケット転送制御装置の概要］
まず、図１１および図１２を用いて、実施例３に係るパケット転送制御装置の概要を説明する。図１１は、実施例３に係るパケット転送制御装置の概要を説明するための図であり、図１２は、複数論理反転を説明するための図である。
【００８１】
図１１に示すように、実施例３に係るパケット転送制御装置は、複数の比較器の出力に対し複数論理反転を行い、複数論理反転後の出力をキーとして出力している点が、実施例２に係るパケット転送制御装置と異なる。なお、図１１においては、説明の便宜上から、比較器全てが複数論理反転指示を受け付けているように表現されているが、これに限られるものではない。パケット転送制御装置は、パターンの記述やルールの設定などに伴い、複数論理反転指示を全部または一部の比較器に適宜設定する。
【００８２】
実施例３に係るパケット転送制御装置は、所定の区分けに属する情報と比較値とが一致することを示す肯定の一致関係が複数の区分けに関して論理積の関係にあり、かつ、論理積の関係全体を否定する否定論理積をルールとして設定しなければならないとする。例えば、パケット転送制御装置が、「『ＡかつＢかつＣ』の否定」をルールとして設定しなければならないとする。
【００８３】
まず、複数論理反転の機能を有しない実施例２に係るパケット転送制御装置が、「『ＡかつＢかつＣ』の否定」をルールとして設定する場合について説明する。「『ＡかつＢかつＣ』の否定」のルールは、展開すると、「『Ａの否定』または『Ｂの否定』または『Ｃの否定』」となる。また、実施例２における比較器各々が、単一論理反転指示を受け付けているとすると、「『ＡかつＢかつＣ』の否定」のルールは、「『Ａの肯定』または『Ｂの肯定』または『Ｃの肯定』」となる。すなわち、「『ＡかつＢかつＣ』の否定」のルールは、図１２に示すように、「１０００」または「０１００」または「００１０」と、３つのエントリとして記述される。
【００８４】
これに対し、実施例３に係るパケット転送制御装置は、「『ＡかつＢかつＣ』の否定」のルールを、図１２に示すように、「１１１０」の１つのエントリとして記述することができる。なぜならば、実施例３に係るパケット転送制御装置は、キー生成部１２０の後段（ルール検索部１３０の前段）に、複数論理反転部を備えるからである。
【００８５】
複数論理反転部は、複数論理反転の対象である比較器全てによって比較結果各々が出力されると、出力された比較結果各々のビット列を、肯定の一致関係の区分けのみが１のビットであり他の区分けが０のビットであるビット列を用いて変換する。例えば、複数論理反転部は、Ａ、Ｂ、Ｃの区分けのみが１のビットでありＤの区分けが０のビットである「１１１０」を用いて変換する。そして、複数論理反転部は、以下に示すアルゴリズムを用いることで、比較結果各々の肯定の一致関係の区分け全てが１のビットである場合にのみ、区分け全てが０のビットであるビット列を出力する。また、複数論理反転部は、その他の場合に、区分け全てが１のビットであるビット列を出力する。例えば、複数論理反転部は、比較器各々の比較結果が「１１１ｘ」である場合にのみ、「０００ｘ」を出力し、それ以外の比較結果の場合には、「１１１ｘ」を出力する。
【００８６】
【数１】
0005104514.tif 000002
【００８７】
結果として、「１１１０」と記述されているルールは、比較結果が「１１１ｘ」である場合以外は、全て該当することになる。比較結果が「１１１ｘ」である場合とは、「ＡかつＢかつＣ」の場合である。すなわち、「１１１０」と記述されているルールは、「『ＡかつＢかつＣ』の否定」のルールを記述していることになる。以下に、具体例を示す。
【００８８】
【数２】
0005104514.tif 000003
【００８９】
比較値『Ａ』と比較する比較器の比較結果が『１（Ａである）』であり、比較器『Ｂ』と比較する比較器の比較結果が『１（Ｂである）』であり、比較器『Ｃ』と比較する比較器の比較結果が『０（Ｃでない）』とする。キーベクタは、『Ｋ＝１１０ｘ』となる。また、反転ベクタは、『Ｎ＝１１１０』である。
【００９０】
上記したアルゴリズムに、『Ｋ＝１１０ｘ』と『Ｎ＝１１１０』とを代入すると、『Ｌ』は、『Ｎ＝１１１０』と『notＫ＝００１ｘ』との論理積『００１ｘ』のＯＲリダクションであるので、『１』となる。すると、『Ｋ´』は、まず、『notＮ＝０００１』と『Ｋ＝１１０ｘ』との論理積『０００ｘ』であり、これと『Ｎ＝１１１０』とのＯＲは、『１１１ｘ』となる。他の値についても同様に、比較結果が「１１１ｘ」である場合にのみ、「０００ｘ」を出力し、それ以外の比較結果の場合には、「１１１ｘ」を出力する。
【００９１】
なお、複数論理反転部は、例えば、コード記憶部に記憶されている単一論理反転指示を参照することで、該当する比較器からの比較結果について複数論理反転を行うことができる。例えば、コード記憶部が、比較器１と比較器２とに対して、「Ｎｅｇ」を記憶する。すると、複数論理反転部は、コード記憶部を参照することで、「Ｎｅｇ」が設定されている比較器１と比較器２とについて、複数論理反転を行う。
【００９２】
［実施例３に係るパケット転送制御装置による処理の手順］
図１３を用いて、実施例３におけるキー生成処理の手順を説明する。図１３は、実施例３におけるキー生成処理の手順を示すフローチャートである。
【００９３】
図１３に示すように、実施例３におけるキー生成処理は、実施例２と同様、ステップ５０１〜ステップＳ５０６の処理を行うが、ステップＳ５０６においてはキーを出力しない。その後、ステップＳ５０１において、全ての比較器についてキーを生成したと判定した場合に（ステップＳ５０１肯定）、複数論理反転部が複数論理反転を行い（ステップＳ５０７）、キーを出力して（ステップＳ５０８）、処理を終了する。
【００９４】
［実施例３の効果］
上記してきたように、実施例３によれば、パケット転送制御装置は、論理積の関係全体を否定する否定論理積をルールとして設定すべき場合に、複数の区分け各々が１のビットである１つのルールを、ルールとして設定する。また、パケット転送制御装置は、比較器全てによって出力された比較結果各々について複数論理反転させる指示を受け付けた場合に、比較結果各々が出力されると、複数論理反転する。具体的には、パケット転送制御装置は、出力された比較結果各々の複数の区分け全てが１のビットである場合にのみ複数の区分け全てが０のビットであるビット列を出力し、他の場合には複数の区分け全てが１のビットであるビット列を出力する。そして、ルール検索部は、複数論理反転部によって出力されたビット列に基づいてルールを検索し、ルール番号を出力する。
【００９５】
このようなことから、実施例３によれば、単一論理反転のみでは増加するルールテーブル消費を抑制することが可能になる。すなわち、キー数Ｎの論理反転を単純に照合すると、ルールテーブルエントリをＮ個消費するが、複数論理反転によってエントリ消費量を１とすることが可能になる。また、単一論理反転および複数論理反転の同時適用により、複数のルールテーブルエントリが必要であったＯＲ条件を、単一のエントリで表現することが可能になる。
【実施例４】
【００９６】
［他の実施例］
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００９７】
［システム構成等］
上記の実施例１〜実施例３においては、パケット転送制御装置が、アクセス制御リストを受信ポート側に設定する手法を説明したが、本発明はこれに限られるものではなく、送信ポート側に設定する手法にも、同様に適用することができる。
【００９８】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１００】
なお、本実施例で説明したパケット転送制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【図面の簡単な説明】
【０１０１】
【図１】実施例１に係るパケット転送制御装置の概要を説明するための図である。
【図２】実施例１に係るパケット転送制御装置の構成を示すブロック図である。
【図３】コード記憶部を説明するための図である。
【図４】セレクタ設定処理の手順を示すフローチャートである。
【図５】比較器設定処理の手順を示すフローチャートである。
【図６】パケット転送制御処理の手順（全体）を示すフローチャートである。
【図７】キー生成処理の手順を示すフローチャートである。
【図８】ルール検索処理の手順を示すフローチャートである。
【図９】実施例２に係るパケット転送制御装置の概要を説明するための図である。
【図１０】実施例２におけるキー生成処理の手順を示すフローチャートである。
【図１１】実施例３に係るパケット転送制御装置の概要を説明するための図である。
【図１２】複数論理反転を説明するための図である。
【図１３】実施例３におけるキー生成処理の手順を示すフローチャートである。
【図１４】アクセス制御リストを説明するための図である。
【図１５】従来技術を説明するための図である。
【符号の説明】
【０１０２】
１０  パケット転送制御装置
１１  受信ポート
１２  送信ポート
１００  アクセス制御リスト部
１１０  パケット情報抽出部
１２０  キー生成部
１２１  コード記憶部
１２２  セレクタ
１２３  比較器
１３０  ルール検索部
１３１  ルール記憶部
１４０  アクション検索部
１４１  アクション記憶部
２００  スイッチ部
【図１】
0005104514.tif 000004
【図２】
0005104514.tif 000005
【図３】
0005104514.tif 000006
【図４】
0005104514.tif 000007
【図５】
0005104514.tif 000008
【図６】
0005104514.tif 000009
【図７】
0005104514.tif 000010
【図８】
0005104514.tif 000011
【図９】
0005104514.tif 000012
【図１０】
0005104514.tif 000013
【図１１】
0005104514.tif 000014
【図１２】
0005104514.tif 000015
【図１３】
0005104514.tif 000016
【図１４】
0005104514.tif 000017
【図１５】
0005104514.tif 000018