通信システム、ルータ、スイッチングハブ、およびプログラム
【課題】ルータ配下のネットワークに過剰な負荷をかけることなく、当該ネットワークに収容される通信端末の接続先のスイッチングハブを特定する。
【解決手段】ルータと当該ルータ配下の各スイッチングハブの各々についての隣接中継装置テーブルを記憶させておく。ルータは、探索対象の端末に対応する通信ポートをMACアドレステーブルを参照して特定し、当該通信ポートに対応するスッチングハブを自装置の隣接中継装置テーブルを参照して特定する。次いで、ルータは当該スイッチングハブを接続先候補として上記端末に対応する通信ポートを問い合わせ、当該通信ポートの接続先が他のスイッチングハブであるか否かを当該スイッチングハブの隣接中継装置テーブルの格納内容を参照して判定する。そして、他のスイッチングハブである場合には当該他のスイッチングハブを新たな接続先候補として再度上記問い合わせを行う。
【解決手段】ルータと当該ルータ配下の各スイッチングハブの各々についての隣接中継装置テーブルを記憶させておく。ルータは、探索対象の端末に対応する通信ポートをMACアドレステーブルを参照して特定し、当該通信ポートに対応するスッチングハブを自装置の隣接中継装置テーブルを参照して特定する。次いで、ルータは当該スイッチングハブを接続先候補として上記端末に対応する通信ポートを問い合わせ、当該通信ポートの接続先が他のスイッチングハブであるか否かを当該スイッチングハブの隣接中継装置テーブルの格納内容を参照して判定する。そして、他のスイッチングハブである場合には当該他のスイッチングハブを新たな接続先候補として再度上記問い合わせを行う。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、LAN(Local Area Network)の運用管理を支援する技術に関する。
【背景技術】
【0002】
近年、企業等においては、支店などの各拠点にLAN(以下、拠点内LAN)を敷設し、これら拠点内LANをルータによってインターネットなどのIP(Internet Protocol)網に接続して企業内情報システムを構築することが一般に行われている。このような拠点内LANは複数のスイッチングハブをカスケード接続して構成されることが多く、各ユーザ(例えば、企業の従業者)の使用する通信端末はそれらスイッチングハブの何れかに接続される。ここで、ルータとは、OSI(Open Systems Interconnection)参照モデルにおける第3層(ネットワーク層)の通信プロトコルにしたがってパケット(第3層におけるデータの送受信単位)の転送制御を行う中継装置である。また、スイッチングハブとは、OSI参照モデルにおける第2層(データリンク層)の通信プロトコルにしたがってフレーム(第2層におけるデータの送受信単位)の転送制御を行う中継装置であり、L2スイッチとも呼ばれる。
【0003】
企業内情報システム(或いは、その構成要素の通信システムである各拠点内LAN)の運用管理や保守を行う際には、各通信端末が何れのスイッチングハブに接続されているのかを把握することができると便利である。このため、各通信端末が何れのスイッチングハブに接続されているのかを把握すること(以下、通信端末の探索)を可能にする技術が種々提案されている。例えば、特許文献1には、LANに含まれる各スイッチングハブ間でMAC(Media Access Control)アドレステーブルの受け渡しを行い、それらMACアドレステーブルの格納内容を参照して通信端末の探索を行う技術が開示されている。ここで、MACアドレスとは、OSI参照モデルの第2層において各通信装置を一意に識別するハードウェア識別子である。また、MACアドレステーブルとは、スイッチングハブやルータなどの中継装置が備えるテーブルであり、これら中継装置が受信したフレームの送信元MACアドレスに対応付けて当該フレームを受信した通信ポートのポート識別子を格納するためのものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−171502号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、大規模なLANほど、多数の通信端末およびスイッチングハブを含み、各スイッチングハブの接続関係も複雑であることが多い。このため、LANが大規模化するほど、通信端末の探索に対する重要性は高まる。しかし、特許文献1に開示された技術には、LANが大規模化するほど適用が困難になる、といった不具合がある。何故ならば、LANが大規模化して当該LANに含まれるスイッチングハブの数が増えるほど、スイッチングハブ間のMACアドレステーブルの受け渡しによる負荷が高くなり、LANを介して行われる本来のデータ通信(例えば、LANに収容される通信端末間のデータ通信)に悪影響をおよぼす可能性が高くなるからである。
【0006】
本発明は上記課題に鑑みて為されたものであり、ルータ配下のネットワークに過剰な負荷をかけることなく、当該ネットワークに収容される通信端末が何れのスイッチングハブに接続されているのかを把握することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、(B)前記ルータは、前記第1および第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する第1の手段と、探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第2の手段と、前記第2の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の手段と、前記第2の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第3の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の手段と、前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して、当該スイッチングハブにおいて前記探索対象の通信端末に対応する通信ポートを問い合せる第5の手段と、前記第5の手段による問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブから前記第1の手段によって取得した第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直し、前記第5の手段による処理を繰り返す第6の手段と、を有し、(C)前記第1および第2のテーブルを有するスイッチングハブは、自装置の前記第2のテーブルの格納内容を前記ルータへ通知する第7の手段と、前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定して返信する第8の手段、を有することを特徴とする通信システム、を提供する。
【0008】
本発明によれば、ルータから探索対象の通信端末へ至る通信経路のスイッチングハブの各々について当該探索対象端末の接続有無の判定が当該ルータによって行われ、これによって通信端末の接続先のスイッチングハブが特定される。本発明においては、ルータおよびスイッチングハブ間でMACアドレステーブルの受け渡しが行われることはなく、ルータ配下のネットワークに過剰な負荷がかかることはない。
【0009】
より好ましい態様においては、前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はIPアドレスであり、前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCP(Dynamic Host Configuration Protocol)サーバ手段を有しており、前記第2の手段は、探索対象の通信端末のIPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定することを特徴とする。また、別の好ましい態様においては、前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はホスト名であり、前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCPサーバ手段と、当該通信端末のホスト名とIPアドレスとの相互変換を行うDNS(Domain Name System)サーバ手段と、を有しており、前記第2の手段は、探索対象の通信端末のホスト名を前記DNSサーバ手段によってIPアドレスに変換し、さらに、当該IPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定することを特徴とする。
【0010】
これらの態様によれば、IPアドレスまたはホスト名を指定して通信端末を探索することが可能になる。一般に、IPアドレスはMACアドレスに比較して人が理解し易く、ホスト名はIPアドレスよりもさらに人が理解し易い。上記の態様によれば、MACアドレスよりも理解し易いIPアドレスまたはホスト名によって探索対象の通信端末を指定することができるため、利便性が向上する、といった効果が得られる。
【0011】
また、上記課題を解決するために本発明は、(A)複数の通信ポートを備えた通信インタフェース部と、(B)当該ルータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、(D)当該ルータの配下のネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する記憶手段と、(E)探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを前記第1のテーブルの格納内容から特定する第1の処理と、前記第1の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該ルータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の処理と、前記第1の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第2の処理によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の処理と、前記第3の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第4の処理と、前記第4の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、前記記憶手段に記憶されている当該スイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第4の処理を繰り返す第5の処理と、を実行する端末探索手段とを有することを特徴とするルータ、を提供する。
【0012】
このようなルータと、上記第1および第2のテーブルを備えかつ上記第7および第8の手段を有するスイッチングハブと、を組み合わせて、前述した通信システムを構成することができるからである。また、本発明の別の態様としては、コンピュータに上記第1〜第5の処理を実行させることを特徴とするプログラムを提供する態様も考えられる。そして、このようなプログラムの具体的な提供態様としては、CD−ROM(Compact Disk-Read Only Memory)などのコンピュータ読み取り可能な記録媒体に書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【0013】
また、上記課題を解決するために本発明は、(A)複数の通信ポートを備えた通信インタフェース部と、(B)当該スイッチングハブへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、(D)前記第2のテーブルの格納内容を当該スイッチングハブを含むネットワークと他のネットワークとを接続するルータに通知する通知手段と、(E)前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段とを有することを特徴とするスイッチングハブを提供する。このようなスイッチングハブを上記ルータと組み合わせることで、前述した通信システムを構築することができるからである。なお、コンピュータを上記第1および第2のテーブルを記憶する記憶手段、隣接中継装置通知手段および通信ポート通知手段として機能させることを特徴とするプログラムを提供する態様も勿論考えられる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1実施形態のLAN1Aの構成例を示す図である。
【図2】同LAN1Aに含まれるスイッチングハブ50の構成例を示す図である。
【図3】同スイッチングハブ50のスイッチングエンジン部520が実行するフレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理を説明するための図である。
【図4】同LAN1Aにおいて送受信されるフレームのデータ構造を示す図である。
【図5】同LAN1AをIP網に接続するルータ60の構成例を示す図である。
【図6】同ルータ60のルーティングエンジン部620が実行する端末探索処理の流れを示すフローチャートである。
【図7】同LAN1Aにおける通信端末40、スイッチングハブ50およびルータ60の各々の通信ポートの接続関係の一例を示す図である。
【図8】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図9】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図10】スイッチングハブ50およびルータ60のMACアドレステーブルの格納内容の一例を示す図である。
【図11】通信端末の探索過程における通信シーケンスの一例を示す図である。
【図12】本発明の第2実施形態のLAN1Bの構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ、この発明の実施形態について説明する。
<A:第1実施形態>
<A−1:構成>
図1は、本発明の第1実施形態の通信システムであるLAN1Aの構成例を示す図である。このLAN1Aは、例えば企業の支店に敷設される拠点内LANであり、ルータ60によってインターネットなどのIP網(図示省略)に接続される。このLAN1Aは、上記支店内における通信システムの役割を果たす一方、他の支店に敷設される拠点内LANとともに上記企業における企業内情報システムを構成する。図1に示すように、LAN1Aは、4台のスイッチングハブ(スイッチングハブ50A、50B、50C、および50D)と、2台の通信端末(通信端末40Aおよび40B)と、1台の操作端末30と、を含んでいる。図1に示すように、ルータ60にはスイッチングハブ50Aと操作端末30とが接続されており、スイッチングハブ50Aにはスイッチングハブ50Bが接続されている。そして、スイッチングハブ50Bにはスイッチングハブ50Cと50Dとが接続されており、スイッチングハブ50Cには通信端末40Aが、スイッチングハブ50Dには通信端末40Bが各々接続されている。
【0016】
操作端末30、通信端末40Aおよび40Bの各々は、例えばパーソナルコンピュータである。操作端末30はLAN1Aの運用管理のための各種操作をLAN1Aの運用管理者に行わせるためのものである。通信端末40Aおよび40Bは、LAN1Aに含まれる何れかのスイッチングハブに接続されることで、当該LAN1Aに収容される。LAN1Aに収容された通信端末40Aおよび40Bの各々は、他の通信装置(例えば、LAN1Aに収容されている他の通信端末や他の拠点内LANに収容されている通信端末、或いはIP網に接続されているWWWサーバなど)との間でIPにしたがったパケット通信を行う。以下、通信端末40Aおよび40Bの各々を区別する必要がない場合には、「通信端末40」と表記する。なお、図1ではルータ60の配下のネットワーク(すなわち、LAN1A)に2台の通信端末40が収容される場合について例示されているが、3台以上の通信端末40がLAN1Aに収容されても良く、また、通信端末40が1台だけ収容されている態様であっても勿論良い。
【0017】
図1のスイッチングハブ50A、50B、50Cおよび50Dの各々は同一の構成を有している。以下では、これら4台のスイッチングハブの各々を区別する必要がない場合には、「スイッチングハブ50」と表記する。スイッチングハブ50は、IPよりも下位のプロトコル階層である第2層(データリンク層)においてデータ通信を中継する中継装置である。ルータ60は、ネットワーク層においてデータ通信を中継する中継装置であり、LAN1Aのデフォルトゲートウェイの役割を果たす。ルータ60は、IP網から受信したパケットの送信先IPアドレスが通信端末40Aまたは40Bの何れかのものであれば、そのパケットを配下のLAN1Aへと転送し、その送信先IPアドレスが通信端末40Aまたは40Bの何れのものでもない場合にはルーティングテーブルの格納内容にしたがって他のルータへ転送する。このようにルータ60はLAN1Aのデフォルトゲートウェイとして機能するため、以下ではLAN1Aのことを「ルータ60の配下のネットワーク」と呼ぶ場合がある。加えて、図1のルータ60は、DHCPサーバ機能とDNSサーバ機能とを有している。このDHCPサーバ機能によって、ルータ60は、操作端末30或いは通信端末40のLAN1Aへの接続を契機としてこれら各端末にIPアドレスを割り当て、当該IPアドレスと各端末のMACアドレスとの相互変換を行う。また、ルータ60は、DNSサーバ機能によって、操作端末30或いは通信端末40に付与されたホスト名とIPアドレスとの相互変換を行う。
【0018】
図1に示すLAN1Aにおいては、第2層の通信プロトコルにしたがったデータ通信(すなわち、フレームの送受信および転送制御)の実行過程において、LAN1Aに含まれる各中継装置(すなわち、ルータ60およびスイッチングハブ50)に、隣接中継装置を検出させる。ここで、隣接中継装置とは、当該中継装置に対してフレームの転送を行った他の中継装置のことであり、LAN1Aにおいては当該中継装置に直結されている他の中継装置のことである。例えば、LAN1Aにおいては、ルータ60についての隣接中継装置はスイッチングハブ50Aであり、スイッチングハブ50Aについての隣接中継装置はルータ60およびスイッチングハブ50Bである。また、スイッチングハブ50Bについての隣接中継装置はスイッチングハブ50A、50Cおよび50Dであり、スイッチングハブ50C(或いは50D)についての隣接中継装置はスイッチングハブ50Bである。
【0019】
図1に示すLAN1Aにおいては、スイッチングハブ50の各々は、自装置の隣接中継装置を検出し、その検出結果をルータ60へ通知する一方、ルータ60は、各スイッチングハブ50の隣接中継装置を示す情報をスイッチングハブ50毎に記憶する。そして、LN1Aにおいては、運用管理者によって、接続先の特定を所望する端末(本実施形態では、通信端末40Aまたは通信端末40B:以下、探索対象端末)のMACアドレス、IPアドレス或いはホスト名が操作端末30を介してルータ60に指示されると、ルータ60は各スイッチングハブ50と通信して当該探索対象端末の接続先を特定し、その特定結果を操作端末30に報知させる。これにより、上記運用管理者は、探索対象端末が何れのスイッチングハブ50に接続されているのかを把握することができるのである。このように本実施形態では、探索対象端末をIPアドレスやホスト名で指定することができるため、MACアドレスのみでしか探索対象端末を指定できない態様に比較して利便性が向上するのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ50およびルータ60を中心に説明する。
【0020】
<A−1−1:スイッチングハブ50の構成>
図2は、スイッチングハブ50の構成を示すブロック図である。図2に示すように、スイッチングハブ50は、通信インタフェース(以下、I/F)部510、スイッチングエンジン部520、および記憶部530を有している。
【0021】
通信I/F部510は、複数の通信ポートを有している。これら複数の通信ポートの各々には、例えば100BASE−Tなどの通信ケーブルを介して他の通信装置(本実施形態では、ルータ60や他のスイッチングハブ50、或いは通信端末40の何れか)が接続される。これら複数の通信ポートの各々には、通信ポート毎に固有のポート識別子(例えば、ポート番号)が予め割り当てられており、当該ポート識別子を用いて各通信ポートを一意に識別することができる。通信I/F部510は、各通信ポートを介して受信したフレームをスイッチングエンジン部520に与える一方、スイッチングエンジン部520から与えられるフレームを同スイッチングエンジン部520によって指示された通信ポートから送出する。
【0022】
記憶部530は、例えばRAM(Random Access Memory)などの揮発性メモリとEPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリとを含んでいる(図2では、何れも図示略)。この不揮発性メモリには、本発明のスイッチングハブの特徴を顕著に示す処理をスイッチングエンジン部520に実行させるためのファームウェア(プログラム)が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部520によって利用される。また、上記揮発性メモリは、通信I/F部510によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たし、さらに、この揮発性メモリには、図2のMACアドレステーブルと同図2の隣接中継装置テーブルとが格納される。
【0023】
図2のMACアドレステーブルは、従来のスイッチングハブが有するものと特段に変るところはない。このMACアドレステーブルには、通信I/F部510によって受信したフレームの送信元MACアドレスに対応付けて当該フレームを受信した通信ポートのポート識別子が格納される。MACアドレステーブルへのMACアドレスおよびポート識別子の書き込みは、フレーム転送制御に伴って行われる。例えば、ルータ60のMACアドレス解決のために通信端末40から送信されたフレーム(ペイロード部にARP(Address Resolution Protocol)パケットが書き込まれたフレーム)の転送過程では、当該フレームの送信元MACアドレス(すなわち、通信端末40のMACアドレス)と当該フレームの受信ポートのポート識別子とを対応付けてMACアドレステーブルに書き込む処理が行われる。一方、当該フレームに対する応答フレームの転送過程では、当該フレームの送信元MACアドレス(すなわち、ルータ60のMACアドレス)と当該フレームの受信ポートのポート識別子とを対応付けてMACアドレステーブルに書き込む処理が行われる。このMACアドレステーブルの格納内容は、送信先MACアドレスに基づくフレームの転送制御を行う際に利用される。
【0024】
隣接中継装置テーブルには、通信I/F部510が有する複数の通信ポートの各々のポート識別子に対応付けて接続先識別子が格納される。ここで、接続先識別子とは、当該接続先識別子を対応付けられている通信ポートの接続先が隣接中継装置であるか否かを示すとともに、当該接続先が隣接中継装置である場合には当該隣接中継装置を一意に示す情報である。前述したように隣接中継装置とは、当該スイッチングハブ50に対してフレームの転送を行った他の中継装置(本実施形態では、ルータ60或いは他のスイッチングハブ50)のことである。本実施形態では、隣接中継装置に接続されている通信ポートのポート識別子には接続先識別子として当該隣接中継装置のMACアドレスが対応付けられ、隣接中継装置以外の他の通信装置(本実施形態では、通信端末40)が接続さている通信ポート、或いは他の通信装置に接続されていない通信ポートには接続先識別子としてNULL(0x00)が対応付けられる。
【0025】
この隣接中継装置テーブルは、スイッチングハブ50の電源(図示略)が投入されたことを契機として、各接続先識別子をNULLとした状態で生成される。そして、予め定められた特定のフレームの中継を行うことに伴って、当該テーブルの格納内容の更新(すなわち、隣接中継装置が接続されている通信ポートのポート識別子に対応する接続先識別子を当該隣接中継装置のMACアドレスに書き換えること)が行われる。詳細については後述するが、本実施形態では、上記特定のフレームとして、隣接中継装置テーブルの格納内容をルータ60に通知するために各スイッチングハブ50が送信する隣接中継装置通知フレームと、当該隣接中継装置通知フレームの送信を要求するためにルータ60が配下のLAN1A内にマルチキャストする要求フレームの2種類が予め定められている。
【0026】
スイッチングエンジン部520は、例えばCPU(Central Processing Unit)である。スイッチングエンジン部520は、記憶部530に記憶されているファームウェアを実行することで、スイッチングハブ50の制御中枢として機能する。このファームウェアにしたがって作動しているスイッチングエンジン部520は、何れかの通信ポートを介してフレームを受信するたびに図3のフローチャートに示す処理を実行する。図3に示すように、上記ファームウェアにしたがってスイッチングエンジン部520が実行する処理としては、フレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理の3つが挙げられる。以下、これら3つの処理の処理内容の詳細な説明に先立って、LAN1Aにおいて送受信されるフレームのデータ構造について説明しておく。
【0027】
図4(A)は、LAN1Aにおいて送受信される一般的なフレームのデータ構造を示す図である。図4(A)に示すように、フレームは、ヘッダ部と、ペイロード部とを有している。ヘッダ部には、送信先MACアドレス、送信元MACアドレス、種別識別子が格納される。例えば、前述した要求フレームの場合は、送信先MACアドレスにはマルチキャストアドレスがセットされ、送信元MACアドレスにはルータ60のMACアドレスがセットされる。要求フレームはルータ60から配下のLAN1Aに向けてマルチキャストされるからである。また、隣接中継装置通知フレームの場合は、送信先MACアドレスにはルータ60のMACアドレスがセットされ、送信元MACアドレスにはその送信元のスイッチングハブ50のMACアドレスがセットされる。前述したように、隣接中継装置通知フレームは、スイッチングハブ50からルータ60へユニキャストされるからである。
【0028】
種別識別子とは、ペイロード部に格納されているデータ(パケット)の種類等を示す識別子である。本実施形態にてスイッチングハブ50とルータ60との間で送受信されるフレームのうち、本実施形態の特徴を顕著に示すものとしては、要求フレームおよび隣接中継装置通知フレームの他に、問い合せフレームと通信ポート通知フレームとが挙げられる。ここで、問い合せフレームとは、探索対象として指定された通信端末に対応する通信ポートのポート識別子をスイッチングハブ50に問い合せるためにルータ60がユニキャストするフレームであり、通信ポート通知フレームとは当該問い合せフレームに対する応答としてスイッチングハブ50がルータ60に返信(ユニキャスト)するフレームである。これら本実施形態の特徴を顕著に示す4種類のフレームのヘッダ部には、これら4種類のフレームを他のフレームと識別するための値(0xe812)がセットされる。なお、以下では、上記4種類のフレームのうち、要求フレームと隣接中継装置通知フレームとを「隣接中継装置情報収集用フレーム」と総称する場合がある。
【0029】
図4(B)は、要求フレームのペイロード部のデータ構造を示す図である。図4(B)に示すように、要求フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および転送元識別子が書き込まれる。要求フレームのペイロード部に書き込まれる送信先MACアドレスおよび送信元MACアドレスは、同要求フレームのヘッダ部に書き込まれているものと同一である。フレーム種別識別子とは、当該フレームが前述した4種類のフレームの何れであるかを示す識別子である。フレーム種別識別子には上記4種類のフレーム毎に異なる値がセットされる。要求フレームのペイロード部のフレーム種別識別子には、要求フレームであることを示す値がセットされる。転送元識別子には、要求フレームの送信の際にはその送信元のMACアドレスがセットされ、スイッチングハブ50によって当該フレームの転送が行われるたびに当該転送を行ったスイッチングハブ50のMACアドレスに書き換えられる。
【0030】
図4(C)は、隣接中継装置通知フレームのペイロード部のデータ構造を示す図である。図4(C)に示すように、隣接中継装置通知フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および転送元識別子の他に、隣接中継装置情報が書き込まれる。隣接中継装置通知フレームのペイロード部のフレーム種別識別子には、当該フレームが隣接中継装置通知フレームであることを明示する値がセットされる。また、同ペイロード部の隣接中継装置情報には、当該隣接中継装置通知フレームの送信時点における当該隣接中継装置通知フレームの送信元のスイッチングハブ50の隣接中継装置テーブルの格納内容(すなわち、当該スイッチングハブ50の全ての通信ポートについてのポート識別子と当該ポート識別子に対応する接続先識別子のリスト)が書き込まれる。なお、隣接中継装置通知フレームのペイロード部に書き込まれる送信先MACアドレス、送信元MACアドレスおよび転送元識別子については要求フレームにおけるものと同様である。
【0031】
図4(D)は、問い合せフレームのペイロード部のデータ構造を示す図である。図4(D)に示すように、問い合せフレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および探索対象識別子が書き込まれる。問い合せフレームのペイロード部のフレーム種別識別子には、当該フレームが問い合せフレームであることを明示する値がセットされる。探索対象識別子とは、探索対象として指定された通信端末を一意に識別する識別子(本実施形態では、当該通信端末のMACアドレス)である。図4(E)は、通信ポート通知フレームのペイロード部のデータ構造を示す図である。図4(E)に示すように、通信ポート通知フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および接続先ポート識別子が書き込まれる。通信ポート通知フレームのペイロード部のフレーム種別識別子には、当該フレームが通信ポート通知フレームであることを明示する値がセットされる。前述したように、通信ポート通知フレームは問い合せフレームを受信したスイッチングハブ50が当該問い合せフレームに対する応答として返信するフレームであり、当該スイッチングハブのMACアドレステーブルにおいて上記探索対象識別子に対応付けられているポート識別子が上記接続先ポート識別子として書き込まれる。これら問い合せフレームおよび通信ポート通知フレームのペイロード部に書き込まれる送信先MACアドレスおよび送信元MACアドレスについても、要求フレーム(或いは隣接中継装置通知フレーム)におけるものと同様、各々のヘッダ部に書き込まれていたものと同一である。
以上がLAN1Aにおいて送受信されるフレームのデータ構造である。
【0032】
次いで、図3を参照しつつ、フレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理の処理内容を説明する。図3に示すように、スイッチングエンジン部520は、通信I/F部510の何れかの通信ポートを介してフレームを受信すると、当該受信フレームが自装置へ宛ててルータ60から送信された問い合せフレームであるか否かを、当該受信フレームのヘッダ部の送信先MACアドレスおよび同ペイロード部のフレーム種別識別子を参照して判定する(ステップSA100)。すなわち、送信先MACアドレスが自装置のMACアドレスであり、かつフレーム種別識別子が問い合せフレームであることを示す値である場合に上記ステップSA100の判定結果は“Yes”となる。そして、スイッチングエンジン部520は、ステップSA100の判定結果が“Yes”である場合には、通信ポート通知フレーム送信処理(ステップSA110)を実行し、逆に、ステップSA100の判定結果が“No”である場合には、図3に示すように、フレーム転送制御処理を実行する。なお、受信フレームが前述した4種類のフレームの何れかであるか否か(すなわち、受信フレームのヘッダ部の種別識別子が0xe812であるか否か)の判定をステップSA100に先立って行い、その判定結果が“No”である場合(すなわち、受信フレームの種別識別子が0xe812ではない場合)には、SA170の処理を実行し、逆に、当該判定の判定結果が“Yes”である場合(すなわち、受信フレームの種別識別子が0xe812である場合)に上記ステップSA100の判定を行うようにしても勿論良い。
【0033】
図3に示すように、フレーム転送制御処理は、その送信先MACアドレスに基づく転送制御(ステップSA170)を含んでいる。ここで、受信フレームの送信先MACアドレスに基づく転送制御とは、当該送信先MACアドレスがユニキャストアドレスではない場合、または当該送信先MACアドレスがMACアドレステーブルに格納されていないユニキャストアドレスである場合には、当該受信フレームのフラッディングを行う一方、当該送信先MACアドレスがMACアドレステーブルに格納されたユニキャストアドレスである場合には、当該MACアドレスに対応付けてMACアドレステーブルに格納されているポート識別子の示す通信ポートのみから当該受信フレームを送出することである。ここでユニキャストアドレスではないMACアドレスとしては、マルチキャストアドレスまたはブロードキャストアドレスが挙げられる。また、フラッディングとは、受信フレームを受信した通信ポート以外の全ての通信ポートから当該受信フレームを送出することである。この送信先MACアドレスに基づく転送制御については従来のスイッチングハブにおけるものと特段に変るところはない。換言すれば、従来のスイッチングハブでは、フレーム転送制御処理として上記送信先MACアドレスに基づく転送制御(ステップSA170の処理)のみが実行されるのである。
【0034】
本実施形態のフレーム転送制御処理は、ステップSA170の処理の他に、ステップSA120〜SA140の処理を含んでいる。図3に示すように、本実施形態のフレーム転送制御処理では、スイッチングエンジン部520は、まず、受信フレームが隣接中継装置情報収集用フレーム(すなわち、要求フレーム或いは隣接中継装置通知フレーム)であるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定する(ステップSA120)。具体的には、スイッチングエンジン部520は、受信フレームのフレーム種別識別子が要求フレームを示す値または隣接中継装置通知フレームを示す値である場合には、当該受信フレームは隣接中継装置情報収集用フレームであると判定する。そして、スイッチングエンジン部520は、ステップSA120の判定結果が“No”である場合には、前述したステップSA170の処理を実行して本フレーム転送制御処理を終了し、逆に、ステップSA120の判定結果が“Yes”である場合には、ステップSA130以降の処理を実行する。
【0035】
ステップSA120の判定結果が“Yes”である場合に実行されるステップSA130では、スイッチングエンジン部520は、隣接中継装置情報収集用フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を、当該フレームのペイロード部に書き込まれている転送元識別子によって書き換える。次いで、スイッチングエンジン部520は、受信した隣接中継装置情報収集用フレームの転送元識別子を自装置のMACアドレスに書き換える(ステップSA140)。次いで、スイッチングエンジン部520は、図3に示すように、受信フレームが要求フレームであるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定し(ステップSA150)、その判定結果がYesである場合には、さらに、隣接中継装置通知フレーム送信処理(ステップSA160)を実行する。この隣接中継装置通知フレーム送信処理では、スイッチングエンジン部520は、前述した隣接中継装置通知フレームを生成し、ルータ60に送信(ユニキャスト)する。
【0036】
一方、ステップSA100の判定結果が“Yes”である場合(すなわち、受信フレームが自装置宛の問い合せフレームである場合)に実行される通信ポート通知フレーム送信処理では、スイッチングエンジン部520は、問い合せフレームのペイロード部に書き込まれている探索対象識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該探索対象識別子の示すMACアドレスに対応付けてMACアドレステーブルに格納されているポート識別子を特定する。そして、スイッチングエンジン部520は、当該ポート識別子を接続先ポート識別子としてペイロード部に書き込んだ通信ポート通知フレームを生成し、問い合せフレームの送信元に返信(ユニキャスト)する。前述したように、MACアドレステーブルへのポート識別子およびMACアドレスの書き込みは、フレームの転送制御に伴って行われる。LAN1Aに通信端末40が接続されると、当該通信端末40はデフォルトゲートウェイであるルータ60のMACアドレスを特定するためのARPフレームを必ずマルチキャスト(或いは、ブロードキャスト)する。このため、通信端末40のMACアドレスは各スイッチングハブ50のMACアドレステーブルに必ず登録されている。したがって、通信端末40が探索対象として指定される限り、この通信ポート通知フレーム送信処理では、探索対象識別子に対応する通信ポートが必ず特定されるのである。
以上がスイッチングハブ50の構成である。
【0037】
<A−1−2:ルータ60の構成>
図5は、ルータ60の構成を示すブロック図である。図5に示すように、ルータ60は、通信I/F部610、ルーティングエンジン部620および記憶部630を有している。通信I/F部610は、スイッチングハブ50の通信I/F部510と同様に複数のポートを有しており、各ポートには固有のポート識別子が割り当てられている。これら複数のポートのうちの3つに、IP網(図1では図示略)、スイッチングハブ50Aおよび操作端末30が各々接続される。通信I/F部610は、通信I/F部510と同様、各通信ポートを介して受信したフレームをルーティングエンジン部620に与える一方、ルーティングエンジン部620から与えられるフレームを同ルーティングエンジン部620によって指示された通信ポートから送出する。
【0038】
記憶部630も、スイッチングハブ50の記憶部530と同様に、RAMなどの揮発性メモリとEPROMなどの不揮発性メモリを含んでいる(図示略)。この不揮発性メモリにはファームウェアが格納されている。本実施形態では、このファームウェアにしたがってルーティングエンジン部620を作動させることによって本実施形態の特徴を顕著に示すルータ60の機能が実現される。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部620によって利用されるとともに、受信したフレーム(或いは、パケット)を一時的に蓄積しておくためのバッファの役割を果たす。また、当該揮発性メモリには、図5に示すルーティングテーブル、当該ルータ60についてのMACアドレステーブルおよび隣接中継装置テーブルの各テーブルが格納される。
【0039】
ルーティングエンジン部620は、スイッチングハブ50のスイッチングエンジン部520と同様、CPU(Central Processing Unit)である。ルーティングエンジン部620は、記憶部630に記憶されているファームウェアを実行し、ルータ60の制御中枢として機能する。ルーティングエンジン部620は上記ファームウェアにしたがって、DHCPサーバ処理、DNSサーバ処理、パケット転送制御処理、マルチキャスト処理、隣接中継装置情報記憶処理、および端末探索処理、を実行する。
【0040】
記憶部630に記憶されているファームウェアにしたがってルーティングエンジン部620が実行する6つの処理のうち、DHCPサーバ処理、DNSサーバ処理、およびパケット転送制御処理の3つについては従来のものと特段に変るところはない。すなわち、DHCPサーバ処理とはDHCPサーバ機能を実現する処理であり、DNSサーバ処理とはDNSサーバ機能を実現する処理である。そして、パケット転送制御処理は、通信I/F部610を介して受信したパケットの送信先IPアドレスとルーティングテーブルの格納内容とに基づいて当該パケットの転送を行う処理である。
【0041】
マルチキャスト処理は、ルータ60の配下のネットワーク(すなわち、LAN1A)に向けて要求フレームをマルチキャストする処理である。詳細については後述するが、本実施形態では、このマルチキャスト処理はルータ60の電源(図示略)投入後、所定時間T(例えば、3秒)が経過する毎に周期的に実行される。
【0042】
隣接中継装置情報記憶処理は隣接中継装置通知フレームを受信する度に実行される処理である。この隣接中継装置情報記憶処理では、ルーティングエンジン部620は、隣接中継装置通知フレームを受信した通信ポートのポート識別子に対応付けて自装置の隣接中継装置テーブルに記憶されている接続先識別子を当該隣接中継装置通知フレームの転送元識別子で上書きするとともに、当該隣接中継装置通知フレームのペイロード部に書き込まれている隣接中継装置情報を当該フレームの送信元の隣接中継装置テーブルとして当該フレームの送信元MACアドレスと対応付けて記憶部630に書き込む(既に、書き込み済みであれば、新たな隣接中継装置情報で上書きする)。このようにして記憶部630に格納される各スイッチングハブ50の隣接中継装置テーブルは、後述する端末探索処理にて利用される。
【0043】
図6は、端末探索処理の流れを示すフローチャートである。
この端末探索処理は、操作端末30に対する操作によって探索対象端末を指定されたことを契機として実行される処理であり、LAN1Aに含まれる中継装置(すなわち、ルータ60およびスイッチングハブ50)の何れに探索対象端末が接続されているのかを特定する処理である。図6に示すように、ルーティングエンジン部620は、まず、自装置の隣接中継装置テーブルの格納内容と隣接中継装置情報記憶処理により記憶部630に書き込んだ各スイッチングハブ50の隣接中継装置テーブルの格納内容とが表す各中継装置の接続関係に矛盾があるか否かを判定する(ステップSB100)。ここで、各中継装置の接続関係に矛盾があるとは、例えばスイッチングハブ50Bの隣接中継装置テーブルにはスイッチングハブ50AのMACアドレスが格納されているものの、スイッチングハブ50Aの隣接中継装置テーブルにはスイッチングハブ50BのMACアドレスが格納されていないような状態をいう。
【0044】
ステップSB100の判定結果が“Yes”である場合(すなわち、矛盾がある場合)には、ルーティングエンジン部620は、端末探索を可能とするための準備中である旨のメッセージを操作端末30に報知(ステップSB170)させて、当該端末探索処理の実行を終了する。逆に、ステップSB100の判定結果が“No”である場合には、ルーティングエンジン部620は、図6のステップSB110以降の処理を実行する。このように、各中継装置の接続関係に矛盾がある場合にステップSB110以降の処理を実行しないようにしたのは、上記矛盾に起因する探索対象端末の接続先の誤判断を回避するためである。この点については本実施形態の動作例において詳細に説明する。
【0045】
ステップSB100の判定結果が“No”である場合に後続して実行されるステップSB110では、ルーティングエンジン部620は、探索対象端末に対応する通信ポートが有るか否かを、自装置のMACアドレステーブルの格納内容に基づいて判定する。前述したように、探索対象端末の指定の仕方としては、当該端末のMACアドレスにより指定する態様や、IPアドレスにより指定する態様、ホスト名により指定する態様がある。探索対象端末がMACアドレスによって指定された場合には、当該MACアドレスに対応付けてMACアドレステーブルにポート識別子が格納されている通信ポートが有るか否かによって、当該探索対象端末に対応する通信ポートの有無を判定すれば良い。また、探索対象端末がIPアドレスによって指定された場合には、前述したDHCPサーバ機能によって当該IPアドレスをMACアドレスに変換し、当該MACアドレスに対応付けてMACアドレステーブルにポート識別子が格納されている通信ポートが有るか否かを判定すれば良い。同様に、探索対象端末がホスト名によって指定された場合には、当該ホスト名をDNSサーバ機能によってIPアドレスに変換し、さらに当該IPアドレスをDHCPサーバ機能によってMACアドレスに変換した後に、MACアドレステーブルの格納内容を参照して該当する通信ポートの有無を判定するようにすれば良い。
【0046】
ステップSB110の判定結果が“No”であれば、ルーティングエンジン部620は、探索対象端末は配下のネットワークには収容されていない旨のメッセージを操作端末30に報知させて(ステップSB180)、本端末探索処理を終了する。逆に、ステップSB110の判定結果が“Yes”である場合には、ルーティングエンジン部620は、該当通信ポートのポート識別子を候補ポート識別子として選択するとともに、自装置を探索対象端末の接続先の候補(以下、候補中継装置)として選択する(ステップSB120)。そして、ルーティングエンジン部620は、候補ポート識別子を検索キーとして当該候補中継装置の隣接中継装置テーブルを検索し(ステップSB130)、探索対象端末が当該候補中継装置に接続されているか否かを判定する(ステップSB140)。より詳細に説明すると、ルーティングエンジン部620は、候補ポート識別子と同一のポート識別子に対応付けて候補中継装置の隣接中継装置テーブルに格納されている接続先識別子がNULLであれば探索対象端末は当該候補中継装置に接続されていると判定する。
【0047】
ステップSB140の判定結果が“Yes”である場合(すなわち、探索対象端末は候補中継装置に接続されていると判定した場合)には、ルーティングエンジン部620は、探索対象端末は候補中継装置に接続されている旨を操作端末30に報知(ステップSB190)させて、本端末探索処理を終了する。これに対して、ステップSB140の判定結果が“No”である場合には、ルーティングエンジン部620は、当該接続先識別子の示す中継装置を新たな候補中継装置として選択し直し、当該新たな候補中継装置へ宛てて問い合せフレームを送信する(ステップSB150)。そして、ルーティングエンジン部620は、上記新たな候補中継装置から返信されてくる通信ポート通知フレームのペイロード部に書き込まれている接続先ポート識別子で候補ポート識別子を更新し(ステップSB160)、ステップSB130以降の処理を繰り返し実行する。
以上がルータ60の構成である。
【0048】
<A−2:動作>
以下、ルータ60と各スイッチングハブ50とが8つの通信ポートを有し、図7に示すように相互に接続されている場合を例にとって本実施形態の動作を説明する。図7では、通信ポートを黒塗りの丸印で示し、当該通信ポートのポート番号を#付の数字で表記した。図7に示すように、ルータ60のポート番号=1の通信ポートにはスイッチングハブ50Aが接続されており、スイッチングハブ50Aから見ればルータ60はスイッチングハブ50Aのポート番号=8の通信ポートに接続されている。
【0049】
図7に示すように、スイッチングハブ50Aのポート番号=7の通信ポートにはスイッチングハブ50Bが接続されており、スイッチングハブ50Bから見ればスイッチングハブ50Aはスイッチングハブ50Bのポート番号=5の通信ポートに接続されている。スイッチングハブ50Bのポート番号=4の通信ポートにはスイッチングハブ50Cが接続されており、同ポート番号=6の通信ポートにはスイッチングハブ50Dが接続されている。スイッチングハブ50Cから見れば、スイッチングハブ50Bはポート番号=3の通信ポートに接続されており、スイッチングハブ50Dから見れば、スイッチングハブ50Bはポート番号=2の通信ポートに接続されている。そして、通信端末40Aはスイッチングハブ50Cのポート番号=7の通信ポートに接続されており、通信端末40Bはスイッチングハブ50Dのポート番号=8の通信ポートに接続されている。また、以下に説明する動作の開始時点では、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの接続先識別子はNULLクリアされている。
【0050】
<A−2−1:隣接中継装置情報収集動作>
前述したように、本実施形態のLAN1Aでは、ルータ60および各スイッチングハブ50のMACアドレステーブルおよび隣接中継装置テーブルの格納内容に基づいて探索対象端末の接続先の特定が行われる。このため、探索対象端末の接続先の特定に先立って、隣接中継装置テーブルに各々の隣接中継装置のMACアドレスを格納し、さらに各スイッチングハブ50の隣接中継装置テーブルの格納内容をルータ60に通知しておく必要がある。本実施形態では、ルータ60および各スイッチングハブ50に以下に説明する動作を実行させることで、各々の隣接中継装置テーブルへの隣接中継装置のMACアドレスの格納、およびルータ60への各スイッチングハブ50の隣接中継装置テーブルの格納内容の通知が実現される。
【0051】
ルータ60のルーティングエンジン部620は、ルータ60の電源(図示略)投入後、所定時間Tが経過した時刻T0において要求フレームをマルチキャストする。このようにしてルータ60からマルチキャストされる要求フレームは、まず、スイッチングハブ50Aによって受信される。スイッチングハブ50Aのスイッチングエンジン部520は、ポート番号=8の通信ポートを介して上記要求フレームを受信し、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。その理由は以下の通りである。本動作例においてスイッチングハブ50Aがルータ60から受信するフレームは要求フレームであり、そのペイロード部のフレーム種別識別子には当該フレームが要求フレームであることを示す値がセットされている。このため、図3のステップSA100の判定結果は“No”になり、同ステップSA120の判定結果は“Yes”になり、同ステップSA150の判定結果も“Yes”になる。したがって、図3のステップSA130、SA140、SA160およびSA170の処理が実行されるのである。
【0052】
ステップSA130の処理が実行されるため、ポート番号=8に対応づけてスイッチングハブ50Aの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、ルータ60のMACアドレス)によって書き換えられる。また、当該受信フレームの転送元識別子はステップSA140の処理によってスイッチングハブ50AのMACアドレスに書き換えられる。ステップSA160では、ステップSA130の処理による更新後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームがスイッチングハブ50Aからルータ60にユニキャストされる。そして、ステップSA170では、ステップSA140の処理によって転送元識別子の書き換えが行われた要求フレームのフラッディングが行われる。前述したように、要求フレームの送信先MACアドレスはマルチキャストアドレスだからである。このようにしてフラッディングされた要求フレームは、スイッチングハブ50Bによって受信される。
【0053】
スイッチングハブ50Bのスイッチングエンジン部520も同様に、スイッチングハブ50Aから転送された要求フレームを受信すると、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。より詳細に説明すると、スイッチングハブ50Bのスイッチングエンジン部520は、自装置の隣接中継装置テーブルにおいてポート番号=5に対応する接続先識別子を、スイッチングハブ50Aから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50AのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。加えて、スイッチングハブ50Bのスイッチングエンジン部520は、転送元識別子をスイッチングハブ50BのMACアドレスに書き換えた要求フレームのフラッディングを行う。このようにしてフラッディングされた要求フレームはスイッチングハブ50Cおよび50Dによって各々受信される。
【0054】
スイッチングハブ50C(或いは50D)のスイッチングエンジン部520も同様に、スイッチングハブ50Bから転送された要求フレームを受信すると、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。より詳細に説明すると、スイッチングハブ50Cは、スイッチングハブ50Bによって転送された要求フレームを受信すると、自装置の隣接中継装置テーブルにおいてポート番号=3に対応する接続先識別子を、スイッチングハブ50Bから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。
【0055】
同様に、スイッチングハブ50Dも、隣接中継装置テーブルにおいてポート番号=2に対応する接続先識別子を、スイッチングハブ50BのMACアドレスによって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。なお、スイッチングハブ50Cおよび50Dは、転送元識別子を自装置のMACアドレスに書き換えた要求フレームをフラッディングする処理も行う。しかし、スイッチングハブ50Cおよび50Dよりも下流側にスイッチングハブは接続されていないため、以降、これら要求フレームの転送が行われることはない。
【0056】
以上説明したように、ルータ60からマルチキャストされた要求フレームの転送制御を行う過程でスイッチングハブ50A、50B、50C、および50Dの各々の隣接中継装置テーブルの格納内容は図8に示す状態となり、これら各隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームが各スイッチングハブ50からルータ60にユニキャストされる。なお、図8では、各スイッチングハブ50の隣接中継装置テーブルの格納内容が吹き出しで示されている(図9についても同様)。
【0057】
次いで、隣接中継装置通知フレームの転送制御に伴って行われる隣接中継装置テーブルの更新について説明する。スイッチングハブ50Bのスイッチングエンジン部520は、スイッチングハブ50Cからルータ60へユニキャストされた隣接中継装置通知フレームを、ポート番号=4の通信ポートを介して受信すると、図3のステップSA130、SA140、およびSA170の処理を実行する。本動作例においてスイッチングハブ50Bがスイッチングハブ50Cから受信するフレームは隣接中継装置通知フレームであり、そのペイロード部のフレーム種別識別子には当該フレームが隣接中継装置通知フレームであることを示す値がセットされている。このため、当該フレームを受信したときにスイッチングエンジン部520が実行する処理(図3のフローチャートに示す処理)では、ステップSA100の判定結果は“No”になる一方、同ステップSA120の判定結果は“Yes”になり、同ステップSA150の判定結果は“No”になる。したがって、図3のステップSA130、SA140、およびSA170の処理が実行されるのである。
【0058】
ステップSA130の処理が実行されるため、ポート番号=4に対応付けてスイッチングハブ50Bの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50CのMACアドレス)によって書き換えられ、当該受信フレームの転送元識別子はステップSA140の処理によってスイッチングハブ50BのMACアドレスに書き換えられる。そして、ステップSA170では、ステップSA140の処理によって転送元識別子の書き換えが行われた隣接中継装置通知フレームがポート番号=5の通信ポートを介して送出される。スイッチングハブ50Dからルータ60へユニキャストされた隣接中継装置通知フレームを受信した場合についても同様に、スイッチングハブ50Bのスイッチングエンジン部520は、図3のステップSA130、SA140、およびSA170の処理を実行する。その結果、スイッチングハブ50Bの隣接中継装置テーブルにおいてポート番号=6に対応する接続先識別子は受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50DのMACアドレス)によって書き換えられ、当該受信フレームは転送元識別子の書き換えを経た後に、ポート番号=5の通信ポートを介して送出される。
【0059】
スイッチングハブ50Aのスイッチングエンジン部520は、スイッチングハブ50Bから送信された隣接中継装置通知フレーム(或いは、スイッチングハブ50Bによって転送された隣接中継装置通知フレーム)を受信すると、同様に、図3のステップSA130、SA140、およびSA170の処理を実行する。スイッチングハブ50Aは、隣接中継装置テーブルにおいてポート番号=7に対応する接続先識別子を、スイッチングハブ50Bから受信した隣接中継装置通知フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該隣接中継装置通知フレームの転送元識別子を自装置のMACアドレスに書き換えてルータ60に転送する。ルータ60は、スイッチングハブ50Aから転送された隣接中継装置通知フレームをポート番号=1の通信ポートを介して受信すると、自装置の隣接中継装置テーブルにおいて当該ポート番号に対応する接続先識別子を当該フレームに付与されている転送元識別子で書き換える。
【0060】
以上説明したように、他のスイッチングハブ50からルータ60へ送信された隣接中継装置通知フレームの転送制御を行う過程で、スイッチングハブ50Aおよび50Bの各々の隣接中継装置テーブルの格納内容は図8に示す状態から図9に示す状態へと更新される。
【0061】
ここで注目すべき点は、以上に説明した動作において、ルータ60が各スイッチングハブ50から受信する隣接中継装置通知フレームに書き込まれている隣接中継装置情報は、図9に示す隣接中継装置テーブルの格納内容ではなく、図8に示す隣接中継装置テーブルの格納内容に対応しているという点である。図9に示すルータ60の隣接中継装置テーブルの格納内容と図8に示す各スイッチングハブ50の隣接中継装置テーブルの格納内容とでは、ルータ60とスイッチングハブ50Aとの接続関係のみが矛盾なく表されており、他の接続関係には矛盾が生じている。例えば、スイッチングハブ50Aの隣接中継装置テーブルにはスイッチングハブ50BのMACアドレスは格納されていないにもかかわらず、スイッチングハブ50Bの隣接中継装置テーブルにはスイッチングハブ50AのMACアドレスが格納されている、といった具合である。このため、図8に示す状態の各スイッチングハブ50の隣接中継装置テーブルを記憶部630に格納した時点でルータ60に対して探索対象の通信端末が指示されても、前述したステップSB100の判定結果は“Yes”となり、準備中である旨の報知のみが為される。
【0062】
そして、時刻T0からさらに所定時間Tが経過すると、ルーティングエンジン部620は、要求フレームをマルチキャストし、各スイッチングハブ50は上記と同様の処理を実行する。時刻T0+Tにおいてルータ60から送信された要求フレームに対する応答として各スイッチングハブ50が返信する隣接中継装置通知フレームの各々には、図9に示す隣接中継装置テーブルの格納内容に対応する隣接中継装置情報が書き込まれている。このため、時刻T0+Tにおいてマルチキャストした要求フレーム(すなわち、時刻T0におけるマルチキャストを1回目とすれば、2回目のマルチキャスト)に対する隣接中継装置通知フレームを受信した時点でルータ60の記憶部630に格納される隣接中継装置テーブル(ルータ60の隣接中継装置テーブルおよび各スイッチングハブ50の隣接中継装置テーブル)は、ルータ60と各スイッチングハブ50の接続関係を矛盾なく表すものとなる。この状態において、探索対象端末が指示されると、ステップSB100の判定結果は“No”となり、ルーティングエンジン部620は、ステップSB110以降の処理を実行する。
【0063】
<A−2−2:通信端末探索動作>
次いで、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの格納内容が図9に示す状態となっている状況下で通信端末40Aの探索を行う場合を例にとって、この探索過程においてルータ60およびスイッチングハブ50が実行する動作を説明する。なお、以下に説明する動作の開始時点では、ルータ60のMACアドレス解決のために通信端末40Aから送信されたARPパケットの転送制御によって、ルータ60およびスイッチングハブ50の各々のMACアドレステーブルの格納内容は、図10に示すようになっている。
【0064】
図10に示すように、ルータ60のMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=1が格納されている。スイッチングハブ50AのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている。スイッチングハブ50BのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=4が格納されている。スイッチングハブ50CのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている。そして、スイッチングハブ50DのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=2が格納されている。
【0065】
ルーティングエンジン部620は、操作端末30を介して探索対象端末(すなわち、通信端末40A)を指定されると、記憶部630に格納されている各スイッチングハブ50の隣接中継装置テーブルの格納内容と自装置の隣接中継装置テーブルの格納内容とが表す接続関係に矛盾があるか否かを判定する(ステップSB100)。前述したように、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの格納内容が図9に示す状態となっていれば、これら隣接中継装置テーブルの表す接続関係に矛盾はない。したがって、ステップSB100の判定結果は“No”となり、ステップSB110以降の処理が実行される。図10に示すように、ルータ60のMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=1が格納されている。このため、ステップSB110の判定結果は“Yes”になり、ルーティングエンジン部620は、ステップSB120以降の処理を実行する。このステップSB120では、ルーティングエンジン部620は、候補ポート識別子としてポート番号=1を選択し、さらに自装置を候補中継装置として選択する。そして、ステップSB130では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、ルータ60の隣接中継装置テーブル)を検索し、候補ポート識別子に対応する接続先識別子を取得する。
【0066】
図9を参照すれば明らかなように、通信端末40Aの探索開始時点では、ルータ60の隣接中継装置テーブルには候補ポート識別子(ポート番号=1)に対応付けてスイッチングハブ50AのMACアドレスが格納されている。このため、ステップSB140の判定結果は“No”となり、ルーティングエンジン部620は、スイッチングハブ50Aを候補中継装置として選択し直して問い合せフレームを送信する(ステップSB150)。つまり、本動作例では、図11に示すように、ルータ60からスイッチングハブ50Aへ宛てて問い合せフレームQ010が送信される。この問い合せフレームQ010のペイロード部には、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。
【0067】
スイッチングハブ50Aのスイッチングエンジン部520は、問い合せフレームQ010を受信すると、通信ポート通知フレーム送信処理(図3:ステップSA110)を実行する。スイッチングハブ50AのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている(図10参照)。このため、スイッチングハブ50Aのスイッチングエンジン部520は、図11に示すように、接続先ポート識別子としてポート番号=7を書き込んだ通信ポート通知フレームR010をルータ60に返信する。
【0068】
ルーティングエンジン部620は、通信ポート通知フレームR010を受信すると、当該通信ポート通知フレームのペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=7)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。この時点の候補中継装置はスイッチングハブ50Aであるため、本動作例において2度目に実行するステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Aの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=7)に対応する接続先識別子を取得する。
【0069】
図9を参照すれば明らかなように、スイッチングハブ50Aの隣接中継装置テーブルには候補ポート識別子(ポート番号=7)に対応付けてスイッチングハブ50BのMACアドレスが格納されている。このため、本動作例において2度目に実行されるステップSB140の判定結果も“No”となり、ルーティングエンジン部620は、スイッチングハブ50Bを候補中継装置として選択し直して問い合せフレームQ020を送信する(図11参照)。仮に、スイッチングハブ50Aの隣接中継装置テーブルとして図9のものではなく、図8のものがルータ60の記憶部630に格納されていたとすれば、図8のスイッチングハブ50Aの隣接中継装置テーブルにおいて、候補ポート識別子(ポート番号=7)に対応付けられている接続先識別子はNULLであり、ステップSB140の判定結果は“Yes”となって、探索対象端末はスイッチングハブ50Aに接続されている旨の報知が為される。しかし、この報知内容が誤りであることは、図1を参照すれば明らかである。ステップSB100の判定は、このような誤判断の発生を回避するために行われるのである。なお、本実施形態では、上記のような誤判断の発生を回避するために、ステップSB100の判定をルーティングエンジン部620に行わせたが、要求フレームのマルチキャストの間隔が充分に短く、要求フレームのマルチキャストが2回行われることに先立って通信端末の探索が行われることがほとんど無い場合、或いは、通信端末の探索を何度か繰り返し行ううちに正しい結果が得られれば充分な場合には、ステップSB100の判定およびその判定結果がYesである場合の報知処理(ステップSB170)を省略しても良い。
【0070】
この問い合せフレームQ020のペイロード部には、問い合せフレームQ010と同様に、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。スイッチングハブ50Bにおいては、前述したスイッチングハブ50Aと同様の処理が実行される。より詳細に説明すると、スイッチングハブ50BのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=4が格納されている(図10参照)。このため、図11に示すように、スイッチングハブ50Bからルータ60へ宛てて、接続先ポート識別子としてポート番号=4をペイロード部に書き込んだ通信ポート通知フレームR020が送信される。ルーティングエンジン部620は、スイッチングハブ50Bから返信された通信ポート通知フレームR020を受信すると、通信ポート通知フレームR010を受信した場合と同様に、通信ポート通知フレームR020のペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=4)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。本動作例において3度目に実行されるステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Bの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=4)に対応する接続先識別子を取得する。
【0071】
図9を参照すれば明らかなように、スイッチングハブ50Bの隣接中継装置テーブルには候補ポート識別子(ポート番号=4)に対応付けてスイッチングハブ50CのMACアドレスが格納されている。このため、本動作例において3度目に実行されるステップSB140の判定結果も“No”となり、ルーティングエンジン部620は、スイッチングハブ50Cを候補中継装置として選択し直して問い合せフレームQ030を送信する(図11参照)。この問い合せフレームQ030のペイロード部には、問い合せフレームQ010およびQ020と同様に、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。
【0072】
スイッチングハブ50Cにおいても、前述したスイッチングハブ50Aおよび50Bと同様の処理が実行される。より詳細に説明すると、スイッチングハブ50CのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている(図10参照)。このため、図11に示すように、スイッチングハブ50Cからルータ60へ宛てて、接続先ポート識別子としてポート番号=7をペイロード部に書き込んだ通信ポート通知フレームR030が送信される。ルーティングエンジン部620は、スイッチングハブ50Cから返信された通信ポート通知フレームR030を受信すると、通信ポート通知フレームR010やR020を受信した場合と同様に、通信ポート通知フレームR030のペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=7)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。本動作例において4度目に実行されるステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Cの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=7)に対応する接続先識別子を取得する。
【0073】
図9を参照すれば明らかなように、スイッチングハブ50Cの隣接中継装置テーブルにおいて候補ポート識別子(ポート番号=7)に対応付けられている接続先識別子はNULLである。このため、本動作例において4度目に実行されるステップSB140の判定結果は“Yes”となり、ルーティングエンジン部620は、探索対象端末(すなわち、通信端末40A)はスイッチングハブ50Cに接続されている旨の報知を行う(図6:ステップSB190)。この報知によってLAN1Aの運用管理者は、探索対象端末(通信端末40A)がスイッチングハブ50Cに接続されているということを把握するのである。
【0074】
以上説明したように、本実施形態によれば、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しを行うことなく、ルータ60の配下のネットワーク(すなわち、LAN1A)に収容される通信端末の探索を行うことが可能になる。このように、本実施形態では、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しは行われないのであるから、ルータ60の配下のネットワークに過剰な負荷がかかることはない。
【0075】
<B:第2実施形態>
図12は、本発明の第2実施形態のLAN1Bの構成例を示すブロック図である。
図12と図1とを対比すれば明らかように、LAN1Bはスイッチングハブ50Bに換えてスイッチングハブ500を有する点と、このスイッチングハブ500に通信端末40Cが接続されている点が、LAN1Aと異なる。スイッチングハブ500は、従来のスイッチングハブであって、受信したフレームの送信先MACアドレスに基づくフレームの転送制御(すなわち、図3のステップSA170の処理)のみを実行する点がスイッチングハブ50と異なる。通信端末40Cは、通信端末40Aや通信端末40Bと同様に一般的なパーソナルコンピュータである。
【0076】
LAN1Bにおいては、スイッチングハブ50Aからスイッチングハブ500に転送された要求フレームは転送元識別子を書き換えられることなく、スイッチングハブ50Cおよび50Dに転送される。このため、スイッチングハブ50Cおよび50Dの各々の隣接中継装置テーブルには、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けて、スイッチングハブ50AのMACアドレスが書き込まれる。
【0077】
スイッチングハブ50Cおよび50Dの各々からルータ60へ返信される隣接中継装置通知フレームについても同様に、転送元識別子を書き換えられることなくスイッチングハブ500によってスイッチングハブ50Aに転送される。スイッチングハブ50Aのスイッチング制御部520は、スイッチングハブ50Cおよび50Dの各々から送信された隣接中継装置通知フレームを、スイッチングハブ500が接続されている通信ポートを介して受信し、これら隣接中継装置通知フレームを受信する度に隣接中継装置テーブルの格納内容を更新する。つまり、スイッチングハブ50Cおよび50Dの各々から送信される隣接中継装置通知フレームのうち先に受信したものに応じて行われた更新の内容は後から受信したものに応じて行われた更新の内容によって上書きされる。
【0078】
このため、例えば、ルータ60から1回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうち前者が先にスイッチングハブ50Aに到達する場合には、2回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する隣接中継装置通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子にはスイッチングハブ50DのMACアドレスのみが対応付けられている。一方、ルータ60がスイッチングハブ50Cから受信する隣接中継装置情報においては、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けてスイッチングハブ50AのMACアドレスが対応付けられている。つまり、スイッチングハブ50Aとスイッチングハブ50Cとの接続関係に矛盾が生じる。
【0079】
これに対して、ルータ60から1回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうちの後者が先にスイッチングハブ50Aに到達する場合には、2回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する隣接中継装置通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子にはスイッチングハブ50CのMACアドレスのみが対応付けられている。一方、ルータ60がスイッチングハブ50Dから受信する隣接中継装置情報においては、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けてスイッチングハブ50AのMACアドレスが対応付けられている。つまり、スイッチングハブ50Aとスイッチングハブ50Dとの接続関係に矛盾が生じる。このように、スイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうち何れが先にルータ60に到達したとしても、スイッチングハブ50Aとスイッチングハブ50C(或いは50D)との接続関係に矛盾が生じる。このため、図6のステップSB100の判定結果は常にYesとなり、通信端末の探索を行うことはできないのである。
【0080】
もっとも、図6のステップSB100の判定を行わないようにすれば、通信端末40Aまたは通信端末40Bの何れか一方の接続先を特定することは可能である。例えば、スイッチングハブ50Cから送信された隣接中継装置通知フレームの方がスイッチングハブ50Dから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Bの探索を行うことは可能であるが、通信端末40Aの接続先を正確に特定することはできない。その理由は以下の通りである。
【0081】
スイッチングハブ50AのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてスイッチングハブ500が接続されている通信ポートのポート識別子が格納されている。通信端末40Aから送信されたARPフレームはスイッチングハブ500によるフラッディングを経てスイッチングハブ50Aに到達するからである。このため、ルータ60がスイッチングハブ50Aに探索対象識別子として通信端末40AのMACアドレスを書き込んだ問い合せフレームを送信すると、スイッチングハブ50Aは、スイッチングハブ500が接続されている通信ポートのポート識別子を接続先ポート識別子として書き込んだ通信ポート通知フレームをルータ60に返信する。一方、スイッチングハブ50Aの隣接中継装置テーブルには、前述したように、上記ポート識別子に対応付けてスイッチングハブ50DのMACアドレスが格納されている。このため、ルータ60はスイッチングハブ50Dに探索対象識別子として通信端末40AのMACアドレスを書き込んだ問い合せフレームを送信する。
【0082】
スイッチングハブ50DのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてスイッチングハブ500が接続されている通信ポートのポート識別子が格納されている。前述したように、通信端末40Aから送信されたARPフレームはスイッチングハブ500によるフラッディングを経てスイッチングハブ50Dに到達するからである。このため、スイッチングハブ50Dは、スイッチングハブ500が接続されている通信ポートのポート識別子のポート識別子を接続先ポート識別子として書き込んだ通信ポート通知フレームをルータ60に返信する。スイッチングハブ50Dの隣接中継装置テーブルには、当該ポート識別子に対応付けてスイッチングハブ50AのMACアドレスが格納されているが、スイッチングハブ50Aには既に問い合せフレームを送信済みであり、再度、スイッチングハブ50Aに問い合せフレームを送信したとしても、堂々巡りになるだけである。このように、既に問い合せフレームを送信済みのスイッチングハブ50に対して再度同一の問い合せフレームを送信することとなった場合には、この時点で通信端末の探索を打ち切り、探索対象の通信端末は当該スイッチングハブ50に接続されていると判定することも考えられる。しかし、当該探索対象の通信端末の接続先が正確に特定されていないことは言うまでもない。これが、スイッチングハブ50Cから送信された隣接中継装置通知フレームの方がスイッチングハブ50Dから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Aの接続先を正確に特定することができない理由である。同様の理由により、スイッチングハブ50Dから送信された隣接中継装置通知フレームの方がスイッチングハブ50Cから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Bの接続先を正確に特定することはできない。同様に、スイッチングハブ500に接続されている通信端末40Cの探索を行うこともできない。
【0083】
このように、ルータ60の配下のネットワークに従来のスイッチングハブが含まれている場合には、従来のスイッチングハブに接続されている通信端末を探索することはできないものの、スイッチングハブ50に接続されている通信端末の探索についてはその探索を全く行えないという訳ではない。また、上述したような堂々巡りが発生した場合には、その発生を根拠に、その発生箇所に1乃至複数台の従来のスイッチングハブが存在している可能性があると類推することもできる。
【0084】
ルータ60の配下のネットワークに含まれるスイッチングハブの全てが従来のものであれば、当該ネットワークに収容される通信端末の探索を全く行えないことは言うまでもないが、LAN1Bを構成する複数のスイッチングハブのなかに本発明に係るスイッチングハブ50が少なくとも1台含まれていれば、当該スイッチングハブ50に接続されている通信端末の探索を行うことはできる。なお、本実施形態においても、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しは行われないのであるから、ルータ60の配下のネットワークに過剰な負荷がかかることはない。
【0085】
<C:変形>
以上、本発明の第1および第2実施形態について説明したが、これら各実施形態に以下に述べる変形を加えても勿論良い。
(1)上述した各実施形態では、要求フレームのマルチキャストを所定時間間隔で周期的にルータ60に実行させる一方、スイッチングハブ50には、要求フレームの受信を契機として隣接中継装置通知フレームをルータ60に返信させた。しかし、周期的なマルチキャストに加えて(或いは、周期的なマルチキャストに換えて)、予め定められた所定種類のパケットの受信を契機としてルータ60に要求フレームをマルチキャストさせても良い。
【0086】
例えば、自装置のMACアドレス解決のためにARPパケットを受信したことを契機としてルータ60に要求フレームを送信させるのである。新たにARPパケットを受信したということは、ルータ60の配下のネットワークに新たな通信端末が接続されたことを意味する。このように新たな通信端末が追加接続される場合には、既存のスイッチングハブ50に対して新たなスイッチングハブ50を接続し、当該新たなスイッチングハブ50に当該新たな通信端末が接続される場合もある。新たなARPパケットの受信を契機としてルータ60に要求フレームを送信させるようにすれば、新たな通信端末の接続に伴って新たなスイッチングハブ50が追加されるような場合であっても、迅速に当該新たな通信端末の探索を行うことが可能になる。なお、上記各実施形態のように、ルータ60がDHCPサーバの役割を兼ねている場合には、IPアドレスの割り当てを要求する旨のパケットを配下の通信端末から受信したことを契機として要求フレームをマルチキャストさせても良い。
【0087】
(2)上述した各実施形態では、要求フレームの受信を契機としてスイッチングハブ50に隣接中継装置通知フレームを送信させた。しかし、所定時間間隔で周期的に隣接中継装置通知フレームをスイッチングハブ50に送信させるようにしても良い。このように、隣接中継装置通知フレームを周期的にスイッチングハブ50に送信させる態様においては、ルータ60から要求フレームをマルチキャストする必要はなく、ルータ60から配下のLANに向けてマルチキャストするフレームのうちの予め定められた一部のものに転送元識別子を付与してマルチキャストさせるようにすれば良い。各スイッチングハブ50に上流側(ルータ60に近い側)の隣接中継装置のMACアドレスを隣接中継装置テーブルに格納させるためである。
【0088】
(3)上述した各実施形態では、新たな候補中継装置の選択をルータ60に行わせたが、スイッチングハブ50に行わせることも可能である。具体的には、問い合せフレームを受信した場合に、スイッチングエンジン部520に以下の処理を行わせるのである。すなわち、スイッチングエンジン部520は、問い合せフレームのペイロード部に書き込まれている探索対象識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該探索対象識別子に対応付けてMACアドレステーブルに格納されているポート識別子を取得する。次いで、スイッチングエンジン部520は、上記ポート識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該ポート識別子に対応する接続先識別子を取得する。そして、スイッチングエンジン部520は、この接続先識別子をペイロード部に書き込んだ通信ポート通知フレームをルータ60にユニキャストするのである。そして、ルータ60には、上記通信ポート通知フレームのペイロード部に書き込まれている接続先識別子がNULLであれば、探索対象端末は当該通信ポート通知フレームの送信元のスイッチングハブ50に接続されていると判定してその旨を報知する処理を実行させ、逆に上記接続先識別子がNULL以外の値であれば、当該接続先識別子の示すスイッチングハブ50を新たな候補中継装置として問い合せフレームを送信する処理を実行させるのである。このような態様においては、各スイッチングハブ50の隣接中継装置テーブルをルータ60に記憶させておくことは必須ではない。しかし、各スイッチングハブ50の隣接中継装置テーブルの格納内容が相互に矛盾しているか否かをルーティングエンジン部620に判定させる(すなわち、通信端末の探索が可能であるか否かを判定させる)ために、各スイッチングハブ50の隣接中継装置テーブルをルータ60に記憶させるようにしても勿論良い。ただし、このような態様では、スイッチングハブ50における処理負荷が隣接中継装置テーブルの検索を行う分だけ上記各実施形態に比較して高くなるため、スイッチングハブ50として充分に処理能力の高いものを用いる必要があることは言うまでもない。
【0089】
(4)上述した各実施形態では、要求フレームを受信するたびに隣接中継装置情報をペイロード部に書き込んだ隣接中継装置通知フレームを各スイッチングハブ50に返信させた。しかし、N(自然数)回目の要求フレームの受信からN+1回目の要求フレームの受信までの間に隣接中継装置テーブルの格納内容に変化がない場合には、当該N+1回目に受信した要求フレームに対して応答する際に、隣接中継装置情報に換えて隣接中継装置情報に変化がないことを示すデータをペイロード部に書き込んだ隣接中継装置通知フレームを返信させるようにしても良い。なお、隣接中継装置情報に変化がないことを示すデータがペイロード部に書き込まれた隣接中継装置通知フレームを受信した場合には、ルーティングエンジン部620に隣接中継装置情報の上書き更新を行わせる必要がないことは言うまでも無い。
【0090】
(5)上述した各実施形態では、ルータ60がDHCPサーバ機能とDNSサーバ機能とを有していた。しかし、ルータ60の配下のネットワーク内に当該ルータ60とは別個のDHCPサーバおよびDNSサーバが設けられており、ルータ60からこれらサーバに対してアクセス可能な態様であれば、ルータ60がDHCPサーバ機能およびDNSサーバ機能を有する必要はない。つまり、本発明のルータにとってDHCPサーバ機能とDNSサーバ機能は必須ではない。また、上述した各実施形態では、ルータ60が有するDHCPサーバ機能によって動的に各通信端末40にIPアドレスを割り振ったが、各通信端末40にIPアドレスを固定的に割り振っておいても勿論良い。各通信端末40にIPアドレスが固定的に割り振られ、かつ固定的に割り振られたIPアドレスによって探索対象端末が指定される場合であっても、ARPを利用することで、当該IPアドレスから同通信端末のMACアドレスを求めることは可能だからである。また、上述した各実施形態では、第2層において各通信装置を一意に識別するためのハードウェア識別子としてMACアドレスを用いたが、MACアドレスとは異なる新たなハードウェア識別子を定義し、当該識別子を用いるようにしても良い。
【0091】
(6)上述した各実施形態では、本発明のスイッチングハブの特徴を顕著に示すフレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理をソフトウェアにより実現した。しかし、フレーム転送制御処理を実行するフレーム転送制御手段、隣接中継装置通知フレーム送信処理を実行する隣接中継装置通知手段、および通信ポート通知フレーム送信処理を実行する通信ポート通知手段の各々を電子回路などのハードウェアで構成し、スイッチングエンジン部520に換えてこれら各手段を組み込んでスイッチングハブ50を構成しても勿論良い。ルータ60についても、同様に、マルチキャスト処理、隣接中継装置記憶処理、および端末探索処理の各処理を電子回路などのハードウェアによって実現しても勿論良い。
【0092】
(7)上述した各実施形態では、フレームのペイロード部に書き込まれているフレーム種別識別子に基づいて(或いは、ヘッダ部の種別識別子とペイロード部のフレーム種別識別子とに基づいて)、当該フレームが隣接中継装置情報収集用のものであるか否かを判定したが、転送元識別子が付与されているか否かによって当該判定を行っても良い。例えば、第2層における既存の通信プロトコルにしたがって送受信されるフレームを利用して隣接中継装置情報を収集する際には、フレーム種別識別子に基づいて(或いは、ヘッダ部の種別識別子とペイロード部のフレーム種別識別子とに基づいて)上記判定を行うことはできないからである。なお、既存の通信プロトコルにしたがって送受信されるフレームを利用する態様においては、当該フレームのヘッダ部の空き領域に転送元識別子(或いは転送元識別子と隣接中継装置情報)を書き込むようにすれば良い。
【符号の説明】
【0093】
1A,1B…LAN、30…操作端末、40A,40B,40C…通信端末、50A,50B,50C,50D,500…スイッチングハブ、60…ルータ、510,610…通信I/F部、520…スイッチングエンジン部、530,630…記憶部、620…ルーティングエンジン部。
【技術分野】
【0001】
この発明は、LAN(Local Area Network)の運用管理を支援する技術に関する。
【背景技術】
【0002】
近年、企業等においては、支店などの各拠点にLAN(以下、拠点内LAN)を敷設し、これら拠点内LANをルータによってインターネットなどのIP(Internet Protocol)網に接続して企業内情報システムを構築することが一般に行われている。このような拠点内LANは複数のスイッチングハブをカスケード接続して構成されることが多く、各ユーザ(例えば、企業の従業者)の使用する通信端末はそれらスイッチングハブの何れかに接続される。ここで、ルータとは、OSI(Open Systems Interconnection)参照モデルにおける第3層(ネットワーク層)の通信プロトコルにしたがってパケット(第3層におけるデータの送受信単位)の転送制御を行う中継装置である。また、スイッチングハブとは、OSI参照モデルにおける第2層(データリンク層)の通信プロトコルにしたがってフレーム(第2層におけるデータの送受信単位)の転送制御を行う中継装置であり、L2スイッチとも呼ばれる。
【0003】
企業内情報システム(或いは、その構成要素の通信システムである各拠点内LAN)の運用管理や保守を行う際には、各通信端末が何れのスイッチングハブに接続されているのかを把握することができると便利である。このため、各通信端末が何れのスイッチングハブに接続されているのかを把握すること(以下、通信端末の探索)を可能にする技術が種々提案されている。例えば、特許文献1には、LANに含まれる各スイッチングハブ間でMAC(Media Access Control)アドレステーブルの受け渡しを行い、それらMACアドレステーブルの格納内容を参照して通信端末の探索を行う技術が開示されている。ここで、MACアドレスとは、OSI参照モデルの第2層において各通信装置を一意に識別するハードウェア識別子である。また、MACアドレステーブルとは、スイッチングハブやルータなどの中継装置が備えるテーブルであり、これら中継装置が受信したフレームの送信元MACアドレスに対応付けて当該フレームを受信した通信ポートのポート識別子を格納するためのものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−171502号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、大規模なLANほど、多数の通信端末およびスイッチングハブを含み、各スイッチングハブの接続関係も複雑であることが多い。このため、LANが大規模化するほど、通信端末の探索に対する重要性は高まる。しかし、特許文献1に開示された技術には、LANが大規模化するほど適用が困難になる、といった不具合がある。何故ならば、LANが大規模化して当該LANに含まれるスイッチングハブの数が増えるほど、スイッチングハブ間のMACアドレステーブルの受け渡しによる負荷が高くなり、LANを介して行われる本来のデータ通信(例えば、LANに収容される通信端末間のデータ通信)に悪影響をおよぼす可能性が高くなるからである。
【0006】
本発明は上記課題に鑑みて為されたものであり、ルータ配下のネットワークに過剰な負荷をかけることなく、当該ネットワークに収容される通信端末が何れのスイッチングハブに接続されているのかを把握することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、(B)前記ルータは、前記第1および第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する第1の手段と、探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第2の手段と、前記第2の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の手段と、前記第2の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第3の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の手段と、前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して、当該スイッチングハブにおいて前記探索対象の通信端末に対応する通信ポートを問い合せる第5の手段と、前記第5の手段による問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブから前記第1の手段によって取得した第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直し、前記第5の手段による処理を繰り返す第6の手段と、を有し、(C)前記第1および第2のテーブルを有するスイッチングハブは、自装置の前記第2のテーブルの格納内容を前記ルータへ通知する第7の手段と、前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定して返信する第8の手段、を有することを特徴とする通信システム、を提供する。
【0008】
本発明によれば、ルータから探索対象の通信端末へ至る通信経路のスイッチングハブの各々について当該探索対象端末の接続有無の判定が当該ルータによって行われ、これによって通信端末の接続先のスイッチングハブが特定される。本発明においては、ルータおよびスイッチングハブ間でMACアドレステーブルの受け渡しが行われることはなく、ルータ配下のネットワークに過剰な負荷がかかることはない。
【0009】
より好ましい態様においては、前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はIPアドレスであり、前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCP(Dynamic Host Configuration Protocol)サーバ手段を有しており、前記第2の手段は、探索対象の通信端末のIPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定することを特徴とする。また、別の好ましい態様においては、前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はホスト名であり、前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCPサーバ手段と、当該通信端末のホスト名とIPアドレスとの相互変換を行うDNS(Domain Name System)サーバ手段と、を有しており、前記第2の手段は、探索対象の通信端末のホスト名を前記DNSサーバ手段によってIPアドレスに変換し、さらに、当該IPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定することを特徴とする。
【0010】
これらの態様によれば、IPアドレスまたはホスト名を指定して通信端末を探索することが可能になる。一般に、IPアドレスはMACアドレスに比較して人が理解し易く、ホスト名はIPアドレスよりもさらに人が理解し易い。上記の態様によれば、MACアドレスよりも理解し易いIPアドレスまたはホスト名によって探索対象の通信端末を指定することができるため、利便性が向上する、といった効果が得られる。
【0011】
また、上記課題を解決するために本発明は、(A)複数の通信ポートを備えた通信インタフェース部と、(B)当該ルータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、(D)当該ルータの配下のネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する記憶手段と、(E)探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを前記第1のテーブルの格納内容から特定する第1の処理と、前記第1の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該ルータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の処理と、前記第1の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第2の処理によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の処理と、前記第3の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第4の処理と、前記第4の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、前記記憶手段に記憶されている当該スイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第4の処理を繰り返す第5の処理と、を実行する端末探索手段とを有することを特徴とするルータ、を提供する。
【0012】
このようなルータと、上記第1および第2のテーブルを備えかつ上記第7および第8の手段を有するスイッチングハブと、を組み合わせて、前述した通信システムを構成することができるからである。また、本発明の別の態様としては、コンピュータに上記第1〜第5の処理を実行させることを特徴とするプログラムを提供する態様も考えられる。そして、このようなプログラムの具体的な提供態様としては、CD−ROM(Compact Disk-Read Only Memory)などのコンピュータ読み取り可能な記録媒体に書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【0013】
また、上記課題を解決するために本発明は、(A)複数の通信ポートを備えた通信インタフェース部と、(B)当該スイッチングハブへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、(D)前記第2のテーブルの格納内容を当該スイッチングハブを含むネットワークと他のネットワークとを接続するルータに通知する通知手段と、(E)前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段とを有することを特徴とするスイッチングハブを提供する。このようなスイッチングハブを上記ルータと組み合わせることで、前述した通信システムを構築することができるからである。なお、コンピュータを上記第1および第2のテーブルを記憶する記憶手段、隣接中継装置通知手段および通信ポート通知手段として機能させることを特徴とするプログラムを提供する態様も勿論考えられる。
【図面の簡単な説明】
【0014】
【図1】本発明の第1実施形態のLAN1Aの構成例を示す図である。
【図2】同LAN1Aに含まれるスイッチングハブ50の構成例を示す図である。
【図3】同スイッチングハブ50のスイッチングエンジン部520が実行するフレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理を説明するための図である。
【図4】同LAN1Aにおいて送受信されるフレームのデータ構造を示す図である。
【図5】同LAN1AをIP網に接続するルータ60の構成例を示す図である。
【図6】同ルータ60のルーティングエンジン部620が実行する端末探索処理の流れを示すフローチャートである。
【図7】同LAN1Aにおける通信端末40、スイッチングハブ50およびルータ60の各々の通信ポートの接続関係の一例を示す図である。
【図8】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図9】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図10】スイッチングハブ50およびルータ60のMACアドレステーブルの格納内容の一例を示す図である。
【図11】通信端末の探索過程における通信シーケンスの一例を示す図である。
【図12】本発明の第2実施形態のLAN1Bの構成例を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しつつ、この発明の実施形態について説明する。
<A:第1実施形態>
<A−1:構成>
図1は、本発明の第1実施形態の通信システムであるLAN1Aの構成例を示す図である。このLAN1Aは、例えば企業の支店に敷設される拠点内LANであり、ルータ60によってインターネットなどのIP網(図示省略)に接続される。このLAN1Aは、上記支店内における通信システムの役割を果たす一方、他の支店に敷設される拠点内LANとともに上記企業における企業内情報システムを構成する。図1に示すように、LAN1Aは、4台のスイッチングハブ(スイッチングハブ50A、50B、50C、および50D)と、2台の通信端末(通信端末40Aおよび40B)と、1台の操作端末30と、を含んでいる。図1に示すように、ルータ60にはスイッチングハブ50Aと操作端末30とが接続されており、スイッチングハブ50Aにはスイッチングハブ50Bが接続されている。そして、スイッチングハブ50Bにはスイッチングハブ50Cと50Dとが接続されており、スイッチングハブ50Cには通信端末40Aが、スイッチングハブ50Dには通信端末40Bが各々接続されている。
【0016】
操作端末30、通信端末40Aおよび40Bの各々は、例えばパーソナルコンピュータである。操作端末30はLAN1Aの運用管理のための各種操作をLAN1Aの運用管理者に行わせるためのものである。通信端末40Aおよび40Bは、LAN1Aに含まれる何れかのスイッチングハブに接続されることで、当該LAN1Aに収容される。LAN1Aに収容された通信端末40Aおよび40Bの各々は、他の通信装置(例えば、LAN1Aに収容されている他の通信端末や他の拠点内LANに収容されている通信端末、或いはIP網に接続されているWWWサーバなど)との間でIPにしたがったパケット通信を行う。以下、通信端末40Aおよび40Bの各々を区別する必要がない場合には、「通信端末40」と表記する。なお、図1ではルータ60の配下のネットワーク(すなわち、LAN1A)に2台の通信端末40が収容される場合について例示されているが、3台以上の通信端末40がLAN1Aに収容されても良く、また、通信端末40が1台だけ収容されている態様であっても勿論良い。
【0017】
図1のスイッチングハブ50A、50B、50Cおよび50Dの各々は同一の構成を有している。以下では、これら4台のスイッチングハブの各々を区別する必要がない場合には、「スイッチングハブ50」と表記する。スイッチングハブ50は、IPよりも下位のプロトコル階層である第2層(データリンク層)においてデータ通信を中継する中継装置である。ルータ60は、ネットワーク層においてデータ通信を中継する中継装置であり、LAN1Aのデフォルトゲートウェイの役割を果たす。ルータ60は、IP網から受信したパケットの送信先IPアドレスが通信端末40Aまたは40Bの何れかのものであれば、そのパケットを配下のLAN1Aへと転送し、その送信先IPアドレスが通信端末40Aまたは40Bの何れのものでもない場合にはルーティングテーブルの格納内容にしたがって他のルータへ転送する。このようにルータ60はLAN1Aのデフォルトゲートウェイとして機能するため、以下ではLAN1Aのことを「ルータ60の配下のネットワーク」と呼ぶ場合がある。加えて、図1のルータ60は、DHCPサーバ機能とDNSサーバ機能とを有している。このDHCPサーバ機能によって、ルータ60は、操作端末30或いは通信端末40のLAN1Aへの接続を契機としてこれら各端末にIPアドレスを割り当て、当該IPアドレスと各端末のMACアドレスとの相互変換を行う。また、ルータ60は、DNSサーバ機能によって、操作端末30或いは通信端末40に付与されたホスト名とIPアドレスとの相互変換を行う。
【0018】
図1に示すLAN1Aにおいては、第2層の通信プロトコルにしたがったデータ通信(すなわち、フレームの送受信および転送制御)の実行過程において、LAN1Aに含まれる各中継装置(すなわち、ルータ60およびスイッチングハブ50)に、隣接中継装置を検出させる。ここで、隣接中継装置とは、当該中継装置に対してフレームの転送を行った他の中継装置のことであり、LAN1Aにおいては当該中継装置に直結されている他の中継装置のことである。例えば、LAN1Aにおいては、ルータ60についての隣接中継装置はスイッチングハブ50Aであり、スイッチングハブ50Aについての隣接中継装置はルータ60およびスイッチングハブ50Bである。また、スイッチングハブ50Bについての隣接中継装置はスイッチングハブ50A、50Cおよび50Dであり、スイッチングハブ50C(或いは50D)についての隣接中継装置はスイッチングハブ50Bである。
【0019】
図1に示すLAN1Aにおいては、スイッチングハブ50の各々は、自装置の隣接中継装置を検出し、その検出結果をルータ60へ通知する一方、ルータ60は、各スイッチングハブ50の隣接中継装置を示す情報をスイッチングハブ50毎に記憶する。そして、LN1Aにおいては、運用管理者によって、接続先の特定を所望する端末(本実施形態では、通信端末40Aまたは通信端末40B:以下、探索対象端末)のMACアドレス、IPアドレス或いはホスト名が操作端末30を介してルータ60に指示されると、ルータ60は各スイッチングハブ50と通信して当該探索対象端末の接続先を特定し、その特定結果を操作端末30に報知させる。これにより、上記運用管理者は、探索対象端末が何れのスイッチングハブ50に接続されているのかを把握することができるのである。このように本実施形態では、探索対象端末をIPアドレスやホスト名で指定することができるため、MACアドレスのみでしか探索対象端末を指定できない態様に比較して利便性が向上するのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ50およびルータ60を中心に説明する。
【0020】
<A−1−1:スイッチングハブ50の構成>
図2は、スイッチングハブ50の構成を示すブロック図である。図2に示すように、スイッチングハブ50は、通信インタフェース(以下、I/F)部510、スイッチングエンジン部520、および記憶部530を有している。
【0021】
通信I/F部510は、複数の通信ポートを有している。これら複数の通信ポートの各々には、例えば100BASE−Tなどの通信ケーブルを介して他の通信装置(本実施形態では、ルータ60や他のスイッチングハブ50、或いは通信端末40の何れか)が接続される。これら複数の通信ポートの各々には、通信ポート毎に固有のポート識別子(例えば、ポート番号)が予め割り当てられており、当該ポート識別子を用いて各通信ポートを一意に識別することができる。通信I/F部510は、各通信ポートを介して受信したフレームをスイッチングエンジン部520に与える一方、スイッチングエンジン部520から与えられるフレームを同スイッチングエンジン部520によって指示された通信ポートから送出する。
【0022】
記憶部530は、例えばRAM(Random Access Memory)などの揮発性メモリとEPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリとを含んでいる(図2では、何れも図示略)。この不揮発性メモリには、本発明のスイッチングハブの特徴を顕著に示す処理をスイッチングエンジン部520に実行させるためのファームウェア(プログラム)が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部520によって利用される。また、上記揮発性メモリは、通信I/F部510によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たし、さらに、この揮発性メモリには、図2のMACアドレステーブルと同図2の隣接中継装置テーブルとが格納される。
【0023】
図2のMACアドレステーブルは、従来のスイッチングハブが有するものと特段に変るところはない。このMACアドレステーブルには、通信I/F部510によって受信したフレームの送信元MACアドレスに対応付けて当該フレームを受信した通信ポートのポート識別子が格納される。MACアドレステーブルへのMACアドレスおよびポート識別子の書き込みは、フレーム転送制御に伴って行われる。例えば、ルータ60のMACアドレス解決のために通信端末40から送信されたフレーム(ペイロード部にARP(Address Resolution Protocol)パケットが書き込まれたフレーム)の転送過程では、当該フレームの送信元MACアドレス(すなわち、通信端末40のMACアドレス)と当該フレームの受信ポートのポート識別子とを対応付けてMACアドレステーブルに書き込む処理が行われる。一方、当該フレームに対する応答フレームの転送過程では、当該フレームの送信元MACアドレス(すなわち、ルータ60のMACアドレス)と当該フレームの受信ポートのポート識別子とを対応付けてMACアドレステーブルに書き込む処理が行われる。このMACアドレステーブルの格納内容は、送信先MACアドレスに基づくフレームの転送制御を行う際に利用される。
【0024】
隣接中継装置テーブルには、通信I/F部510が有する複数の通信ポートの各々のポート識別子に対応付けて接続先識別子が格納される。ここで、接続先識別子とは、当該接続先識別子を対応付けられている通信ポートの接続先が隣接中継装置であるか否かを示すとともに、当該接続先が隣接中継装置である場合には当該隣接中継装置を一意に示す情報である。前述したように隣接中継装置とは、当該スイッチングハブ50に対してフレームの転送を行った他の中継装置(本実施形態では、ルータ60或いは他のスイッチングハブ50)のことである。本実施形態では、隣接中継装置に接続されている通信ポートのポート識別子には接続先識別子として当該隣接中継装置のMACアドレスが対応付けられ、隣接中継装置以外の他の通信装置(本実施形態では、通信端末40)が接続さている通信ポート、或いは他の通信装置に接続されていない通信ポートには接続先識別子としてNULL(0x00)が対応付けられる。
【0025】
この隣接中継装置テーブルは、スイッチングハブ50の電源(図示略)が投入されたことを契機として、各接続先識別子をNULLとした状態で生成される。そして、予め定められた特定のフレームの中継を行うことに伴って、当該テーブルの格納内容の更新(すなわち、隣接中継装置が接続されている通信ポートのポート識別子に対応する接続先識別子を当該隣接中継装置のMACアドレスに書き換えること)が行われる。詳細については後述するが、本実施形態では、上記特定のフレームとして、隣接中継装置テーブルの格納内容をルータ60に通知するために各スイッチングハブ50が送信する隣接中継装置通知フレームと、当該隣接中継装置通知フレームの送信を要求するためにルータ60が配下のLAN1A内にマルチキャストする要求フレームの2種類が予め定められている。
【0026】
スイッチングエンジン部520は、例えばCPU(Central Processing Unit)である。スイッチングエンジン部520は、記憶部530に記憶されているファームウェアを実行することで、スイッチングハブ50の制御中枢として機能する。このファームウェアにしたがって作動しているスイッチングエンジン部520は、何れかの通信ポートを介してフレームを受信するたびに図3のフローチャートに示す処理を実行する。図3に示すように、上記ファームウェアにしたがってスイッチングエンジン部520が実行する処理としては、フレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理の3つが挙げられる。以下、これら3つの処理の処理内容の詳細な説明に先立って、LAN1Aにおいて送受信されるフレームのデータ構造について説明しておく。
【0027】
図4(A)は、LAN1Aにおいて送受信される一般的なフレームのデータ構造を示す図である。図4(A)に示すように、フレームは、ヘッダ部と、ペイロード部とを有している。ヘッダ部には、送信先MACアドレス、送信元MACアドレス、種別識別子が格納される。例えば、前述した要求フレームの場合は、送信先MACアドレスにはマルチキャストアドレスがセットされ、送信元MACアドレスにはルータ60のMACアドレスがセットされる。要求フレームはルータ60から配下のLAN1Aに向けてマルチキャストされるからである。また、隣接中継装置通知フレームの場合は、送信先MACアドレスにはルータ60のMACアドレスがセットされ、送信元MACアドレスにはその送信元のスイッチングハブ50のMACアドレスがセットされる。前述したように、隣接中継装置通知フレームは、スイッチングハブ50からルータ60へユニキャストされるからである。
【0028】
種別識別子とは、ペイロード部に格納されているデータ(パケット)の種類等を示す識別子である。本実施形態にてスイッチングハブ50とルータ60との間で送受信されるフレームのうち、本実施形態の特徴を顕著に示すものとしては、要求フレームおよび隣接中継装置通知フレームの他に、問い合せフレームと通信ポート通知フレームとが挙げられる。ここで、問い合せフレームとは、探索対象として指定された通信端末に対応する通信ポートのポート識別子をスイッチングハブ50に問い合せるためにルータ60がユニキャストするフレームであり、通信ポート通知フレームとは当該問い合せフレームに対する応答としてスイッチングハブ50がルータ60に返信(ユニキャスト)するフレームである。これら本実施形態の特徴を顕著に示す4種類のフレームのヘッダ部には、これら4種類のフレームを他のフレームと識別するための値(0xe812)がセットされる。なお、以下では、上記4種類のフレームのうち、要求フレームと隣接中継装置通知フレームとを「隣接中継装置情報収集用フレーム」と総称する場合がある。
【0029】
図4(B)は、要求フレームのペイロード部のデータ構造を示す図である。図4(B)に示すように、要求フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および転送元識別子が書き込まれる。要求フレームのペイロード部に書き込まれる送信先MACアドレスおよび送信元MACアドレスは、同要求フレームのヘッダ部に書き込まれているものと同一である。フレーム種別識別子とは、当該フレームが前述した4種類のフレームの何れであるかを示す識別子である。フレーム種別識別子には上記4種類のフレーム毎に異なる値がセットされる。要求フレームのペイロード部のフレーム種別識別子には、要求フレームであることを示す値がセットされる。転送元識別子には、要求フレームの送信の際にはその送信元のMACアドレスがセットされ、スイッチングハブ50によって当該フレームの転送が行われるたびに当該転送を行ったスイッチングハブ50のMACアドレスに書き換えられる。
【0030】
図4(C)は、隣接中継装置通知フレームのペイロード部のデータ構造を示す図である。図4(C)に示すように、隣接中継装置通知フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および転送元識別子の他に、隣接中継装置情報が書き込まれる。隣接中継装置通知フレームのペイロード部のフレーム種別識別子には、当該フレームが隣接中継装置通知フレームであることを明示する値がセットされる。また、同ペイロード部の隣接中継装置情報には、当該隣接中継装置通知フレームの送信時点における当該隣接中継装置通知フレームの送信元のスイッチングハブ50の隣接中継装置テーブルの格納内容(すなわち、当該スイッチングハブ50の全ての通信ポートについてのポート識別子と当該ポート識別子に対応する接続先識別子のリスト)が書き込まれる。なお、隣接中継装置通知フレームのペイロード部に書き込まれる送信先MACアドレス、送信元MACアドレスおよび転送元識別子については要求フレームにおけるものと同様である。
【0031】
図4(D)は、問い合せフレームのペイロード部のデータ構造を示す図である。図4(D)に示すように、問い合せフレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および探索対象識別子が書き込まれる。問い合せフレームのペイロード部のフレーム種別識別子には、当該フレームが問い合せフレームであることを明示する値がセットされる。探索対象識別子とは、探索対象として指定された通信端末を一意に識別する識別子(本実施形態では、当該通信端末のMACアドレス)である。図4(E)は、通信ポート通知フレームのペイロード部のデータ構造を示す図である。図4(E)に示すように、通信ポート通知フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子、および接続先ポート識別子が書き込まれる。通信ポート通知フレームのペイロード部のフレーム種別識別子には、当該フレームが通信ポート通知フレームであることを明示する値がセットされる。前述したように、通信ポート通知フレームは問い合せフレームを受信したスイッチングハブ50が当該問い合せフレームに対する応答として返信するフレームであり、当該スイッチングハブのMACアドレステーブルにおいて上記探索対象識別子に対応付けられているポート識別子が上記接続先ポート識別子として書き込まれる。これら問い合せフレームおよび通信ポート通知フレームのペイロード部に書き込まれる送信先MACアドレスおよび送信元MACアドレスについても、要求フレーム(或いは隣接中継装置通知フレーム)におけるものと同様、各々のヘッダ部に書き込まれていたものと同一である。
以上がLAN1Aにおいて送受信されるフレームのデータ構造である。
【0032】
次いで、図3を参照しつつ、フレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理の処理内容を説明する。図3に示すように、スイッチングエンジン部520は、通信I/F部510の何れかの通信ポートを介してフレームを受信すると、当該受信フレームが自装置へ宛ててルータ60から送信された問い合せフレームであるか否かを、当該受信フレームのヘッダ部の送信先MACアドレスおよび同ペイロード部のフレーム種別識別子を参照して判定する(ステップSA100)。すなわち、送信先MACアドレスが自装置のMACアドレスであり、かつフレーム種別識別子が問い合せフレームであることを示す値である場合に上記ステップSA100の判定結果は“Yes”となる。そして、スイッチングエンジン部520は、ステップSA100の判定結果が“Yes”である場合には、通信ポート通知フレーム送信処理(ステップSA110)を実行し、逆に、ステップSA100の判定結果が“No”である場合には、図3に示すように、フレーム転送制御処理を実行する。なお、受信フレームが前述した4種類のフレームの何れかであるか否か(すなわち、受信フレームのヘッダ部の種別識別子が0xe812であるか否か)の判定をステップSA100に先立って行い、その判定結果が“No”である場合(すなわち、受信フレームの種別識別子が0xe812ではない場合)には、SA170の処理を実行し、逆に、当該判定の判定結果が“Yes”である場合(すなわち、受信フレームの種別識別子が0xe812である場合)に上記ステップSA100の判定を行うようにしても勿論良い。
【0033】
図3に示すように、フレーム転送制御処理は、その送信先MACアドレスに基づく転送制御(ステップSA170)を含んでいる。ここで、受信フレームの送信先MACアドレスに基づく転送制御とは、当該送信先MACアドレスがユニキャストアドレスではない場合、または当該送信先MACアドレスがMACアドレステーブルに格納されていないユニキャストアドレスである場合には、当該受信フレームのフラッディングを行う一方、当該送信先MACアドレスがMACアドレステーブルに格納されたユニキャストアドレスである場合には、当該MACアドレスに対応付けてMACアドレステーブルに格納されているポート識別子の示す通信ポートのみから当該受信フレームを送出することである。ここでユニキャストアドレスではないMACアドレスとしては、マルチキャストアドレスまたはブロードキャストアドレスが挙げられる。また、フラッディングとは、受信フレームを受信した通信ポート以外の全ての通信ポートから当該受信フレームを送出することである。この送信先MACアドレスに基づく転送制御については従来のスイッチングハブにおけるものと特段に変るところはない。換言すれば、従来のスイッチングハブでは、フレーム転送制御処理として上記送信先MACアドレスに基づく転送制御(ステップSA170の処理)のみが実行されるのである。
【0034】
本実施形態のフレーム転送制御処理は、ステップSA170の処理の他に、ステップSA120〜SA140の処理を含んでいる。図3に示すように、本実施形態のフレーム転送制御処理では、スイッチングエンジン部520は、まず、受信フレームが隣接中継装置情報収集用フレーム(すなわち、要求フレーム或いは隣接中継装置通知フレーム)であるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定する(ステップSA120)。具体的には、スイッチングエンジン部520は、受信フレームのフレーム種別識別子が要求フレームを示す値または隣接中継装置通知フレームを示す値である場合には、当該受信フレームは隣接中継装置情報収集用フレームであると判定する。そして、スイッチングエンジン部520は、ステップSA120の判定結果が“No”である場合には、前述したステップSA170の処理を実行して本フレーム転送制御処理を終了し、逆に、ステップSA120の判定結果が“Yes”である場合には、ステップSA130以降の処理を実行する。
【0035】
ステップSA120の判定結果が“Yes”である場合に実行されるステップSA130では、スイッチングエンジン部520は、隣接中継装置情報収集用フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を、当該フレームのペイロード部に書き込まれている転送元識別子によって書き換える。次いで、スイッチングエンジン部520は、受信した隣接中継装置情報収集用フレームの転送元識別子を自装置のMACアドレスに書き換える(ステップSA140)。次いで、スイッチングエンジン部520は、図3に示すように、受信フレームが要求フレームであるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定し(ステップSA150)、その判定結果がYesである場合には、さらに、隣接中継装置通知フレーム送信処理(ステップSA160)を実行する。この隣接中継装置通知フレーム送信処理では、スイッチングエンジン部520は、前述した隣接中継装置通知フレームを生成し、ルータ60に送信(ユニキャスト)する。
【0036】
一方、ステップSA100の判定結果が“Yes”である場合(すなわち、受信フレームが自装置宛の問い合せフレームである場合)に実行される通信ポート通知フレーム送信処理では、スイッチングエンジン部520は、問い合せフレームのペイロード部に書き込まれている探索対象識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該探索対象識別子の示すMACアドレスに対応付けてMACアドレステーブルに格納されているポート識別子を特定する。そして、スイッチングエンジン部520は、当該ポート識別子を接続先ポート識別子としてペイロード部に書き込んだ通信ポート通知フレームを生成し、問い合せフレームの送信元に返信(ユニキャスト)する。前述したように、MACアドレステーブルへのポート識別子およびMACアドレスの書き込みは、フレームの転送制御に伴って行われる。LAN1Aに通信端末40が接続されると、当該通信端末40はデフォルトゲートウェイであるルータ60のMACアドレスを特定するためのARPフレームを必ずマルチキャスト(或いは、ブロードキャスト)する。このため、通信端末40のMACアドレスは各スイッチングハブ50のMACアドレステーブルに必ず登録されている。したがって、通信端末40が探索対象として指定される限り、この通信ポート通知フレーム送信処理では、探索対象識別子に対応する通信ポートが必ず特定されるのである。
以上がスイッチングハブ50の構成である。
【0037】
<A−1−2:ルータ60の構成>
図5は、ルータ60の構成を示すブロック図である。図5に示すように、ルータ60は、通信I/F部610、ルーティングエンジン部620および記憶部630を有している。通信I/F部610は、スイッチングハブ50の通信I/F部510と同様に複数のポートを有しており、各ポートには固有のポート識別子が割り当てられている。これら複数のポートのうちの3つに、IP網(図1では図示略)、スイッチングハブ50Aおよび操作端末30が各々接続される。通信I/F部610は、通信I/F部510と同様、各通信ポートを介して受信したフレームをルーティングエンジン部620に与える一方、ルーティングエンジン部620から与えられるフレームを同ルーティングエンジン部620によって指示された通信ポートから送出する。
【0038】
記憶部630も、スイッチングハブ50の記憶部530と同様に、RAMなどの揮発性メモリとEPROMなどの不揮発性メモリを含んでいる(図示略)。この不揮発性メモリにはファームウェアが格納されている。本実施形態では、このファームウェアにしたがってルーティングエンジン部620を作動させることによって本実施形態の特徴を顕著に示すルータ60の機能が実現される。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部620によって利用されるとともに、受信したフレーム(或いは、パケット)を一時的に蓄積しておくためのバッファの役割を果たす。また、当該揮発性メモリには、図5に示すルーティングテーブル、当該ルータ60についてのMACアドレステーブルおよび隣接中継装置テーブルの各テーブルが格納される。
【0039】
ルーティングエンジン部620は、スイッチングハブ50のスイッチングエンジン部520と同様、CPU(Central Processing Unit)である。ルーティングエンジン部620は、記憶部630に記憶されているファームウェアを実行し、ルータ60の制御中枢として機能する。ルーティングエンジン部620は上記ファームウェアにしたがって、DHCPサーバ処理、DNSサーバ処理、パケット転送制御処理、マルチキャスト処理、隣接中継装置情報記憶処理、および端末探索処理、を実行する。
【0040】
記憶部630に記憶されているファームウェアにしたがってルーティングエンジン部620が実行する6つの処理のうち、DHCPサーバ処理、DNSサーバ処理、およびパケット転送制御処理の3つについては従来のものと特段に変るところはない。すなわち、DHCPサーバ処理とはDHCPサーバ機能を実現する処理であり、DNSサーバ処理とはDNSサーバ機能を実現する処理である。そして、パケット転送制御処理は、通信I/F部610を介して受信したパケットの送信先IPアドレスとルーティングテーブルの格納内容とに基づいて当該パケットの転送を行う処理である。
【0041】
マルチキャスト処理は、ルータ60の配下のネットワーク(すなわち、LAN1A)に向けて要求フレームをマルチキャストする処理である。詳細については後述するが、本実施形態では、このマルチキャスト処理はルータ60の電源(図示略)投入後、所定時間T(例えば、3秒)が経過する毎に周期的に実行される。
【0042】
隣接中継装置情報記憶処理は隣接中継装置通知フレームを受信する度に実行される処理である。この隣接中継装置情報記憶処理では、ルーティングエンジン部620は、隣接中継装置通知フレームを受信した通信ポートのポート識別子に対応付けて自装置の隣接中継装置テーブルに記憶されている接続先識別子を当該隣接中継装置通知フレームの転送元識別子で上書きするとともに、当該隣接中継装置通知フレームのペイロード部に書き込まれている隣接中継装置情報を当該フレームの送信元の隣接中継装置テーブルとして当該フレームの送信元MACアドレスと対応付けて記憶部630に書き込む(既に、書き込み済みであれば、新たな隣接中継装置情報で上書きする)。このようにして記憶部630に格納される各スイッチングハブ50の隣接中継装置テーブルは、後述する端末探索処理にて利用される。
【0043】
図6は、端末探索処理の流れを示すフローチャートである。
この端末探索処理は、操作端末30に対する操作によって探索対象端末を指定されたことを契機として実行される処理であり、LAN1Aに含まれる中継装置(すなわち、ルータ60およびスイッチングハブ50)の何れに探索対象端末が接続されているのかを特定する処理である。図6に示すように、ルーティングエンジン部620は、まず、自装置の隣接中継装置テーブルの格納内容と隣接中継装置情報記憶処理により記憶部630に書き込んだ各スイッチングハブ50の隣接中継装置テーブルの格納内容とが表す各中継装置の接続関係に矛盾があるか否かを判定する(ステップSB100)。ここで、各中継装置の接続関係に矛盾があるとは、例えばスイッチングハブ50Bの隣接中継装置テーブルにはスイッチングハブ50AのMACアドレスが格納されているものの、スイッチングハブ50Aの隣接中継装置テーブルにはスイッチングハブ50BのMACアドレスが格納されていないような状態をいう。
【0044】
ステップSB100の判定結果が“Yes”である場合(すなわち、矛盾がある場合)には、ルーティングエンジン部620は、端末探索を可能とするための準備中である旨のメッセージを操作端末30に報知(ステップSB170)させて、当該端末探索処理の実行を終了する。逆に、ステップSB100の判定結果が“No”である場合には、ルーティングエンジン部620は、図6のステップSB110以降の処理を実行する。このように、各中継装置の接続関係に矛盾がある場合にステップSB110以降の処理を実行しないようにしたのは、上記矛盾に起因する探索対象端末の接続先の誤判断を回避するためである。この点については本実施形態の動作例において詳細に説明する。
【0045】
ステップSB100の判定結果が“No”である場合に後続して実行されるステップSB110では、ルーティングエンジン部620は、探索対象端末に対応する通信ポートが有るか否かを、自装置のMACアドレステーブルの格納内容に基づいて判定する。前述したように、探索対象端末の指定の仕方としては、当該端末のMACアドレスにより指定する態様や、IPアドレスにより指定する態様、ホスト名により指定する態様がある。探索対象端末がMACアドレスによって指定された場合には、当該MACアドレスに対応付けてMACアドレステーブルにポート識別子が格納されている通信ポートが有るか否かによって、当該探索対象端末に対応する通信ポートの有無を判定すれば良い。また、探索対象端末がIPアドレスによって指定された場合には、前述したDHCPサーバ機能によって当該IPアドレスをMACアドレスに変換し、当該MACアドレスに対応付けてMACアドレステーブルにポート識別子が格納されている通信ポートが有るか否かを判定すれば良い。同様に、探索対象端末がホスト名によって指定された場合には、当該ホスト名をDNSサーバ機能によってIPアドレスに変換し、さらに当該IPアドレスをDHCPサーバ機能によってMACアドレスに変換した後に、MACアドレステーブルの格納内容を参照して該当する通信ポートの有無を判定するようにすれば良い。
【0046】
ステップSB110の判定結果が“No”であれば、ルーティングエンジン部620は、探索対象端末は配下のネットワークには収容されていない旨のメッセージを操作端末30に報知させて(ステップSB180)、本端末探索処理を終了する。逆に、ステップSB110の判定結果が“Yes”である場合には、ルーティングエンジン部620は、該当通信ポートのポート識別子を候補ポート識別子として選択するとともに、自装置を探索対象端末の接続先の候補(以下、候補中継装置)として選択する(ステップSB120)。そして、ルーティングエンジン部620は、候補ポート識別子を検索キーとして当該候補中継装置の隣接中継装置テーブルを検索し(ステップSB130)、探索対象端末が当該候補中継装置に接続されているか否かを判定する(ステップSB140)。より詳細に説明すると、ルーティングエンジン部620は、候補ポート識別子と同一のポート識別子に対応付けて候補中継装置の隣接中継装置テーブルに格納されている接続先識別子がNULLであれば探索対象端末は当該候補中継装置に接続されていると判定する。
【0047】
ステップSB140の判定結果が“Yes”である場合(すなわち、探索対象端末は候補中継装置に接続されていると判定した場合)には、ルーティングエンジン部620は、探索対象端末は候補中継装置に接続されている旨を操作端末30に報知(ステップSB190)させて、本端末探索処理を終了する。これに対して、ステップSB140の判定結果が“No”である場合には、ルーティングエンジン部620は、当該接続先識別子の示す中継装置を新たな候補中継装置として選択し直し、当該新たな候補中継装置へ宛てて問い合せフレームを送信する(ステップSB150)。そして、ルーティングエンジン部620は、上記新たな候補中継装置から返信されてくる通信ポート通知フレームのペイロード部に書き込まれている接続先ポート識別子で候補ポート識別子を更新し(ステップSB160)、ステップSB130以降の処理を繰り返し実行する。
以上がルータ60の構成である。
【0048】
<A−2:動作>
以下、ルータ60と各スイッチングハブ50とが8つの通信ポートを有し、図7に示すように相互に接続されている場合を例にとって本実施形態の動作を説明する。図7では、通信ポートを黒塗りの丸印で示し、当該通信ポートのポート番号を#付の数字で表記した。図7に示すように、ルータ60のポート番号=1の通信ポートにはスイッチングハブ50Aが接続されており、スイッチングハブ50Aから見ればルータ60はスイッチングハブ50Aのポート番号=8の通信ポートに接続されている。
【0049】
図7に示すように、スイッチングハブ50Aのポート番号=7の通信ポートにはスイッチングハブ50Bが接続されており、スイッチングハブ50Bから見ればスイッチングハブ50Aはスイッチングハブ50Bのポート番号=5の通信ポートに接続されている。スイッチングハブ50Bのポート番号=4の通信ポートにはスイッチングハブ50Cが接続されており、同ポート番号=6の通信ポートにはスイッチングハブ50Dが接続されている。スイッチングハブ50Cから見れば、スイッチングハブ50Bはポート番号=3の通信ポートに接続されており、スイッチングハブ50Dから見れば、スイッチングハブ50Bはポート番号=2の通信ポートに接続されている。そして、通信端末40Aはスイッチングハブ50Cのポート番号=7の通信ポートに接続されており、通信端末40Bはスイッチングハブ50Dのポート番号=8の通信ポートに接続されている。また、以下に説明する動作の開始時点では、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの接続先識別子はNULLクリアされている。
【0050】
<A−2−1:隣接中継装置情報収集動作>
前述したように、本実施形態のLAN1Aでは、ルータ60および各スイッチングハブ50のMACアドレステーブルおよび隣接中継装置テーブルの格納内容に基づいて探索対象端末の接続先の特定が行われる。このため、探索対象端末の接続先の特定に先立って、隣接中継装置テーブルに各々の隣接中継装置のMACアドレスを格納し、さらに各スイッチングハブ50の隣接中継装置テーブルの格納内容をルータ60に通知しておく必要がある。本実施形態では、ルータ60および各スイッチングハブ50に以下に説明する動作を実行させることで、各々の隣接中継装置テーブルへの隣接中継装置のMACアドレスの格納、およびルータ60への各スイッチングハブ50の隣接中継装置テーブルの格納内容の通知が実現される。
【0051】
ルータ60のルーティングエンジン部620は、ルータ60の電源(図示略)投入後、所定時間Tが経過した時刻T0において要求フレームをマルチキャストする。このようにしてルータ60からマルチキャストされる要求フレームは、まず、スイッチングハブ50Aによって受信される。スイッチングハブ50Aのスイッチングエンジン部520は、ポート番号=8の通信ポートを介して上記要求フレームを受信し、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。その理由は以下の通りである。本動作例においてスイッチングハブ50Aがルータ60から受信するフレームは要求フレームであり、そのペイロード部のフレーム種別識別子には当該フレームが要求フレームであることを示す値がセットされている。このため、図3のステップSA100の判定結果は“No”になり、同ステップSA120の判定結果は“Yes”になり、同ステップSA150の判定結果も“Yes”になる。したがって、図3のステップSA130、SA140、SA160およびSA170の処理が実行されるのである。
【0052】
ステップSA130の処理が実行されるため、ポート番号=8に対応づけてスイッチングハブ50Aの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、ルータ60のMACアドレス)によって書き換えられる。また、当該受信フレームの転送元識別子はステップSA140の処理によってスイッチングハブ50AのMACアドレスに書き換えられる。ステップSA160では、ステップSA130の処理による更新後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームがスイッチングハブ50Aからルータ60にユニキャストされる。そして、ステップSA170では、ステップSA140の処理によって転送元識別子の書き換えが行われた要求フレームのフラッディングが行われる。前述したように、要求フレームの送信先MACアドレスはマルチキャストアドレスだからである。このようにしてフラッディングされた要求フレームは、スイッチングハブ50Bによって受信される。
【0053】
スイッチングハブ50Bのスイッチングエンジン部520も同様に、スイッチングハブ50Aから転送された要求フレームを受信すると、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。より詳細に説明すると、スイッチングハブ50Bのスイッチングエンジン部520は、自装置の隣接中継装置テーブルにおいてポート番号=5に対応する接続先識別子を、スイッチングハブ50Aから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50AのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。加えて、スイッチングハブ50Bのスイッチングエンジン部520は、転送元識別子をスイッチングハブ50BのMACアドレスに書き換えた要求フレームのフラッディングを行う。このようにしてフラッディングされた要求フレームはスイッチングハブ50Cおよび50Dによって各々受信される。
【0054】
スイッチングハブ50C(或いは50D)のスイッチングエンジン部520も同様に、スイッチングハブ50Bから転送された要求フレームを受信すると、図3のステップSA130、SA140、SA160およびSA170の処理を実行する。より詳細に説明すると、スイッチングハブ50Cは、スイッチングハブ50Bによって転送された要求フレームを受信すると、自装置の隣接中継装置テーブルにおいてポート番号=3に対応する接続先識別子を、スイッチングハブ50Bから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。
【0055】
同様に、スイッチングハブ50Dも、隣接中継装置テーブルにおいてポート番号=2に対応する接続先識別子を、スイッチングハブ50BのMACアドレスによって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームをルータ60にユニキャストする。なお、スイッチングハブ50Cおよび50Dは、転送元識別子を自装置のMACアドレスに書き換えた要求フレームをフラッディングする処理も行う。しかし、スイッチングハブ50Cおよび50Dよりも下流側にスイッチングハブは接続されていないため、以降、これら要求フレームの転送が行われることはない。
【0056】
以上説明したように、ルータ60からマルチキャストされた要求フレームの転送制御を行う過程でスイッチングハブ50A、50B、50C、および50Dの各々の隣接中継装置テーブルの格納内容は図8に示す状態となり、これら各隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ隣接中継装置通知フレームが各スイッチングハブ50からルータ60にユニキャストされる。なお、図8では、各スイッチングハブ50の隣接中継装置テーブルの格納内容が吹き出しで示されている(図9についても同様)。
【0057】
次いで、隣接中継装置通知フレームの転送制御に伴って行われる隣接中継装置テーブルの更新について説明する。スイッチングハブ50Bのスイッチングエンジン部520は、スイッチングハブ50Cからルータ60へユニキャストされた隣接中継装置通知フレームを、ポート番号=4の通信ポートを介して受信すると、図3のステップSA130、SA140、およびSA170の処理を実行する。本動作例においてスイッチングハブ50Bがスイッチングハブ50Cから受信するフレームは隣接中継装置通知フレームであり、そのペイロード部のフレーム種別識別子には当該フレームが隣接中継装置通知フレームであることを示す値がセットされている。このため、当該フレームを受信したときにスイッチングエンジン部520が実行する処理(図3のフローチャートに示す処理)では、ステップSA100の判定結果は“No”になる一方、同ステップSA120の判定結果は“Yes”になり、同ステップSA150の判定結果は“No”になる。したがって、図3のステップSA130、SA140、およびSA170の処理が実行されるのである。
【0058】
ステップSA130の処理が実行されるため、ポート番号=4に対応付けてスイッチングハブ50Bの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50CのMACアドレス)によって書き換えられ、当該受信フレームの転送元識別子はステップSA140の処理によってスイッチングハブ50BのMACアドレスに書き換えられる。そして、ステップSA170では、ステップSA140の処理によって転送元識別子の書き換えが行われた隣接中継装置通知フレームがポート番号=5の通信ポートを介して送出される。スイッチングハブ50Dからルータ60へユニキャストされた隣接中継装置通知フレームを受信した場合についても同様に、スイッチングハブ50Bのスイッチングエンジン部520は、図3のステップSA130、SA140、およびSA170の処理を実行する。その結果、スイッチングハブ50Bの隣接中継装置テーブルにおいてポート番号=6に対応する接続先識別子は受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50DのMACアドレス)によって書き換えられ、当該受信フレームは転送元識別子の書き換えを経た後に、ポート番号=5の通信ポートを介して送出される。
【0059】
スイッチングハブ50Aのスイッチングエンジン部520は、スイッチングハブ50Bから送信された隣接中継装置通知フレーム(或いは、スイッチングハブ50Bによって転送された隣接中継装置通知フレーム)を受信すると、同様に、図3のステップSA130、SA140、およびSA170の処理を実行する。スイッチングハブ50Aは、隣接中継装置テーブルにおいてポート番号=7に対応する接続先識別子を、スイッチングハブ50Bから受信した隣接中継装置通知フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該隣接中継装置通知フレームの転送元識別子を自装置のMACアドレスに書き換えてルータ60に転送する。ルータ60は、スイッチングハブ50Aから転送された隣接中継装置通知フレームをポート番号=1の通信ポートを介して受信すると、自装置の隣接中継装置テーブルにおいて当該ポート番号に対応する接続先識別子を当該フレームに付与されている転送元識別子で書き換える。
【0060】
以上説明したように、他のスイッチングハブ50からルータ60へ送信された隣接中継装置通知フレームの転送制御を行う過程で、スイッチングハブ50Aおよび50Bの各々の隣接中継装置テーブルの格納内容は図8に示す状態から図9に示す状態へと更新される。
【0061】
ここで注目すべき点は、以上に説明した動作において、ルータ60が各スイッチングハブ50から受信する隣接中継装置通知フレームに書き込まれている隣接中継装置情報は、図9に示す隣接中継装置テーブルの格納内容ではなく、図8に示す隣接中継装置テーブルの格納内容に対応しているという点である。図9に示すルータ60の隣接中継装置テーブルの格納内容と図8に示す各スイッチングハブ50の隣接中継装置テーブルの格納内容とでは、ルータ60とスイッチングハブ50Aとの接続関係のみが矛盾なく表されており、他の接続関係には矛盾が生じている。例えば、スイッチングハブ50Aの隣接中継装置テーブルにはスイッチングハブ50BのMACアドレスは格納されていないにもかかわらず、スイッチングハブ50Bの隣接中継装置テーブルにはスイッチングハブ50AのMACアドレスが格納されている、といった具合である。このため、図8に示す状態の各スイッチングハブ50の隣接中継装置テーブルを記憶部630に格納した時点でルータ60に対して探索対象の通信端末が指示されても、前述したステップSB100の判定結果は“Yes”となり、準備中である旨の報知のみが為される。
【0062】
そして、時刻T0からさらに所定時間Tが経過すると、ルーティングエンジン部620は、要求フレームをマルチキャストし、各スイッチングハブ50は上記と同様の処理を実行する。時刻T0+Tにおいてルータ60から送信された要求フレームに対する応答として各スイッチングハブ50が返信する隣接中継装置通知フレームの各々には、図9に示す隣接中継装置テーブルの格納内容に対応する隣接中継装置情報が書き込まれている。このため、時刻T0+Tにおいてマルチキャストした要求フレーム(すなわち、時刻T0におけるマルチキャストを1回目とすれば、2回目のマルチキャスト)に対する隣接中継装置通知フレームを受信した時点でルータ60の記憶部630に格納される隣接中継装置テーブル(ルータ60の隣接中継装置テーブルおよび各スイッチングハブ50の隣接中継装置テーブル)は、ルータ60と各スイッチングハブ50の接続関係を矛盾なく表すものとなる。この状態において、探索対象端末が指示されると、ステップSB100の判定結果は“No”となり、ルーティングエンジン部620は、ステップSB110以降の処理を実行する。
【0063】
<A−2−2:通信端末探索動作>
次いで、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの格納内容が図9に示す状態となっている状況下で通信端末40Aの探索を行う場合を例にとって、この探索過程においてルータ60およびスイッチングハブ50が実行する動作を説明する。なお、以下に説明する動作の開始時点では、ルータ60のMACアドレス解決のために通信端末40Aから送信されたARPパケットの転送制御によって、ルータ60およびスイッチングハブ50の各々のMACアドレステーブルの格納内容は、図10に示すようになっている。
【0064】
図10に示すように、ルータ60のMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=1が格納されている。スイッチングハブ50AのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている。スイッチングハブ50BのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=4が格納されている。スイッチングハブ50CのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている。そして、スイッチングハブ50DのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=2が格納されている。
【0065】
ルーティングエンジン部620は、操作端末30を介して探索対象端末(すなわち、通信端末40A)を指定されると、記憶部630に格納されている各スイッチングハブ50の隣接中継装置テーブルの格納内容と自装置の隣接中継装置テーブルの格納内容とが表す接続関係に矛盾があるか否かを判定する(ステップSB100)。前述したように、ルータ60および各スイッチングハブ50の隣接中継装置テーブルの格納内容が図9に示す状態となっていれば、これら隣接中継装置テーブルの表す接続関係に矛盾はない。したがって、ステップSB100の判定結果は“No”となり、ステップSB110以降の処理が実行される。図10に示すように、ルータ60のMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてポート番号=1が格納されている。このため、ステップSB110の判定結果は“Yes”になり、ルーティングエンジン部620は、ステップSB120以降の処理を実行する。このステップSB120では、ルーティングエンジン部620は、候補ポート識別子としてポート番号=1を選択し、さらに自装置を候補中継装置として選択する。そして、ステップSB130では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、ルータ60の隣接中継装置テーブル)を検索し、候補ポート識別子に対応する接続先識別子を取得する。
【0066】
図9を参照すれば明らかなように、通信端末40Aの探索開始時点では、ルータ60の隣接中継装置テーブルには候補ポート識別子(ポート番号=1)に対応付けてスイッチングハブ50AのMACアドレスが格納されている。このため、ステップSB140の判定結果は“No”となり、ルーティングエンジン部620は、スイッチングハブ50Aを候補中継装置として選択し直して問い合せフレームを送信する(ステップSB150)。つまり、本動作例では、図11に示すように、ルータ60からスイッチングハブ50Aへ宛てて問い合せフレームQ010が送信される。この問い合せフレームQ010のペイロード部には、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。
【0067】
スイッチングハブ50Aのスイッチングエンジン部520は、問い合せフレームQ010を受信すると、通信ポート通知フレーム送信処理(図3:ステップSA110)を実行する。スイッチングハブ50AのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている(図10参照)。このため、スイッチングハブ50Aのスイッチングエンジン部520は、図11に示すように、接続先ポート識別子としてポート番号=7を書き込んだ通信ポート通知フレームR010をルータ60に返信する。
【0068】
ルーティングエンジン部620は、通信ポート通知フレームR010を受信すると、当該通信ポート通知フレームのペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=7)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。この時点の候補中継装置はスイッチングハブ50Aであるため、本動作例において2度目に実行するステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Aの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=7)に対応する接続先識別子を取得する。
【0069】
図9を参照すれば明らかなように、スイッチングハブ50Aの隣接中継装置テーブルには候補ポート識別子(ポート番号=7)に対応付けてスイッチングハブ50BのMACアドレスが格納されている。このため、本動作例において2度目に実行されるステップSB140の判定結果も“No”となり、ルーティングエンジン部620は、スイッチングハブ50Bを候補中継装置として選択し直して問い合せフレームQ020を送信する(図11参照)。仮に、スイッチングハブ50Aの隣接中継装置テーブルとして図9のものではなく、図8のものがルータ60の記憶部630に格納されていたとすれば、図8のスイッチングハブ50Aの隣接中継装置テーブルにおいて、候補ポート識別子(ポート番号=7)に対応付けられている接続先識別子はNULLであり、ステップSB140の判定結果は“Yes”となって、探索対象端末はスイッチングハブ50Aに接続されている旨の報知が為される。しかし、この報知内容が誤りであることは、図1を参照すれば明らかである。ステップSB100の判定は、このような誤判断の発生を回避するために行われるのである。なお、本実施形態では、上記のような誤判断の発生を回避するために、ステップSB100の判定をルーティングエンジン部620に行わせたが、要求フレームのマルチキャストの間隔が充分に短く、要求フレームのマルチキャストが2回行われることに先立って通信端末の探索が行われることがほとんど無い場合、或いは、通信端末の探索を何度か繰り返し行ううちに正しい結果が得られれば充分な場合には、ステップSB100の判定およびその判定結果がYesである場合の報知処理(ステップSB170)を省略しても良い。
【0070】
この問い合せフレームQ020のペイロード部には、問い合せフレームQ010と同様に、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。スイッチングハブ50Bにおいては、前述したスイッチングハブ50Aと同様の処理が実行される。より詳細に説明すると、スイッチングハブ50BのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=4が格納されている(図10参照)。このため、図11に示すように、スイッチングハブ50Bからルータ60へ宛てて、接続先ポート識別子としてポート番号=4をペイロード部に書き込んだ通信ポート通知フレームR020が送信される。ルーティングエンジン部620は、スイッチングハブ50Bから返信された通信ポート通知フレームR020を受信すると、通信ポート通知フレームR010を受信した場合と同様に、通信ポート通知フレームR020のペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=4)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。本動作例において3度目に実行されるステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Bの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=4)に対応する接続先識別子を取得する。
【0071】
図9を参照すれば明らかなように、スイッチングハブ50Bの隣接中継装置テーブルには候補ポート識別子(ポート番号=4)に対応付けてスイッチングハブ50CのMACアドレスが格納されている。このため、本動作例において3度目に実行されるステップSB140の判定結果も“No”となり、ルーティングエンジン部620は、スイッチングハブ50Cを候補中継装置として選択し直して問い合せフレームQ030を送信する(図11参照)。この問い合せフレームQ030のペイロード部には、問い合せフレームQ010およびQ020と同様に、探索対象識別子として通信端末40AのMACアドレスが書き込まれている。
【0072】
スイッチングハブ50Cにおいても、前述したスイッチングハブ50Aおよび50Bと同様の処理が実行される。より詳細に説明すると、スイッチングハブ50CのMACアドレステーブルには通信端末40AのMACアドレスに対応付けてポート番号=7が格納されている(図10参照)。このため、図11に示すように、スイッチングハブ50Cからルータ60へ宛てて、接続先ポート識別子としてポート番号=7をペイロード部に書き込んだ通信ポート通知フレームR030が送信される。ルーティングエンジン部620は、スイッチングハブ50Cから返信された通信ポート通知フレームR030を受信すると、通信ポート通知フレームR010やR020を受信した場合と同様に、通信ポート通知フレームR030のペイロード部に書き込まれている接続先ポート識別子(すなわち、ポート番号=7)を新たな候補ポート識別子として選択し(図6:ステップSB160)、ステップSB130以降の処理を再度実行する。本動作例において4度目に実行されるステップSB130の処理では、ルーティングエンジン部620は、候補中継装置の隣接中継装置テーブル(すなわち、スイッチングハブ50Cの隣接中継装置テーブル)を検索し、候補ポート識別子(すなわち、ポート番号=7)に対応する接続先識別子を取得する。
【0073】
図9を参照すれば明らかなように、スイッチングハブ50Cの隣接中継装置テーブルにおいて候補ポート識別子(ポート番号=7)に対応付けられている接続先識別子はNULLである。このため、本動作例において4度目に実行されるステップSB140の判定結果は“Yes”となり、ルーティングエンジン部620は、探索対象端末(すなわち、通信端末40A)はスイッチングハブ50Cに接続されている旨の報知を行う(図6:ステップSB190)。この報知によってLAN1Aの運用管理者は、探索対象端末(通信端末40A)がスイッチングハブ50Cに接続されているということを把握するのである。
【0074】
以上説明したように、本実施形態によれば、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しを行うことなく、ルータ60の配下のネットワーク(すなわち、LAN1A)に収容される通信端末の探索を行うことが可能になる。このように、本実施形態では、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しは行われないのであるから、ルータ60の配下のネットワークに過剰な負荷がかかることはない。
【0075】
<B:第2実施形態>
図12は、本発明の第2実施形態のLAN1Bの構成例を示すブロック図である。
図12と図1とを対比すれば明らかように、LAN1Bはスイッチングハブ50Bに換えてスイッチングハブ500を有する点と、このスイッチングハブ500に通信端末40Cが接続されている点が、LAN1Aと異なる。スイッチングハブ500は、従来のスイッチングハブであって、受信したフレームの送信先MACアドレスに基づくフレームの転送制御(すなわち、図3のステップSA170の処理)のみを実行する点がスイッチングハブ50と異なる。通信端末40Cは、通信端末40Aや通信端末40Bと同様に一般的なパーソナルコンピュータである。
【0076】
LAN1Bにおいては、スイッチングハブ50Aからスイッチングハブ500に転送された要求フレームは転送元識別子を書き換えられることなく、スイッチングハブ50Cおよび50Dに転送される。このため、スイッチングハブ50Cおよび50Dの各々の隣接中継装置テーブルには、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けて、スイッチングハブ50AのMACアドレスが書き込まれる。
【0077】
スイッチングハブ50Cおよび50Dの各々からルータ60へ返信される隣接中継装置通知フレームについても同様に、転送元識別子を書き換えられることなくスイッチングハブ500によってスイッチングハブ50Aに転送される。スイッチングハブ50Aのスイッチング制御部520は、スイッチングハブ50Cおよび50Dの各々から送信された隣接中継装置通知フレームを、スイッチングハブ500が接続されている通信ポートを介して受信し、これら隣接中継装置通知フレームを受信する度に隣接中継装置テーブルの格納内容を更新する。つまり、スイッチングハブ50Cおよび50Dの各々から送信される隣接中継装置通知フレームのうち先に受信したものに応じて行われた更新の内容は後から受信したものに応じて行われた更新の内容によって上書きされる。
【0078】
このため、例えば、ルータ60から1回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうち前者が先にスイッチングハブ50Aに到達する場合には、2回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する隣接中継装置通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子にはスイッチングハブ50DのMACアドレスのみが対応付けられている。一方、ルータ60がスイッチングハブ50Cから受信する隣接中継装置情報においては、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けてスイッチングハブ50AのMACアドレスが対応付けられている。つまり、スイッチングハブ50Aとスイッチングハブ50Cとの接続関係に矛盾が生じる。
【0079】
これに対して、ルータ60から1回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうちの後者が先にスイッチングハブ50Aに到達する場合には、2回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する隣接中継装置通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子にはスイッチングハブ50CのMACアドレスのみが対応付けられている。一方、ルータ60がスイッチングハブ50Dから受信する隣接中継装置情報においては、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けてスイッチングハブ50AのMACアドレスが対応付けられている。つまり、スイッチングハブ50Aとスイッチングハブ50Dとの接続関係に矛盾が生じる。このように、スイッチングハブ50Cおよび50Dの各々が返信する隣接中継装置通知フレームのうち何れが先にルータ60に到達したとしても、スイッチングハブ50Aとスイッチングハブ50C(或いは50D)との接続関係に矛盾が生じる。このため、図6のステップSB100の判定結果は常にYesとなり、通信端末の探索を行うことはできないのである。
【0080】
もっとも、図6のステップSB100の判定を行わないようにすれば、通信端末40Aまたは通信端末40Bの何れか一方の接続先を特定することは可能である。例えば、スイッチングハブ50Cから送信された隣接中継装置通知フレームの方がスイッチングハブ50Dから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Bの探索を行うことは可能であるが、通信端末40Aの接続先を正確に特定することはできない。その理由は以下の通りである。
【0081】
スイッチングハブ50AのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてスイッチングハブ500が接続されている通信ポートのポート識別子が格納されている。通信端末40Aから送信されたARPフレームはスイッチングハブ500によるフラッディングを経てスイッチングハブ50Aに到達するからである。このため、ルータ60がスイッチングハブ50Aに探索対象識別子として通信端末40AのMACアドレスを書き込んだ問い合せフレームを送信すると、スイッチングハブ50Aは、スイッチングハブ500が接続されている通信ポートのポート識別子を接続先ポート識別子として書き込んだ通信ポート通知フレームをルータ60に返信する。一方、スイッチングハブ50Aの隣接中継装置テーブルには、前述したように、上記ポート識別子に対応付けてスイッチングハブ50DのMACアドレスが格納されている。このため、ルータ60はスイッチングハブ50Dに探索対象識別子として通信端末40AのMACアドレスを書き込んだ問い合せフレームを送信する。
【0082】
スイッチングハブ50DのMACアドレステーブルには、通信端末40AのMACアドレスに対応付けてスイッチングハブ500が接続されている通信ポートのポート識別子が格納されている。前述したように、通信端末40Aから送信されたARPフレームはスイッチングハブ500によるフラッディングを経てスイッチングハブ50Dに到達するからである。このため、スイッチングハブ50Dは、スイッチングハブ500が接続されている通信ポートのポート識別子のポート識別子を接続先ポート識別子として書き込んだ通信ポート通知フレームをルータ60に返信する。スイッチングハブ50Dの隣接中継装置テーブルには、当該ポート識別子に対応付けてスイッチングハブ50AのMACアドレスが格納されているが、スイッチングハブ50Aには既に問い合せフレームを送信済みであり、再度、スイッチングハブ50Aに問い合せフレームを送信したとしても、堂々巡りになるだけである。このように、既に問い合せフレームを送信済みのスイッチングハブ50に対して再度同一の問い合せフレームを送信することとなった場合には、この時点で通信端末の探索を打ち切り、探索対象の通信端末は当該スイッチングハブ50に接続されていると判定することも考えられる。しかし、当該探索対象の通信端末の接続先が正確に特定されていないことは言うまでもない。これが、スイッチングハブ50Cから送信された隣接中継装置通知フレームの方がスイッチングハブ50Dから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Aの接続先を正確に特定することができない理由である。同様の理由により、スイッチングハブ50Dから送信された隣接中継装置通知フレームの方がスイッチングハブ50Cから送信されたものより先にスイッチングハブ50Aに到達した場合には、通信端末40Bの接続先を正確に特定することはできない。同様に、スイッチングハブ500に接続されている通信端末40Cの探索を行うこともできない。
【0083】
このように、ルータ60の配下のネットワークに従来のスイッチングハブが含まれている場合には、従来のスイッチングハブに接続されている通信端末を探索することはできないものの、スイッチングハブ50に接続されている通信端末の探索についてはその探索を全く行えないという訳ではない。また、上述したような堂々巡りが発生した場合には、その発生を根拠に、その発生箇所に1乃至複数台の従来のスイッチングハブが存在している可能性があると類推することもできる。
【0084】
ルータ60の配下のネットワークに含まれるスイッチングハブの全てが従来のものであれば、当該ネットワークに収容される通信端末の探索を全く行えないことは言うまでもないが、LAN1Bを構成する複数のスイッチングハブのなかに本発明に係るスイッチングハブ50が少なくとも1台含まれていれば、当該スイッチングハブ50に接続されている通信端末の探索を行うことはできる。なお、本実施形態においても、ルータ60および各スイッチングハブ50間でMACアドレステーブルの受け渡しは行われないのであるから、ルータ60の配下のネットワークに過剰な負荷がかかることはない。
【0085】
<C:変形>
以上、本発明の第1および第2実施形態について説明したが、これら各実施形態に以下に述べる変形を加えても勿論良い。
(1)上述した各実施形態では、要求フレームのマルチキャストを所定時間間隔で周期的にルータ60に実行させる一方、スイッチングハブ50には、要求フレームの受信を契機として隣接中継装置通知フレームをルータ60に返信させた。しかし、周期的なマルチキャストに加えて(或いは、周期的なマルチキャストに換えて)、予め定められた所定種類のパケットの受信を契機としてルータ60に要求フレームをマルチキャストさせても良い。
【0086】
例えば、自装置のMACアドレス解決のためにARPパケットを受信したことを契機としてルータ60に要求フレームを送信させるのである。新たにARPパケットを受信したということは、ルータ60の配下のネットワークに新たな通信端末が接続されたことを意味する。このように新たな通信端末が追加接続される場合には、既存のスイッチングハブ50に対して新たなスイッチングハブ50を接続し、当該新たなスイッチングハブ50に当該新たな通信端末が接続される場合もある。新たなARPパケットの受信を契機としてルータ60に要求フレームを送信させるようにすれば、新たな通信端末の接続に伴って新たなスイッチングハブ50が追加されるような場合であっても、迅速に当該新たな通信端末の探索を行うことが可能になる。なお、上記各実施形態のように、ルータ60がDHCPサーバの役割を兼ねている場合には、IPアドレスの割り当てを要求する旨のパケットを配下の通信端末から受信したことを契機として要求フレームをマルチキャストさせても良い。
【0087】
(2)上述した各実施形態では、要求フレームの受信を契機としてスイッチングハブ50に隣接中継装置通知フレームを送信させた。しかし、所定時間間隔で周期的に隣接中継装置通知フレームをスイッチングハブ50に送信させるようにしても良い。このように、隣接中継装置通知フレームを周期的にスイッチングハブ50に送信させる態様においては、ルータ60から要求フレームをマルチキャストする必要はなく、ルータ60から配下のLANに向けてマルチキャストするフレームのうちの予め定められた一部のものに転送元識別子を付与してマルチキャストさせるようにすれば良い。各スイッチングハブ50に上流側(ルータ60に近い側)の隣接中継装置のMACアドレスを隣接中継装置テーブルに格納させるためである。
【0088】
(3)上述した各実施形態では、新たな候補中継装置の選択をルータ60に行わせたが、スイッチングハブ50に行わせることも可能である。具体的には、問い合せフレームを受信した場合に、スイッチングエンジン部520に以下の処理を行わせるのである。すなわち、スイッチングエンジン部520は、問い合せフレームのペイロード部に書き込まれている探索対象識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該探索対象識別子に対応付けてMACアドレステーブルに格納されているポート識別子を取得する。次いで、スイッチングエンジン部520は、上記ポート識別子を検索キーとして自装置のMACアドレステーブルを検索し、当該ポート識別子に対応する接続先識別子を取得する。そして、スイッチングエンジン部520は、この接続先識別子をペイロード部に書き込んだ通信ポート通知フレームをルータ60にユニキャストするのである。そして、ルータ60には、上記通信ポート通知フレームのペイロード部に書き込まれている接続先識別子がNULLであれば、探索対象端末は当該通信ポート通知フレームの送信元のスイッチングハブ50に接続されていると判定してその旨を報知する処理を実行させ、逆に上記接続先識別子がNULL以外の値であれば、当該接続先識別子の示すスイッチングハブ50を新たな候補中継装置として問い合せフレームを送信する処理を実行させるのである。このような態様においては、各スイッチングハブ50の隣接中継装置テーブルをルータ60に記憶させておくことは必須ではない。しかし、各スイッチングハブ50の隣接中継装置テーブルの格納内容が相互に矛盾しているか否かをルーティングエンジン部620に判定させる(すなわち、通信端末の探索が可能であるか否かを判定させる)ために、各スイッチングハブ50の隣接中継装置テーブルをルータ60に記憶させるようにしても勿論良い。ただし、このような態様では、スイッチングハブ50における処理負荷が隣接中継装置テーブルの検索を行う分だけ上記各実施形態に比較して高くなるため、スイッチングハブ50として充分に処理能力の高いものを用いる必要があることは言うまでもない。
【0089】
(4)上述した各実施形態では、要求フレームを受信するたびに隣接中継装置情報をペイロード部に書き込んだ隣接中継装置通知フレームを各スイッチングハブ50に返信させた。しかし、N(自然数)回目の要求フレームの受信からN+1回目の要求フレームの受信までの間に隣接中継装置テーブルの格納内容に変化がない場合には、当該N+1回目に受信した要求フレームに対して応答する際に、隣接中継装置情報に換えて隣接中継装置情報に変化がないことを示すデータをペイロード部に書き込んだ隣接中継装置通知フレームを返信させるようにしても良い。なお、隣接中継装置情報に変化がないことを示すデータがペイロード部に書き込まれた隣接中継装置通知フレームを受信した場合には、ルーティングエンジン部620に隣接中継装置情報の上書き更新を行わせる必要がないことは言うまでも無い。
【0090】
(5)上述した各実施形態では、ルータ60がDHCPサーバ機能とDNSサーバ機能とを有していた。しかし、ルータ60の配下のネットワーク内に当該ルータ60とは別個のDHCPサーバおよびDNSサーバが設けられており、ルータ60からこれらサーバに対してアクセス可能な態様であれば、ルータ60がDHCPサーバ機能およびDNSサーバ機能を有する必要はない。つまり、本発明のルータにとってDHCPサーバ機能とDNSサーバ機能は必須ではない。また、上述した各実施形態では、ルータ60が有するDHCPサーバ機能によって動的に各通信端末40にIPアドレスを割り振ったが、各通信端末40にIPアドレスを固定的に割り振っておいても勿論良い。各通信端末40にIPアドレスが固定的に割り振られ、かつ固定的に割り振られたIPアドレスによって探索対象端末が指定される場合であっても、ARPを利用することで、当該IPアドレスから同通信端末のMACアドレスを求めることは可能だからである。また、上述した各実施形態では、第2層において各通信装置を一意に識別するためのハードウェア識別子としてMACアドレスを用いたが、MACアドレスとは異なる新たなハードウェア識別子を定義し、当該識別子を用いるようにしても良い。
【0091】
(6)上述した各実施形態では、本発明のスイッチングハブの特徴を顕著に示すフレーム転送制御処理、隣接中継装置通知フレーム送信処理、および通信ポート通知フレーム送信処理をソフトウェアにより実現した。しかし、フレーム転送制御処理を実行するフレーム転送制御手段、隣接中継装置通知フレーム送信処理を実行する隣接中継装置通知手段、および通信ポート通知フレーム送信処理を実行する通信ポート通知手段の各々を電子回路などのハードウェアで構成し、スイッチングエンジン部520に換えてこれら各手段を組み込んでスイッチングハブ50を構成しても勿論良い。ルータ60についても、同様に、マルチキャスト処理、隣接中継装置記憶処理、および端末探索処理の各処理を電子回路などのハードウェアによって実現しても勿論良い。
【0092】
(7)上述した各実施形態では、フレームのペイロード部に書き込まれているフレーム種別識別子に基づいて(或いは、ヘッダ部の種別識別子とペイロード部のフレーム種別識別子とに基づいて)、当該フレームが隣接中継装置情報収集用のものであるか否かを判定したが、転送元識別子が付与されているか否かによって当該判定を行っても良い。例えば、第2層における既存の通信プロトコルにしたがって送受信されるフレームを利用して隣接中継装置情報を収集する際には、フレーム種別識別子に基づいて(或いは、ヘッダ部の種別識別子とペイロード部のフレーム種別識別子とに基づいて)上記判定を行うことはできないからである。なお、既存の通信プロトコルにしたがって送受信されるフレームを利用する態様においては、当該フレームのヘッダ部の空き領域に転送元識別子(或いは転送元識別子と隣接中継装置情報)を書き込むようにすれば良い。
【符号の説明】
【0093】
1A,1B…LAN、30…操作端末、40A,40B,40C…通信端末、50A,50B,50C,50D,500…スイッチングハブ、60…ルータ、510,610…通信I/F部、520…スイッチングエンジン部、530,630…記憶部、620…ルーティングエンジン部。
【特許請求の範囲】
【請求項1】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、
自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、
(B)前記ルータは、
前記第1および第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する第1の手段と、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第2の手段と、
前記第2の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の手段と、
前記第2の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第3の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の手段と、
前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して、当該スイッチングハブにおいて前記探索対象の通信端末に対応する通信ポートを問い合せる第5の手段と、
前記第5の手段による問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブから前記第1の手段によって取得した第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直し、前記第5の手段による処理を繰り返す第6の手段と、を有し、
(C)前記第1および第2のテーブルを有するスイッチングハブは、
自装置の前記第2のテーブルの格納内容を前記ルータへ通知する第7の手段と、
前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定して返信する第8の手段、を有する
ことを特徴とする通信システム。
【請求項2】
前記ハードウェア識別子はMAC(Media Access Control)アドレスである一方、前記他の階層の識別子はIPアドレスであり、
前記ルータは、配下のネットワークに収容される通信端末に対してIP(Internet Protocol)アドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCP(Dynamic Host Configuration Protocol)サーバ手段を有しており、
前記第2の手段は、探索対象の通信端末のIPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定する
ことを特徴とする請求項1に記載の通信システム。
【請求項3】
前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はホスト名であり、
前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCPサーバ手段と、当該通信端末のホスト名とIPアドレスとの相互変換を行うDNS(Domain Name System)サーバ手段と、を有しており、
前記第2の手段は、探索対象の通信端末のホスト名を前記DNSサーバ手段によってIPアドレスに変換し、さらに、当該IPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定する
ことを特徴とする請求項1に記載の通信システム。
【請求項4】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、
自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、
(B)前記ルータは、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第1の手段と、
前記第1の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の手段と、
前記第1の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第2の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の手段と、
前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して前記探索対象の通信端末の接続の有無を問い合せる第4の手段と、
前記第4の手段の問い合せ先のスイッチングハブから前記探索対象の通信端末を接続している旨の返答があった場合には、前記探索対象の通信端末の接続先は当該スイッチングハブである旨の報知を行う一方、他のスイッチングハブを新たな問い合せ先とすべき旨の返答があった場合には、当該他のスイッチングハブを前記探索対象の通信端末の接続先の候補として選択し直して前記第4の手段による処理を繰り返す第5の手段と、を有し、
(C)前記第1および第2のテーブルを有するスイッチングハブは、
前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第6の手段と、
前記第6の手段により特定された通信ポートに他のスイッチングハブが接続されているか否かを自装置の第2のテーブルの格納内容に基づいて判定し、他のスイッチングハブが接続されていると判定される場合には、当該他のスイッチングハブを新たな問い合せ先とすべき旨を前記ルータに返答し、他のスイッチングハブが接続されていないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨を前記ルータに返答する第7の手段と、を有する
ことを特徴とする通信システム。
【請求項5】
(A)複数の通信ポートを備えた通信インタフェース部と、
(B)当該ルータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、
(D)当該ルータの配下のネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する記憶手段と、
(E)探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを前記第1のテーブルの格納内容から特定する第1の処理と、
前記第1の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該ルータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の処理と、
前記第1の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第2の処理によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の処理と、
前記第3の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第4の処理と、
前記第4の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、前記記憶手段に記憶されている当該スイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第4の処理を繰り返す第5の処理と、を実行する端末探索手段と、
を有することを特徴とするルータ。
【請求項6】
(A)複数の通信ポートを備えた通信インタフェース部と、
(B)当該スイッチングハブへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、
(D)前記第2のテーブルの格納内容を当該スイッチングハブを含むネットワークと他のネットワークとを接続するルータに通知する隣接中継装置通知手段と、
(E)前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段と
を有することを特徴とするスイッチングハブ。
【請求項7】
コンピュータに、
当該コンピュータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルを記憶するとともに、各通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルを記憶し、さらに、当該コンピュータを介して他のネットワークに接続されるネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブから当該第2のテーブルの格納内容を取得して記憶する第1の処理と、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを当該コンピュータについての前記第1のテーブルの格納内容から特定する第2の処理と、
前記第2の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該コンピュータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の処理と、
前記第2の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第3の処理にて判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の処理と、
前記第4の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第5の処理と、
前記第5の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第5の処理を繰り返す第6の処理と、
を実行させることを特徴とするプログラム。
【請求項8】
コンピュータを、
当該コンピュータに宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルを記憶するとともに、各通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルを記憶する記憶手段と、
前記第2のテーブルの格納内容を当該コンピュータを含むネットワークと他のネットワークとを接続するルータに通知する隣接中継装置通知手段と、
前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段
として機能させることを特徴とするプログラム。
【請求項1】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、
自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、
(B)前記ルータは、
前記第1および第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する第1の手段と、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第2の手段と、
前記第2の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の手段と、
前記第2の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第3の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の手段と、
前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して、当該スイッチングハブにおいて前記探索対象の通信端末に対応する通信ポートを問い合せる第5の手段と、
前記第5の手段による問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブから前記第1の手段によって取得した第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直し、前記第5の手段による処理を繰り返す第6の手段と、を有し、
(C)前記第1および第2のテーブルを有するスイッチングハブは、
自装置の前記第2のテーブルの格納内容を前記ルータへ通知する第7の手段と、
前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定して返信する第8の手段、を有する
ことを特徴とする通信システム。
【請求項2】
前記ハードウェア識別子はMAC(Media Access Control)アドレスである一方、前記他の階層の識別子はIPアドレスであり、
前記ルータは、配下のネットワークに収容される通信端末に対してIP(Internet Protocol)アドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCP(Dynamic Host Configuration Protocol)サーバ手段を有しており、
前記第2の手段は、探索対象の通信端末のIPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定する
ことを特徴とする請求項1に記載の通信システム。
【請求項3】
前記ハードウェア識別子はMACアドレスである一方、前記他の階層の識別子はホスト名であり、
前記ルータは、配下のネットワークに収容される通信端末に対してIPアドレスの割り当てを行うとともに、当該IPアドレスと当該通信端末のMACアドレスとの相互変換を行うDHCPサーバ手段と、当該通信端末のホスト名とIPアドレスとの相互変換を行うDNS(Domain Name System)サーバ手段と、を有しており、
前記第2の手段は、探索対象の通信端末のホスト名を前記DNSサーバ手段によってIPアドレスに変換し、さらに、当該IPアドレスを前記DHCPサーバ手段によってMACアドレスに変換し、当該MACアドレスと自装置の第1のテーブルの格納内容とから当該通信端末に対応する通信ポートを特定する
ことを特徴とする請求項1に記載の通信システム。
【請求項4】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブの少なくとも1つと前記ルータは、
自装置へ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて、当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、を有し、
(B)前記ルータは、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、自装置において当該通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第1の手段と、
前記第1の手段により特定された通信ポートにスイッチングハブが接続されているか否かを自装置についての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先はスイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の手段と、
前記第1の手段によって特定された通信ポートの接続先はスイッチングハブであると前記第2の手段によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の手段と、
前記探索対象の通信端末の接続先の候補として選択されたスイッチングハブに対して前記探索対象の通信端末の接続の有無を問い合せる第4の手段と、
前記第4の手段の問い合せ先のスイッチングハブから前記探索対象の通信端末を接続している旨の返答があった場合には、前記探索対象の通信端末の接続先は当該スイッチングハブである旨の報知を行う一方、他のスイッチングハブを新たな問い合せ先とすべき旨の返答があった場合には、当該他のスイッチングハブを前記探索対象の通信端末の接続先の候補として選択し直して前記第4の手段による処理を繰り返す第5の手段と、を有し、
(C)前記第1および第2のテーブルを有するスイッチングハブは、
前記ルータからの問い合せに応じて、当該問い合せにかかる通信端末に対応する通信ポートを自装置の第1のテーブルの格納内容から特定する第6の手段と、
前記第6の手段により特定された通信ポートに他のスイッチングハブが接続されているか否かを自装置の第2のテーブルの格納内容に基づいて判定し、他のスイッチングハブが接続されていると判定される場合には、当該他のスイッチングハブを新たな問い合せ先とすべき旨を前記ルータに返答し、他のスイッチングハブが接続されていないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨を前記ルータに返答する第7の手段と、を有する
ことを特徴とする通信システム。
【請求項5】
(A)複数の通信ポートを備えた通信インタフェース部と、
(B)当該ルータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、
(D)当該ルータの配下のネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブからの通知によって当該第2のテーブルの格納内容を取得し記憶する記憶手段と、
(E)探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを前記第1のテーブルの格納内容から特定する第1の処理と、
前記第1の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該ルータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第2の処理と、
前記第1の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第2の処理によって判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第3の処理と、
前記第3の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第4の処理と、
前記第4の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、前記記憶手段に記憶されている当該スイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第4の処理を繰り返す第5の処理と、を実行する端末探索手段と、
を有することを特徴とするルータ。
【請求項6】
(A)複数の通信ポートを備えた通信インタフェース部と、
(B)当該スイッチングハブへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子、に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルと、
(C)前記複数の通信ポートの各々のポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルと、
(D)前記第2のテーブルの格納内容を当該スイッチングハブを含むネットワークと他のネットワークとを接続するルータに通知する隣接中継装置通知手段と、
(E)前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段と
を有することを特徴とするスイッチングハブ。
【請求項7】
コンピュータに、
当該コンピュータへ宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルを記憶するとともに、各通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルを記憶し、さらに、当該コンピュータを介して他のネットワークに接続されるネットワークに含まれるスイッチングハブであって、当該スイッチングハブについての前記第1のテーブルおよび前記第2のテーブルを有するスイッチングハブから当該第2のテーブルの格納内容を取得して記憶する第1の処理と、
探索対象の通信端末を示すデータとして当該通信端末のハードウェア識別子または当該ハードウェア識別子に一意に変換される他の識別子であって、前記OSI参照モデルにおける他の階層の識別子が入力されたことを契機として、当該通信端末に対応する通信ポートを当該コンピュータについての前記第1のテーブルの格納内容から特定する第2の処理と、
前記第2の処理にて特定された通信ポートの接続先が前記配下のネットワークに含まれるスイッチングハブであるか否かを、当該コンピュータについての前記第2のテーブルの格納内容に基づいて判定し、スイッチングハブではないと判定される場合には、前記探索対象の通信端末は自装置に接続されている旨の報知を行う第3の処理と、
前記第2の処理にて特定された通信ポートの接続先がスイッチングハブであると前記第3の処理にて判定された場合には、当該スイッチングハブを前記探索対象の通信端末の接続先の候補として選択する第4の処理と、
前記第4の処理にて選択されたスイッチングハブに対して、前記探索対象の通信端末に対応する通信ポートを問い合せる第5の処理と、
前記第5の処理の問い合せ先のスイッチングハブから返答された通信ポートの接続先が他のスイッチングハブであるか否かを、当該問い合せ先のスイッチングハブについての前記第2のテーブルの格納内容を参照して判定し、当該通信ポートの接続先が他のスイッチングハブではない場合には、前記探索対象の通信端末は当該問い合せ先のスイッチングハブに接続されている旨の報知を行う一方、当該通信ポートの接続先が他のスイッチングハブである場合には、当該他のスイッチングハブを新たな候補として選択し直して前記第5の処理を繰り返す第6の処理と、
を実行させることを特徴とするプログラム。
【請求項8】
コンピュータを、
当該コンピュータに宛ててフレームの送信を行った通信端末をOSI参照モデルの第2層において一意に識別するハードウェア識別子に対応付けて当該フレームを受信した通信ポートのポート識別子を格納する第1のテーブルを記憶するとともに、各通信ポートのポート識別子に対応付けて当該通信ポートを介して受信したフレームの転送元の中継装置のハードウェア識別子を格納する第2のテーブルを記憶する記憶手段と、
前記第2のテーブルの格納内容を当該コンピュータを含むネットワークと他のネットワークとを接続するルータに通知する隣接中継装置通知手段と、
前記ルータから送信された問い合せフレームであって、探索対象の通信端末のハードウェア識別子を内包し当該通信端末から送信されたフレームの受信ポートを問い合せる旨の問い合せフレームを受信したことを契機として、該当する通信ポートを前記第1のテーブルの格納内容から特定してその特定結果を前記ルータに返答する通信ポート通知手段
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−175294(P2012−175294A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−33919(P2011−33919)
【出願日】平成23年2月18日(2011.2.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願日】平成23年2月18日(2011.2.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]