(57)【要約】      （修正有）【課題】通信プロトコル制御用パケットを確実に中継処理できる通信装置を提供する。【解決手段】Ｌ２スイッチ１００は、接続される端末装置のデータのパケットを中継し、端末装置から送信されたパケットの中継を行うスイッチデバイス１０２と、スイッチデバイスを制御するＣＰＵ１０１と、スイッチデバイスからＣＰＵへのパケットの転送パスとして、通信プロトコル制御に必要なパケットを転送する第一の転送パスＡ１０５と、端末装置の情報取得用のパケットを転送する第二の転送パスＢ１０６と、を備える。ＣＰＵは、第一の転送パスＡを用いて通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行い、第二の転送パスＢを用いて情報取得用のパケットから端末装置に固有の情報を取得する制御を行う。【選択図】図１
2020031321.tif 000002
【特許請求の範囲】
【請求項１】
接続される端末装置のデータのパケットを中継する通信装置であって、
前記端末装置から送信されたパケットの中継を行うスイッチデバイスと、
前記スイッチデバイスを制御するＣＰＵと、
前記スイッチデバイスから前記ＣＰＵへのパケットの転送パスとして、
通信プロトコル制御に必要なパケットを転送する第一の転送パスと、
前記端末装置の情報取得用のパケットを転送する第二の転送パスと、
を備え、
前記ＣＰＵは、前記第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行い、前記第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行うことを特徴とする通信装置。
【請求項２】
前記ＣＰＵは、前記第一の転送パスおよび前記第二の転送パスから転送されるそれぞれの前記パケットを並行処理することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記ＣＰＵは、マルチコアＣＰＵ、あるいは複数の異なるＣＰＵであることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記ＣＰＵは、前記第二の転送パスの前記情報取得用のパケットを監視し、当該情報取得用のパケットに含まれる前記端末装置に固有の端末識別情報を抽出することを特徴とする請求項１〜３のいずれか一つに記載の通信装置。
【請求項５】
前記ＣＰＵは、当該情報取得用のパケットの所定のフィールドに含まれる前記端末装置に固有の端末識別情報をフィンガープリンティングにより取得することを特徴とする請求項４に記載の通信装置。
【請求項６】
前記ＣＰＵは、前記端末装置のＭＡＣアドレスと接続ポートの情報をＭＡＣアドレステーブルに保持し、前記端末装置毎のＭＡＣアドレスをキーとして、前記情報取得用のパケットから抽出した前記端末識別情報を前記ＭＡＣアドレスに関連付け、
前記ＭＡＣアドレス毎に関連付けた前記接続ポートと、前記端末識別情報と、を端末識別情報テーブルに保持することを特徴とする請求項４または５に記載の通信装置。
【請求項７】
前記ＣＰＵは、前記端末識別情報の要求に基づき、前記端末識別情報テーブルから前記端末装置毎のＭＡＣアドレスと、前記接続ポートと、前記端末識別情報と、を出力することを特徴とする請求項５または６に記載の通信装置。
【請求項８】
前記ＣＰＵは、受信したパケットから前記端末装置の通信プロトコルを判断し、前記通信プロトコル別のパケット処理を行うことを特徴とする請求項１〜７のいずれか一つに記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを中継する通信装置に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）によるＩｏＴデバイスなど、多様な端末装置がネットワーク接続されている。端末装置のネットワークへの不正接続や、脆弱なオペレーティングシステム（ＯＳ）を使用している端末装置によるマルウェア感染を防ぐため、ネットワークに対してどのような端末装置が接続されているかを知るために、端末装置の情報の可視化がセキュリティ上重要である。
【０００３】
複数台の端末装置は、ネットワーク機器（通信装置）を介してネットワークに接続され、通信装置は、例えば、スイッチ（Ｌ２スイッチ、Ｌ３スイッチ）、ルータ等がある。そして、ネットワーク上に不正接続検知の専用装置（アプライアンス製品）を配置することでネットワーク接続された端末装置の情報を可視化できる。
【０００４】
従来技術として、ネットワーク上に配置した接続監視システムにより、不正接続機器の接続を検出して表示する技術が開示されている（例えば、下記特許文献１参照。）。また、通信ネットワークのノードに、ＯＳ検出器を設けてノード間の通信を分析する技術が開示されている（例えば、下記特許文献２参照。）。また、監視装置が不正利用の情報機器を検出した場合に、管理者の電子メールアドレスに警報の電子メールを送信する技術が開示されている（例えば、下記特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−０５１５７９号公報
【特許文献２】特表２０１３−５４５１９６号公報
【特許文献３】特開２００５−３１８０３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したアプライアンス製品は、Ｌ２スイッチなどの通信装置のポートに接続された端末装置のパケットのモニタリングのために、通信装置の一つ以上のポートを占有してしまう。また、アプライアンス製品では、通信装置のどのポート配下に不正端末装置が接続されているのかを検出できない。アプライアンス製品は、通信装置とは別装置であり、通信装置のポートの情報を有していない。
【０００７】
また、上記特許文献１のように、ＳＮＭＰトラップを用い不正接続された端末装置の接続位置を接続監視システムに通知する方法があるが、この方法では、ネットワーク機器とは別に不正接続監視システムを用意しなければならず、コスト高となる。また、ＳＮＭＰの設定を行い、ＳＮＭＰトラップが不正接続監視システムに届くように設定する手間がかかった。
【０００８】
そして、従来技術では、スイッチやルータなどの通信装置単体で、この通信装置に接続された端末装置の情報の可視化を実現することができなかった。通信装置単体で、ネットワーク内の他の装置の装置情報を収集する機能を実現する場合、通信装置内のＣＰＵで処理しなければならないパケットが増え、スイッチデバイスからの受信処理を行うドライバが処理しきれず、結果としてパケットの取りこぼしが発生してしまう。取りこぼしたパケットが通信プロトコル制御用パケット（例えば、ＳＴＰのＢＰＤＵパケット）の場合には、他の通信装置に自装置の情報を送信することができなくなる。そして、他の通信装置がループ構成を回避するための再計算を実行する間、ネットワーク全体が停止状態となってしまう。ＳＴＰはＳｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ、ＢＰＤＵはＢｒｉｄｇｅ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔの略である。
【０００９】
一つの側面では、通信プロトコル制御用パケットを確実に中継処理できることを目的とする。
【課題を解決するための手段】
【００１０】
一つの案では、通信装置は、接続される端末装置のデータのパケットを中継する通信装置であって、前記端末装置から送信されたパケットの中継を行うスイッチデバイスと、前記スイッチデバイスを制御するＣＰＵと、前記スイッチデバイスから前記ＣＰＵへのパケットの転送パスとして、通信プロトコル制御に必要なパケットを転送する第一の転送パスと、前記端末装置の情報取得用のパケットを転送する第二の転送パスと、を備え、前記ＣＰＵは、前記第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行い、前記第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行うことを要件とする。
【発明の効果】
【００１１】
一つの実施形態によれば、通信プロトコル制御用パケットを確実に中継処理できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態にかかる通信装置のハードウェア構成例を示す図である。
【図２】図２は、実施の形態にかかる端末装置の情報の可視化に関わるソフトウェア機能のブロック図である。
【図３】図３は、実施の形態にかかる通信装置が行うパケット解析処理例を示すフローチャートである。
【図４Ａ】図４Ａは、実施の形態にかかる通信装置が行うプロトコル解析処理を説明する図である。（その１）
【図４Ｂ】図４Ｂは、実施の形態にかかる通信装置が行うプロトコル解析処理を説明する図である。（その２）
【図５】図５は、実施の形態にかかる通信装置の出力生成処理例を説明する図である。
【図６】図６は、実施の形態にかかる通信装置の出力結果の例を示す図表である。
【図７】図７は、実施の形態にかかる通信装置の他のハードウェア構成例を示す図である。
【図８】図８は、従来の通信装置による内部ポートの輻輳状態を説明する図である。
【図９】図９は、実施の形態にかかる通信装置による内部ポートの輻輳状態の回避を説明する図である。
【図１０】図１０は、実施の形態にかかる通信装置のマルチコアＣＰＵを用いた処理動作を説明する図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
実施の形態の通信装置は、スイッチ（Ｌ２スイッチ、Ｌ３スイッチ）、ルータ等に適用される。実施の形態では、通信装置とは別にネットワーク上に別途アプライアンス製品を設けることなく、通信装置単体で、この通信装置に接続された端末装置の情報の可視化を実現する。端末装置の情報とは、例えば、端末装置のＭＡＣアドレス、接続ポート番号、端末装置の識別情報等である。情報の可視化とは、端末装置を特定可能な固有の情報を表示等のために出力することを意味する。通信装置は、例えば、端末装置毎のＭＡＣアドレスと、接続ポート番号と、端末装置の識別情報と、を関連付けた情報を生成し、出力する。
【００１４】
図１は、実施の形態にかかる通信装置のハードウェア構成例を示す図である。図１には、通信装置１００として、Ｌ２スイッチまたはＬ３スイッチに適用した場合の構成例を示す。通信装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、スイッチデバイス１０２、メモリ１０３、不揮発メモリ１０４等を含む。
【００１５】
ＣＰＵ１０１は、通信装置１００の全体制御を司る制御部として機能し、通信装置１００に接続された端末装置間のデータの中継（転送）を制御する。スイッチデバイス１０２は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等で構成され、ＬＡＮ等の接続ポートＰ（Ｐ１〜Ｐｎ）に接続される端末装置のデータ中継を制御する。
【００１６】
符号１０１ａは、コンソールポートであり、ＰＣ等の外部コンソール端末に接続され、コンソール端末によりコンソールポート１０１ａを介して入力されるコマンドに基づき、通信装置１００の設定操作や端末装置の端末識別情報等の情報出力を行うことができる。以下の説明では、通信装置１００が端末装置との間で送受信するデータは、所定フレームを有し、パケット化されて送受信される。
【００１７】
不揮発メモリ１０４には、ＣＰＵ１０１の制御プログラムが格納され、制御プログラムは、ＣＰＵ１０１により不揮発メモリ１０４からメモリ１０３にロードされて実行される。その際、ＣＰＵ１０１は、メモリ１０３や不揮発メモリ１０４を作業領域に使用する。メモリ１０３には、例えばＲＡＭ等を用いることができ、不揮発メモリ１０４にはフラッシュメモリを用いることができる。メモリ１０３は、例えば、設定データや後述する各テーブル等の情報を保持する補助メモリとしても機能する。
【００１８】
そして、実施の形態の通信装置１００は、ＣＰＵ１０１とスイッチデバイス１０２との間には、通信プロトコル制御用パケットを転送する信号線である転送パス（第一の転送パス）Ａと、他装置情報取得用パケットを転送する信号線である転送パス（第二の転送パス）Ｂと、を個別に設ける。転送パスＡは、既存の通信装置と同様のパケット転送に用いる。
【００１９】
なお、端末装置は、通信装置１００に対して所定の（単一の）パケットを送信し、このパケットを受信した通信装置１００は、内部のスイッチデバイス１０２によって、パケットを第一の転送パスＡあるいは第二の転送パスＢに振り分けて転送するか、双方に同じパケットを同報する。パケットが通信プロトコル制御と他装置情報取得の両方の用途に使われる場合はパスＡにもパスＢにも同じパケットを送信する必要がある。
【００２０】
転送パスＢは、端末情報取得用パケットの転送パスであり、通信装置１００の接続ポートに接続される端末装置に固有の情報の取得用として新設する。例えば、ＣＰＵ１０１とスイッチデバイス１０２とを接続する内部ポートの一部を通信プロトコル制御用パケットの転送専用として用い、他の一部を端末装置の端末情報取得用パケットの転送専用として割り当てる。
【００２１】
転送パスＡでは、制御情報付きのパケット送受信を行う、例えば、ＰＣＩ−Ｅｘｐｒｅｓｓ等の規格の内部ポート１０５を用いることができる。転送パスＢには、ＳＧＭＩＩ（Ｓｅｒｉａｌ  Ｇｉｇａｂｉｔ  Ｍｅｄｉａ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｉｎｔｅｒｆａｃｅ）等のポート（内部ポート）１０６を用いることができる。
【００２２】
また、転送パスＢには、所定のＶＬＡＮ  ＩＤ（Ｖｉｒｔｕａｌ  ＬＡＮ  ＩＤｅｎｔｉｆｉｅｒ）を割り当てる。転送パスＢの内部ポート１０６に監視したいＶＬＡＮセグメントのＩＤ（所定の識別子）を割り当てることにより、スイッチデバイス１０２は、端末装置が送信するブロードキャストおよびマルチキャストのパケットをいずれもＣＰＵ１０１に送ることができる。
【００２３】
図２は、実施の形態にかかる端末装置の情報の可視化に関わるソフトウェア機能のブロック図である。図２に示す各構成部の機能は、図１のＣＰＵ１０１のプログラム実行により実現できる。
【００２４】
ＣＰＵ１０１は、パケット解析部２０１と、出力生成部２０２と、コマンド受付部２０３と、スイッチデバイス制御部２０４と、通信デバイス制御部２０５と、コンソールデバイス制御部２０６と、を含む。端末識別情報テーブルＤＢと、ＭＡＣアドレステーブルＴは、例えば図１に記載のメモリ１０３や不揮発メモリ１０４の記憶領域に設けられる。
【００２５】
通信デバイス制御部２０５は、ＣＰＵ１０１に内蔵される通信コントローラを制御するドライバとして機能し、スイッチデバイス１０２を経由して受信したパケットをパケット入出力インタフェース（ＩＦ）を介してパケット解析部２０１に出力する。通信デバイス制御部２０５は、転送パスＢ（内部ポート１０６）を用いて端末装置との間のパケットの入出力を制御する。
【００２６】
コンソールデバイス制御部２０６は、コンソールポート１０１ａに対する入出力を制御するドライバとして機能する。コンソールデバイス制御部２０６は、コンソールポート１０１ａを介して入力された操作等のコマンドをコマンド入出力ＩＦを介してコマンド受付部２０３に出力する。
【００２７】
パケット解析部２０１は、内部ポート１０６を経由して端末装置から入力されるパケットを受信してパケットの種別毎の解析を行う。パケット解析部２０１は、受信したパケットの種別を判定し、パケット種別毎の解析部２１１にパケットを渡す。
【００２８】
パケット種別毎の解析部２１１は、通信プロトコル毎の複数のプロトコル解析部２２１（２２１ａ，２２１ｂ…）を有する。各プロトコル解析部２２１は、受信したパケットの特定のフィールドの値を元に端末装置の識別情報に変換し、取得したＭＡＣアドレスと端末装置の識別情報を端末識別情報テーブルＤＢに登録する。
【００２９】
プロトコル解析部２２１は、例えば、フィンガープリンティングの手法により端末装置の識別情報を得る。フィンガープリンティングとは、端末装置から送信されたパケットの特定のフィールドの値を抽出し、そのフィールドの値によって、端末装置のオペレーティングシステム（ＯＳ）種別やＯＳバージョン、機種名を推定する方法である。また、パケット内の情報からパケットの送信元である端末装置のＭＡＣアドレスを得る。そして、プロトコル解析部２２１は、得られたＭＡＣアドレスと、端末装置の識別情報を、端末識別情報テーブルＤＢにデータベースとして登録する。
【００３０】
ＭＡＣアドレステーブルＴには、ＭＡＣ学習により端末装置毎のＭＡＣアドレスと、このＭＡＣアドレスの端末装置が接続されている通信装置１００の接続ポートＰのポート番号の情報をテーブル形式で記憶保持する。スイッチデバイス制御部２０４は、ＭＡＣアドレステーブルＴにアクセスするドライバの機能部である。スイッチデバイス制御部２０４は、出力生成部２０２の要求により、ＭＡＣアドレステーブルＴを参照し、端末装置毎のＭＡＣアドレスとポート番号の情報を読み出し、出力生成部２０２に出力する。
【００３１】
コマンド受付部２０３は、コンソールデバイス制御部２０６を介して外部のコンソール端末から入力されるコマンドを解析し、要求されたコマンドに対応する出力生成要求を出力生成部２０２に出力する。また、出力生成部２０２が生成した出力結果を、コンソールデバイス制御部２０６を介して外部のコンソール端末に出力する。
【００３２】
出力生成部２０２は、コマンド受付部２０３からの出力生成要求を受け付けると、端末識別情報テーブルＤＢと、ＭＡＣアドレステーブルＴを参照する。そして、出力生成部２０２は、これら端末識別情報テーブルＤＢおよびＭＡＣアドレステーブルＴから該当する端末装置を可視化する情報を生成し出力結果として、コマンド受付部２０３を介してコンソール端末に向けて出力する。端末装置を可視化する情報の詳細な生成例については後述する。
【００３３】
以下、端末装置を可視化する情報を生成するために行う通信装置１００の各機能部の処理例について説明する。
【００３４】
図３は、実施の形態にかかる通信装置が行うパケット解析処理例を示すフローチャートである。主に、図２のパケット解析部２０１が行う処理内容について説明する。
【００３５】
はじめに、パケット解析部２０１は、端末装置が送信したパケット種別を判定する（ステップＳ３０１ａ）。パケット種別の判定は、パケットのヘッダを参照してプロトコル、例えば、ＤＨＣＰ（Ｄｙｎａｍｉｃ  Ｈｏｓｔ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）や、ＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を判定する。
【００３６】
そして、パケット解析部２０１は、判定したプロトコル毎に、受信したパケットをパケット種別毎の解析部２１１に渡す。例えば、パケット解析部２０１は、パケット種別が〇〇プロトコルであれば（ステップＳ３０１ａ：Ｃａｓｅ１）、このパケットを対応するプロトコル解析部２２１（図１の〇〇プロトコル解析部２２１ａ）に渡す。そして、〇〇プロトコル解析部２２１ａによりステップＳ３０２ａの処理を実行する。受信したパケットが異なるプロトコルであれば（ステップＳ３０１ａ：ｏｔｈｅｒ）、再度パケット種別の判定を行う（ステップＳ３０１ｂ）。
【００３７】
ステップＳ３０２ａでは、プロトコル解析部２２１（〇〇プロトコル解析部２２１ａ）により、この○○プロトコルの解析処理を行う。はじめに、プロトコル解析部２２１は、パケットの特定のフィールドを上記フィンガープリンティング等の手法により抽出し（ステップＳ３０３）、抽出した特定のフィールドの値を識別情報に変換する（ステップＳ３０４）。また、パケットの送信元ＭＡＣのフィールドから端末装置のＭＡＣアドレスを抽出する（ステップＳ３０５）。
【００３８】
次に、プロトコル解析部２２１は、抽出したＭＡＣアドレスをキーとして、端末識別情報テーブルＤＢを検索し（ステップＳ３０６）、該当するＭＡＣアドレスの登録の有無を判断する（ステップＳ３０７）。ここで、該当するＭＡＣアドレスが端末識別情報テーブルＤＢに未登録エントリであったとする（ステップＳ３０７：Ｙｅｓ）。この場合、プロトコル解析部２２１は、ＭＡＣアドレスと、ステップＳ３０５で抽出した端末装置の識別情報のエントリを端末識別情報テーブルＤＢに新規登録する（ステップＳ３０８）。
【００３９】
一方、該当するＭＡＣアドレスが端末識別情報テーブルＤＢに登録済であったとする（ステップＳ３０７：Ｎｏ）。この場合、プロトコル解析部２２１は、ＭＡＣアドレスと、ステップＳ３０５で抽出した端末装置の識別情報の内容で端末識別情報テーブルＤＢを更新する（ステップＳ３０９）。ステップＳ３０８またはステップＳ３０９の処理により、パケット解析部２０１は一つのプロトコル（〇〇プロトコル）に対する一連のパケット解析処理を終了する。
【００４０】
また、上記ステップＳ３０１ａにおいて、受信したパケットが異なるプロトコルの場合（ステップＳ３０１ａ：ｏｔｈｅｒ）、パケット解析部２０１は、再度のパケット種別の判定を行う（ステップＳ３０１ｂ）。例えば、パケット解析部２０１は、パケット種別が〇△プロトコルであれば（ステップＳ３０１ｂ：Ｃａｓｅ２）、このパケットを対応するプロトコル解析部２２１（図１の〇△プロトコル解析部２２１ｂ）に渡す。そして、〇△プロトコル解析部２２１ｂによりステップＳ３０２ｂの処理を実行する。
【００４１】
ステップＳ３０２ｂでは、プロトコル解析部２２１（〇△プロトコル解析部２２１ｂ）により、この○△プロトコルの解析処理を行う。ステップＳ３０２ｂにおけるプロトコル解析の処理手順は、ステップＳ３０３〜ステップＳ３０９と同様である。また、プロトコル解析処理は、異なるプロトコル毎にそれぞれステップＳ３０３〜ステップＳ３０９と同等の処理を行えばよい。
【００４２】
なお、図３の処理は一例であり、例えば、一つのステップＳ３０１ａで複数のパケット種別のいずれであるかを特定してもよい。この場合、ステップＳ３０２ａでは、ステップＳ３０１ａで特定したパケット種別に対応した分岐先の各処理で、特定したパケット種別のプロトコル解析処理を直接実行することができる。
【００４３】
図４Ａ，図４Ｂは、実施の形態にかかる通信装置が行うプロトコル解析処理を説明する図である。これらの図を用いて図３のステップＳ３０２ａに示すプロトコル解析処理の流れを示す。
【００４４】
図４Ａには、通信装置１００は、接続ポートＰに接続された端末装置４００（４００ａ）からＤＨＣＰパケットを受信する例を示す。ＤＨＣＰパケット４１０は、パケットの送信元である端末装置４００ａの送信元ＭＡＣアドレスの値のフィールド４１０ａと、Ｏｐｔｉｏｎ５５の値のフィールド４１０ｂと、を含む。Ｏｐｔｉｏｎ５５フィールド４１０ｂは、端末装置４００ａのＯＳに対応した異なる値をとる。
【００４５】
パケット解析部２０１のパケット種別毎の解析部２１１は、上記特定のフィールド抽出時（ステップＳ３０３）、送信元ＭＡＣアドレスの値のフィールド４１０ａから送信元ＭＡＣアドレス「００：２３：２６：０１：２３：４５」を取得する。また、パケット種別毎の解析部２１１は、Ｏｐｔｉｏｎ５５フィールド４１０ｂをフィンガープリンティングし、「１，１５，３，６，４４，４６，４７，３１，３３，２４９，４３」の値が「Ｗｉｎｄｏｗｓ  ＸＰ」（登録商標）のＯＳ種別であると判断する。
【００４６】
そして、パケット種別毎の解析部２１１は、端末識別情報テーブルＤＢに、取得した端末装置４００ａに対応する新たなエントリとして、ＭＡＣアドレス「００：２３：２６：０１：２３：４５」を格納する。また、このＭＡＣアドレスに対応する端末識別情報として「Ｗｉｎｄｏｗｓ  ＸＰ」の情報を格納する。
【００４７】
図４Ｂには、通信装置１００は、接続ポートＰに接続された端末装置４００（４００ｂ）からＬＬＤＰパケットを受信する例を示す。ＬＬＤＰはＬｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌの略である。ＬＬＤＰパケット４２０は、パケットの送信元である端末装置４００ｂの送信元ＭＡＣアドレスの値のフィールド４２０ａと、Ｓｙｓｔｅｍ  Ｄｅｓｃｒｉｐｔｉｏｎフィールド（システム種別）４２０ｂと、を含む。Ｓｙｓｔｅｍ  Ｄｅｓｃｒｉｐｔｉｏｎフィールド４２０ｂは、端末装置４００ｂの種別に対応した異なる値をとる。
【００４８】
パケット解析部２０１のパケット種別毎の解析部２１１は、特定のフィールド抽出時（ステップＳ３０３）、送信元ＭＡＣアドレスの値のフィールド４２０ａから送信元ＭＡＣアドレス「００：２３：２６：０ａ：ｂｃ：ｄｅ」を取得する。また、パケット種別毎の解析部２１１は、Ｓｙｓｔｅｍ  Ｄｅｓｃｒｉｐｔｉｏｎフィールド４２０ｂの値「Ｆｕｊｉｔｓｕ  ＩＰ  Ｐｈｏｎｅ」を取得する。
【００４９】
そして、パケット種別毎の解析部２１１は、端末識別情報テーブルＤＢに、取得した端末装置４００ｂに対応する新たなエントリとして、ＭＡＣアドレス「００：２３：２６：０ａ：ｂｃ：ｄｅ」を格納する。また、このＭＡＣアドレスに対応する端末識別情報として「Ｆｕｊｉｔｓｕ  ＩＰ  Ｐｈｏｎｅ」の情報を格納する。
【００５０】
図５は、実施の形態にかかる通信装置の出力生成処理例を説明する図である。図２に示す出力生成部２０２による出力結果の生成処理例を示す。出力生成部２０２は、コマンド受付部２０３からの出力生成要求を受けると、ＭＡＣアドレステーブルＴと、端末識別情報テーブルＤＢとを参照する。そして、出力生成部２０２は、端末識別情報テーブルＤＢからＭＡＣアドレス毎の端末識別情報を取得する。また、ＭＡＣアドレステーブルＴからＭＡＣアドレス毎の接続ポート番号情報を取得する。そして、ＭＡＣアドレス毎の接続ポート番号情報と、端末識別情報とを関連付けた出力結果５００を生成する。
【００５１】
図５には、ＤＨＣＰパケットを送出した端末装置４００ａ（図４Ａ参照）に関する出力結果５００の生成例を示す。出力生成部２０２は、端末装置４００ａのＭＡＣアドレス「００：２３：２６：０１：２３：４５」をキーとして、端末識別情報テーブルＤＢからＭＡＣアドレスに対応する端末識別情報「Ｗｉｎｄｏｗｓ  ＸＰ」を取得する。また、出力生成部２０２は、取得した端末装置４００ａのＭＡＣアドレス「００：２３：２６：０１：２３：４５」をキーとして、ＭＡＣアドレステーブルＴからＭＡＣアドレスに対応する接続ポート番号情報「１」を取得する。
【００５２】
そして、出力生成部２０２は、ＭＡＣアドレス「００：２３：２６：０１：２３：４５」の接続ポート番号情報「１」と、端末識別情報「Ｗｉｎｄｏｗｓ  ＸＰ」とを関連付けた出力結果５００を生成する。
【００５３】
出力結果５００は、ＭＡＣアドレス毎、すなわち通信装置１００の全ポート（接続ポートＰ）に接続されている全ての端末装置４００（４００ａ，４００ｂ，…）の接続ポート番号情報と、端末識別情報とを関連付けた情報を含む。
【００５４】
出力生成部２０２が生成した出力結果５００は、出力生成要求を行ったコンソールポート１０１ａ（図１参照）を介して外部のコンソール端末にコマンドラインで返答する。このほか、出力結果５００の出力先は、出力生成要求を行った所定の端末装置のＷｅｂブラウザ上に表示してもよいし、ファイル化して出力生成要求を行った所定の端末装置に送信する構成としてもよい。
【００５５】
上述した通信装置１００では、転送パスＢの内部ポート１０６に監視したいＶＬＡＮセグメントのＩＤを割り当てる構成とした。この構成に加えて、スイッチデバイス１０２のポートミラーリング機能を使用して外部の特定のポート（例えば一つあるいは全てのポート）に入出力されるパケットを内部ポート１０６にミラーリングしてもよい。これにより、ブロードキャスト、マルチキャストパケット以外のパケットもモニターできるようになる。
【００５６】
通信装置１００のＣＰＵ１０１が行う各機能部（図２参照）の処理については、ネットワーク機器としてデータ転送する主機能に影響を与えないよう、主機能とは別のコアを割付けてもよい。そして、ＣＰＵ１０１がパケット解析により取得する端末を可視化するための情報は、ＭＡＣアドレスと端末装置４００の識別情報に限らない。例えば、ＩＰアドレスやホスト名、ＮｅｔＢＩＯＳ名(コンピュータ名に相当)、ベンダー名を加えた全てであってもよいし、そのうちのいずれかの組み合わせであってもよい。
【００５７】
図６は、実施の形態にかかる通信装置の出力結果の例を示す図表である。出力生成部２０２は、図６に示す例では、出力結果５００として、端末装置４００（４００ａ，４００ｂ，…）毎のＭＡＣアドレス、端末識別情報、接続ポート番号情報に加え、端末装置４００から取得したＩＰアドレス、コンピュータ名を含んでいる。この出力結果５００は、端末識別情報テーブルＤＢに格納保持される。
【００５８】
図示のように、通信装置１００は、複数の端末装置４００それぞれのＭＡＣアドレスと、端末識別情報として異なるＯＳであること、通信装置１００に対する接続ポート番号情報、ＩＰアドレス、コンピュータ名、を可視化した情報として出力することができる。
【００５９】
図７は、実施の形態にかかる通信装置の他のハードウェア構成例を示す図である。図７に示す通信装置１００は、ルータに適用した場合の構成例を示す。ルータの構成例の場合、図１に示す各構成に加えて、ＣＰＵ１０１にはＷＡＮ等の外部ネットワークのポートＷを備えればよい。
【００６０】
次に、上述した実施の形態の通信装置１００において、図１に示したＣＰＵ１０１とスイッチデバイス１０２との間に転送パスＢ（内部ポート１０６）を新たに設けた構成について、従来技術との対比説明を行う。
【００６１】
図８は、従来の通信装置による内部ポートの輻輳状態を説明する図である。従来の通信装置８００では、ＣＰＵ８０１とスイッチデバイス８０２は、ＣＰＵポートと呼ばれるデータパス８０３（図１の転送パスＡ（内部ポート１０５に相当）を経由して通信プロトコルの制御に必要なパケットの送受信を行っている。
【００６２】
ＣＰＵポート（データパス８０３）は、例えば、ＳＴＰで使用されるＢＰＤＵパケットの送受信に使用されている。ＳＴＰは、ＬＡＮ内の端末装置がループ構成となるのを回避するための通信プロトコルである。そして、実施の形態で説明したように、端末装置の情報を可視化するために、ＣＰＵポート（データパス８０３）を使って複数の監視したい端末装置のパケットＦ２を取得したとする。
【００６３】
この場合、図８に示すように、複数の接続ポート（Ｐ１，Ｐ２，Ｐｎ−１，Ｐｎ）の監視したいパケットＦ２がＣＰＵポート（データパス８０３）に集中して輻輳が発生しやすくなる。この結果、通信プロトコルの制御に必要なパケットＦ１（接続ポートＰ３）を取りこぼすことがある。
【００６４】
例えば、ＳＴＰの場合、ＣＰＵ８０１がＢＰＤＵパケットを取りこぼしてしまうと、ループ構成を回避するための再計算処理を行う必要が生じ、ＳＴＰを構成するネットワーク全体が暫くの間、通信停止状態となるおそれが生じる。
【００６５】
図９は、実施の形態にかかる通信装置による内部ポートの輻輳状態の回避を説明する図である。実施の形態の通信装置１００は、ＣＰＵポート（内部ポート１０５）の転送パスＡを、既存の通信プロトコル制御用のパケットＦ１の転送パスとして用いる。
【００６６】
そして、この転送パスＡ（内部ポート１０５）とは別に、監視したいパケットＦ２用のデータパスとして転送パスＢを設ける。これにより、転送パスＢを監視したいパケットＦ２専用として用いる。この場合、接続ポートＰ１，Ｐ２，Ｐｎ−１，Ｐｎのパケット監視により端末装置４００の情報を取得する。
【００６７】
この際、転送パスＡは、パケット監視に関与せずに接続ポートＰ３の既存の通信プロトコル制御用のパケットＦ１の転送を継続できる。なお、実施の形態では、通信プロトコル制御用のパケットＦ１として、他にＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）にも適用できる。
【００６８】
これにより、通信装置１００において輻輳要因の通信プロトコル制御用パケットのロスト発生を回避することができる。そして、通信装置１００は、端末装置４００の情報取得の処理を行っても、ネットワーク機器の主機能の一つである通信プロトコル制御への影響を回避することができるようになる。
【００６９】
図１０は、実施の形態にかかる通信装置のマルチコアＣＰＵを用いた処理動作を説明する図である。上述した、ＣＰＵポートの転送パスＡとは別に、パケットを監視するためのデータパス（転送パスＢ）を用いた場合のＣＰＵ処理例について説明する。
【００７０】
図１０に示すように、ＣＰＵ１０１として複数のコアを搭載するＣＰＵを使用する。これにより、内部ポートのパケット送受信処理をＣＰＵ１０１の所定のコアを用いて行いながら、監視ポートのパケット送受信処理をＣＰＵ１０１の別のコアで並列に行うことができる。
【００７１】
例えば、ＣＰＵ１０１の複数のコアｎのうちの一つ（ｎ−１）のコア（例えばコア０）は、ネットワーク機器として必要な転送パスＡを用いた通信制御部１００１として機能する。通信制御部１００１は、端末装置４００の通信プロトコルに応じた解析と制御処理を行う通信プロトコル解析、制御処理部１０１１と、スイッチデバイス１０２を制御するスイッチデバイス制御処理部１０１２と、を含む。また、コマンド受付処理部１０１３と、内部ポートのフレーム送受信処理部１０１４と、を含む。これら各構成部は、ＣＰＵ１０１のコア０がプログラム実行することで機能実現できる。
【００７２】
また、ＣＰＵ１０１のコアｎは、通信装置１００に接続された端末装置４００の情報を可視化する可視化処理部１００２として機能する。この端末装置の情報を可視化する可視化処理部１００２は、転送パスＢを用いて端末識別情報を取得する端末装置識別フレーム解析処理部１０２１と、監視ポート（内部ポート１０６）のパケット送受信処理を行うフレーム送受信処理部１０２２と、を含む。これら各構成部は、ＣＰＵ１０１のコアｎがプログラム実行することで機能実現できる。
【００７３】
ＣＰＵ１０１は、転送パスＡ（内部ポート１０５）と、転送パス（内部ポート１０６）単位で、一方の通信制御部１００１、および他方の可視化処理部１００２の機能を処理するコアを指定することができる。
【００７４】
また、ＣＰＵ１０１は、マルチコアのＣＰＵを用いるに限らず、複数のＣＰＵ１０１を用いてもよい。このようなマルチＣＰＵの構成の場合、一方のＣＰＵ１０１は、転送パスＡを用いる通信制御部１００１として機能する。他方のＣＰＵ１０１は、通信装置１００に接続された端末装置４００の情報を可視化するために、転送パスＢを用いて端末識別情報を取得する機能、すなわち、可視化処理部１００２として機能する。
【００７５】
このように、転送パスＡを用いて端末装置４００の通信プロトコルの制御に必要なパケットに対するパケット送受信処理をＣＰＵ内のあるＣＰＵコアが割り付け実行する。また、転送パスＢを用いて端末装置４００の端末識別情報を取得するパケット解析処理をＣＰＵ内の他のＣＰＵコアが割り付け実行する。
【００７６】
これにより、通信装置１００は、転送パスＢを用いて端末装置４００の端末識別情報を取得するパケット解析処理を行っても、ネットワーク機器の主機能である通信プロトコルの制御に必要なパケットの処理で使用するＣＰＵリソースの圧迫を防ぐことができる。そして、通信装置１００の主機能である通信プロトコルの制御に必要なパケットの処理の輻輳を抑制できるようになる。
【００７７】
以上説明した実施の形態によれば、通信装置単体で、この通信装置に接続された複数の端末装置の情報の可視化を行うことができる。実施の形態では、通信装置は、端末装置のパケットを監視し、プロトコル種別毎にパケットの特定のフィールドから端末装置に固有の端末識別情報を抽出し、通信装置に接続された各端末の端末識別情報を記憶保持する。
【００７８】
端末識別情報は、端末装置のＯＳ、種別、ＩＰアドレス、ホスト名、ＮｅｔＢＩＯＳ名、ベンダー名等である。端末装置から取得したＭＡＣアドレスおよび接続ポート番号と、端末識別情報とを関連付けることで、通信装置の各接続ポートにどのような端末装置が接続されているかを特定できるようになる。
【００７９】
このように、端末装置の情報を可視化することにより、ネットワークに対してどのような端末装置が接続されているかを容易に知ることができる。そして、端末装置のネットワークへの不正接続や、脆弱なＯＳを使用している端末装置によるマルウェア感染を防ぎ、端末装置を含み構築したネットワークのセキュリティを保つことができるようになる。
【００８０】
また、実施の形態によれば、ネットワーク上に不正接続検知の専用装置（アプライアンス製品）を配置し、通信装置に蓄積された端末装置の可視化された情報を収集させることができる。これにより、例えば、脆弱なＯＳを使用している端末装置を接続ポートを含めて特定できるため、この脆弱なＯＳを使用している端末装置が接続された接続ポートを遮断する制御も行えるようになる。
【００８１】
実施の形態の通信装置は、Ｌ２スイッチおよびＬ３スイッチ、さらにはルータにも適用することができ、これらスイッチやルータを含み、接続ポートに接続された端末装置の端末識別情報を取得し、どのような端末装置が接続されているかを容易に特定できる。
【００８２】
そして、実施の形態によれば、スイッチデバイスとＣＰＵとの間では、端末装置が送信するパケットについて、通信プロトコルの制御に必要なパケットと、監視したいパケットとを異なる内部ポートを用いてＣＰＵに転送する。通信プロトコルの制御に必要なパケットは第一の転送パス（転送パスＡ）を介して転送し、端末装置の情報取得用のパケットは第二の転送パス（転送パスＢ）を介して転送するようにした。これにより、通信プロトコルの制御に必要なパケットの転送パスの輻輳を抑制し、パケットのロストを回避でき、データ転送の通信プロトコル制御用のパケットを確実に転送することが可能となる。
【００８３】
また、ＣＰＵは、第一の転送パスおよび第二の転送パスから転送されるそれぞれのパケットを並行処理することにより、通信プロトコルの制御に必要なパケット処理と、監視したいパケット処理とを並行処理できる。
【００８４】
例えば、ＣＰＵにマルチコアＣＰＵを用いることにより、あるコアで通信プロトコルの制御に必要なパケット処理を行い、他のコアで監視したいパケット処理を行うことができる。また、複数の異なるＣＰＵを用い、あるＣＰＵで通信プロトコルの制御に必要なパケット処理を行い、他のＣＰＵで監視したいパケット処理を行うことができる。これらにより、通信プロトコルの制御に必要なパケット処理と、監視したいパケット処理を独立して処理でき、一方が他方に影響を与えず、処理の輻輳を抑制し、これら異なるパケット処理をいずれも確実に実行できるようになる。
【００８５】
また、ＣＰＵは、第二の転送パスの情報取得用のパケットを監視し、情報取得用のパケットに含まれる端末装置に固有の識別情報を抽出することができる。例えば、情報取得用のパケットの所定のフィールドに含まれる端末装置に固有の識別情報をフィンガープリンティングにより取得する。これにより、端末装置に固有の識別情報を受信したパケットから簡単に取得することができる。
【００８６】
また、ＣＰＵは、端末装置のＭＡＣアドレスと接続ポートの情報をＭＡＣアドレステーブルに保持する。そして、ＣＰＵは、端末装置毎のＭＡＣアドレスをキーとして、情報取得用のパケットから抽出した端末識別情報をＭＡＣアドレスに関連付け、ＭＡＣアドレス毎に関連付けた接続ポートと、端末識別情報と、を端末識別情報テーブルに保持することができる。これにより、ＭＡＣ学習により得た端末装置毎のＭＡＣアドレスおよび接続ポートの情報と、パケット監視時に得た端末識別情報とを端末装置毎に関連付けて端末識別情報テーブルに保持しておくことができる。そして、端末識別情報テーブルを参照するだけで通信装置に接続された端末装置を特定できるようになる。
【００８７】
また、ＣＰＵは、受信したパケットから端末装置の通信プロトコルを判断し、通信プロトコル別のパケット処理を行うことができる。これにより、通信プロトコル別のパケット処理により、端末装置別の識別情報を容易に抽出することができるようになる。
【００８８】
また、ＣＰＵは、端末識別情報の要求に基づき、端末識別情報テーブルから端末装置毎のＭＡＣアドレスと、接続ポートと、端末識別情報と、を出力することができる。これにより、通信装置に対して外部から端末識別情報の要求時、端末識別情報テーブルを参照するだけで通信装置に接続された端末装置を直ちに返答できるようになる。
【００８９】
また、ＣＰＵは、第二の転送パスに監視対象の端末装置のＶＬＡＮセグメントの識別子を割り当て、監視対象の端末装置全体のパケットを第二の転送パスを介して取得することができる。これにより、接続ポートに接続された監視対象の端末装置が送信するブロードキャストおよびマルチキャストのパケットをＣＰＵに転送でき、ＣＰＵは、監視対象の端末装置の端末識別情報を取得できるようになる。
【００９０】
そして、実施の形態によれば、専用アプライアンスを導入することなく、ネットワーク上に上記の通信装置を設置するだけで、通信装置に接続された端末装置を可視化するための端末識別情報を容易に取得できるようになる。また、実施の形態によれば、通信装置に対して、従来の如く専用アプライアンスを接続する必要がないため、通信装置の接続ポートを占有することがなく、通信装置の接続ポートを端末装置の接続用に確保できる。また、上述した端末識別情報により、端末装置が通信装置のどの接続ポート配下に接続されているかを容易に判別できるようになる。
【００９１】
なお、本実施の形態で説明した通信制御にかかる方法は、予め用意された制御プログラムを対象機器（通信装置）のコンピュータ（ＣＰＵ等）が実行することにより実現することができる。本制御プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）接続される端末装置のデータのパケットを中継する通信装置であって、
前記端末装置から送信されたパケットの中継を行うスイッチデバイスと、
前記スイッチデバイスを制御するＣＰＵと、
前記スイッチデバイスから前記ＣＰＵへのパケットの転送パスとして、
通信プロトコル制御に必要なパケットを転送する第一の転送パスと、
前記端末装置の情報取得用のパケットを転送する第二の転送パスと、
を備え、
前記ＣＰＵは、前記第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行い、前記第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行うことを特徴とする通信装置。
【００９４】
（付記２）前記ＣＰＵは、前記第一の転送パスおよび前記第二の転送パスから転送されるそれぞれの前記パケットを並行処理することを特徴とする付記１に記載の通信装置。
【００９５】
（付記３）前記ＣＰＵは、マルチコアＣＰＵ、あるいは複数の異なるＣＰＵであることを特徴とする付記２に記載の通信装置。
【００９６】
（付記４）前記ＣＰＵは、前記第二の転送パスの前記情報取得用のパケットを監視し、当該情報取得用のパケットに含まれる前記端末装置に固有の端末識別情報を抽出することを特徴とする付記１〜３のいずれか一つに記載の通信装置。
【００９７】
（付記５）前記ＣＰＵは、当該情報取得用のパケットの所定のフィールドに含まれる前記端末装置に固有の端末識別情報をフィンガープリンティングにより取得することを特徴とする付記４に記載の通信装置。
【００９８】
（付記６）前記ＣＰＵは、前記端末装置のＭＡＣアドレスと接続ポートの情報をＭＡＣアドレステーブルに保持し、前記端末装置毎のＭＡＣアドレスをキーとして、前記情報取得用のパケットから抽出した前記端末識別情報を前記ＭＡＣアドレスに関連付け、
前記ＭＡＣアドレス毎に関連付けた前記接続ポートと、前記端末識別情報と、を端末識別情報テーブルに保持することを特徴とする付記４または５に記載の通信装置。
【００９９】
（付記７）前記ＣＰＵは、前記端末識別情報の要求に基づき、前記端末識別情報テーブルから前記端末装置毎のＭＡＣアドレスと、前記接続ポートと、前記端末識別情報と、を出力することを特徴とする付記５または６に記載の通信装置。
【０１００】
（付記８）前記ＣＰＵは、受信したパケットから前記端末装置の通信プロトコルを判断し、前記通信プロトコル別のパケット処理を行うことを特徴とする付記１〜７のいずれか一つに記載の通信装置。
【０１０１】
（付記９）前記ＣＰＵは、前記第二の転送パスに監視対象の前記端末装置のＶＬＡＮセグメントの識別子の割り当て、または、前記第二の転送パスに監視対象の外部ポートをスイッチデバイスのミラーリング機能により、前記監視対象の端末装置全体のパケットを前記第二の転送パスを介して取得することを特徴とする付記１〜８のいずれか一つに記載の通信装置。
【０１０２】
（付記１０）端末装置から送信されたパケットの中継を行うスイッチデバイスと、前記スイッチデバイスからパケットの転送パスを有し、前記スイッチデバイスを制御するＣＰＵと、を有する通信装置の通信制御プログラムであって、
前記ＣＰＵに、
通信プロトコル制御に必要なパケットを転送する第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行わせ、
前記端末装置の情報取得用のパケットを転送する第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行わせる、
ことを特徴とする通信制御プログラム。
【符号の説明】
【０１０３】
１００  通信装置
１０１  ＣＰＵ
１０１ａ  コンソールポート
１０２  スイッチデバイス
１０３  メモリ
１０４  不揮発メモリ
１０５  内部ポート（第一の転送パスＡ）
１０６  内部ポート（第二の転送パスＢ）
２０１  パケット解析部
２０２  出力生成部
２０３  コマンド受付部
２０４  スイッチデバイス制御部
２０５  通信デバイス制御部
２０６  コンソールデバイス制御部
２１１  パケット種別毎の解析部
２２１  プロトコル解析部
４００（４００ａ，４００ｂ）  端末装置
５００  出力結果
ＤＢ  端末識別情報テーブル
Ｆ１  通信プロトコルの制御に必要なパケット
Ｆ２  監視したいパケット
Ｐ  接続ポート
Ｔ  ＭＡＣアドレステーブル
【図１】
2020031321.tif 000003
【図２】
2020031321.tif 000004
【図３】
2020031321.tif 000005
【図４Ａ】
2020031321.tif 000006
【図４Ｂ】
2020031321.tif 000007
【図５】
2020031321.tif 000008
【図６】
2020031321.tif 000009
【図７】
2020031321.tif 000010
【図８】
2020031321.tif 000011
【図９】
2020031321.tif 000012
【図１０】
2020031321.tif 000013