(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-01
(45)【発行日】2022-06-09
(54)【発明の名称】通信装置、通信システム、及び通信方法
(51)【国際特許分類】
H04L 49/55 20220101AFI20220602BHJP
【FI】
H04L49/55
(21)【出願番号】P 2018039031
(22)【出願日】2018-03-05
【審査請求日】2020-09-11
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度 国立研究開発法人情報通信研究機構、光トランスポートNWにおける用途・性能に適応した通信処理合成技術の研究開発 委託研究、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】504411166
【氏名又は名称】アラクサラネットワークス株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】特許業務法人藤央特許事務所
(72)【発明者】
【氏名】赤羽 真一
(72)【発明者】
【氏名】松山 信仁
(72)【発明者】
【氏名】長坂 充
(72)【発明者】
【氏名】須貝 和雄
(72)【発明者】
【氏名】村中 孝行
【審査官】野元 久道
(56)【参考文献】
【文献】特開2015-171052(JP,A)
【文献】特開2005-277804(JP,A)
【文献】特開2013-115603(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 49/00
(57)【特許請求の範囲】
【請求項1】
データを転送する通信装置であって、
共通の属性を有するデータであるフローを特定するための
フロー条件、及び前記フロー条件に対応する出力情報を示すフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
データのヘッダ情報と、データの出力情報と、の対応を示す宛先情報と、
前記通信装置に入力されたデータの出力情報を前記宛先情報に基づいて判定する、宛先判定部と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、
前記フロー条件において当該フローのフロー条件に対応する出力情報と、前記宛先判定部が判定した出力情報と、が一致すると判定した場合にのみ、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、
前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含む通信装置。
【請求項2】
請求項1に記載の通信装置であって、
前記属性は、データのヘッダ情報、入力ポート情報、出力ポート情報、及びVLAN情報の少なくとも1つを含む、通信装置。
【請求項3】
請求項1に記載の通信装置であって、
前記入力フローカウンタ処理部、及び前記出力フローカウンタ処理部の少なくとも一方は、FPGA(Field Programmable Gate Array)を含んで構成され、
前記少なくとも一方は、前記フロー条件情報が示すフローに基づいて自身を再構成する、通信装置。
【請求項4】
請求項1に記載の通信装置であって、
前記入力フローカウンタ処理部は、前記フロー条件情報に定義されているフローに属さないデータが前記通信装置に入力された場合、所定種類の属性を当該データから抽出し、前記抽出した属性を有するデータを新たなフローとして前記フロー条件情報に設定する、通信装置。
【請求項5】
請求項1に記載の通信装置であって、
前記カウンタ比較部は、前記比較処理において、同一のフローの入力フロー流量と出力フロー流量とを比較する、通信装置。
【請求項6】
請求項1に記載の通信装置であって、
前記比較処理における比較対象の入力フローと出力フローの対応を示す比較フロー管理情報を含み、
前記カウンタ比較部は、前記比較処理において、前記比較フロー管理情報が示す入力フローの入力フロー流量と、前記フローカウンタ情報において当該入力フローに対応する出力フローの出力フロー流量とを比較する、通信装置。
【請求項7】
データを転送する通信装置であって、
共通の属性を有するデータであるフローを特定するためのフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、
前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含み、
前記通信装置は、入力されたデータをコピーして複数の装置に出力し、
前記カウンタ比較部は、前記比較処理において、コピー数に基づいて前記比較を行う通信装置。
【請求項8】
データを転送する通信装置であって、
共通の属性を有するデータであるフローを特定するためのフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、
前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含み、
前記比較処理における比較対象の入力フローと出力フローの対応を示す比較フロー管理情報を含み、
前記カウンタ比較部は、前記比較処理において、前記比較フロー管理情報が示す入力フローの入力フロー流量と、前記フローカウンタ情報において当該入力フローに対応する出力フローの出力フロー流量とを比較し、
前記比較フロー管理情報において、第1装置から第2装置へのデータ送信を示す第1入力フローと、前記第2装置から前記第1装置へのデータ送信を示す第1出力フローと、の対応が定義され、
前記カウンタ比較部は、前記比較処理において、過去の所定期間において前記通信装置に入力された前記第1入力フローのフロー流量と、前記通信装置から出力された前記第1出力フローの出力フロー流量と、の比に基づいて、前記比較を行う、通信装置。
【請求項9】
データを転送する複数の通信装置と、前記複数の通信装置を管理する管理装置と、を含む通信システムであって、
前記複数の通信装置それぞれは、
共通の属性を有するデータであるフローを特定するための
フロー条件、及び前記フロー条件に対応する出力情報を示すフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
データのヘッダ情報と、データの出力情報と、の対応を示す宛先情報と、
前記通信装置に入力されたデータの出力情報を前記宛先情報に基づいて判定する、宛先判定部と、
前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、
前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フロー条件において当該フローのフロー条件に対応する出力情報と、前記宛先判定部が判定した出力情報と、が一致すると判定した場合にのみ、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、を含み、
前記管理装置は、
フローが最初に入力される入力通信装置と、最後にフローを出力する出力通信装置と、フローが通過するフロー通過通信装置と、をフローごとに示すフロー管理情報を保持し、
前記フロー管理情報が示すフローに対応する入力通信装置から、前記フローカウンタ情報において当該フローに対応する入力フロー流量を取得し、
前記フロー管理情報が示す当該フローに対応する出力通信装置から、前記フローカウンタ情報において当該フローに対応する出力フロー流量を取得し、
前記取得した入力フロー流量と前記取得した出力フロー流量とを比較する第1比較処理の結果に基づいて、当該フローの通信に異常が発生しているか否かを判定し、
異常が発生していると判定したフローに前記フロー管理情報において対応するフロー通過通信装置である障害発生通信装置候補それぞれから、前記フローカウンタ情報において当該フローに対応する入
力フロー流量と出力フロー流量とを取得し、
前記障害発生通信装置候補それぞれについて、取得した入力フロー流量と取得した出力フロー流量とを比較する第2比較処理に基づいて、前記障害発生通信装置候補に障害が発生しているか否かを判定する、通信システム。
【請求項10】
請求項9に記載の通信システムであって、
前記管理装置は、
前記複数の通信装置から前記フロー条件情報が示すフローを特定するための情報を取得し、
前記取得した情報に基づいて、前記フロー管理情報を更新する、通信システム。
【請求項11】
データを転送する通信装置による通信方法であって、
前記通信装置は、
共通の属性を有するデータであるフローを特定するための
フロー条件、及び前記フロー条件に対応する出力情報を示すフロー条件情報と、
前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、
データのヘッダ情報と、データの出力情報と、の対応示す宛先情報と、を保持し、
前記通信方法は、
前記通信装置が、前記通信装置に入力されたデータの出力情報を前記宛先情報に基づいて判定し、
前記通信装置が、前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新し、
前記通信装置が、前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フロー条件において当該フローのフロー条件に対応する出力情報と、前記判定した出力情報と、が一致すると判定した場合にのみ、前記フローカウンタ情報における当該フローの出力フロー流量を更新し、
前記通信装置が、前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定する、ことを含む通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信システム、及び通信方法に関する。
【背景技術】
【0002】
インターネットや企業ネットワークにおける通信パケットを中継するパケット中継装置、及び複数のパケット中継装置から構成されるネットワークを用いて、多数の端末間の通信パケットが転送される。パケット中継装置に故障が発生した場合、端末間の通信ができなくなるが、通信を復旧させるため、パケット中継装置全体又は一部の機能を停止させ、別のパケット中継装置で通信を再開させる。
【0003】
パケット中継装置の装置内部の障害を検出する技術として、特開2014-165819号公報(特許文献1)がある。この公報には、「NPU受信部32内部の監視区間にフレームが入力される際に、入力統計情報生成部50は、監視区間への入力フレーム数に関する入力統計情報を生成し、入力統計情報挿入部60は、その情報をフレームへ挿入する。監視区間からフレームが出力される際に、入力統計情報抽出部62は、フレームから入力統計情報を抽出し、出力統計情報生成部52は、監視区間からの出力フレーム数に関する出力統計情報を生成する。比較部64は、入力統計情報抽出部62が抽出した入力統計情報と、出力統計情報生成部52が生成した出力統計情報を比較することにより監視区間の異常を検出する。」と記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術においては、入力フレーム数と出力フレーム数を比較して異常を検知しているが、例えば、出力先が誤る障害が発生した場合には、入力フレーム数と出力フレーム数は一致してしまい、異常を検知することができない。
【0006】
このような障害による異常を検知するためには、通信に異常が発生したフローを特定することが必要である。そこで本発明の一態様は、通信に異常が発生したフローを特定することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明の一態様は以下の構成を採用する。データを転送する通信装置は、共通の属性を有するデータであるフローを特定するためのフロー条件情報と、前記通信装置に入力された入力フロー流量、及び前記通信装置が出力した出力フロー流量を、フローごとに示すフローカウンタ情報と、前記フロー条件情報を参照して前記通信装置に入力されたデータが属するフローを特定し、前記フローカウンタ情報における当該フローの入力フロー流量を更新する入力フローカウンタ処理部と、前記フロー条件情報を参照して前記通信装置が出力したデータが属するフローを特定し、前記フローカウンタ情報における当該フローの出力フロー流量を更新する出力フローカウンタ処理部と、前記フローカウンタ情報を参照して、入力フロー流量と出力フロー流量とを比較する比較処理の結果に基づいて、通信に異常が発生しているフローを特定するカウンタ比較部と、を含む。
【発明の効果】
【0008】
本発明の一態様によれば、通信に異常が発生したフローを特定することができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0009】
【
図1】実施例1におけるパケット中継システムの構成例を示すブロック図である。
【
図2】実施例1におけるパケット中継装置の構成例を示すブロック図である。
【
図3】実施例1における入力フロー条件テーブルの構成例である。
【
図4】実施例1における
図4は、入力フローカウンタテーブルの構成例である。
【
図5】実施例1におけるパケット転送処理の一例を示すフローチャートである。
【
図6】実施例1におけるパケット転送処理の一例を示すフローチャートである。
【
図7】実施例1における入力フローカウンタと出力フローカウンタの比較処理の一例を示すフローチャートである。
【
図8】実施例2におけるパケット中継システムの構成例を示すブロック図である。
【
図9】実施例2における比較フロー管理テーブルの構成例である。
【
図10】実施例3におけるパケット中継システムの構成例を示すブロック図である。
【
図11】実施例3におけるフロー管理情報テーブルの構成例である。
【
図12】実施例3におけるネットワーク単位での比較処理の一例を示すフローチャートである。
【
図13】実施例3における障害発生装置切り分け処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【0011】
パケット中継装置において、特定のパケットのみ廃棄されるような障害が発生する場合がある。IEEE(Institute of Electrical and Electronics Engineers)802.1Qで規定されているVLAN-Tag内のVLAN IDでVLANを判定し、同一VLANに属するパケットのみをVLANに属する出力ポートへ出力し、パケット中継装置に予め設定されていないVLAN IDの値を設定されたパケットは廃棄する、パケット中継装置の一例について説明する。
【0012】
パケット中継装置は、VLAN IDが装置に設定されていることを示す状態(以下、VLAN有効状態)をVLAN IDごとに記憶するテーブルをメモリ内に保持している。パケット中継装置は、パケットを受信すると、当該テーブルを読み出し、VLAN有効状態であればパケットの処理を継続し、VLAN無効状態であればパケットを廃棄する。この場合、特定のVLAN IDに対して、VLAN有効状態にも関わらず誤ってVLAN無効状態と読み出される故障がメモリに発生すると、当該特定のVLAN IDが設定されたパケットが誤って廃棄される。
【0013】
このような事態が発生した場合、誤って廃棄されるパケットを特定することが求められる。また、誤って廃棄されるパケットの送信元端末等の入力元情報、及び宛先端末等の出力先情報によって示されるフローを特定することが求められる。前述した特許文献1にはフローを特定することについて記載されていない。
【0014】
また、パケットの出力先が誤るような障害の発生を検出することが求められる。例えば、パケットの出力先を格納するメモリの読出しアドレスを指定する回路が故障し、別のパケットの出力先を読み出してしまう故障した場合、特許文献1に記載の技術は、入力フレーム数と出力フレーム数を比較して異常を検知しているため、出力先が誤る障害が発生しても、入力フレーム数と出力フレーム数は一致してしまい、異常を検知できない。
【0015】
そこで、本実施形態のパケット中継装置は、入力フロー流量と出力フロー流量とを比較する比較処理を実行することにより、通信に異常が発生しているフローを特定することができ、ひいては、上述した問題を解決することができる。
【実施例1】
【0016】
図1は、本実施例におけるパケット中継システムの構成例を示すブロック図である。パケット中継システムは、パケット中継装置1000、サーバ2、管理端末3、及び複数のユーザ端末4を含む。
図1の例では、パケット中継システムは、2つのユーザ端末4を含み、一方のユーザ端末4の識別子がA、他方のユーザ端末4の識別子がBであるものとする。
【0017】
パケット中継装置1000は、通信装置の一例であり、ある装置から他の装置へパケットを中継する。パケット中継装置1000は、識別子がAのユーザ端末4からサーバ2へのパケット通信(フロー1100)と、識別子がBのユーザ端末4からサーバ2へのパケット通信(フロー1200)の、処理及び監視を行う。なお、フローとは、共通の属性を有するパケットのグループである。また、本実施例では、データの一例としてパケットが処理される例を説明するが、処理対象はパケット以外のデータ(例えば、フレーム及びセグメント等)であってもよい。
【0018】
パケット中継装置1000は、フロー1100として入力されるパケット数の積算値又はバイト数の積算値を、入力カウンタ1101を用いてカウントし、保持する。また、パケット中継装置1000は、フロー1100としてパケット中継装置1000から出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ1102を用いてカウントし、保持する。パケット中継装置1000は、入力カウンタ1101と出力カウンタ1102とを比較して、フロー1100の通信が正常か否かを判定する。
【0019】
またパケット中継装置1000は、フロー1200として入力されるパケット数の積算値又はバイト数の積算値を、入力カウンタ1201を用いてカウントし、保持する。パケット中継装置1000は、フロー1200としてパケット中継装置1000から出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ1202を用いてカウントし、保持する。パケット中継装置1000は、入力カウンタ1201と出力カウンタ1202とを比較して、フロー1200の通信が正常か否かを判定する。
【0020】
サーバ2、管理端末3、及びユーザ端末4は、いずれも、例えば、CPU(プロセッサ)、メモリ、補助記憶装置、マウス及びキーボード等の入力装置、ディスプレイ等の出力装置、並びに通信インタフェースを含む計算機である。
【0021】
サーバ2は、パケット中継装置1000と接続され、ユーザ端末4からの要求に応じて所定のサービスを提供する。管理端末3は、パケット中継装置1000の後述する装置制御部1001と接続され、パケット中継装置1000を管理する。管理端末3は、例えば、管理者からパケット中継装置1000の設定指示を受け付け、装置制御部1001に送信する。また、管理端末3は、例えば、パケット中継装置1000からの通知を受信し表示する。
【0022】
ユーザ端末4は、パケット中継装置1000と接続され、サーバ2に対して所定のサービスを要求し、サーバ2から当該要求に対応するサービスの提供を受ける。なお、
図1の例では、各装置が直接有線接続されているが、無線接続されていてもよい。
【0023】
図2は、本実施例におけるパケット中継装置1000の構成例を示すブロック図である。パケット中継装置1000は、例えば、複数の入力ポート1020、複数の出力ポート1030、装置制御部1001、パケット蓄積部1002、入力フローカウンタ処理部1003、入力フロー条件テーブル1004、入力フローカウンタテーブル1005、受信判定部1006、宛先判定部1007、送信判定部1008、出力フローカウンタ処理部1009、出力フロー条件テーブル1010、出力フローカウンタテーブル1011、及びカウンタ比較部1012を含む。
【0024】
なお、パケット中継装置1000に含まれる各部は、例えば、ASIC(application specific integrated circuit)やFPGA(Field Programmable Gate Array)等の回路で構成されている。また、各テーブルは、例えば、パケット中継装置1000が保持するメモリに格納されている。また、パケット中継装置1000に含まれる各部は、ソフトウェアで実現されてもよい。即ち、パケット中継装置1000がCPU(プロセッサ)及びメモリを含み、メモリに格納されたプログラムに従ってCPUが動作することにより、各部が実現されてもよい。
【0025】
装置制御部1001は、管理端末3から受信した設定指示等に基づいて、パケット中継装置1000内部の各種設定を行う。入力ポート1020は、自身に接続された入力回線からパケットを受信し、パケット蓄積部1002に送信する。出力ポート1030は、パケット蓄積部1002からパケットを受信し、自身に接続された出力回線へパケットを送信する。
【0026】
パケット蓄積部1002は、入力ポート1020から受信したパケットを蓄積する。また、パケット蓄積部1002は、受信したパケットからヘッダ情報を抽出して入力フローカウンタ処理部1003へ通知する。
【0027】
入力フローカウンタ処理部1003は、パケットのヘッダ情報を受信判定部1006へ通知する。また、入力フローカウンタ処理部1003は、入力フロー条件テーブル1004に基づいて入力カウンタを特定し、入力フローカウンタテーブル1005のカウンタ値を更新する。受信判定部1006は、ヘッダ情報を基にして受信判定情報(パケットの通過又は廃棄を示す情報)を決定し、ヘッダ情報と受信判定情報とを宛先判定1007へ送信する。
【0028】
宛先判定部1007は、ヘッダ情報を基にしてパケットの出力ポート、及び出力用VLAN情報等の出力情報を決定して、ヘッダ情報と受信判定情報と宛先情報とを送信判定部1008へ送信する。送信判定部1008は、ヘッダ情報を基にして送信判定情報(パケットの通過又は廃棄を示す情報)を決定する。また、送信判定部1008は受信判定情報及び/又は送信判定情報に基づいて、パケットを通過させるか廃棄するかを決定し、パケット蓄積部1002及び出力フローカウンタ処理部1009に、宛先情報と共に通知する。
【0029】
パケット蓄積部1002は、宛先情報が示す出力ポート及び出力用VLAN情報等に基づいて、パケットに必要な情報を付与し、パケットを出力ポートへ出力する。出力フローカウンタ処理部1009は、また、出力フローカウンタ処理部1009は、出力フロー条件テーブル1010に基づいて出力カウンタを特定し、出力フローカウンタテーブル1011のカウンタ値を更新する。
【0030】
入力フロー条件テーブル1004は、入力フローカウンタ処理部1003がフロー条件を基にして対応するカウンタを特定するためのテーブルである。入力フローカウンタテーブル1005は、各入力カウンタのカウンタ値(例えば、パケット数の積算値及びバイト数の積算値)を格納する。出力フロー条件テーブル1010は、出力フローカウンタ処理部1009がフロー条件を基にして対応するカウンタを特定するためのテーブルである。出力フローカウンタテーブル1011は、各出力カウンタのカウンタ値(例えば、パケット数の積算値及びバイト数の積算値)を格納する。
【0031】
図3は、入力フロー条件テーブル1004の構成例である。なお、出力フロー条件テーブル1010の構成は、入力フロー条件テーブル1004の構成と同様であるため、ここでは入力フロー条件テーブル1004のみについて説明する。
【0032】
入力フロー条件テーブル1004は、例えば、フロー条件欄1405と、カウンタ番号欄1406と、を含む。フロー条件欄1405は、フロー条件を格納する。なお、入力フロー条件テーブル1004に格納されている全てのフロー条件は、出力フロー条件テーブル1010にも格納されている。なお、1つのパケットが1つのフロー条件のみに属するように、フロー条件欄1405のフロー条件が定められていてもよいし、1つのパケットが複数のフロー条件に属するように、フロー条件欄1405のフロー条件が定められていてもよい。
【0033】
カウンタ番号欄1406は、対応するフロー条件が特定するフローの流量をカウントするカウンタの番号(識別子)を格納する。
図3の例では、フロー条件1とカウンタ番号1が対応し、フロー条件2とカウンタ番号2が対応する。
【0034】
フロー条件は、フローを特定するための情報である。フロー条件は、例えば、パケットのヘッダ情報、入力回線番号、出力回線番号、及び当該情報に基づいて決定されるVLAN識別情報等を含む複数の情報、の組み合わせで表現される。
【0035】
また、パケットのヘッダ情報は、Ethernet(登録商標、以下同)フレームのヘッダ情報である宛先MAC(Media Access Control)アドレス、送信元MACアドレス、及びVLAN ID等の各フィールド、並びにIP(Internet Procotol)パケットのヘッダ情報である宛先IPアドレス、送信元IPアドレス、上位プロトコル、TCP(Transfer Control Protocol)の宛先ポート番号、送信元ポート番号等を含む。
【0036】
なお、入力フロー条件テーブル1004は、
図3に示す構成に限られない。例えば、フロー条件をCAM(Content Addressable Memory)で構成し、カウンタ番号はCAMのアドレスに一対一に対応するようにRAM(Random Access Memory)に格納する構成をとってもよい。
【0037】
図4は、入力フローカウンタテーブル1005の構成例である。なお、出力フローカウンタテーブル1011の構成は、入力フローカウンタテーブル1005と同様であるため、ここでは入力フローカウンタテーブル1005のみについて説明する。
【0038】
入力フローカウンタテーブル1005は、例えば、カウンタ番号欄1501と、パケット数カウント値欄1502と、バイト数カウント値欄1503と、を含む。カウンタ番号欄1501は、カウンタ番号を格納する。パケット数カウント値欄1502は、対応するカウンタ番号のカウンタがカウントしたパケット数を格納する。バイト数カウント値欄1503は、対応するカウンタ番号のカウンタがカウントしたバイト数を格納する。
【0039】
なお、入力フローカウンタテーブル1005は、パケット数カウント値欄1502及びバイト数カウント値欄1503の一方のみを含んでいてもよい。また、入力フローカウンタテーブル1005は、フローの流量(フローに属するパケットのヘッダ情報等を含むデータ総量)を示す値であれば、パケット数及びバイト数以外の値を格納してもよい。
【0040】
図5及び
図6は、パケット転送処理の一例を示すフローチャートである。パケット転送処理は、例えば、パケット中継装置1000がいずれかの入力ポート1020からパケットを受信したことをトリガとして開始する。
【0041】
パケット蓄積部1002はパケットをポートから受信したパケットをメモリに蓄積し、当該パケットからヘッダ情報、及びバイト数を抽出し、またパケット数を1と判断し、当該抽出した情報と当該パケット数とを、入力フローカウンタ処理部1003へ送信する(ステップ301)。なお、ヘッダ情報以外の情報(例えば、入力回線番号、出力回線番号、及びVLAN識別情報等)を含むフロー条件が設定されている場合には、パケット蓄積部1002は、ヘッダ情報に加えて当該情報を入力フローカウンタ処理部1003へ送信する。以下、フロー条件は、ヘッダ情報のみで構成されている例を説明する。
【0042】
入力フローカウンタ処理部1003は、パケット蓄積部1002から受信したヘッダ情報を検索キーにして、入力フロー条件テーブル1004を検索して検索キーに該当するフロー条件を特定し、特定したフロー条件に対応するカウンタ番号を特定する(ステップ302)。
【0043】
また、ステップ302において、入力フローカウンタ処理部1003は、特定したカウンタ番号を検索キーにして、入力フローカウンタテーブル1005を検索し、一致するカウンタ番号に対応するパケット数カウント値欄1502及びバイト数カウント値欄1503の値を加算する。その後、ステップ302において、入力フローカウンタ処理部1003は、ヘッダ情報を受信判定部1006に送信する。
【0044】
受信判定部1006は、例えば、1以上の所定のヘッダ情報に基づいて、受信判定情報を決定する(ステップ303)。受信判定情報は、パケットを通過させるか廃棄するかを示す情報である。なお、例えば、受信判定部1006内には、当該所定のヘッダ情報の値と、受信判定情報と、の対応情報が予め設定されており、受信判定部1006は、当該対応情報に基づいて、受信判定情報を決定する。また、ステップ303において、受信判定部1006は、受信判定情報と、入力フローカウンタ処理部1003から受信したヘッダ情報と、を宛先判定部1007へ送信する。
【0045】
宛先判定部1007は、例えば、1以上の所定のヘッダ情報に基づいて、出力情報を決定する(ステップ304)。なお、宛先判定部1007内には、例えば、当該所定のヘッダ情報の値と、パケットの出力ポート及び出力用VLAN情報等の出力情報と、の対応を示す宛先情報が、予め設定されており、宛先判定部1007は、当該対応情報に基づいて、出力情報を決定する。また、ステップ304において、宛先判定部1007は、受信判定情報と決定した出力情報とを送信判定部1008へ送信する。
【0046】
送信判定部1008は、例えば、1以上の所定のヘッダ情報に基づいて、送信判定情報を決定する(ステップ305)。送信判定情報は、パケットを、通過させるか廃棄させるかを示す情報である。なお、送信判定部1008内には、当該所定のヘッダ情報の値と、送信判定情報と、の対応情報が予め設定されており、送信判定部1008は、当該対応情報に基づいて、送信判定情報を決定する。なお、送信判定部1008は、受信判定情報が「廃棄」である場合には、自動的に送信判定情報も「廃棄」に決定してもよい、又は送信判定情報の決定処理自体を実行しなくてもよい。
【0047】
送信判定部1008は、受信判定情報及び送信判定情報を検証する(ステップ306)。送信判定部1008は、受信判定情報及び送信判定情報の双方が通過を示すと判定した場合、ステップ307に移行する。また、送信判定部1008は、受信判定情報及び送信判定情報の少なくとも一方が廃棄を示すと判定した場合、ステップ310に移行する。
【0048】
送信判定部1008は、ステップ306において受信判定情報及び送信判定情報の双方が通過を示すと判定した場合、パケット処理情報を「通過」と決定して、パケット処理情報と出力情報とを、パケット蓄積部1002及び出力フローカウンタ処理部1009へ送信する(ステップ307)。
【0049】
続いて、パケット蓄積部1002は、パケット処理情報が「通過」であると判定した場合、出力情報に基づいて、当該パケットを対応する出力ポート1030へ出力する(ステップ308)。また、ステップ308において、パケット蓄積部1002は、出力情報に基づいて、当該パケットに対応する出力VLANに対応するVLAN IDを当該パケットに付与する。
【0050】
続いて、出力フローカウンタ処理部1009は、パケット処理情報が「通過」であると判定した場合、当該パケットのヘッダ情報を検索キーにして、出力フロー条件テーブル1010を検索して検索キーに該当するフロー条件を特定し、特定したフロー条件に対応するカウンタ番号を特定する(ステップ309)。また、ステップ309において、出力フローカウンタ処理部1009は、特定したカウンタ番号を検索キーにして、出力フローカウンタテーブル1011を検索し、一致するカウンタ番号に対応するカウンタに対してパケット数カウント値欄1502及びバイト数カウント値欄1503の値を加算する。
【0051】
送信判定部1008は、ステップ306において受信判定情報及び送信判定情報の少なくとも一方が廃棄を示すと判定した場合、パケット処理情報を「廃棄」と決定して、パケット処理情報をパケット蓄積部1002及び出力フローカウンタ処理部1009へ送信する(ステップ310)。なお、この場合、送信判定部1008は、パケット処理情報を出力フローカウンタ処理部1009に送信しなくてもよい。
【0052】
続いて、パケット蓄積部1002は、パケット処理情報が「廃棄」の場合、当該パケットを廃棄する(ステップ311)。また、出力フローカウンタ処理部1009は、パケット処理情報が「廃棄」の場合、処理を行わない(ステップ312)。
【0053】
なお、送信判定部1008は、ステップ306において、受信判定情報及び送信判定情報の少なくとも一方が通過を示すと判定した場合にステップ307に移行し、双方が廃棄を示すと判定した場合にステップ310に移行してもよい。
【0054】
図7は、入力フローカウンタと出力フローカウンタの比較処理の一例を示すフローチャートである。比較処理は、一定時間ごとに(例えば、前回の比較処理終了から所定時間経過後)にカウンタ比較部1012によって開始する。カウンタ比較部1012は、入力フロー条件テーブル1004の最初のフロー条件(
図3の例ではフロー条件1)を対象フロー条件に決定する(ステップ313)。
【0055】
カウンタ比較部1012は、対象フロー条件に対応する入力カウンタ及び出力カウンタの値を読み出す(ステップ314)。具体的には、カウンタ比較部1012は、入力フロー条件テーブル1004において対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル1005において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【0056】
同様に、カウンタ比較部1012は、出力フロー条件テーブル1010において対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル1011において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値(入力カウンタの値と同種の値)を出力カウンタの値として読み出す。
【0057】
続いて、カウンタ比較部1012は、読み出した入力カウンタ及び出力カウンタの値を比較する(ステップ315)。具体的には、例えば、カウンタ比較部1012は、読み出した入力カウンタと出力カウンタの値の差を計算する。
【0058】
続いて、カウンタ比較部1012は、対象フロー条件が、入力フロー条件テーブル1004の最後のフロー条件であるか否かを判定する(ステップ316)。カウンタ比較部1012は、ステップ316において、対象フロー条件が最後のフロー条件でないと判定した場合、入力フロー条件テーブル1004における次のフロー条件を対象フロー条件に決定し(ステップ317)、ステップ314に戻る。
【0059】
カウンタ比較部1012は、ステップ316において、対象フロー条件が最後のフロー条件であると判定した場合、ステップ318に移行する。カウンタ比較部1012は、ステップ315における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する(ステップ318)。カウンタ比較部1012は、ステップ318において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、ステップ313に戻る。
【0060】
カウンタ比較部1012は、ステップ318において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、障害が発生したと判断し、障害が発生したこと、及びカウンタの値の差が当該所定の閾値を超えた比較結果におけるフロー条件を、装置制御部1001に通知する(ステップ319)。また、ステップ319において、通知を受けた装置制御部1001は、通知されたフロー条件と異常が発生したことを、ログメッセージとして管理端末3の表示装置等に表示する。また、ステップ319において、装置制御部1001は、パケット中継装置1000を再起動する。
【0061】
なお、カウンタ比較部1012は、ステップ315において、比較結果におけるカウンタ値の差が所定の閾値を超えるか否かを判定してもよい。この場合、カウンタ比較部1012は、当該差が当該所定の閾値を超えていると判定した場合、入力フロー条件テーブル1004の残りのフロー条件についてのカウンタ値の比較を行うことなく、ステップ319に移行してもよい。また、上述した例において、異常が発生しない限り比較処理が終了しないが、例えば、管理端末3を介した管理者からの指示等に従って、比較処理が終了してもよい。
【0062】
上述のように、パケット中継装置1000は、入力カウンタの値と出力カウンタの値とを比較することにより、パケット中継装置1000内の故障等を原因とする通信ができなくなったフローを特定することができる。
【0063】
なお、パケット中継装置1000は、以下の方法によって、パケットの出力先が誤るような故障が発生による障害を検出してもよい。まず、出力フロー条件テーブル1010は、各フロー条件に対応する出力先情報をさらに保持している。
【0064】
パケット処理時のステップ309において、出力フローカウンタ処理部1009は、出力フロー条件テーブル1010から特定したフロー条件に対応する出力先情報と、送信判定部1008から通知された出力情報と、が一致すると判定した場合にのみ出力フローカウンタテーブル1011の当該フロー条件に対応するカウンタ値を更新する。
【0065】
このような処理が行われることによって、出力先が誤る故障が発生した場合、出力フローカウンタテーブル1011のカウンタ値は更新されないため、入力フローカウンタテーブル1005のカウンタ値との比較処理における差分が大きくなり、パケット中継装置1000は異常を検出することができる。
【0066】
なお、ネットワークの構成変化により出力先が変更する場合は、パケット中継装置1000が誤って異常と判定しないように、新たな出力先情報が出力フロー条件テーブル1010に登録されるまで、パケット中継装置1000は、比較処理を実行しないことが望ましい。
【0067】
なお、入力フロー条件テーブル1004等に設定されるフロー条件は、パケット中継装置1000の管理者等によって予め設定されている。また、パケット中継装置1000がパケットの受信時にこれらのテーブルにフロー条件を設定してもよい。
【0068】
具体的には、例えば、入力フローカウンタ処理部1003は、ステップ302において、入力フロー条件テーブル1004を検索した結果、当該パケットが属するフロー条件が存在しない場合、新規のフローに属するパケットを受信したと判断し、当該フローに対応するフロー条件を生成する。さらに、入力フローカウンタ処理部1003は、入力フロー条件テーブル1004に当該フロー条件及び当該フローのパケットをカウントするカウンタ番号を設定し、入力フローカウンタテーブル1005に当該カウンタ番号を設定する。入力フローカウンタ処理部1003は、フロー条件の生成において、例えば、パケット中継装置1000の管理者等によって予め設定されたヘッダ情報、装置のポート情報、及びVLAN識別情報等から新たにフロー条件を生成する。
【0069】
なお、出力フロー条件テーブル1010への新たなフロー条件及びカウンタ番号の設定処理、並びに出力フローカウンタテーブル1011への当該カウンタ番号の設定処理は、例えば、ステップ309において、出力フローカウンタ処理部1009によって、同様の方法によって行われる。
【0070】
フロー条件は、パケット中継装置1000の管理者の監視ポリシーにより異なる。例えば、VLANとユーザ端末4が一対一に対応する構成の場合、ユーザ端末4ごとの通信を監視するためには、フロー条件はVLAN識別情報を含めばよい。また、例えば、ユーザ端末4が通信するプロトコルごとの通信を監視するためには、フロー条件は、ユーザ端末4のIPアドレスとプロトコル情報との組み合わせを含めばよい。
【0071】
また、パケット中継装置1000がIP、MPLS、及びEthernet、など複数のプロトコルを対応可能な構成をとり、かつ当該プロトコルごとに監視するフロー条件の組み合わせが異なる場合、入力フロー条件テーブル1004及び出力フロー条件テーブル1010において、プロトコルごとに異なるフロー条件が設定されていればよい。入力フローカウンタ処理部1003及び出力フローカウンタ処理部1009が回路構成を再構成可能なFPGAを含んで実現されている場合、プロトコルごとに異なるフロー条件を用いてフロー条件テーブルを検索する構成をとることが望ましい。プロトコルごとにフロー条件に用いるヘッダ情報のヘッダの長さが異なることが想定されるため、当該構成により、各プロコトルに対して最小限のハードウェアリソースを用いてフローカウンタ処理を行うことができる。
【0072】
なお、上述した例で、一定時間ごとに比較処理が行われるが、パケット中継装置1000は、例えば、パケットを受信するたびに、比較処理が実施されてもよい。具体的には、パケット転送処理時に、例えば、入力フローカウンタの値がヘッダ情報等と同時に、入力フローカウンタ処理部1003から、受信判定部1006、宛先判定部1007、送信判定部1008へと順次通知され、出力フローカウンタ処理部1009が入力カウンタの値と出力カウンタの値とを比較してもよい。この場合、入力フローカウンタの積算と出力フローカウンタの積算の間に別のパケット処理が行われないため、カウンタ値の差がなくなり、通信の異常検知の精度が向上する利点がある。
【0073】
なお、例えば、比較処理において、入力カウンタの値及び出力カウンタの値を、それぞれ、入力フローカウンタテーブル1005及び出力フローカウンタテーブル1011から読み出す時刻が異なり、その時刻の間にパケット処理を行う場合、当該フローの通信に異常がなくても、カウンタ値に差分が生じる。従って、ステップ318における所定の閾値は、このカウンタ値の差分を通信の異常と誤判断しない程度の大きさが確保されている必要がある。
【0074】
また、正常に通信が行われている場合でも、入力フローと出力フローのカウンタ値、一対一の対応ではなく、1対n(nは自然数)の対応である場合も考えられる。具体的には、パケット蓄積部1002がパケットを複数(n個)の出力先へコピーするマルチキャスト通信をする例がある。この例において、通信が正常に行われている時は、マルチキャストの入力フローカウンタのカウンタ値がaであるとすると、コピー後の出力フローカウンタの値がaのn倍になる。
【0075】
マルチキャスト通信が行われる場合、前述したカウンタ値の読み出し時刻の差によるカウンタ値の差分もn倍になるため、装置制御部1001は、例えば、マルチキャストコピー数に応じてステップ318における閾値を動的に決定する。つまり、マルチキャストコピー数が変更になった場合、装置制御部1001は、変更後のマルチキャストコピー数に応じて当該閾値を更新する。なお、閾値を変更せずに、カウンタ比較部1012が、ステップ315において、マルチキャストコピー数に応じて、入力カウンタの値を大きくした状態(例えばn倍)又は出力カウンタ値を小さくした状態(例えば1/n倍)で比較してもよい。
【0076】
なお、ステップ317では、パケット中継装置1000が再起動される例を説明したが、パケット中継装置1000を再起動するか否かを管理者が予め設定する構成でもよい。例えば、「パケット中継装置を再起動しない」と設定された場合ステップ317ではパケット中継装置1000を再起動しない。
【実施例2】
【0077】
図8は、本実施例におけるパケット中継システムの構成例を示すブロック図である。実施例1との相違点を説明する。パケット中継装置1000は、さらに、サーバ2から識別子がAのユーザ端末4へのパケット通信(フロー1300)と、サーバ2から識別子がBのユーザ端末4へのパケット通信(フロー1400)の処理及び監視を実行する。
【0078】
パケット中継装置1000は、出力カウンタ1301及び出力カウンタ1401を有する。パケット中継装置1000は、フロー1300としてパケット中継装置1000から識別子がAであるユーザ端末4に出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ1301を用いてカウントし、保持する。また、パケット中継装置1000は、フロー1400としてパケット中継装置1000から識別子がBであるユーザ端末4に出力されるパケット数の積算値又はバイト数の積算値を、出力カウンタ1402を用いてカウントし、保持する。
【0079】
パケット中継装置1000は、入力カウンタ1101と出力カウンタ1301とを比較して、フロー1100及びフロー1300の通信が正常か否かを判定する。また、パケット中継装置1000は、入力カウンタ1201と出力カウンタ1401とを比較して、フロー1200及びフロー1400の通信が正常か否かを判定する。また、本実施例において、カウンタ比較部1012は、後述する比較フロー管理テーブル1500を有する。
【0080】
ユーザ端末4とサーバ2の通信は一般的に双方向で行われる。例えば、ユーザ端末4がサーバ2からデータを読み出す場合、ユーザ端末4からサーバ2に送信されるパケットは、読み出し対象データの種別を指示するためのパケットであるため、当該パケットのヘッダ情報を含むデータ総量は、サーバ2からユーザ端末4に送信されるパケット(即ち読み出されるデータ本体を含むパケット)のヘッダ情報を含むデータ総量より少ない。このため、ユーザ端末4からサーバ2へのパケット数と、サーバ2からユーザ端末4へのパケット数には1対n(nは1以上の実数)の関係がある。
【0081】
パケット中継装置1000は、例えば、識別子がAのユーザ端末4からサーバ2のフローの流量と、サーバ2から識別子がAのユーザ端末4へのフローの流量との関係を定期的に監視して、nの値を学習することで決定する。
【0082】
具体的には、例えば、装置制御部1001は、所定期間ごとに、当該所定期間におけるサーバ2から識別子がAのユーザ端末4へのフローの流量Xと、当該所定期間における識別子がAのユーザ端末4からサーバ2のフローの流量Yと、をそれぞれ、入力フローカウンタ処理部1003、及び出力フローカウンタ処理部1009から取得する。装置制御部1001は、XをYで除した値(若しくは当該値に所定のマージンを加えた又は引いた値)、を識別子がAのユーザ端末4とサーバ2との間の通信におけるnに決定し、カウンタ比較部1012に通知する。なお、ユーザ端末4からサーバ2へのデータ要求がない時間帯もあること、及びユーザ端末4からサーバ2へのデータ要求とサーバ2からユーザ端末4へのデータ要求との間に時差があること等、が考えられるため、当該所定の期間はある程度長い(例えば、秒単位ではなく時間単位のオーダ(例えば1時間程度))ことが望ましい。また、装置制御部1001は、時間帯によってnの値が大きく異なる(例えば、最大のnから最小のnを引いた差が所定値以上、又は最大のnを最小のnで割った商が所定値以上等)と判定した場合は、時間帯ごとにnの値を決定してもよい。この場合、比較処理において、時間帯ごとに決定されたnによって判定が行われてもよい。
【0083】
また、当該所定期間においても、フローのカウンタ値が入力フローカウンタテーブル1005及び出力フローカウンタテーブル1011に記録されているが、nの値を決定するための当該所定期間と、フロー1200及びフロー1400の通信が正常か否かを判定する期間と、は異なる(好ましくは重複しない)ことが望ましい。仮にこれらの期間が同一であると、フロー1200及びフロー1400の通信が異常と判定されなくなるためである。
【0084】
カウンタ比較部1012は、ステップ315において、入力カウンタの値を大きくした状態(例えばn倍)又は出力カウンタ値を小さくした状態(例えば1/n倍)で比較を行う。
【0085】
図9は、比較フロー管理テーブル1500の構成例である。比較フロー管理テーブル1500は、例えば、フロー条件欄1505と比較用フロー条件欄1506とを含む。フロー条件欄1505は、フロー条件が格納する。比較用フロー条件欄1506は、フロー条件に対応する比較用フロー条件を格納する。
【0086】
本実施例では、カウンタ比較部1012は、ステップ314において、比較フロー管理テーブル1500のフロー条件欄1505から対象フロー条件一致するフロー条件を特定し、比較用フロー条件欄1506から特定したフロー条件に対応する比較用フロー条件を抽出する。
図8の例では、比較フロー管理テーブル1500において、フロー1100を示すフロー条件にフロー1300を示すフロー条件が比較用フロー条件として対応し、フロー1200を示すフロー条件にフロー1400を示すフロー条件が比較用フロー条件として対応している。
【0087】
カウンタ比較部1012は、ステップ314において、入力フロー条件テーブル1004からは、対象フロー条件に対応するカウンタ番号を取得し、出力フロー条件テーブル1010からは、抽出した比較用フロー条件に対応するカウンタ番号を取得し、カウンタ値を読み出す。カウンタ比較部1012は、ステップ315において、これらのカウンタ番号に対応するカウンタ値の比較を行う。
【0088】
なお、比較フロー管理テーブル1500内の値は、例えば、パケット中継装置1000の管理者等によって予め設定されている。また、パケット中継装置1000自身が、比較フロー管理テーブル1500内の値を決定してもよい。
【0089】
具体的には、例えば、識別子がAのユーザ端末4からサーバ2への通信が開始した際のパケットをパケット中継装置1000が受信した際に、パケット中継装置1000の管理者が予め設定したヘッダ情報やパケット中継装置1000のポート情報、及びVLAN識別情報等を基にして、フロー1100のフロー条件とフロー1300のフロー条件を学習して、比較フロー管理テーブル1500に格納する値を決定する。
【0090】
装置制御部1001は、入力フローカウンタ処理部1003から、入力されたパケットのヘッダ情報、ポート情報、及びVLAN識別情報等を受信する。例えば、第1のフローのパケットの宛先IPアドレスと第2のフローの送信元IPアドレスが一致し、かつ第1のフローのパケットの送信元IPアドレスと第2のフローの宛先IPアドレスと、が一致する場合に、第2のフローを示すフロー条件が、第1のフローを示すフロー条件の比較用フロー条件に決定されることが、予め定められているものとする。
【0091】
この場合、
図8の例において、装置制御部1001は、フロー1100及びフロー1300のヘッダ情報から、フロー1100のパケットの宛先IPアドレスがフロー1300のパケットの送信元IPアドレスと一致し、フロー1100のパケットの送信元IPアドレスがフロー1300のパケットの宛先IPアドレスと一致すると判断することができる。これにより、装置制御部1001は、フロー1100を示すフロー条件に対応する比較用フロー条件を、フロー1300を示すフロー条件に決定することができる。
【0092】
本実施例のパケット中継装置1000は、前述した構成により、上り通信のフローに対応する下り通信のフローが存在する場合に、これらの通信の異常を検出することができる。また、本実施例のパケット中継装置1000は、中継対象の2つの装置の一方(
図8の例ではユーザ端末4)との間のカウンタを用いて、通信の異常を発見することができる。
【実施例3】
【0093】
実施例1との相違点を説明する。
図10は、本実施例におけるパケット中継システムの構成例を示すブロック図である。実施例1との相違点を説明する。本実施例のパケット中継システムは、複数のパケット中継装置1000を含む。
図10の例では、パケット中継システムは、3つのパケット中継装置1000-1~1000-3を含む。パケット中継装置1000-1~1000-3を特に区別する必要がない場合は、単にパケット中継装置1000と呼ぶ。
【0094】
各パケット中継装置1000は、管理ネットワーク7に接続されている。また、パケット中継システムは、管理ネットワーク7を介してパケット中継装置1000-1~1000-3を管理及び監視する計算機であるネットワーク管理端末6を含む。ネットワーク管理端末6は、例えば、CPU(プロセッサ)、メモリ、補助記憶装置、マウス及びキーボード等の入力装置、ディスプレイ等の出力装置、並びに通信インタフェースを含む計算機である。ネットワーク管理端末6は、後述するフロー管理情報テーブル1600を保持する。
【0095】
ユーザ端末4はそれぞれパケット中継装置1000-1に、サーバ2はパケット中継装置1000-3に、例えば、有線接続されている。パケット中継装置1000-1とパケット中継装置1000-2が、またパケット中継装置1000-2とパケット中継装置1000-3が、例えば有線接続されている。
【0096】
パケット中継装置1000-1は、入力カウンタ1101、入力カウンタ1201、出力カウンタ1102、及び出力カウンタ1202を有する。パケット中継装置1000-2は、入力カウンタ1103、入力カウンタ1203、出力カウンタ1104、及び出力カウンタ1204を有する。パケット中継装置1000-3は、入力カウンタ1105、入力カウンタ1205、出力カウンタ1106、及び出力カウンタ1206を有する。
【0097】
識別子がAのユーザ端末4からサーバ2へのフロー1100は、パケット中継装置1000-1、パケット中継装置1000-2、パケット中継装置1000-3の順で通過する。その際、パケット中継装置1000-1の入力カウンタ1101及び出力カウンタ1102、パケット中継装置1000-2の入力カウンタ1103及び出力カウンタ1104、並びにパケット中継装置1000-3の入力カウンタ1105及び出力カウンタ1106、がそれぞれ更新される。
【0098】
また、識別子がBのユーザ端末4からサーバ2へのフロー1200も同様に、パケット中継装置1000-1、パケット中継装置1000-2、パケット中継装置1000-3の順で通過する。その際、パケット中継装置1000-1の入力カウンタ1201及び出力カウンタ1202、パケット中継装置1000-2の入力カウンタ1203及び出力カウンタ1204、並びにパケット中継装置1000-3の入力カウンタ1205及び出力カウンタ1206、がそれぞれ更新される。
【0099】
図11は、フロー管理情報テーブル1600の構成例である。フロー管理情報テーブル1600は、フロー監視を制御するためのテーブルである。フロー管理情報テーブル1600は、例えば、フロー条件欄1601、入力監視対象装置欄1602、出力監視対象装置欄1603、及びフロー通過装置欄1604を含む。フロー条件欄1601は、入力フロー条件テーブル1004及び出力フロー条件テーブル1010に格納されているフロー条件を格納する。
【0100】
入力監視対象装置欄1602は、複数のパケット中継装置1000-1~1000-3のうち、対応するフロー条件が示すフローが最初に入力されるパケット中継装置1000の識別子を格納する。出力監視対象装置欄1603は、複数のパケット中継装置1000-1~1000-3のうち、対応するフロー条件が示すフローを最後に出力するパケット中継装置1000の識別子を格納する。
【0101】
例えば、
図10の例におけるフロー1100及びフロー1200それぞれのフロー条件に対応する入力監視対象装置欄1602にはパケット中継装置1000-1の識別子が格納されている。また、フロー1100及びフロー1200それぞれのフロー条件に対応する出力監視対象装置欄1603にはパケット中継装置1000-3の識別子が格納されている。
【0102】
フロー通過装置欄1604は、対応するフロー条件が示すフローが通過するパケット中継装置1000の識別子を、例えば、当該フローが通過する順、又は管理者等によって定められたポリシーが定める検査順序(例えば装置に優先順位が定められている。当該優先順位はフローによって異なってもよい)で格納する。例えば、
図10の例におけるフロー1100及びフロー1200それぞれのフロー条件に対応するフロー通過装置欄1604にはパケット中継装置1000-1、パケット中継装置1000-2、パケット中継装置1000-3の順で格納されている。
【0103】
図12は、本実施例におけるネットワーク単位での比較処理の一例を示すフローチャートである。
図13は、障害発生装置切り分け処理の一例を示すフローチャートである。
【0104】
比較処理の開始トリガは実施例1と同様であるが、開始トリガの判断主体はネットワーク管理端末6である。ネットワーク管理端末6は、フロー管理情報テーブル1600の最初のフロー条件(
図11の例ではフロー条件1)を対象フロー条件に決定する(ステップ321)。ネットワーク管理端末6は、フロー管理情報テーブル1600から、対象フロー条件に対応する入力監視対象装置、出力監視対象装置、及びフロー通過装置を読み出す(ステップ322)。
【0105】
ネットワーク管理端末6は、管理ネットワーク7を介して、入力監視対象装置から入力カウンタの値を読み出し、出力監視対象装置から出力カウンタの値を読み出し、これらの値を比較する(ステップ323)。具体的には、ステップ323において、ネットワーク管理端末6は、入力監視対象装置であるパケット中継装置1000の入力フロー条件テーブル1004において対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル1005において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【0106】
また、ステップ323において、ネットワーク管理端末6は、入力監視対象装置であるパケット中継装置1000の出力フロー条件テーブル1010において対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル1011において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値(入力カウンタの値と同種の値)を出力カウンタの値として読み出す。
【0107】
また、ステップ323において、ネットワーク管理端末6は、読み出した入力カウンタ及び出力カウンタの値の比較として、例えば、読み出した入力カウンタと出力カウンタの値の差を計算する。
【0108】
続いて、ネットワーク管理端末6は、対象フロー条件が、フロー管理情報テーブル1600の最後のフロー条件であるか否かを判定する(ステップ324)。ネットワーク管理端末6は、ステップ324において、対象フロー条件が最後のフロー条件でないと判定した場合、フロー管理情報テーブル1600における次のフロー条件を対象フロー条件に決定し(ステップ325)、ステップ322に戻る。
【0109】
ネットワーク管理端末6は、ステップ324において、対象フロー条件が最後のフロー条件であると判定した場合、ステップ326に移行する。ネットワーク管理端末6は、ステップ323における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する(ステップ326)。ネットワーク管理端末6は、ステップ326において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、ステップ321に戻る。
【0110】
ネットワーク管理端末6は、ステップ326において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、当該比較結果におけるフロー条件を検査対象フロー条件に決定し、障害切り分け処理へと移行する。
【0111】
続いて、障害切り分け処理について説明する。ネットワーク管理端末6は、検査対象フロー条件を1つ選択する(ステップ327)。フロー管理情報テーブル1600において選択中の検査対象フロー条件に対応するフロー通過装置のうち、先頭のパケット中継装置1000を検査対象装置に決定する(ステップ328)。
【0112】
ネットワーク管理端末6は、管理ネットワーク7を介して、検査対象装置から入力カウンタ及び出力カウンタの値を読み出し、これらの値を比較する(ステップ329)。
【0113】
具体的には、ステップ329において、ネットワーク管理端末6は、管理ネットワーク7を介して、検査対象装置の入力フロー条件テーブル1004において、選択中の検査対象フロー条件に対応するカウンタ番号を特定し、入力フローカウンタテーブル1005において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を入力カウンタの値として読み出す。
【0114】
さらに、ステップ329において、ネットワーク管理端末6は、管理ネットワーク7を介して、検査対象装置の出力フロー条件テーブル1010において、選択中の検査対象フロー条件に対応するカウンタ番号を特定し、出力フローカウンタテーブル1011において当該カウンタ番号に対応するパケット数カウント値又はバイト数カウント値を出力カウンタの値として読み出す。
【0115】
また、ステップ328において、ネットワーク管理端末6は、読み出した入力カウンタ及び出力カウンタの値の比較として、例えば、読み出した入力カウンタと出力カウンタの値の差を計算する。
【0116】
続いて、ネットワーク管理端末6は、検査対象装置が、フロー管理情報テーブル1600において、選択中の検査対象フロー条件に対応するフロー通過装置のうち、最後のパケット中継装置1000であるか否かを判定する(ステップ330)。ネットワーク管理端末6は、ステップ330において、検査対象装置が最後のパケット中継装置1000でないと判定した場合、フロー管理情報テーブル1600において選択中の検査対象フロー条件に対応するフロー通過装置のうち、次のパケット中継装置1000を検査対象装置に決定し(ステップ331)、ステップ329に戻る。
【0117】
ネットワーク管理端末6は、ステップ330において、検査対象装置が最後のパケット中継装置1000であると判定した場合、未選択の検査対象フロー条件があるか否かを判定する(ステップ332)。ネットワーク管理端末6は、ステップ332において、未選択の検査対象フロー条件があると判定した場合、未選択の検査対象フロー条件を1つ選択し、ステップ328に戻る。
【0118】
ネットワーク管理端末6は、ステップ332において、未選択の検査対象フロー条件がないと判定した場合、ステップ329における比較結果のうち、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があるか否かを判定する(ステップ334)。
【0119】
ネットワーク管理端末6は、ステップ334において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果がないと判定した場合、例えば、障害が発生していないことを示すメッセージをネットワーク管理端末6の表示装置等に出力し(ステップ336)、障害発生装置切り分け処理を終了する。なお、ネットワーク管理端末6は、当該場合において、ステップ336を実行しなくてもよい。また、当該場合において、又はステップ336の実行後に、ステップ321に戻ってもよい。
【0120】
また、ネットワーク管理端末6は、当該場合において、検査対象フロー条件、及び検査対象フロー条件に対応する検査対象装置等を、ネットワーク管理端末6の表示装置等に出力してもよい。これにより、個々の検査対象において大きな異常がなくても、検査対象装置全体としては異常が発生したことを、管理者に報知することができる。
【0121】
ネットワーク管理端末6は、ステップ334において、入力カウンタと出力カウンタの値の差が所定の閾値を超える比較結果があると判定した場合、例えば、障害発生装置(即ち、当該比較結果における検査対象装置)を示すメッセージをネットワーク管理端末6の表示装置等に出力し(ステップ337)、障害発生装置切り分け処理を終了する。なお、ネットワーク管理端末6は、障害発生装置のみならず、当該比較結果に対応する検査対象フロー条件、及び障害発生装置以外の当該検査対象フローに対応する検査対象装置も、当該メッセージに含めてもよい。当該メッセージが出力された場合、ネットワーク管理者は障害発生装置を切り分ける。
【0122】
なお、ネットワーク管理端末6は、ステップ329において、比較結果におけるカウンタ値の差が所定の閾値を超えるか否かを判定してもよい。この場合、ネットワーク管理端末6は、当該差が当該所定の閾値を超えていると判定した場合、残りの検査対象装置についてのカウンタ値の比較を行うことなく、ステップ335に移行してもよい。また、上述した例において、異常が発生しない限り比較処理が終了しないが、例えば、ネットワーク管理端末6は、管理者からの指示等に従って、比較処理を終了してもよい。
【0123】
なお、フロー管理情報テーブル1600内の値は、例えば、ネットワーク管理端末6の管理者等によって、監視ネットワークの構成情報を基にして予め設定されている。また、ネットワーク管理端末6自身が、フロー管理情報テーブル1600を生成してもよい。
【0124】
具体的には、例えば、各パケット中継装置1000がフロー条件を学習した際に、管理ネットワーク7を経由して、フロー条件をネットワーク管理端末6へ通知する。これにより、ネットワーク管理端末6は、フロー条件、並びにフロー条件に対応する入力監視対象装置、出力監視対象装置、フロー通過装置を学習することができる。また、これにより、ネットワーク管理端末6は、ネットワーク構成が変更された場合であっても自動的にフロー管理情報テーブル1600を更新することができる。
【0125】
ネットワーク管理端末6自身が、学習によってフロー管理情報テーブル1600を生成することにより、ネットワーク管理端末6の管理者がフロー管理情報テーブル1600を生成する必要がなくなる利点がある。
【0126】
本実施例のパケット中継システムは、前述した構成及び処理により、通信に異常が発生したフロー、及び当該異常の原因であるパケット中継装置1000を特定することができる。
【0127】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0128】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0129】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0130】
1000 パケット中継装置、2 サーバ、4 ユーザ端末、6 ネットワーク管理端末、1003 入力フローカウンタ処理部、1004 入力フロー条件テーブル、1005 入力フローカウンタテーブル、1010 出力フロー条件テーブル、1011 出力フローカウンタテーブル、1012 カウンタ比較部、1500 比較フロー管理テーブル、1600 フロー管理情報テーブル