この発明は、複数の物理リンクによって仮想的な論理リンクとなるトランクを構成し、当該トランクを利用してパケット転送を実行するパケット転送装置に関し、特に、リンクトレースのパケットを用いて、トランクを構成する全ての物理リンクで正常にパケットが転送されるか否かを判定可能なパケット転送装置に関するものである。
ネットワークを介して通信相手の端末装置へデータを送信する場合、送信データはパケットに分割され、通信装置によって中継されて、通信相手に届けられる。パケットを中継する通信装置としては、レイヤ2スイッチ等がある。
通信装置間の通信路の品質を向上させる方法として、リンク集約(リンクアグリゲーション)の技術が知られている。リンク集約とは、同一の通信装置との間にケーブル等の物理リンクを複数設置し、これらの物理リンクを束ねて1つの仮想的な論理リンクを構成する技術である(例えば、特許文献1参照)。
リンク集約を行うことで、高価なケーブルや通信インタフェースを用意することなく、高速な通信路を実現できる。また、複数の物理リンクを同時に使用するため、一部の物理リンクが故障した場合でも、通信路が完全に切断されることを防止でき、可用性が向上する。
リンク集約を用いてパケットを転送する時には、1つのパケットはどれか1つの物理リンクのみを使用して転送される。また、複数のレイヤ2スイッチ等の通信装置から構成されるネットワークにおいて、それらの通信装置がどのような経路で接続されているかを調べるための試験機能として、リンクトレースの技術が知られている。
レイヤ2スイッチは、スパニングツリープロトコルによって冗長の経路を持ったネットワークを構成することが可能である。リンクトレースの機能は、このような構成のネットワークにおいて、経路が切り替わったときに、新たな経路情報を簡易に収集する手段としても使用されている。
しかしながら、上述した従来の技術では、リンク集約機能を使用して通信装置同士が接続されている場合には、リンクトレースのパケットは1つの物理リンクのみを使用して転送されるため、リンク集約を構成する全ての物理リンクでパケットが正常に転送されているか否かを判定することができないという問題があった。
したがって、リンクトレースのパケットを用いて、リンク集約を構成する全ての物理リンク(トランクに含まれる各物理リンク)で正常にパケットが転送されるか否かを判定できることが求められている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、リンクトレースのパケットを用いて、リンク集約を構成する全ての物理リンクで正常にパケット転送されるか否かを判定可能なパケット転送装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、複数の物理リンクによって仮想的な論理リンクとなるトランクを構成し、当該トランクを利用してパケット転送を実行するパケット転送装置であって、パケットを取得した場合に、取得したパケットの種別が経路検索を行う検索パケットであるか否かを判定するパケット種別判定手段と、前記パケット種別判定手段の判定結果に基づいて、前記トランクを構成する複数の物理リンクに前記検索パケットを出力する出力制御手段と、を備えたことを特徴とする。
また、本発明は、上記発明において、前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットごとに当該検索パケットに応答する応答パケットを生成し、前記検索パケットの送信元に前記応答パケットを出力する応答手段を更に備えたことを特徴とする。
また、本発明は、上記発明において、前記応答手段は、前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットのうち単一の検索パケットを当該検索パケットの宛先に転送することを特徴とする。
また、本発明は、上記発明において、前記応答手段は、前記応答パケットに前記トランクおよび物理リンクを識別する情報を含ませて前記検索パケットの送信元に前記応答パケットを出力することを特徴とする。
また、本発明は、上記発明において、前記トランクはMACアドレスによって識別されるポートを介して自パケット転送装置と接続され、前記検索パケットおよび前記応答パケットの送信元のアドレスおよび宛先のアドレスは前記ポートのMACアドレスが用いられることを特徴とする。
本発明によれば、パケットを取得した場合に、取得したパケットの種別が経路検索を行う検索パケットであるか否かを判定し、判定した判定結果に基づいて、トランクを構成する複数の物理リンクに前記検索パケットを出力するので、各物理リンクから検索パケットの応答を取得することができ、かかる応答結果から各物理リンクの状態を把握できる。
また、本発明によれば、トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットごとに検索パケットに応答する応答パケットを生成し、検索パケットの送信元に応答パケットを出力するので、検索パケットを出力したパケット転送装置が、リンク集約を構成する全ての物理リンクで正常にパケットが転送されるか否かを判定できる。
また、本発明によれば、トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットのうち単一の検索パケットを当該検索パケットの宛先に転送するので、ネットワークのトラフィック量を低減させることができる。
また、本発明によれば、応答パケットにトランクおよび物理リンクを識別する情報を含ませて検索パケットの送信元に応答パケットを出力するので、正常な物理リンクを正確に判定することができる。
また、本発明によれば、検索パケットおよび応答パケットの送信元のアドレスおよび宛先のアドレスにポートのMACアドレスを用いるので、正常な物理リンクを正確に判定することができる。
以下に添付図面を参照して、この発明に係るパケット転送装置の好適な実施の形態を詳細に説明する。
まず、本実施例を説明する前に、従来の技術について説明し、その問題点を示す。図32は、従来のスイッチで構成されるネットワークシステムの構成を示す図である。同図に示すように、このネットワークシステムは、データ転送を行うスイッチ10a〜10e、ユーザ端末装置21〜26、スイッチ10aの保守管理を行う保守端末装置10を備えて構成される。
図32に示す各スイッチ10a〜10eはユーザ端末装置や他のスイッチと接続するためのポートを備え、各ポートが1つの物理リンクに対応する。ポートは、PN(Nは自然数)などの番号により識別する。
スイッチ10aは、ポートP1〜8を有し、ポートP1はユーザ端末装置21に接続され、ポートP2はユーザ端末装置22に接続され、ポートP7,P8は、スイッチ10bのポートP4,P6に接続されている。また、スイッチ10aは、保守端末装置10と接続されている。
スイッチ10bは、ポートP1〜12を有し、ポートP1はユーザ端末装置23に接続され、ポートP4,P6は、スイッチ10aのポートP7,P8に接続され、ポートP10〜12は、スイッチ10cのポートP7,P9,P11に接続されている。
スイッチ10cは、ポートP1〜12を有し、ポートP2,P4はスイッチ10dのP5,P6に接続され、ポートP7,P9,P11はスイッチ10bのポートP10〜12に接続され、ポートP12はスイッチ10eのポートP5に接続されている。
スイッチ10dは、ポートP1〜6を有し、ポートP1はユーザ端末装置24に接続され、ポートP2はユーザ端末装置25に接続され、ポートP5,P6は、スイッチ10cのポートP2,P4に接続されている。
スイッチ10eは、ポートP1〜5を有し、ポートP2はユーザ端末装置26に接続され、ポートP5はスイッチ10cのポートP12に接続されている。
また、図32に示す各スイッチ10a〜10eは、固有のMACアドレスを持っているものとする。具体的には、スイッチ10aのMACアドレスは0A、スイッチ10bのMACアドレスは0B、スイッチ10cのMACアドレスは0C、スイッチ10dのMACアドレスは0D、スイッチ10eのMACアドレスは0Eとする。各MACアドレスは、全て16進数で示されている。MACアドレスは、実際は6バイトであるが、前のゼロを省略している。
スイッチ10a〜10eと同様にして、ユーザ端末21〜26も固有のMACアドレスを保持しているものとする。具体的には、ユーザ端末装置21のMACアドレスを21とし、ユーザ端末装置26のMACアドレスを26とする。ユーザ端末装置22〜25のMACアドレスは省略する。
図32では、スイッチ同士の接続のために、リンク集約が用いられている箇所がある。そして、ここでは、リンク集約により構成された論理的なリンクを識別するために、トランク番号を利用する。スイッチ10aとスイッチ10bとの間を接続する論理的なリンクのトランク番号をトランク40、スイッチ10bとスイッチ10cとの間を接続する論理的なリンクのトランク番号をトランク50、スイッチ10cとスイッチ10dとの間を接続する論理的なリンクのトランク番号をトランク60と定義する。
なお、図32に示す例では、1つの論理的なリンクに接続されている両方のスイッチとも同じトランク番号を用いているが、1つのスイッチ内で論理的なリンクが識別できればよく、必ずしも両スイッチで同じ番号でなくともよい。但し、以降の説明では、2つのスイッチを接続するリンク集約は同じトランク番号を使用しているものとする。
次に、図32に示したスイッチ10aの構成について説明する。なお、スイッチ10b〜10eは、スイッチ10aと比較してポート数が異なるものの同様の構成で実現可能であるため、説明を省略する。図33は、図32に示したスイッチ10aの構成を示す機能ブロック図である。同図に示すように、このスイッチ10aは、バス11と、通信ポート群12と、設定制御部13と、テーブル格納メモリ14と、学習テーブル15と、パケットSW機構16と、ポート監視部17とを備えて構成される。
バス11は、設定制御部13、テーブル格納メモリ14、パケットSW機構16、ポート監視部17を接続するバスである。また、通信ポート群12は、上記したポートP1〜8からなるポート群である。
設定制御部13は、スイッチ10a全体を制御する制御手段であり、CPU(Central Processing Unit)13aと、メモリ13bと、通信I/F13cとを備える。CPU13aは、プログラムによる各種の処理を実行する手段であり、メモリ13bはCPU13aに実行させるプログラムとプログラムが使用するデータをと記憶する記憶手段である。
通信I/F13cは、管理者が使用する保守端末装置10から送信されるコマンドを受信し、CPU13aに通知すると共に、コマンドに対する実行結果を保守端末装置10に応答する手段である。
テーブル格納メモリ14は、ポート管理テーブルおよびリンク集約管理テーブルを記憶する記憶手段である。まず、ポート管理テーブルについて説明する。ポート管理テーブルは、リンク集約をなすポートの情報等を管理するテーブルである。図34は、従来のポート管理テーブルのデータ構造の一例を示す図である。
図34に示すように、このポート管理テーブルは、ポート番号と、リンク集約対象フラグと、トランク番号と、フラディング対象フラグとを有する。このうち、リンク集約対象フラグは、ポートがリンク集約を構成しているか否かを示すフラグである。リンク集約対象フラグが「0」の場合には、リンク集約を構成していないことを示し、リンク集約対象フラグが「1」の場合には、リンク集約を構成していることを示す。
図34に示す例では、ポート番号7,8がリンク集約を構成し、トランク番号が「40」となっている。なお、フラディング対象フラグは、フラディングを行うか否かを示すフラグである。フラディングとは、パケットを受信したポート以外の装置内の全ポートへパケットを出力することである。フラディング対象フラグが「1」のポートはフラディングを実行するポートであり、フラディング対象フラグが「0」のポートはフラディングを実行しないポートとなる。
続いて、テーブル格納メモリ14が記憶するリンク集約管理テーブルについて説明する。リンク集約管理テーブルは、リンク集約を構成するトランクを管理するためのテーブルである。図35は、従来のリンク集約管理テーブルのデータ構造の一例を示す図である。同図に示すように、このリンク集約管理テーブルは、トランク番号と、トランク内ポート数と、1番目ポート番号〜n番目ポート番号とを有する。
このうち、トランク内ポート数は、トランクを構成するポートの数を示す。例えば、トランク番号「40」のトランクには、ポートが2つ含まれ、1番目のポートの番号はポート番号「7」であり、2番目のポート番号はポート番号「8」となる。
図33の説明に戻ると、学習テーブル15は、過去に受信したパケットの送信元アドレスと、そのパケットが到来したポートまたはトランクの識別情報とを対応付けて記憶するテーブルである。図36は、従来の学習テーブル15のデータ構造の一例を示す図である。
図36に示すように、この学習テーブル15は、MACアドレスと、ポート/トランク番号と、ポート/トランク識別フラグとを有する。ポート/トランク識別フラグは、ポート/トランク番号がポート番号かトランク番号かを示す情報である。ポート/トランク識別フラグが「0」のときは、対応する行のポート/トランク番号はポート番号を示す。ポート/トランク識別フラグが「1」のときは、対応する行のポート/トランク番号はトランク番号を示す。
例えば、図32に示したユーザ端末装置21が、スイッチ10aに、送信元MACアドレスとして21をもつパケットを送信すると、スイッチ10aの学習テーブル15には、図36に示すように、MACアドレスが21、ポート/トランク番号が1、ポート/トランク識別フラグに0が記憶される。
図33の説明に戻ると、パケットSW機構16は、通信ポート群12やバス11からパケットを受け取ると、パケットの種別や学習テーブル15の参照結果に応じてパケットの転送先を決定し、通信ポート群12やバス11にパケットを送信する手段である。
パケットSW機構16は、決定した転送先がトランクである場合には、テーブル格納メモリ14に記憶されたポート管理テーブルおよびリンク集約管理テーブルを参照して、転送に使用する具体的な通信ポートを決定する。その後、パケットSW機構16は、パケットを通信ポート群12に出力する。
ポート監視部17は、通信ポート群12を監視し、通信ポートP1〜8や通信ポートP1〜8に接続された物理リンクの故障・復旧などを検出する手段である。ポート監視部17は、物理リンクの故障・復旧などを検出した場合には、検出結果を設定制御部13に出力する。
ポート監視部17は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部13に出力し、設定制御部13からの指示を受けてポート管理テーブルを更新する。例えば、故障が発生したポートと同一のトランク内の正常なポートのフラディング対象フラグを1に書き換える。
また、ポート監視部17は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部13に出力し、設定制御部13からの指示を受けて、リンク集約管理テーブルを更新する。
すなわち、ポート監視部17は、トランク内の正常のポートの数を減算し、トランクを構成する各ポート番号から故障したポートを取り除き、左詰めに設定し直す。また、故障したポートが復旧した場合には、トランク内の正常なポートの数を加算し、トランクを構成するポート情報に、復旧したポートを加えて左詰めに設定し直す。
続いて、スイッチ10a〜10e間で転送されるパケットのデータ構造について説明する。図37は、パケットのデータ構造の一例を示す図である。同図に示すように、このパケットは、宛先MACアドレスと、送信元MACアドレスと、VLANタグと、ペイロードと、FCS(Frame Check Sequence)とを備える。
このうち、宛先MACアドレスは、送信先の装置が有する通信インタフェースを一意に識別するアドレスである。送信元MACアドレスは、送信元の装置が有する通信インタフェースを一意に識別するアドレスである。VLANタグは、1つのネットワークを複数の論理的なネットワークに分割して運用する場合に、個々の論理的なネットワークに割り当てられる一意な値である。
ペイロードは、送受信するデータ本体であり、例えば、IPパケットを所定のデータ長に分割したものである。FCSは、受信したパケットの誤りを検出するために用いられる値である。図37に示したパケットが、ポートP1〜P8を介して、各スイッチの間やスイッチとユーザ端末装置との間で送受信される。なお、パケットのデータ構造は、ネットワークの運用形態等に応じて、種々の変形例が考えられる。例えば、VLANタグが省略される場合があれば、図37に示した以外のヘッダ情報が付加される場合もある。
続いて、図37に示したパケットに付加されるパケットヘッダについて説明する。図38は、パケットヘッダのデータ構造の一例を示す図である。同図に示すように、パケットヘッダは、パケット入力元と受信ポート番号とを備える。通信ポート群からパケットを取得した場合には、パケット入力元に「0」が登録される。設定制御部13からパケットを取得した場合には、パケット入力元に「1」が登録される。受信ポート番号には、パケットを受信したポートの番号が登録される。パケットSW機構16は、かかるパケットヘッダを参照して、パケットの入力元を判定する。
続いて、図37に示したパケットのペイロードに含まれるEtherType値およびOpeCodeについて説明する。図39は、パケットのペイロードに含まれるEtherType値およびOpeCodeを説明するための図である。パケットSW機構16は、かかるEtherType値およびOpeCodeを参照することによって、パケットの種別を判定することができる。
具体的には、EtherType値が「0x9B10」で、OpeCodeが「5」の場合には、パケットの種別は、リンクトレース要求パケットとなり、EtherType値が「0x9B10」で、OpeCodeが「4」の場合には、パケットの種別は、リンクトレース応答パケットとなる。EtherType値が「0x9B10」以外、または、EtherType値が「0x9B10」で、OpeCodeが「4,5」以外の場合は、通常パケットとなる。
ここで、リンクトレース要求パケット(LTM)は、スイッチがパケットの経路情報を収集する場合に出力するパケットであり、リンクトレース応答パケット(LTR)は、LTMに応答するためのパケットである。
図40は、リンクトレース要求パケットのデータ構造の一例を示す図であり、図41は、リンクトレース応答パケットのデータ構造の一例を示す図である。図40に示すように、リンクトレース要求パケットは、宛先MACアドレスと、送信元MACアドレスと、EtherType値と、OpeCodeと、TTL(Time To Live)と、Original MACアドレスと、Target MACアドレスと、FCSとを備える。また、図41に示すように、リンクトレース応答パケットは、宛先MACアドレスと、送信元MACアドレスと、EtherType値と、OpeCodeと、TTL(Time To Live)と、FCSとを備える。
このうち、EtherType値は、パケットの種別を示し、リンクトレースのパケットを識別するために使用する。リンクトレースの場合には、EtherType値は16進数の「0x9B10」を使用する。それ以外は、通常のパケットとみなす。OpeCodeは、リンクトレース要求パケットの場合には「5」が登録される。
TTLは、試験した装置と応答した装置の間の距離を示すために使用する値である。Original MACアドレスは、自装置のMACアドレス、またはパケットの送信元ポートのアドレスが登録される。Original MACアドレスは、LTMのみで使用し、LTRでは使用しない。Target MACアドレスは、コマンドでターゲットMACアドレスとして設定された値が登録される。Target MACアドレスは、LTMのみで使用し、LTRでは使用しない。
続いて、従来のパケットSW機構16の処理手順について説明する。なお、ここでは説明を省略するが、スイッチ10b〜10eに搭載されるパケットSW機構もパケットSW機構16と同様の処理手順となる。図42は、従来のパケットSW機構16の処理手順を示すフローチャートである。同図に示すように、スイッチ10aは、パケットSW機構16が、パケットを取得し(ステップS101)、パケットヘッダ(図38参照)を参照してパケットの入力元が通常ポート群か否かを判定する(ステップS102)。
パケットの入力元が通常ポート群ではない場合には(ステップS103,No)、Target MACアドレスを学習済みか否かを判定し(ステップS104)、学習済みでない場合には(ステップS105,No)、装置内の各ポートP1〜8へパケットを出力し(受信ポートは除く)、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS106)。一方、Target MACアドレスを学習済みである場合には(ステップS105,Yes)、ステップS110に移行する。ステップS110の説明は後述する。
ところで、パケットの入力元が通常ポート群である場合には(ステップS103,Yes)、パケットの送信元MACアドレスと受信位置(ポート番号)を学習テーブル15に学習すると共に、トランクで受信した場合にはトランク番号を学習する(ステップS107)。
そして、パケットSW機構16は、パケットのEtherType値およびOpeCode(図39参照)を参照してパケットの種別を判定し(ステップS108)、通常のパケットである場合には(ステップS109,Yes)、通常パケット出力処理を実行する(ステップS110)。一方、通常のパケットではない場合(LTMあるいはLTRの場合)には(ステップS109,No)、リンクトレース処理を実行する(ステップS111)。
次に、図42のステップS110に示した通常パケット出力処理について説明する。図43は、通常パケット出力処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構16は、パケットの宛先MACアドレスをユニキャストで学習済みか否かを学習テーブルを15に基づいて判定し(ステップS201)、学習済みでない場合には(ステップS202,No)、装置内の各ポートP1〜8へパケットを出力し(受信ポートは除く)、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS203)。
一方、パケットの宛先MACアドレスをユニキャストで学習済みの場合には(ステップS202,Yes)、学習しているポート情報はトランク番号か否かを判定し(ステップS204)、トランク番号である場合には(ステップS205,Yes)、トランクを構成する出力ポートを1つ選択し(ステップS206)、指定されたポートにパケットを出力する(ステップS207)。一方、学習しているポート情報がトランク番号でない場合には(ステップS205,No)、学習しているポートを出力ポートに指定し(ステップS208)、ステップS207に移行する。
次に、図42のステップS111に示したリンクトレース処理について説明する。図44、図45は、リンクトレース処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構16は、パケットの種別はLTMか否かを判定し(ステップS301)、パケットの種別がLTRである場合には(ステップS302,No)、宛先MACアドレスは自装置のMACアドレスと一致するか否かを判定する(ステップS303)。
自装置のMACアドレスと一致しない場合には(ステップS304,No)、通常パケット出力処理を実行する(ステップS305)。一方、自装置のMACアドレスと一致する場合には(ステップS304,Yes)、LTRを設定制御部13に出力する(ステップS306)。
ところで、パケットの種別がLTMである場合には(ステップS302,Yes)、Target MACアドレスは自装置のMACアドレスと一致するか否かを判定し(ステップS307)、一致する場合には(ステップS308,Yes)、応答パケット生成処理1を実行し(ステップS309)、パケットを受信したポートに応答パケットを出力する(ステップS310)。
Target MACアドレスは自装置のMACアドレスと一致しない場合には(ステップS308,No)、Target MACアドレスを学習しているか否かを判定し(ステップS311)、学習していない場合には(ステップS312,No)、装置内の各ポートP1〜8へパケットを出力し(受信ポートは除く)、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS313)。
一方、Target MACアドレスを学習している場合には(ステップS312,Yes)、応答パケット生成処理2を実行し(ステップS314)、パケットを受信したポートに応答パケットを出力し(ステップS315)、転送パケット生成処理を実行する(ステップS316)。
そして、パケットSW機構16は、学習しているポート情報はトランク番号か否かを判定し(ステップS317)、トランク番号である場合には(ステップS318,Yes)、トランクを構成する出力ポートを1つ選択し(ステップS319)、指定されたポートにパケットを出力する(ステップS320)。一方、学習しているポート情報がトランク番号でない場合には(ステップS318,No)、学習しているポートを出力ポートに指定し(ステップS321)、ステップS320に移行する。
ここで、図44、図45に示した応答パケット生成処理1、応答パケット生成処理2、通常パケット出力処理、転送パケット生成処理について説明する。なお、通常パケット出力処理は、図43に示した通常パケット出力処理と同様であるため説明を省略する。
まず、図44のステップS309に示した応答パケット生成処理1について説明する。図46は、応答パケット生成処理1の処理手順を示すフローチャートである。同図に示すように、パケットSW機構16は、宛先MACアドレスにLTMのOriginal MACアドレスを設定し(ステップS401)、送信元MACアドレスにLTMのTarget MACアドレスを設定する(ステップS402)。
そして、パケットSW機構16は、EtherType値に予め定められた値である「0x9B10」を設定し(ステップS403)、OpeCodeに「4」を設定し(ステップS404)、TTLに受信したTLMのTTLを1減算して設定する(ステップS405)。
次に、図45のステップS314に示した応答パケット生成処理2について説明する。図47は、応答パケット生成処理2の処理手順を示すフローチャートである。同図に示すように、パケットSW機構16は、宛先MACアドレスにLTMのOriginal MACアドレスを設定し(ステップS501)、送信元MACアドレスにLTRを応答するスイッチのMACアドレスを設定する(ステップS502)。
そして、パケットSW機構16は、EtherType値に予め定められた値である「0x9B10」を設定し(ステップS503)、OpeCodeに「4」を設定し(ステップS504)、TTLに受信したLTMのTTLを1減算して設定する(ステップS505)。
次に、図45のステップS316に示した転送パケット生成処理について説明する。図48は、転送パケット生成処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構16は、宛先MACアドレスに、受信したLTMと同じ値を設定し(ステップS601)、送信元MACアドレスにLTMを転送するスイッチのMACアドレスを設定する(ステップS602)。
そして、パケットSW機構16は、EtherType値に予め決められた値である「0x9B10」を設定し(ステップS603)、OpeCodeに「5」を設定し(ステップS604)、TTLに受信したLTMのTTLを1減算して設定する(ステップS605)。その後、パケットSW機構16は、Original MACアドレスに、受信したLTMと同じ値を設定し(ステップS606)、Target MACアドレスに受信したLTMと同じ値を設定する(ステップS607)。
このように、従来のネットワークシステムでは、各スイッチ10a〜10eが図42〜図48に示した処理をそれぞれ実行することで、経路検索を実行することができる。例えば、スイッチ10aからスイッチ10eまでの経路を検索した場合(LTMの宛先MACアドレスをスイッチ10eのMACアドレスに設定し、LTMの送信元MACアドレスをスイッチ10aのMACアドレスに設定して送信した場合)には、スイッチ10aは、各スイッチ10b〜10eからLTRを取得し、設定制御部13が、取得した各LTRのTTLと送信元MACアドレスとを基にして、TTLの順番を大きい順に並べてリンクトレース結果データを生成する。
図49は、従来のリンクトレース結果データの一例を示す図である。図49に示すようなリンクトレース結果データをモニタ(図示略)等に出力することによって、管理者は、送信元から宛先までの経路を知ることができる。
しかしながら、図49に示すように、管理者は、各スイッチ10a〜10eの経路を知ることができても、どの区間がリンク集約によって接続されているのかを知ることができない。また、各スイッチ10a〜10e間をLTMが転送される場合に、リンク集約に含まれる複数の物理リンクのうち、1つの物理リンクのみに転送されるので、リンク集約を構成する物理リンクが正常にパケットを転送しているか否かを知ることができないという問題があった。
次に、本実施例1にかかるネットワークシステムの構成について説明する。図1は、本実施例1にかかるネットワークシステムの構成を示す図である。同図に示すように、このネットワークシステムは、データ転送を行うスイッチ100〜500、ユーザ端末装置21〜26、スイッチ100の保守管理を行う保守端末装置10を備えて構成される。
図1に示す各スイッチ100〜500は、ユーザ端末装置や他のスイッチと接続するためのポートを備え、各ポートが1つの物理リンクに対応する。ポートは、PN(Nは自然数)などの番号により識別する。
スイッチ100は、ポートP1〜8を有し、ポートP1はユーザ端末装置21に接続され、ポートP2はユーザ端末装置22に接続され、ポートP7,P8は、スイッチ200のポートP4,P6に接続されている。また、スイッチ100は、保守端末装置10と接続されている。
スイッチ200は、ポートP1〜12を有し、ポートP1はユーザ端末装置23に接続され、ポートP4,P6は、スイッチ100のポートP7,P8に接続され、ポートP10〜12は、スイッチ300のポートP7,P9,P11に接続されている。
スイッチ300は、ポートP1〜12を有し、ポートP2,P4はスイッチ400のP5,P6に接続され、ポートP7,P9,P11はスイッチ200のポートP10〜12に接続され、ポートP12はスイッチ500のポートP5に接続されている。
スイッチ400は、ポートP1〜6を有し、ポートP1はユーザ端末装置24に接続され、ポートP2はユーザ端末装置25に接続され、ポートP5,P6は、スイッチ300のポートP2,P4に接続されている。
スイッチ500は、ポートP1〜5を有し、ポートP2はユーザ端末装置26に接続され、ポートP5はスイッチ300のポートP12に接続されている。
また、図1に示す各スイッチ100〜500は、それぞれ固有のMACアドレスを持っているものとする。具体的には、スイッチ100のMACアドレスは0A、スイッチ200のMACアドレスは0B、スイッチ300のMACアドレスは0C、スイッチ400のMACアドレスは0D、スイッチ500のMACアドレスは0Eとする。各MACアドレスは、全て16進数で示されている。MACアドレスは、実際は6バイトであるが、前のゼロを省略している。
スイッチ100〜500と同様にして、ユーザ端末21〜26も固有のMACアドレスを保持しているものとする。具体的には、ユーザ端末装置21のMACアドレスを21とし、ユーザ端末装置26のMACアドレスを26とする。ユーザ端末装置22〜25のMACアドレスは省略する。
また、図1では、スイッチ同士の接続のために、リンク集約が用いられている箇所がある。そして、ここでは、リンク集約により構成された論理的なリンクを識別するために、トランク番号を利用する。スイッチ100とスイッチ200とを間を接続する論理的なリンクのトランク番号をトランク40、スイッチ200とスイッチ300との間を接続する論理的なリンクのトランク番号をトランク50、スイッチ300とスイッチ400との間を接続する論理的なリンクのトランク番号をトランク60と定義する。
ここで、図1を用いて、本実施例1の特徴を説明する。本実施例1にかかる各スイッチ100〜500は、経路検索を実行する状況下において、トランクを構成する複数の物理リンク全てに対してLTM(リンクトレース要求パケット)を出力し、LTR(リンクトレース応答パケット)を各物理リンクから取得する。
例えば、スイッチ100が、トランク40にLTMを出力する場合には、トランク40に含まれる全ての物理リンクP7,P8からLTMを出力する。このように、トランクに含まれる全てのポートに対してLTMを出力し、かかるLTMに対応するLTRをそれぞれの物理リンク(スイッチ200の各ポートP4,P6)から取得することで、トランクを構成する物理リンクが正常か否かを容易に判定することができる。仮に、スイッチ100のポートP7からのLTRを受信できなかった場合には、スイッチ100のポートP7とスイッチ200のポートP4を接続する物理リンクに異常が発生していることとなる。
このように、本実施例1にかかるネットワークシステムは、トランクを構成する全てのポートに対してLTMを出力し、出力したLTMの応答となるLTRを各物理リンクから取得することによって、トランクを構成する各物理リンクの状態を管理者は容易に知ることができ、各トランクを効率よく管理することができる。
次に、図1に示したスイッチ100の構成について説明する。なお、スイッチ200〜500は、スイッチ100と比較してポート数が異なるものの同様の構成で実現可能であるため、説明を省略する。図2は、本実施例1にかかるスイッチ100の構成を示す機能ブロック図である。同図に示すように、このスイッチ100は、バス110と、通信ポート群120と、設定制御部130と、テーブル格納メモリ140と、学習テーブル150と、パケットSW機構160と、ポート監視部170とを備えて構成される。
バス110は、設定制御部130、テーブル格納メモリ140、パケットSW機構160、ポート監視部170を接続する手段(バス)である。また、通信ポート群120は、上記したポートP1〜8からなるポート群であり、かかるポートP1〜8を介して他のスイッチやユーザ端末装置にパケットを転送する。
設定制御部130は、スイッチ100全体を制御する制御手段であり、CPU130aと、メモリ130bと、通信I/F130cとを備える。CPU130aは、プログラムによる各種の処理を実行する手段であり、特に、本発明に密接に関連する処理としては、リンクトレース結果データを生成する。
CPU130aは、パケットSW機構160からLTRを取得した場合に、取得したLTRのMACアドレス(送信元MACアドレス)と、同一MACアドレス(送信元MACアドレス)のLTRを取得した回数を対応付けてメモリ130bに記憶し、メモリ130bに記憶した内容を基にしてリンクトレース結果データを生成する。
図3は、本実施例1にかかるリンクトレース結果データの一例を示す図である。同図に示すように、リンクトレース結果データは、TTLの大きい順に各MACアドレスが並べられ(経路順に並べられ)、各MACアドレスと対応付けて、LTRを取得した回数(ここでは、接続リンク数)が登録されている。ここでは、CPU130aは、MACアドレス「0B」のスイッチ200からLTMを2回取得し、MACアドレス「0C」のスイッチ300からLTRを3回取得し、MACアドレス「0E」のスイッチ500からLTRを1回取得している。
すなわち、図3を参照することによって、スイッチ100とスイッチ200を接続するトランクのうち、2本が正常に動作しており、スイッチ200とスイッチ300とを接続するトランクのうち、3本が正常に動作していることがわかる。予め、各スイッチ100〜500を接続するトランクの物理リンクの数を管理しておけば、CPU130aが生成したリンクトレース結果データと比較することによって、故障した物理リンクを有するトランクを容易に検出することもできる。
例えば、スイッチ100とスイッチ200とを接続するトランクの物理リンクが「3」本であるにも関わらず、MACアドレス「0B」に対応する接続リンク数が「2」本ならば、スイッチ100とスイッチ200とを接続するトランクの物理リンクの内、どれか1本が故障していることとなる。
図2の説明に戻ると、メモリ130bは、CPU130aに実行されるプログラムとプログラムが使用するデータとを記憶する。特に、本実施例1にかかるメモリ130bは、図3に示したリンクトレース結果データ等を記憶する。通信I/F130cは、管理者が使用する保守端末装置10から送信されるコマンドを受信し、CPU130aに通知すると共に、コマンドに対する実行結果(例えば、リンクトレース結果データ)を保守端末装置10に応答する手段である。
テーブル格納メモリ140は、ポート管理テーブルおよびリンク集約管理テーブルを記憶する記憶手段である。ここで、ポート管理テーブルは、リンク集約をなすポートの情報等を管理するテーブルである。本実施例1にかかるポート管理テーブルのデータ構造は、図34において説明したポート管理テーブルと同様であるため説明を省略する。
リンク集約管理テーブルは、リンク集約を構成するトランクを管理するためのテーブルである。図4は、リンク集約管理テーブルのデータ構造の一例を示す図である。同図に示すように、このリンク集約管理テーブルは、トランク番号と、トランク内ポート数と、1番目ポート番号〜n番目ポート番号と、LTM転送済みフラグとを有する。
このうち、トランク番号、トランク内ポート数、1番目ポート番号〜n番目ポート番号は、図35に示した従来のリンク集約管理テーブルと同様である。LTM転送済みフラグは、同一トランク番号のトランクで複数のLTMを受信した場合に、同一のLTMを重複して宛先に転送することを防止するために利用される。
トランクを構成する複数のポートのうち、初めにLTMを受信した場合(対応するLTMフラグが「0」の場合)には、LTMを宛先に転送した後に、対応するトランク番号のLTM転送済みフラグを「1」に設定する。その後に、同一のトランクからLTMを受信した場合に、対応するLTM転送済みフラグが「1」となっていれば、LTMの転送を中止する。なお、LTM転送済みフラグは、「1」に設定されてから一定時間経過後に「0」に設定し直される。
図2の説明に戻ると、学習テーブル150は、過去に受信したパケットの送信元アドレスと、そのパケットが到来したポートまたはトランクの識別情報とを対応付けて記憶するテーブルである。なお、本実施例1にかかる学習テーブル150のデータ構造は、図36において説明した学習テーブル15と同様であるため説明を省略する。
パケットSW機構160は、通信ポート群120やバス110からパケットを受け取ると、パケットの種別や学習テーブル150の参照結果に応じてパケットの転送先を決定し、通信ポート群120やバス110にパケットを送信する手段である。
特に、本実施例1にかかるパケットSW機構160は、LTMを宛先に転送する場合に、転送するポートがトランクを構成している場合に、トランクを構成する全てのポートにLTMを出力する。また、パケットSW機構160は、図4に示したリンク集約管理テールを管理し、条件に応じてLTM転送済みフラグを更新する。
すなわち、パケットSW機構160は、トランクの各ポートにLTMを出力した場合には、対応するトランク番号のLTM転送済みフラグを「1」に設定する。また、パケットSW機構160は、LTM転送済みフラグを「1」に設定してから所定時間経過後にLTM転送済みフラグを「0」に戻す。
ポート監視部170は、通信ポート群120を監視し、通信ポートP1〜8や通信ポートP1〜8に接続された物理リンクの故障・復旧などを検出する手段である。ポート監視部170は、物理リンクの故障・復旧などを検出した場合には、検出結果を設定制御部130に出力する。
ポート監視部170は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部130に出力し、設定制御部130からの指示を受けてポート管理テーブルを更新する。例えば、故障が発生したポートと同一のトランク内の正常なポートのフラディング対象フラグを1に書き換える。
また、ポート監視部170は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部130に出力し、設定制御部130からの指示を受けて、リンク集約管理テーブルを更新する。すなわち、ポート監視部170は、トランク内の正常のポートの数を減算し、トランクを構成する各ポート番号から故障したポートを取り除き、左詰めに設定し直す。また、故障したポートが復旧した場合には、トランク内の正常なポートの数を加算し、トランクを構成するポート情報に、復旧したポートを加えて左詰めに設定し直す。
なお、本実施例1の各スイッチ100〜500間で送受信されるパケットのデータ構造は、図37〜図41と同様であるため説明を省略する。
続いて、本実施例1にかかるパケットSW機構160の処理手順について説明する。なお、ここでは説明を省略するが、スイッチ100〜500に搭載されるパケットSW機構もパケットSW機構160と同様の処理手順となる。図5は、本実施例1にかかるパケットSW機構160の処理手順を示すフローチャートである。
図5に示すように、スイッチ100は、パケットSW機構160が、パケットを取得し(ステップS701)、パケットの入力元は通常ポート群か否かを判定し(ステップS702)、入力元が通常ポート群でない場合には(ステップS703,No)、Target MACアドレスを学習済みか否かを判定する(ステップS704)。
Target MACアドレスを学習済みでない場合には(ステップS705,No)、装置内の各ポートP1〜8へパケットを出力し、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS706)。一方、Target MACアドレスを学習済みの場合には(ステップS705,Yes)、パケット出力処理を実行する(ステップS707)。
ところで、パケットの入力元が通常ポート群である場合には(ステップS703,Yes)、パケットの送信元MACアドレスと受信位置を学習テーブル150に学習すると共に、トランクで受信した場合はトランク番号を学習する(ステップS708)。
そして、パケットSW機構160は、パケットのEtherType値およびOpeCode(図39参照)を参照してパケットの種別は通常のパケットか否かを判定し(ステップS709)、通常のパケットである場合には(ステップS710,Yes)、通常パケット出力処理を実行し(ステップS711)、通常のパケットでない場合には(ステップS710,No)、リンクトレース処理を実行する(ステップS712)。
次に、図5のステップS707に示したパケット出力処理について説明する。図6は、本実施例1にかかるパケット出力処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構160は、学習しているポート情報はトランク番号か否かを判定し(ステップS801)、トランク番号である場合には(ステップS802,Yes)、トランクを構成するポートを調べ(ステップS803)、トランクを構成する全てのポートにパケットを出力する(ステップS804)。
一方、パケットSW機構160は、学習しているポート情報はトランク番号でない場合には(ステップS802,No)、学習しているポートを出力ポートに指定し(ステップS805)、指定されたポートにパケットを出力する(ステップS806)。
次に、図5のステップS712に示したリンクトレース処理について説明する。図7、図8は、本実施例1にかかるリンクトレース処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構160は、パケットの種別はLTMか否かを判定し(ステップS901)、パケットの種別がLTRである場合には(ステップS902,No)、宛先MACアドレスは自装置のMACアドレスと一致するか否かを判定する(ステップS903)。
宛先MACアドレスが自装置のMACアドレスと一致しない場合には(ステップS904,No)、通常パケット出力処理を実行する(ステップS905)。一方、宛先MACアドレスが自装置のMACアドレスと一致する場合には(ステップS904,Yes)、設定制御部130にLTRを出力する(ステップS906)。
ところで、パケットの種別がLTMである場合には(ステップS902,Yes)、Target MACアドレスは自装置のMACアドレスと一致するか否かを判定し(ステップS907)、一致する場合には(ステップS908,Yes)、応答パケット生成処理1を実行し(ステップS909)、パケットを受信したポートに応答パケットを出力する(ステップS910)。
一方、Target MACアドレスは自装置のMACアドレスと一致しない場合には(ステップS908,No)、Target MACアドレスを学習しているか否かを判定し(ステップS911)、学習していない場合には(ステップS912,No)、装置内の各ポートP1〜8へパケットを出力し(受信ポートは除く)、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS913)。
一方、Target MACアドレスを学習済みの場合には(ステップS912,Yes)、応答パケット生成処理2を実行し(ステップS914)、パケットを受信したポートに応答パケットを出力し(ステップS915)、要求パケットを受信した位置はトランクか否かを判定する(ステップS916)。
トランクでない場合には(ステップS917,No)、ステップS921に移行する(ステップS921は後述する)。一方、受信した位置がトランクである場合には(ステップS917,Yes)、受信トランクに対応するLTM転送済みフラグが「0」か否かを判定する(ステップS918)。
フラグが「1」の場合には(ステップS919,No)、そのままリンクトレース処理を終了する。一方、フラグが「0」の場合には(ステップS919,Yes)、LTM転送済みフラグを「1」に設定し(ステップS920)、転送パケット生成処理を実行し(ステップS921)、パケット出力処理を実行する(ステップS922)。
なお、図5のステップS711および図7のステップS905に示した通常パケット処理は、図43において説明した通常パケット出力処理と同様であるため説明を省略する。また、図7に示した応答パケット生成処理1および図8に示した応答パケット生成処理2は、図46に示した応答パケット生成処理1、図47に示した応答パケット生成処理2にそれぞれ等しいので説明を省略する。
上述してきたように、本実施例1にかかるネットワークシステムは、各スイッチ100〜500が、LTMを受信し、転送先のリンクがリンク集約を構成している場合には、リンク集約を構成する全ての物理リンクにLTMを転送し、各物理リンクから応答されるLTRを取得してリンクトレース結果データ(図3参照)を生成するので、管理者がリンクトレース結果データを参照することによって正常にパケット転送を実行可能な物理リンクがいくつあるかを正確に知ることができる。
次に、本実施例2にかかるネットワークシステムの構成について説明する。図9は、本実施例2にかかるネットワークシステムの構成を示す図である。同図に示すように、このネットワークシステムは、データ転送を行うスイッチ101〜501、ユーザ端末装置21〜26、スイッチ101の保守管理を行う保守端末装置10を備えて構成される。
図9に示す各スイッチ101〜501は、ユーザ端末装置や他のスイッチと接続するためのポートを備え、各ポートが1つの物理リンクに対応する。ポートは、PN(Nは自然数)などの番号により識別する。
スイッチ101は、ポートP1〜8を有し、ポートP1はユーザ端末装置21に接続され、ポートP2はユーザ端末装置22に接続され、ポートP7,P8は、スイッチ201のポートP4,P6に接続されている。また、スイッチ101は、保守端末装置10と接続されている。
スイッチ201は、ポートP1〜12を有し、ポートP1はユーザ端末装置23に接続され、ポートP4,P6は、スイッチ101のポートP7,P8に接続され、ポートP10〜12は、スイッチ301のポートP7,P9,P11に接続されている。
スイッチ301は、ポートP1〜12を有し、ポートP2,P4はスイッチ401のP5,P6に接続され、ポートP7,P9,P11はスイッチ201のポートP10〜12に接続され、ポートP12はスイッチ501のポートP5に接続されている。
スイッチ401は、ポートP1〜6を有し、ポートP1はユーザ端末装置24に接続され、ポートP2はユーザ端末装置25に接続され、ポートP5,P6は、スイッチ301のポートP2,P4に接続されている。
スイッチ501は、ポートP1〜5を有し、ポートP2はユーザ端末装置26に接続され、ポートP5はスイッチ301のポートP12に接続されている。
また、図9に示す各スイッチ101〜501は、それぞれ固有のMACアドレスを持っているものとする。具体的には、スイッチ101のMACアドレスは0A、スイッチ201のMACアドレスは0B、スイッチ301のMACアドレスは0C、スイッチ401のMACアドレスは0D、スイッチ501のMACアドレスは0Eとする。各MACアドレスは、全て16進数で示されている。MACアドレスは、実際は6バイトであるが、前のゼロを省略している。
スイッチ101〜501と同様にして、ユーザ端末21〜26も固有のMACアドレスを保持しているものとする。具体的には、ユーザ端末装置21のMACアドレスを21とし、ユーザ端末26のMACアドレスを26とする。ユーザ端末装置22〜25のMACアドレスは省略する。
また、図9では、スイッチ同士の接続のために、リンク集約が用いられている箇所がある。そして、ここでは、リンク集約により構成された論理的なリンクを識別するために、トランク番号を利用する。スイッチ101とスイッチ201とを間を接続する論理的なリンクのトランク番号をトランク40、スイッチ201とスイッチ301との間を接続する論理的なリンクのトランク番号をトランク50、スイッチ301とスイッチ401との間を接続する論理的なリンクのトランク番号をトランク60と定義する。
ここで、図9を用いて、本実施例2の特徴を説明する。本実施例2にかかる各スイッチ101〜501は、実施例1の各スイッチ100〜500と同様にして、経路検索を実行する状況下において、トランクを構成する複数の物理リンク全てに対してLTM(リンクトレース要求パケット)を出力し、LTR(リンクトレース応答パケット)を各物理リンクから取得する。本実施例2にかかる各スイッチ101〜501では更に、LTMの応答としてLTRを返信する場合に、LTRにトランク番号とポート番号を含ませる。
例えば、スイッチ101がトランク40の各物理リンクにLTMを出力し、スイッチ201が各LTRを生成する場合には、スイッチ201は、トランク番号40と各ポート番号P4,P6を各LTRに含ませる。すなわち、スイッチ201がP4から出力するLTRにはトランク番号40とポート番号P4を含ませ、スイッチ201がP6から出力するLTRにはトランク番号40とポート番号P6を含ませる。
このように、本実施例2では、LTRにトランク番号とポート番号を含ませることによって、リンクトレースを実行したスイッチは、トランクを構成する複数の物理リンクのうち、正常な物理リンクと故障した物理リンクとを区別することができる。
次に、図9に示したスイッチ101の構成について説明する。なお、スイッチ201〜501は、スイッチ101と比較してポート数が異なるものの同様の構成で実現可能であるため、説明を省略する。図10は、本実施例2にかかるスイッチ101の構成を示す機能ブロック図である。同図に示すように、このスイッチ101は、バス111と、通信ポート群121と、設定制御部131と、テーブル格納メモリ141と、学習テーブル151と、パケットSW機構161と、ポート監視部171とを備えて構成される。
バス111は、設定制御部131、テーブル格納メモリ141、パケットSW機構161、ポート監視部171を接続する手段(バス)である。また、通信ポート群121は、上記したポートP1〜8からなるポート群であり、かかるポートP1〜8を介して他のスイッチやユーザ端末装置にパケットを転送する。
設定制御部131は、スイッチ101全体を制御する制御手段であり、CPU131aと、メモリ131bと、通信I/F131cとを備える。このうち、CPU131aは、プログラムによる各種の処理を実行する手段であり、特に、本発明に密接に関連する処理としては、リンクトレース結果データを生成する。
CPU131aは、パケットSW機構161からLTRを取得した場合に、取得したLTRのMACアドレス(送信元MACアドレス)と、トランク番号と、ポート番号とを対応付けて受信LTRテーブルとしてメモリ131bに記憶し、メモリ131bに記憶した内容を基にしてリンクトレース結果データを生成する。
図11は、本実施例2にかかる受信LTRテーブルのデータ構造の一例を示す図である。同図に示すように、この受信LTRテーブルは、TTLと、送信元MACアドレスと、トランク番号と、ポート番号とを有する。同一トランク番号の数が接続リンク数となる。たとえば、受信LTRテーブルにトランク番号40のデータが2つ存在すれば、トランク番号40に対応する接続リンク数は2となる。
図12は、本実施例2にかかるリンクトレース結果データの一例を示す図である。同図に示すように、リンクトレース結果データは、TTLの大きい順に各MACアドレスが並べられ(経路順に並べられ)、各MACアドレスと対応付けて、接続リンク数と、トランク番号と、ポート番号が登録されている。
すなわち、図12を参照することによって、スイッチ101とスイッチ102とを接続するトランク40のうち、スイッチ201のポートP4,P6に接続された物理リンクが正常に動作しており、スイッチ201とスイッチ301とを接続するトランク50のうち、スイッチ301のポートP7,P9,P11に接続された物理リンクが正常に動作していることがわかる。予め、各スイッチ101〜501を接続するトランクの番号、トランクを構成するポート番号を管理しておけば、CPU131aが生成したリンクトレース結果データと比較することによって、故障した物理リンクを有するとトランクを容易に検出することもできる。
図10の説明に戻ると、メモリ131bは、CPU131aに実行されるプログラムとプログラムが使用するデータとを記憶する。特に、本実施例2にかかるメモリ131bは、図11に示した受信LTRテーブル、図12に示したリンクトレース結果データ等を記憶する。
通信I/F131cは、管理者が使用する保守端末装置10から送信されるコマンドを受信し、CPU131aに通知すると共に、コマンドに対する実行結果(例えば、リンクトレース結果データ)を保守端末装置10に応答する手段である。
テーブル格納メモリ141は、ポート管理テーブルおよびリンク集約管理テーブルを記憶する記憶手段である。ここで、ポート管理テーブルは、リンク集約をなすポートの情報等を管理するテーブルである。本実施例2にかかるポート管理テーブルのデータ構造は、図34において説明したポート管理テーブルと同様であるため説明を省略する。また、本実施例2にかかるリンク集約管理テーブルのデータ構造も、図4において説明したリンク集約管理テーブルと同様であるため説明を省略する。
学習テーブル151は、過去に受信したパケットの送信元アドレスと、そのパケットが到来したポートまたはトランクの識別情報とを対応付けて記憶するテーブルである。なお、本実施例2にかかる学習テーブル151のデータ構造は、図36において説明した学習テーブル15と同様であるため説明を省略する。
パケットSW機構161は、通信ポート群121やバス111からパケットを受け取ると、パケットの種別や学習テーブル151の参照結果に応じてパケットの転送先を決定し、通信ポート群121やバス111にパケットを送信する手段である。
また、パケットSW機構161は、LTMを宛先に転送する場合に、転送するポートがトランクを構成している場合に、トランクを構成する全てのポートにLTMを出力する。また、パケットSW機構161は、トランクを構成するポートからLTMを取得し、LTRを送信元に応答する場合には、テーブル格納メモリ141に記憶された各テーブルを参照して、LTRのトランク番号とポート番号に、LTMを取得したポートに対応するトランク番号とポート番号を登録する。
ポート監視部171は、通信ポート群121を監視し、通信ポートP1〜8や通信ポートP1〜8に接続された物理リンクの故障・復旧などを検出する手段である。ポート監視部171は、物理リンクの故障・復旧などを検出した場合には、検出結果を設定制御部131に出力する。
ポート監視部171は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部131に出力し、設定制御部131からの指示を受けてポート管理テーブルを更新する。例えば、故障が発生したポートと同一のトランク内の正常なポートのフラディング対象フラグを1に書き換える。
また、ポート監視部171は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部131に出力し、設定制御部131からの指示を受けて、リンク集約管理テーブルを更新する。すなわち、ポート監視部171は、トランク内の正常のポートの数を減算し、トランクを構成する各ポート番号から故障したポートを取り除き、左詰めに設定し直す。また、故障したポートが復旧した場合には、トランク内の正常なポートの数を加算し、トランクを構成するポート情報に、復旧したポートを加えて左詰めに設定し直す。
続いて、本実施例2にかかるLTRのデータ構造について説明する。図13は、本実施例2にかかるLTRのデータ構造の一例を示す図である。同図に示すように、このLTR(リンクトレース応答パケット)は、宛先MACアドレスと、送信元MACアドレスと、EtherType値と、OpeCodeと、TTLと、トランク番号と、ポート番号と、FCSとを備える。
トランク番号には、トランクからLTMを取得してLTRにて応答する場合に、LTMを取得したトランク番号を登録する。また、ポート番号には、トランクからLTMを取得してLTRにて応答する場合に、LTMを取得したポート番号を登録する。
なお、本実施例2にかかるLTMのデータ構造および通常のパケットのデータ構造は、図37〜図41と同様であるため説明を省略する。
次に、本実施例2にかかるパケットSW機構161の処理手順について説明する。なお、パケットSW機構161の処理手順は、図5〜図8(図8のステップS914の応答パケット生成処理2を除く)と同様であるため、ここでは、本実施例2にかかる応答パケット生成処理2について説明する。
図14は、本実施例2にかかる応答パケット生成処理2の処理手順を示すフローチャートである。同図に示すように、パケットSW機構161は、宛先MACアドレスに、LTMのOriginal MACアドレスを設定し(ステップS1001)、送信元MACアドレスにLTRを応答するスイッチのMACアドレスを設定する(ステップS1002)。
そして、EtherType値に予め定められた値である「0x9B10」を設定し(ステップS1003)、OpeCodeに「4」を設定し(ステップS1004)、TTLに受信したLTMのTTLを1減算して設定する(ステップS1005)。
その後、パケットSW機構161は、トランク番号にLTRを送信するトランク番号を設定し(ステップS1006)、ポート番号にLTRを送信するトランク内のポート番号を設定する(ステップS1007)。
上述してきたように、本実施例2にかかるネットワークシステムは、各スイッチ101〜501が、LTMを受信し、転送先のリンクがリンク集約を構成している場合には、リンク集約を構成する全ての物理リンクにLTMを転送する。そして、LTMを受信したスイッチは、LTMを受信した各物理リンクにLTRを出力する場合に、LTMにトランク番号およびポート番号を含ませるので、LTM送信元のスイッチは、各スイッチ101〜501が使用しているトランク番号、正常なリンク数、正常なポートのポート番号を含んだリンクトレース結果データを生成することができる。
なお、本実施例2にかかる設定制御部131は、リンクトレース結果データを図12に示すように生成していたが、これに限定されるものではなく、正常なポート番号とLTMの応答が戻ってこない無反応ポートとを区別して表示してもよい。
図15は、その他のリンクトレース結果データの一例を示す図である。同図に示すように、このリンクトレース結果データは、TTLの大きい順に各MACアドレスが並べられ(経路順に並べられ)、各MACアドレスと対応付けて、トランク番号、構成リンク数、正常ポート番号、無応答ポート番号が登録されている。
また、図15に示すリンクトレース結果データを生成する場合には、メモリ131bにトランク構成データベースを保持させる。図16は、トランク構成データベースのデータ構造の一例を示す図である。同図に示すように、このトランク構成データベースは、各スイッチのMACアドレスを示すスイッチMACアドレスと、トランク番号と、トランクに含まれるポート数を示すトランク内構成ポート数と、1番目ポート番号〜n番目ポート番号とを有する。
CPU131aは、メモリ131bに記憶された受信LTRテーブル(図11参照)と、トランク構成データベースとを比較することによって、図15に示したリンクトレース結果データを生成することができる。トランク構成データベースのトランクのポートのうち、図11の受信LTRテーブルに含まれていないポートは、無反応ポートとなる。
図15に示すように、送信元のスイッチ(図15ではスイッチ101)から宛先のスイッチ(図15ではスイッチ501)へ至る通信経路上に存在するスイッチと、そのスイッチが使用しているトランク番号、トランクを構成するリンク数、トランクを構成するポート番号、LTRの受信結果による正常なポート番号、応答が返らないポート番号を並べて表示することにより、管理者はどのポートが正常であり、どのポートが正常でないかを容易に知ることができる。
次に、本実施例3にかかるネットワークシステムの構成について説明する。図17は、本実施例3にかかるネットワークシステムの構成を示す図である。同図に示すように、このネットワークシステムは、データ転送を行うスイッチ102〜502、ユーザ端末装置21〜26、スイッチ102の保守管理を行う保守端末装置10を備えて構成される。
図17に示す各スイッチ102〜502は、ユーザ端末装置や他のスイッチと接続するためのポートを備え、各ポートが1つの物理リンクに対応する。ポートは、PN(Nは自然数)などの番号により識別する。
スイッチ102は、ポートP1〜8を有し、ポートP1はユーザ端末装置21に接続され、ポートP2はユーザ端末装置22に接続され、ポートP7,P8は、スイッチ202のポートP4,P6に接続されている。また、スイッチ102は、保守端末装置10と接続されている。
スイッチ202は、ポートP1〜12を有し、ポートP1はユーザ端末装置23に接続され、ポートP4,P6は、スイッチ102のポートP7,P8に接続され、ポートP10〜12は、スイッチ302のポートP7,P9,P11に接続されている。
スイッチ302は、ポートP1〜12を有し、ポートP2,P4はスイッチ402のP5,P6に接続され、ポートP7,P9,P11はスイッチ202のポートP10〜12に接続され、ポートP12はスイッチ502のポートP5に接続されている。
スイッチ402は、ポートP1〜6を有し、ポートP1はユーザ端末装置24に接続され、ポートP2はユーザ端末装置25に接続され、ポートP5,P6は、スイッチ302のポートP2,P4に接続されている。
スイッチ502は、ポートP1〜5を有し、ポートP2はユーザ端末装置26に接続され、ポートP5はスイッチ302のポートP12に接続されている。
また、図17に示す各スイッチ102〜502および各ポートは、それぞれ固有のMACアドレスを持っているものとする。スイッチ102〜502と同様にして、ユーザ端末21〜26も固有のMACアドレスを保持しているものとする。
ここで、本実施例3の特徴について説明する。上述した実施例1,2では、LTM、LTRのMACアドレスとして、スイッチごとに1つのMACアドレスを使用している。これに対して、本実施例3では、LTM、LTRのMACアドレスとして、スイッチ内のポート単位のアドレスを使用する。
このように、ポート単位のMACアドレスを使用することよって、LTRのデータ構造(図41参照)を変更することなく、MACアドレスによって、通信経路上に存在するスイッチのポート位置を特定することができる。
次に、図17に示したスイッチ102の構成について説明する。なお、スイッチ202〜502は、スイッチ102と比較してポート数が異なるものの同様の構成で実現可能であるため、説明を省略する。図18は、本実施例3にかかるスイッチ102の構成を示す機能ブロック図である。同図に示すように、このスイッチ102は、バス112と、通信ポート群122と、設定制御部132と、テーブル格納メモリ142と、学習テーブル152と、パケットSW機構162と、ポート監視部172とを備えて構成される。
バス112は、設定制御部132、テーブル格納メモリ142、パケットSW機構162、ポート監視部172を接続する手段(バス)である。また、通信ポート群122は、上記したポートP1〜8からなるポート群であり、かかるポートP1〜8を介して他のスイッチやユーザ端末装置にパケットを転送する。
設定制御部132は、スイッチ102全体を制御する制御手段であり、CPU132aと、メモリ132bと、通信I/F132cとを備える。このうち、CPU132aは、プログラムによる各種の処理を実行する手段であり、特に、本発明に密接に関連する処理としては、リンクトレース結果データを生成する。
具体的に、CPU132aは、パケットSW機構162からLTRを取得した場合に、取得したLTRのポートMACアドレスと、メモリ132bに記憶されたポートMACアドレス管理テーブルとを比較してリンクトレース結果データを生成する。
図19は、ポートMACアドレス管理テーブルのデータ構造の一例を示す図である。同図に示すように、このポートMACアドレス管理テーブルは、ポートMACアドレスと、トランク番号と、ポート番号と、スイッチMACアドレスとを対応付けて記憶している。例えば、CPU132aがLTRを取得して、ポートMACアドレス「00-00-00-01-0B」を含んでいる場合には、取得したLTRは、スイッチMACアドレス「00-00-00-00-0B」のスイッチ202の、トランク番号「40」、ポート番号「4」のポートから応答されたLTRとなる。
図20は、本実施例3にかかるリンクトレース結果データの一例を示す図である。同図に示すように、このリンクトレース結果データは、TTLの大きい順に各ポートMACアドレスが並べられ、各ポートMACアドレスと対応付けて、スイッチMACアドレス、トランク番号が登録されている。
図18の説明に戻ると、メモリ132bは、CPU132aに実行されるプログラムとプログラムが使用するデータとを記憶する。特に、本実施例3にかかるメモリ132bは、図19に示したポートMACアドレス管理テーブル、図20に示したリンクトレース結果データ等を記憶する。
通信I/F132cは、管理者が使用する保守端末装置10から送信されるコマンドを受信し、CPU132aに通知すると共に、コマンドに対する実行結果(例えば、リンクトレース結果データ)を保守端末装置10に応答する手段である。
テーブル格納メモリ142は、ポート管理テーブルおよびリンク集約管理テーブルを記憶する記憶手段である。ここで、ポート管理テーブルは、リンク集約をなすポートの情報等を管理するテーブルである。本実施例3にかかるポート管理テーブルのデータ構造は、図34において説明したポート管理テーブルと同様であるため説明を省略する。また、本実施例3にかかるリンク集約管理テーブルのデータ構造も、図4において説明したリンク集約管理テーブルと同様であるため説明を省略する。
学習テーブル152は、過去に受信したパケットの送信元アドレスと、そのパケットが到来したポートまたはトランクの識別情報とを対応付けて記憶するテーブルである。なお、本実施例3にかかる学習テーブル152のデータ構造は、図36において説明した学習テーブル15と同様であるため説明を省略する。
パケットSW機構162は、通信ポート群122やバス112からパケットを受け取ると、パケットの種別や学習テーブル152の参照結果に応じてパケットの転送先を決定し、通信ポート群122やバス112にパケットを送信する手段である。また、パケットSW機構162は、LTM、LTRを宛先に転送する場合に、LTM、LTRのMACアドレスとして、スイッチ内のポート単位のMACアドレス(あるいはトランクのMACアドレス)を使用する。
ポート監視部172は、通信ポート群122を監視し、通信ポートP1〜8や通信ポートP1〜8に接続された物理リンクの故障・復旧などを検出する手段である。ポート監視部172は、物理リンクの故障・復旧などを検出した場合には、検出結果を設定制御部132に出力する。
ポート監視部172は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部132に出力し、設定制御部132からの指示を受けてポート管理テーブルを更新する。例えば、故障が発生したポートと同一のトランク内の正常なポートのフラディング対象フラグを1に書き換える。
また、ポート監視部172は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部132に出力し、設定制御部132からの指示を受けて、リンク集約管理テーブルを更新する。すなわち、ポート監視部172は、トランク内の正常のポートの数を減算し、トランクを構成する各ポート番号から故障したポートを取り除き、左詰めに設定し直す。また、故障したポートが復旧した場合には、トランク内の正常なポートの数を加算し、トランクを構成するポート情報に、復旧したポートを加えて左詰めに設定し直す。
次に、本実施例3にかかるパケットSW162の処理手順について説明する。なお、本実施例3にかかるパケットSW機構162の処理手順は、図5(図5のステップS712のリンクトレース処理を除く)と同様であるため、ここでは、本実施例3にかかるリンクトレース処理について説明する。
図21、図22は、本実施例3にかかるリンクトレース処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構162は、パケットの種別はLTMか否かを判定し(ステップS1101)、パケットの種別がLTRである場合には(ステップS1102,No)、宛先MACアドレスは自装置のどれかのポートまたはトランクのMACアドレスと一致するか否かを判定する(ステップS1103)。
自装置のどれかのポートまたはトランクのMACアドレスと一致しない場合には(ステップS1104,No)、通常パケット出力処理を実行する(ステップ1105)。一方、自装置のどれかのポートまたはトランクのMACアドレスと一致する場合には(ステップS1104,Yes)、設定制御部132にLTRを出力する(ステップS1106)。
ところで、パケットの種別がLTMである場合には(ステップS1102,Yes)、Target MACアドレスは自装置のどれかのポートまたはトランクのMACアドレスと一致するか否かを判定し(ステップS1107)、一致する場合には(ステップS1108,Yes)、応答パケット生成処理1を実行し(ステップS1109)、パケットを受信したポートに応答パケットを出力する(ステップS1110)。
一方、Target MACアドレスが自装置のどれかのポートまたはトランクのMACアドレスと一致しない場合には(ステップS1108,No)、Target MACアドレスを学習しているか否かを判定し(ステップS1111)、学習していない場合には(ステップS1112,No)、装置内の各ポートP1〜8へパケットを出力し(受信ポートは除く)、出力先のポートがトランクを構成している場合には、トランクを構成するポートから出力ポートを1つ選択してパケットを出力する(ステップS1113)。
一方、Target MACアドレスを学習済みの場合には(ステップS1112,Yes)、応答パケット生成処理2を実行し(ステップS1114)、パケットを受信したポートに応答パケットを出力し(ステップS1115)、要求パケットを受信した位置はトランクか否かを判定する(ステップS1116)。
トランクでない場合には(ステップS1117,No)、ステップS1121に移行する(ステップS1121は後述する)。一方、受信した位置がトランクである場合には(ステップS1117,Yes)、受信トランクに対応するLTM転送済みフラグが「0」か否かを判定する(ステップS1118)。
フラグが「1」の場合には(ステップS1119,No)、そのままリンクトレース処理を終了する。一方、フラグが「0」の場合には(ステップS1119,Yes)、LTM転送済みフラグを「1」に設定し(ステップS1120)、転送パケット生成処理を実行し(ステップS1121)、パケット出力処理を実行する(ステップS1122)。
ここで、図21のステップS1109に示した応答パケット生成処理1は、図46に示した応答パケット生成処理1と同様であるため説明を省略する。また、図21のステップS1105に示した通常パケット出力処理は、図43において説明した通常パケット出力処理と同様であるため説明を省略する。また、図22のステップS1122に示したパケット出力処理は、図6に示したパケット出力処理と同様であるため説明を省略する。
次に、図22のステップS1114に示した応答パケット処理2について説明する。図23は、本実施例3にかかる応答パケット生成処理2の処理手順を示すフローチャートである。同図に示すように、パケットSW機構162は、宛先MACアドレスにLTMのOriginal MACアドレスを設定し(ステップS1201)、送信元MACアドレスにLTRを応答するスイッチのポートのMACアドレスを設定する(ステップS1202)。
そして、パケットSW機構162は、EtherType値に予め定められた値である「0x9B10」を設定し(ステップS1203)、OpeCodeに「4」を設定し(ステップS1204)、TTLに受信したLTMのTTLを1減算して設定する(ステップS1205)。
次に、図22のステップS1121に示した転送パケット生成処理について説明する。図24は、本実施例3にかかる転送パケット生成処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構162は、宛先MACアドレスに、受信したLTMと同じ値を設定し(ステップS1301)、送信元MACアドレスに、LTM受信ポートのMACアドレスを設定する(ステップS1302)。
そして、パケットSW機構162は、EtherType値に予め決められた値である「0x9B10」を設定し(ステップS1303)、OpeCodeに「5」を設定し(ステップS1304)、TTLに受信したLTMのTTLを1減算して設定する(ステップS1305)。
また、パケットSW機構162は、Original MACアドレスに、受信したLTMと同じ値を設定し(ステップS1306)、Target MACアドレスに、受信したLTMと同じ値を設定する(ステップS1307)。
上述してきたように、本実施例3にかかるネットワークシステムは、各スイッチ102〜502が、リンクトレース処理を実行する場合に、LTM、LTRのMACアドレスとして、スイッチ内のポート単位のアドレスを使用するので、LTRのデータ構造(図41参照)を変更することなく、MACアドレス(ポートのMACアドレス)によって、通信経路上に存在するスイッチのポート位置を特定することができる。
次に、本実施例4にかかるネットワークシステムの構成について説明する。図25は、本実施例4にかかるネットワークシステムの構成を示す図である。同図に示すように、このネットワークシステムは、データ転送を行うパケット転送装置103〜303、ユーザ端末装置1〜4、パケット転送装置103の保守管理を行う保守端末装置5を備えて構成される。
パケット転送装置103〜303は、上記した実施例1〜3のレイヤ2スイッチとは異なり、学習機能をもたないパケット転送装置である。パケット転送装置103〜303は、受信したポートの位置によって、送信すべきポートが決まるようなポイントツーポイントのパケット転送機能を有する。
また、パケット転送装置103は、通常の物理リンクのほかに、トランク70によってパケット転送装置203と接続され、パケット転送装置203は、通常の物理リンクのほかに、トランク80によってパケット転送装置303と接続されている。
ここで、本実施例4の特徴について説明する。本実施例4にかかる各パケット転送装置は、経路検索を実行する状況下において、トランクを構成する複数の物理リンク全てに対してLTMを出力し、LTRを各物理リンクから取得し、取得した各LTRを基にして、トランクを構成する複数の物理リンクのうち、正常な物理リンクの数を検出する。
このように、本実施例4にかかるネットワークシステムでは、トランクを構成する全てのポートに対してLTMを出力し、出力したLTMの応答となるLTRを各物理リンクから取得することによって、トランクを構成する各物理リンクの状態を管理者は容易に知ることができ、各トランクを効率よく管理することができる。
次に、図25に示したパケット転送装置103の構成について説明する。なお、パケット転送装置203,303の構成は、パケット転送装置103と同様であるため説明を省略する。図26は、本実施例4にかかるパケット転送装置103の構成を示す機能ブロック図である。
同図に示すように、このパケット転送装置103は、バス113と、通信ポート群123と、設定制御部133と、テーブル格納メモリ143と、パケットSW機構163と、ポート監視部173とを備えて構成される。
バス113は、設定制御部133、テーブル格納メモリ143、パケットSW機構163、ポート監視部173を接続する手段(バス)である。また、通信ポート群123は、上記したポートP1〜8からなるポート群であり、かかるポートP1〜8を介して他のスイッチやユーザ端末装置にパケットを転送する。
設定制御部133は、パケット転送装置103全体を制御する制御手段であり、CPU133aと、メモリ133bと、通信I/F133cとを備える。CPU133aは、プログラムによる各種の処理を実行する手段であり、特に、本発明に密接に関連する処理としては、リンクトレース結果データを生成する。
CPU133aは、パケットSW機構163からLTRを取得した場合に、取得したLTRのMACアドレス(送信元MACアドレス)と、同一MACアドレス(送信元MACアドレス)のLTRを取得した回数を対応付けてメモリ133bに記憶し、メモリ133bに記憶した内容を基にしてリンクトレース結果データを生成する。例えば、リンクトレース結果データは、図3に示したリンクトレース結果データと同様となる。
メモリ133bは、CPU133aに実行されるプログラムとプログラムが使用するデータとを記憶する。特に、本実施例4にかかるメモリ133bは、図3に示したリンクトレース結果データ等を記憶する。通信I/F133cは、管理者が使用する保守端末装置5から送信されるコマンドを受信し、CPU133aに通知すると共に、コマンドに対する実行結果(例えば、リンクトレース結果データ)を保守端末装置5に応答する手段である。
テーブル格納メモリ143は、ポート管理テーブルおよびリンク集約管理テーブルを記憶する記憶手段である。ここで、ポート管理テーブルは、リンク集約をなすポートの情報等を管理するテーブルである。本実施例4にかかるポート管理テーブルのデータ構造は、図34において説明したポート管理テーブルと同様であるため説明を省略する。また、リンク集約管理テーブルは、リンク集約を構成するトランクを管理するためのテーブルである。本実施例4にかかるリンク集約管理テーブルは、図4に示したリンク集約管理テーブルと同様であるため説明を省略する。
パケットSW機構163は、通信ポート群123やバス113からパケットを受け取ると、予め決められたポートにパケットを送信する手段である。特に、本実施例4にかかるパケットSW機構163は、LTMを宛先に転送する場合に、転送するポートがトランクを構成していれば、トランクを構成する全てのポートにLTMを出力する。また、パケットSW機構163は、図4に示したリンク集約管理テーブルを管理し、条件に応じてLTM転送済みフラグを更新する。
ポート監視部173は、通信ポート群123を監視し、通信ポートP1〜8や通信ポートP1〜8に接続された物理リンクの故障・復旧などを検出する手段である。ポート監視部173は、物理リンクの故障・復旧などを検出した場合には、検出結果を設定制御部133に出力する。
ポート監視部173は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部133に出力し、設定制御部133からの指示を受けてポート管理テーブルを更新する。例えば、故障が発生したポートと同一のトランク内の正常なポートのフラディング対象フラグを1に書き換える。
また、ポート監視部173は、リンク集約のポートで故障が発生した場合には、故障の発生したポートの情報を設定制御部133に出力し、設定制御部133からの指示を受けて、リンク集約管理テーブルを更新する。すなわち、ポート監視部173は、トランク内の正常のポートの数を減算し、トランクを構成する各ポート番号から故障したポートを取り除き、左詰めに設定し直す。また、故障したポートが復旧した場合には、トランク内の正常なポートの数を加算し、トランクを構成するポート情報に、復旧したポートを加えて左詰めに設定し直す。
続いて、本実施例1にかかるパケットSW機構163の処理手順について説明する。なお、ここでは説明を省略するが、パケット転送装置203,303に搭載されるパケット機構もパケットSW機構163と同様の処理手順となる。図27は、本実施例4にかかるパケットSW機構163の処理手順を示すフローチャートである。同図に示すように、パケットSW機構163は、パケットを取得し(ステップS1401)、パケットの入力元は通常ポート群か否かを判定する(ステップS1402)。
パケットの入力元が通常ポート群でない場合には(ステップS1403,No)、パケット出力処理を実行する(ステップS1404)。一方、パケットの入力元が通常ポート群である場合には(ステップS1403,Yes)、パケットの種別は通常パケットか否かを判定し(ステップS1405)、通常のパケットである場合には(ステップS1406,Yes)、通常パケット出力処理を実行する(ステップS1407)。一方、通常のパケットではない場合には(ステップS1406,No)、リンクトレース処理を実行する(ステップS1408)。
次に、図27のステップS1404に示したパケット出力処理について説明する。図28は、本実施例4にかかるパケット出力処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構163は、出力ポートはトランクか否かを判定し(ステップS1501)、トランクでない場合には(ステップS1502,No)、予め設定されたポートを出力ポートに指定し(ステップS1503)、指定されたポートにパケットを出力する(ステップS1504)。
一方、出力ポートがトランクである場合には(ステップS1502,Yes)、トランクを構成するポートを調べ(ステップS1505)、トランクを構成する全てのポートにパケットを出力する(ステップS1506)。
次に、図27のステップS1407に示した通常パケット出力処理について説明する。図29は、本実施例4にかかる通常パケット出力処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構163は、出力ポートはトランクか否かを判定する(ステップS1601)。
そして、出力ポートがトランクである場合には(ステップS1602,Yes)、トランクを構成する出力ポートを1つ選択し(ステップS1603)、指定されたポートにパケットを出力する(ステップS1604)。一方、出力ポートがトランクでない場合には(ステップS1602,No)、予め設定されたポートを出力ポートに指定し(ステップS1605)、ステップS1604に移行する。
次に、図27のステップS1408に示したリンクトレース処理について説明する。図30、図31は、本実施例4にかかるリンクトレース処理の処理手順を示すフローチャートである。同図に示すように、パケットSW機構163は、パケットの種別は、LTMか否かを判定し(ステップS1701)、パケットの種別がLTRである場合には(ステップS1702,No)、宛先MACアドレスは自装置のMACアドレスと一致するか否かを判定し(ステップS1703)、一致しない場合には(ステップS1704,No)、通常パケット出力処理を実行する(ステップS1705)。一方、宛先MACアドレスは自装置のMACアドレスと一致する場合には(ステップS1704,Yes)、設定制御部133にLTRを出力する(ステップS1706)。
ところで、パケットの種別がLTMである場合には(ステップS1702,Yes)、Target MACアドレスは自装置のMACアドレスと一致するか否かを判定し(ステップS1707)、一致する場合には(ステップS1708,Yes)、応答パケット生成処理1を実行し(ステップS1709)、パケットを受信したポートに応答パケットを出力する(ステップS1710)。
一方、Target MACアドレスは自装置のMACアドレスと一致しない場合には(ステップS1708,No)、応答パケット生成処理2を実行し(ステップS1711)、パケットを受信したポートに応答パケットを出力し(ステップS1712)、要求パケットを受信した位置はトランクか否かを判定する(ステップS1713)。
要求パケットを受信した位置がトランクでない場合には(ステップS1714,No)、ステップS1718に移行する。一方、要求パケットを受信した位置がトランクの場合には(ステップS1714,Yes)、受信トランクに対応するLTM転送済みフラグが0か否かを判定する(ステップS1715)。
受信トランクに対応するLTM転送済みフラグが1の場合には(ステップS1716,No)、そのままリンクトレース処理を終了する。一方、受信トランクに対応するLTM転送済みフラグが0の場合には(ステップS1716,Yes)、転送済みフラグを設定し(ステップS1717)、転送パケット生成処理を実行し(ステップS1718)、パケット出力処理を実行する(ステップS1719)。
図30のステップS1705に示した通常パケット出力処理は、図29に示した通常パケット出力処理と同様であるため説明を省略する。図30のステップS1709に示した応答パケット生成処理1は、図46に示した応答パケット生成処理1と同様であるため説明を省略する。
また、図31のステップS1711に示した応答パケット生成処理2は、図47に示した応答パケット生成処理2と同様であるため説明を省略する。図31のステップS1718に示した転送パケット生成処理は、図48に示した転送パケット生成処理と同様であるため説明を省略する。図31のステップS1719に示したパケット出力処理は、図28に示したパケット出力処理と同様であるため説明を省略する。
上述してきたように、本実施例4にかかるネットワークシステムは、各パケット転送装置103〜503が、LTMを受信し、転送先のリンクがリンク集約を構成している場合には、リンク集約を構成する全ての物理リンクにLTMを転送し、各物理リンクから応答されるLTRを取得してリンクトレース結果データを生成するので、管理者がリンクトレース結果データを参照することによって正常にパケット転送を実行可能な物理リンクがいくつあるかを正確に知ることができる。
ところで、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部あるいは一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、各実施例に示したスイッチ、パケット転送装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部がCPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(付記1)複数の物理リンクによって仮想的な論理リンクとなるトランクを構成し、当該トランクを利用してパケット転送を実行するパケット転送装置であって、
パケットを取得した場合に、取得したパケットの種別が経路検索を行う検索パケットであるか否かを判定するパケット種別判定手段と、
前記パケット種別判定手段の判定結果に基づいて、前記トランクを構成する複数の物理リンクに前記検索パケットを出力する出力制御手段と、
を備えたことを特徴とするパケット転送装置。
(付記2)前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットごとに当該検索パケットに応答する応答パケットを生成し、前記検索パケットの送信元に前記応答パケットを出力する応答手段を更に備えたことを特徴とする付記1に記載のパケット転送装置。
(付記3)前記応答手段は、前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットのうち単一の検索パケットを当該検索パケットの宛先に転送することを特徴とする付記2に記載のパケット転送装置。
(付記4)前記応答手段は、前記応答パケットに前記トランクおよび物理リンクを識別する情報を含ませて前記検索パケットの送信元に前記応答パケットを出力することを特徴とする付記2または3に記載のパケット転送装置。
(付記5)前記トランクはMACアドレスによって識別されるポートを介して自パケット転送装置と接続され、前記検索パケットおよび前記応答パケットの送信元のアドレスおよび宛先のアドレスとして前記ポートのMACアドレスが用いられることを特徴とする付記1〜4のいずれか一つに記載のパケット転送装置。
(付記6)前記トランクに含まれる物理リンクの情報を記憶する物理リンク情報記憶手段と、前記物理リンクの情報と前記応答パケットの返信結果とを比較して前記トランクに含まれる物理リンクの状態を判定する物理リンク判定手段とを更に備えたことを特徴とする付記2〜5のいずれか一つに記載のパケット転送装置。
(付記7)複数の物理リンクによって仮想的な論理リンクとなるトランクを構成し、当該トランクを利用してパケット転送を実行するパケット転送装置のパケット転送方法であって、
パケットを取得した場合に、取得したパケットの種別が経路検索を行う検索パケットであるか否かを判定するパケット種別判定工程と、
前記パケット種別判定工程の判定結果に基づいて、前記トランクを構成する複数の物理リンクに前記検索パケットを出力する出力制御工程と、
を含んだことを特徴とするパケット転送方法。
(付記8)前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットごとに当該検索パケットに応答する応答パケットを生成し、前記検索パケットの送信元に前記応答パケットを出力する応答工程を更に含んだことを特徴とする付記7に記載のパケット転送方法。
(付記9)前記応答工程は、前記トランクから複数の検索パケットを取得した場合に、取得した複数の検索パケットのうち単一の検索パケットを当該検索パケットの宛先に転送することを特徴とする付記8に記載のパケット転送方法。
(付記10)前記応答工程は、前記応答パケットに前記トランクおよび物理リンクを識別する情報を含ませて前記検索パケットの送信元に前記応答パケットを出力することを特徴とする付記8または9に記載のパケット転送方法。
(付記11)前記トランクはMACアドレスによって識別されるポートを介して前記パケット転送装置と接続され、前記検索パケットおよび前記応答パケットの送信元のアドレスおよび宛先のアドレスとして前記ポートのMACアドレスが用いられることを特徴とする付記7〜10のいずれか一つに記載のパケット転送方法。
(付記12)前記トランクに含まれる物理リンクの情報を記憶装置に記憶する物理リンク情報記憶工程と、前記物理リンクの情報と前記応答パケットの返信結果とを比較して前記トランクに含まれる物理リンクの状態を判定する物理リンク判定工程とを更に含んだことを特徴とする付記8〜11のいずれか一つに記載のパケット転送方法。
以上のように、本発明にかかるパケット転送装置は、複数の物理リンクを束ねたトランクを用いてパケット伝送が行われるネットワークシステム等に有用であり、特に、トランクを構成する各物理リンクの状態を管理する場合に適している。
本実施例1にかかるネットワークシステムの構成を示す図である。
本実施例1にかかるスイッチの構成を示す機能ブロック図である。
本実施例1にかかるリンクトレース結果データの一例を示す図である。
リンク集約管理テーブルのデータ構造の一例を示す図である。
本実施例1にかかるパケットSW機構の処理手順を示すフローチャートである。
本実施例1にかかるパケット出力処理の処理手順を示すフローチャートである。
本実施例1にかかるリンクトレース処理の処理手順を示すフローチャート(1)である。
本実施例1にかかるリンクトレース処理の処理手順を示すフローチャート(2)である。
本実施例2にかかるネットワークシステムの構成を示す図である。
本実施例2にかかるスイッチの構成を示す機能ブロック図である。
本実施例2にかかる受信LTRテーブルのデータ構造の一例を示す図である。
本実施例2にかかるリンクトレース結果データの一例を示す図である。
本実施例2にかかるLTRのデータ構造の一例を示す図である。
本実施例2にかかる応答パケット生成処理2の処理手順を示すフローチャートである。
その他のリンクトレース結果データの一例を示す図である。
トランク構成データベースのデータ構造の一例を示す図である。
本実施例3にかかるネットワークシステムの構成を示す図である。
本実施例3にかかるスイッチの構成を示す機能ブロック図である。
ポートMACアドレス管理テーブルのデータ構造の一例を示す図である。
本実施例3にかかるリンクトレース結果データの一例を示す図である。
本実施例3にかかるリンクトレース処理の処理手順を示すフローチャート(1)である。
本実施例3にかかるリンクトレース処理の処理手順を示すフローチャート(2)である。
本実施例3にかかる応答パケット生成処理2の処理手順を示すフローチャートである。
本実施例3にかかる転送パケット生成処理の処理手順を示すフローチャートである。
本実施例4にかかるネットワークシステムの構成を示す図である。
本実施例4にかかるパケット転送装置の構成を示す機能ブロック図である。
本実施例4にかかるパケットSW機構の処理手順を示すフローチャートである。
本実施例4にかかるパケット出力処理の処理手順を示すフローチャートである。
本実施例4にかかる通常パケット出力処理の処理手順を示すフローチャートである。
本実施例4にかかるリンクトレース処理の処理手順を示すフローチャート(1)である。
本実施例4にかかるリンクトレース処理の処理手順を示すフローチャート(2)である。
従来のスイッチで構成されるネットワークシステムの構成を示す図である。
図32に示したスイッチの構成を示す機能ブロック図である。
従来のポート管理テーブルのデータ構造の一例を示す図である。
従来のリンク集約管理テーブルのデータ構造の一例を示す図である。
従来の学習テーブルのデータ構造の一例を示す図である。
パケットのデータ構造の一例を示す図である。
パケットヘッダのデータ構造の一例を示す図である。
パケットのペイロードに含まれるEtherType値およびOpeCodeを説明するための図である。
リンクトレース要求パケットのデータ構造の一例を示す図である。
リンクトレース応答パケットのデータ構造の一例を示す図である。
従来のパケットSW機構の処理手順を示すフローチャートである。
通常パケット出力処理の処理手順を示すフローチャートである。
リンクトレース処理の処理手順を示すフローチャート(1)である。
リンクトレース処理の処理手順を示すフローチャート(2)である。
応答パケット生成処理1の処理手順を示すフローチャートである。
応答パケット生成処理2の処理手順を示すフローチャートである。
転送パケット生成処理の処理手順を示すフローチャートである。
従来のリンクトレース結果データの一例を示す図である。
符号の説明
1,2,3,4,21,22,23,24,25,26 ユーザ端末装置
5,10 保守端末装置
10a,10b,10c,10d,10e、100,101,102,200,201,202,300,301,302,400,401,402,500,501,502 スイッチ
40,50,60,70,80 トランク
11,110,111,112,113 バス
12,120,121,122,123 通信ポート群
13,130,131,132,133 設定制御部
13a,130a,131a,132a,133a CPU
13b,130b,131b,132b,133b メモリ
13c,130c,131c,132c,133c 通信I/F
14,140,141,142,143 テーブル格納メモリ
15,150,151,152 学習テーブル
16,160,161,162,163 パケットSW機構
17,170,171,172,173 ポート監視部
103,203,303 パケット転送装置