以下、図面に基づいて本発明の実施の形態を説明する。図7は、本発明の実施の形態におけるネットワーク構成例を示す図である。
同図において、スイッチスタック1は、スイッチSW1、SW2、及びSW3(以下、各スイッチを区別しない場合「スイッチSW」という。)を含み、論理的には一台のスイッチとして扱われる。各スイッチSWは、レイヤ2スイッチ(又は「スイッチングハブ」とも呼ばれる)であり、フレームを中継する中継装置の一例である。各スイッチSWは、図中において隣り合うスイッチとスタック接続されている。スイッチ間を接続する回線を、以下「スタックリンク」という。同図では、スタックリンクL1〜L3が示されている。スタックリンクL3は、ネットワークの障害耐久性を向上させるための冗長経路である。その結果、スイッチSW1〜SW3においてループが形成されている。
外部ノードAは、スイッチSW1及びSW2と接続されているネットワーク機器(例えば、ルーター)である。外部ノードBは、スイッチSW2及びSW3と接続されているネットワーク機器である。すなわち、外部ノードA及びBは、それぞれ2本の回線を介してスイッチスタック1と接続されている。但し、各2本の回線は、リンクアグリゲーションの利用により論理的に1本の回線として扱われる。具体的には、リンクアグリゲーショングループGaに属する2本の回線は、論理的には1本の回線として扱われる。同様に、リンクアグリゲーショングループGbに属する2本の回線は、論路的には1本の回線として扱われる。したがって、外部ノードA及びBとスイッチスタック1とは、論理的にはそれぞれ1本の回線を介して接続されているものとして扱われる。
また、各スイッチSWには、PC(Personal Computer)等の端末Tが接続されている。例えば、スイッチSW1には、端末T1及びT2が接続されている。端末T2は、スイッチSW2にも接続されている。端末T2とスイッチSW1とを接続する回線と、端末T2とスイッチSW2とを接続する回線とは、同一のリンクアグリゲーショングループGtに属し、論理的に1本の回線とされている。
図8は、本発明の実施の形態におけるスイッチの構成例を示す図である。本実施の形態においてスイッチスタック1に含まれる各スイッチSWは、n個のフレーム受信部i1〜in、n個のフレーム送信部o1〜on、中継部11、及び中継DB12等を有する。
フレーム受信部i1〜in(以下、いずれも区別しない場合「フレーム受信部i」という。)は、それぞれ別個の回線に接続され、当該回線よりフレームを受信する。フレーム送信部o1〜on(以下、いずれも区別しない場合「フレーム送信部o」という。)は、それぞれ別個の回線に接続され、当該回線に対してフレームを送出する。なお、フレーム受信部iとフレーム送信部oとは、参照番号の末尾の数字が一致するもの同士で同一の回線に接続される。例えば、フレーム受信部i1とフレーム送信部o1とは、同一の回線に接続される。
中継部11は、スイッチSWの基本的な機能であるフレームの中継処理及びノードの学習処理等を行う。具体的には、中継部11は、フレーム受信部iによって受信されたフレーム(受信フレーム)の送信元MACアドレスと、フレームを受信したフレーム受信部iに係るポートとの対応情報を中継DB12に記録する。中継部11は、受信フレームの宛先MACアドレスとポートとの対応情報が中継DB12に登録されている場合には、当該ポートに対応するフレーム送信部oよりフレームを送出させる。中継部11は、受信フレームの宛先MACアドレスとポートとの対応情報が中継DB12に登録されていない場合には、フラッディングを行う。フラッディングとは、受信フレームの宛先が中継DB12に未登録の場合に、宛先ノードがどのポートに接続されているか分からないため、フレームを受信したフレーム受信部iに対応するフレーム送信部o以外の全てのフレーム送信部oに受信フレームを出力することをいう。
フレーム受信部i及びフレーム送信部oの詳細について説明する。図9は、フレーム受信部及びフレーム送信部の構成例を示す図である。
同図において、一つのフレーム受信部iは、受信ポートPi、ポートグループ決定部13、及びデフォルトポートグループ記憶部14等を含む。
受信ポートPiは、回線よりフレームを受信するポートである。ポートグループ決定部13は、受信されたフレームに対して付与するポートグループのグループ番号を決定する回路である。ポートグループとは、スイッチスタック1に含まれる各スイッチSWが有する各送信ポートPoの複数通りの組み合わせ(グループ)を識別する概念である。グループ番号は、ポートグループの異同を識別又は区別するための情報である。ポートグループ決定部13は、デフォルトポートグループ記憶部14を用いて受信フレームに付与すべきグループ番号を決定する。デフォルトポートグループ記憶部14は、例えば、10ビットの記憶容量を有するレジスタ(記憶媒体)であり、当該デフォルトポートグルーブ記憶部が属するフレーム受信部iに対して予め設定されたグループ番号を1つ記憶する。すなわち、一つのフレーム受信部iに対しては、一つのグループ番号が設定される。同図では、グループ番号として「2」が設定されている例が示されている。但し、後述されるように、受信フレームにはグループ番号を含むタグが付与されている場合がある。受信フレームに当該タグが付与されている場合、ポートグループ決定部13は、当該タグを含むグループ番号を受信フレームに関するグループ番号として決定する。ポートグループ決定部13によってグループ番号が決定された受信フレームは、中継部11に入力される。なお、ポートグループ決定部13によって決定されたグループ番号は、受信フレームに関連付けられて管理される。
一方、一つのフレーム送信部oは、フィルタリング部15、ポートグループメンバーシップ記憶部16、タグ付与部17、タグ付与要否記憶部18、及び送信ポートPo等を含む。受信フレームの送出先として判定されたポートに係るフレーム送信部oのフィルタリング部15のフィルタリング部15には当該受信フレームが中継部11より入力される。また、ポートグループ決定部13によって決定されたグループ番号も受信フレームと共にフィルタリング部15に入力される。フィルタリング部15は、入力されたグループ番号とポートグループメンバーシップ記憶部16とを用いて、入力された受信フレームのフィルタリングを行う回路である。ここでいう「フィルタリング」とは、入力された受信フレームのうち送出対象とするものを限定する処理をいう。ポートグループメンバーシップ記憶部16は、例えば、1024bitの記憶容量を有するレジスタ(記憶媒体)であり、当該フレーム送信部oが属するポートグループのグループ番号を記憶する。具体的には、ポートグループメンバーシップ記憶部16の各ビットは、それぞれ一つのポートグループに対応する。例えば、Nビット目は、グループ番号Nに対応する。ビット値「1」は、当該フレーム送信部oが、当該ビットに対応するポートグループに属することを示す。ビット値「0」は、当該フレーム送信部oが、当該ビットに対応するポートグループに属さないことを示す。例えば、同図では、1ビット目と2ビット目とが「1」になっている。したがって、当該フレーム送信部oがグループ1及びグループ2に属していることが分かる。なお、本実施の形態において、ポートグループメンバーシップ記憶部16は、1024通りのポートグループについて属しているか否かを記憶可能である。デフォルトポートグループ記憶部14が10ビットであるのも、最大で1024のグループ番号を表現可能とするためのである。すなわち、デフォルトポートグループ記憶部14及びポートグループメンバーシップ記憶部16の記憶容量(ビット数)は、定義可能なグループ数に応じて定めればよい。具体的には、スイッチスタック1のポートのうち外部ノードと接続可能なポート数が定義可能なグループ数の最大値となる。
フィルタリング部15は、ポートグループメンバーシップ記憶部16において、入力されたグループ番号に対応するビットが「1」である場合、入力された受信フレームは送出対象であると判定する。フィルタリング部15は、送出対象と判定した受信フレームと、入力されたグループ番号とをタグ付与部17に入力する。一方、ポートグループメンバーシップ記憶部16において、入力されたグループ番号に対応するビットが「0」である場合、フィルタリング部15は、入力された受信フレームを廃棄する。したがって、この場合、当該フレーム送信部oからは受信フレームは送出されない。
タグ付与部17は、フィルタリング部15より入力される受信フレームに対して、同じくフィルタリング部15より入力されるグループ番号を示すデータを付与する。本実施の形態において、タグ付与部17によって受信フレームに対して付与される、グループ番号を示すデータを「タグ」と呼ぶ。タグは、受信フレームと一体的に流通可能なようにフレームの一部として付与される。但し、タグの付与は、タグ付与要否記憶部18においてタグの付与が必要であることが示されている場合に行われる。タグ付与要否記憶部18は、例えば、1ビットの記憶容量を有するレジスタ(記憶媒体)であり、1ビットによってタグの付与の要否を示す。「1」は、タグの付与が必要であることを示し、「0」は、タグの付与は不要であることを示す。本実施の形態では、スイッチスタック1の内部の回線(すなわち、スタックリンクL1〜L3のいずれか)に接続されるフレーム送信部oのタグ付与要否記憶部18には「1」が記録される。一方、スイッチスタック1の外部の回線に接続されるフレーム送信部oのタグ付与要否記憶部18には「0」が記録される。タグは、スイッチスタック1内でのみ有効な情報であるため、スイッチスタック1の外部に転送されるフレームにタグが付与されるのは無駄である又は好ましくないからである。送信ポートPoは、タグ付与部17より入力される受信フレームを回線に送出するポートである。
なお、図9において、デフォルトポートグループ記憶部14、ポートグループメンバーシップ記憶部16、及びタグ付与要否記憶部18に対する値の設定(記録)は、スイッチSWが有するボタン等を介して行われてもよいし、スイッチSWに制御用フレームを入力することで行われてもよい。
以上のように、本実施の形態では、各スイッチSWの各フレーム受信部i及びフレーム送信部oのそれぞれについて、ポートグループという概念によってグループ分けすることが可能とされている。なお、各フレーム受信部i及び各フレーム送信部oのグループ分けは、実質的に各受信ポートPi及び各送信ポートPoのグループ分けと等価である。したがって、本実施の形態では、ポートを受信分けの対象として説明する。なお、本実施の形態において単に「ポート」というとき、受信ポートPi及び送信ポートPoの区別は無い。
各スイッチSWが、図9に示される構成を有することで、スイッチスタック1としては、受信フレームの中継経路について、図10に示されるような制御を行うことが可能となる。
図10は、第一の実施の形態におけるスイッチスタックの動作例を説明するための図である。
同図において、(A)は、スイッチSW1のポートp13に係る受信ポートPiによって、端末T1から宛先の不明なフレームFu1が受信された場合のスイッチスタック1の動作例を示す。宛先の不明なフレームとは、宛先MACアドレスが学習されていない(中継DB12に登録されていない)フレームをいう。ここで、ポートp13に係る受信ポートPiに対応するデフォルトポートグループ記憶部14には「1」が記録されていることとする。また、(A)において黒丸が付与されている各ポートは、グループ番号が「1」であるグループ1に属する送信ポートPoを示す。グループ1に属する送信ポートPoとは、1ビット目が「1」であるポートグループメンバーシップ記憶部16を有するポート送信部oに属する送信ポートPoである。
具体的には、スイッチSW1のポートp11、p12、p13、p14、及びp15、スイッチSW2のポートp24、並びにスイッチSW3のポートp33、p34、及びp36のそれぞれに係る送信ポートPoは、グループ1に属する。
この場合、ポートp13に係るポートグループ決定部13によって、フレームFu1に対するグループ番号は「1」であると決定される。続いて、スイッチSW1の中継部11は、フレームFu1の宛先は不明なためフレームFu1をフラッディングさせようとする。但し、グループ1に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu1は廃棄される。したがって、フレームFu1は、グループ1に属するポートp11、ポートp12、ポートp14、及びポートp15に係る送信ポートPoより送出される。送出される各フレームFu1には、当該フレームFu1を送出したポートに係るタグ付与部17によってグループ1を示すタグが付与される。但し、ポートp14及びp15は、外部ノードへの回線に接続されている。したがって、ポートp14及びp15に係るポート付与要否記憶部の値は「0」に設定されている。その結果、ポートp14及びp15に係るタグ付与部17は、フレームFu1に対するタグの付与は行わない。
スイッチSW2は、スイッチSW1のポートp12より送出されたフレームFu1をポートp21に係る受信ポートPiを介して受信する。ポートp21に係るポートグループ決定部13は、受信されたフレームFu1のグループ番号は「1」であると決定する。フレームFu1にはグループ番号「1」を示すタグが付与されているからである。続いて、スイッチSW2の中継部11は、フレームFu1の宛先は不明なためフレームFu1をフラッディングさせようとする。但し、グループ1に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu1は廃棄される。その結果、フレームFu1は、グループ1に属するポートp24に係る送信ポートPoより送出される。ポートp24は、外部ノードへの回線に接続されている。したがって、ポートp24に係る送信ポートPoより送出されるフレームFu1にはタグは付与されない。より詳しくは、フレームFu1に付与されたタグが除去された後、フレームFu1が送出される。後述において「タグは付与されない」という場合についても同様である。
スイッチSW3は、スイッチSW1のポートp11より送出されたフレームFu1をポートp32に係る受信ポートPiを介して受信する。ポートp32に係るポートグループ決定部13は、受信されたフレームFu1のグループ番号は「1」であると決定する。フレームFu1にはグループ番号「1」を示すタグが付与されているからである。続いて、スイッチSW3の中継部11は、フレームFu1の宛先は不明なためフレームFu1をフラッディングさせようとする。但し、グループ1に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu1は廃棄される。その結果、フレームFu1は、グループ1に属するポートp33、p34、及びp36に係る送信ポートPoより送出される。ポートp33、p34、及びp36は、外部ノードへの回線に接続されている。したがって、ポートp33、p34、及びp36に係る送信ポートPoより送出されるフレームFu1にはタグは付与されない。
一方、(B)は、スイッチSW1のポートp14に係る受信ポートPiによって、端末T2から宛先の不明なフレームFu2が受信された場合のスイッチスタック1の動作例を示す。ここで、ポートp14に係る受信ポートPiに対応するデフォルトポートグループ記憶部14には「2」が記録されていることとする。また、(B)において黒丸が付与されているポートは、グループ番号が「2」であるグループ2に属する送信ポートPoを示す。グループ2に属する送信ポートPoとは、2ビット目が「1」であるポートグループメンバーシップ記憶部16を有するポート送信部oに属する送信ポートPoである。
具体的には、スイッチSW1のポートP11、p12、p13、及びp14、スイッチSW2のポートp24、ポートp25、及びポートp26、並びにスイッチSW3のポートp33及びポートp34のそれぞれに係る送信ポートPoは、グループ2に属する。
この場合、ポートp14に係るポートグループ決定部13によって、フレームFu2に対するグループ番号は「2」であると決定される。続いて、スイッチSW1の中継部11は、フレームFu2の宛先は不明なためフレームFu2をフラッディングさせようとする。但し、グループ2に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu2は廃棄される。したがって、フレームFu2は、グループ2に属するポートp11、ポートp12、及びポートp13に係る送信ポートPoより送出される。ポートp11及びp12に係る送信ポートPo送出される各フレームFu2には、当該ポートに係るタグ付与部17によってグループ2を示すタグが付与される。
スイッチSW2は、スイッチSW1のポートp12より送出されたフレームFu2を、ポートp21に係る受信ポートPiを介して受信する。ポートp21に係るポートグループ決定部13は、受信されたフレームFu2のグループ番号は「2」であると決定する。フレームFu2にはグループ番号「2」を示すタグが付与されているからである。続いて、スイッチSW2の中継部11は、フレームFu2の宛先は不明なためフレームFu2をフラッディングさせようとする。但し、グループ2に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu2は廃棄される。その結果、フレームFu2は、グループ2に属するポートp24、p25、及びp26に係る送信ポートPoより送出される。ポートp24、p25、及びp26は、外部ノードへの回線に接続されているため、当該送信ポートPoより送出されるフレームFu2にはタグは付与されない。
スイッチSW3は、スイッチSW1のポートp11より送出されたフレームFu2を、ポートp32に係る受信ポートPiを介して受信する。ポートp32に係るポートグループ決定部13は、受信されたフレームFu2のグループ番号は「2」であると決定する。フレームFu2にはグループ番号「2」を示すタグが付与されているからである。続いて、スイッチSW3の中継部11は、フレームFu2の宛先は不明なためフレームFu2をフラッディングさせようとする。但し、グループ2に属さないフレーム送信部oにおいては、フィルタリング部15によってフレームFu2は廃棄される。その結果、フレームFu2は、グループ2に属するポートp33及びp34に係る送信ポートPoより送出される。ポートp33及びp34は、外部ノードへの回線に接続されているため、当該送信ポートPoより送出されるフレームFu2にはタグは付与されない。
図10に示されるように、第一の実施の形態によれば、送信ポートPoのグループ分けによって受信フレームの中継範囲(中継経路)を制御又は制限することができる。その結果、各ノードへの余剰のフレームの送信を抑制することができる。
したがって、スイッチスタック1における冗長経路の存在や、リンクアグリゲーションの利用による冗長経路の存在によるフレームのストームを適切に抑制しつつ、リンクアグリゲーションの利用を可能とすることができる。また、フレームの平均ホップ数の低下、及び各スタックリンクの負荷の軽減を図ることができ、高いネットワーク性能を得ることができる。
また、同一のリンクアグリゲーショングループに属する複数の回線のうちの一つの回線のみが同一フレームの転送に利用されるようにすることができる。具体的には、図10のリンクアグリゲーショングループGa及びGbにおいて、フレームFu1の転送に利用される回線と、フレームFu2の転送に利用される回線とは異なる。したがって、リンクアグリゲーションの特長でもある負荷分散を図ることもできる。
なお、上記のような効果を得るためには、以下のような条件が満たされるようにポートのグループ分けを行えばよい。
(1)グループごとに重複経路が存在しないようにする。
(2)同一のノードへ向かう複数の回線が存在する場合は、各回線が均等に使用されるようにする。
(1)でいう重複経路が存在する状態とは、同一ノードに対して複数通りの経路が存在する状態をいう。このことは、フレームの中継経路に関してスイッチスタック1内にループが形成される状態を意味する。したがって、(1)については、グループごとに冗長経路が存在しないようにすると言い換えることができる。
(2)の条件を満たすためには、各送信ポートPoが属するポートグループを例えば次のように決定するとよい。まず、外部ノードとの回線に接続されている各受信ポートPiに0を起点として順番に通し番号nを付与する。ここでは、通し番号nが付与された受信ポートPiを受信ポートnと呼ぶ。続いて、同一のリンクアグリゲーショングループに属するS本の回線のそれぞれに接続される送信ポートPoに0から順番に通し番号mを付与する。ここでは、通し番号mが付与された送信ポートを送信ポートmという。送信ポートmのポートグループメンバーシップ記憶部16には、(n mod S)=mとなる受信ポートnに係るデフォルトポートグループ記憶部14に記録されたグループ番号を追加する。なお、modは剰余を出力する関数である。例えば、リンクアグリゲーショングループGaには2本の回線が属している。したがって、一方の回線に接続されるポートp15に係る送信ポートPoを送信ポート0とし、他方の回線に接続されるポートp25に係る送信ポートPo送信ポート1とする。また、外部ノードに接続されるポートp13に係る受信ポートPiには「0」、ポートp14に係る受信ポートPiには「1」、ポートp15に係る受信ポートPiには、「2」の通し番号を付与する。この場合、送信ポート0のポートグループメンバーシップ記憶部16には、(n mod 2)=0となるnを通し番号として持つポートp13及びポートp15に係る受信ポートPiのデフォルトポートグループ記憶部14に記録されたグループ番号を含むような設定を行う。同様に、送信ポート1のポートグループメンバーシップ記憶部16には、(n mod 2)=1となるnを通し番号として持つポートp14に係る受信ポートPiのデフォルトポートグループ記憶部14に記録されたグループ番号を含むような設定を行う。
なお、第一の実施の形態において、学習済みの一つのノードを宛先とするフレームについては、ポートグループによる中継範囲の制限の対象から除外される。以下、その理由について説明する。
図11は、第一の実施の形態のスイッチスタックにおけるリンクアグリゲーショングループを経由する外部ノードに関する学習状態の例を示す図である。同図では、外部ノードA側に外部ノードXが接続されている。
図中(C)は、スイッチスタック1において、外部ノードXを送信元とする宛先の不明なフレームFu3が受信された様子を示す。この際、フレームFu3の転送には、リンクアグリゲーショングループGaに属する回線のいずれか一方が選択されて使用される。同図では、スイッチSW1のポートp15に接続された回線が選択された例が示されている。ここで、ポートp15に係る受信ポートPiに対応するデフォルトポートグループ記憶部14には「3」が記録されていることとする。また、(A)において黒丸が付与されているポートは、グループ番号が「3」であるグループ3に属する送信ポートPoを示す。
(D)は、図10において説明した処理と同様に、ポートグループ3に属する送信ポートPoよりフレームFu3がフラッディングされ、各スイッチSWにおいて外部ノードXに関する学習が行われた結果を示す。すなわち、ポートを示す円の中に「X」の文字が記載されていることは、当該ポートと外部ノードXのMACアドレスとの対応情報が中継DB12に登録されたことを示す。具体的には、スイッチSW1ではポートp15が、スイッチSW2ではポートp21が、スイッチSW3では、ポートp32が、外部ノードXに対応する送信ポートPoであることがそれぞれのスイッチSWの中継DB12に登録されている。
その後、(D)の学習状態において(E)に示されるように、スイッチスタック1において、外部ノードXを送信元とする宛先の不明なフレームFu4が受信されたとする。(E)では(C)と異なる回線が使用されている。リンクアグリゲーショングループGaに属する回線のいずれが使用されるかは動的に変化するからである。その結果、フレームFu4は、スイッチSW2のポートp25に係る受信ポートPiによって受信されている。
ここで、ポートp25に係る受信ポートPiに対応するデフォルトポートグループ記憶部14には「4」が記録されていることとする。また、(E)において黒丸が付与されているポートは、グループ番号が「4」であるグループ4に属する送信ポートPoを示す。
(F)は、ポートグループ4に属する送信ポートPoよりフレームFu4がフラッディングされ、各スイッチSWにおいて外部ノードXに関する学習が行われた結果を示す。図より明らかなように、(F)の学習状態は、(D)におけるものと異なる。一般的なスイッチでは、同一ノードに関する学習が行われる場合、古い学習内容は削除されるからである。具体的には、(F)のスイッチSW1ではノードp12が、スイッチSW2ではノードp25が、外部ノードXに対応する送信ポートPoであることが学習されている。
なお、(F)の学習状態において、再度(C)の経路で外部ノードXから宛先の不明なフレームが受信された場合、外部ノードXの学習状態は、(D)に示されるようになる。このように、外部ノードXに関する学習状態は、(C)又は(D)のいずれか一方に関して選択的又は排他的なものとなる。その結果、図12に示されるような問題が発生する。
図12は、第一の実施の形態において宛先が学習済みの一つのノードであるフレームについてポートグループによって中継範囲を制限するときの問題点を説明するための図である。同図(A)及び(B)では、いずれも図11(D)の学習状態を前提としている。
(A)では、端末T1より外部ノードX宛のフレームFx1がスイッチSW1のポートp13に係る受信ポートPiによって受信された例が示されている。この場合、図10(A)と同様に、ポートp13に係るポートグループ決定部13によってフレームFx1に対するグループ番号は「1」であると決定される。続いて、スイッチSW1の中継部11は、中継DB12に記録されている学習内容に基づいてポートp15に係る送信ポートPoをフレームFx1の送出先として判断し、ポートp15に係るフィルタリング部15にフレームFx1とグループ番号「1」とを入力する。図10(A)と同様、ポートp15に係る送信ポートPoはグループ1に属するため、フレームFx1は廃棄されずにポートp15に係る送信ポートPoより送出される。その結果、フレームFx1は、正常に外部ノードXに中継される。
一方、(B)では、端末T2より外部ノードX宛のフレームFx2がスイッチSW1のポートp14に係る受信ポートPiによって受信された例が示されている。この場合、図10(B)と同様に、ポートp14に係るポートグループ決定部13によってフレームFx2に対するグループ番号は「2」であると決定される。続いて、スイッチSW1の中継部11は、中継DB12に記録されている学習内容に基づいてポートp15に係る送信ポートPoをフレームFx2の送出先として判断し、ポートp15に係るフィルタリング部15にフレームFx2とグループ番号「2」とを入力する。但し、図10(B)と同様、ポートp15に係る送信ポートPoはグループ1に属し、グループ2には属さない。したがって、当該フィルタリング部15は、フレームFx2を廃棄してしまう。その結果、フレームFx2は、外部ノードXへ中継されない。
そこで、本実施の形態におけるスイッチSWは、学習済みの一つのノードを宛先とするフレームについては、ポートグループによる中継範囲の制限を行わないようにするのである。具体的には、中継部11は、中継DB12に基づいてフレームの送出先の送信ポートPoが一つであると判定される場合は、当該フレームと共にフィルタリングは不要であることを示す情報を(以下、「フィルタリング不要指示」という。)当該送信ポートPoに対応するフィルタリング部15に入力する。フィルタリング部15は、フィルタリング不要指示が入力された場合は、ポートグループメンバーシップ記憶部16を用いたフィルタリングを行わずに、そのままフレームを通過させる。その後、当該フレームは、タグの付与が必要な場合はタグ付与部17によってタグが付与され、送信ポートPoより送出される。なお、フィルタリング不要指示は、どのような形態によって実現されてもよい。
各スイッチSWがこのような制御を行うことで、図12と同様にフレームFx1又はフレームFx2が受信された場合のスイッチスタック1の動作は、図13に示されるようになる。
図13は、第一の実施の形態において宛先が学習済みの一つのノードであるフレームについてポートグループによって中継範囲を制限しないときのスイッチスタックの動作を説明するための図である。図中、(A)、(B)は図12(A)、(B)のそれぞれに対応する。図13では、図12と異なる点について説明する。
図13(A)において、端末T1より受信されたフレームFx1の宛先は外部ノードXの一つであり、外部ノードXはスイッチSW1において学習済みである。したがって、スイッチSW1の中継部11は、フレームFx1と共にフィルタリング不要指示をポートp15に係るフィルタリング部15に入力する。フィルタリング部15は、フィルタリング不要指示に基づいて、フィルタリングは行わずにフレームを通過させる。その結果、フレームFx1は、ポートp15に係る送信ポートPoより送出される。
また、図13(B)において、端末T2より受信されたフレームFx2の宛先は外部ノードXの一つであり、外部ノードXはスイッチSW1において学習済みである。したがって、スイッチSW1の中継部11は、フレームFx2と共にフィルタリング不要指示をポートp15に係るフィルタリング部15に入力する。フィルタリング部15は、フィルタリング不要指示に基づいて、フィルタリングは行わずにフレームを通過させる。その結果、フレームFx2は、ポートp15に係る送信ポートPoより送出される。
このように、学習済みの一つのノードを宛先とするフレームについても適切に中継を行うことが可能となる。
なお、ポートグループによる制限が解除されるのは、学習済みの一つのノードを宛先とするフレームである。したがって、中継部11によってフラッディング対象として判定されたフレーム(すなわち、宛先が不明のフレーム)、又は宛先が複数であるフレームについては、第一の実施の形態において説明した通り、ポートグループによって中継範囲が制限される。
次に、図12において説明した問題を、別の方法によって解決した例を第二の実施の形態として説明する。「別の方法」とは、学習済みの一つのノードを宛先とするフレームをポートグループによる中継範囲の制限の対象から除外する方法とは別の方法を意味する。したがって、第二の実施の形態では、学習済みの一つのノードを宛先とするフレームについても、ポートグループによる中継範囲の制限の対象とされてよい。なお、第二の実施の形態は、第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については、第一の実施の形態と同様でよい。
図14は、第二の実施の形態におけるスイッチスタックの動作例を説明するための図である。
同図において、(D)及び(F)は、図11における外部ノードXの二通りの学習状態を示す。第二の実施の形態のスイッチSWは、公知の一般的なスイッチと異なり、同一の外部ノードに関して複数通りの学習状態が発生する場合、それぞれの学習状態を論理和演算によって統合する。すなわち、同一の外部ノードに関して追加的又は重畳的に学習が行われる。その結果(G)に示されるように、スイッチSW1のポートp15及びp12、スイッチSW2のポートp21及びp25、並びにスイッチSW3のポートp32が、外部ノードXに対応するポートとして学習される。
具体的な動作としては、第二の実施の形態の中継部11及び中継DB12は、同一ノードに対する複数のポートの対応付けを許容する。したがって、(D)の学習状態において、(F)の学習状態となるような中継が行われたとしても、(D)の学習状態は中継DB12から削除されず、(F)の学習状態が中継DB12に新たに追加される。
その結果、学習済みの一つのノードを宛先とするフレームをポートグループによる中継範囲の制限の対象から除外せずとも、斯かるフレームの中継を適切に行うことが可能となる。例えば、図12(B)のようなフレームFx2がポートp14によって受信された場合であっても、フレームFx2をノードXに中継することができる。すなわち、ポートp14に係るポートグループ決定部13によってフレームFx2に対するグループ番号は「2」であると判定される。スイッチSW1の中継部11は、中継DB12に記録されている学習内容に基づいてポートp12及びp15に係る送信ポートPoを、フレームFx2の送出先と判断する。当該判断に基づいて、中継部11は、ポートp12及びp15のそれぞれに係るフィルタリング部15にフレームFx2とグループ番号「2」とを入力する。ポートp15はグループ1に属するため、ポートp15に係るフィルタリング部15は、入力されたフレームFx2を廃棄する。ポートp12はグループ2に属するため、ポートp12に係るフィルタリング部15は、フレームFx2を通過させる。ポートp12は、スタックリングL1に接続されているため、ポートp12に係るタグ付与部17によって、グループ番号「2」を示すタグがフレームFxに付与される。タグが付与されたフレームFx2は、ポートp12に係る送信ポートPoより送出され、ポートp21に係る受信ポートPiによって受信される。
ポートp21に係るポートグループ決定部13は、フレームFx2に付与されているタグが示すグループ番号「2」を、フレームFx2に対するグループ番号として決定する。続いて、スイッチSW2の中継部11は、中継DB12における学習内容に基づいて、フレームFx2の送出先はポートp25に係る送信ポートPoであると判断する。ここで、ポートp25は、グループ2に属する。したがって、フレームFx2は、ポートp25に係るフィルタリング部15によって廃棄されずに送信ポートPoより送出される。その結果、フレームFx2は、外部ノードXに中継される。
上述したように、第二の実施の形態によれば、ポートグループによる中継範囲の制限対象を限定しなくても、リンクアグリゲーショングループを介して接続された外部ノードに関する中継を適切に行うことができる。
但し、第二の実施の形態では、図15に示されるような問題が発生する可能性がある。図15は、第二の実施の形態における問題点を説明するための図である。
同図(G)は、図14の(G)と同一の学習状態を示す。この状態において、外部ノードXが、(H)に示されるように外部ノードB側に移動したとする。このような移動は、例えば、ケーブルの差し替えや、無線LANのアクセスポイントの移動等によって発生する。
(I)は、外部ノードXの移動後に、外部ノードXを送信元とする宛先の不明なフレームFu5がスイッチSW2のポートp26に係る受信ポートPiによって受信された場合の学習状態を示す。第二の実施の形態によれば、新たな学習内容は追加(マージ)される。したがって、ポートp21及びポートp25に加えポートp26が、外部ノードXに対応するポートとしてスイッチSW2の中継DB12に追加的に登録される。
(J)は、移動後の外部ノードXの学習後に、端末T3より外部ノードX宛のフレームFx3がスイッチ2のポートp24に係る受信ポートPiによって受信された場合のフレームFx3の中継経路を示す。ここでは、ポートp24に係るポートグループ決定部13によってフレームFx3に対するグループ番号が、少なくともポートp21、p25、及びp26に係る送信ポートPoが属するポートグループを示すものである決定されたとする。そうすると、中継DB12における学習内容に基づいて、p21、p25、及びp26に係る送信ポートPoよりフレームFx4は送出される。ポートp26より送出されたフレームFx4は、外部ノードXに転送される。したがって、外部ノードXへのフレームFx3の中継自体について問題はない。しかし、ポートp21及びp25より送出されたフレームFx3に関しては、無駄なフレームとなってしまう。すなわち、無駄な通信が発生してしまう。
そこで、斯かる問題を解決した例を第三の実施の形態として説明する。なお、第三の実施の形態は、第二の実施の形態を前提とする。したがって、特に言及しない点については、第二の実施の形態の内容がそのまま引用される。
図16は、第三の実施の形態におけるネットワーク構成例を示す図である。同図に示されるように、第三の実施の形態では、学習管理装置20が回線を介してスイッチスタック1に接続されている。学習管理装置20は、専用の機器であってもよいし、PC(Personal Computer)等の汎用的なコンピュータであってもよい。又は、スイッチスタック1に含まれるいずれかのスイッチSWが学習管理装置20を兼ねてもよい。また、同図では、学習管理装置20とスイッチSW2が回線を介して接続されているが、スイッチスタック1に含まれる少なくともいずれか一つのスイッチSWと接続されていればよい。いずれか一つのスイッチスタックSWと接続されていれば、スタックリンクL1〜L3を介して全てのスイッチSWと通信可能だからである。また、学習管理装置20とスイッチスタック1との接続は、物理的及び論理的な意味において汎用的なものであってもよいし、専用のものであってもよい。
図17は、学習管理装置の機能構成例を示す図である。同図において、学習管理装置20は、学習状態制御部21、学習情報記憶部22、及びトポロジー情報記憶部23等を有する。
学習状態制御部21は、学習情報記憶部22及びトポロジー情報記憶部23等を用いて、スイッチスタック1に含まれる各スイッチSWの学習状態を制御する。学習状態の制御とは、主として、各スイッチSWに対する学習状態の変更の指示等を行うことをいう。学習情報記憶部22は、スイッチスタック1に含まれる各スイッチSWの学習状態を示す情報(中継DB12の内容)を記憶する。すなわち、学習管理装置20では、各スイッチSWの学習状態が一元的に把握又は管理されている。各スイッチSWの学習状態を示す情報の収集は、各スイッチSWからの通知によって行われる。具体的には、各スイッチSWの中継部11は、当該スイッチSWの中継DB12の内容に変化が発生したときに、変化の内容を学習状態制御部21に通知する。学習状態制御部21は、当該通知に応じて学習情報記憶部22を更新する。
トポロジー情報記憶部23は、スイッチスタック1のトポロジー情報を記憶する。スイッチスタック1のトポロジー情報とは、スイッチスタック1に含まれる各スイッチSWの接続状態を示す情報をいう。より詳しくは、各スイッチSWがいずれのポートによって他のスイッチSWと接続されているかを示す情報をいう。トポロジー情報は、管理者等によって予め設定されてもよいし、学習状態制御部21によって自動的に判定されてもよい。
なお、学習情報記憶部22は、学習管理装置20の記憶装置に記録されたプログラムが学習管理装置20のCPUに実行される処理によって実現される。学習情報記憶部22及びトポロジー情報記憶部23は、学習管理装置20の記憶装置の一部を用いて実現される。
図18は、第三の実施の形態におけるスイッチスタックの動作例を説明するための図である。
同図において(A)は、図15の(I)の状態に一致する。すなわち、(A)では、スイッチSW2において、外部ノードXに関して新たな学習が行われている。新たな学習は中継DB12の更新を意味する。したがって、上記した通り、(B)に示される処理が実行される。すなわち、スイッチSW2の中継部11は、新たな学習内容(ポートp26と外部ノードXとの対応情報)を学習管理装置20の学習状態制御部21に通知する。当該通知は、所定の制御フレームを用いて行えばよい。
学習状態制御部21は、当該通知と、学習情報記憶部22に記憶されている情報と、トポロジー情報記憶部23に記憶されているトポロジー情報とに基づいて、新たに学習された外部ノードXの移動の有無を判定する。同図の場合、リンクアグリゲーショングループGa側からリンクアグリゲーショングループGb側へ外部ノードXが移動したことが検知される。
学習状態制御部21は、新たに学習された外部ノードXの移動を検知すると、新たな学習の対象となったポートp26を除いて、外部ノードXに関する全ての学習情報の削除指示を各スイッチSWに送信する。この状態を示すのが(C)である。(C)において、各スイッチSWは、学習状態制御部21の指示に応じて外部ノードXに関する学習情報(中継DB12におけるエントリ)を削除している。したがって、外部ノードXに関しては、スイッチSW2の中継DB12におけるポートp26との対応情報のみが残された状態となる。
その結果、図15において説明した問題が解決される。すなわち、外部ノードXが移動したことによる追加的な学習に基づく無駄な通信の発生が抑止される。なお、外部ノードXに関する学習情報が削除されたとしても、外部ノードXに関しては改めて学習が行われる。したがって、外部ノードX宛のフレームの中継に支障をきたすことはない。
図18では、追加的な学習が行われた場合が例とされているが、各スイッチSWの中継部11から学習状態制御部21への通知は、追加的な学習が行われた場合に限られない。新規ノードの学習等についても通知は行われる。すなわち、中継DB12に何らかの更新が発生した場合、中継部11は、学習状態制御部21への通知を行う。
また、図18では、移動が検出されたノードに関する学習情報を全て削除する旨の指示が学習状態制御部21によって行われる例について説明した。しかし、必ずしも当該ノードに関する全ての学習情報が削除されなくてもよい。例えば、移動元(図18の例では、リンクアグリゲーショングループGa側)への中継される可能性のあるポートに関する学習情報のみを削除の対象としてもよい。
続いて、第一から第三の実施の形態に関して、各スイッチSWが実行する処理をフローチャートを用いて説明する。
図19は、フレーム受信部による処理手順を説明するためのフローチャートである。
受信ポートPiによってフレームが受信されると、ポートグループ決定部13は、受信フレームにグループ番号を示すタグが付与されているか否かを確認する(S101)。タグが付与されている場合(S101でYes)、ポートグループ決定部13は、タグが示すグループ番号を、受信フレームに対するグループ番号として決定する(S102)。受信フレームにタグが付与されていない場合(S101でNo)、ポートグループ決定部13は、デフォルトポートグループ記憶部14に記録されているグループ番号を、受信フレームに対するグループ番号として決定する(S103)。なお、ポートグループ決定部13によって決定されたグループ番号は、スイッチSW内において受信フレームと関連付けられて管理される。
フレーム受信部による処理が終了すると、受信フレームに関して中継部11による処理が実行される。図20は、中継部による処理手順を説明するためのフローチャートである。
中継部11は、受信フレームの送信元MACアドレス(SA)に関するエントリを中継DB12より検索する(S201)。該当するエントリが検索された場合(S202でYes)、中継部11は、該当するエントリでは、受信フレームの受信ポートPiに対応する送信ポートPoが既に登録されているか否かを確認する(S203)。すなわち、受信フレームの送信元MACアドレスと、当該受信フレームの受信ポートPiに対応する送信ポートPoとの対応関係は既に学習済みであるか否かが判定される。
当該対応関係が既に学習済みである場合(S203でYes)、中継部11は、中継DB12の更新は行わず、中継処理を実行する(S207)。
当該対応関係が学習済みで無い場合(S203でNo)、中継部11は、当該送信元MACアドレスに対応するポートとして、当該受信フレームを受信した受信ポートPiに対応する送信ポートPoを中継DB12に追加する(S204)。すなわち、当該送信元MACアドレスに対して、既に他の送信ポートPoが対応付けられていたとしても、当該他の送信ポートPoとの対応付けは消去されずに、新たな送信ポートPoとの対応付けが追加的に中継DB12に登録される。なお、ステップS203及びS204は、第一の実施の形態では実行されない。
一方、該当するエントリが検索されない場合(S202でNo)、中継部11は、当該送信元MACアドレスに対応するポートとして、当該受信フレームを受信した受信ポートPiに対応する送信ポートPoを中継DB12に登録する(S205)。
ステップS204又はS205に続いて、中継部11は、今回の学習内容(送信元MACアドレス及び対応付けられた送信ポートPoの識別情報)を学習管理装置20の学習状態制御部21に送信する(S206)。なお、ステップS206は、第三の実施の形態で実行される。続いて、中継部11は、中継処理を実行する(S207)。
中継処理とは、受信フレームの宛先MACアドレスに対応する送信ポートPoを中継DB12より検索し、検索された送信ポートPoが属するフレーム送信部oに受信フレームを入力する処理である。受信フレームの宛先MACアドレスが中継DB12に登録されていない場合は、受信フレームはフラッディングされる。なお、受信フレームと共に、図19の処理において判定されたグループ番号もフレーム送信部oに入力される。また、受信フレームの入力先のフレーム送信部oが一つに限定される場合、すなわち、受信フレームが、学習済みの一つのノードを宛先とする場合、中継部11は、フィルタリング不要指示を当該フレーム送信部oに入力する。
中継部11による処理が終了すると、中継部11より受信フレームが入力された各フレーム送信部oによって、受信フレームを送出するための処理が実行される。
図21は、フレーム送信部による処理手順を説明するためのフローチャートである。
受信フレーム等の入力に応じ、フィルタリング部15は、フィルタリング不要指示が入力された否かを確認する(S301)。フィルタリング入力指示が入力されていない場合(S301でNo)、フィルタリング部15は、入力されたグループ番号(受信フレームに関連付けられたグループ番号)は、ポートグループメンバーシップ記憶部16に記録されているか否かを判定する(S302)。より詳しくは、ポートグループメンバーシップ記憶部16において、当該グループ番号に対応するビットの値が「1」であるか否かが判定される。すなわち、当該フレーム送信部oが、入力されたグループ番号に係るポートグループに属するか否かが判定される。入力されたグループ番号がポートグループメンバーシップ記憶部16に記録されていない場合(S302でNo)、フィルタリング部15は、受信フレームを廃棄する(S303)。
フィルタリング不要指示が入力されている場合(S301でYes)、又は入力されたグループ番号がポートグループメンバーシップ記憶部16に記録されている場合(S302でYes)、フィルタリング部15は、入力された受信フレームをタグ付与部17に入力する。なお、第二の実施の形態及び第三の実施の形態では、ステップS301は実行されずに、常にステップS302が実行される。
タグ付与部17は、受信フレームが入力されると、タグ付与要否記憶部18を用いて受信フレームに対するタグの付与の要否を判定する(S304)。タグの付与が必要である場合、すなわち、タグ付与要否記憶部18に「1」が記録されている場合(S304でYes)、タグ付与部17は、受信フレームにタグは付与されているか否かを判定する(S305)。すなわち、スイッチスタック1における他のスイッチSWのタグ付与部17によって、タグが付与された受信フレームについては、タグが付与されたままタグ付与部17まで到達する。但し、フレーム受信部iにおいて受信フレームに付与されているタグは除去されてもよい。その場合、ステップS305は実行せずに、常にステップS306を実行すればよい。また、後述されるステップS307及びS308の実行も不要である。
受信フレームにタグが付与されていない場合(S305でNo)、タグ付与部17は、当該フレーム送信部oに入力されたグループ番号を示すタグをフレームに付与する(S306)。
一方、タグの付与は不要な場合、すなわち、タグ付与要否記憶部18に「0」が記録されている場合(S304でNo)、タグ付与部17は、受信フレームにタグは付与されているか否かを判定する(S307)。受信フレームにタグが付与されている場合(S307でYes)、タグ付与部17は、受信フレームより当該タグを除去する(S308)。
ステップS305でYesの場合、ステップS306、ステップS308、又はステップS307でNoの場合に続いて、送信ポートPoは、受信フレームを送出する(S309)。
なお、上記実施の形態においては、ポートグループ決定部13及びデフォルトポートグループ記憶部14は、受信ポートPiごとに設けられる例について説明した。また、フィルタリング部15、ポートグループメンバーシップ記憶部16、タグ付与部17、及びタグ付与要否記憶部18は、送信ポートPoごとに設けられる例について説明した。しかし、これら各部は、各受信ポートPi又は各送信ポートPoに対して共通に一つ設けられてもよい。但し、共通に一つ設けられる場合、性能の劣化する可能性が高い。受信ポートPi又は送信ポートPoごとに並列して処理を実行するのが困難となるからである。したがって、本実施の形態のように、上記各部は、受信ポートPi又は送信ポートPoごとに設けられるのが望ましい。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
フレームの受信に応じ、該フレームを受信したポートに対して設定されている、ポートの複数通りの組み合わせのいずれかを示すグループ識別情報を該フレームに対して関連付けるグループ決定手段と、
フレームを受信したポートと該フレームの送信元のノードとの対応付けを学習し、学習状態に基づいてフレームを送出させるポートを判断する中継手段と、
各ポートが属する前記組み合わせを示すメンバー情報を記憶したメンバー情報記憶手段と、
前記メンバー情報記憶手段と前記グループ識別情報とに基づいて、前記フレームを送出させるポートを限定するフィルタリング手段と、
送出対象とされた前記フレームに、前記グループ識別情報を付与する付与手段とを有し、
前記グループ決定手段は、受信されたフレームに前記グループ識別情報が付与されている場合は、当該グループ識別情報を該フレームに関連付け、
前記フィルタリング手段は、受信されたフレームの宛先が学習済みの一つのノードである場合は、該フレームを送出させるポートを限定しない中継装置。
(付記2)
前記グループ識別情報の付与の要否を示す情報をポートごとに記憶した付与要否記憶手段を有し、
前記付与手段は、付与要否記憶手段が記憶する情報に応じて前記グループ識別情報を付与する付記1記載の中継装置。
(付記3)
前記付与手段は、受信されたフレームに前記グループ識別情報が付与されている場合は、前記付与要否記憶手段が記憶する情報に応じて前記グループ識別情報を該フレームより除去する付記2記載の中継装置。
(付記4)
前記メンバー情報記憶手段は、ポートごとに当該ポートが属する一以上の前記組み合わせを示すメンバー情報を記憶する付記1乃至3いずれか一項記載の中継装置。
(付記5)
フレームの受信に応じ、該フレームを受信したポートに対して設定されている、ポートの複数通りの組み合わせのいずれかを示すグループ識別情報を該フレームに対して関連付けるグループ決定手段と、
フレームを受信したポートと該フレームの送信元のノードとの対応付けを学習し、学習状態に基づいてフレームを送出させるポートを判断する中継手段と、
各ポートが属する前記組み合わせを示すメンバー情報を記憶したメンバー情報記憶手段と、
前記メンバー情報記憶手段と前記グループ識別情報とに基づいて、前記フレームを送出させるポートを限定するフィルタリング手段と、
送出対象とされた前記フレームに、前記グループ識別情報を付与する付与手段とを有し、
前記グループ決定手段は、受信されたフレームに前記グループ識別情報が付与されている場合は、当該グループ識別情報を該フレームに関連付け、
前記中継手段は、既に学習済みのノードに対応付けられているポートと異なるポートより該ノードを送信元とするフレームが受信された場合に、該異なるポートを追加的に該ノードに対応付ける中継装置。
(付記6)
当該中継装置は、他の前記中継装置と冗長経路を有するように接続され、
前記中継手段は、前記学習状態の変化に応じ、前記冗長経路を有するように接続された前記中継装置のそれぞれの前記学習状態及び他の前記中継装置との接続状態を記憶した管理装置に前記学習状態の変化の内容を通知し、前記管理装置からの指示に応じ、前記学習状態を変更する付記5記載の中継装置。
(付記7)
前記グループ識別情報の付与の要否を示す情報をポートごとに記憶した付与要否記憶手段を有し、
前記付与手段は、付与要否記憶手段が記憶する情報に応じて前記グループ識別情報を付与する付記5又は6記載の中継装置。
(付記8)
前記付与手段は、受信されたフレームに前記グループ識別情報が付与されている場合は、前記付与要否記憶手段が記憶する情報に応じて前記グループ識別情報を該フレームより除去する付記7記載の中継装置。
(付記9)
前記メンバー情報記憶手段は、ポートごとに当該ポートが属する一以上の前記組み合わせを示すメンバー情報を記憶する付記5乃至8いずれか一項記載の中継装置。