説明

通信システム、スイッチングハブ、およびルータ

【課題】LAN(Local Area Network)などルータ配下の通信ネットワークに含まれている各通信装置の接続関係を、それら通信装置に過大な負荷をかけることなく、かつ低コストで把握することができるようにする。
【解決手段】LANをIP網へ接続するルータ宛てのARP(Address Resolution Protocol)パケットを下流側から受信したスイッチングハブに、そのARPパケットを受信したポートを示すタグ情報を付与して転送する処理を実行させる。一方、ルータには、自装置宛のARPパケットを受信した場合に、そのARPパケットに付与されているタグ情報からそのARPパケットの送信元の通信端末とそのARPパケットの転送経路上のスイッチングハブとの接続関係を示す情報を生成して記憶する処理を実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、LAN(Local Area Network)の運用管理を支援する技術に関する。
【背景技術】
【0002】
近年、企業等においては、支店などの各拠点に敷設されたLAN(以下、拠点内LAN)をルータによってインターネットなどのIP(Internet Protocol)網に接続して企業内情報システムを構築することが一般に行われている。一般に、拠点内LANには、スイッチングハブや各ユーザ(例えば、企業の従業者)の使用する通信端末などがその構成要素として含まれている。スイッチングハブとは、通信端末を拠点内LANに接続するための通信装置であり、スイッチングハブに接続可能な通信端末の数は「スイッチングハブが有するポート数−1」となる。このため、1台のスイッチングハブのポート数を上回る数の通信端末を拠点内LANに接続する必要がある場合には、図13に示すように、複数のスイッチングハブをカスケード接続し、接続可能な通信端末数を増加させることが一般に行われている。
【0003】
ところで、企業内情報システム(或いは、その構成要素である各拠点内LAN)の運用管理や保守を行う際には、拠点内LANに含まれる各通信装置が拠点内の何処に設置されているのかを把握しておくことは勿論、ルータから各通信端末に到るまでの各通信装置の接続関係(ルータのどのポートにどのスイッチングハブが接続されているのか、また、どのスイッチングハブのどのポートにどの通信端末が接続されているのか等)を把握しておくことが重要になる。各通信装置が拠点内の何処に設置されているのかについては目視により把握することも可能であるが、各通信装置に接続されている通信ケーブルを辿ってその接続関係を把握することは容易ではない。また、通信装置同士を接続する通信ケーブルが壁などに埋設されている場合には、その通信ケーブルを辿って接続関係を把握することはできない。そこで、LANに含まれる各通信装置の接続関係を把握できるようにする技術が従来より種々提案されており、その一例としては非特許文献1に開示されたSNMP(Simple Network Management Protocol)を利用する技術が挙げられる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】[online]、[平成22年3月19日検索]、インターネット〈URL:http://www.rfc-editor.org/rfc/rfc1493.txt〉
【非特許文献2】[online]、[平成22年3月19日検索]、インターネット〈URL:http://ja.wikipedia.org/wiki/IEEE_802.1Q〉
【特許文献】
【0005】
【特許文献1】特開2003−318937号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、SNMPを利用する場合、SNMPマネージャとして動作するコンピュータが新たに必要になり、その購入や運用管理のために新たなコストの負担を強いられるといった問題がある。また、SNMPでは、各スイッチングハブに記憶されるMAC(Media Access Control)アドレステーブルの全情報を収集する必要があるため、その収集のための通信によって過大な負荷が各スイッチングハブにかかってしまうといった問題や、その収集を完了するまでに長い時間を要する、といった問題がある。
本発明は上記課題に鑑みて為されたものであり、LANなどルータ配下のネットワークに含まれている各通信装置の接続関係を、それら通信装置に過大な負荷をかけることなく、かつ低コストで把握することができるようにする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、(A)前記複数のスイッチングハブの各々は、各々にルータ、または他のスイッチングハブ、または通信端末が接続される複数のポートを有しているとともに、前記通信ネットワークに当該スイッチングハブが接続されたこと、または当該スイッチングハブの電源が投入されたことを契機として前記複数のポートのうち前記ルータまたは前記ルータ側の他のスイッチングハブに接続されている上流側ポートを特定する第1の処理と、通信端末からルータへ宛てて送信されたパケットを内包したフレームを前記上流側ポートとは異なるポートを介して受信し、かつ、当該フレームに内包されているパケットが予め定められた種類のものである場合には、当該フレームを上流側へ転送する際に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する第2の処理と、を実行し、(B)前記ルータは、前記所定領域にタグ情報が書き込まれているフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する第3の処理を実行することを特徴とする通信システム、を提供する。
【0008】
この通信システムにおいて、予め定められた種類のパケットを上記ルータが受信する時点では、そのパケットを内包したフレームの所定領域にはそのフレームの転送に関わったスイッチングハブによって当該フレームを受信した下流側のポートを示すタグ情報が書き込まれている。したがって、これらタグ情報を順次辿ることで上記ルータから上記パケットの送信元の通信端末へ到る通信路上に存在するスイッチングハブと当該ルータおよび通信端末の接続関係を示すデータが生成される。加えて、この通信システムにはSNMPマネージャは不要であり、新たなコスト負担が発生することもない。また、タグ情報を追記する処理対象のパケットも予め定められた種類のものに限定されているため、各スイッチングハブに過大な処理負荷がかかることもない。なお、上記予め定められた種類のパケットとしては、スイッチングハブにポートの接続状態を示す情報を取得させることができる種類のパケットであって、通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に送信される可能性の高いパケットであることが好ましく、その具体例としてはARP(Address Resolution Protocol)パケットが挙げられる。ルータのMACアドレスを取得するためのARPパケットの送信は通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に行われる可能性が高く、その通信端末とルータとの間の通信路についての接続関係を示すデータを電源投入等から時間をおかずに迅速に生成することができるからである。
【0009】
より好ましい態様においては、上記タグ情報としてVLAN(Virtual LAN)タグを用いることが好ましい。独自仕様に基づいて上記タグ情報を用いる態様ではフレームの転送経路にその仕様に準拠していないスイッチングハブがあると、当該タグ情報を付与されたフレームがそのスイッチングハブにおいて破棄される虞があるからである。一般仕様に準拠してVLANタグを用いる態様では、このような不具合が発生する虞はない。また、上記タグ情報としてVLANタグを用いる態様においては、各MACフレームに書き込み可能なVLANタグのデータサイズや個数が上記仕様において定められているため、前記第2の処理においてタグ情報を追記しようとするフレームの所定領域に所定数分のタグ情報が書き込まれている場合には、最も下流側のスイッチングハブによって書き込まれたタグ情報を削除した後に当該スイッチングハブについてのタグ情報を追記しても良く、また、新たなタグ情報の追記を行わずに上流側へ転送するようにしても良い。前者の態様であれば、少なくとも、ルータ付近のスイッチングハブの接続関係を把握することができ、後者の態様であれば、少なくとも、フレームの送信元の通信端末付近のスイッチングハブの接続関係を把握することができるからである。なお、VLANタグについては非特許文献2にその詳細が開示されている。また、VLANタグを利用した先行技術の一例としては特許文献1に開示された技術が挙げられる。しかし、特許文献1に開示された技術は、パケットの宛先の識別にVLANタグを用いるものであって、通信端末からルータへ到る通信路上の各通信装置の接続関係をそのルータへ通知するために上記タグ情報を用いる本願発明とは異なる技術である。
【0010】
また、上記課題を解決するために本発明は、各々他の通信装置に接続される複数のポートと、当該スイッチングハブの電源が投入されたこと、または当該スイッチングハブが通信ネットワークに接続されたことを契機として、前記複数のポートのうちルータまたはルータ側の他のスイッチングハブに接続されている上流側ポートを特定する上流側ポート特定手段と、前記上流側ポートとは異なるポートを介して予め定められた種類のパケットを内包したフレームを受信し、当該フレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送するタグ情報付与手段とを有することを特徴とするスイッチングハブを提供する。
【0011】
また、上記課題を解決するために本発明は、通信端末から当該ルータへ宛てて送信されたパケットを内包したフレームの転送制御を行う複数のスイッチングハブであって、予め定められた種類のパケットを内包したフレームを受信した場合に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する処理を各々実行する複数のスイッチングハブ、を含む通信ネットワークに接続されるルータであって、前記タグ情報が前記所定領域に書き込まれたフレームを受信した場合に、当該タグ情報から、そのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶することを特徴とするルータを提供する。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態のLAN1の構成例を示す図である。
【図2】同LAN1に含まれるスイッチングハブ50の構成例を示すブロック図である。
【図3】同スイッチングハブ50のスイッチングエンジン部520が実行する上流側ポート特定処理の流れを示すフローチャートである。
【図4】同スイッチングエンジン部520が実行するフレーム転送制御処理の流れを示すフローチャートである。
【図5】同スイッチングエンジン部520が実行するタグ情報付与/削除処理の流れを示すフローチャートである。
【図6】同LAN1に含まれるルータ60の構成例を示すブロック図である。
【図7】同ルータ60の記憶部630に記憶される接続関係管理テーブルのテーブルフォーマットを説明するための図である。
【図8】同ルータ60のルーティングエンジン部620が実行するパケット転送制御処理の流れを示すフローチャートである。
【図9】同ルーティングエンジン部620が実行するタイマ処理の流れを示すフローチャートである。
【図10】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図11】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図12】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図13】従来の通信システムにおけるスイッチングハブのカスケード接続の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しつつ本発明の実施形態について説明する。
(A:構成)
図1は、本発明の一実施形態の通信システムであるLAN1の構成例を示す図である。このLAN1は、例えば企業の支店に敷設される拠点内LANであり、ルータ60によってインターネットなどのIP網(図示省略)に接続される。LAN1は、3台のスイッチングハブ(スイッチングハブ50A、50Bおよび50C)と、これら各スイッチングハブに各々接続される3台の通信端末(通信端末40A、40Bおよび40C)を含んでいる。図1に示すように、スイッチングハブ50A、50Bおよび50Cの各々はカスケード接続されている。より詳細に説明すると、ルータ60にはスイッチングハブ50Aが接続されており、このスイッチングハブ50Aには通信端末40Aとスイッチングハブ50Bが接続されている。そして、スイッチングハブ50Bには通信端末40Bとスイッチングハブ50Cが接続されており、スイッチングハブ50Cには通信端末40Cが接続されている。
【0014】
通信端末40A、40Bおよび40Cの各々は例えばパーソナルコンピュータであり、他の通信装置(例えば、LAN1に含まれる他の通信端末やIP網に接続されているWWWサーバなど)との間でIPにしたがったパケット通信を行うことができる。以下、上記3台の通信端末の各々を区別する必要がない場合には、「通信端末40」と表記する。
【0015】
スイッチングハブ50A、50Bおよび50Cの各々はIPよりも下位のプロトコル階層であるデータリンク層においてデータの中継を行う通信装置である。本実施形態では、上記3台のスイッチングハブは同一の構成を有しているため、各々を区別する必要がない場合には「スイッチングハブ50」と表記する。ここで、データリンク層においてデータの中継を行うとは、データリンク層におけるデータの送受信単位であるMACフレーム(以下、単に「フレーム」)の転送制御を行うことである。フレームのヘッダ部には、そのフレームの送信先および送信元のMACアドレスが書き込まれ、同ペイロード部には、当該送信元から送信されたパケットが書き込まれる。なお、MACアドレスとは、データリンク層にて各通信装置を一意に識別するための通信アドレスである。図1のルータ60と上記3台の通信端末は何れも固有のMACアドレスを有している。詳細については後述するがスイッチングハブ50はフレームの送信先MACアドレスに基づいてその転送制御を行う。
【0016】
パケットとは、データリンク層よりも1つ上の階層のネットワーク層におけるデータの送受信単位であり、フレームと同様にヘッダ部とペイロード部とを有している。パケットのヘッダ部には、そのパケットの送信元および送信先のIPアドレスが書き込まれており、ペイロード部にはさらに上位層のデータが書き込まれる。ここで、IPアドレスとはネットワーク層において各通信装置を一意に識別する通信アドレスであり、図1のルータ60と上記3台の通信端末には各々固有のIPアドレスが割り当てられている。また、通信端末40A、40Bおよび40Cの各々には、ルータ60のIPアドレスがデフォルトゲートウェイを示すものとして予め記憶されている。
【0017】
ルータ60は、ネットワーク層においてデータ通信を中継する通信装置である。例えば、IP網から受信したパケットの送信先IPアドレスが通信端末40A、40Bおよび40Cの何れかのものであれば、ルータ60はそのパケットを配下のLAN1へと転送し、その送信先IPアドレスが通信端末40A、40Bおよび40Cの何れのものでもない場合にはルーティングテーブルの格納内容にしたがって他のルータへ転送する処理を行う。
【0018】
さて、図1に示すLAN1においては、通信端末40の電源の投入直後にその通信端末40から送信される可能性が高いパケット(本実施形態では、デフォルトゲートウェイのMACアドレスを取得するためのARPパケット)を処理対象としてスイッチングハブ50およびルータ60に本実施形態の特徴を顕著に示す処理を実行させる。これにより、ルータ60と通信端末40との間の通信路上の各通信装置の接続関係を示すデータがルータ60に記憶されるのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ50およびルータ60を中心に説明する。
【0019】
(A−1:スイッチングハブ50の構成)
まず、図2を参照しつつスイッチングハブ50の構成を説明する。図2は、スイッチングハブ50の構成を示すブロック図である。図2に示すように、スイッチングハブ50は、通信インタフェース(以下、I/F)部510、スイッチングエンジン部520、および記憶部530を有している。
【0020】
通信I/F部510は、他の通信装置との間でフレームの授受を行うインタフェースであり、各々他の通信装置が接続される複数のポートを有している。これら複数のポートの各々には、各ポートを一意に識別するポート識別子(例えば、ポート番号)が予め割り当てられている。通信I/F部510は、各ポートを介して受信したフレームをスイッチングエンジン部520に与える一方、スイッチングエンジン部520から与えられるフレームを同スイッチングエンジン部520によって指示されたポートから送出する処理を実行する。
【0021】
通信I/F部510が有する複数のポートは、ルータ60(或いは、よりルータ60に近い側の他のスイッチングハブ)に接続される上流側ポートと、その他のポート(以下、「下流側ポート」という)とに分類される。例えば、スイッチングハブ50Aにおいては、ルータ60に接続されるポートが上流側ポートとなり、通信端末40Aやスイッチングハブ50Bに接続されるポートが下流側ポートとなる。同様に、スイッチングハブ50Bにおいては、スイッチングハブ50Aが接続されるポートが上流側ポートとなり、通信端末40Bやスイッチングハブ50Cに接続されるポートが下流側ポートとなる。そして、スイッチングハブ50Cにおいては、スイッチングハブ50Bに接続されるポートが上流側ポートとなり、通信端末40Cに接続されるポートが下流側ポートとなる。
【0022】
記憶部530は、例えばRAM(Random Access Memory)などの揮発性メモリとEPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリとを含んでいる(図2では、何れも図示略)。この不揮発性メモリには、上流側ポート特定処理(図3参照)およびフレーム転送制御処理(図4および図5参照)をスイッチングエンジン部520に実行させるためのファームウェア(プログラム)が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部520によって利用されるとともに、通信I/F部510によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たす。また、この揮発性メモリには、上流側ポート特定処理にて特定されたポートのポート識別子が「上流側ポート識別子」として書き込まれる。
【0023】
また、この揮発性メモリには、所謂MACアドレステーブルも格納される(図2では、図示略)。このMACアドレステーブルには、フレームを受信したポートのポート識別子とそのフレームの送信元MACアドレスとを含むレコードが書き込まれる。周知のように、MACアドレステーブルへのレコードの書き込みは、例えばARPパケットを内包したフレームの転送制御やARPパケットに対する応答パケットを内包したフレームの転送制御の際に行われることが多く、当該レコードの削除はその書き込みが行われてから一定時間経過後に行われることが多い。本実施形態においても、MACアドレステーブルへのレコードの書き込み/削除は上記周知の態様でスイッチングエンジン部520によって行われる。このMACアドレステーブルは、送信先MACアドレスに基づくフレームの転送制御を行う際に参照される。
【0024】
スイッチングエンジン部520は、例えばCPU(Central Processing Unit)である。スイッチングエンジン部520は、記憶部530に記憶されているファームウェアを実行し、スイッチングハブ50の制御中枢として機能する。前述したように、スイッチングエンジン部520は上記ファームウェアにしたがって上流側ポート特定処理およびフレーム転送制御処理を実行する。これら各処理の詳細については動作例において明らかにするが、概略は以下の通りである。
【0025】
上流側ポート特定処理は、通信I/F部510の複数のポートのうちの何れが上流側ポートであるかを特定する処理である。この上流側ポート特定処理では、スイッチングエンジン部520は、ルータ検索パケットを内包したフレーム(すなわち、ペイロード部にルータ検索パケットが書き込まれたフレーム:以下、ルータ検索フレーム)を通信I/F部510の全てのポートから送出(すなわち、ブロードキャスト)し、そのルータ検索フレームに対する応答を受信したポートのポート識別子を上流側ポート識別子として記憶部530に書き込む。この上流側ポート特定処理は、LAN1にスイッチングハブ50が接続されたこと、或いはスイッチングハブ50の電源が投入されたことを契機として実行される。
【0026】
フレーム転送制御処理は、通信I/F部510の何れかのポートにより受信したフレームをその送信先MACアドレスに応じたポートから送出する処理であり、いわばスイッチングハブ本来の機能を実現する処理である。なお、受信したフレームが所謂ブロードキャストフレームである場合、または当該フレームの送信先MACアドレスに対応するレコードがMACアドレステーブルに登録されていない場合には、スイッチングエンジン部520は、当該フレームを受信したポート以外の全てのポートから当該フレームを送出する処理(フラッディング)を実行する。加えて、本実施形態のフレーム転送制御処理では、一定の条件を満たすフレームを受信した場合に、スイッチングエンジン部520にそのフレームの転送に先立ってタグ情報付与/削除処理(図4参照)を実行させる点に特徴がある。
ここで、一定の条件とは、以下の(a)および(b)である。
(a)下流側ポート(すなわち、記憶部530に記憶されている上流側ポート識別子の示すポート以外のポート)によりフレームを受信したこと
(b)受信したフレームに内包されているパケットが処理対象パケット(本実施形態では、ARPパケット)であること
【0027】
このタグ情報付与/削除処理は、上記条件(a)および(b)の両方を満たすフレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域(本実施形態では、4バイトの領域)に追記して転送する一方、当該フレームを下流側に転送する場合には、タグ情報を追記せずに(他のスイッチングハブ50によってタグ情報が付与されていた場合には、タグ情報を全て削除して)転送する処理である。ここで、上流側へ転送するフレームとは、その送信先MACアドレスに対応付けてMACアドレステーブルに登録されているポート識別子が上流側ポート識別子と一致するフレーム、またはフラッディングの際に上流側へ送出するフレームのことである。つまり、下流側から受信した処理対象フレームについてフラッディングを行う場合には、スイッチングエンジン部520は、その送出先のポート毎にタグ情報付与/削除処理を実行するのである。なお、以下では、処理対象パケットを内包したフレーム(すなわち、ペイロード部に処理対象パケットが書き込まれているフレーム)のことを「処理対象フレーム」と呼ぶ。
【0028】
本実施形態では、上記タグ情報として、条件(a)および(b)の両方を満たすフレームを受信したポートのポート識別子を「VLAN ID」とするVLANタグが用いられている。通常、ポート識別子としては2バイトの数値が用いられるため、本実施形態では、最大で2個のタグ情報を上記所定領域に書き込むことができる。VLANタグは、本来、スイッチングハブにおいてブロードキャストの範囲を自在に制御するために用いられるのであるが、本実施形態では、VLANタグを用いて上記ポート識別子を上流側に通知するようにした点に特徴がある。なお、VLANおよびVLANタグの詳細については非特許文献2を参照されたい。
以上がスイッチングハブ50の構成である。
【0029】
(A−2:ルータ60の構成)
次いで、図6を参照しつつルータ60の構成を説明する。図6は、ルータ60の構成を示すブロック図である。図6に示すように、ルータ60は、通信I/F部610、ルーティングエンジン部620および記憶部630を有している。通信I/F部610は、スイッチングハブ50の通信I/F部510と同様に複数のポートを有しており、各ポートには固有のポート識別子が割り当てられている。通信I/F部610の複数のポートはIP網(図1では図示略)に接続されている上流側ポートとその他の下流側ポートとに分類される。例えば、図1のルータ60においては、下流側のポートの1つがスイッチングハブ50Aに接続されているのである。通信I/F部610は、通信I/F部510と同様、各ポートを介して受信したフレームをルーティングエンジン部620に与える一方、ルーティングエンジン部620から与えられるフレームを同ルーティングエンジン部620によって指示されたポートから送出する。
【0030】
記憶部630も、スイッチングハブ50の記憶部530と同様に、RAMなどの揮発性メモリとEPROMなどの不揮発性メモリを含んでいる(図示略)。この不揮発性メモリには、ルータ検索パケット応答処理、パケット転送制御処理(図8参照)およびタイマ処理(図9参照)をルーティングエンジン部620に実行させるためのファームウェアが予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部620によって利用されるとともに、受信したフレーム(或いは、パケット)を一時的に蓄積しておくためのバッファの役割を果たす。また、この揮発性メモリには、ルーティングテーブル(図6では図示略)と接続関係管理テーブルとが格納される。これら2つのテーブルのうち、ルーティングテーブルについては一般的なルータが有するものと何ら変るところはないため詳細な説明を省略し、接続関係管理テーブルについて説明する。
【0031】
図7は、接続関係管理テーブルのテーブルフォーマットの一例を示す図である。図7に示すように、接続関係管理テーブルには、LAN番号と、1段下のポートを示す情報(或いは、1段下のポートを示す情報と2段下のポートを示す情報)と、ホストアドレスと、タイマ値とを含むレコードが格納される。この接続関係管理テーブルに格納される各レコードは、そのレコードに含まれているホストアドレスを有する通信端末40がスイッチングハブ50の何れのポートに接続されているのか、さらに、そのスイッチングハブ50はルータ60の何れのポートに接続されているのか(すなわち、通信端末40からルータ60に到る通信路上の各通信装置の接続関係)を表す。
【0032】
具体的には、ホストアドレスには、ルータ60が受信した処理対象フレームの送信元MACアドレスが書き込まれ、上記LAN番号にはその処理対象フレームを受信した通信I/F部610の下流側ポートのポート識別子が書き込まれる。そして、これらLAN番号やホストアドレスとともに上記レコードを構成する「1段下のポート情報」には、当該LAN番号の示すポートに接続されているスイッチングハブ(すなわち、「ルータから見て1段下流側のスイッチングハブ」)において上記処理対象フレームを受信したポートのポート識別子が書き込まれ、「2段下のポート情報」には、ルータから見て2段下流側のスイッチングハブにおいて上記処理対象フレームを受信したポートのポート識別子が書き込まれる。詳細については後述するが、これら「1段下のポート情報」および「2段下のポート情報」は処理対象フレームに付与されているタグ情報から生成される。そして、タイマ値は、接続関係管理テーブルにレコードの登録が行われてからその削除が行われるまでの残り時間を示すデータである。このタイマ値の初期値は前述したMACアドレステーブルに登録したレコードを削除するまでの時間長に応じて定められる。
【0033】
ルーティングエンジン部620は、スイッチングハブ50のスイッチングエンジン部520と同様、CPU(Central Processing Unit)である。ルーティングエンジン部620は、記憶部630に記憶されているファームウェアを実行し、ルータ60の制御中枢として機能する。前述したように、ルーティングエンジン部620は上記ファームウェアにしたがって、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理を実行する。これら各処理の詳細については動作例において明らかにするが、概略は以下の通りである。
【0034】
ルータ検索パケット応答処理は、通信I/F部610によってルータ検索フレームを受信した場合に、応答パケットを書き込んだフレーム(以下、ルータ検索応答フレーム)を返信する処理である。パケット転送制御処理では、ルーティングエンジン部620は、通信I/F部610によって受信したフレームに内包されているパケットの内容に応じた処理を実行する。例えば、当該パケットがIP網から通信端末40へ宛てて送信されてきたものである場合には、ルーティングエンジン部620はそのパケットを下流側へ転送する処理を実行し、当該パケットがルータ60に宛てて送信されたARPパケットである場合には、応答パケットをその送信元へ返信する、といった具合である。また、ルーティングエンジン部620は、通信I/F部610によって受信したフレームが処理対象フレーム(すなわち、処理対象パケットを内包したフレーム)である場合には、図8に示すように、そのパケットの内容に応じた処理の実行に先立って、そのフレームの所定領域に書き込まれているタグ情報に基づいて新たなレコードを接続関係管理テーブルに登録する処理を実行する。そして、タイマ処理は、パケット転送制御処理の実行過程で接続関係管理テーブルに登録したレコードを一定時間経過後に削除する処理である。
以上がルータ60の構成である。
【0035】
(B:動作)
以下、図10(A)に示すように、通信端末40、スイッチングハブ50およびルータ60が接続されている場合を例にとって、上流側ポート特定処理におけるスイッチングハブ50およびルータ60の動作を説明する。図10(A)では、スイッチングハブ50およびルータ60の各々が有するポートのポート識別子が丸付き数字で示されており、各通信端末40に割り当てられているMACアドレスが括弧つき数字で表されている。図10(A)を参照すれば明らかなように、ルータ60のポート識別子“1”のポートにはスイッチングハブ50Aが接続されており、このスイッチングハブ50Aのポート識別子“2”、“5”、“6”の各ポートには、夫々、スイッチングハブ50B、通信端末40A、ルータ60が接続されている。スイッチングハブ50Bのポート識別子“1”、“3”、“4”の各ポートには、夫々、通信端末40B、スイッチングハブ50C、スイッチングハブ50Aが接続されている。そして、スイッチングハブ50Cのポート識別子“1”、
“8”の各ポートには、夫々、スイッチングハブ50B、通信端末40Cが接続されている。また、通信端末40A、40Bおよび40Cの各々のMACアドレスは、それぞれ、“101”、“150”および“200”である。なお、以下では、スイッチングハブ50A,50Bおよび50Cの各々スイッチングエンジン部520を区別する必要がある場合には、夫々、「スイッチングエンジン部520A」、「スイッチングエンジン部520B」および「スイッチングエンジン部520C」と表記する。通信I/F部510および記憶部530についても同様である。
【0036】
(B−1:上流側ポート特定処理における動作)
スイッチングハブ50A、50Bおよび50Cの各々のスイッチングエンジン部520は、その電源が投入されたことを契機としてファームウェアの実行を開始し、まず、上流側ポート特定処理を実行する。図3は、上流側ポート特定処理の流れを示すフローチャートである。図3に示すように、スイッチングエンジン部520は、ルータ検索フレームを全てのポートから送出し(ステップSA100)、そのルータ検索フレームに対する応答が返信されてくることを待ち受ける(ステップSA110)。ここで、全てのポートからルータ検索フレームを送出するのは、当該上流側ポート特定処理の実行時点では通信I/F部510の何れのポートにルータ60(或いは、よりルータ60に近い側の他のスイッチングハブ50)が接続されているのか判らないからである。詳細については後述するが、本実施形態では、各スイッチングハブ50は、全てのポートからルータ検索フレームを送出し、このルータ検索フレームに対する応答の有無により上流側ポートを特定する。しかし、スイッチングハブ検出用のパケットを内包したフレーム(以下、スイッチングハブ検出フレーム)をルータ60に間欠的に送出させ、各スイッチングハブ50には当該スイッチングハブ検出フレームの受信により上流側ポートを特定させるようにすることもできる。より詳細に説明すると、各スイッチングハブ50には、上流側ポート特定処理として、スイッチングハブ検出フレームの受信を待ち受け、当該スイッチングハブ検出フレームを受信したポートを上流側ポートとして記憶するとともに当該フレームを下流側の各ポートから送出する処理を実行させるのである。また、このような態様においては、各スイッチングハブ50にスイッチングハブ検出フレームに対する応答を返信させるようにすれば、当該応答の受信によりルータ60に配下のスイッチングハブを認識させることができる。
【0037】
ルータ60のルーティングエンジン部620は、通信I/F部610によって上記ルータ検索フレームを受信すると、ルータ検索パケット応答処理をファームウェアにしたがって実行し、ルータ検索応答フレームを返信する。一方、スイッチングハブ50のスイッチングエンジン部520は、ルータ検索フレームに対する応答を待ち受けており、当該フレームを送信してから所定時間内に応答が返信されてこない場合(ステップSA110:No)には、スイッチングエンジン部520は、再度、ステップSA100の処理を実行する。逆に、上記所定時間内に応答が返信されて来た場合には、スイッチングエンジン部520は、その応答を受信したポートのポート識別子を上流側ポート識別子として記憶部530に書き込む処理(ステップSA120)を実行する。
【0038】
図10(A)に示すように、ルータ60は、スイッチングハブ50Aのポート識別子“6”のポートに接続されている。このため、スイッチングエンジン部520Aは、ポート識別子“6”のポートを介してルータ60から返信されてくるルータ検索応答フレームを受信する。したがって、記憶部530Aには上流側ポート識別子として“6”が書き込まれる。
【0039】
スイッチングエンジン部520Bが送信したルータ検索フレームは、スイッチングハブ50Aを経由してルータ60に到達し、ルータ60から返信されるルータ検索応答フレームもスイッチングハブ50Aを経由してスイッチングハブ50Bに到達する。図10(A)に示すように、スイッチングハブ50Aはスイッチングハブ50Bのポート識別子“4”のポートに接続されており、このポートを介してスイッチングエンジン部520Bは上記ルータ検索応答フレームを受信する。したがって、記憶部530Bには上流側ポート識別子として“4”が書き込まれる。
【0040】
そして、スイッチングエンジン部520Cが送信したルータ検索フレームは、スイッチングハブ50Bおよびスイッチングハブ50Aを経由してルータ60に到達し、ルータ60から返信されるルータ検索応答フレームもスイッチングハブ50Aおよびスイッチングハブ50Bを経由してスイッチングハブ50Cに到達する。図10(A)に示すように、スイッチングハブ50Bは、スイッチングハブ50Cのポート識別子“1”のポートに接続されており、このポートを介してスイッチングエンジン部520Cは上記ルータ検索応答フレームを受信する。このため、記憶部530Cには上流側ポート識別子として“1”が書き込まれる。
以上が上流側ポート特定処理におけるスイッチングハブ50およびルータ60の動作である。
【0041】
上記のようにして上流側ポートの特定が行われた状況下で、ルータ60のMACアドレスを取得するためのARPパケットが通信端末40A、40Bおよび40Cの各々から送信された場合に、スイッチングハブ50およびルータ60が実行する動作について説明する。なお、以下に説明する動作例では、各通信端末が送信するARPパケットの各々を区別するため、通信端末40Aが送信するものを「ARP1」と、通信端末40Bが送信するものを「ARP2」と、通信端末40Cが送信するものを「ARP3」と表記する。
【0042】
(B−2:ARP1の転送動作)
まず、通信端末40Aから送信されるARP1の転送動作について説明する。図10(A)に示すように、通信端末40Aはスイッチングハブ50Aに接続されている。スイッチングエンジン部520Aは、通信I/F部510Aにより上記ARP1を内包したフレームを受信すると、図4に示すフレーム転送制御処理を実行する。図4に示すように、スイッチングエンジン部520Aは、まず、下流側ポートによりフレームを受信したのか否かを判定する(ステップSB100)。このステップSB100の判定結果が“Yes”であれば、スイッチングエンジン部520Aは、ステップSB110以降の処理を実行する。逆に、ステップSB100の判定結果が“No”であれば、スイッチングエンジン部520Aは、ステップSB130以降の処理を実行する。
【0043】
図10(A)に示すように、通信端末40Aは、スイッチングハブ50Aのポート識別子“5”のポートに接続されている。スイッチングハブ50Aの上流側ポートはポート識別子“6”のポートであるから、スイッチングエンジン部520Aは、通信端末40Aから送信されたフレームを下流側ポートを介して受信する。このため、ステップSB100の判定結果は“Yes”になり、スイッチングエンジン部520AはステップSB110以降の処理を実行する。
【0044】
ステップSB110では、下流側ポートを介して受信したフレームが処理対象フレームであるか否かの判定が行われる。このステップSB110の判定結果が“Yes”であれば、スイッチングエンジン部520Aは、ステップSB120以降の処理を実行する。逆に、ステップSB110の判定結果が“No”であれば、スイッチングエンジン部520Aは、ステップSB130以降の処理を実行する。前述したように本実施形態の処理対象パケットはARPパケットであり、通信端末40Aから送信されたパケットもARPである。したがって、ステップSB110の判定結果は“Yes”になり、スイッチングエンジン部520Aは、ステップSB120以降の処理を実行する。
【0045】
ステップSB120の処理は、下流側ポートにより受信した処理対象フレームに対して、タグ情報の追記または削除を行うタグ情報付与/削除処理である。図5は、タグ情報付与/削除処理の流れを示すフローチャートである。図5に示すように、このタグ情報付与/削除処理では、スイッチングエンジン部520Aは、まず、下流側ポートを介して受信した処理対象フレームの送信先が上流側であるか否かを判定する(ステップSB200)。このステップSB200の判定基準については前述した通りである。ステップSB200の判定結果が“No”であれば、スイッチングエンジン部520Aは、ステップSB210およびステップSB220の処理を実行する。逆に、ステップSB200の判定結果が“Yes”である場合には、スイッチングエンジン部520Aは、ステップSB230以降の処理を実行する。
【0046】
本実施形態の処理対象フレームは、ARPパケット(より正確には、ルータ60宛てのARPパケット)を内包したフレームである。このARPパケットのヘッダ部には送信先IPアドレスとしてルータ60のIPアドレスが書き込まれているが、当該ARPパケットを内包したフレームのヘッダ部には送信先MACアドレスは書き込まれていない。そもそも、ルータ60のMACアドレスの取得を目的として上記ARPパケットの送信が行われたからである。つまり、ARPパケットを内包したフレームはブロードキャストフレームであり、スイッチングエンジン部520Aは前述したフラッディングを行う。スイッチングエンジン部520Aは、ポート識別子“5”のポートを介して通信端末40Aから受信した処理対象フレームを、そのポート以外の全てのポートから送出する処理(図4:ステップSB130)を行うのであるが、その実行に先立ってそれらフレームの各々についてタグ情報付与/削除処理を行う。このため、上記フラッディングにより上流側ポートへ送出するフレームについてのみステップSB200の判定結果は“Yes”になり、他のものについてはステップSB200の判定結果は“No”になる。
【0047】
フラッディングにより下流側へ送出する処理対象フレームについては、ステップSB200の判定結果は“No”になるため、スイッチングエンジン部520Aは、ステップSB210の処理を実行する。このステップSB210の処理は、受信した処理対象フレームの所定領域にタグ情報が書き込まれているか否かを判定する処理である。そして、スイッチングエンジン部520Aは、ステップSB210の判定結果が“Yes”である場合にのみ、ステップSB220の処理を実行する。このステップSB220の処理は、受信した処理対象フレームに付与されているタグ情報(すなわち、処理対象フレームの所定領域に書き込まれているタグ情報)を全て削除する処理である。図10(A)に示すように、本動作例においてスイッチングハブ50Aが通信端末40Aから受信するフレームにはタグ情報は付与されていない。このため、ステップSB210の判定結果は“No”になり、スイッチングエンジン部520Aは、ステップSB220の処理を行うことなく、本タグ情報付与/削除処理を終了する。なお、下流側に転送するフレームにタグ情報を付与しない(或いは、付与されているタグ情報を削除する)のは、当該タグ情報はルータ60における接続関係管理テーブルの更新にのみ利用され、下流側では利用されることはないからである。
【0048】
これに対して、フラッディングにより上流側へ送出する処理対象フレームについては、ステップSB200の判定結果は“Yes”になるため、スイッチングエンジン部520AはステップSB230以降の処理を実行する。ステップSB230は、受信した処理対象フレームの所定領域を参照し、所定数分(本実施形態では、2個)のタグ情報が付与されているか否かを判定する処理である。このステップSB230の判定結果が“Yes”であれば、スイッチングエンジン部520Aは、ステップSB240の処理を行った後に、ステップSB250の処理を行う。逆に、ステップSB230の判定結果が“No”であれば、スイッチングエンジン部520は、ステップSB240の処理を実行することなく、ステップSB250の処理を実行する。
【0049】
前述したように、本動作例にて通信端末40Aからスイッチングハブ50Aに送信されてくる処理対象フレームにはタグ情報は付与されていない。したがって、ステップSB230の判定結果は“No”になり、スイッチングエンジン部520AはステップSB250の処理のみを実行する。
【0050】
ステップSB250は、受信した処理対象フレームの所定領域の最外に、当該フレームを受信したポートを示すタグ情報を追記する処理である。ここで、所定領域の最外にタグ情報を追記するとは、具体的には、以下のような処理を行うことを言う。受信した処理対象フレームにタグ情報が付与されていないのであれば、スイッチングエンジン部520Aは当該所定領域の先頭から上記タグ情報を書き込む。一方、受信したフレームの所定領域に上記所定数未満の個数のタグ情報が書き込まれていた場合には、スイッチングエンジン部520Aは、それらタグ情報を上記所定領域の末尾側にタグ情報1個分のデータサイズ分ずつ移動させ、その後、当該所定領域の先頭から新たなタグ情報を書き込む。つまり、上記所定領域には、その先頭に近いほど(外側に近いほど)上流側のスイッチングハブのタグ情報が書き込まれるのである。
【0051】
前述したように、スイッチングハブ50Aが通信端末40Aから受信する処理対象フレームにはタグ情報は付与されていない。したがって、ステップSB250においてスイッチングエンジン部520Aは、当該処理対象フレームを受信したポートのポート識別子(すなわち、“5”)をタグ情報として当該処理対象フレームの所定領域の最外に書き込む処理を実行する。そして、スイッチングエンジン部520Aは、タグ情報付与/削除処理を完了すると、このタグ情報付与/削除処理によりタグ情報が付与された処理対象フレームをその送信先に応じたポートから出力する(図4:ステップSB130)。
【0052】
以上のように通信端末40Aから送信されたARP1は、スイッチングハブ50Aによって上流側のルータ60と下流側のスイッチングハブ50Bへ転送される。このARP1を内包したフレームはスイッチングハブ50Bにとっても処理対象フレームである。しかし、スイッチングエンジン部520Bは当該処理対象フレームを上流側から受信するため、このスイッチングエンジン部520Bが実行するフレーム転送制御処理(図4参照)においては、ステップSB100の判定結果は“No”になり、ステップSB130の処理(より詳細にはフラッディング)のみが実行される。つまり、スイッチングハブ50Bはスイッチングハブ50Aから転送されたフレームをさらに通信端末40Bおよびスイッチングハブ50Cに転送する。このフレームに内包されているARP1はルータ60に宛てて送信されたものであるから、通信端末40Bは、このフレームを受信しても、応答を返信することなく当該フレームを破棄する。一方、スイッチングハブ50Cは、スイッチングハブ50Bと同様に図4のステップSB130の処理(フラッディング)のみを実行し、当該フレームを通信端末40Cへと転送する。通信端末40Cは、当該フレームを受信すると、通信端末40Bと同様に応答を返信することなくそのフレームを破棄する。なお、図10(A)においては、スイッチングハブ50Aから下流側へのARP1の転送については図示を省略した。
【0053】
一方、ルータ60のルーティングエンジン部620は、通信I/F部610を介してフレームを受信すると、記憶部630に記憶されているファームウェアにしたがってパケット転送制御処理を実行する。図8は、パケット転送制御処理の流れを示すフローチャートである。図8に示すように、ルーティングエンジン部620は、まず、通信I/F部610を介して受信したフレームに内包されているパケットが処理対象パケットであるか否かを判定する(ステップRA100)。このステップRA100の判定結果が“Yes”であれば、ルーティングエンジン部620はステップRA110以降の処理を実行する。逆に、ステップRA100の判定結果が“No”であれば、ルーティングエンジン部620は、ステップRA130の処理を実行する。本動作例においてスイッチングハブ50Aから転送されてくるフレームにはARP1が内包されているから、ステップRA100の判定結果は“Yes”になり、ステップRA110以降の処理が実行される。
【0054】
ステップRA110は、通信I/F部610により受信したフレームの所定領域に書き込まれているタグ情報と、そのフレームの送信元MACアドレスと、そのフレームを受信した通信I/F部610のポートのポート識別子と、タイマ値の初期値(MACレコードの寿命に応じた値、例えば、300)とを対応付けて新たなレコードを生成し、接続関係管理テーブルに書き込む処理である。より詳細に説明すると、ルーティングエンジン部620は、上記ポート識別子を「LAN番号」として、上記送信元MACアドレスを「ホストアドレス」として新たなレコードを生成する。そして、上記受信したフレームの所定領域に書き込まれているタグ情報については、ルーティングエンジン部620は以下の要領で当該レコードに書き込む。すなわち、上記所定領域に書き込まれているタグ情報が1つだけの場合には、ルーティングエンジン部620は、そのタグ情報を当該レコードの「1段下のポート情報」に書き込み、上記所定領域にタグ情報が2つ書き込まれていた場合には、最外のタグ情報を「1段下のポート情報」に、他方を「2段下のポート情報」に各々書き込む。
【0055】
次いで、ルーティングエンジン部620は、上記受信したフレームからタグ情報を削除し(ステップRA120)、そのフレームに内包されているパケットに応じた処理を実行する(ステップRA130)。例えば、上記パケットが、IP網に接続されている通信装置へ宛てて送信されたものである場合には、そのパケットの送信先IPアドレスとルーティングテーブルの格納内容とに基づいて転送先のルータを特定しそのルータへ当該パケットを転送する。また、上記パケットがルータ60に対して何らかの処理の実行を要求するものであれば、その要求に応じた処理を実行する、といった具合である。本動作例においては、通信端末40Aから送信されたARP1を受信するのであるから、ルーティングエンジン部620は応答パケットを返信する処理を実行する。
以上がARP1の転送動作である。
【0056】
以上説明したように、通信端末40Aから送信されたARP1がスイッチングハブ50Aを経てルータ60に到達し、そのARP1に対する応答パケットの返信が行われる過程において、ルータ60の接続関係管理テーブルには、これら各装置の接続関係(すなわち、ルータ60のポート識別子“1”のポートに接続されているスイッチングハブのポート識別子“5”のポートにMACアドレス“101”の通信端末が接続されていること)を表すレコードRec1(図10(B)参照)が登録される。なお、上記のようにして接続関係管理テーブルに登録されたレコードRec1は、タイマ処理によって一定時間経過後に削除される。図9はタイマ処理の流れを示すフローチャートである。図9に示すように、ルーティングエンジン部620は、各レコードのタイマ値をデクリメントし(ステップRB100)、そのタイマ値が0になったレコードがある場合(ステップRB110:Yes)には、該当するレコードを削除する処理(ステップRB120)を、全てのレコードが削除されるまで(すなわち、ステップRB130の判定結果がYesになるまで)繰り返し実行する。これは、通信端末40がLAN1から切り離された場合に、不要となるレコードが接続関係管理テーブルに残り続けることを防止するためである。なお、スイッチングハブ50の記憶部530に記憶されているMACアドレステーブルの更新(すなわち、MACレコードの削除)タイマに合わせたタイマ値で接続関係管理テーブルの格納内容を更新するようにしても良い。
【0057】
(B−3:ARP2の転送動作)
次いで、通信端末40Bから送信されるARP2の転送動作について図11を参照しつつ説明する。なお、図11(A)においても、各通信装置の接続先のポートおよび通信端末40に割り当てられているMACアドレスは、図10(A)におけるものと同一である。図11(A)に示すように、通信端末40Bはスイッチングハブ50Bに接続されている。このため、通信端末40Bから送信されたARP2(より正確には、ARP2を内包したフレーム)は、まず、スイッチングハブ50Bによって受信される。
【0058】
前述したように、通信端末40Bはスイッチングハブ50Bのポート識別子“1”のポートに接続されており、このスイッチングハブ50Bの上流側ポートはポート識別子“4”のポートである。したがって、スイッチングエンジン部520Bは、ARP2を内包したフレーム(すなわち、処理対象フレーム)を下流側ポートを介して受信し、前述した動作例(B−2)にてスイッチングエンジン部520Aが実行した動作と同一の動作を実行する。すなわち、スイッチングエンジン部520Bは、前述したフラッディングを行い、上記処理対象フレームを受信したポートを示すタグ情報を付与したフレームを上流側のスイッチングハブ50Aに転送するとともに(図11(A)参照)、下流側へ転送するフレームには当該タグ情報を付与せずにその転送を行う。なお、図11(A)では、フラッディングによりスイッチングエンジン部520Bが下流側へ転送するフレームの図示を省略した。
【0059】
スイッチングハブ50Bはスイッチングハブ50Aのポート識別子“2”のポートに接続されている。前述したようにスイッチングハブ50Aの上流側ポートはポート識別子
“6”のポートであるから、本動作例においても、スイッチングエンジン部520Aは、下流側ポートを介して処理対象フレーム(ARP2を内包したフレーム)を受信する。スイッチングエンジン部520Aは動作例(B−2)にてARP1を内包したフレームを受信した場合と同様にフラッディングを行い、各ポートへ送出するフレームの各々に対してタグ情報付与/削除処理を実行する。ただし、本動作例においてスイッチングエンジン部520Aが受信する処理対象フレームの所定領域には、既にタグ情報が1つ書き込まれている点が動作例(B−2)の場合と異なる。
【0060】
このように、本動作例においてスイッチングエンジン部520Aが受信する処理対象フレームの所定領域には既にタグ情報が1つ書き込まれているため、フラッディングにより下流側へ送出する処理対象フレームについてのステップSB210の判定結果は“Yes”になり、タグ情報の削除(ステップSB220)が実行される。前述したように、下流側にタグ情報を通知する必要はないからである。一方、フラッディングにより上流側へ送出する処理対象フレームについてのステップSB230の判定結果は動作例(B−2)における場合と同様に“No”になり、ステップSB250の処理のみが実行される。ただし、この処理対象フレームには既にタグ情報が1つ付与されているため、スイッチングエンジン部520Aは、ステップSB250において当該タグ情報の移動を行った後に、当該処理対象フレームを受信したポートを示す新たなタグ情報を追記する。その結果、本動作例では、図11(A)に示すように、2つのタグ情報を有する処理対象フレームがスイッチングハブ50Aからルータ60に転送される。
【0061】
ルータ60のルーティングエンジン部620は、スイッチングハブ50Aによって転送された処理対象フレームを受信すると、動作例(B−2)における場合と同様に接続関係管理テーブルの更新を行う。ただし、本動作例においてスイッチングハブ50Aから転送されてくる処理対象フレームの所定領域には2つのタグ情報が書き込まれているため、ルーティングエンジン部620は、図11(B)に示すようなレコードRec2を接続関係管理テーブルに登録する。このレコードRec2によって、ルータ60と、その1段下のスイッチングハブであるスイッチングハブ50Aと、さらに1段下(すなわち、ルータ60から見て2段下)のスイッチングハブであるスイッチングハブ50Bと、通信端末40Bの接続関係が表されるのである。
以上がARP2の転送動作である。
【0062】
(B−4:ARP3の転送動作)
次いで、通信端末40Cから送信されるARP3の転送動作について図12を参照しつつ説明する。なお、図12(A)においても、各通信装置の接続先のポートおよび通信端末40に割り当てられているMACアドレスは、図10(A)におけるものと同一である。図12(A)に示すように、通信端末40Cはスイッチングハブ50Cに接続されており、スイッチングハブ50Cはスイッチングハブ50Bに接続されている。このため、通信端末40Cから送信されたARP3(より正確には、ARP3を内包したフレーム)は、まず、スイッチングハブ50Cによって受信される。
【0063】
前述したように、通信端末40Cはスイッチングハブ50Cのポート識別子“8”のポートに接続されており、このスイッチングハブ50Cの上流側ポートはポート識別子“1”のポートである。つまり、スイッチングエンジン部520Cは、下流側ポートを介して処理対象フレーム(すなわち、ARP3を内包したフレーム)を受信する。このため、スイッチングエンジン部520Cは、前述した動作例(B−2)にてスイッチングエンジン部520Aが実行した動作と同一の動作を実行する。その結果、スイッチングエンジン部520Cは、前述したフラッディングを行い、上記処理対象フレームを受信したポートを示すタグ情報を付与したフレームを上流側のスイッチングハブ50Bに転送するとともに(図12(A)参照)、下流側へ転送するフレームには当該タグ情報を付与せずにその転送を行う。なお、図12(A)では、フラッディングによりスイッチングエンジン部520Cが下流側へ転送するフレームの図示を省略した。
【0064】
スイッチングハブ50Cはスイッチングハブ50Bのポート識別子“3”のポートに接続されている。スイッチングハブ50Bの上流側ポートはポート識別子“4”のポートであるから、スイッチングエンジン部520Bは下流側ポートを介して処理対象フレーム(ARP3を内包したフレーム)を受信する。この処理対象フレームにはスイッチングハブ50Cによってタグ情報が付与されているのであるから、スイッチングエンジン部520Bは動作例(B−3)におけるスイッチングエンジン部520Aと同一の動作を行う。その結果、本動作例では、図12(A)に示すように、2つのタグ情報(スイッチングハブ50Cによって付与されたタグ情報とスイッチングハブ50Bによって付与されたタグ情報)を有する処理対象フレームがスイッチングハブ50Bからスイッチングハブ50Aに転送される。
【0065】
本動作例においても、スイッチングエンジン部520Aは、下流側ポートを介して処理対象フレーム(ARP3を内包したフレーム)を受信する。スイッチングエンジン部520Aは動作例(B−2)にてARP1を内包したフレームを受信した場合と同様にフラッディングを行い、各ポートへ送出するフレームの各々に対してタグ情報付与/削除処理を実行する。ただし、本動作例においてスイッチングエンジン部520Aが受信する処理対象フレームには、既に2つのタグ情報が付与されている点が動作例(B−2)の場合と異なる。
【0066】
フラッディングにより下流側へ送出する処理対象フレームについては、所定領域に書き込まれているタグ情報の数が1つであるか2つであるかに関わらず、ステップSB210の判定結果は“Yes”になり、全てのタグ情報を削除する処理(ステップSB220)が実行される。一方、フラッディングにより上流側へ送出する処理対象フレームについては、既に所定数分のタグ情報が所定領域に書き込まれているため、ステップSB230の判定結果は“Yes”になり、スイッチングエンジン部520Aは、ステップSB240の処理を実行した後にステップSB250の処理を実行する。このステップSB240の処理は、受信した処理対象フレームの所定領域に書き込まれているタグ情報のうち、最も下流側のスイッチングハブ50によって付与されたもの(すなわち、所定領域の最内(末尾側)に書き込まれているもの)を削除する処理である。このステップSB240の処理が実行される結果、スイッチングハブ50Cによって付与されたタグ情報は削除される。その後、上記ステップSB250においてタグ情報の移動および新たなタグ情報の追記が行われる。結果、図12(A)に示すように、スイッチングハブ50Aによって付与されたタグ情報とスイッチングハブ50Bによって付与されたタグ情報とを有する処理対象フレームがスイッチングハブ50Aからルータ60に転送される。なお、本実施形態では、フラッディングにより上流側へ送出する処理対象フレームの所定領域に所定数分のタグ情報が既に書き込まれていた場合には、それらタグ情報のうち最内のものを削除した後に新たなタグ情報を最外に追記する処理をスイッチングハブ50に実行させた。このような態様によれば、ルータ60付近のスイッチングハブ(より正確には、ルータ60から見て2段下までのスイッチングハブ)の接続関係を正確に把握することができる。しかし、フラッディングにより上流側へ送出する処理対象フレームの所定領域に所定数分のタグ情報が書き込まれていた場合には、最内のタグ情報の削除および新たなタグ情報の追記(すなわち、ステップSB240およびSB250の処理)を行うことなく、その処理対象フレームを上流側へ転送する処理をスイッチングハブ50に実行させるようにしても良い。このような態様によれば、通信端末40付近のスイッチングハブの接続関係がルータ60において把握されることになる。このような態様においては、何れかの通信端末がコンピュータウィルスに感染し、異常なパケットが当該通信端末から送出されていることが検出された場合には、当該通信端末を接続しているスイッチングハブに対して当該通信端末が接続されているポートを閉塞する旨の指示をルータ60から与えて当該ポートを閉塞させることができ、コンピュータウィルスに感染した通信端末からの影響(或いはスイッチングハブの下流側ポートを閉塞することに起因した影響)を最小限に抑えることができる。
【0067】
ルータ60のルーティングエンジン部620は、スイッチングハブ50Aによって転送された処理対象フレームを受信すると、動作例(B−3)における場合と同様に、図12(B)に示すようなレコードRec3を接続関係管理テーブルに登録する。このレコードRec3によって、ルータ60と、その1段下のスイッチングハブであるスイッチングハブ50Aと、さらに1段下(すなわち、ルータ60から見て2段下)のスイッチングハブであるスイッチングハブ50Bと、さらにその下流の(実際には、スイッチングハブ50Cを介して接続されている)通信端末40Cの接続関係が表されるのである。
以上がARP3の転送動作である。
【0068】
以上説明したように、本実施形態によれば、ルータ60から見て2段下までのスイッチングハブとそのスイッチングハブに接続されている通信端末の接続関係を正確に表現するレコードRec1およびRec2データと、ルータ60から見て3段目以降のスイッチングハブを省略した接続関係を表すレコードRec3が接続関係管理テーブルに格納される。このため、LAN1の運用管理者は、接続関係管理テーブルの格納内容を適宜参照(例えば、接続関係管理テーブルの格納内容にしたがったツリー構造を描画させ、そのツリー構造を閲覧する等)することで、ルータ60から見て2段下までのスイッチングハブとそのスイッチングハブに接続されている通信端末の接続関係を正確に把握し、それら通信装置の運用管理や保守を迅速に行うことができる。
【0069】
また、ルータ60からスイッチングハブ50の遠隔制御を行う場合には、不正なアクセスを行っている通信端末が接続されているスイッチングハブのポートをその通信端末のMACアドレスと上記接続関係管理テーブルの格納内容から特定し、そのポートをルータ60からの遠隔操作で閉塞したり、そのポートのアクセスランプを明滅させたりするなどの対処を行うことが可能になる。なお、本実施形態では、ルータ60から見て3段目以降のスイッチングハブについての接続関係を直接把握することはできないが、当該3段目以降のスイッチングハブに接続されている通信端末と、ルータ60から見て2段下までのスイッチングハブとの接続関係を把握することができるため、これらを手掛かりに3段目のスイッチングハブを特定しその運用管理および保守を行ってもよく、また不正アクセスに対しては2段目のスイッチングハブの遠隔操作を行うことで被害を食い止めることができる。
【0070】
加えて、本実施形態では、SNMPマネージャのような新たなコンピュータ装置を導入する必要はないため大幅なコストの増加を招くことはない。また、本実施形態では、予め定められた種類のパケット(ARPパケット)のみを処理対象とするため、SNMPを利用して接続関係の把握を行う従来技術に比較してスイッチングハブ50に過大な処理負荷がかかることもない。つまり、本実施形態によれば、ルータ60の配下の通信ネットワークに含まれている各通信装置の接続関係を、それら通信装置に過大な負荷をかけることなく、かつ低コストで把握することが可能になるのである。
【0071】
(C:変形)
以上、本発明の実施形態について説明したが、この実施形態を以下のように変形しても勿論良い。
(1)上述した実施形態では、ルータ60のMACアドレスを取得するためのARPパケットを処理対象パケットとした。しかし、本発明における処理対象パケットは、ARPパケットに限定されるものではなく、DHCP(Dynamic Host Configuration Protocol)によるIPアドレスの割り当てを要求するパケットやWindows(登録商標)等におけるファイル共有のためのパケットであっても良い。要は、スイッチングハブ50にポートの接続状態を示す情報を取得させることができる種類のパケットであって、通信端末の電源が投入された直後、または通信端末が通信ネットワークに接続された直後に送信される可能性の高いパケットであれば良い。このような種類のパケットを処理対象パケットとして定めておけば、通信端末の電源投入(または通信端末の通信ネットワークへの接続)から時間をおかずに迅速にその通信端末とルータとの間の通信路についての接続関係を示すデータを生成することができるからである。また、処理対象パケットとしてDHCPによるIPアドレスの割り当てを要求するパケットやWindows(登録商標)等におけるファイル共有のためのパケットを用いる態様においては各通信装置を識別するための識別子として人間にとって識別が容易なIPアドレスやコンピュータ名をMACアドレスの代わりに用いることができる、といった利点もある。
【0072】
(2)上述した実施形態では、各スイッチングハブ50が処理対象パケットを受信した下流側のポートをルータ60に通知するためのタグ情報として、MACフレームの所定領域に書き込むVLANタグを用いた。ここで上記タグ情報としてVLANタグを用いたのは、データ通信技術における一般仕様であり、多くの通信装置がこの仕様に準拠している(換言すれば、特段の問題を引き起こさない)と考えられるからである。しかし、新たなタグ情報の仕様(データサイズやフレームへの書き込み領域等)を独自に定めることも考えられない訳ではない。このような態様によれば、処理対象フレームに付与するタグ情報の最大数を2よりも大きくすることや、ポート識別子とともにスイッチングハブ50を示す識別子をタグ情報として付与すること、或いはタグ情報の書き込み先となる領域の大きさを可変とし、処理対象フレームに付与可能なタグ情報の数についての制限を撤廃することが可能になるといった利点があるからである。しかし、その一方、当該独自仕様に対応していないスイッチングハブがLANに含まれていた場合に、その独自仕様にしたがったタグ情報を付与したフレームがそのスイッチングハブにて破棄される虞があるといった点に留意する必要がある。また、上述した実施形態では、処理対象フレームの所定領域の最外に最も上流側のスイッチングハブ50のタグ情報が書き込まれ、内側に向うほど下流側のスイッチングハブ50のタグ情報が書き込まれるようにしたが、逆順であっても勿論良い。
【0073】
(3)上述した実施形態では、本発明のスイッチングハブの特徴を顕著に示す上流側ポート特定処理およびフレーム転送制御処理(タグ情報付与/削除処理を含む)をソフトウェアで実現したが、これら各処理をハードウェアで実現しても良い。例えば、上流側ポート特定処理およびフレーム転送制御処理(タグ情報付与/削除処理を含む)を実行するASICでスイッチングエンジン部520を構成すれば良い。同様に、ルータ60のルーティングエンジン部620を、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理を実行するASICで構成しても良い。
【0074】
(4)上述した実施形態のフレーム転送制御処理では、条件(a)を満たすか否かの判定(図4:ステップSB100)を行った後に条件(b)を満たすか否かの判定(図4:ステップSB110)を行ったが、これら判定処理の順序を入れ替えても良く、また、条件(a)と条件(b)とを同時に満たすか否かの判定を上記2つの判定に換えて行うようにしても良い。
【0075】
(5)上述した実施形態では、上流側ポート特定処理およびフレーム転送制御処理(タグ情報付与/削除処理を含む)をスイッチングハブ50のスイッチングエンジン部520に実行させるためのファームウェア(プログラム)が予め同スイッチングハブ50の記憶部530に記憶されていた。しかし、CD−ROM(Compact Disk-Read Only Memory)などのコンピュータ読み取り可能な記録媒体に当該プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより当該プログラムを配布しても良い。このようにして配布されるプログラムよって既存のスイッチングハブのファームウェアを書き換えることで、スイッチングハブ50と同一の機能を既存のスイッチングハブに付与することが可能になるからである。同様に、ルータ検索パケット応答処理、パケット転送制御処理およびタイマ処理の各処理をルータ60のルーティングエンジン部620に実行させるためのファームウェア(プログラム)についても、コンピュータ読み取り可能な記録媒体に書き込んで配布しても良く、インターネットなどの電気通信回線経由のダウンロードにより配布しても良い。このようにして配布されるプログラムによって既存のルータのファームウェアを書き換えることで、ルータ60と同一の機能を既存のルータに付与することが可能になるからである。
【符号の説明】
【0076】
1…LAN、40A,40B,40C…通信端末、50A,50B,50C…スイッチングハブ、60…ルータ、510,610…通信I/F部、520…スイッチングエンジン部、620…ルーティングエンジン部、530,630…記憶部。

