(実施の形態)
実施の形態の通信装置は、スイッチ(L2スイッチ、L3スイッチ)、ルータ等に適用される。実施の形態では、通信装置とは別にネットワーク上に別途アプライアンス製品を設けることなく、通信装置単体で、この通信装置に接続された端末装置の情報の可視化を実現する。端末装置の情報とは、例えば、端末装置のMACアドレス、接続ポート番号、端末装置の識別情報等である。情報の可視化とは、端末装置を特定可能な固有の情報を表示等のために出力することを意味する。通信装置は、例えば、端末装置毎のMACアドレスと、接続ポート番号と、端末装置の識別情報と、を関連付けた情報を生成し、出力する。
図1は、実施の形態にかかる通信装置のハードウェア構成例を示す図である。図1には、通信装置100として、L2スイッチまたはL3スイッチに適用した場合の構成例を示す。通信装置100は、CPU(Central Processing Unit)101、スイッチデバイス102、メモリ103、不揮発メモリ104等を含む。
CPU101は、通信装置100の全体制御を司る制御部として機能し、通信装置100に接続された端末装置間のデータの中継(転送)を制御する。スイッチデバイス102は、ASIC(Application Specific Integrated Circuit)等で構成され、LAN等の接続ポートP(P1~Pn)に接続される端末装置のデータ中継を制御する。
符号101aは、コンソールポートであり、PC等の外部コンソール端末に接続され、コンソール端末によりコンソールポート101aを介して入力されるコマンドに基づき、通信装置100の設定操作や端末装置の端末識別情報等の情報出力を行うことができる。以下の説明では、通信装置100が端末装置との間で送受信するデータは、所定フレームを有し、パケット化されて送受信される。
不揮発メモリ104には、CPU101の制御プログラムが格納され、制御プログラムは、CPU101により不揮発メモリ104からメモリ103にロードされて実行される。その際、CPU101は、メモリ103や不揮発メモリ104を作業領域に使用する。メモリ103には、例えばRAM等を用いることができ、不揮発メモリ104にはフラッシュメモリを用いることができる。メモリ103は、例えば、設定データや後述する各テーブル等の情報を保持する補助メモリとしても機能する。
そして、実施の形態の通信装置100は、CPU101とスイッチデバイス102との間には、通信プロトコル制御用パケットを転送する信号線である転送パス(第一の転送パス)Aと、他装置情報取得用パケットを転送する信号線である転送パス(第二の転送パス)Bと、を個別に設ける。転送パスAは、既存の通信装置と同様のパケット転送に用いる。
なお、端末装置は、通信装置100に対して所定の(単一の)パケットを送信し、このパケットを受信した通信装置100は、内部のスイッチデバイス102によって、パケットを第一の転送パスAあるいは第二の転送パスBに振り分けて転送するか、双方に同じパケットを同報する。パケットが通信プロトコル制御と他装置情報取得の両方の用途に使われる場合はパスAにもパスBにも同じパケットを送信する必要がある。
転送パスBは、端末情報取得用パケットの転送パスであり、通信装置100の接続ポートに接続される端末装置に固有の情報の取得用として新設する。例えば、CPU101とスイッチデバイス102とを接続する内部ポートの一部を通信プロトコル制御用パケットの転送専用として用い、他の一部を端末装置の端末情報取得用パケットの転送専用として割り当てる。
転送パスAでは、制御情報付きのパケット送受信を行う、例えば、PCI-Express等の規格の内部ポート105を用いることができる。転送パスBには、SGMII(Serial Gigabit Media Independent Interface)等のポート(内部ポート)106を用いることができる。
また、転送パスBには、所定のVLAN ID(Virtual LAN IDentifier)を割り当てる。転送パスBの内部ポート106に監視したいVLANセグメントのID(所定の識別子)を割り当てることにより、スイッチデバイス102は、端末装置が送信するブロードキャストおよびマルチキャストのパケットをいずれもCPU101に送ることができる。
図2は、実施の形態にかかる端末装置の情報の可視化に関わるソフトウェア機能のブロック図である。図2に示す各構成部の機能は、図1のCPU101のプログラム実行により実現できる。
CPU101は、パケット解析部201と、出力生成部202と、コマンド受付部203と、スイッチデバイス制御部204と、通信デバイス制御部205と、コンソールデバイス制御部206と、を含む。端末識別情報テーブルDBと、MACアドレステーブルTは、例えば図1に記載のメモリ103や不揮発メモリ104の記憶領域に設けられる。
通信デバイス制御部205は、CPU101に内蔵される通信コントローラを制御するドライバとして機能し、スイッチデバイス102を経由して受信したパケットをパケット入出力インタフェース(IF)を介してパケット解析部201に出力する。通信デバイス制御部205は、転送パスB(内部ポート106)を用いて端末装置との間のパケットの入出力を制御する。
コンソールデバイス制御部206は、コンソールポート101aに対する入出力を制御するドライバとして機能する。コンソールデバイス制御部206は、コンソールポート101aを介して入力された操作等のコマンドをコマンド入出力IFを介してコマンド受付部203に出力する。
パケット解析部201は、内部ポート106を経由して端末装置から入力されるパケットを受信してパケットの種別毎の解析を行う。パケット解析部201は、受信したパケットの種別を判定し、パケット種別毎の解析部211にパケットを渡す。
パケット種別毎の解析部211は、通信プロトコル毎の複数のプロトコル解析部221(221a,221b…)を有する。各プロトコル解析部221は、受信したパケットの特定のフィールドの値を元に端末装置の識別情報に変換し、取得したMACアドレスと端末装置の識別情報を端末識別情報テーブルDBに登録する。
プロトコル解析部221は、例えば、フィンガープリンティングの手法により端末装置の識別情報を得る。フィンガープリンティングとは、端末装置から送信されたパケットの特定のフィールドの値を抽出し、そのフィールドの値によって、端末装置のオペレーティングシステム(OS)種別やOSバージョン、機種名を推定する方法である。また、パケット内の情報からパケットの送信元である端末装置のMACアドレスを得る。そして、プロトコル解析部221は、得られたMACアドレスと、端末装置の識別情報を、端末識別情報テーブルDBにデータベースとして登録する。
MACアドレステーブルTには、MAC学習により端末装置毎のMACアドレスと、このMACアドレスの端末装置が接続されている通信装置100の接続ポートPのポート番号の情報をテーブル形式で記憶保持する。スイッチデバイス制御部204は、MACアドレステーブルTにアクセスするドライバの機能部である。スイッチデバイス制御部204は、出力生成部202の要求により、MACアドレステーブルTを参照し、端末装置毎のMACアドレスとポート番号の情報を読み出し、出力生成部202に出力する。
コマンド受付部203は、コンソールデバイス制御部206を介して外部のコンソール端末から入力されるコマンドを解析し、要求されたコマンドに対応する出力生成要求を出力生成部202に出力する。また、出力生成部202が生成した出力結果を、コンソールデバイス制御部206を介して外部のコンソール端末に出力する。
出力生成部202は、コマンド受付部203からの出力生成要求を受け付けると、端末識別情報テーブルDBと、MACアドレステーブルTを参照する。そして、出力生成部202は、これら端末識別情報テーブルDBおよびMACアドレステーブルTから該当する端末装置を可視化する情報を生成し出力結果として、コマンド受付部203を介してコンソール端末に向けて出力する。端末装置を可視化する情報の詳細な生成例については後述する。
以下、端末装置を可視化する情報を生成するために行う通信装置100の各機能部の処理例について説明する。
図3は、実施の形態にかかる通信装置が行うパケット解析処理例を示すフローチャートである。主に、図2のパケット解析部201が行う処理内容について説明する。
はじめに、パケット解析部201は、端末装置が送信したパケット種別を判定する(ステップS301a)。パケット種別の判定は、パケットのヘッダを参照してプロトコル、例えば、DHCP(Dynamic Host Configuration Protocol)や、LLDP(Link Layer Discovery Protocol)を判定する。
そして、パケット解析部201は、判定したプロトコル毎に、受信したパケットをパケット種別毎の解析部211に渡す。例えば、パケット解析部201は、パケット種別が〇〇プロトコルであれば(ステップS301a:Case1)、このパケットを対応するプロトコル解析部221(図1の〇〇プロトコル解析部221a)に渡す。そして、〇〇プロトコル解析部221aによりステップS302aの処理を実行する。受信したパケットが異なるプロトコルであれば(ステップS301a:other)、再度パケット種別の判定を行う(ステップS301b)。
ステップS302aでは、プロトコル解析部221(〇〇プロトコル解析部221a)により、この○○プロトコルの解析処理を行う。はじめに、プロトコル解析部221は、パケットの特定のフィールドを上記フィンガープリンティング等の手法により抽出し(ステップS303)、抽出した特定のフィールドの値を識別情報に変換する(ステップS304)。また、パケットの送信元MACのフィールドから端末装置のMACアドレスを抽出する(ステップS305)。
次に、プロトコル解析部221は、抽出したMACアドレスをキーとして、端末識別情報テーブルDBを検索し(ステップS306)、該当するMACアドレスの登録の有無を判断する(ステップS307)。ここで、該当するMACアドレスが端末識別情報テーブルDBに未登録エントリであったとする(ステップS307:Yes)。この場合、プロトコル解析部221は、MACアドレスと、ステップS305で抽出した端末装置の識別情報のエントリを端末識別情報テーブルDBに新規登録する(ステップS308)。
一方、該当するMACアドレスが端末識別情報テーブルDBに登録済であったとする(ステップS307:No)。この場合、プロトコル解析部221は、MACアドレスと、ステップS305で抽出した端末装置の識別情報の内容で端末識別情報テーブルDBを更新する(ステップS309)。ステップS308またはステップS309の処理により、パケット解析部201は一つのプロトコル(〇〇プロトコル)に対する一連のパケット解析処理を終了する。
また、上記ステップS301aにおいて、受信したパケットが異なるプロトコルの場合(ステップS301a:other)、パケット解析部201は、再度のパケット種別の判定を行う(ステップS301b)。例えば、パケット解析部201は、パケット種別が〇△プロトコルであれば(ステップS301b:Case2)、このパケットを対応するプロトコル解析部221(図1の〇△プロトコル解析部221b)に渡す。そして、〇△プロトコル解析部221bによりステップS302bの処理を実行する。
ステップS302bでは、プロトコル解析部221(〇△プロトコル解析部221b)により、この○△プロトコルの解析処理を行う。ステップS302bにおけるプロトコル解析の処理手順は、ステップS303~ステップS309と同様である。また、プロトコル解析処理は、異なるプロトコル毎にそれぞれステップS303~ステップS309と同等の処理を行えばよい。
なお、図3の処理は一例であり、例えば、一つのステップS301aで複数のパケット種別のいずれであるかを特定してもよい。この場合、ステップS302aでは、ステップS301aで特定したパケット種別に対応した分岐先の各処理で、特定したパケット種別のプロトコル解析処理を直接実行することができる。
図4A,図4Bは、実施の形態にかかる通信装置が行うプロトコル解析処理を説明する図である。これらの図を用いて図3のステップS302aに示すプロトコル解析処理の流れを示す。
図4Aには、通信装置100は、接続ポートPに接続された端末装置400(400a)からDHCPパケットを受信する例を示す。DHCPパケット410は、パケットの送信元である端末装置400aの送信元MACアドレスの値のフィールド410aと、Option55の値のフィールド410bと、を含む。Option55フィールド410bは、端末装置400aのOSに対応した異なる値をとる。
パケット解析部201のパケット種別毎の解析部211は、上記特定のフィールド抽出時(ステップS303)、送信元MACアドレスの値のフィールド410aから送信元MACアドレス「00:23:26:01:23:45」を取得する。また、パケット種別毎の解析部211は、Option55フィールド410bをフィンガープリンティングし、「1,15,3,6,44,46,47,31,33,249,43」の値が「Windows XP」(登録商標)のOS種別であると判断する。
そして、パケット種別毎の解析部211は、端末識別情報テーブルDBに、取得した端末装置400aに対応する新たなエントリとして、MACアドレス「00:23:26:01:23:45」を格納する。また、このMACアドレスに対応する端末識別情報として「Windows XP」の情報を格納する。
図4Bには、通信装置100は、接続ポートPに接続された端末装置400(400b)からLLDPパケットを受信する例を示す。LLDPはLink Layer Discovery Protocolの略である。LLDPパケット420は、パケットの送信元である端末装置400bの送信元MACアドレスの値のフィールド420aと、System Descriptionフィールド(システム種別)420bと、を含む。System Descriptionフィールド420bは、端末装置400bの種別に対応した異なる値をとる。
パケット解析部201のパケット種別毎の解析部211は、特定のフィールド抽出時(ステップS303)、送信元MACアドレスの値のフィールド420aから送信元MACアドレス「00:23:26:0a:bc:de」を取得する。また、パケット種別毎の解析部211は、System Descriptionフィールド420bの値「Fujitsu IP Phone」を取得する。
そして、パケット種別毎の解析部211は、端末識別情報テーブルDBに、取得した端末装置400bに対応する新たなエントリとして、MACアドレス「00:23:26:0a:bc:de」を格納する。また、このMACアドレスに対応する端末識別情報として「Fujitsu IP Phone」の情報を格納する。
図5は、実施の形態にかかる通信装置の出力生成処理例を説明する図である。図2に示す出力生成部202による出力結果の生成処理例を示す。出力生成部202は、コマンド受付部203からの出力生成要求を受けると、MACアドレステーブルTと、端末識別情報テーブルDBとを参照する。そして、出力生成部202は、端末識別情報テーブルDBからMACアドレス毎の端末識別情報を取得する。また、MACアドレステーブルTからMACアドレス毎の接続ポート番号情報を取得する。そして、MACアドレス毎の接続ポート番号情報と、端末識別情報とを関連付けた出力結果500を生成する。
図5には、DHCPパケットを送出した端末装置400a(図4A参照)に関する出力結果500の生成例を示す。出力生成部202は、端末装置400aのMACアドレス「00:23:26:01:23:45」をキーとして、端末識別情報テーブルDBからMACアドレスに対応する端末識別情報「Windows XP」を取得する。また、出力生成部202は、取得した端末装置400aのMACアドレス「00:23:26:01:23:45」をキーとして、MACアドレステーブルTからMACアドレスに対応する接続ポート番号情報「1」を取得する。
そして、出力生成部202は、MACアドレス「00:23:26:01:23:45」の接続ポート番号情報「1」と、端末識別情報「Windows XP」とを関連付けた出力結果500を生成する。
出力結果500は、MACアドレス毎、すなわち通信装置100の全ポート(接続ポートP)に接続されている全ての端末装置400(400a,400b,…)の接続ポート番号情報と、端末識別情報とを関連付けた情報を含む。
出力生成部202が生成した出力結果500は、出力生成要求を行ったコンソールポート101a(図1参照)を介して外部のコンソール端末にコマンドラインで返答する。このほか、出力結果500の出力先は、出力生成要求を行った所定の端末装置のWebブラウザ上に表示してもよいし、ファイル化して出力生成要求を行った所定の端末装置に送信する構成としてもよい。
上述した通信装置100では、転送パスBの内部ポート106に監視したいVLANセグメントのIDを割り当てる構成とした。この構成に加えて、スイッチデバイス102のポートミラーリング機能を使用して外部の特定のポート(例えば一つあるいは全てのポート)に入出力されるパケットを内部ポート106にミラーリングしてもよい。これにより、ブロードキャスト、マルチキャストパケット以外のパケットもモニターできるようになる。
通信装置100のCPU101が行う各機能部(図2参照)の処理については、ネットワーク機器としてデータ転送する主機能に影響を与えないよう、主機能とは別のコアを割付けてもよい。そして、CPU101がパケット解析により取得する端末を可視化するための情報は、MACアドレスと端末装置400の識別情報に限らない。例えば、IPアドレスやホスト名、NetBIOS名(コンピュータ名に相当)、ベンダー名を加えた全てであってもよいし、そのうちのいずれかの組み合わせであってもよい。
図6は、実施の形態にかかる通信装置の出力結果の例を示す図表である。出力生成部202は、図6に示す例では、出力結果500として、端末装置400(400a,400b,…)毎のMACアドレス、端末識別情報、接続ポート番号情報に加え、端末装置400から取得したIPアドレス、コンピュータ名を含んでいる。この出力結果500は、端末識別情報テーブルDBに格納保持される。
図示のように、通信装置100は、複数の端末装置400それぞれのMACアドレスと、端末識別情報として異なるOSであること、通信装置100に対する接続ポート番号情報、IPアドレス、コンピュータ名、を可視化した情報として出力することができる。
図7は、実施の形態にかかる通信装置の他のハードウェア構成例を示す図である。図7に示す通信装置100は、ルータに適用した場合の構成例を示す。ルータの構成例の場合、図1に示す各構成に加えて、CPU101にはWAN等の外部ネットワークのポートWを備えればよい。
次に、上述した実施の形態の通信装置100において、図1に示したCPU101とスイッチデバイス102との間に転送パスB(内部ポート106)を新たに設けた構成について、従来技術との対比説明を行う。
図8は、従来の通信装置による内部ポートの輻輳状態を説明する図である。従来の通信装置800では、CPU801とスイッチデバイス802は、CPUポートと呼ばれるデータパス803(図1の転送パスA(内部ポート105に相当)を経由して通信プロトコルの制御に必要なパケットの送受信を行っている。
CPUポート(データパス803)は、例えば、STPで使用されるBPDUパケットの送受信に使用されている。STPは、LAN内の端末装置がループ構成となるのを回避するための通信プロトコルである。そして、実施の形態で説明したように、端末装置の情報を可視化するために、CPUポート(データパス803)を使って複数の監視したい端末装置のパケットF2を取得したとする。
この場合、図8に示すように、複数の接続ポート(P1,P2,Pn-1,Pn)の監視したいパケットF2がCPUポート(データパス803)に集中して輻輳が発生しやすくなる。この結果、通信プロトコルの制御に必要なパケットF1(接続ポートP3)を取りこぼすことがある。
例えば、STPの場合、CPU801がBPDUパケットを取りこぼしてしまうと、ループ構成を回避するための再計算処理を行う必要が生じ、STPを構成するネットワーク全体が暫くの間、通信停止状態となるおそれが生じる。
図9は、実施の形態にかかる通信装置による内部ポートの輻輳状態の回避を説明する図である。実施の形態の通信装置100は、CPUポート(内部ポート105)の転送パスAを、既存の通信プロトコル制御用のパケットF1の転送パスとして用いる。
そして、この転送パスA(内部ポート105)とは別に、監視したいパケットF2用のデータパスとして転送パスBを設ける。これにより、転送パスBを監視したいパケットF2専用として用いる。この場合、接続ポートP1,P2,Pn-1,Pnのパケット監視により端末装置400の情報を取得する。
この際、転送パスAは、パケット監視に関与せずに接続ポートP3の既存の通信プロトコル制御用のパケットF1の転送を継続できる。なお、実施の形態では、通信プロトコル制御用のパケットF1として、他にSNMP(Simple Network Management Protocol)にも適用できる。
これにより、通信装置100において輻輳要因の通信プロトコル制御用パケットのロスト発生を回避することができる。そして、通信装置100は、端末装置400の情報取得の処理を行っても、ネットワーク機器の主機能の一つである通信プロトコル制御への影響を回避することができるようになる。
図10は、実施の形態にかかる通信装置のマルチコアCPUを用いた処理動作を説明する図である。上述した、CPUポートの転送パスAとは別に、パケットを監視するためのデータパス(転送パスB)を用いた場合のCPU処理例について説明する。
図10に示すように、CPU101として複数のコアを搭載するCPUを使用する。これにより、内部ポートのパケット送受信処理をCPU101の所定のコアを用いて行いながら、監視ポートのパケット送受信処理をCPU101の別のコアで並列に行うことができる。
例えば、CPU101の複数のコアnのうちの一つ(n-1)のコア(例えばコア0)は、ネットワーク機器として必要な転送パスAを用いた通信制御部1001として機能する。通信制御部1001は、端末装置400の通信プロトコルに応じた解析と制御処理を行う通信プロトコル解析、制御処理部1011と、スイッチデバイス102を制御するスイッチデバイス制御処理部1012と、を含む。また、コマンド受付処理部1013と、内部ポートのフレーム送受信処理部1014と、を含む。これら各構成部は、CPU101のコア0がプログラム実行することで機能実現できる。
また、CPU101のコアnは、通信装置100に接続された端末装置400の情報を可視化する可視化処理部1002として機能する。この端末装置の情報を可視化する可視化処理部1002は、転送パスBを用いて端末識別情報を取得する端末装置識別フレーム解析処理部1021と、監視ポート(内部ポート106)のパケット送受信処理を行うフレーム送受信処理部1022と、を含む。これら各構成部は、CPU101のコアnがプログラム実行することで機能実現できる。
CPU101は、転送パスA(内部ポート105)と、転送パス(内部ポート106)単位で、一方の通信制御部1001、および他方の可視化処理部1002の機能を処理するコアを指定することができる。
また、CPU101は、マルチコアのCPUを用いるに限らず、複数のCPU101を用いてもよい。このようなマルチCPUの構成の場合、一方のCPU101は、転送パスAを用いる通信制御部1001として機能する。他方のCPU101は、通信装置100に接続された端末装置400の情報を可視化するために、転送パスBを用いて端末識別情報を取得する機能、すなわち、可視化処理部1002として機能する。
このように、転送パスAを用いて端末装置400の通信プロトコルの制御に必要なパケットに対するパケット送受信処理をCPU内のあるCPUコアが割り付け実行する。また、転送パスBを用いて端末装置400の端末識別情報を取得するパケット解析処理をCPU内の他のCPUコアが割り付け実行する。
これにより、通信装置100は、転送パスBを用いて端末装置400の端末識別情報を取得するパケット解析処理を行っても、ネットワーク機器の主機能である通信プロトコルの制御に必要なパケットの処理で使用するCPUリソースの圧迫を防ぐことができる。そして、通信装置100の主機能である通信プロトコルの制御に必要なパケットの処理の輻輳を抑制できるようになる。
以上説明した実施の形態によれば、通信装置単体で、この通信装置に接続された複数の端末装置の情報の可視化を行うことができる。実施の形態では、通信装置は、端末装置のパケットを監視し、プロトコル種別毎にパケットの特定のフィールドから端末装置に固有の端末識別情報を抽出し、通信装置に接続された各端末の端末識別情報を記憶保持する。
端末識別情報は、端末装置のOS、種別、IPアドレス、ホスト名、NetBIOS名、ベンダー名等である。端末装置から取得したMACアドレスおよび接続ポート番号と、端末識別情報とを関連付けることで、通信装置の各接続ポートにどのような端末装置が接続されているかを特定できるようになる。
このように、端末装置の情報を可視化することにより、ネットワークに対してどのような端末装置が接続されているかを容易に知ることができる。そして、端末装置のネットワークへの不正接続や、脆弱なOSを使用している端末装置によるマルウェア感染を防ぎ、端末装置を含み構築したネットワークのセキュリティを保つことができるようになる。
また、実施の形態によれば、ネットワーク上に不正接続検知の専用装置(アプライアンス製品)を配置し、通信装置に蓄積された端末装置の可視化された情報を収集させることができる。これにより、例えば、脆弱なOSを使用している端末装置を接続ポートを含めて特定できるため、この脆弱なOSを使用している端末装置が接続された接続ポートを遮断する制御も行えるようになる。
実施の形態の通信装置は、L2スイッチおよびL3スイッチ、さらにはルータにも適用することができ、これらスイッチやルータを含み、接続ポートに接続された端末装置の端末識別情報を取得し、どのような端末装置が接続されているかを容易に特定できる。
そして、実施の形態によれば、スイッチデバイスとCPUとの間では、端末装置が送信するパケットについて、通信プロトコルの制御に必要なパケットと、監視したいパケットとを異なる内部ポートを用いてCPUに転送する。通信プロトコルの制御に必要なパケットは第一の転送パス(転送パスA)を介して転送し、端末装置の情報取得用のパケットは第二の転送パス(転送パスB)を介して転送するようにした。これにより、通信プロトコルの制御に必要なパケットの転送パスの輻輳を抑制し、パケットのロストを回避でき、データ転送の通信プロトコル制御用のパケットを確実に転送することが可能となる。
また、CPUは、第一の転送パスおよび第二の転送パスから転送されるそれぞれのパケットを並行処理することにより、通信プロトコルの制御に必要なパケット処理と、監視したいパケット処理とを並行処理できる。
例えば、CPUにマルチコアCPUを用いることにより、あるコアで通信プロトコルの制御に必要なパケット処理を行い、他のコアで監視したいパケット処理を行うことができる。また、複数の異なるCPUを用い、あるCPUで通信プロトコルの制御に必要なパケット処理を行い、他のCPUで監視したいパケット処理を行うことができる。これらにより、通信プロトコルの制御に必要なパケット処理と、監視したいパケット処理を独立して処理でき、一方が他方に影響を与えず、処理の輻輳を抑制し、これら異なるパケット処理をいずれも確実に実行できるようになる。
また、CPUは、第二の転送パスの情報取得用のパケットを監視し、情報取得用のパケットに含まれる端末装置に固有の識別情報を抽出することができる。例えば、情報取得用のパケットの所定のフィールドに含まれる端末装置に固有の識別情報をフィンガープリンティングにより取得する。これにより、端末装置に固有の識別情報を受信したパケットから簡単に取得することができる。
また、CPUは、端末装置のMACアドレスと接続ポートの情報をMACアドレステーブルに保持する。そして、CPUは、端末装置毎のMACアドレスをキーとして、情報取得用のパケットから抽出した端末識別情報をMACアドレスに関連付け、MACアドレス毎に関連付けた接続ポートと、端末識別情報と、を端末識別情報テーブルに保持することができる。これにより、MAC学習により得た端末装置毎のMACアドレスおよび接続ポートの情報と、パケット監視時に得た端末識別情報とを端末装置毎に関連付けて端末識別情報テーブルに保持しておくことができる。そして、端末識別情報テーブルを参照するだけで通信装置に接続された端末装置を特定できるようになる。
また、CPUは、受信したパケットから端末装置の通信プロトコルを判断し、通信プロトコル別のパケット処理を行うことができる。これにより、通信プロトコル別のパケット処理により、端末装置別の識別情報を容易に抽出することができるようになる。
また、CPUは、端末識別情報の要求に基づき、端末識別情報テーブルから端末装置毎のMACアドレスと、接続ポートと、端末識別情報と、を出力することができる。これにより、通信装置に対して外部から端末識別情報の要求時、端末識別情報テーブルを参照するだけで通信装置に接続された端末装置を直ちに返答できるようになる。
また、CPUは、第二の転送パスに監視対象の端末装置のVLANセグメントの識別子を割り当て、監視対象の端末装置全体のパケットを第二の転送パスを介して取得することができる。これにより、接続ポートに接続された監視対象の端末装置が送信するブロードキャストおよびマルチキャストのパケットをCPUに転送でき、CPUは、監視対象の端末装置の端末識別情報を取得できるようになる。
そして、実施の形態によれば、専用アプライアンスを導入することなく、ネットワーク上に上記の通信装置を設置するだけで、通信装置に接続された端末装置を可視化するための端末識別情報を容易に取得できるようになる。また、実施の形態によれば、通信装置に対して、従来の如く専用アプライアンスを接続する必要がないため、通信装置の接続ポートを占有することがなく、通信装置の接続ポートを端末装置の接続用に確保できる。また、上述した端末識別情報により、端末装置が通信装置のどの接続ポート配下に接続されているかを容易に判別できるようになる。
なお、本実施の形態で説明した通信制御にかかる方法は、予め用意された制御プログラムを対象機器(通信装置)のコンピュータ(CPU等)が実行することにより実現することができる。本制御プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)接続される端末装置のデータのパケットを中継する通信装置であって、
前記端末装置から送信されたパケットの中継を行うスイッチデバイスと、
前記スイッチデバイスを制御するCPUと、
前記スイッチデバイスから前記CPUへのパケットの転送パスとして、
通信プロトコル制御に必要なパケットを転送する第一の転送パスと、
前記端末装置の情報取得用のパケットを転送する第二の転送パスと、
を備え、
前記CPUは、前記第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行い、前記第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行うことを特徴とする通信装置。
(付記2)前記CPUは、前記第一の転送パスおよび前記第二の転送パスから転送されるそれぞれの前記パケットを並行処理することを特徴とする付記1に記載の通信装置。
(付記3)前記CPUは、マルチコアCPU、あるいは複数の異なるCPUであることを特徴とする付記2に記載の通信装置。
(付記4)前記CPUは、前記第二の転送パスの前記情報取得用のパケットを監視し、当該情報取得用のパケットに含まれる前記端末装置に固有の端末識別情報を抽出することを特徴とする付記1~3のいずれか一つに記載の通信装置。
(付記5)前記CPUは、当該情報取得用のパケットの所定のフィールドに含まれる前記端末装置に固有の端末識別情報をフィンガープリンティングにより取得することを特徴とする付記4に記載の通信装置。
(付記6)前記CPUは、前記端末装置のMACアドレスと接続ポートの情報をMACアドレステーブルに保持し、前記端末装置毎のMACアドレスをキーとして、前記情報取得用のパケットから抽出した前記端末識別情報を前記MACアドレスに関連付け、
前記MACアドレス毎に関連付けた前記接続ポートと、前記端末識別情報と、を端末識別情報テーブルに保持することを特徴とする付記4または5に記載の通信装置。
(付記7)前記CPUは、前記端末識別情報の要求に基づき、前記端末識別情報テーブルから前記端末装置毎のMACアドレスと、前記接続ポートと、前記端末識別情報と、を出力することを特徴とする付記5または6に記載の通信装置。
(付記8)前記CPUは、受信したパケットから前記端末装置の通信プロトコルを判断し、前記通信プロトコル別のパケット処理を行うことを特徴とする付記1~7のいずれか一つに記載の通信装置。
(付記9)前記CPUは、前記第二の転送パスに監視対象の前記端末装置のVLANセグメントの識別子の割り当て、または、前記第二の転送パスに監視対象の外部ポートをスイッチデバイスのミラーリング機能により、前記監視対象の端末装置全体のパケットを前記第二の転送パスを介して取得することを特徴とする付記1~8のいずれか一つに記載の通信装置。
(付記10)端末装置から送信されたパケットの中継を行うスイッチデバイスと、前記スイッチデバイスからパケットの転送パスを有し、前記スイッチデバイスを制御するCPUと、を有する通信装置の通信制御プログラムであって、
前記CPUに、
通信プロトコル制御に必要なパケットを転送する第一の転送パスを用いて前記通信プロトコル制御に必要なパケットに対する通信プロトコルの制御を行わせ、
前記端末装置の情報取得用のパケットを転送する第二の転送パスを用いて前記情報取得用のパケットから前記端末装置に固有の情報を取得する制御を行わせる、
ことを特徴とする通信制御プログラム。