説明

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

【課題】ルータ配下のネットワークにおけるネットワークトポロジを当該ネットワークに過剰な負荷をかけることなく把握することができるようにする。
【解決手段】ルータには、各スイッチングハブに対して隣接中継装置を示す情報の通知を要求する要求フレームに自装置の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)の運用管理や保守を行う際には、ルータとその配下の拠点内LANに含まれる各スイッチングハブとの接続関係(以下、ネットワークトポロジ)を把握しておくことが重要である。このため、LANにおけるネットワークトポロジの把握を可能にするための技術が種々提案されている。例えば、特許文献1に開示された技術においては、ネットワークトポロジの把握対象のLANに管理ノードと呼ばれるコンピュータ装置を接続し、当該管理ノードから所定のフレームをマルチキャスト/ブロードキャストさせる一方、各スイッチングハブには、当該フレームの受信を契機として当該フレームに対する応答フレームのペイロード部に自装置のMAC(Media Access Control)アドレスを書き込んで返信する処理を実行させる。ここで、MACアドレスとは、第2層において各通信装置を一意に識別するハードウェア識別子である。また、特許文献1に開示された技術では、各スイッチングハブに、他のスイッチングハブから送信された応答フレームの転送を行う際に自装置のMACアドレスをペイロード部に追記して転送する処理を実行させる。このようにして各スイッチングハブから返信されてくる応答フレームのペイロード部に書き込まれているMACアドレスの配列を辿ることで、上記LANにおけるネットワークトポロジが把握されるのである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−221285号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
多数のスイッチングハブを含む大規模なLANでは、カスケード接続の段数が多く、各スイッチングハブの接続関係も複雑であることが多い。このため、大規模なLANほどそのネットワークトポロジを把握することの重要性は高まる。しかし、特許文献1に開示された技術には、カスケード接続の段数が多く大規模なLANに適用し難いといった問題点がある。その理由は以下の通りである。特許文献1に開示された技術では、スイッチングハブによって応答フレームの転送が行われるたびにペイロード部のデータサイズが増加する。このため、カスケード接続の段数が増えるほど、ペイロード部のデータサイズの大きい応答フレームがLAN内を伝送されることになる。つまり、スイッチングハブのカスケード接続の段数が増えるにつれて、ネットワークトポロジの把握のための通信によってLANにかかる負荷が大きくなるのである。ネットワークトポロジの把握のための通信によってLANに過剰な負荷がかかると、当該LANを介して行われる本来のデータ通信(例えば、LANに収容される通信端末間のデータ通信)に悪影響をおよぼす恐れがある。これが、大規模なLANにおけるネットワークトポロジの把握に、特許文献1に開示された技術を適用し難い理由である。また、特許文献1に開示された技術では、全てのスイッチングハブから送信された応答フレームを受信した時点でネットワークトポロジの把握が行われるため、所定のフレームのマルチキャストからネットワークトポロジの把握までに長い時間を要しレスポンスが悪いといった問題がある。さらに、特許文献1に開示された技術では、LANにかかる負荷の増大に連れて応答フレームの欠落が発生し易くなり、応答フレームの欠落が発生した場合にネットワークトポロジを把握できない、といった問題もある。
【0006】
本発明は上記課題に鑑みて為されたものであり、ルータ配下のネットワークにおけるネットワークトポロジを当該ネットワークに過剰な負荷をかけることなく把握することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために本発明は、ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、(A)前記複数のスイッチングハブのうちの少なくとも1つは、記憶手段を有するとともに、受信したフレームの宛先に応じて当該フレームの転送制御を行う処理であって、受信したフレームに当該フレームの転送を行った装置をOSI参照モデルの第2層において一意に識別するハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行う第1の手段と、前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを前記ルータへ送信する第2の手段と、を有し、(B)前記ルータは、一部のフレームに当該ルータを一意に示すハードウェア識別子を前記転送元識別子として付与して前記ネットワークへマルチキャストする第3の手段と、前記通知フレームを受信し、当該通知フレームのペイロード部から当該通知フレームの送信元のスイッチングハブへフレームの転送を行った装置の転送元識別子のリストを読出し、当該リストに基づいて当該ルータと当該スイッチングハブとの接続関係を表すトポロジデータを生成する第4の手段と、を有することを特徴とする通信システム、を提供する。
【0008】
例えば、ルータ配下のネットワークに含まれるスイッチングハブの全てが上記第1および第2の手段を有するものであれば、転送元識別子の付与されたフレームの転送を行うたびに各スイッチングハブの記憶手段に当該転送元識別子が蓄積される。つまり、各スイッチングハブに対してフレームの転送を行った隣接中継装置が特定されるのである。ここで、上記ルータは、配下のネットワークに向けてマルチキャストするフレームのうちの一部のものに転送元識別子を付与してマルチキャストするのであるから、各スイッチングハブでは、当該フレームを受信して転送元識別子を記憶し、フラッディングする処理が行われる。これにより、各スイッチングハブについての上流側(ルータに近い側)の隣接中継装置が特定される。各スイッチングハブについて上流側の隣接中継装置が特定されるということは、上記ルータと各スイッチングハブの接続関係が特定されることに他ならない。
【0009】
加えて、本発明の通信システムにおいては、各スイッチングハブは転送元識別子の付与されたフレームの転送を行う際に自装置のハードウェア識別子を新たな転送元識別子として追記するのではなく、転送元識別子の書き換えを行うのであるから、スイッチングハブにてフレームの転送が行われるたびに当該フレームのペイロード部のデータサイズが増加することはない。このため、本発明の通信システムによれば、ルータ配下のネットワークが大規模化したとしても、当該ネットワークに過剰な負荷をかけることなく、そのネットワークトポロジを特定することが可能になる。なお、詳細については後述するが、ルータ配下のネットワークに含まれるスイッチングハブのなかに上記第1および第2の手段を有しないもの(具体的には、従来のスイッチングハブ)が含まれている場合であっても、当該従来のスイッチングハブを省いた大まかなネットワークトポロジを特定することができる。
【0010】
より好ましい態様においては、前記第2の手段は、前記通知フレームを前記ルータへ送信する際に、自装置のハードウェア識別子を転送元識別子として付与して送信することを特徴とする。このような態様によれば、各スイッチングハブの上流側の隣接中継装置に加えて、下流側の隣接中継装置が特定される。
【0011】
また別の好ましい態様においては、前記一部のフレームとは、前記通知フレームの送信を要求するために新たに定義した要求フレームであり、前記第2の手段は、当該要求フレームを受信したことを契機として前記通知フレームを送信する。このような態様によれば、第2層における既存の通信プロトコルとは別個に、ネットワークトポロジを特定するための新たな通信プロトコル(第2層の通信プロトコル)を定めることが可能になる。ここで、要求フレームをどのようなタイミングでルータに送信させるのかについては種々の態様が考えられる。例えば、ネットワークに含まれる通信端末から予め定められた種類のパケットを受信したことを契機として送信させる態様や、所定の時間間隔で周期的にマルチキャストさせる態様などである。詳細については後述するが、このような態様によれば、ネットワークトポロジに変化が生じたときに、当該変化後のネットワークトポロジを遅滞なく運用管理者に把握させることができる、と期待される。
【0012】
また別の好ましい態様においては、前記第1の手段は、転送元識別子が付与されているフレームを受信した通信ポートのポート識別子と当該転送元識別子とを対応付けて前記記憶手段に書き込むことを特徴とする。このような態様によれば、隣接中継装置に対するポートの接続関係(すなわち、各スイッチングハブが備える複数の通信ポートのうちの何れが上流側或いは下流側の隣接中継装置に接続されているのか)を含めてルータ配下のネットワークにおけるネットワークトポロジを特定することが可能になる。
【0013】
上記課題を解決するために、本発明は、記憶手段と、受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、自装置に対して当該フレームの転送を行った装置をOSI参照モデルの第2層において一意に示すハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを、自装置を含むネットワークと他の通信網とを接続するルータへ送信する通知フレーム送信手段とを有することを特徴とするスイッチングハブ、を提供する。
【0014】
このようなスイッチングハブと、前述した第3および第4の手段を有するルータとを組み合わせることで、本発明の通信システムを構築することができるからである。また、本発明の別の態様としては、コンピュータを上記フレーム転送制御手段および通知フレーム送信手段として機能させることを特徴とするプログラムを提供する態様も考えられる。このようなプログラムにしたがって一般的なコンピュータを作動させることで、当該コンピュータを本発明のスイッチングハブとして機能させることが可能になるからである。また、このようなプログラムの具体的な提供態様としては、CD−ROM(Compact Disk-Read Only Memory)などのコンピュータ読み取り可能な記録媒体に書き込んで配布する態様や、インターネットなどの電気通信回線経由のダウンロードにより配布する態様が考えられる。
【0015】
また、上記課題を解決するために、本発明は、一部のフレームに、OSI参照モデルの第2層において当該ルータを一意に示すハードウェア識別子を当該フレームの転送元を示す転送元識別子として付与して配下のネットワークへマルチキャストするマルチキャスト手段と、前記ネットワークに含まれる1または複数のスイッチングハブの各々から送信されてくる通知フレームであって、当該通知フレームの送信元のスイッチングハブに対してフレームの転送を行った他の装置のハードウェア識別子のリストがペイロード部に書き込まれた通知フレームを受信し、前記1または複数のスイッチングハブの各々について当該スイッチングハブに対してフレームの転送を行った装置を当該転送元識別子のリストから特定し、自装置と前記1または複数のスイッチングハブとの接続関係を表すトポロジデータを生成する接続関係特定手段と、を有することを特徴とするルータ、を提供する。
【0016】
このようなルータと、前述した第1および第2の手段を有するスイッチングハブとを組み合わせることで、本発明の通信システムを構築することができるからである。また、本発明の別の態様としては、コンピュータを上記マルチキャスト手段および接続関係特定手段として機能させることを特徴とするプログラムを提供する態様も考えられ、このようなプログラムの提供態様の具体例は前述した通りである。
【図面の簡単な説明】
【0017】
【図1】本発明の第1実施形態のLAN1Aの構成例を示す図である。
【図2】同LAN1Aに含まれるスイッチングハブ50の構成例を示す図である。
【図3】同スイッチングハブ50のスイッチングエンジン部520が実行するフレーム転送制御処理の流れを示すフローチャートである。
【図4】同LAN1Aにおいて送受信されるフレームのデータ構造を示す図である。
【図5】同LAN1Aを他のネットワークに接続するルータ60の構成例を示す図である。
【図6】通信端末40、スイッチングハブ50およびルータ60の各々の通信ポートの接続関係の一例を示す図である。
【図7】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図8】スイッチングハブ50およびルータ60の動作を説明するための図である。
【図9】本発明の第2実施形態のLAN1Bの構成例を示す図である。
【図10】同LAN1Bにおいてルータ60により生成されるトポロジデータから把握されるネットワークトポロジを説明するための図である。
【発明を実施するための形態】
【0018】
以下、図面を参照しつつ、この発明の実施形態について説明する。
<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が各々接続されている。
【0019】
操作端末30、通信端末40Aおよび40Bの各々は、例えばパーソナルコンピュータである。操作端末30はLAN1Aの運用管理のための各種操作をLAN1Aの運用管理者に行わせるためのものである。通信端末40Aおよび40Bは、LAN1Aに含まれる何れかのスイッチングハブに接続されることで、当該LAN1Aに収容される。LAN1Aに収容された通信端末40Aおよび40Bの各々は、他の通信装置(例えば、LAN1Aに収容されている他の通信端末や他の拠点内LANに収容されている通信端末、或いはIP網に接続されているWWWサーバなど)との間でIPにしたがったパケット通信を行う。以下、通信端末40Aおよび40Bの各々を区別する必要がない場合には、「通信端末40」と表記する。なお、図1ではLAN1Aに2台の通信端末40が収容される場合について例示されているが、3台以上の通信端末40がLAN1Aに収容されても良く、また、通信端末40が1台だけ収容されている態様であっても勿論良い。
【0020】
図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の配下のネットワーク」と呼ぶ場合がある。
【0021】
図1に示すLAN1Aにおいては、第2層の通信プロトコルにしたがったデータ通信(すなわち、フレームの送受信および転送制御)の実行過程において、LAN1Aに含まれる各中継装置(すなわち、ルータ60およびスイッチングハブ50)に、隣接中継装置を検出させる。ここで、隣接中継装置とは、当該中継装置に対してフレームの転送を行った他の中継装置のことであり、LAN1Aにおいては当該中継装置に直結されている他の中継装置のことである。例えば、LAN1Aにおいては、ルータ60についての隣接中継装置はスイッチングハブ50Aであり、スイッチングハブ50Aについての隣接中継装置はルータ60およびスイッチングハブ50Bである。また、スイッチングハブ50Bについての隣接中継装置はスイッチングハブ50A、50Cおよび50Dであり、スイッチングハブ50C(或いは50D)についての隣接中継装置はスイッチングハブ50Bである。
【0022】
そして、図1に示すLAN1Aにおいては、隣接中継装置の検出結果をルータ60へ通知する処理を各スイッチングハブ50に実行させる一方、ルータ60には、各スイッチングハブ50からの通知結果に基づいて自装置と各スイッチングハブ50の接続関係(すなわち、LAN1Aのネットワークトポロジ)を表すトポロジデータを生成する処理を実行させる。LAN1Aの運用管理者は、操作端末30を用いて上記トポロジデータを参照することで、当該LAN1Aのネットワークトポロジを把握することができるのである。以下、本実施形態の特徴を顕著に示すスイッチングハブ50およびルータ60を中心に説明する。
【0023】
<A−1−1:スイッチングハブ50の構成>
図2は、スイッチングハブ50の構成を示すブロック図である。図2に示すように、スイッチングハブ50は、通信インタフェース(以下、I/F)部510、スイッチングエンジン部520、および記憶部530を有している。
【0024】
通信I/F部510は、複数の通信ポートを有している。これら複数の通信ポートの各々には、例えば100BASE−Tなどの通信ケーブルを介して他の通信装置(本実施形態では、ルータ60や他のスイッチングハブ50、或いは通信端末40の何れか)が接続される。これら複数の通信ポートの各々には、通信ポート毎に固有のポート識別子(例えば、ポート番号)が予め割り当てられており、当該ポート識別子を用いて各通信ポートを一意に識別することができる。通信I/F部510は、各通信ポートを介して受信したフレームをスイッチングエンジン部520に与える一方、スイッチングエンジン部520から与えられるフレームを同スイッチングエンジン部520によって指示された通信ポートから送出する。
【0025】
記憶部530は、例えばRAM(Random Access Memory)などの揮発性メモリとEPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリとを含んでいる(図2では、何れも図示略)。この不揮発性メモリには、本発明のスイッチングハブの特徴を顕著に示す処理をスイッチングエンジン部520に実行させるためのファームウェア(プログラム)が予め記憶されている。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてスイッチングエンジン部520によって利用される。また、上記揮発性メモリは、通信I/F部510によって受信されたフレームを一時的に記憶しておくためのバッファの役割を果たし、さらに、この揮発性メモリには、図2のMACアドレステーブルと同図2の隣接中継装置テーブルとが格納される。
【0026】
図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アドレスに基づくフレームの転送制御を行う際に利用される。
【0027】
隣接中継装置テーブルには、通信I/F部510が有する複数の通信ポートの各々のポート識別子に対応付けて接続先識別子が格納される。ここで、接続先識別子とは、当該接続先識別子を対応付けられている通信ポートの接続先が隣接中継装置であるか否かを示すとともに、当該接続先が隣接中継装置である場合には当該隣接中継装置を一意に示す情報である。前述したように隣接中継装置とは、当該スイッチングハブ50に対してフレームの転送を行った他の中継装置(本実施形態では、ルータ60或いは他のスイッチングハブ50)のことである。本実施形態では、隣接中継装置に接続されている通信ポートのポート識別子には接続先識別子として当該隣接中継装置のMACアドレスが対応付けられ、隣接中継装置以外の他の通信装置(本実施形態では、通信端末40)が接続さている通信ポート、或いは他の通信装置に接続されていない通信ポートには接続先識別子としてNULL(0x00)が対応付けられる。
【0028】
この隣接中継装置テーブルは、スイッチングハブ50の電源(図示略)が投入されたことを契機として、各接続先識別子をNULLとした状態で生成される。そして、予め定められた特定のフレームの中継を行うことに伴って、当該テーブルの格納内容の更新(すなわち、隣接中継装置が接続されている通信ポートのポート識別子に対応する接続先識別子を当該隣接中継装置のMACアドレスに書き換えること)が行われる。詳細については後述するが、本実施形態では、上記特定のフレームとして、ネットワークトポロジ特定用のフレーム(隣接中継装置テーブルの格納内容をルータ60に通知するために各スイッチングハブ50が送信する通知フレームと、当該通知フレームの送信を要求するためにルータ60が配下のLAN1A内にマルチキャストする要求フレームの2種類)が予め定められている。本実施形態の特徴の1つは、このような隣接中継装置テーブルを各スイッチングハブ50に記憶させ、上記ネットワークトポロジ特定用のフレームの転送制御に伴ってその格納内容を更新させるようにしたことにある。
【0029】
スイッチングエンジン部520は、例えばCPU(Central Processing Unit)である。スイッチングエンジン部520は、記憶部530に記憶されているファームウェアを実行することで、スイッチングハブ50の制御中枢として機能する。このファームウェアにしたがって作動しているスイッチングエンジン部520は、何れかの通信ポートを介してフレームを受信するたびに、図3のフローチャートに示す処理を実行する。図3に示すように、上記ファームウェアにしたがってスイッチングエンジン部520が実行する処理としては、フレーム転送制御処理と通知フレーム送信処理の2つが挙げられる。以下、これら2つの処理の処理内容の詳細な説明に先立って、LAN1Aにおいて送受信されるフレームのデータ構造について説明しておく。
【0030】
図4(A)は、LAN1Aにおいて送受信される一般的なフレームのデータ構造を示す図である。図4(A)に示すように、フレームは、ヘッダ部と、ペイロード部とを有している。ヘッダ部には、送信先MACアドレス、送信元MACアドレス、種別識別子が格納される。例えば、前述した要求フレームの場合は、送信先MACアドレスにはマルチキャストアドレスがセットされ、送信元MACアドレスにはルータ60のMACアドレスがセットされる。要求フレームはルータ60から配下のLAN1Aに向けてマルチキャストされるからである。また、通知フレームの場合は、送信先MACアドレスにはルータ60のMACアドレスがセットされ、送信元MACアドレスにはその送信元のスイッチングハブ50のMACアドレスがセットされる。前述したように、通知フレームは、スイッチングハブ50からルータ60へユニキャストされるからである。種別識別子とは、フレームのペイロード部に格納されているデータ(パケット)の種類を示す識別子である。前述した要求フレームおよび通知フレームの場合、ネットワークトポロジ特定用データがペイロード部に格納されたネットワークトポロジ特定用フレームであることを明示するための値(本実施形態では、0xe812)が種別識別子にセットされる。
【0031】
図4(B)は、要求フレームのペイロード部のデータ構造を示す図であり、図4(C)は、通知フレームのペイロード部のデータ構造を示す図である。図4(B)および図4(C)に示すように、要求フレームのペイロード部のデータ構造と通知フレームのペイロード部のデータ構造は、後者が隣接中継装置情報を含む点のみが異なる。前述したように、通知フレームは、要求フレームに対する応答としてスイッチングハブ50がルータ60へ返信するものであり、当該通知フレームの返信時点における当該スイッチングハブ50の隣接中継装置テーブルの格納内容(すなわち、当該スイッチングハブ50の隣接中継装置のMACアドレスと当該隣接中継装置から転送されたフレームを受信した通信ポートのポート識別子のリスト)が上記隣接中継装置情報としてセットされる。
【0032】
また、図4(B)と図4(C)とを対比すれば明らかなように、要求フレームのペイロード部と通知フレームのペイロード部には、送信先MACアドレス、送信元MACアドレス、フレーム種別識別子(要求フレームであるか、それとも、通知フレームであるかを示す識別子)、転送元識別子が共通して書き込まれる。図4(B)(或いは図4(C))の送信先MACアドレスおよび送信元MACアドレスについては、当該要求フレーム(或いは通知フレーム)のヘッダ部に書き込まれていたものと同一のものが各々書き込まれる。転送元識別子には、要求フレーム(或いは通知フレーム)の送信の際にはその送信元のMACアドレスがセットされ、他のスイッチングハブ50によって当該フレームの転送が行われるたびに当該転送を行ったスイッチングハブ50のMACアドレスに書き換えられる。
以上がLAN1Aにおいて送受信されるフレームのデータ構造である。
【0033】
次いで、図3を参照しつつ、フレーム転送制御処理、および通知フレーム送信処理の処理内容を説明する。図3に示すように、フレーム転送制御処理は、その送信先MACアドレスに基づく転送制御(ステップSA150)を含んでいる。ここで、受信フレームの送信先MACアドレスに基づく転送制御とは、当該送信先MACアドレスがユニキャストアドレスではない場合、または当該送信先MACアドレスがMACアドレステーブルに格納されていないユニキャストアドレスである場合には、当該受信フレームのフラッディングを行う一方、当該送信先MACアドレスがMACアドレステーブルに格納されたユニキャストアドレスである場合には、当該MACアドレスに対応付けてMACアドレステーブルに格納されているポート識別子の示す通信ポートのみから当該受信フレームを送出することである。ここでユニキャストアドレスではないMACアドレスとしては、マルチキャストアドレスまたはブロードキャストアドレスが挙げられる。また、フラッディングとは、受信フレームを受信した通信ポート以外の全ての通信ポートから当該受信フレームを送出することである。この送信先MACアドレスに基づく転送制御については従来のスイッチングハブにおけるものと特段に変るところはない。換言すれば、従来のスイッチングハブでは、フレーム転送制御処理として上記送信先MACアドレスに基づく転送制御(ステップSA150の処理)のみが実行されるのである。
【0034】
図3に示すように、本実施形態のフレーム転送制御処理は、ステップSA150の処理の他に、ステップSA100〜SA120の処理を含んでいる。図3に示すように、本実施形態のフレーム転送制御処理では、スイッチングエンジン部520は、まず、受信フレームがネットワークトポロジ特定用フレーム(すなわち、要求フレーム或いは通知フレーム)であるか否かを当該受信フレームのヘッダ部の種別識別子を参照して判定する(ステップSA100)。具体的には、スイッチングエンジン部520は、受信フレームの種別識別子の値が0xe812である場合には、当該受信フレームはネットワークトポロジ特定用フレームであると判定する。そして、スイッチングエンジン部520は、ステップSA100の判定結果が“No”である場合には、前述したステップSA150の処理を実行して本フレーム転送制御処理を終了し、逆に、ステップSA100の判定結果が“Yes”である場合には、ステップSA110以降の処理を実行する。
【0035】
ステップSA100の判定結果が“Yes”である場合に実行されるステップSA110では、スイッチングエンジン部520は、ネットワークトポロジ特定用フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を、当該フレームのペイロード部に書き込まれている転送元識別子によって書き換える。そして、スイッチングエンジン部520は、受信したネットワークトポロジ特定用フレームの転送元識別子を自装置のMACアドレスに書き換える(ステップSA120)。このように、ネットワークトポロジ特定用フレームを受信した場合に上記ステップSA110およびSA120の処理を実行する点に本実施形態のスイッチングハブ50の特徴の1つがある。加えて、スイッチングエンジン部520は、図3に示すように、受信フレームが要求フレームであるか否かを当該受信フレームのペイロード部のフレーム種別識別子を参照して判定し(ステップSA130)、その判定結果がYesである場合には、さらに、通知フレーム送信処理(ステップSA140)を実行する。この通知フレーム送信処理では、スイッチングエンジン部520は、自装置の隣接中継装置テーブルの格納内容に応じた隣接中継装置情報と転送元識別子(自装置のMACアドレス)とをペイロード部に書き込んだ通知フレームを生成し、ルータ60に送信(ユニキャスト)する。
以上がスイッチングハブ50の構成である。
【0036】
<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によって指示された通信ポートから送出する。
【0037】
記憶部630も、スイッチングハブ50の記憶部530と同様に、RAMなどの揮発性メモリとEPROMなどの不揮発性メモリを含んでいる(図示略)。この不揮発性メモリにはファームウェアが格納されている。本実施形態では、このファームウェアにしたがってルーティングエンジン部620を作動させることによって本実施形態の特徴を顕著に示すルータ60の機能が実現される。一方、揮発性メモリは、上記ファームウェアを実行する際のワークエリアとしてルーティングエンジン部620によって利用されるとともに、受信したフレーム(或いは、パケット)を一時的に蓄積しておくためのバッファの役割を果たす。また、当該揮発性メモリには、図5に示すルーティングテーブル、当該ルータ60についてのMACアドレステーブルおよび隣接中継装置テーブルの各テーブルが格納される。
【0038】
ルーティングエンジン部620は、スイッチングハブ50のスイッチングエンジン部520と同様、CPU(Central Processing Unit)である。ルーティングエンジン部620は、記憶部630に記憶されているファームウェアを実行し、ルータ60の制御中枢として機能する。ルーティングエンジン部620は上記ファームウェアにしたがって、パケット転送制御処理、マルチキャスト処理、および接続関係特定処理を実行する。パケット転送制御処理は、通信I/F部610を介して受信したパケットの送信先IPアドレスとルーティングテーブルの格納内容とに基づいて当該パケットの転送を行う処理である。このパケット転送制御処理については、従来のルータにおけるものと特段に変るところはないため詳細な説明を省略し、以下では、マルチキャスト処理および接続関係特定処理を中心に説明する。
【0039】
マルチキャスト処理は、前述した要求フレームを生成し、転送元識別子として自装置のMACアドレスを付与して配下のネットワーク(すなわち、LAN1A)に向けてマルチキャストする処理である。詳細については後述するが、本実施形態では、このマルチキャスト処理はルータ60の電源(図示略)投入後、所定時間T(例えば、3秒)が経過する毎に周期的に実行される。
【0040】
接続関係特定処理では、ルーティングエンジン部620は、まず、各スイッチングハブ50から送信されてくる通知フレームの受信を契機として、当該通知フレームを受信した通信ポートのポート識別子に対応付けて隣接中継装置テーブルに格納されている接続先識別子を当該フレームのペイロード部に書き込まれている転送元識別子に書き換える。そして、ルーティングエンジン部620は、自装置の隣接中継装置テーブルの格納内容と、各スイッチングハブ50から通知された隣接中継装置情報とから、LAN1Aにおけるルータ60および各スイッチングハブ50の接続関係を表すトポロジデータを生成する。
【0041】
より詳細に説明すると、ルーティングエンジン部620は、自装置の隣接中継装置テーブルの格納内容と各スイッチングハブ50から通知された隣接中継装置情報とに基づいて、自装置および各スイッチングハブ50の各々について、上流側隣接中継装置を示す第1のポインタ(例えば、上流側隣接中継装置に接続されている通信ポートのポート識別子と当該上流側隣接中継装置のMACアドレスとを示すデータ)と、下流側中継装置を示す1または複数の第2のポインタ(例えば、下流側隣接中継装置に接続されている通信ポートのポート識別子と当該下流側隣接中継装置のMACアドレスとを示すデータ)とからなる双方向リスト構造の構造体データを生成し、これら構造体データの集合を上記トポロジデータとする。ここで、上流側隣接中継装置とは、自装置が属するネットワークと他のネットワークとを接続するルータに近い側の隣接中継装置であり、下流側隣接中継装置とは同ルータから遠い側の隣接中継装置である。例えば、図1に示すLAN1Aにおいて、スイッチングハブ50Aの上流側隣接中継装置はルータ60であり、下流側隣接中継装置はスイッチングハブ50Bである。同様に、スイッチングハブ50Bの上流側隣接中継装置はスイッチングハブ50Aであり、下流側隣接中継装置はスイッチングハブ50Cと50Dである。なお、図1のルータ60のように上流側隣接中継装置を有さない装置についての構造体データにおいては、上記第1のポインタにNULLをセットすれば良い。同様に、図1のスイッチングハブ50C(或いは50D)のように、下流側隣接中継装置を有さない装置についての構造体データにおいては上記第2のポインタにNULLをセットすれば良い。
【0042】
上記のような双方向リスト構造の構造体データの集合をトポロジデータとして用いる場合、互いに隣接する2つの中継装置を上流側から第2のポインタを用いて辿っても、また下流側から第1のポインタを用いて辿っても矛盾が生じないことが必要となる。例えば、図1に示すルータ60およびスイッチングハブ50の各々について上記構造体データを生成する場合には、スイッチングハブ50Aに対応する構造体データの第2のポインタによってスイッチングハブ50Bが示されており、スイッチングハブ50Bに対応する構造体データの第1のポインタによってスイッチングハブ50Aが示されている必要がある。このため、例えば、スイッチングハブ50Bからは隣接中継装置としてスイッチングハブ50Aを通知されたにもかかわらず、スイッチングハブ50Aからは隣接中継装置としてスイッチングハブ50Bが通知されてこないといった矛盾が生じた場合には、ルーティングエンジン部620は矛盾が生じていない範囲でのみトポロジデータを生成する。矛盾を含むトポロジデータによって、LAN1Aにおけるネットワークトポロジが誤って把握されないようにするためである。
以上がルータ60の構成である。
【0043】
<A−2:動作>
以下、ルータ60と各スイッチングハブ50とが8つの通信ポートを有し、図6に示すように相互に接続されている場合を例にとって本実施形態の動作を説明する。図6では、通信ポートを黒塗りの丸印で示し、当該通信ポートのポート番号を#付の数字で表記した。図6に示すように、ルータ60のポート番号=1の通信ポートにはスイッチングハブ50Aが接続されており、スイッチングハブ50Aから見ればルータ60はスイッチングハブ50Aのポート番号=8の通信ポートに接続されている。
【0044】
図6に示すように、スイッチングハブ50Aのポート番号=7の通信ポートにはスイッチングハブ50Bが接続されており、スイッチングハブ50Bから見ればスイッチングハブ50Aはスイッチングハブ50Bのポート番号=5の通信ポートに接続されている。スイッチングハブ50Bのポート番号=4の通信ポートにはスイッチングハブ50Cが接続されており、同ポート番号=6の通信ポートにはスイッチングハブ50Dが接続されている。スイッチングハブ50Cから見れば、スイッチングハブ50Bはポート番号=3の通信ポートに接続されており、スイッチングハブ50Dから見れば、スイッチングハブ50Bはポート番号=2の通信ポートに接続されている。そして、通信端末40Aはスイッチングハブ50Cのポート番号=7の通信ポートに接続されており、通信端末40Bはスイッチングハブ50Dのポート番号=8の通信ポートに接続されている。また、以下に説明する動作の開始時点では、各スイッチングハブ50の隣接中継装置テーブルの接続先識別子はNULLクリアされている。
【0045】
ルータ60のルーティングエンジン部620は、ルータ60の電源(図示略)投入後、所定時間Tが経過した時刻T0において要求フレームをマルチキャストする。このようにしてルータ60からマルチキャストされる要求フレームは、まず、スイッチングハブ50Aによって受信される。スイッチングハブ50Aのスイッチングエンジン部520は、ポート番号=8の通信ポートを介して上記要求フレームを受信し、図3のステップSA110、SA120、SA140およびSA150の処理を実行する。前述したように、要求フレームのヘッダ部の種別識別子の値は0xe812であるため、図3のステップSA100の判定結果は“Yes”になり、また、受信フレームが要求フレームであるため、同図3のステップSA130の判定結果も“Yes”になるからである。
【0046】
ステップSA110の処理が実行されるため、ポート番号=8に対応づけてスイッチングハブ50Aの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、ルータ60のMACアドレス)によって書き換えられる。また、当該受信フレームの転送元識別子はステップSA120の処理によってスイッチングハブ50AのMACアドレスに書き換えられる。ステップSA140では、ステップSA110の処理による更新後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームがスイッチングハブ50Aからルータ60にユニキャストされる。そして、ステップSA150では、ステップSA120の処理によって転送元識別子の書き換えが行われた要求フレームのフラッディングが行われる。前述したように、要求フレームの送信先MACアドレスはマルチキャストアドレスだからである。このようにしてフラッディングされた要求フレームは、スイッチングハブ50Bによって受信される。
【0047】
スイッチングハブ50Bのスイッチングエンジン部520も同様に、上流側隣接中継装置によって転送された要求フレームを受信すると、図3のステップSA110、SA120、SA140およびSA150の処理を実行する。より詳細に説明すると、スイッチングハブ50Bのスイッチングエンジン部520は、自装置の隣接中継装置テーブルにおいてポート番号=5に対応する接続先識別子を、スイッチングハブ50Aから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50AのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ60にユニキャストする。加えて、スイッチングハブ50Bのスイッチングエンジン部520は、転送元識別子をスイッチングハブ50BのMACアドレスに書き換えた要求フレームのフラッディングを行う。このようにしてフラッディングされた要求フレームはスイッチングハブ50Cおよび50Dによって各々受信される。
【0048】
スイッチングハブ50C(或いは50D)のスイッチングエンジン部520も同様に、上流側隣接中継装置によって転送された要求フレームを受信すると、図3のステップSA110、SA120、SA140およびSA150の処理を実行する。より詳細に説明すると、スイッチングハブ50Cは、スイッチングハブ50Bによって転送された要求フレームを受信すると、自装置の隣接中継装置テーブルにおいてポート番号=3に対応する接続先識別子を、スイッチングハブ50Bから転送された要求フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ60にユニキャストする。
【0049】
同様に、スイッチングハブ50Dも、隣接中継装置テーブルにおいてポート番号=2に対応する接続先識別子を、スイッチングハブ50BのMACアドレスによって書き換え、当該書き換え後の隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームをルータ60にユニキャストする。なお、スイッチングハブ50Cおよび50Dは、転送元識別子を自装置のMACアドレスに書き換えた要求フレームをフラッディングする処理も行う。しかし、スイッチングハブ50Cおよび50Dよりも下流側にスイッチングハブは接続されていないため、以降、要求フレームの転送が行われることはない。
【0050】
以上説明したように、ルータ60からマルチキャストされた要求フレームの転送制御を行う過程でスイッチングハブ50A、50B、50C、および50Dの各々の隣接中継装置テーブルの格納内容は図7に示す状態となり、これら各隣接中継装置テーブルの格納内容を隣接中継装置情報として書き込んだ通知フレームが各スイッチングハブ50からルータ60にユニキャストされる。なお、図7では、各スイッチングハブ50の隣接中継装置テーブルの格納内容が吹き出しで示されている(図8についても同様)。
【0051】
次いで、通知フレームの転送制御に伴って行われる隣接中継装置テーブルの更新について説明する。スイッチングハブ50Bのスイッチングエンジン部520は、スイッチングハブ50Cからルータ60へユニキャストされた通知フレームを、ポート番号=4の通信ポートを介して受信すると、図3のステップSA110、SA120、およびSA150の処理を実行する。通知フレームの種別識別子の値は0xe812であるため、図3のステップSA100の判定結果は“Yes”になり、受信フレームが通知フレームであるため、図3のステップSA130の判定結果は“No”になるからである。
【0052】
ステップSA110の処理が実行されるため、ポート番号=4に対応付けてスイッチングハブ50Bの隣接中継装置テーブルに格納されている接続先識別子は、受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50CのMACアドレス)によって書き換えられ、当該受信フレームの転送元識別子はステップSA120の処理によってスイッチングハブ50BのMACアドレスに書き換えられる。そして、ステップSA150では、ステップSA120の処理によって転送元識別子の書き換えが行われた通知フレームがポート番号=5の通信ポートを介して送出される。スイッチングハブ50Dからルータ60へユニキャストされた通知フレームを受信した場合についても同様に、スイッチングハブ50Bのスイッチングエンジン部520は、図3のステップSA110、SA120、およびSA150の処理を実行する。その結果、スイッチングハブ50Bの隣接中継装置テーブルにおいてポート番号=6に対応する接続先識別子は受信フレームに付与されている転送元識別子(すなわち、スイッチングハブ50DのMACアドレス)によって書き換えられ、当該受信フレームは転送元識別子の書き換えを経た後に、ポート番号=5の通信ポートを介して送出される。
【0053】
スイッチングハブ50Aのスイッチングエンジン部520は、スイッチングハブ50Bから送信された通知フレーム(或いは、スイッチングハブ50Bによって転送された通知フレーム)を受信すると、同様に、図3のステップSA110、SA120、およびSA150の処理を実行する。スイッチングハブ50Aは、隣接中継装置テーブルにおいてポート番号=7に対応する接続先識別子を、スイッチングハブ50Bから受信した通知フレームに付与されている転送元識別子(すなわち、スイッチングハブ50BのMACアドレス)によって書き換え、当該通知フレームの転送元識別子を自装置のMACアドレスに書き換えてルータ60に転送する。ルータ60は、スイッチングハブ50Aから転送された通知フレームをポート番号=1の通信ポートを介して受信すると、自装置の隣接中継装置テーブルにおいて当該ポート番号に対応する接続先識別子を当該フレームに付与されている転送元識別子で書き換える。
【0054】
以上説明したように、他のスイッチングハブ50からルータ60へユニキャストされた通知フレームの転送制御を行う過程で、ルータ60、スイッチングハブ50Aおよび50Bの各々の隣接中継装置テーブルの格納内容は図7に示す状態から図8に示す状態へと更新される。図8に示す各隣接中継装置テーブルを参照すれば明らかように、これら隣接中継装置テーブルの格納内容はLAN1Aにおけるルータ60および各スイッチングハブ50の接続関係を矛盾なく表している。
【0055】
ここで注目すべき点は、以上に説明した動作において、ルータ60が各スイッチングハブ50から受信する通知フレームに書き込まれている隣接中継装置情報は、図8に示す隣接中継装置テーブルの格納内容ではなく、図7に示す隣接中継装置テーブルの格納内容に対応しているという点である。図8に示すルータ60の隣接中継装置テーブルの格納内容と図7に示す各スイッチングハブ50の隣接中継装置テーブルの格納内容とでは、ルータ60とスイッチングハブ50Aとの接続関係のみが矛盾なく表されている。このため、時刻T0においてマルチキャストした要求フレームに対する通知フレームを受信した時点では、ルーティングエンジン部620は、ルータ60とスイッチングハブ50Aとの接続関係のみを表すトポロジデータを生成する。
【0056】
そして、時刻T0からさらに所定時間Tが経過すると、ルーティングエンジン部620は、要求フレームをマルチキャストし、各スイッチングハブ50は上記と同様の処理を実行する。時刻T0+Tにおいてルータ60から送信された要求フレームに対する応答として各スイッチングハブ50が返信する通知フレームの各々には、図8に示す隣接中継装置テーブルの格納内容に対応する隣接中継装置情報が書き込まれている。このため、時刻T0+Tにおいてマルチキャストした要求フレーム(すなわち、時刻T0におけるマルチキャストを1回目とすれば、2回目のマルチキャスト)に対する通知フレームを受信した時点では、ルーティングエンジン部620は、自装置と自装置の配下の全てのスイッチングハブ50の接続関係を表すトポロジデータを生成する。LAN1Aの運用管理者は、このようにして生成されるトポロジデータを操作端末30を用いて参照することで、LAN1Aのネットワークトポロジを把握することができるのである。
【0057】
以上説明したように、本実施形態によれば、各スイッチングハブ50から返信されてくる隣接中継装置情報に基づいてLAN1Aにおけるネットワークトポロジが特定される。ここで、各スイッチングハブ50から送信されてくる隣接中継装置情報のデータサイズは当該スイッチングハブ50に接続される中継装置の数に応じて定まり、当該スイッチングハブ50が有する通信ポート数に応じたデータサイズ以上になることはない。つまり、本実施形態における通知フレームのペイロード部のデータサイズは、LAN1Aに含まれるスイッチングハブ50の数が増加したとしても、その増加に伴って際限なく大きくなることはないのである。このため、LAN1Aが大規模化したとしても、ネットワークトポロジの特定のために過剰な負荷がLAN1Aにかかることはない。
【0058】
このように、本実施形態によれば、LAN1Aに過剰な負荷がかかることを回避しつつ、当該LAN1AにおけるネットワークトポロジをLAN1Aの運用管理者に把握させることが可能になる。また、ルータ60は、所定時間Tが経過する毎に周期的に要求フレームのマルチキャストを行うため、例えばスイッチングハブ50Dに新たに本実施形態のスイッチングハブを接続するようなネットワークトポロジの変更が行われたとしても、新たなスイッチングハブの接続から2回目の要求フレームのマルチキャストによって当該変更後のネットワークトポロジを矛盾なく正確に表すトポロジデータが生成される。また、本実施形態では周期的に要求フレームのマルチキャストが行われるため、仮に、N回目のマルチキャストにより送信した要求フレームや当該要求フレームに対する応答フレームの伝送過程でフレームの欠落が発生したとしても、N+1回目のマルチキャストにおいても同様の欠落が発生するとは限らず、周期的に行われる複数回のネットワークトポロジの特定の全てが失敗するとは限らない。加えて、本実施形態によれば、ネットワークトポロジの特定のために過剰な負荷がLAN1Aにかかることはないため、特許文献1に開示された技術に比較してフレームの欠落がそもそも発生し難いといった特徴もある。このように、本実施形態によれば、LAN1Aに過剰な負荷がかかることを回避しつつ、かつ遅滞なくネットワークトポロジの変更を把握することができるのである。
【0059】
<B:第2実施形態>
図9は、本発明の第2実施形態のLAN1Bの構成例を示すブロック図である。
図9と図1とを対比すれば明らかように、LAN1Bはスイッチングハブ50Bに換えてスイッチングハブ500を有する点がLAN1Aと異なる。このスイッチングハブ500は、一般的な従来のスイッチングハブであって、受信したフレームの送信先MACアドレスに基づくフレームの転送制御(すなわち、図3のステップSA150の処理)のみを実行する点がスイッチングハブ50と異なる。
【0060】
このように、スイッチングハブ500は、受信したフレームの送信先MACアドレスに基づくフレームの転送制御のみを実行するため、スイッチングハブ50Aからスイッチングハブ500に転送された要求フレームは転送元識別子を書き換えられることなく、スイッチングハブ500によってスイッチングハブ50Cおよび50Dに転送される。このため、スイッチングハブ50Cおよび50Dの各々の隣接中継装置テーブルには、スイッチングハブ500が接続されている通信ポートのポート識別子に対応付けて、スイッチングハブ50AのMACアドレスが書き込まれる。
【0061】
スイッチングハブ50Cおよび50Dの各々が通知フレームをルータ60へユニキャストした場合も同様に、これら通知フレームは転送元識別子を書き換えられることなくスイッチングハブ500によってスイッチングハブ50Aに転送される。スイッチングハブ50Aのスイッチング制御部520は、スイッチングハブ50Cおよび50Dの各々から送信された通知フレームを、スイッチングハブ500が接続されている通信ポートを介して受信し、これら通知フレームを受信する度に隣接中継装置テーブルの格納内容を更新する。つまり、スイッチングハブ50Cおよび50Dの各々から送信される通知フレームのうち先に受信したものに応じて行われた更新の内容は後から受信したものに応じて行われた更新の内容によって上書きされる。
【0062】
このため、例えば、ルータ60から1回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する通知フレームのうち前者が先にスイッチングハブ50Aに到達する場合には、2回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子とスイッチングハブ50DのMACアドレスとが対応付けられている。このため、ルータ60は、上記2回目にマルチキャストした要求フレームに対する応答フレームを受信した時点では、図10(A)に示すネットワークトポロジを現すトポロジデータを生成する。
【0063】
これに対して、ルータ60から2回目にマルチキャストされた要求フレームに応じてスイッチングハブ50Cおよび50Dの各々が返信する通知フレームのうちの後者が先にスイッチングハブ50Aに到達する場合には、3回目の要求フレームのマルチキャストに応じてスイッチングハブ50Aが返信する通知フレームに含まれている隣接中継装置情報では、スイッチングハブ500が接続されている通信ポートのポート識別子とスイッチングハブ50CのMACアドレスとが対応付けられている。このため、ルータ60は、上記3回目にマルチキャストした要求フレームに対する応答フレームを受信した時点では、図10(B)に示すネットワークトポロジを現すトポロジデータを生成する。このように、図9に示すLAN1Bでは、スイッチングハブ50Cと50Dから送信された各応答フレームの到達順に応じて異なるネットワークトポロジを表すトポロジデータが生成されるのである。図10(A)および図10(B)と、図8とを対比すれば明らかように、図10(A)および図10(B)の各々が示すネットワークトポロジには、スイッチングハブ500が現れておらず、何れもLAN1Bにおける現実のネットワークトポロジを正確には表していない。
【0064】
このように、ルータ60の配下のネットワークに従来のスイッチングハブが含まれている場合には、当該従来のスイッチングハブと他の装置(すなわち、ルータ60或いはスイッチングハブ50)との接続関係を正確に把握することができなくなるのであるが、ルータ60とスイッチングハブ50との接続関係を大まかに把握することは可能である。また、本実施形態では、図10(A)および図10(B)に示すように、スイッチングハブ50Aの1つの下流側の通信ポート(現実には、スイッチングハブ500が接続されている通信ポート)にスイッチングハブ50Cとスイッチングハブ50Dとが交互に接続されるかのようなトポロジデータが生成される。このようにスイッチングハブの1つの通信ポートに他の2つのスイッチングハブを交互に接続するといったことは現実には起こり得ない。このため、LAN1Bの運用管理者は、現実には発生し得ない接続関係が現れている箇所には1乃至複数台の従来のスイッチングハブが存在していると類推することができるのである。
【0065】
ルータ60の配下のネットワークに含まれるスイッチングハブの全てが従来のものであれば、当該ネットワークにおけるネットワークトポロジを把握できないことは言うまでもないが、LAN1Bを構成する複数のスイッチングハブのなかに本発明に係るスイッチングハブ50が少なくとも1台含まれていれば、ルータ60と当該スイッチングハブ50との接続関係(すなわち、一般的な従来のスイッチングハブを除いた概略的なネットワークトポロジ)をLAN1Bの運用管理者に把握させ、さらに、現実には発生し得ない不自然な接続関係が現れている場合には、該当箇所に1乃至複数台の従来のスイッチングハブが存在していると類推させることができるのである。なお、本実施形態においても、通知フレームのペイロード部のデータサイズが、LAN1Bに含まれるスイッチングハブ50の数の増加に伴って際限なく大きくなることはない。このため、本実施形態によれば、LAN1Bが大規模化したとしても、LAN1Bに過剰な負荷をかけることなく、当該LAN1Bの運用管理者に当該LAN1Bの大まかなネットワークトポロジを把握させることができるのである。
【0066】
<C:変形>
以上、本発明の第1および第2実施形態について説明したが、これら各実施形態に以下に述べる変形を加えても勿論良い。
(1)上述した各実施形態では、要求フレームのマルチキャストを所定時間間隔で周期的にルータ60に実行させる一方、スイッチングハブ50には、要求フレームの受信を契機として通知フレームをルータ60に返信させた。しかし、周期的なマルチキャストに加えて(或いは、周期的なマルチキャストに換えて)、予め定められた所定種類のパケットの受信を契機としてルータ60に要求フレームをマルチキャストさせても良い。
【0067】
例えば、自装置のMACアドレス解決のためのARPパケットを受信したことを契機としてルータ60に要求フレームを送信させるのである。新たにARPパケットを受信したということは、ルータ60の配下のネットワークに新たな通信端末が接続されたことを意味し、新たな通信端末の接続に伴ってネットワークトポロジが変化した可能性がある。新たなARPパケットの受信を契機としてルータ60に要求フレームを送信させるようにすれば、所定時間の経過を待つことなく当該変化をいち早く検出することができる。
【0068】
なお、ルータ60がDHCPサーバの役割を兼ねている場合には、IPアドレスの割り当てを要求する旨のパケットを配下の通信端末から受信したことを契機として要求フレームをマルチキャストさせても良い。そして、所定時間間隔で周期的に要求フレームをマルチキャストする処理と、特定のパケットの受信を契機として要求フレームをマルチキャストする処理と、をルータ60に実行させる場合には、後者のマルチキャストを行う度にその時点を起算点として上記所定時間の経過を計測し直させるようにしても良い。上記所定時間よりも短い時間間隔で連続して要求フレームのマルチキャストが行われないようにするためである。
【0069】
(2)上述した各実施形態では、要求フレームの受信を契機としてスイッチングハブ50に通知フレームを送信させた。しかし、所定時間間隔で周期的に通知フレームをスイッチングハブ50に送信させるようにしても良い。このように、通知フレームを周期的にスイッチングハブ50に送信させる態様においては、ルータ60に要求フレームのマルチキャストを周期的に行わせる必要はなく、ルータ60から配下のLANに向けてマルチキャストするフレーム(既存の通信プロトコルにしたがってマルチキャストするフレーム)のうちの予め定められた一部のものに転送元識別子を付与してマルチキャストさせるようにすれば良い。各スイッチングハブ50に上流側の隣接中継装置のMACアドレスを隣接中継装置テーブルに格納させるためである。このような態様によれば、既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジを特定することが可能になる。
【0070】
(3)上述した第1実施形態では、1回目にマルチキャストした要求フレームに対する応答を受信した時点では、ルータ60とその直下のスイッチングハブ50Aとの接続関係のみを表すトポロジデータをルータ60に生成させたが、LAN1Aにおけるネットワークトポロジ全体を現すトポロジデータを生成させても良い。1回目にマルチキャストした要求フレームに対して各スイッチングハブ50から返信されてくる隣接中継装置情報を解析することで、各スイッチングハブ50を下流側から辿る(各スイッチングハブ50の上流側の隣接中継装置を特定する)ことが可能であり、各スイッチングハブ50の上流側の隣接中継装置が特定されれば、ネットワークトポロジを特定することができるからである。このように、各スイッチングハブ50の上流側の隣接中継装置のみを特定する態様の場合には、通知フレームの送信の際に自装置のMACアドレスを転送元識別子として付与する処理を省略しても良い。
【0071】
(4)上述した各実施形態では、要求フレームを受信するたびに、隣接中継装置情報をペイロード部に書き込んだ通知フレームを各スイッチングハブ50に返信させた。しかし、N(自然数)回目の要求フレームの受信からN+1回目の要求フレームの受信までの間に隣接中継装置テーブルの格納内容に変化がない場合には、当該N+1回目に受信した要求フレームに対して応答する際に、隣接中継装置情報に換えて隣接中継装置情報に変化がないことを示すデータをペイロード部に書き込んだ通知フレームを返信させるようにしても良い。
【0072】
(5)上述した各実施形態では、フレームのヘッダ部に書き込まれている種別識別子に基づいて、当該フレームがネットワークトポロジ特定用のものであるか否かを判定したが、転送元識別子が付与されているか否かによって当該判定を行っても良い。第2層における既存の通信プロトコルにしたがってルータ60からLAN1Aに向けてマルチキャストされるフレームのうちの予め定められた種類のものに転送元識別子を付与する態様においては、当該フレームの種別識別子には上記既存の通信プロトコルに応じた値がセットされている。したがって、第2層における既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジの特定を行う場合には、フレームのヘッダ部の種別識別子を参照しても当該フレームがネットワークトポロジ特定用のものであるか否かの判定を行うことはできないが、転送識別子の有無によって当該判定を行うことはできるからである。同様に、上記第1および第2実施形態においても、受信フレームがネットワークトポロジ特定用のものであるか否かの判定を転送元識別子の有無に基づいて行うようにしても勿論良い。なお、既存の通信プロトコルにしたがって送受信されるフレームを利用してネットワークトポロジの特定を行う場合には、当該フレームのヘッダの空き領域に転送元識別子(或いは転送元識別子と隣接中継装置情報)を書き込むようにすれば良い。また、フレーム転送制御処理における要求フレームであるか否かの判定(すなわち、図3のステップSA130の判定)についても、受信フレームのペイロード部に隣接中継装置情報が含まれているか否かに応じて判定するようにしても勿論良い。
【0073】
(6)上述した各実施形態では、本発明のスイッチングハブの特徴を顕著に示すフレーム転送制御処理および通知フレーム送信処理をソフトウェアにより実現した。しかし、フレーム転送制御処理を実行するフレーム転送制御手段および通知フレーム送信処理を実行する通知フレーム送信手段の各々を電子回路などのハードウェアで構成し、スイッチングエンジン部520に換えてこれら各手段を組み込んでスイッチングハブ50を構成しても勿論良い。ルータ60についても、同様に、マルチキャスト処理および接続関係特定処理の各処理を電子回路などのハードウェアによって実現しても勿論良い。
【符号の説明】
【0074】
1A,1B…LAN、30…操作端末、40A,40B…通信端末、50A,50B,50C,50D,500…スイッチングハブ、60…ルータ、510,610…通信I/F部、520…スイッチングエンジン部、530,630…記憶部、620…ルーティングエンジン部。