【特許請求の範囲】
【請求項1】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブの各々は、
各々にルータ、または他のスイッチングハブ、または通信端末が接続される複数のポートを有しているとともに、
前記通信ネットワークに当該スイッチングハブが接続されたこと、または当該スイッチングハブの電源が投入されたことを契機として前記複数のポートのうち前記ルータまたは前記ルータ側の他のスイッチングハブに接続されている上流側ポートを特定する第1の処理と、
通信端末からルータへ宛てて送信されたパケットを内包したフレームを前記上流側ポートとは異なるポートを介して受信し、かつ、当該フレームに内包されているパケットが予め定められた種類のものである場合には、当該フレームを上流側へ転送する際に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する第2の処理と、を実行し、
(B)前記ルータは、
前記所定領域にタグ情報が書き込まれているフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する第3の処理を実行する
ことを特徴とする通信システム。
【請求項2】
前記複数のスイッチングハブの各々は、前記第2の処理において当該スイッチングハブについてのタグ情報を追記しようとするフレームの所定領域に所定数分のタグ情報が書き込まれていた場合には、最も下流側のスイッチングハブによって書き込まれたタグ情報を削除した後に当該スイッチングハブについてのタグ情報を追記することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記複数のスイッチングハブの各々は、前記第2の処理において当該スイッチングハブについてのタグ情報を追記しようとするフレームの所定領域に所定数分のタグ情報が書き込まれていた場合には、当該スイッチングハブについてのタグ情報を追記することなく上流側へフレームを転送すること特徴とする請求項1に記載の通信システム。
【請求項4】
各々他の通信装置に接続される複数のポートと、
当該スイッチングハブの電源が投入されたこと、または当該スイッチングハブが通信ネットワークに接続されたことを契機として、前記複数のポートのうちルータまたはルータ側の他のスイッチングハブに接続されている上流側ポートを特定する上流側ポート特定手段と、
前記上流側ポートとは異なるポートを介して予め定められた種類のパケットを内包したフレームを受信し、当該フレームを上流側へ転送する場合には、当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送するタグ情報付与手段と、
を有することを特徴とするスイッチングハブ。
【請求項5】
通信端末から当該ルータへ宛てて送信されたパケットを内包したフレームの転送制御を行う複数のスイッチングハブであって、予め定められた種類のパケットを内包したフレームを受信した場合に当該フレームを受信したポートを示すタグ情報を当該フレームの所定領域に追記して転送する処理を各々実行する複数のスイッチングハブを含む通信ネットワークに接続されるルータであって、
前記タグ情報が前記所定領域に書き込まれたフレームを受信した場合に、当該タグ情報からそのフレームの転送に関わったスイッチングハブとそのフレームの送信元の通信端末の接続関係を示すデータを生成して記憶する
ことを特徴とするルータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate