以下、本発明の実施の形態を図面を参照して説明する。図1はネットワークシステムの原理図である。ネットワークシステム1は、伝送媒体L(有線でも無線でもよい)で各構成装置が接続し、中継装置10−1〜10−n(総称する場合は、中継装置10)、端末20−1〜20−n、サーバ装置(以下、単にサーバ)30、ネットワーク監視装置40、サブネット5−1〜5−nから構成され、ネットワーク上でフィルタリングを行ってフレーム(またはパケット、セルなど)を伝送するシステムである。
中継装置10は、フィルタリング情報共有制御部11とフィルタリング部12から構成され、フィルタリング情報共有制御部11は、コマンド処理部11a−1を含む。
コマンド処理部11a−1は、ネットワーク全体で必要なフィルタリング情報を共有するための、フィルタリング情報を含むコマンドの生成、解析を行う。フィルタリング情報共有制御部11は、コマンドの解析時、フィルタリング共有条件として、隣接装置から送信されたフィルタリング情報に宛先アドレスがあり、宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致し、かつ宛先アドレスの中継先ポートが1つのみの場合には、フィルタリング情報を自装置に登録して隣接装置にフィルタリング情報を中継するための制御を行う。
また、フィルタリング共有条件として、隣接装置から送信されたフィルタリング情報に宛先アドレスの情報がない場合には、フィルタリング情報の受信ポートを宛先ポートとし、フィルタリング情報を自装置に登録して、そのフィルタリング情報は隣接装置に中継しない制御を行う。フィルタリング部12は、フィルタリング情報共有制御部11で決定した制御指示にもとづいて、フィルタリング情報またはユーザへのサービス信号であるフレームの中継または廃棄のフィルタリングを行う。
サーバ30は、ネットワーク内の端末に対して、特定のサービスを提供する。また、フィルタリング情報共有制御部11内のコマンド処理部11a−1と、コマンド送信部を有し、サーバ30のサービスを許可する端末、アクセス許可リスト、自己のアドレス、サービスを提供しているポート番号の少なくとも1つにもとづいて、フィルタリング情報を含むコマンドを生成し、隣接の中継装置にコマンドを流して、サーバ30へのアクセスに対する、端末のフィルタリング処理をネットワーク全体で実行させることもできる。
ネットワーク監視装置40は、ネットワーク内の機器の運用監視を行う。また、フィルタリング情報共有制御部11内のコマンド処理部11a−1と、コマンド送信部を有し、外部から設定した(ユーザによるマニュアル設定等)フィルタリング情報によりコマンドを生成し、隣接の中継装置にコマンドを流して、運用監視対象のネットワーク全体(すなわち、中継装置10−1〜10−n)にフィルタリング情報を一括して共有させることができる。
なお、フィルタリング情報共有制御を以降ではFISP(Filtering-Information Sharing Protocol)と呼ぶ。FISPはフィルタリング情報をネットワーク上の装置間でやりとりして共有化するための本発明で開発したプロトコルの呼び名である。
次にFISP機能を実装する中継装置10の構成について説明する。図2は中継装置10の構成を示す図である。中継装置10は、FISP部11とフィルタリング部12から構成される。FISP部11は、FISPのプロトコルの全体の制御を行うところで、FISP処理部11a、テーブル管理部11bから構成される。また、フィルタリング部12は、フレーム識別部12a、中継処理部12b、フィルタリング処理部12c、キュー制御部12d、スイッチ部12eから構成される。
FISP部11に対し、テーブル管理部11bは、隣接装置一覧テーブルT1、フィルタリングテーブルT2、FISPテーブルT3のテーブル管理を行う。隣接装置一覧テーブルT1は、ネットワーク上での隣接装置の中で、FISPを理解する隣接装置のアドレスと、その隣接装置のルータ番号とを組として保持するテーブルである。フィルタリングテーブルT2は、中継装置の持つフィルタリングの設定情報(フレームの中継/廃棄の内容)を登録するテーブルである。FISPテーブルT3は、隣接装置から送信された後述のADD ENTRYコマンド及びADD RELATIVE ENTRYコマンド等のコマンド内容を保持するテーブルである。
FISP処理部11aは、コマンド処理部11a−1を含み、FISPコマンドを処理(コマンド生成、解析を含む)し、上記のテーブルT1〜T3への登録/削除を行う。
フィルタリング部12に対し、フレーム識別部12aは、ポート#1〜#nから入力するフレームを受信して、フレームの識別処理を行い、通常の中継装置の持つフレームの識別処理に加え、FISPコマンドを認識した場合は、FISP処理部11aへ送信する。中継処理部12bは、識別されたフレームが持つ情報から宛先を決定する(中継処理部12bが、フレーム識別部12aの機能を有する構成としてもよい)。
フィルタリング処理部12cは、フレームのフィルタリング処理を行う(図では、フィルタリング処理部12cは中継処理の後段に位置しているが、中継処理部12bの前段に位置してもよい)。
キュー制御部12dは、装置に設定された優先制御を行う。スイッチ部12eは、ポート#1〜#nの中から中継処理部12bによって決定した宛先ポートを介してフレームを出力する。またはFISP部11によって生成されたフィルタリング情報(フィルタリング情報を含むコマンド)を該当ポートから出力する。
次にFISPで定義するコマンドについて説明する。中継装置やサーバの起動時またはFISPの機能をONにしたとき、中継装置であれば隣接装置、サーバであればデフォルトゲートウェイ(送信するフレームをルータに転送することによって、そのフレームを宛先まで届けてくれるルータのことをデフォルトゲートウェイと呼ぶ)に指定されている中継装置に対してTCP(Transmission Control Protocol)コネクションが張られる(FISPのTCPポート番号は現在Well-Knownであるポートでなければ何でもよいが、例えば、7373とする)。TCPコネクションを張った後は、以下に示す本発明で定義した7種類のコマンドを投げることでフィルタリング情報のやりとりを行う。なお、以降に示すフォーマットのOctet値やコマンド番号等の数値は一例を示すものである。
図3はREGISTRATION、HELLO、SHUTDOWNのコマンドフォーマットを示す図である。REGISTRATIONコマンドC1、HELLOコマンドC3、SHUTDOWNコマンドC4は、いずれも同じフォーマットであり、コマンド番号、ルータ番号で構成される。
REGISTRATIONコマンドC1は、自装置でFISP機能が動作開始したことを隣接装置に伝えるために使用され、FISP起動時に最初に投げるコマンドである。コマンド番号とは、コマンドの種別を表すもので、REGISTRATIONコマンドC1においては1とする。
ルータ番号とは、中継装置を区別するために付ける番号であり、ネットワーク内で一意となる自装置の番号を記載する(ルータ番号の決定方法は、従来のルーティングプロトコル(例えばOSPF(Open Shortest Path First)等)で決められるルータ番号と同一のものを使用するか、または同一方式で決定すればよい)。また、自装置のルータ番号は一度決めたら変更はされない(すなわち、REGISTRATIONコマンドC1で通知した値は使いつづける)。
HELLOコマンドC3は、自装置のFISP機能が生きていることを示すために定期的に隣接装置に送信されるコマンドである。HELLOのコマンド番号は3とする。また、ルータ番号は自装置のルータ番号を設定する。HELLOコマンドC3の送信間隔はデフォルトで30秒とするが、ネットワーク内で決めた値でもって運用してよい。
SHUTDOWNコマンドC4は、自装置のFISP機能がOFFになる時に隣接装置に投げるコマンドである。または、隣接装置からHELLOコマンドC3が送られてこない時に、障害が発生したとみなせるその隣接装置を知らせるために他の隣接装置に投げるコマンドである。
SHUTDOWNのコマンド番号は4とする。ルータ番号は、自装置がFISPサービスを停止することを隣接装置に通知する際には、自装置のルータ番号を設定する。または、HELLOコマンドC3を送信しない応答のない装置がある場合には、その装置のルータ番号を設定して、障害が発生していると思われる該当装置を他の隣接装置へ通知する(SHUTDOWNコマンドC4は、実際は後者の状況で利用されることが多い)。
図4はREGISTRATION REPLYのコマンドフォーマットを示す図である。REGISTRATION REPLYコマンドC2は、上述のREGISTRATIONコマンドC1を受け取った隣接装置が返す応答コマンドである。REGISTRATION REPLYコマンドのコマンド番号は2とする。また、ルータ番号はREGISTRATIONコマンド中にあったルータ番号をそのまま設定し、隣接ルータ番号はREGISTRATIONコマンドC1を受け取った隣接装置が持つルータ番号を設定する。これによって、REGISTRATIONコマンドC1を送信した中継装置は、隣接装置のルータ番号を獲得する。
図5はADD ENTRYのコマンドフォーマットを示す図である。ADD ENTRYコマンドC5は、FISP機能のメインのコマンドであり、自装置に設定されたフィルタリング情報、もしくは隣接装置から来たフィルタリング情報を転送する際に使用するコマンドである。コマンドフォーマットは、コマンド番号、エントリ種別、フィルタ、ルータ番号、エントリ番号、設定データ数、設定データ長1〜n、設定データ1〜nで構成される。ADD ENTRYコマンドC5のコマンド番号は5とする。また、その他のフィールド(f1)〜(f7)はそれぞれ以下のように定義する。
(f1)エントリ種別
フィルタリング情報を共有するかどうかを指定するフィールドである。0と1の2種類の値を取る。0ならば送られてきたフィルタリング情報(フォーマット中の設定データf7に該当する)を隣接装置に伝えてもよい場合のみ中継するが、フィルタリング情報を共有するためのフィルタリング共有条件に合わない場合は中継しない。1ならばフィルタリング共有条件によらずに必ず隣接装置に中継し登録される(フィルタリング情報の強制共有)。
なお、フィルタリング共有条件とは、フィルタリング情報を隣接の中継装置へ中継して共有させるか否かを決める条件のことである。条件の内容は3つある。1つ目は、送信されたフィルタリング情報に宛先アドレスの情報があって、その宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致して、かつ宛先アドレスの中継先ポートが1つのみあるときで、この場合のみフィルタリング情報を自装置に登録し、さらにフィルタリング情報を隣接装置に中継する。
2つ目は、送信されたフィルタリング情報に宛先アドレスの情報があっても、その宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが不一致なときで、この場合は自装置に登録せず中継もしない。
3つ目は、送信されたフィルタリング情報に宛先アドレスの情報がないときで、この場合はフィルタリング情報の受信ポートを宛先ポートとして、フィルタリング情報に追加した後に自装置に登録を行い、そのフィルタリング情報を隣接装置に中継しない。
エントリ種別が0の場合は、これら3つの条件を判定して、中継・登録を行うかを決定し、エントリ種別が1の場合は、これら3つの条件に関係なく、強制的に中継・登録を行うものである。なお、フィルタリング共有条件の具体的な例については後述する。
(f2)フィルタ
フレームを廃棄するか中継するかのフィルタリングを指定するフィールドである。0と1の2種類の値を取る。0であればフィルタリング情報と一致するフレームは廃棄とし、1ならばフィルタリング情報と一致するフレームは中継対象とする。
(f3)ルータ番号
自装置にフィルタリング情報が設定され(例えば、オペレータによるマニュアル設定等)、それをADD ENTRYコマンドC5を用いて隣接装置に中継する場合には自装置のルータ番号を設定する。また、隣接装置から送られてきたADD ENTRYコマンドC5をさらに隣接装置に中継する場合には、受け取ったADD ENTRYコマンドC5中のルータ番号と同一の値を設定する。
(f4)エントリ番号
自装置に設定されたフィルタリング情報毎に一意になるようにつけた、フィルタリング情報に対応する番号である。例えば、中継装置Aにフィルタリング情報として、設定データ1〜3が設定されたら、設定データ1〜3に対応してエントリ番号1をつけるなど。また、隣接装置から送られてきたADD ENTRYコマンドC5をさらに隣接装置に中継する場合は、受け取ったADD ENTRYコマンド中のエントリ番号と同一の値を設定する。
なお、エントリ番号は、装置内のみで一意になればよい。例えば、中継装置Aに対して、設定データ1〜3に対応するエントリ番号が1と設定されている場合に、中継装置Bも設定データ1〜3を共有するときは、中継装置B内で1という番号が一意となるならば、中継装置Bはエントリ番号を中継装置Aと同じ1として設定してよい(異なる装置間に同じエントリ番号が存在しても、ルータ番号とエントリ番号の組み合わせによって識別可能であるから)。
(f5)設定データ数
設定データ1〜nのフィルタリング情報に必要とする対象フィールド数を指定する。例えば、フィルタリング情報として、宛先アドレスによって設定される設定データ1と、ポート番号によって設定される設定データ2がある場合は、設定データ数は2となる(すなわち、設定データ1〜nのnの値を設定するということ)。
(f6)設定データ長1〜n
設定データ1〜nの長さをOctet単位で指定するフィールドである。図では、設定データ長1〜nは、設定データ1〜nの対応する設定データフィールドの前段に設けられる構成をとっている。
(f7)設定データ1〜n
フィルタリング情報を設定するフィールドであり、n種類のフィルタリング情報を設定できる。1つの設定データの領域は、さらに図6に示すような複数のフィールドから構成される。
図6は設定データのフィールド・フォーマットを示す図である。設定データf7は、以下に示す(f7−1)〜(f7−7)のフィールドを有する。
(f7−1)識別ヘッダ種別
フィルタリング対象とするヘッダ(プロトコル)を指定するフィールドである。対象ヘッダと識別ヘッダ種別値は一意に決まっていればよい。一例を図7に示す。図7はフィルタリング対象ヘッダと識別ヘッダ種別値との対応を示す図である。例えば、IPv4のフレームがフィルタリング対象ならば識別ヘッダ種別のフィールドに0x1000を記載する。
(f7−2)フィールド種別
識別ヘッダ種別で指定したヘッダの中の、どのフィールドがフィルタリングのエントリ対象なのかを指定するフィールドである。ヘッダ種別毎に一意に値が決まっていればよい。一例を図8に示す。図8はフィールド種別の設定値を示す図である。図はIPv4のフィールド種別に対応する設定値例を示している。例えば、宛先アドレス(Destination Address)を見てフィルタリングをするのであれば、フィールド種別値を12とする。
(f7−3)データ種別
フィルタリングのエントリ対象が、宛先アドレスかそれ以外かを示すフィールドである。1ならば宛先アドレスであることを指し、0ならばそれ以外のフィールドのデータがフィルタリングエントリ対象であることを指す。FISPは宛先アドレスが指定してある時のみ下流に遡ってフィルタリング情報を設定することから、フィルタリング情報の他への中継可否を決定するために使用する。宛先アドレスに対してこのような特別な扱いをする理由については図9で後述する。
(f7−4)データOctet長
識別ヘッダ種別、フィールド種別で指定したフィールドの長さ(Octet長)を指定するフィールドである。例えば、識別ヘッダ種別で0x1000、フィールド種別で宛先アドレスが指定されたら、IPv4の宛先アドレスのフィールド長をOctet(4である)で指定する。
(f7−5)データbit長
識別ヘッダ種別、フィールド種別で指定したフィールドの長さ(bit長)を指定する。データbit長は、フィルタリングのエントリ対象である指定フィールドがOctet単位にならない場合、以降のフィールド値、マスク値のフィールドのパディング部分を決定する際に使用する。
例えば、IPv6のFlow Labelは20bitのフィールドであるため、Octet単位にはならない。このような場合は、データOctet長は3、データbit長は20となり、フィールド値f7−6に右詰でFlow Labelの値を記載して、フィールド値f7−6の左側のパディングが4bitとなる。
(f7−6)フィールド値
データOctet長で指定されたOctet数のフィールドに、指定したフィールドのフィルタリング条件を右詰めで入れる。余りはパディングとなる。
(f7−7)マスク値
データOctet長で指定されたOctet数のフィールドに、指定したフィールドのマスク条件を右詰めで入れる。マスクとは、指定フィールドの一部分だけがフィルタリング条件対象であり、残りの部分はdon't careであるような条件指定をする際の有効/無効を示すものである。bit毎に0ならば無効、1ならば有効を指す。マスク値の使用例については図10で後述する。
図9はフィルタリング情報の中継・登録動作を説明するための図である。ネットワーク100は、サーバ101、中継装置111〜115、端末121〜125で構成される(サブネットは省略)。装置間の接続関係を記すと、中継装置111〜115はそれぞれ端末121〜125と接続する。中継装置111はサーバ101、中継装置112、113と接続する。さらに中継装置113は中継装置114と接続し、中継装置114は中継装置115と接続する。
最初に宛先アドレスを含むフィルタリング情報の中継・登録動作について説明する。ネットワーク100の構成において、中継装置113に対して、マニュアル設定等でサーバ101宛のフレームは廃棄する旨のフィルタリング情報(フィルタリング情報Aとする)を設定したとする。フィルタリング情報Aは、データ種別f7−3のフィールドに1が記されて、フィールド値f7−6に宛先アドレスとしてサーバ101のアドレスが記されているものである。
ここで、中継装置113にこのような設定を行った意図は、中継装置113を含めこれより下流に位置する装置からサーバ101宛に向かうフレームをすべて廃棄したいということであるから、中継装置113にマニュアル設定した後の中継装置間によるフィルタリング情報Aの中継動作においては、中継装置113に登録されたフィルタリング情報Aは、中継装置114、115に中継・登録され、中継装置111、112には登録されないことが必要である。
もし、中継装置111、112にも中継・登録が行われると、すべての端末121〜125からサーバ101へのアクセスが不可能となってしまうからである(なお、フィルタリング情報Aがマニュアル設定された中継装置113は、隣接に位置する中継装置111にフィルタリング情報Aを送信はするが、中継装置111ではフィルタリング情報Aの登録は行われない)。
したがって、宛先アドレスが含まれているフィルタリング情報Aを受信した中継装置114は、自身が中継装置113よりも下流にあること(フィルタリング情報Aを登録すべきこと)、また、宛先アドレスが含まれているフィルタリング情報Aを受信した中継装置111は、自身が中継装置113よりも上流にあること(フィルタリング情報Aは登録しないこと)を判断する必要がある。
判断の仕方として、隣接装置から送信されたフィルタリング情報に宛先アドレスの情報があり(データ種別f7−3が1であり)、フィルタリング情報を受信したポートと、宛先アドレスの中継先ポートとが一致し、かつ宛先アドレスの中継先ポートが1つある場合のみ、フィルタリング情報の自装置への登録を行うものとする。
例えば、中継装置114は、ポートP4aでラインL1を介して中継装置113と接続しているので、フィルタリング情報Aを受信するポートは、ポートP4aである。また、サーバ101の宛先アドレスへ向けて、何らかの情報を中継送信する場合にもポートP4aを使うことになる。
すなわち、フィルタリング情報Aを受信したポートと宛先アドレスの中継先ポートとはポートP4aで一致し、該当宛先に対する他の中継ポートはないので、フィルタリング情報Aは中継装置114で登録されることになる。中継装置115についても同様にして、ポートP5aでフィルタリング情報Aを受信したポートと宛先アドレスの中継先ポートが一致し、かつ該当宛先に対する中継先ポートも1つなのでフィルタリング情報Aが登録される。
一方、中継装置111について見ると、中継装置111は、ポートP1aでラインL2を介して中継装置113と接続し、ポートP1bでラインL3を介してサーバ101と接続している。よって、フィルタリング情報Aを受信するポートは、ポートP1aである。また、サーバ101の宛先アドレスへ向けて、何らかの情報を中継送信する場合にはポートP1bを使うことになる。すなわち、フィルタリング情報Aを受信したポートと宛先アドレスの中継先ポートとは、ポートP1a、P1bであり一致しないので、フィルタリング情報Aは中継装置111で登録されないことになる(登録せず隣接装置への中継も行わない)。このような制御を行うことで、フィルタリング対象とすべきでないフローまでフィルタリングされることを防ぐことが可能になる。なお、ネットワーク内にFISP機能を実装していない装置があっても、実装している装置間のみでフィルタリング情報を共有するものである。
次に宛先アドレスを含まないフィルタリング情報の中継・登録動作について説明する。中継装置113に対して、TCPのポート番号80のフレームは廃棄する旨のフィルタリング情報(フィルタリング情報Bとする)を設定したとする。これは、Webアクセスのフレーム廃棄を意味している。
ここで、中継装置113にこのような設定を行った意図は、中継装置113を通過するWebアクセスのフレームを廃棄するということであるから、中継装置113−端末123間のフロー、中継装置113−中継装置114間のフロー、中継装置111−中継装置113間のフローにおいて、Webアクセスのフレームが中継装置113で廃棄されればよいことになる。ここで、サーバ101がWebサーバであって、もし、中継装置111にもフィルタリング情報Bの中継・登録が行われてしまうと、サーバ101には何もアクセスされなくなってしまう。
したがって、最初にマニュアル設定等で1つの中継装置に宛先アドレスを含まないフィルタリング情報を設定すると、その中継装置はフィルタリング情報を隣接装置に送信する。そして、宛先アドレスの情報が含まれていないフィルタリング情報(データ種別f7−3が0のフィルタリング情報)を中継受信した中継装置は、フィルタリング情報を受信したポートを宛先ポートとして自装置に登録し、宛先ポートから廃棄対象のフレームを出力させない制御を行い(フィルタリング条件が廃棄の場合)、かつそのフィルタリング情報は隣接装置に中継しないようにする。
例えば、中継装置113にフィルタリング情報Bをマニュアル設定すると、中継装置113は、隣接の中継装置114、111にフィルタリング情報Bを送信する。中継装置114は、中継されたフィルタリング情報Bに宛先アドレスがないことを認識すると、フィルタリング情報Bを受信した受信ポートP4aを宛先ポートとして登録し、宛先ポートとなったポートP4aからWebアクセスフレームの出力を停止する。同様に中継装置111は、中継されたフィルタリング情報Bに宛先アドレスがないことを認識すると、フィルタリング情報Bを受信した受信ポートP1aを宛先ポートとして登録し、宛先ポートとなったポートP1aからWebアクセスフレームの出力を停止する(例えば、中継装置115にWebサーバが接続していたとすると、このWebサーバへのアクセスフレームの出力が停止する)。
したがって、中継装置113は、端末123からのWebアクセスフレームを廃棄し、中継装置111、114からはWebアクセスフレームが中継装置113へ送信されなくなる(中継装置111、114からのWebアクセスフレームを中継装置113で廃棄するのではなく、中継装置111、114で出力させないようにしたので、中継装置113−中継装置114間のフロー及び中継装置111−中継装置113間のフローのトラフィック負荷の軽減を図ることができる)。
次にマスク値の使用例について説明する。図10はマスク値の使用例を説明するための図である。サブネット5−3に中継装置116、端末126、サーバ102が接続している。サブネット5−3のアドレス(IPアドレス)が、10.11.12.○○(○○は任意の値)であり、サーバ102のアドレスを10.11.12.13、中継装置116のアドレスを10.11.12.14、端末126のアドレスを10.11.12.15とする。
サーバ102宛のフレームをフィルタリングしたい場合には、フィルタリング情報のフィールド値f7−6に、サーバ102の宛先アドレス10.11.12.13を記載し、10.11.12.13はすべての値が有効であることを示すため、マスク値f7−7にはall“1”を設定する。
また、サブネット5−3に接続するすべての装置に対してフィルタリングを行う場合には、フィルタリング情報のフィールド値f7−6に、サーバ102の宛先アドレス10.11.12.○○を記載し、10.11.12.の値が有効、○○に該当する下位8bitは無効であることを示すため、マスク値f7−7には10.11.12.に該当する上位24bitに1を立て、下位8bitに0を設定する。
ここで、もし、マスク値f7−7のようなフィールドがないとすると、サブネット5−3に接続するすべての装置をフィルタリング対象としたい場合、サブネット5−3には10.11.12.○○の、○○に該当する下位8bitの256台の装置(256通りのアドレスが割り当てできる)が接続可能であるため、最大256個のフィルタリング情報を生成しなければならなくなるが、フィールド値f7−6の有効/無効を示すマスク値をフィールド情報内に設けることで、効率よくフィルタリング対象の装置を設定することが可能になる。
次にコマンドの説明に戻って、残りのADD RELATIVE ENTRYとREMOVE ENTRYについて説明する。図11はADD RELATIVE ENTRYのコマンドフォーマットを示す図である。ADD RELATIVE ENTRYコマンドC6は、ADD ENTRYコマンドC5と同じくフィルタリング情報を指定する際に使用するコマンドである。
フィルタリングポリシーは中継装置毎に異なるため、フィルタリング設定条件にあてはまらないフレームはすべて廃棄するのか、すべて中継するのかは一意に決まっていない(すなわち、ネットワーク内に配置された中継装置に対して、フィルタリング情報の設定がなされなければ、すべてのフレームを通過させるとデフォルト指定されている装置もあれば、すべてのフレームを廃棄するとデフォルト指定されている装置もあるということ)。そのため、あるフィルタリング条件のみ廃棄指定をする場合は、それ以外の条件では中継する設定を別途指定する必要があり、ADD RELATIVE ENTRYはそのために使用するコマンドである。
例えば、フィルタリング情報が設定されていない場合は、すべてのフレームを通過させるデフォルト指定がなされている中継装置R1があるとする。このような中継装置R1に、ADD ENTRYコマンドC5を使って、“サーバ1宛のフレームだけを通過させる”といったフィルタリング情報を設定したとしても何ら意味はない(中継装置R1はすべてのフレームを通過させるとデフォルト時に指定されているのだから)。
“サーバ1宛のフレームだけを通過させる”ということは、“サーバ1宛以外のフレームは廃棄させる”という意味を持つから、中継装置R1のようなデフォルト指定がされている装置には、“サーバ1宛以外のフレームは廃棄させる”というフィルタリング情報が必要である。この“サーバ1宛以外のフレームは廃棄させる”というフィルタリング情報を設定する際に、ADD RELATIVE ENTRYコマンドC6を用いることになる。
図12はADD RELATIVE ENTRYコマンドの使用例を説明するための図である。ADD ENTRYコマンドC5によって、“宛先アドレスAでTCPポート番号B宛は廃棄する”というフィルタリング情報F1の設定を行うものとする。この場合、宛先アドレスA以外のフレームを中継させたい場合には、ADD RELATIVE ENTRYコマンドC6を使って、“TCPポート番号B宛のフレームを中継する”というフィルタリング情報F1aの設定を行う。
また、フィルタリング情報F1に対して、TCPポート番号B宛以外は中継させたい場合には、ADD RELATIVE ENTRYコマンドC6を使って、宛先アドレスA宛のフレームは中継するというフィルタリング情報F1bの設定を行う。なお、ADD RELATIVE ENTRYのフィルタリング情報は、関連元のADD ENTRYのフィルタリング情報よりも優先度が低くなるように登録時には設定される。
一方、ADD RELATIVE ENTRYコマンドC6のコマンド番号は6とする。ADD RELATIVE ENTRYコマンドC6の設定フィールドは、ADD ENTRYコマンドC5とほぼ同一であり、関連エントリ番号だけが追加されている。関連エントリ番号には、関連元のADD ENTRYコマンドC5に付与したエントリ番号を指定して、どのフィルタリング情報に関連しているかを示すようにする。例えば、エントリ番号=1のADD ENTRYコマンドに関連するADD RELATIVE ENTRYコマンドの関連エントリ番号には、関連エントリ番号=1が記載される。
図13はREMOVE ENTRYのコマンドフォーマットを示す図である。REMOVE ENTRYコマンドC7は、ADD ENTRYコマンドC5及びADD RELATIVE ENTRYコマンドC6によって指定したフィルタリング情報を削除する際に使用するコマンドである。中継装置に設定したフィルタリング情報が削除された際に送信される。REMOVE ENTRYコマンドC7のコマンド番号は7とする。ルータ番号、エントリ番号は、削除するフィルタリングエントリのルータ番号、エントリ番号を設定する。
次にFISP機能を実装したサーバ/中継装置を含むネットワークシステムの動作について説明する。図14はネットワークシステムを示す図である。ネットワーク内の装置の接続関係を記すと、サブネット5−1は、サーバ30、端末21、中継装置10−1と接続する。中継装置10−1は、中継装置10−2、10−3と接続する。中継装置10−2は、中継装置10−3、10−4、サブネット5−2と接続し、サブネット5−2は端末22と接続する。
中継装置10−3は、中継装置10−5、サブネット5−3と接続し、サブネット5−3は端末23と接続する。中継装置10−4は、サブネット5−4と接続し、サブネット5−4は端末24と接続する。中継装置10−5は、中継装置10−6、サブネット5−5と接続し、サブネット5−5は端末25と接続する。中継装置10−6は、サブネット5−6と接続し、サブネット5−6は端末26と接続する。
ここで、サーバ30がWebのサーバを起動しており、そのWebサーバの設定にアクセス許可リストがある場合(例えば特定部署のみのアクセスを許すといった設定)を想定する。アクセス許可リストには、サブネット5−3及びサブネット5−4からのアクセスのみ許可を与えるものと設定する。
〔S1a〕サーバ30は、サブネット5−3からサーバ30へのアクセスフレームを中継させるためのADD ENTRYコマンドC5aを送信する。ADD ENTRYコマンドC5aには、エントリ種別:0(フィルタリング共有条件で判定した中継・登録)、フィルタ:中継、設定データ1:宛先アドレス(サーバ30のアドレス、またデータ種別は1となる。以下同様)、設定データ2:送信元アドレス(サブネット5−3)、設定データ3:宛先TCPポート番号80が設定される。
〔S1b〕サーバ30は、サブネット5−4からサーバ30へのアクセスフレームを中継させるためのADD ENTRYコマンドC5bを送信する。ADD ENTRYコマンドC5bには、エントリ種別:0、フィルタ:中継、設定データ1:宛先アドレス(サーバ30)、設定データ2:送信元アドレス(サブネット5−4)、設定データ3:宛先TCPポート番号80が設定される。
〔S1c〕サーバ30は、サブネット5−3、5−4以外からサーバ30へアクセスするフレームを廃棄させるためのADD RELATIVE ENTRYコマンドC6a(ADD RELATIVE ENTRYコマンドC6aのフィルタリング情報は、ADD ENTRYコマンドC5a、C5bよりも優先度は低い)を送信する。ADD RELATIVE ENTRYコマンドC6aには、エントリ種別:0、フィルタ:廃棄、設定データ1:宛先アドレス(サーバ30)、またデータ種別は1となる。設定データ2:宛先TCPポート番号80が設定される。
ここで、サーバ30のアクセス許可リストは送信元アドレスのみのエントリであるが、ステップS1a〜S1cのようにFISPのコマンドには、サーバ30のアドレスを宛先アドレスとして設定する。これにより、フィルタリングを実行させたい中継装置にフィルタリング情報の内容を共有させることができる(宛先アドレスがないと他のサーバ宛のフローまで止めてしまう可能性があるから)。
〔S2〕中継装置10−1は、ADD ENTRYコマンドC5a、C5b、ADD RELATIVE ENTRYC6aを受信する。コマンド内のエントリ種別が0であるので、フィルタリング共有条件の判定が行われる。この場合、送信されたフィルタリング情報に宛先アドレスがあって、その宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致(ポートP1a)するので、フィルタリング情報を登録して隣接の装置に中継する。
ADD ENTRYコマンドC5aにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ30)、送信元アドレス:サブネット5−3、宛先TCPポート番号:80、送信ポート番号:P1aと登録する。ADD ENTRYコマンドC5bにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ30)、送信元アドレス:サブネット5−4、宛先TCPポート番号:80、送信ポート番号:P1aと登録する。ADD RELATIVE ENTRYコマンドC6aにより、フィルタ種別:廃棄、設定データ:宛先アドレス(サーバ30)、宛先TCPポート番号:80、送信ポート番号:P1aと登録する。なお、ADD RELATIVE ENTRYコマンドC6aの登録内容は、ADD ENTRYコマンドC5a、C5bより優先度が低く設定される。
〔S3〕中継装置10−1は、ADD ENTRYコマンドC5a、C5b、ADD RELATIVE ENTRYC6aを隣接の中継装置10−2、10−3へ中継する(中継装置10−1からサーバ30にもコマンド内容が実際は送信されるが、サーバ30ではADD ENTRY/ADD RELATIVE ENTRYの受信処理は行わないので、図からは外している)。
〔S4a〕中継装置10−2は、ADD ENTRYコマンドC5a、C5b、ADD RELATIVE ENTRYC6aを受信する。コマンド内のエントリ種別が0であるので、フィルタリング共有条件の判定が行われる。この場合、送信されたフィルタリング情報に宛先アドレスがあって、その宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致(ポートP2a)するので、フィルタリング情報を登録して隣接の装置に中継する。
ADD ENTRYコマンドC5aにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ1)、送信元アドレス:サブネット5−3、宛先TCPポート番号:80、送信ポート番号:P2aと登録する。ADD ENTRYコマンドC5bにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ30)、送信元アドレス:サブネット5−4、宛先TCPポート番号:80、送信ポート番号:P2aと登録する。ADD RELATIVE ENTRYコマンドC6aにより、フィルタ種別:廃棄、設定データ:宛先アドレス(サーバ30)、宛先TCPポート番号:80、送信ポート番号:P2aと登録する。
〔S4b〕中継装置10−3は、ADD ENTRYコマンドC5a、C5b、ADD RELATIVE ENTRYC6aを受信する。コマンド内のエントリ種別が0であるので、フィルタリング共有条件の判定が行われる。この場合、送信されたフィルタリング情報に宛先アドレスがあって、その宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致(ポートP3a)するので、フィルタリング情報を登録して隣接の装置に中継する。
ADD ENTRYコマンドC5aにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ30)、送信元アドレス:サブネット5−3、宛先TCPポート番号:80、送信ポート番号:P3aと登録する。ADD ENTRYコマンドC5bにより、フィルタ種別:中継、設定データ:宛先アドレス(サーバ30)、送信元アドレス:サブネット5−4、宛先TCPポート番号:80、送信ポート番号:P3aと登録する。ADD RELATIVE ENTRYコマンドC6aにより、フィルタ種別:廃棄、設定データ:宛先アドレス(サーバ30)、宛先TCPポート番号:80、送信ポート番号:P3aと登録する。
〔S5〕中継装置10−2は中継装置10−4へ、中継装置10−3は中継装置10−5へ、ADD ENTRYコマンドC5a、C5b、ADD RELATIVE ENTRYC6aを中継する(中継装置10−2と中継装置10−3間でも実際は中継が行われるが、すでに同一のコマンドを受信しているため、中継装置10−2、10−3では何も処理されずに終了する)。
以降、中継装置10−4〜10−6においても同様の処理が行われ、結果として全中継装置にサーバ30宛、送信元アドレスはサブネット5−3もしくはサブネット5−4、TCPのポート番号80のフレームが中継対象として登録され、それ以外の送信元アドレスを持つフレームで、かつサーバ30宛、TCPポート番号80のフレームが廃棄対象として登録されることとなる。
したがって、サブネット5−3、5−4以外の端末からは、隣接する中継装置において即座に廃棄されるため(例えば、端末22からサーバ30へWebアクセスしようとしても、中継装置10−2内のフィルタリング登録内容により、即座に廃棄される)、ネットワークに負荷がかからず、またサーバ30内でソフトウェア処理をしているアクセス制限処理に負荷がかかることもない。
このように、従来のサーバでは、サーバのアプリケーション上で、フィルタリング設定していたため、DOS攻撃など受けると、途中のネットワークリソースに被害を与えることになっていたが、サーバがFISPコマンドを中継装置に投げて、ネットワーク全体でフィルタリングする構成としたので、サーバに対する不当アクセスがあっても途中の中継装置ですべて廃棄されるので、ネットワークリソースが無駄に消費され、他の通信を止めてしまうといった問題を解決することが可能になる。
なお、上記の動作では、サーバ30へのアクセス許可は必ず中継対象としてADD ENTRYコマンドで送信し、それ以外は必ず廃棄となるようにADD RELATIVE ENTRYコマンドを送信している。ここで、それ以外は廃棄となるコマンドをADD RELATIVE ENTRYとしたのは、廃棄となるエントリの優先度が高く設定されてしまうと、許可リストに関わらず全端末からのアクセスをフィルタリングにて廃棄してしまうからである。ADD RELATIVE ENTRYであれば、ADD ENTRYの内容より必ず低い優先度で引っかかるように登録されるため、サブネット5−3、5−4宛の中継対象エントリが先に引っかかるので、意図した通りの設定がなされることとなる。
次に図14のサーバ30をネットワーク監視装置とみなして、FISP機能を搭載したネットワーク監視装置の動作について説明する。今、ネットワーク全体でTCPの宛先ポート135番は使用しないので、すべてフィルタリングにより廃棄と設定したい場合を考える。
従来ならば全中継装置にマニュアル設定等を必要とするため、ネットワークが複雑になると設定も大変であるが、FISPを実装したネットワーク監視装置では、宛先TCPポート135番を廃棄とするADD ENTRYコマンドを、エントリ種別を1(強制共有)に設定して隣接装置に送信する。また、TCPポート135番以外は中継対象とするために、エントリ条件なしのADD RELATIVE ENTRYコマンドを、エントリ種別を1に設定して隣接装置に送信する。これらのコマンドはネットワーク全体に中継される。これにより、全中継装置において、宛先TCPポート135番のフレームは廃棄されることとなり、ネットワーク全体でフィルタリング情報が共有されることとなる。
次に装置固有のフィルタリング情報が中継装置に設定されたときの動作について説明する。図15は装置固有のフィルタリング情報が中継装置に設定されたときの動作を説明するための図である。ネットワーク内の装置の接続関係を記すと、サブネット5−1は、サーバ30−1と中継装置10−1と接続する。中継装置10−1は、中継装置10−2、10−3と接続する。サブネット5−2は、中継装置10−3と端末22と接続し、サブネット5−3は、中継装置10−4と端末23と接続する。サブネット5−4は、中継装置10−2とサーバ30−2と接続する。
ここで、中継装置10−2において、マニュアル設定により、TCPの宛先ポート番号80で、かつ送信先の物理ポートがP2aのフレームを廃棄とする設定がなされた場合を考える。
中継装置10−2では、このようなフィルタリングのエントリ登録は可能だが、送信先ポートP2aというのは中継装置10−2固有の情報であり、この情報は隣接装置で共有しても意味を持たないため登録の必要性がない。そのため、この場合は中継装置10−2内部での設定のみに留め、隣接装置へフィルタリング情報を送信しない。
なお、設定された情報が装置固有か否かの判断は、あらかじめ装置固有情報をFISP処理部11a内のメモリに設定しておき、外部から設定された入力情報が、格納済みの装置固有情報と一致するならば、入力情報は装置固有のものと判断して、登録は自装置内に留め、隣接装置には中継しないようにする。このように、装置固有のフィルタリング情報については中継しないことで、無駄なフィルタリング情報を流すことを防ぐことが可能になる。
次に詳細な動作(FISP部11の動作)についてフローチャートを用いて説明する。図16はFISP起動時の動作を示すフローチャートである。FISP機能を持つ装置は、起動時またはFISP機能がONとなった時に以下のフローを実行する。
〔S11〕自装置(中継装置/サーバ共に)のルータ番号を決定する。
〔S12〕自装置が中継装置であればすべての隣接装置、サーバであればデフォルトゲートウェイに指定されたアドレスに対してTCPコネクションを張る(ポート番号:7373)。
〔S13〕コネクションを張ったすべての隣接装置に対し、REGISTRATIONコマンドC1を発行する。
〔S14〕REGISTRATION REPLYコマンドC2が来た隣接装置のアドレス及び隣接ルータ番号を、隣接装置一覧テーブルT1に登録する。
上記のように、FISP起動時には、自装置から隣接装置への情報通知及び隣接装置からの情報獲得を行っている。また、隣接装置一覧テーブルT1は、ネットワーク上での隣接装置の中で、FISPを理解する隣接装置とそのルータ番号を組として保持するテーブルであり、FISPコマンドの中継に利用する。
図17はREGISTRATIONコマンドC1受信時の動作を示すフローチャートである。REGISTRATIONコマンドC1により、隣接装置一覧テーブルT1の更新が行われる。
〔S21〕REGISTRATIONコマンドC1が来たら、コマンド内に記されている隣接装置のアドレス及びルータ番号を、隣接装置一覧テーブルT1に追加する。
〔S22〕REGISTRATION REPLYコマンドC2を作成する。ルータ番号は、受信したREGISTRATIONコマンドC1のルータ番号を設定し、隣接ルータ番号には自装置のルータ番号を設定する。
〔S23〕作成したREGISTRATION REPLYコマンドC2を、REGISTRATIONコマンドC1の送信元に送り返す。
図18、図19はADD ENTRYコマンドC5/ADD RELATIVE ENTRYコマンドC6の受信時の動作を示すフローチャートである。外部からのマニュアル設定等によりフィルタリング情報が設定された装置は、設定された情報にもとづいて、ADD ENTRYコマンドC5やADD RELATIVE ENTRYコマンドC6を生成して、隣接装置へ送信する。ADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6(以下、単にコマンドC5、C6とも表記する)を受信した装置は以下のフローを実行する。
〔S31〕ADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6内にあるルータ番号、エントリ番号と同一のルータ番号、エントリ番号を持つエントリがフィルタリングテーブルT2内にあるか否かを判断する。あれば終了し(ここでの処理は、ルータ番号とエントリ番号による重複チェックを行うことで重複登録を回避している。すなわち、すでに同じ内容のADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6を受信していたら、そのコマンドを捨てる動作を示している)、なければステップS32へいく。
また、このとき(重複受信でないとき)、FISPテーブルT3に、受信したコマンドC5、C6の内容をそのまま保存する。FISPテーブルT3は、「コマンド」、「隣接中継フラグ」、「フィルタリングテーブル登録フラグ」の項目から構成される。
「コマンド」には、受信したADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6などの中継コマンドの内容をそのまま設定する(中継する必要がないコマンドは保持しない)。「隣接中継フラグ」には、受信したコマンドC5、C6を隣接装置に中継した場合は1を、隣接装置に中継しなかった場合は0を設定し、エントリの削除時にその内容を中継するかどうかを判断するために使用する(隣接装置への中継を行ってよいコマンドのみ中継対象とする機能を実現している)。
「フィルタリングテーブル登録フラグ」には、受信したコマンドC5、C6を実際に装置に登録したかどうか(すなわち、フィルタリングテーブルT2に登録したかどうか)を示すフラグを設定する欄で、0ならフィルタリング機能の不備等で登録できなかったことを示し、1なら登録したことを示す。エントリの削除時にフィルタリングテーブルT2まで削除する必要があるかどうかを判断するために使用する(中継装置のもつフィルタリングの機能不備によって登録できない場合は中継処理のみ行う機能を実現している)。
〔S32〕ADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6内の各フィルタリング対象フィールドを取り出す。
〔S33〕ADD ENTRY/ADD RELATIVE ENTRYコマンドC5、C6内のエントリ種別が1(強制共有)か否かを判断する。強制共有ならステップS34へ、そうでなければステップS40へいく。
〔S34〕取り出した各フィルタリングフィールド条件で、フィルタリングテーブルT2にエントリを追加する。なお、ADD RELATIVE ENTRYコマンドC6の場合は、ADD ENTRYコマンドC5によって登録されたフィルタリングテーブルT2のどのエントリよりも優先度が低くなるように登録する。
〔S35〕登録できたか否かを判断する。登録できなければステップS36へ、登録できればステップS37へいく。
〔S36〕フィルタリングテーブル登録フラグを0に設定する。ステップS38へいく。
〔S37〕フィルタリングテーブル登録フラグを1に設定する。
〔S38〕隣接装置一覧テーブルT1にあるすべての隣接装置に対し、受信したコマンドをそのまま中継する。
〔S39〕中継されたコマンドを受信した装置は、そのコマンドをFISPテーブルT3に登録する(隣接中継フラグは1、フィルタリングテーブル登録フラグは設定値をそのまま設定)。
〔S40〕設定データフィールド内のデータ種別に、1(宛先アドレスあり)の設定がされているか否かを判断する。設定がされていなければステップS41へ、設定されていればステップS45へいく。
〔S41〕取り出した各フィルタリングフィールド及び受信ポートを宛先ポートした、その宛先ポートの番号宛の条件で、フィルタリングテーブルT2にエントリを追加する。なお、ADD RELATIVE ENTRYコマンドC6の場合は、ADD ENTRYコマンドC5によって登録されたフィルタリングテーブルT2のどのエントリよりも優先度が低くなるように登録する。
〔S42〕登録できたか否かを判断する。登録できなければステップS43へ、登録できればステップS44へいく。
〔S43〕フィルタリングテーブル登録フラグを0に設定する。ステップS52へいく。
〔S44〕フィルタリングテーブル登録フラグを1に設定する。ステップS52へいく。
〔S45〕設定されている宛先アドレスのフィールドを取り出し、そのアドレスに対する宛先ポートを求める。(宛先アドレスへ向けてフレームを出力する際に使用するポート番号を求める)。なお、宛先アドレスがネットワークアドレスである場合は、該当する宛先ポートすべてを求める。
〔S46〕ステップS45で求めたポート群の中にコマンドC5、C6を受信した受信ポートがあるか否かを判断する。なければ終了し(自装置は上流に位置することになるから)、あればステップS47へいく。
〔S47〕取り出した各フィルタリングフィールド及び宛先アドレスの中継先ポート番号宛の条件で、フィルタリングテーブルT2にエントリを追加する。なお、ADD RELATIVE ENTRYコマンドC6の場合は、ADD ENTRYコマンドC5によって登録されたフィルタリングテーブルT2のどのエントリよりも優先度が低くなるように登録する。
〔S48〕登録できたか否かを判断する。登録できなければステップS49へ、登録できればステップS50へいく。
〔S49〕フィルタリングテーブル登録フラグを0に設定する。ステップS51へいく。
〔S50〕フィルタリングテーブル登録フラグを1に設定する。
〔S51〕ステップS45で求めたポート群は1つのポートであったか否かを判断する。1つならばステップS38へいき、1つでなければステップS52へいく。
〔S52〕受信したコマンドをFISPテーブルT3に登録する(隣接中継フラグは0、フィルタリングテーブル登録フラグは設定値をそのまま設定)。
ここで、図18、図19で示した動作フローの概念についてまとめて説明する。フィルタリング情報の共有を行う際は、フィルタリングの情報をどこまで共有すればよいかが重要となる。ある装置において、特定の送信元アドレスのフレームはすべて廃棄とするフィルタリング設定を行った場合、その装置を通る該当フレームは設定通り廃棄するのは当然だが、その装置を通らない該当フレームは当然廃棄してはいけない。
FISPではフィルタリング情報を共有するが、送られてきた情報をそのまま設定してしまうと、特定の送信元アドレスのフレームは全中継装置で廃棄対象となってしまう。このため、コマンド中に宛先アドレス情報がない場合は、コマンドの送信元である隣接装置(設定が行われた装置)宛に中継されるフレームで、かつ設定されたフィルタリング情報に一致するフレームのみフィルタリング対象可能になるため、送信先のポート情報を追加してフィルタリングに登録している(ステップS41)。
また、中継装置は受信したフレームがどの隣接装置に投げるかといった情報は獲得できるが、次の次の中継装置が何になるかの情報は通常持っていないため、受信したフィルタリング情報をさらに次の隣接装置に送ってしまうと、それを受信した隣接装置は登録してよいのかどうかの判断ができない。
そのため、送信先のアドレス情報がない場合は、指定がない限り隣接装置には中継しないようにすることで、フィルタリング対象としてはいけないフローまでを対象としてしまう問題を回避している(ステップS42〜S44において、登録をして中継はしていない)。
さらに、コマンド中に宛先アドレスがある場合は、隣接装置がその宛先アドレスの送信する隣接装置がコマンドを受信したポートと同一になるかどうかを調べることで、設定が行われた装置を通るかどうかが判別できるため、その一致性によってフィルタリングテーブルT2への登録可否を決定している(ステップS46)。
また、自装置においてフィルタリングテーブルT2に登録したということは、さらに次の隣接装置にコマンド内容を通知しても同一の処理で設定が行われた装置を通るかどうかが判別可能となるため、フィルタリングテーブルT2に登録できた場合は基本的に隣接装置への中継対象となるが、コマンド中の宛先アドレス(宛先ネットワーク)のポートが複数あるかどうかを調べ、複数ある場合は隣接装置への中継対象としていない(ステップS51、S52)。
これは、フィルタリングの設定アドレスに、コマンドを受信したポート以外の宛先も含まれているため、その宛先へのフレームをフィルタリング対象としないためである。
このことを図15のネットワークを用いて説明する。中継装置10−1を通るサブネット5−1及びサブネット5−4宛のフレームを廃棄とする設定を行うために、中継装置10−1に宛先アドレス10.1/16のフレームは廃棄するといった設定がなされた場合を考える。
中継装置10−1はADD ENTRY/ADD RELATIVE ENTRYによって中継装置10−2に10.1/16宛のフレームを廃棄するといった情報を送り、それを受信した中継装置10−2は10.1/16 宛でかつ送信ポートがP2aであるフレームを廃棄とするようにフィルタリングテーブルに登録する。
ここで、中継装置10−2が本情報を中継装置10−4にまで中継すると、中継装置10−4も同様に10.1/16宛でかつ送信ポートP4aであるフレームを廃棄する設定が行われてしまう。
そのため、端末23からサーバ30−2への通信は中継装置10−1を通らないにも関わらず、フィルタリングテーブルに引っかかり廃棄されてしまう。複数ポートの識別をしているのはこれを回避するためであり、実際に動作フローにしたがうと、中継装置10−2に送られたフィルタリング情報は中継装置10−2のフィルタリングテーブルに登録されるが、中継装置10−4には該当情報が中継されない。
そのため、端末23からサーバ30−2へのアクセスは中継装置10−4から中継装置10−2へ渡り、中継装置10−2においても送信ポートがP2bであるためにフィルタリングテーブルに引っかからず中継される。すなわち、中継装置10−1を通らないフレームまで廃棄されてしまうといった問題を回避することが可能となる。
なお、端末23からサーバ30−1へのアクセスは中継装置10−1を通るため、中継装置10−2のフィルタリングテーブルに引っかかり、設定どおり正しく廃棄される(中継装置10−1まで中継せず、手前の中継装置10−2で廃棄できているため、ネットワークに余分な負荷もかけていない)。
図20はREMOVE ENTRYコマンドC7の受信時の動作を示すフローチャートである。REMOVE ENTRYコマンドC7は、設定していたフィルタリング情報を消した場合にその中継装置によって作成され、隣接装置に送信される。
〔S61〕REMOVE ENTRYコマンドC7内のルータ番号とエントリ番号を獲得する。
〔S62〕獲得したルータ番号及びエントリ番号と同一のルータ番号、エントリ番号を持つFISPテーブルT3のエントリを検索する。
〔S63〕エントリがある宛先アドレスを判断する。あればステップS64へなければ終了する。
〔S64〕検索したFISPテーブルT3のエントリを削除する。
〔S65〕削除したエントリのフィルタリングテーブル登録フラグが1か判断する。1ならステップS66へ、0ならステップS67へいく。
〔S66〕フィルタリングテーブルT2から削除したエントリに対応したフィルタリングエントリを削除する。
〔S67〕削除したエントリの隣接中継フラグは1か判断する。1ならステップS68へ、0なら終了する。
〔S68〕隣接装置一覧テーブルT1にあるすべての隣接装置に対し、受信したコマンドをそのまま中継する。
このように、REMOVE ENTRYコマンドC7を受信した時は、コマンド毎に一意に決まっているルータ番号、エントリ番号が送られてくるので、その内容で検索してFISPテーブルT3から削除している。また、FISPテーブルT3にはフィルタリングテーブル登録フラグ、隣接中継フラグの情報もあるので、送られてきた番号に対応するコマンドに対し、フィルタリングテーブルT2からの削除が必要かどうか、受け取った情報の中継が必要かどうかを判断している。
図21はFISP起動中に定常的に行われる動作を示すフローチャートである。隣接装置の生死確認を行うためのHELLOコマンドC3の動作を示している。
〔S71〕HELLOコマンドC3が来たか判断する。来たらステップS72へ、来なければステップS73へいく。
〔S72〕HELLOコマンドC3中のルータ番号と同一のルータ番号を隣接装置一覧テーブルT1から探し、そのアドレスに対するHELLOコマンドC3未到着時間を0にする。
〔S73〕隣接装置一覧テーブルT1中のアドレスすべてに対し、HELLOコマンドC3未到着時間を計算する。
〔S74〕一定時間以上HELLOコマンドC3が来ていない隣接装置があるか判断する。あればステップS75へ、なければステップS71へ戻る。
〔S75〕隣接装置一覧テーブルT1から、その隣接装置のエントリを削除する。
〔S76〕削除したエントリのルータ番号を、SHUTDOWNコマンドC4のルータ番号フィールドに設定し、SHUTDOWNコマンドC4を隣接装置一覧テーブルT1にあるアドレスすべてに送信する。
〔S77〕SHUTDOWN処理が行われる(図22を参照)。ステップS71へ戻る。
ここで、HELLOコマンドC3の送信間隔時間は、デフォルト時に30秒と定義するが、ネットワークで一意に決まっていれば、任意に変更してもよい。また、上記の動作フローでは、すべての隣接装置に対し、HELLOコマンドC3の未到着時間を計算し、一定時間以上HELLOコマンドC3が来なかったら隣接装置が停止したと判断し、その隣接装置のルータ番号を使ってSHUTDOWNコマンドC4を送信するようにしている。
図22はSHUTDOWNコマンドC4の受信時、または隣接装置の停止を認識した時の動作を示すフローチャートである。
〔S81〕SHUTDOWNコマンドC4中のルータ番号を対象ルータ番号とする。
〔S82〕対象ルータ番号と同一のルータ番号を持つFISPテーブルT3のエントリを検索する。
〔S83〕エントリがあるか判断する。あればステップS84へなければステップS87へいく。
〔S84〕検索したFISPテーブルT3のエントリを削除する。
〔S85〕削除したエントリのフィルタリングテーブル登録フラグは1か判断する。1ならステップS86へ、0ならステップS82へ戻る。
〔S86〕フィルタリングテーブルT2から、削除したエントリに対応したフィルタリングエントリを削除する。
〔S87〕隣接装置一覧テーブルT1中に対象ルータと同じルータ番号のエントリがあるか判断する。あればステップS88へなければステップS89へいく。
〔S88〕隣接装置一覧テーブルT1から、その隣接装置のエントリを削除する。
〔S89〕対象ルータ番号をルータ番号とするSHUTDOWNコマンドC4を、隣接装置一覧テーブルT1にあるアドレスすべてに送信する。
上記の動作フローでは、「開始」はSHUTDOWNコマンドC4を受信した時の開始位置、「SHUTDOWN処理」は図21のステップS77の開始位置となる。SHUTDOWN時は、ルータ番号で登録していたフィルタリング情報をすべて削除する必要があるため、ルータ番号のみでエントリを順次削除していく処理となっている。
また、SHUTDOWNコマンドC4による削除処理終了後に隣接装置に中継することで、全体にSHUTDOWNコマンドC4を通知する。ここで、一度SHUTDOWNコマンドC4を受信した場合は、対象ルータ番号を持つ隣接装置一覧テーブルT1中のエントリがなくなるため、別の隣接装置から同一のSHUTDOWNコマンドC4を複数受信しても、SHUTDOWNコマンドC4の中継処理は行われない。これにより、SHUTDOWNコマンドC4が永久に送信されるといった不具合は発生しない。
以上説明したように、本発明によれば、フィルタリング情報の共有化を図る際に、フィルタリング情報に宛先アドレスがあり、かつ宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致した場合には、フィルタリング情報を自装置に登録して隣接装置に中継し、フィルタリング情報に宛先アドレスの情報がない場合には、フィルタリング情報の受信ポートを宛先ポートとし、自装置に登録してフィルタリング情報を隣接装置に中継しない構成とした。
ネットワークの構築においては、従来、優先制御といった設定は、事前に考慮に入れてネットワーク構築を行うため、変更する際の手順や処理をも考慮している場合が多いが、フィルタリング情報はネットワーク構築時にはあまり考慮される点ではなく、またセキュリティ上の問題が発生した時に設定するといった突発的な設定が多い。そのため、設定が増えると一元的管理が難しくなり、また、ネットワーク構成が変化した時の変更も手間がかかってしまう。
本発明では、中継装置間でフィルタリング情報の共有化を行うことで管理の手間を省くと共に、フィルタリング対象外のフレームまでフィルタリング対象となってしまう問題点も克服することができる。
また、ネットワーク上でサービスを提供しているサーバにおいて、従来、アクセス制御のリストが設定される場合は多々あるが、これらの設定によるフィルタリングはあくまでサーバ内で行われるため、負荷が上がるとフィルタリングに必要となる負荷が非常に大きくなり、本来の情報転送のサービスが行えなくなるといった問題があった。さらに、ネットワーク上に流れる無駄なフレーム(フィルタリングによって廃棄対象となるフレーム)によって他の通信が阻害されるという問題もあった。
本発明では、サーバのアクセスリストに連動して、フィルタリング情報を持つFISPのコマンドを隣接装置に投げ、ネットワーク全体で共有するため、フィルタリングは中継装置で行われることとなり、サーバの全負荷をサービスそのものに振り分けることが可能となる。さらにまた、ネットワーク全体でフィルタリング設定がなされることから、フィルタリングによって廃棄対象となるパケットは、ネットワークの入り口で廃棄されるため、ネットワークに無駄なフレームが流れるのを防ぎ、他の通信を妨害する問題も回避可能となる。
さらに、本発明では、ネットワーク監視装置においても、外部から設定したフィルタリング情報によりFISPのコマンドを生成し、隣接の中継装置にコマンドを流して、運用監視対象のネットワーク全体にフィルタリング情報を一括して共有/解除させる構成とした。これにより、運用管理の効率化を図ることが可能になる。
なお、上記の説明では、FISP機能を中継装置に設けた場合を中心にして説明したが、中継装置以外の例えば、サーバやネットワーク監視装置にも適用することで、サーバやネットワーク監視装置のフィルタリング情報を共有したり、フィルタリング処理をサーバでなく中継装置に代用させることも可能になる。
また、FISP機能をサーバやネットワーク監視装置にも適用した場合には、サーバやネットワーク監視装置自体は、隣接装置からのフィルタリング情報を登録する必要はないので、図16の起動時処理、図17の登録処理、図21の定常動作、図22のSHUTDOWN処理の機能を中心に実装すればよい。
さらに、隣接装置からのFISPエントリを中継したり保持したりする必要もないので、図22のSHUTDOWN処理におけるFISPテーブル検索処理や削除処理も不要となる(FISPテーブル自体持つ必要はない)。
ただし、サーバにおいては、サーバが提供するサービスに連動してADD ENTRY/ADD RELATIVE ENTRYコマンドを送信する機構は別途必要であり、サービスが設定するフィルタリング情報からコマンドを作成し、送信する処理を実装する必要がある。また、ネットワーク監視装置で、中継装置にフィルタリング情報を一括して共有させ、その後に設定したフィルタリング情報を削除したい場合は、REMOVE ENTRYコマンドを用いて、一括解除することが可能である。
(付記1) ネットワーク上でフィルタリングを行ってフレームを伝送するネットワークシステムにおいて、
ネットワーク全体で必要なフィルタリング情報を共有するための、フィルタリング情報を含むコマンドの生成、解析を行うコマンド処理部を持ち、フィルタリング共有条件を適用する場合は、フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスがあり、かつ宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致し、宛先アドレスの中継先ポートが1つのみの場合には、フィルタリング情報を自装置に登録して隣接装置に中継するための制御を行い、フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスの情報がない場合には、フィルタリング情報の受信ポートを宛先ポートとして自装置に登録し、フィルタリング情報を隣接装置に中継しない制御を行うフィルタリング情報共有制御部と、前記フィルタリング情報共有制御部の指示にもとづいて、フィルタリング情報及びフレームの中継または廃棄のフィルタリングを行うフィルタリング部と、から構成される中継装置と、
前記中継装置を含む、ネットワークを構成する装置を接続する伝送媒体と、
を有することを特徴とするネットワークシステム。
(付記2) 前記フィルタリング情報共有制御部は、フィルタリング共有条件を適用しない場合には、強制的にフィルタリング情報の中継・登録を行うことを特徴とする付記1記載のネットワークシステム。
(付記3) 前記フィルタリング情報共有制御部は、フィルタリング情報に装置固有の情報が含まれている場合は、フィルタリング情報を中継しないことを特徴とする付記1記載のネットワークシステム。
(付記4) 前記フィルタリング情報共有制御部は、関連元の第1のフィルタリング情報に関連性を付けた第2のフィルタリング情報を持つコマンドを生成し、第2のフィルタリング情報は、第1のフィルタリング情報よりも優先度が低くなるように登録することを特徴とする付記1記載のネットワークシステム。
(付記5) 前記フィルタリング情報共有制御部は、すでに共有されたフィルタリング情報が外部指定により消された場合、消去用のコマンドを隣接装置へ流すことを特徴とする付記1記載のネットワークシステム。
(付記6) 前記フィルタリング情報共有制御部は、隣接装置の動作を常に確認するためのコマンドを送信し、隣接装置の動作が確認できない時は、停止した隣接装置を他装置に通知することを特徴とする付記1記載のネットワークシステム。
(付記7) 前記フィルタリング情報共有制御部は、隣接装置から送られてきたフィルタリング情報をすでに受け取っている場合は、受信情報を破棄することを特徴とする付記1記載のネットワークシステム。
(付記8) 前記フィルタリング情報共有制御部は、指定されたフィルタリング情報を登録できない場合は、登録は行わず、隣接装置への中継条件にしたがって中継制御のみを行うことを特徴とする付記1記載のネットワークシステム。
(付記9) 前記フィルタリング情報共有制御部は、自装置が停止する際に、停止する旨を隣接装置に通知し、または停止通知を受けた場合は隣接装置へ中継して、停止装置が設定したフィルタリング情報をすべて破棄することを特徴とする付記1記載のネットワークシステム。
(付記10) フィルタリング情報を含むコマンドを生成し、隣接の中継装置にコマンドを流して、自装置へのアクセスに対するフィルタリング処理をネットワーク全体で実行させるサーバ装置をさらに有することを特徴とする付記1記載のネットワークシステム。
(付記11) 外部から設定したフィルタリング情報によりコマンドを生成し、隣接の中継装置にコマンドを流して、運用監視対象のネットワーク全体にフィルタリング情報を一括して共有/解除させるネットワーク監視装置をさらに有することを特徴とする付記1記載のネットワークシステム。
(付記12) ネットワーク上でフィルタリングを行ってフレームを伝送する中継装置において、
ネットワーク全体で必要なフィルタリング情報を共有するための、フィルタリング情報を含むコマンドの生成、解析を行うコマンド処理部を持ち、フィルタリング共有条件を適用する場合は、フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスがあり、宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致し、かつ宛先アドレスの中継先ポートが1つのみの場合には、フィルタリング情報を自装置に登録して隣接装置に中継するための制御を行い、フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスの情報がない場合には、フィルタリング情報の受信ポートを宛先ポートとして自装置に登録し、フィルタリング情報を隣接装置に中継しない制御を行うフィルタリング情報共有制御部と、
前記フィルタリング情報共有制御部の指示にもとづいて、フィルタリング情報及びフレームの中継または廃棄のフィルタリングを行うフィルタリング部と、
を有することを特徴とする中継装置。
(付記13) 前記フィルタリング情報共有制御部は、フィルタリング共有条件を適用しない場合は、強制的にフィルタリング情報の中継・登録を行うことを特徴とする付記12記載の中継装置。
(付記14) 前記フィルタリング情報共有制御部は、フィルタリング情報に装置固有の情報が含まれている場合は、フィルタリング情報を中継しないことを特徴とする付記12記載の中継装置。
(付記15) 前記フィルタリング情報共有制御部は、関連元の第1のフィルタリング情報に関連性を付けた第2のフィルタリング情報を持つコマンドを生成し、第2のフィルタリング情報は、第1のフィルタリング情報よりも優先度が低くなるように登録することを特徴とする付記12記載の中継装置。
(付記16) 前記フィルタリング情報共有制御部は、すでに共有されたフィルタリング情報が外部指定により消された場合、消去用のコマンドを隣接装置へ流すことを特徴とする付記12記載の中継装置。
(付記17) 前記フィルタリング情報共有制御部は、隣接装置の動作を常に確認するためのコマンドを送信し、隣接装置の動作が確認できない時は、停止した隣接装置を他装置に通知することを特徴とする付記12記載の中継装置。
(付記18) 前記フィルタリング情報共有制御部は、隣接装置から送られてきたフィルタリング情報をすでに受け取っている場合は、受信情報を破棄することを特徴とする付記12記載の中継装置。
(付記19) 前記フィルタリング情報共有制御部は、指定されたフィルタリング情報を登録できない場合は、登録は行わず、隣接装置への中継条件にしたがって中継制御のみを行うことを特徴とする付記12記載の中継装置。
(付記20) 前記フィルタリング情報共有制御部は、自装置が停止する際に、停止する旨を隣接装置に通知し、または停止通知を受けた場合は隣接装置へ中継して、停止装置が設定したフィルタリング情報をすべて破棄することを特徴とする付記12記載の中継装置。
(付記21) ネットワーク上でフレームのフィルタリングを行うためのフィルタリング情報を共有するフィルタリング情報共有方法において、
ネットワークに接続された装置に対し、装置に設定されたフィルタリング情報を、ネットワーク上に隣接する装置に通知し、
通知を受けた装置が、送られてきたフィルタリング情報をもとに自装置へのフィルタリング情報を設定して、他装置への通知を行い、
フィルタリング共有条件を適用する場合は、フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスがあり、宛先アドレスの中継先ポートとフィルタリング情報を受信したポートとが一致し、かつ宛先アドレスの中継先ポートが1つのみの場合には、フィルタリング情報を自装置に登録して隣接装置に中継するための制御を行い、
フィルタリング共有条件として隣接装置から送信されたフィルタリング情報に宛先アドレスの情報がない場合には、フィルタリング情報の受信ポートを宛先ポートとして自装置に登録し、フィルタリング情報を隣接装置に中継しない制御を行って、ネットワーク全体でフィルタリング情報を共有することを特徴とするフィルタリング情報共有方法。
(付記22) フィルタリング共有条件を適用しない場合は、強制的にフィルタリング情報の中継・登録を行うことを特徴とする付記21記載のフィルタリング情報共有方法。
(付記23) フィルタリング情報に装置固有の情報が含まれている場合は、フィルタリング情報を中継しないことを特徴とする付記21記載のフィルタリング情報共有方法。
(付記24) 関連元の第1のフィルタリング情報に関連性を付けた第2のフィルタリング情報を持つコマンドを生成し、第2のフィルタリング情報は、第1のフィルタリング情報よりも優先度が低くなるように登録することを特徴とする付記21記載のフィルタリング情報共有方法。
(付記25) すでに共有されたフィルタリング情報が外部指定により消された場合、消去用のコマンドを隣接装置へ流すことを特徴とする付記21記載のフィルタリング情報共有方法。
(付記26) 隣接装置の動作を常に確認するためのコマンドを送信し、隣接装置の動作が確認できない時は、停止した隣接装置を他装置に通知することを特徴とする付記21記載のフィルタリング情報共有方法。
(付記27) 隣接装置から送られてきたフィルタリング情報をすでに受け取っている場合は、受信情報を破棄することを特徴とする付記21記載のフィルタリング情報共有方法。
(付記28) 指定されたフィルタリング情報を登録できない場合は、登録は行わず、隣接装置への中継条件にしたがって中継制御のみを行うことを特徴とする付記21記載のフィルタリング情報共有方法。
(付記29) 自装置が停止する際に、停止する旨を隣接装置に通知し、または停止通知を受けた場合は隣接装置へ中継して、停止装置が設定したフィルタリング情報をすべて破棄することを特徴とする付記21記載のフィルタリング情報共有方法。
(付記30) フィルタリング情報を含むコマンドを生成し、隣接の中継装置にコマンドを流して、自装置へのアクセスに対するフィルタリング処理をネットワーク全体で実行させるサーバ装置をさらに有することを特徴とする付記21記載のフィルタリング情報共有方法。
(付記31) 外部から設定されたフィルタリング情報によりコマンドを生成し、隣接の中継装置にコマンドを流して、運用監視対象のネットワーク全体にフィルタリング情報を一括して共有/解除させるネットワーク監視装置をさらに有することを特徴とする付記21記載のフィルタリング情報共有方法。