【特許請求の範囲】
【請求項1】
ルータと、前記ルータの配下のネットワークに含まれる複数のスイッチングハブとを含む通信システムにおいて、
(A)前記複数のスイッチングハブのうちの少なくとも1つは、
記憶手段を有するとともに、
受信したフレームの宛先に応じて当該フレームの転送制御を行う処理であって、受信したフレームに当該フレームの転送を行った装置をOSI参照モデルの第2層において一意に識別するハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行う第1の手段と、
前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを前記ルータへ送信する第2の手段と、を有し、
(B)前記ルータは、
一部のフレームに当該ルータを一意に示すハードウェア識別子を前記転送元識別子として付与して前記ネットワークへマルチキャストする第3の手段と、
前記通知フレームを受信し、当該通知フレームのペイロード部から当該通知フレームの送信元のスイッチングハブへフレームの転送を行った装置の転送元識別子のリストを読出し、当該リストに基づいて当該ルータと当該スイッチングハブとの接続関係を表すトポロジデータを生成する第4の手段と、を有する
ことを特徴とする通信システム。
【請求項2】
前記第2の手段は、前記通知フレームを前記ルータへ送信する際に、自装置のハードウェア識別子を転送元識別子として付与して送信することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記一部のフレームとは、前記通知フレームの送信を要求する旨の要求フレームであり、前記第2の手段は当該要求フレームを受信したことを契機として前記通知フレームを送信することを特徴とする請求項1または2に記載の通信システム。
【請求項4】
前記第3の手段は、前記ネットワークに含まれる通信端末から予め定められた種類のパケットを受信したことを契機として、または周期的に前記要求フレームをマルチキャストすることを特徴とする請求項3に記載の通信システム。
【請求項5】
前記第1の手段は、転送元識別子が付与されているフレームを受信した通信ポートのポート識別子と当該転送元識別子とを対応付けて前記記憶手段に書き込むことを特徴とする請求項1〜4の何れか1項に記載の通信システム。
【請求項6】
記憶手段と、
受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、自装置に対して当該フレームの転送を行った装置をOSI参照モデルの第2層において一意に示すハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を前記記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を自装置のハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、
前記記憶手段に記憶されている転送元識別子のリストをペイロード部に書き込んだ通知フレームを、自装置を含むネットワークと他の通信網とを接続するルータへ送信する通知フレーム送信手段と
を有することを特徴とするスイッチングハブ。
【請求項7】
一部のフレームに、OSI参照モデルの第2層において当該ルータを一意に示すハードウェア識別子を当該フレームの転送元を示す転送元識別子として付与して配下のネットワークへマルチキャストするマルチキャスト手段と、
前記ネットワークに含まれる1または複数のスイッチングハブの各々から送信されてくる通知フレームであって、当該通知フレームの送信元のスイッチングハブに対してフレームの転送を行った他の装置のハードウェア識別子のリストがペイロード部に書き込まれた通知フレームを受信し、前記1または複数のスイッチングハブの各々について当該スイッチングハブに対してフレームの転送を行った装置を当該転送元識別子のリストから特定し、自装置と前記1または複数のスイッチングハブとの接続関係を表すトポロジデータを生成する接続関係特定手段と、
を有することを特徴とするルータ。
【請求項8】
コンピュータを
受信したフレームの宛先に応じて当該フレームの転送制御を行う手段であって、受信したフレームに、当該フレームを当該コンピュータへ転送した装置をOSI参照モデルの第2層において一意に示すハードウェア識別子が転送元識別子として付与されていた場合には、当該転送元識別子を当該コンピュータの記憶手段に書き込んだ後に、当該フレームに付与されている転送元識別子を当該コンピュータのハードウェア識別子に書き換え、当該転送元識別子の書換えを行ったフレームに対して前記転送制御を行うフレーム転送制御手段と、
当該コンピュータに記憶している前記転送元識別子のリストをペイロード部に書き込んだ通知フレームを、当該コンピュータを含むネットワークと他のネットワークとを接続するルータへ送信する通知フレーム送信手段
として機能させることを特徴とするプログラム。
【請求項9】
コンピュータを、
一部のフレームに、OSI参照モデルの第2層において当該コンピュータを一意に示すハードウェア識別子を当該フレームの転送元を示す転送元識別子として付与して配下のネットワークへマルチキャストするマルチキャスト手段と、
前記ネットワークに含まれる1または複数のスイッチングハブの各々から送信されてくる通知フレームであって、当該通知フレームの送信元のスイッチングハブに対してフレームの転送を行った他の装置のハードウェア識別子のリストがペイロード部に書き込まれた通知フレームを受信し、前記1または複数のスイッチングハブの各々について当該スイッチングハブに対してフレームの転送を行った装置を当該転送元識別子のリストから特定し、当該コンピュータと前記1または複数のスイッチングハブとの接続関係を表すトポロジデータを生成する接続関係特定手段、
として機能させることを特徴とするプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−175293(P2012−175293A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−33916(P2011−33916)
【出願日】平成23年2月18日(2011.2.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】