以下、本発明を実施するための最良の形態を実施例に基づいて、以下の順序で説明する。
A.第1実施例:
A1.システム構成:
A2.ネットワーク装置の構成:
A3.テーブルの内容:
A4.制御フレーム転送用VLANの切り替え動作:
A5.ユーザトラフィック転送用VLANの切り替え動作:
A6.実施例効果:
B.第2実施例:
B1.システム構成:
B2.ネットワーク装置の構成:
B3.テーブルの内容:
B4.制御フレーム転送用VLANとユーザトラフィック転送用VLANの同時切り替え動作:
B5.実施例効果:
C.第3実施例:
C1.システム構成:
C2.ネットワーク装置の構成:
C3.テーブルの内容:
C4.リングネットワークの切り替えとアクセス回線の切替動作:
C5.障害時処理:
C6.実施例効果:
D.変形例:
A.第1実施例:
A1.システム構成:
図1は、本発明の第1実施例としてのネットワークシステムの構成を示す説明図である。このネットワークシステム10は、リングネットワークを構成する第1ないし第4のネットワーク装置100、200、300、400と、第1および第2の端末500、600とを備えている。第1の端末500は第1のネットワーク装置100と、第2の端末600は第4のネットワーク装置400と接続する。各ネットワーク装置100、200、300、400がフレームをレイヤ2中継することで、各端末500、600はユーザトラフィックの通信を行うことができる。ここで、「端末」とは、コンピュータ本体、ディスプレイ、マウス、およびキーボード等を備えるコンピュータ装置である。
第1のネットワーク装置100は、ヘルスチェックフレームを送信し、リングネットワークを監視する監視ノードとなっている。以後、第1のネットワーク装置100を「監視ノード100」とも呼ぶ。ヘルスチェックフレームは、リングネットワークの状態を監視するための制御フレームである。第2ないし第4のネットワーク装置200、300、400は、ヘルスチェックフレームを中継する中継ノードとなっている。以降、第2ないし第4のネットワーク装置200、300、400を「中継ノード200、300、400」とも呼ぶ。
監視ノード100は、ポート110により回線を介して中継ノード200に、ポート120により回線を介して中継ノード400に、ポート130により回線を介して端末500にそれぞれ接続している。中継ノード200は、ポート210により回線を介して監視ノード100に、ポート220により回線を介して中継ノード300にそれぞれ接続している。中継ノード300は、ポート310により回線を介して中継ノード200に、ポート320により回線を介して中継ノード400にそれぞれ接続している。中継ノード400は、ポート410により回線を介して中継ノード300に、ポート420により回線を介して監視ノード100に、ポート430により回線を介して端末600にそれぞれ接続している。
図2は、ネットワークシステム10における転送経路を模式的に示す説明図である。このネットワークシステム10はループ構成となっているが、各ネットワーク装置100、200、300、400はリングプロトコルを用いてレイヤ2ネットワークのループを防止している。
各ネットワーク装置間を接続しているポートは「リングポート」と呼ぶが、監視ノード100は、リングポート110とリングポート120の制御VLAN、すなわちヘルスチェックフレームやフラッシュ要求フレームなどといった制御フレームの転送に用いるVLAからヘルスチェックフレームH110、H120を周期的に送信する。ヘルスチェックフレームH110、H120は、各中継ノードにより転送され、監視ノード100により受信されたときに終端する。
監視ノード100は、いずれか一方もしくは双方のリングポート110、120でヘルスチェックフレームH110、H120を受信している状態を「正常」と判断し、正常の場合には、ポート110またはポート120のいずれか一方のユーザトラフィックの転送に用いるVLAN(以降、「データVLAN」と呼ぶ)の論理的通信状態をブロッキングにすることで、ネットワークがループ構成になることを防止している。本実施例では、ポート120の論理的通信状態をブロッキングにしている。
第1の端末500が送信するユーザトラフィックU500は、監視ノード100によってデータVLANの論理的通信状態が"フォワーディング"であるポート110のみに中継され、中継ノード200、300、400によって同様にフォワーディングであるポートのみに中継されることで、第2の端末600へ到達する。中継ノード400は、ポート420、430のデータVLANの論理的通信状態が"フォワーディング"であるため、ポート420、430に中継するが、ポート420に中継したフレームは、監視ノード100のポート120のデータVLANの論理的通信状態がブロッキングであるため、フレームを廃棄するので、ループすることはない。
第2の端末600が送信するユーザトラフィックU600もユーザトラフィックU500と同様に各ネットワーク装置で中継し、第1の端末500に到達する。
なお、監視ノード100が双方のリングポート110、120でヘルスチェックフレームH110、H120を受信しなくなった場合、リングネットワークに障害が発生していると判断し、この場合には、論理的通信状態を"ブロッキング"にしていたリングポート110、120の論理的通信状態を"フォワーディング"に変更し、ネットワークトポロジの変更を行う。
図1の状態から一台のネットワーク装置を増設する場合について、次に説明する。
図3は、ネットワーク装置を増設したあとのネットワークシステム10の構成を示す説明図である。第5のネットワーク装置700が、増設対象のネットワーク装置である。中継ノード200、300は、増設対象の中継ノードである第5のネットワーク装置700と直接接続する隣接ノードになる。以降、第5のネットワーク装置700を「増設ノード700」と呼び、第2および第3のネットワーク装置200、300を「隣接ノード200、300」と呼ぶ。本実施例では、中継ノード200と中継ノード300の間にネットワーク装置を増設するため、中継ノードが隣接ノードとなる例で説明するが、監視ノードが隣接ノードとなることもできる。
隣接ノードにおいて増設ノードと直接接続するポートを「増設ポート」、隣接ノードにおいて増設完了後に回線を切断するポートを「減設ポート」、増設ノードにおいて隣接ノードと直接接続するポートを「制御ポート」とそれぞれ呼ぶ。リングネットワークを構成するネットワーク装置のリングポートのうち、上記どれにも該当しないポートを「通常ポート」と呼ぶ。
隣接ノード200は、増設ノード700を増設する際に、ポート(増設ポートとなる)230により回線を介して増設ノード700のポート710(制御ポート710となる)と接続する。隣接ノード300も隣接ノード200と同様に、増設ノード700を増設する際に、ポート330(増設ポート330となる)により回線を介して増設ノード700のポート720(制御ポート720となる)と接続する。そして、増設ノード700の増設完了後に、ポート220(減設ポート220となる)とポート310(減設ポート310となる)を接続している回線を切断する。
A2.ネットワーク装置の構成:
図4は、第1のネットワーク装置100の構成を示す説明図である。本実施例における他のネットワーク装置200、300、400も同様の構成を備えるが、ここでは第1のネットワーク装置100を代表して説明する。
第1のネットワーク装置100は、他のネットワーク装置や端末に回線を介して接続するためのポートを備えている。例えば、図示の第1のネットワーク装置100の場合は、ポート110、ポート120、ポート130を備えている。また、第1のネットワーク装置100は、リングプロトコル処理部1000とメモリ2000とを備える。
メモリ2000は、コンフィグレーションテーブル2100と、リングポート状態テーブル2200、FDBテーブル2300を格納している。リングプロトコル処理部1000は、リングプロトコルの制御とリングポートの制御を行い、コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300を管理する。各テーブルの内容について、次に説明する。
A3.テーブルの内容:
図5は、隣接ノード200のコンフィグレーションテーブル2100を示す説明図である。各行の意味は次の通りである。
1行目は、VLAN ID100のネットワークを示す。
2行目は、VLAN ID100にポート210、220、230が所属することを示す。
3行目は、VLAN ID101のネットワークを示す。
4行目は、VLAN ID101にポート210、220、230が所属することを示す。
5行目は、リングプロトコルにおいて、リングネットワーク毎にユニークに割り振られたIDである。同一リングネットワークのネットワーク装置は、同じリングIDを持つ。隣接ノード200がリングID100のリングネットワークに属することを示す。
6行目は、リングネットワークにおけるネットワーク装置の役割を表し、監視ノードと中継ノードの区別に使われる。隣接ノード200は役割が中継ノードであることを示す。
7行目は、制御VLANとして、VLAN ID100を使用することを示す。
8行目は、データVLANとして、VLAN ID101を使用することを示す。
9行目は、ポート210を使用することを示す。
10行目は、ポート220がリングID100のリングネットワークに所属している通常ポートであることを示す。
11行目は、ポート220を使用することを示す。
12行目は、ポート220がリングID100のリングネットワークに所属している減設ポートであることを示す。
13行目は、ポート230を使用することを示す。
14行目は、ポート230がリングID100のリングネットワークに所属している増設ポートであることを示す。
図6は、増設ノード700のコンフィグレーションテーブル2100を示す説明図である。各行の意味は次の通りである。
1行目は、VLAN ID100のネットワークを示す。
2行目は、VLAN ID100にポート710、720が所属することを示す。
3行目は、VLAN ID101のネットワークを示す。
4行目は、VLAN ID101にポート710、720が所属することを示す。
5行目は、増設ノード700がリングID100のリングネットワークに属することを示す。
6行目は、増設ノード700の役割を中継ノードであることを示す。
7行目は、制御VLANとして、VLAN ID100を使用することを示す。
8行目は、データVLANとして、VLAN ID101を使用することを示す。
9行目は、ポート710を使用することを示す。
10行目は、ポート710がリングID100のリングネットワークに所属している制御ポートであることを示す。
11行目は、ポート720を使用することを示す。
12行目は、ポート720がリングID100のリングネットワークに所属している制御ポートであることを示す。
図7は、増設ノード700を接続する前の隣接ノード200のリングポート状態テーブル2200を示す説明図である。図示するように、リングポート状態テーブル2200は、リングポート2210、回線状態2220、制御VLANの論理的通信状態2230、データVLANの論理的通信状態2240、役割2250、切替段階2260の要素を持つ。
リングポート2210は、リングポートを表し、コンフィグレーションテーブル2100から作成する。隣接ノード200のリングポート2210は、ポート210、ポート220、ポート230を備えている。
回線状態2220は、当該ポートの回線状態を表しており、UpとDownの2値で管理する。隣接ノード200の回線状態2220は、隣接ノード200が、監視ノード100、隣接ノード300と接続しているが、増設ノード700と接続していない状態の値を表しており、ポート210、ポート220がUp、ポート230がDownとなっている。
制御VLANの論理的通信状態2230は、当該ポートの制御VLANの論理的通信状態を表す。論理的通信状態は、VLANに属するポート毎に存在し、送信不可・受信不可の"ブロッキング"、送信可・受信可の"フォワーディング"、送信不可・受信可の"レシーブのみ"の3値で管理する。論理的通信状態の初期値は増設ポートの場合は"レシーブのみ"、増設ポート以外の場合は"フォワーディング"となる。隣接ノード200の制御VLANの論理的通信状態2230は、ポート210、ポート220が"フォワーディング"、ポート230が"レシーブのみ"となっている。
データVLANの論理的通信状態2240は、当該ポートのデータVLANの論理的通信状態を表す。論理的通信状態は制御VLANと同じく、"ブロッキング"、"フォワーディング"、"レシーブのみ"の3値で管理し、ループを防ぐために論理的通信状態の初期値を"ブロッキング"とし、その後リングプロトコルの制御によって、"フォワーディング"に変更または、"ブロッキング"を維持するが、増設ポート、制御ポートは、リングプロトコルの制御対象外とする。本実施例では、監視ノード100、隣接ノード200、300、中継ノード400でリングトポロジを形成しているため、隣接ノード200のデータVLANの論理的通信状態は、ポート210、ポート220がリングプロトコルの制御により"フォワーディング"、ポート230は増設ポートであるため、"ブロッキング"となっている。
役割2250は、当該ポートの役割を表し、コンフィグレーションテーブル2100から作成する。リングポートの役割を"通常"、増設ポートの役割を"増設"、減設ポートの役割を"減設"、制御ポートの役割を"制御"とする。役割毎の振舞いの違いは、後述の図12、17、22、25、32、44、48、52で説明する。隣接ノード200の役割2250は、図示するように、ポート210が"通常"、ポート220が"減設"、ポート230が"増設"となっている。
切替段階2260は、当該ポートの切替段階を表す。増設ノードは、切替段階に応じて制御ポートから設定の変更を指示する制御フレームを送信する。切替段階の動作は、後述の図12、22、32、44、52で説明する。切替段階の初期値は"0"となる。隣接ノード200の切替段階2260は、全てのポートの切替段階が"0"となっている。
図8は、増設ノード700を接続する前の隣接ノード300のリングポート状態テーブル2200を示す説明図である。
隣接ノード300のリングポート2210は、ポート320、ポート310、ポート330を備えている。
隣接ノード300の回線状態2220は、中継ノード400、隣接ノード200と接続しているが、増設ノード700と接続していない状態の値を表しており、ポート320、ポート310がUp、ポート330がDownとなっている。
隣接ノード300の制御VLANの論理的通信状態2230は、ポート320、ポート310が"フォワーディング"、ポート330が"レシーブのみ"となっている。
隣接ノード300のデータVLANの論理的通信状態2240は、ポート320、ポート310が"フォワーディング"、ポート330が"ブロッキング"となっている。
隣接ノード300の役割2250は、ポート320が通常、ポート310が減設、ポート330が増設となっている。
隣接ノード300の切替段階2260は、全てのリングポートの切替段階が"0"となっている。
図9は、増設ノード700を接続する前の増設ノード700のリングポート状態テーブル2200を示す説明図である。
増設ノード700のリングポート2210は、ポート710、ポート720を備えている。
増設ノード700の回線状態2220は、隣接ノード200、隣接ノード300と接続していない状態の値を表しており、ポート710、ポート720ともにDownとなっている。
増設ノード700の制御VLANの論理的通信状態2230は、ポート710、ポート720ともに"フォワーディング"となっている。
増設ノード700のデータVLANの論理的通信状態2240は、ポート710、ポート720ともに"ブロッキング"となっている。
増設ノード700の役割2250は、ポート710、ポート720ともに"制御"となっている。
増設ノード700の役割2250は、全てのポートの切替段階が"0"となっている。
図10は、隣接ノード200のFDBテーブル2300を示す説明図である。FDBテーブル2300は、VLAN ID2310、MACアドレス2320、ポート番号2330の要素を持ち、フレームを受信する毎に各要素が登録される。VLAN ID2310は、受信したフレームのVLAN IDを記憶し、MACアドレス2320は受信したフレームの送信元MACアドレスを記憶し、ポート番号2330はフレームを受信したポート番号を記憶し、VLAN ID、MACアドレス、ポート番号の組をFDBとする。受信したフレームのVLAN IDと宛先MACアドレスがFDBテーブル2300に登録されている場合、ポート番号2330に設定されているポートを出力先ポートとしてフレームを中継する。受信したフレームのVLAN IDと宛先MACアドレスがFDBテーブル2300に登録されていない場合、VLAN内にフラッディングする。
ただし、論理的通信状態が"レシーブのみ"のポートでフレームを受信した場合、FDBテーブル2300へのFDBの登録を抑止する。また、制御VLANの論理的通信状態2230またはデータVLANの論理的通信状態2240が"レシーブのみ"のポートで受信したフレームは減設ポートまたは増設ポートに中継しない。
隣接ノード200が第1の端末500から送信されるユーザトラフィックU500を受信すると、ポート210で受信するため、VLAN IDが101、MACアドレスが端末500、ポート番号がポート210のFDBが登録され、隣接ノード200が端末600から送信されるユーザトラフィックU600を受信すると、ポート220で受信するため、VLAN IDが101、MACアドレス端末が600、ポート番号がポート220のFDBが登録される。
図11は、隣接ノード300のFDBテーブル2300を示す説明図である。隣接ノード300が端末500から送信されるユーザトラフィックU500を受信すると、ポート310で受信するため、VLAN IDが101、MACアドレスが端末500、ポート番号がポート310のFDBが登録され、隣接ノード300が端末600から送信されるユーザトラフィックU600を受信すると、ポート320で受信するため、VLAN IDが101、MACアドレス端末が600、ポート番号がポート320のFDBが登録される。
A4.制御フレーム転送用VLANの切り替え動作:
ネットワーク装置の増設時の処理について、次に説明する。
図12は、リングプロトコル処理部1000で実行されるリンクアップ検出時処理ルーチンを示すフローチャートである。このリンクアップ検出時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、各リングポートのリンクアップを検出したタイミングで実行開始される。リンクアップは、操作者によるネットワークアップケーブルの差し込みを受けて、ポートを通信可能な状態に移行する作業であり、リンクアップ検出時処理ルーチンとは別のハードウェアの構成によって行われる。
処理が開始されると、リングプロトコル処理部1000は、まず、リングポート状態テーブル2200の回線状態2220を"Down"から"Up"へと変更する(ステップS110)。その後、当該ポートのリングポート状態テーブル2200の役割2250が"制御"であるか否かを判定する(ステップS115)。ここで、"制御"であると判定された場合には、リングポート状態テーブル2200の切替段階2260を"1"に変更し(ステップS120)、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"1"であれば(ステップS125)、制御VLAN切替要求フレームを全ての制御ポートの制御VLANに送信する(ステップS130)。
ステップS130の実行後、このリンクアップ検出時処理ルーチンを終了する。また、ステップS115で否定判定されたときや、ステップS125で否定判定されたときにも、このリンクアップ検出時処理ルーチンを終了する。
図13は、隣接ノード200が増設ポート230において図12で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。図14は、増設ノード700が制御ポート710において図12で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。
隣接ノード200と増設ノード700を接続した契機で、隣接ノード200は、増設ポート230のリンクアップを検出し、ステップS110の処理によって隣接ノード200のリングポート状態テーブル2200の増設ポート230の回線状態2220を"Up"に変更する。すなわち、隣接ノード200のリングポート状態テーブル2200は、図7の状態から図13の状態に移行する。図13中の背景ハッチの欄が変更箇所である。
また、増設ノード700も制御ポート710のリンクアップを検出し、ステップS110の処理によって増設ノード700のリングポート状態テーブル2200の制御ポート710の回線状態2220を"Up"に、ステップS120の処理によって増設ノード700のリングポート状態テーブル2200の制御ポート710の切替段階2260を"1"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図9の状態から図14の状態に移行する。図14中の背景ハッチの欄が変更箇所である。
図15は、隣接ノード300が増設ポート330において図12で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。図16は、増設ノード700が制御ポート720において図12で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。
隣接ノード300と増設ノード700を接続したときも隣接ノード200と増設ノード700を接続したときと同様に、ステップS110、S120の処理によって隣接ノード300と増設ノード700のリングポート状態テーブル2200を更新する。すなわち、隣接ノード300のリングポート状態テーブル2200は、図8の状態から図15の状態に移行する。図15中の背景ハッチの欄が変更箇所である。また、増設ノード700のリングポート状態テーブル2200は、図14の状態から図16の状態に移行する。図16中の背景ハッチの欄が変更箇所である。ここで全ての制御ポートの切替段階が"1"になった増設ノード700は、ステップS130の処理によって制御VLAN切替要求フレームを全ての制御ポートの制御VLANに送信する。
図17は、リングプロトコル処理部1000で実行される制御VLAN切替要求受信時処理ルーチンを示すフローチャートである。この制御VLAN切替要求受信時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、制御VLAN切替要求フレームを受信したタイミングで実行開始される。制御VLAN切替要求フレームは、前述した図12のステップS130で送信されたものである。
処理が開始されると、リングプロトコル処理部1000は、まず、制御VLAN切替要求フレームを受信したポートについてのリングポート状態テーブル2200の役割2250が"増設"であるか否かを判定する(ステップS200)。ここで、"増設"であれば、リングポート状態テーブル2200の制御VLANの論理的通信状態2230を変更する。具体的には、減設ポートの制御VLANの論理的通信状態2230を"レシーブのみ"に変更し(ステップS210)、増設ポートの制御VLANの論理的通信状態2230を"フォワーディング"に(ステップS220)、データVLANの論理的通信状態2240を、変更前の減設ポートのデータVLANの論理的通信状態2240が"ブロッキング"であれば"ブロッキング"に、"フォワーディング"であれば"レシーブのみ"に変更する(ステップS230)。制御VLANの論理的通信状態2230とデータVLANの論理的通信状態2240の変更後、制御VLAN切替応答フレームを増設ポートの制御VLANから送信する(ステップS240)。そして最後に、リングプロトコル処理部1000は、制御VLAN切替要求フレームを、他ネットワーク装置に中継せずに廃棄する(ステップS250)。
なお、ステップS200で、受信したポートの役割2250が"増設"でないと判定された場合には、ステップS210ないしS240を実行することなく、ステップS250に移行する。
図18は、増設ノード700が制御ポート710において図17で示した手順を完了している場合の隣接ノード200のリングポート状態テーブル2200を示す説明図である。
制御VLAN切替要求フレームを増設ポート230で受信した隣接ノード200は、ステップS210の処理によってリングポート状態テーブル2200の減設ポート220の制御VLANの論理的通信状態2230をレシーブのみに、ステップS220の処理によって増設ポート230の制御VLANの論理的通信状態2230をフォワーディングに、データVLANの論理的通信状態2240を"レシーブ"のみに変更する。すなわち、隣接ノード200のリングポート状態テーブル2200は、図13の状態から図18の状態に移行する。図18中の背景ハッチの欄が変更箇所である。その変更後に、ステップS240の処理によって増設ポート230の制御VLANから制御VLAN切替応答フレームを送信する。
図19は、増設ノード700が制御ポート720において図17で示した手順を完了している場合の隣接ノード300のリングポート状態テーブル2200を示す説明図である。
隣接ノード300が増設ポート330で制御VLAN切替要求フレームを受信したときも、隣接ノード200が増設ポート330で制御VLAN切替要求フレームを受信したときと同様に、ステップS210、S220、S230の処理によってリングポート状態テーブル2200を更新する。すなわち、隣接ノード300のリングポート状態テーブル2200は、図15の状態から図19の状態に移行する。図19中の背景ハッチの欄が変更箇所である。その変更後に、ステップS240の処理によって増設ポート330の制御VLANから制御VLAN切替応答フレームを送信する。
図20は、隣接ノード200、300、増設ノード700が、それぞれ図12、図17で示した手順を完了している場合の転送経路を模式的に示す説明図である。図21は、隣接ノード200、増設ノード700が図12、図17で示した手順を完了しているが、隣接ノード300が図17で示した手順を完了していない場合の転送経路を模式的に示す説明図である。すなわち、図21の状態は、図20の状態より前の状態であり、時間的には、図21の状態、図20の状態と移行することになる。図21は、図20の状態を理解する上での参考となるように用意した。
隣接ノード200、300、増設ノード700が、それぞれ図12、図17で示した手順を完了している場合、図20に示すように、監視ノード100の送信するヘルスチェックフレームH110は、隣接ノード200の減設ポート220の制御VLANの論理的通信状態2230が"レシーブ"のみ、増設ポート230の制御VLANの論理的通信状態2230が"フォワーディング"であるため、隣接ノード200の増設ポート230から増設ノード700に中継される。このとき、増設ノード700が隣接ノード300に中継するヘルスチェックフレームH110は、隣接ノード300の増設ポート330とポート320の制御VLANの論理的通信状態2230が"フォワーディング"であるため、隣接ノード300のポート320から中継ノード400に中継されるが、減設ポート310の制御VLANの論理的通信状態2230が"レシーブ"のみであるため、ポート310には中継されない。
ヘルスチェックフレームH120は、ヘルスチェックフレームH110と転送方向が異なるのみで、各ネットワーク装置における転送方式は同様であるため、説明を省略する。
隣接ノード200、増設ノード700が図12、図17で示した手順を完了しているが、隣接ノード300が図17で示した手順を完了していない場合、図21に示すように、ヘルスチェックフレームH110は、隣接ノード200の減設ポート220の制御VLANの論理的通信状態2230が"レシーブ"のみ、増設ポート230の制御VLANの論理的通信状態2230が"フォワーディング"であるため、増設ポート230から増設ノード700に中継される。このとき、増設ノード700が隣接ノード300に中継したヘルスチェックフレームH110は、隣接ノード300の増設ポート330で受信されるが、増設ポート330の制御VLANの論理的通信状態2230が"レシーブのみ"であるため、ポート320、減設ポート310の制御VLANの論理的通信状態2230が"フォワーディング"でも、ポート320から中継ノード400のみに中継され、減設ポート310から隣接ノード200にフレームを中継されない。
また、ヘルスチェックフレームH120は、隣接ノード300の減設ポート310の制御VLANの論理的通信状態2230が"フォワーディング"、増設ポート330の制御VLANの論理的通信状態2230が"レシーブのみ"であるため、減設ポート310から隣接ノード200に中継されるが、増設ポート330から増設ノード700に中継されない。このとき、隣接ノード200の減設ポート220の制御VLANの論理的通信状態2230は、"レシーブのみ"であるため、ポート210から監視ノード100のみに中継される。隣接ノード300の制御VLANの論理的通信状態2230の変更が完了しておらず、隣接ノード300の制御VLANの論理的通信状態2230の変更が完了している場合は、前述の場合と同様に転送方向が異なるのみで、各ネットワーク装置における転送方式は同様であるため、説明を省略する。
端末500、600の送信するユーザトラフィックは、隣接ノード200、300のデータVLANの論理的通信状態2240を変更していないため、図2で示す制御VLANの論理的通信状態2230の変更前と経路は変わらない。
図22は、リングプロトコル処理部1000で実行される制御VLAN切替応答受信時処理ルーチンを示すフローチャートである。この制御VLAN切替応答受信時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、制御VLAN切替応答フレームを受信したタイミングで実行開始される。制御VLAN切替応答フレームは、前述した図17のステップS240で送信されたものである。
処理が開始されると、リングプロトコル処理部1000は、まず、制御VLAN切替応答フレームを受信したポートについてのリングポート状態テーブル2200の役割2250が"制御"であるか否かを判定する(ステップS300)。ここで、"制御"であれば、制御VLAN切替応答フレームを受信したポートについてのリングポート状態テーブル2200の切替段階2260を"2"に変更する(ステップS310)。このとき、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"2"であれば(ステップS315)、全ての制御ポートのデータVLANの論理的通信状態2240を"フォワーディング"に変更し(ステップS320)、全ての制御ポートの制御VLANからデータVLAN切替要求フレームを送信する(ステップS330)。そして最後に、リングプロトコル処理部1000は、制御VLAN切替応答フレームを、他ネットワーク装置に中継せずに廃棄する(ステップS340)。
なお、ステップS300で前記役割2250が"制御"でないと判定されたとき、または、ステップS315でリングポート状態テーブル2200上のいずれかの制御ポートの切替段階2260が"2"でないと判定されたときには、ステップS340に処理を移行する。
図23は、増設ノード700が制御ポート710において図22に示す手順を完了している場合のリングポート状態テーブル2200を示す説明図である。制御VLAN切替応答フレームを制御ポート710で受信した増設ノード700は、図22のステップS310の処理によって制御ポート710のリングポート状態テーブル2200の切替段階2260を"2"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図16の状態から図23の状態に移行する。図23中の背景ハッチの欄が変更箇所である。
図24は、増設ノード700が制御ポート720において図22に示す手順を完了している場合のリングポート状態テーブル2200を示す説明図である。増設ノード700が制御VLAN切替応答フレームを制御ポート720で受信したときも増設ノード700が制御VLAN切替応答フレームを制御ポート710で受信したときと同様に、図22のステップS310の処理によってリングポート状態テーブル2200の切替段階2260を"2"に変更する。ここで全ての制御ポートの切替段階が"2"になった増設ノード700は、図22のステップS320の処理によってリングポート状態テーブル2200の制御ポート710、720のデータVLANの論理的通信状態2240を"フォワーディング"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図23の状態から図24の状態に移行する。図24中の背景ハッチの欄が変更箇所である。
データVLANの論理的通信状態2240の変更後、図22のステップS330の処理によってデータVLAN切替要求フレームを制御ポート710、720の制御VLANから送信する。本実施例では、制御ポート710が先に制御VLAN切替応答フレームを受信した場合について記載しているが、全ての制御ポートで制御VLAN切替応答フレームを受信するまでデータVLANの切り替えを行わないため、制御ポート720が先に受信しても同様に動作する。
A5.ユーザトラフィック転送用VLANの切り替え動作:
図25は、リングプロトコル処理部1000で実行されるデータVLAN切替要求受信時処理ルーチンを示すフローチャートである。このデータVLAN切替要求受信時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、データVLAN切替要求フレームを受信したタイミングで実行開始される。データVLAN切替要求フレームは、前述した図22のステップS330で送信されたものである。
処理が開始されると、リングプロトコル処理部1000は、まず、データVLAN切替要求フレームを受信したポートのリングポート状態テーブル2200の役割2250が"増設"であるか否かを判定する(ステップS400)。ここで、"増設"であれば、減設ポートを出力先ポートとするFDBのクリアを実施する(ステップS410)。このとき、FDBのクリア中はFDBの学習を抑止する。FDBクリアの完了後、リングポート状態テーブル2200のデータVLANの論理的通信状態2240の変更を行う。具体的には、増設ポート230のデータVLANの論理的通信状態2240を減設ポート220のデータVLANの論理的通信状態2240と同じ値に変更し(ステップS420)、減設ポートのデータVLANの論理的通信状態2240を、変更前の減設ポートが"ブロッキング"であれば"ブロッキング"のまま、"フォワーディング"であれば"レシーブのみ"に変更する(ステップS430)。データVLANの論理的通信状態2240の変更が完了後に、データVLAN切替応答フレームを増設ポートの制御VLANから送信する(ステップS440)。そして最後に、データVLAN切替要求フレームは、他ネットワーク装置に中継せずに廃棄する(ステップS450)。
なお、ステップS400で、受信したポートの役割2250が"増設"でないと判定された場合には、ステップS410ないしS440を実行することなく、ステップS450に移行する。
図26は、隣接ノード200が増設ポート230において図25のステップS410の処理を完了している場合のFDBテーブル2300を示す説明図である。図27は、隣接ノード200が増設ポート230において図25のステップS420、S430の処理を完了している場合のリングポート状態テーブル2200を示す説明図である。
データVLAN切替要求フレームを増設ポートで受信した隣接ノード200は、図25のステップS410の処理によってFDBテーブル2300からポート番号2330が減設ポート220のFDBをクリアする。すなわち、図10の状態から図26の状態に移行する。FDBのクリア後、図25のステップS420の処理によってリングポート状態テーブル2200の増設ポート230のデータVLANの論理的通信状態2240を"フォワーディング"に、図25のステップS430の処理によってリングポート状態テーブル2200の減設ポート220のデータVLANの論理的通信状態2240を"レシーブのみ"に変更する。すなわち、図18の状態から図27の状態に移行する。図27中の背景ハッチの欄が変更箇所である。FDBのクリアとデータVLANの論理的通信状態2240の変更の完了後に図25のステップS440の処理によって増設ポートからデータVLAN切替応答を制御VLANに送信する。
図28は、隣接ノード300が増設ポート330において図25のステップS410の処理を完了している場合のFDBテーブル2300を示す説明図である。図29は、隣接ノード300が増設ポート330において図25のステップS420、S430の処理を完了している場合のリングポート状態テーブル2200を示す説明図である。
隣接ノード300が増設ポート330でデータVLAN切替要求フレームを受信したときも、隣接ノード200が増設ポート230でデータVLAN切替要求フレームを受信したときと同様に、図25のステップS410、S420、S430、S440の処理によってFDBテーブル2300のFDBクリア、リングポート状態テーブル2200の内容の変更、データVLAN切替応答フレームの送信を行う。この結果、図11の状態から図28の状態へ移行し、また、図19の状態から図29の状態へ移行する。図29においては、背景ハッチの欄が変更箇所である。
図30は、隣接ノード200、300、増設ノード700が、それぞれ図25で示した手順を完了している場合の転送経路を模式的に示す説明図である。図31は、隣接ノード200、増設ノード700が図25で示した手順を完了しているが、隣接ノード300が図25で示した手順を完了していない場合の転送経路を模式的に示す説明図である。すなわち、図31の状態は、図30の状態より前の状態であり、時間的には、図31の状態、図30の状態と移行することになる。図31は、図20の状態を理解する上での参考となるように用意した。
監視ノード100の送信するヘルスチェックフレームH110、H120は、前述した通り、制御VLAN切替後に増設ノード700経由に切り替わっているため、省略する。
隣接ノード200、300、増設ノード700が、それぞれ図25で示した手順を完了している場合、図30に示すように、端末500の送信するユーザトラフィックU500を受信した隣接ノード200は、FDBテーブル2300に端末600のFDBがないため、データVLANの論理的通信状態2240が"フォワーディング"である増設ポート330から増設ノード700にユーザトラフィックU500を中継する。このとき、増設ノード700が隣接ノード300に中継したユーザトラフィックU500は、隣接ノード300の増設ポート330のデータVLANの論理的通信状態2240が"フォワーディング"であるため、中継ノード400に中継する。ユーザトラフィックU600は、ユーザトラフィックU500と同様であるため、省略する。
隣接ノード200、増設ノード700が図25で示した手順を完了しているが、隣接ノード300が図25で示した手順を完了していない場合、図31に示すように、ユーザトラフィックU500は、隣接ノード200の減設ポート220のデータVLANの論理的通信状態2240が"レシーブのみ"、増設ポート230のデータVLANの論理的通信状態2240が"フォワーディング"であるため、増設ポート230から増設ノード700にユーザトラフィックU500を中継するが、減設ポート220から隣接ノード300にフレームを中継しない。このとき、増設ノード700が隣接ノード300に中継したユーザトラフィックU500は、隣接ノード300のポート320、減設ポート310のデータVLANの論理的通信状態2240が"フォワーディング"だが、増設ポート330のデータVLANの論理的通信状態2240が"レシーブのみ"であるため、ポート320から中継ノード400にユーザトラフィックを中継し、減設ポート310から隣接ノード200にフレームを中継しない。
また、ユーザトラフィックU600は、隣接ノード300の減設ポート310のデータVLANの論理的通信状態2240が"フォワーディング"、増設ポート330のデータVLANの論理的通信状態2240が"レシーブのみ"であるため、減設ポート310から隣接ノード200にユーザトラフィックU600を中継し、増設ポート330から増設ノード700にフレームを中継しない。このとき、隣接ノード200の減設ポート220のデータVLANの論理的通信状態2240が"レシーブのみ"であるため、ポート210、増設ポート230のデータVLANの論理的通信状態2240が共に"フォワーディング"であっても、ポート210から監視ノード100のみに中継し、増設ポート230から増設ノード700にフレームを中継しない。隣接ノード300のデータVLANの論理的通信状態2240の変更が完了しておらず、隣接ノード300のデータVLANの論理的通信状態2240の変更が完了している場合は、転送方向が異なるのみで、各ネットワーク装置における転送方式は同様であるため、説明を省略する。
本実施例では、制御VLANとデータVLANを順番に増設対象のネットワーク装置経由に切り替えているが、制御VLANとデータVLANを同時に増設対照のネットワーク装置経由に切り替えてもよい。
図32は、リングプロトコル処理部1000で実行されるデータVLAN切替応答受信時処理ルーチンを示すフローチャートである。このデータVLAN切替応答受信時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、データVLAN切替応答フレームを受信したタイミングで実行開始される。データVLAN切替応答フレームは、前述した図25のステップS440で送信されたものである。
処理が開始されると、リングプロトコル処理部1000は、まず、制御VLAN切替応答フレームを受信したポートについてのリングポート状態テーブル2200の役割2250が"制御"であるか否かを判定する(ステップS500)。ここで、"制御"であれば、リングポート状態テーブル2200の切替段階を"3"に変更する(ステップS510)。このとき、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"3"であれば(ステップS515)、隣接ノード間の回線が切断可能なことをネットワーク管理者に通知し、回線の切断を促す(ステップS520)。詳しくは、制御ポートを持つ増設ノード700が、端末500、600に対して、隣接ノード間の回線が切断可能なことを通知する。その通知を受信した端末500、600は、ディスプレイに隣接ノード間の回線が切断可能な旨のメッセージを表示する。ネットワーク管理者は、いずれかの端末500、600から、隣接ノード間の回線が切断可能なことの通知を受け、その回線の切断を行う。なお、通知方法は、ディスプレイへのメッセージ表示に換えて、ログメッセージを表示することによるものとすることもできる。
そして最後に、リングプロトコル処理部1000は、データVLAN切替応答フレームを他ネットワーク装置に中継せずに廃棄する(ステップS530)。なお、ステップS500で否定判定された場合またはステップS515で否定判定された場合には、ステップS530に移行する。
図33は、増設ノード700が制御ポート710において図32で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。データVLAN切替応答フレームを制御ポート710で受信した増設ノード700は、図32のステップS510の処理によってリングポート状態テーブル2200の制御ポート710の切替段階2260を"3"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図24の状態から図33の状態に移行する。図33中の背景ハッチの欄が変更箇所である。
図34は、増設ノード700が制御ポート720において図32で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。増設ノード700がデータVLAN切替応答フレームを制御ポート720で受信したときも、増設ノード700がデータVLAN切替応答フレームを制御ポート710で受信したときと同様に、図32のステップS510の処理によってリングポート状態テーブル2200の切替段階2260を"3"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図33の状態から図34の状態に移行する。図34中の背景ハッチの欄が変更箇所である。ここで全ての制御ポートの切替段階が"3"になった増設ノード700は、図32のステップS520の処理によって隣接ノード間の回線を切断可能なことをネットワーク管理者に通知する。
図35Aは、ネットワーク管理者が隣接ノード間の回線を切断するときの作業手順を示すフローチャートである。ネットワーク管理者は、前述した図32のステップS520によって発せられた通知を受けたときに、図35Aに示す作業を行う。
図示するように、ネットワーク管理者は、隣接ノード間の回線が切断可能である通知をうけると、まず、隣接ノード間の回線を切断する(手順1)。その後、ネットワーク管理者は、隣接ノードと増設ノードのコンフィグレーションの変更を行う(手順2)。これは、隣接ノードは、減設ポートのコンフィグレーション削除後に増設ポートが通常ポートになるようにコンフィグレーションの変更を実施するものであり、増設ノードは、制御ポートが通常ポートになるようにコンフィグレーションを変更するものである。これで、ネットワーク管理者は作業を終える。
図35Bは、ネットワーク管理者による前記手順2の作業を受けて、リングプロトコル処理部1000で実行される初期化処理ルーチンを示すフローチャートである。この初期化処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で、前記手順2による減設ポートのコンフィグレーション削除、増設ポート、制御ポートのコンフィグレーション変更を検出したときに実行される。図示するように、処理が開始されると、リングプロトコル処理部1000は、減設ポートのコンフィグレーション削除ならば(ステップS600:YES)、リングポート状態テーブル2200から減設ポートのエントリを削除する(ステップS610)。
増設ポートのコンフィグレーション変更、制御ポートのコンフィグレーション変更の場合(ステップS600:NO)には、リングポート状態テーブル2200の当該ポートの役割2250を"通常"に変更し(ステップS620)、切替段階2260を"0"に変更する(ステップS630)。ステップS610またはS630の実行後、この初期化処理ルーチンを終了する。
A6.実施例効果:
以上説明した第1実施例のネットワークシステム10では、リングネットワークに増設対象のネットワーク装置を接続すると、増設対象のネットワーク装置である増設ノード700が、設定の変更を指示する制御フレームによって隣接ノード200、300に記憶される論理的通信状態を制御し、ヘルスチェックフレームおよびユーザトラフィックを、増設ノード700を経由した通信に切り替えることが可能となる。したがって第1実施例のネットワークシステム10では、リングネットワークにおいてネットワークトポロジを変更させずにネットワーク装置を増設することができる。また、切り替えの過程において、増設ノード700を経由するユーザトラフィックの通信停止時間を論理的通信状態の変更時間のみに短縮することができる。さらに、減設ポートを出力先ポートとするFDBのみをクリアするため、FDBクリアに伴い発生する不要なトラフィックを削減することができる。
B.第2実施例:
B1.システム構成:
第2実施例のネットワークシステムの構成は、第1実施例のネットワークシステム10の構成と同様に、リングネットワークを構成する4台のネットワーク装置と、2台の端末とを備える。なお、第2実施例において、第1実施例と同一のパーツには、第1実施例と同一の符号を付け、第1実施例のパーツとは対応するが構成が一部異なるパーツには、第1実施例で付けた符号の末尾に"B"の文字を付けて、以下の説明を行う。
B2.ネットワーク装置の構成:
図36は、第2実施例におけるネットワーク装置100Bの構成を示す説明図である。なお、第2実施例における他のネットワーク装置200B〜400B、700Bも同様の構成を備える。第1のネットワーク装置100Bは、第1実施例の第1のネットワーク装置100と同様に、ポート110、ポート120、ポート130と、リングプロトコル処理部1000Bと、メモリ2000Bとを備える。リングプロトコル処理部1000Bの処理内容とメモリ2000Bの記憶内容は、第1実施例と比べて、以下の通り相違する。
メモリ2000Bは、第1実施例と比べて、コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300を格納することで同一であり、LAG状態テーブル2400を格納することで相違している。「LAG」は、リンクアグリゲーショングループ(Link Aggregation Group)のことであり、複数のリンクを一本にまとめる機能である。LAG状態テーブル2400は、リンクアグリゲーショングループとそれに属するポートとの関係を示すテーブルであり、その内容については後述する。ネットワーク装置100Bは、LAG状態テーブル2400を備えることで、LAGを有することになる。
リングプロトコル処理部1000Bは、リングプロトコルの制御とリングポートの制御を行い、コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300、LAG状態テーブル2400を管理する。リングプロトコル処理部1000Bは、第1実施例と比べて、LAG状態テーブル2400を管理することで少なくとも相違する。
B3.テーブルの内容:
コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300の内容は、第1実施例と同一である。
図37は、隣接ノード200BにおけるLAG状態テーブル2400を示す説明図である。LAG状態テーブル2400は、コンフィグレーションテーブル2100から作成され、図示するように、LAG ID2410、ポート番号2420、送信先指定ポート2430の要素を持つ。
LAG ID2410は、各LAGをネットワークシステム内で一意に識別するためのIDを表す。ポート番号2420は、各LAGに所属するポート番号を表し、必ず減設ポートと増設ポートの組みで構成する。送信先指定ポート2430は、LAGに所属するポート番号の中から、各LAGが出力先として選ばれたときに、送信先として使うポートを表し、初期値として、必ず減設ポートが設定される。
隣接ノード200Bにおいては、図示するように、LAG ID2410がLAG240であり、ポート番号2420が減設ポート220と増設ポート230であり、送信先指定ポート2430が減設ポート220であるエントリを記憶している。
図38は、隣接ノード300BにおけるLAG状態テーブル2400を示す説明図である。隣接ノード300においては、図示するように、LAG ID2410がLAG340であり、ポート番号2420が減設ポート310と増設ポート330であり、送信先指定ポート2430が減設ポート310であるエントリを記憶している。
図39は、リングプロトコル処理部1000Bで実行されるコンフィグレーションテーブル登録時処理ルーチンを示すフローチャートである。このコンフィグレーションテーブル登録時処理ルーチンは、各ネットワーク装置100B〜400B、700Bのリングプロトコル処理部1000Bで実行されるもので、コンフィグレーションテーブル2100において減設ポートまたは増設ポートの登録がなされたことを検出したタイミングで実行開始される。
処理が開始されると、リングプロトコル処理部1000Bは、減設ポートと増設ポートのコンフィグレーションが両方ともコンフィグレーションテーブル2100に追加されているかを判定し(ステップS700)、いずれかが追加されていないと判定されると、このコンフィグレーションテーブル登録時処理ルーチンを終了する。一方、両方とも追加されていると判定された場合には、ステップS710に処理を進める。
ネットワーク装置に減設ポートと増設ポートのコンフィグレーションを追加し、コンフィグレーションテーブル2100に減設ポートと増設ポートが登録されると、減設ポートと増設ポートでLAGを構成する。このために、ステップS710では、リングプロトコル処理部1000Bは、LAG状態テーブル2400に減設ポートと増設ポートで構成されたLAGのエントリの追加を行う。さらに、リングプロトコル処理部1000Bは、リング状態テーブル2200に対して、上記LAG状態テーブル2400に追加したLAGのエントリを登録する(ステップS720)。ここで、リングポート状態テーブル2200に追加するLAGエントリは、減設ポートのエントリから回線状態2220、制御VLANの論理的通信状態2230、データVLANの論理的通信状態2240、切替段階2260を引き継ぎ、役割2250は"増設"を設定する。
ステップS720の実行後、リングプロトコル処理部1000Bは、FDBテーブル2300のポート番号2330が減設ポートのFDBのポート番号2330を、前記追加したLAGエントリに変更する(ステップS730)。その後、リングプロトコル処理部1000Bは、リングポート状態テーブル2200から増設ポートと減設ポートのエントリを削除する(ステップS740)。ステップS740の実行後、このコンフィグレーションテーブル登録時処理ルーチンを終了する。
図40は、隣接ノード200Bが図39のステップS740の処理を完了している場合のリングポート状態テーブル2200を示す説明図である。図41は、隣接ノード200Bが図39のステップS730の処理を完了している場合のFDBテーブル2300を示す説明図である。
隣接ノード200は、減設ポート220と増設ポート230のコンフィグレーションがコンフィグレーションテーブル2100に登録された契機で、図39のステップS710の処理によってLAG状態テーブル2400にLAG240のエントリを追加する。LAG状態テーブル2400にLAG240のエントリを追加後、図39のステップS720の処理によって、リングポート状態テーブル2200にリングポート2210がLAG240であり、回線状態2220が"Up"であり、制御VLANの論理的通信状態2230が"フォワーディング"であり、データVLANの論理的通信状態2240が"フォワーディング"であり、役割が"増設"であり、切替段階が"0"であるエントリを追加する(図40の最下行)。
リングポート状態テーブル2200にLAG240のエントリを追加後、図39のステップS730の処理によってFDBテーブル2300のポート番号2330が減設ポート220のFDBをLAG240に変更する(図41の最下行)。FDBテーブル2300を変更後、図39のステップS740の処理によってリングポート状態テーブル2200から減設ポート220と増設ポート230のエントリを削除する。この結果、図7の状態にあった隣接ノード200Bのリングポート状態テーブル2200は、図40の状態となる。
図42は、隣接ノード300Bが図39のステップS740の処理を完了している場合のリングポート状態テーブル2200を示す説明図である。図43は、隣接ノード300Bが図39のステップS730の処理を完了している場合のFDBテーブル2300を示す説明図である。
隣接ノード300は、隣接ノード200Bと同様に減設ポート310と増設ポート330のコンフィグレーションがコンフィグレーションテーブル2100に登録された契機で、図39のステップS710の処理によってLAG状態テーブル2400にLAG340のエントリを追加する。LAG状態テーブル2400にLAG340のエントリを追加後、図39のステップS720の処理によって、リングポート状態テーブル2200にリングポート2210がLAG340であり、回線状態2220が"Up"であり、制御VLANの論理的通信状態2230が"フォワーディング"であり、データVLANの論理的通信状態2240が"フォワーディング"であり、役割が"増設"であり、切替段階が"0"であるエントリを追加する(図42の最下行)。
リングポート状態テーブル2200にLAG340のエントリを追加後、図39のステップS730の処理によってFDBテーブル2300のポート番号2330が減設ポート310のFDBをLAG340に変更する(図43の下から2行目)。FDBテーブル2300を変更後、図39のステップS740の処理によってリングポート状態テーブル2200から減設ポート310と増設ポート330のエントリを削除する。この結果、図8の状態にあった隣接ノード200Bのリングポート状態テーブル2200は、図42の状態となる。
B4.制御フレーム転送用VLANとユーザトラフィック転送用VLANの同時切り替え動作:
図44は、リングプロトコル処理部1000Bで実行されるリンクアップ検出時処理ルーチンを示すフローチャートである。このリンクアップ検出時処理ルーチンは、各ネットワーク装置100B〜400B、700Bのリングプロトコル処理部1000Bで実行されるもので、各リングポートのリンクアップを検出したタイミングで実行開始される。
処理が開始されると、リングプロトコル処理部1000Bは、まず、リングポート状態テーブル2200の回線状態2220を"Down"から"Up"へと変更する(ステップS810)。その後、当該ポートのリングポート状態テーブル2200の役割2250が"制御"であるか否かを判定する(ステップS815)。ここで、"制御"であると判定された場合には、リングポート状態テーブル2200の切替段階2260を"1"に変更し(ステップS820)、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"1"であれば(ステップS825)、リングポート状態テーブル2200における全制御ポートについてのデータVLANの論理的通信状態2240を"フォワーディング"に変更し(ステップS830)、リンクアップした制御ポートの制御VLANからLAG切替要求フレームを送信する(ステップS840)。
ステップS840の実行後、このリンクアップ検出時処理ルーチンを終了する。また、ステップS815で否定判定されたときや、ステップS825で否定判定されたときにも、このリンクアップ検出時処理ルーチンを終了する。
図45は、増設ノード700Bが制御ポート710において図44で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。隣接ノード200Bと増設ノード700Bを接続した契機で、隣接ノード200Bは増設ポート230のリンクアップを検出する。このとき、増設ポート230BはLAG240に所属しているため、リングポート状態テーブル2200の変更は行われない。また、増設ノード700Bも制御ポート710のリンクアップを検出する。このとき、図44のステップS810の処理によってリングポート状態テーブル2200の回線状態2220を"Up"に、図44のステップS820の処理によってリングポート状態テーブル2200の切替段階2260を"1"に変更する。この結果、図9の状態にあった増設ノード700Bのリングポート状態テーブル2200は、図45の状態となる。図45中の背景ハッチの欄が変更箇所である。
図46は、増設ノード700Bが制御ポート720において図44で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。隣接ノード300Bと増設ノード700Bを接続したときも隣接ノード200Bと増設ノード700Bを接続したときと同様に、図44のステップS810、S820の処理によって増設ノード700Bのリングポート状態テーブル2200の内容の変更が行われる。ここで全ての制御ポートの切替段階が"1"になった増設ノード700Bは、図44のステップS830の処理によって全ての制御ポートのリングポート状態テーブル2200のデータVLANの論理的通信状態2240を"フォワーディング"に変更する。この結果、図45の状態にあった増設ノード700Bのリングポート状態テーブル2200は、図46の状態となる。図46中の背景ハッチの欄が変更箇所である。データVLANの論理的通信状態2240の変更後、図44のステップS840の処理によってLAG切替要求フレームを全ての制御ポートの制御VLANから送信する。
図47は、隣接ノード200B、300B、増設ノード700Bが、それぞれ図44で示した手順を完了している場合の転送経路を模式的に示す説明図である。隣接ノード200BのLAG240の送信先指定ポートが減設ポート220となっているため、ヘルスチェックフレームH110もユーザトラフィックU500も、増設ノード700Bではなく隣接ノード300Bに中継する。隣接ノード300Bも隣接ノード200Bと同様にLAG340の送信先指定ポートが減設ポート310となっているため、ヘルスチェックフレームH120もユーザトラフィックU600も、増設ノード700B経由ではなく隣接ノード200Bに中継される。したがって、ヘルスチェックフレームH110、120もユーザトラフィックU500、600も増設ポートの接続前と変わらない経路で中継する。
図48は、リングプロトコル処理部1000で実行されるLAG切替要求受信時処理ルーチンを示すフローチャートである。このLAG切替要求時処理ルーチンは、各ネットワーク装置100B〜400B、700Bのリングプロトコル処理部1000で実行されるもので、LAG切替要求フレームを受信したタイミングで実行開始される。LAG切替要求フレームは、前述した図44のステップS840で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Bは、リングポートでLAG切替要求フレームを受信したLAGについてのリングポート状態テーブル2200の役割2250が"増設"であるか否かを判定する(ステップS900)。ここで、"増設"であれば、リングプロトコル処理部1000Bは、LAG状態テーブル2400のポート番号2420に設定されているポートの内、送信先指定ポート2430に設定されていないポートに送信先指定ポート2430を変更する(ステップS910)。
隣接ノード200BがLAG240においてステップS910の処理を実行した場合、LAG状態テーブル2400は、図37の状態から図49の状態に移行する。すなわち、LAG240のエントリの送信先指定ポート2430が、ポート220からポート230に変更する(図49中の背景ハッチの欄が変更箇所)。
隣接ノード300BがLAG340においてステップS910の処理を実行した場合、LAG状態テーブル2400は、図38の状態から図50の状態に移行する。すなわち、LAG340のエントリの送信先指定ポート2430が、ポート310からポート330に変更する(図49中の背景ハッチの欄が変更箇所)。
図48に戻り、リングプロトコル処理部1000Bは、ステップS910の実行後、LAG切替応答フレームを増設ポートの制御VLANから送信する(ステップS920)。その後、リングプロトコル処理部1000Bは、LAG切替要求フレームを、他ネットワーク装置に中継せずに廃棄する(ステップS930)。ステップS930の実行後、このLAG切替要求時処理ルーチンを終了する。一方、ステップS900で、否定判定された場合には、ステップS910およびS920を実行せずに、ステップS930に処理を進める。
図51は、第2実施例における隣接ノード200B、300Bが図48で示した手順を完了している場合の転送経路を模式的に示す説明図である。隣接ノード200BがLAG切替要求フレームを受信してLAG状態テーブル2400のLAG240の送信先指定ポート2430を増設ポート230に変更したことで、ヘルスチェックフレームH110とユーザトラフィックU500が増設ノード700経由にフレームの送信先が切り替わる。このとき、増設ノード700Bが中継したヘルスチェックフレームとユーザトラフィックは、隣接ノードのLAG340の制御VLANの論理的通信状態2230とデータVLANの論理的通信状態2240が"フォワーディング"であるため、中継ノード400Bに中継する。ヘルスチェックフレームH120とユーザトラフィックU600はヘルスチェックフレームH110とユーザトラフィックU500と同様であるため、省略する。
図52は、リングプロトコル処理部1000Bで実行されるLAG切替応答受信時処理ルーチンを示すフローチャートである。このLAG切替応答受信時処理ルーチンは、各ネットワーク装置100〜400、700のリングプロトコル処理部1000で実行されるもので、LAG切替応答フレームを受信したタイミングで実行開始される。LAG切替応答フレームは、前述した図48のステップS920で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Bは、まず、LAG切替応答フレームを受信したポートについてのリングポート状態テーブル2200の役割2250が"制御"であるか否かを判定する(ステップS1000)。ここで、"制御"であれば、リングポート状態テーブル2200の切替段階2260を"2"に変更する(ステップS1010)。このとき、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"2"であれば(ステップS1015)、隣接ノード200B、300B間の回線が切断可能なことをネットワーク管理者に通知し、回線の切断を促す(ステップS1020)。詳しくは、制御ポートを持つ増設ノード700Bが、端末500、600に対して、隣接ノード間の回線が切断可能なことを通知する。その通知を受信した端末500、600は、ディスプレイに隣接ノード間の回線が切断可能な旨のメッセージを表示する。ネットワーク管理者は、いずれかの端末500、600から、隣接ノード間の回線が切断可能なことの通知を受け、その回線の切断を行う。なお、通知方法は、ディスプレイへのメッセージ表示に換えて、ログメッセージを表示することによるものとすることもできる。
そして最後に、リングプロトコル処理部1000は、LAG切替応答フレームを他ネットワーク装置に中継せずに廃棄する(ステップS1030)。なお、ステップS100で否定判定された場合またはステップS1015で否定判定された場合には、ステップS1030に移行する。
図53は、増設ノード700Bが制御ポート710において図52で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。LAG切替応答フレームを制御ポート710で受信した増設ノード700Bは、図52のステップS1010の処理によってリングポート状態テーブル2200の切替段階2260を"2"に変更する。すなわち、増設ノード700のリングポート状態テーブル2200は、図46の状態から図53の状態に移行する。図53中の背景ハッチの欄が変更箇所である。
図54は、増設ノード700Bが制御ポート720において図52で示した手順を完了している場合のリングポート状態テーブル2200を示す説明図である。増設ノード700BがLAG切替応答フレームを制御ポート720で受信したときも、増設ノード700BがLAG切替応答フレームを制御ポート710で受信したときと同様に、図52のステップS1010の処理によってリングポート状態テーブル2200の切替段階2260を"2"に変更する。すなわち、増設ノード700Bのリングポート状態テーブル2200は、図53の状態から図54の状態に移行する。図54中の背景ハッチの欄が変更箇所である。ここで全ての制御ポートの切替段階が"2"になった増設ノード700Bは、図52のステップS1020の処理によって隣接ノード200B、300B間の回線を切断可能なことをネットワーク管理者に通知する。
前述した図52のステップS1020によって発せられた通知を受けたネットワーク管理者は、隣接ノード間の回線を切断する作業を行う。この作業は、第1実施例と同様であり、前述した図35Aに示す作業手順に従うものである。
図55は、図35Aに示したコンフィグレーションの変更を受けて、リングプロトコル処理部1000で実行される初期化処理ルーチンを示すフローチャートである。この初期化処理ルーチンは、各ネットワーク装置100B〜400B、700Bのリングプロトコル処理部1000Bで、図35Aの手順2による減設ポートのコンフィグレーション削除、増設ポート、制御ポートのコンフィグレーション変更を検出したときに実行される。
図示するように、処理が開始されると、リングプロトコル処理部1000Bは、減設ポートのコンフィグレーション削除か否かを判定する(ステップS1100)。ここで、減設ポートのコンフィグレーション削除であると判定された場合には、減設ポートと増設ポートで構成していたLAGを解除するため、リングポート状態テーブル2200に増設ポートのエントリを追加する(ステップS1110)。ここで、リングポート状態テーブル2200に追加する増設ポートのエントリは、LAGのエントリから回線状態2220、制御VLANの論理的通信状態2230、データVLANの論理的通信状態2240、役割2250、切替段階2260を引き継ぐ。
リングポート状態テーブル2200にエントリの追加後、FDBテーブル2300のポート番号2330がLAGエントリのFDBのポート番号2330を前記追加した増設ポートに変更する(ステップS1120)。FDBテーブル2300を変更したあとに、LAG状態テーブル2400とリングポート状態テーブル2200からLAGのエントリを削除する(ステップS1130、S1140)。ステップS1140の実行後、初期化処理ルーチンを終了する。
一方、ステップS1100で否定判定、すなわち、増設ポートまたは制御ポートのコンフィグレーション変更であると判定された場合には、リングポート状態テーブル2200の当該ポートの役割2250を通常に(ステップS1150)、切替段階2260を0に変更する(ステップS1160)。ステップS1160の実行後、初期化処理ルーチンを終了する。
B5.実施例効果:
以上説明した第2実施例のネットワークシステム10Bでは、リングネットワークに増設対象のネットワーク装置を接続すると、増設対象のネットワーク装置である増設ノード700Bが、制御フレームによって隣接ノード200B,300BのLAGの振り分け先ポートを制御し、ヘルスチェックフレームおよびユーザトラフィックを、増設ノード700Bを経由した通信に切り替えることが可能となる。したがって、第2実施例のネットワークシステム10Bでは、リングネットワークにおいてネットワークトポロジを変更させずにネットワーク装置を増設することができる。また、切り替えの過程において、振り分け先ポートを変更可能なLAGを利用することで、ユーザトラフィックの通信停止時間を短縮することができる。
C.第3実施例:
C1.システム構成:
第3実施例のネットワークシステムの構成は、第1実施例および第2実施例のネットワークシステム10、10Bの構成と同様に、リングネットワークを構成する4台のネットワーク装置と、2台の端末を備える。さらに端末を収容するための1台のネットワーク装置を備える。なお、第3実施例において、第1実施例または第2実施例と同一のパーツには、第1実施例・第2実施例と同一の符号を付け、第1実施例・第2実施例のパーツとは対応するが構成が一部異なるパーツには、第1実施例・第2実施例で付けた符号の末尾に"C"の文字を付けて、以下の説明を行う。
図56は第3実施例のネットワークシステム10Cの構成を示す説明図である。このネットワークシステム10Cは、第2実施例のネットワークシステム10Bの構成に対して、以下の(i)〜(iv)の点が異なる。ここで言う第2実施例のネットワークシステム10Bの構成は、図1において、ノードの符号を末尾に"C"の文字を付したものである。
(i)監視ノード100Bの位置と隣接ノード200Bの位置を入れ替える。監視ノード100Bの役割および動作は第2実施例と同様である。隣接ノード200Bの役割および動作も第2実施例と同様である。
(ii)第2実施例における中継ノード400Bに替えてネットワーク装置3100を設置する。このネットワーク装置3100は、ネットワークシステム10Cにおいて中継ノードとしてフレームの中継を行っており、後述する手順によって入れ替えられ、リングネットワークから外される。すなわち、ネットワーク装置3100は入れ替え対象のネットワーク装置であり、以降、ネットワーク装置3100を入れ替え旧ノード3100とも呼ぶ。
(iii)ネットワーク装置3200を新たに追加する。このネットワーク装置3200は、後述する手順によって入れ替え旧ノード3100と入れ替えられ、入れ替え旧ノードの替わりとなって、フレームの中継を行う。以降、ネットワーク装置3200を入れ替え新ノード3200とも呼ぶ。
(iv)ネットワーク装置3300を新たに追加する。このネットワーク装置3300は、入れ替え旧ノード3100と端末600との間に設けられ、端末600とリングネットワークの間のフレームを中継する。以降、ネットワーク装置3300を端末収容ノード3300とも呼ぶ。
ネットワーク装置間の接続については、第2実施例に対して以下のように異なる。
ネットワーク装置100Bについての接続は次の通りである。ポート120により、回線を介してネットワーク装置300Bに接続する。ポート130は実施例3では使用しない。ポート110は第2実施例と同様である。
ネットワーク装置200Bについての接続は次の通りである。ポート220により、回線を介してネットワーク装置3100に接続する。ポート250により、回線を介して端末500へ接続する。ポート210は第2実施例と同様である。
ネットワーク装置300Bについての接続は次の通りである。ポート310により、回線を介してネットワーク装置3100に接続する。ポート320により、回線を介してネットワーク装置100に接続する。
ネットワーク装置3100についての接続は次の通りである。ポート3110により、回線を介してネットワーク装置200Bに接続する。ポート3120により、回線を介してネットワーク装置300Bに接続する。ポート3130により、回線を介してネットワーク装置3300に接続する。ネットワーク装置3100のポートのうち、リングネットワークを構成するリングポートとして使用されているポート3110とポート3120を「通常ポート」と呼ぶ。
ネットワーク装置3300についての接続は次の通りである。ポート3310により、回線を介してネットワーク装置3100に接続する。ポート3330により、回線を介して端末600に接続する。
図57は、図56の状態でのネットワークシステム10Cにおける転送経路を模式的に示す説明図である。ユーザトラフィックおよびヘルスチェックフレームの転送経路については、第2実施例に対して以下のように異なる。
端末500が送信するユーザトラフィックU500は、ネットワーク装置200B,3100,3300を経由して端末600へ到達する。端末600が送信するユーザトラフィックU600は、ネットワーク装置3300,3100,200Bを経由して端末500へ到達する。なお、監視ノード100のポート120のデータVLANの論理的通信状態がブロッキングであるため、ループすることはない。
ヘルスチェックフレームH110はポート110から送信され、ネットワーク装置200B,3100,300Bを経由してネットワーク装置100のポート120へと到達する。ヘルスチェックフレームH120はポート120から送信され、ネットワーク装置300B,3100,200Bを経由してネットワーク装置100のポート110へと到達する。
図58は、図56の状態から、入れ替え旧ノード3100を入れ替え新ノード3200へと入れ替える過程におけるネットワークシステム10Cの構成を示す説明図である。ネットワーク装置200Bは、図56の接続状態に加えて、ポート230により回線を介してネットワーク装置3200に接続する。ネットワーク装置300Bは、図56の接続状態に加えて、ポート330により回線を介してネットワーク装置3200に接続する。ネットワーク装置3100は、図56の接続状態に加えて、ポート3140により回線を介してネットワーク装置3200に接続する。ネットワーク装置3200は、ポート3210により回線を介してネットワーク装置200Bに接続し、ポート3220により回線を介してネットワーク装置300Bに接続し、ポート3230により回線を介してネットワーク装置3300に接続し、ポート3240により回線を介してネットワーク装置3100に接続する。ネットワーク装置3300は 図56の接続状態に加えて、ポート3320により回線を介してネットワーク装置3200に接続する。
なお、ネットワーク装置3100、3200のポートのうち端末収容ノード3300と直接接続し、端末とリングネットワークを繋いでユーザトラフィックを中継するためのポート3130およびポート3230を「アクセスポート」と呼ぶ。ネットワーク装置3200と3300を直接接続し、入れ替えの過程で一時的にユーザトラフィックを疎通させるために使用するポート3140およびポート3240を「迂回ポート」と呼ぶ。
隣接ノード200Bでは、入れ替え旧ノード3100に接続するポート220を減設ポートとし、入れ替え新ノード3200に接続するポート230を増設ポートとする。第2実施例と同様にコンフィグレーションからLAG状態テーブル2400を作成し、ポート220とポート230はLAG240を構成する。
隣接ノード300Bも同様に、入れ替え旧ノード3100に接続するポート310を減設ポートとし、入れ替え新ノード3200に接続するポート330を増設ポートとする。ネットワーク装置300Bでは、ポート310とポート330はLAG340を構成する。このとき端末収容ノード3300では、FDBの学習を行わずフレームがフラッディングされているものとする。なお、端末600がフラッディング機能を備える場合は端末600を直接、入れ替え旧ノード3100、入れ替え新ノード3200と接続する構成としてもよい。
図59は、ネットワークシステム10Cにおける、ポート3140とポート3240間の障害監視について示す説明図である。入れ替え旧ノード3100の迂回ポート3140と入れ替え新ノード3200の迂回ポート3240とを結ぶ回線は、リングネットワークのヘルスチェックによる監視が行われない回線である。この回線については入れ替え旧ノード3100と入れ替え新ノード3200との間で迂回ポートヘルスチェックH130、H140を使用して回線の障害監視をおこなう。
C2.ネットワーク装置の構成:
図60は、第3実施例におけるネットワーク装置(入れ替え旧ノード)3100の構成を示す説明図である。なお、第3実施例における他のネットワーク装置(入れ替え新ノード)3200も同様の構成を備える。他のネットワーク装置100B、200B、300Bについては、第2実施例と同様の構成を備える。
ネットワーク装置3100は、第2実施例の第1のネットワーク装置100Bと同様に、ポート3110(110)、ポート3120(120)、ポート3130(130)と、リングプロトコル処理部1000Cと、メモリ2000Cとを備える。また、ネットワーク装置3100はポート3140を備える。リングプロトコル処理部1000Cの処理内容とメモリ2000Cの記憶内容は、第1実施例と比べて、以下の通り相違する。
メモリ2000Cは、第2実施例と比べて、コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300、LAG状態テーブル2400を格納することで同一であり、中継可否管理テーブル2500を格納することで相違している。中継可否管理テーブル2500はフレームを受信したポートと送信先ポートを管理するためのテーブルであり、その内容については後述する。
リングプロトコル処理部1000Cは、リングプロトコルの制御とリングポートの制御を行い、コンフィグレーションテーブル2100、リングポート状態テーブル2200、FDBテーブル2300、LAG状態テーブル2400、中継可否管理テーブル2500を管理する。リングプロトコル処理部1000Cは、第2実施例と比べて、中継可否管理テーブル2500を管理することで少なくとも相違する。
C3.テーブルの内容:
図61は、入れ替え新ノード3200のコンフィグレーションテーブル2100を示す説明図である。各行の意味は次の通りである。
1行目は、VLAN ID100のネットワークを示す。
2行目は、VLAN ID100にポート3210、3220が所属することを示す。
3行目は、VLAN ID101のネットワークを示す。
4行目は、VLAN ID101にポート3210、3220が所属することを示す。
5行目は、リングプロトコルにおいて、リングネットワーク毎にユニークに割り振られたIDである。同一リングネットワークのネットワーク装置は、同じリングIDを持つ。入れ替え新ノード3200がリングID100のリングネットワークに属することを示す。
6行目は、ネットワーク装置3200が入れ替え新ノードであることを示す。
7行目は、制御VLANとして、VLAN ID100を使用することを示す。
8行目は、データVLANとして、VLAN ID101を使用することを示す。
9行目は、ポート3210を使用することを示す。
10行目は、ポート3210がリングID100のリングネットワークに所属している制御ポートであることを示す。
11行目は、ポート3220を使用することを示す。
12行目は、ポート3220がリングID100のリングネットワークに所属している制御ポートであることを示す。
13行目は、ポート3230を使用することを示す。
14行目は、ポート3230がアクセスポートであって、リングID100のデータを中継することを示す。
15行目は、ポート3240を使用することを示す。
16行目は、ポート3240がリングID100のリングネットワークに所属している迂回ポートであることを示す。
図62は、入れ替え旧ノード3100のコンフィグレーションテーブル2100を示す説明図である。各行の意味は次の通りである。
1行目は、VLAN ID100のネットワークを示す。
2行目は、VLAN ID100にポート3110、3120が所属することを示す。
3行目は、VLAN ID101のネットワークを示す。
4行目は、VLAN ID101にポート3110、3120が所属することを示す。
5行目は、リングプロトコルにおいて、リングネットワーク毎にユニークに割り振られたIDである。同一リングネットワークのネットワーク装置は、同じリングIDを持つ。入れ替え旧ノード3100がリングID100のリングネットワークに属することを示す。
6行目は、ネットワーク装置3100が入れ替え旧ノードであることを示す。
7行目は、制御VLANとして、VLAN ID100を使用することを示す。
8行目は、データVLANとして、VLAN ID101を使用することを示す。
9行目は、ポート3110を使用することを示す。
10行目は、ポート3110がリングID100のリングネットワークに所属している通常ポートであることを示す。
11行目は、ポート3120を使用することを示す。
12行目は、ポート3120がリングID100のリングネットワークに所属している通常ポートであることを示す。
13行目は、ポート3130を使用することを示す。
14行目は、ポート3230がアクセスポートであって、リングID100のデータを中継することを示す。
15行目は、ポート3140を使用することを示す。
16行目は、ポート3140がリングID100のリングネットワークに所属している迂回ポートであることを示す。
隣接ノード200B、300Bのコンフィグレーションテーブル2100は第2実施例と同一である。
図63は、入れ替え新ノード3200を接続する前の入れ替え旧ノード3100のリングポート状態テーブル2200を示す説明図である。入れ替え旧ノード3100のリングポート2210は、ポート3110、ポート3120、ポート3140を備えている。入れ替え旧ノード3100の回線状態2220は、隣接ノード200B、隣接ノード300Bと接続されている状態で、入れ替え新ノード3200と接続されていない状態での値を表しており、ポート3110、ポート3120ともに"Up"となっている。ポート3140は"Down"となっている。入れ替え旧ノード3100の制御VLANの論理的通信状態2230は、ポート3110、ポート3120は"フォワーディング"、ポート3140は"ブロッキング"となっている。入れ替え旧ノード3100のデータVLANの論理的通信状態2240は、ポート3110、ポート3120は"フォワーディング"、ポート3140は"ブロッキング"となっている。
入れ替え旧ノード3100の役割2250は、図7で示した役割に加えて"迂回"が追加されている。ポート3110、ポート3120の役割は"通常"、ポート3140の役割は"迂回"となっている。役割"迂回"の振舞いについては後述の図66、図69、図75、図76、図80で説明する。入れ替え旧ノード3100の切替段階2260は、ポート3110、ポート3120、ポート3140の全てが"0"となっている。
図64は、リングネットワークに接続する前の入れ替え新ノード3200のリングポート状態テーブル2200を示す説明図である。入れ替え新ノード3200のリングポート2210は、ポート3210、ポート3220、ポート3240を備えている。入れ替え新ノード3200の回線状態2220は、隣接ノード200B、隣接ノード300B、入れ替え旧ノード3100と接続していない状態の値を表しており、ポート3210、ポート3220、ポート3240の全てが"Down"となっている。 入れ替え新ノード3200の制御VLANの論理的通信状態2230は、ポート3210、ポート322は"フォワーディング"、ポート3240は"ブロッキング"となっている。入れ替え新ノード3200のデータVLANの論理的通信状態2240は、ポート3210、ポート3220、ポート3240の全てが"ブロッキング"となっている。
入れ替え新ノード3200の役割2250は、ポート3210、ポート3220は"制御"、ポート3240は"迂回"となっている。入れ替え新ノード3200の切替段階2260は、ポート3210、ポート3220、ポート3240の全てが"0"となっている。
図65は、中継可否管理テーブル2500を示す説明図である。図示するように、中継可否管理テーブル2500は、受信ポート2510および送信ポート2520の要素を持つ。受信ポート2510はポートを表し、コンフィグレーションテーブル2100から作成する。送信ポート2520は、受信したフレームをどのポートから送信するかを表す。送信ポート2520には、複数のポートが設定できる。その場合は受信したフレームを送信ポート2520へ登録された全てのポートへと中継する。また送信ポート2520には、"廃棄"という状態を設定可能である。送信ポートに"廃棄"が設定されている場合は、その受信ポート2510から受信したフレームは他のネットワーク装置へ中継を行わずに廃棄する。図示の例は、受信ポート2510、送信ポート2520の内容が格納される前のもので、中継可否管理テーブル2500がどのように構築されるかは後述する。
なお、中継可否管理テーブル2500の受信ポート2510にエントリが登録されているポートでフレームを受信した場合、FDBテーブルには従わずに送信ポート2520に登録されたポートへフレームを中継する。中継可否管理テーブル2500にエントリが登録されていないポートについては、FDBテーブルに従って中継を行う。
図66はコンフィグレーションから中継可否管理テーブル2500を構築する処理ルーチンを示したフローチャートである。この処理ルーチンは、コンフィグレーションの入力を検出したときに実行される。中継可否管理テーブル2500の構築に必要なコンフィグレーションがされている場合、すなわち、リングポート(制御ポート、通常ポート、迂回ポート)が合計3つ、アクセスポートが1つ以上コンフィグされている場合 (ステップS1200)に、ステップS1205に進む。ステップS1200で否定判定されたときには、この処理ルーチンを一旦終了する。
ステップS1205では、入れ替え新ノード3240のコンフィグレーションが存在するか否かをチェックし(ステップS1205)、入れ替え新ノード3240のコンフィグレーションが存在する場合に、入れ替え新ノードとして中継可否管理テーブル2500を構築するべく、ステップS1210ないしS1230の処理を行う。すなわち、制御ポートで受信したフレームを制御ポートおよび迂回ポートへ送信するエントリを、制御ポートの数分だけ作成し(ステップS1210)、アクセスポートから受信したフレームを廃棄するエントリを生成し(ステップS1220)、迂回ポートから受信したフレームを制御ポートへ送信するエントリを生成する(ステップS1230)。
一方、ステップS1205で否定判定された場合には、入れ替え旧ノードとして中継可否管理テーブル2500を構築するべく、ステップS1240ないしS1260の処理を行う。すなわち、通常ポートで受信したフレームを通常ポートおよびアクセスポートへ送信するエントリを、制御ポートの数分だけ作成し(ステップS1240)、アクセスポートから受信したフレームを通常ポートへ送信するエントリを作成し(ステップS1250)、迂回ポートから受信したフレームをアクセスポートへ送信するエントリを作成する(ステップS1260)。
図67は、中継可否管理テーブル構築処理ルーチン(図66)を完了した時点での入れ替え新ノード3200の中継可否管理テーブル2500を示す説明図である。制御ポート3210から受信したフレームは、制御ポート3220および迂回ポート3240へと送信される(1行目)。制御ポート3220から受信したフレームは、制御ポート3210および迂回ポート3240へと送信される(2行目)。アクセスポート3230から受信したフレームは、他ネットワーク装置へ中継せずに廃棄する(3行目)。迂回ポート3240から受信したフレームは、制御ポート3210および制御ポート3220へと送信される(4行目)。
図68は、中継可否管理テーブル構築処理ルーチン(図66)を完了した時点での入れ替え旧ノード3100の中継可否管理テーブル2500を示す説明図である。通常ポート3110から受信したフレームは、通常ポート3120およびアクセスポート3130へと送信される(1行目)。通常ポート3120から受信したフレームは、通常ポート3110およびアクセスポート3130へと送信される(2行目)。アクセスポート3130から受信したフレームは、通常ポート3110および通常ポート3120へと送信される(3行目)。迂回ポート3140から受信したフレームは、アクセスポート3130へと送信される(4行目)。
以上説明したコンフィグレーションテーブル2100、リングポート状態テーブル2200、中継可否管理テーブル2500以外の、FDBテーブル2300およびLAG状態テーブル2400は第2実施例と同様である。また、入れ替え旧ノード3100および入れ替え新ノード3200ではFDBテーブル2300およびLAG状態テーブル2400を用いた制御を行わない。
C4.リングネットワークの切り替えとアクセス回線の切り替え動作:
図69は、リングプロトコル処理部1000Cで実行されるリンクアップ検出時処理ルーチンを示すフローチャートである。このリンクアップ検出時処理ルーチンは、入れ替え新ノード3200で実行されるもので、各リングポートのリンクアップを検出したタイミングで実行開始される。
処理が開始されると、リングプロトコル処理部1000Cは、第2実施例の図44と同様に、回線状態2220を"Down"から"Up"へと変更する(ステップS810)。次いで、リングプロトコル処理部1000Cは、リンクアップしたポートの役割が"制御"または"迂回"であるか否かを判定する(ステップS2115)。ここで、"制御"または"迂回"であると判定された場合には、リングプロトコル処理部1000Cは、図44と同様に、リンクアップしたポートの切替段階2260を"1"に変更する(ステップS820)。
続いて、リングプロトコル処理部1000Cは、リングポート状態テーブル2200上の全ての制御ポートおよび迂回ポートの切替段階2260が"1"であるか否かを判定し(ステップS2125)、ここで肯定判定されると、リングプロトコル処理部1000Cは、リングポート状態テーブル2200における全制御ポートおよび迂回ポートについてのデータVLANの論理的通信状態2240を"フォワーディング"に変更し(ステップS2130)、迂回ポートの監視を開始する(ステップS2140)。迂回ポートの監視については図91にて後述する。ステップS2140の実行後、リングプロトコル処理部1000Cは、LAG切替要求フレームを一方の隣接ノードへと送信する(ステップS2150)。なお、ステップS2115で否定判定されたとき、またはステップS2125で否定判定されたときには、この処理ルーチンを終了する。
図70は、入れ替え新ノード3200のポート3210がリンクアップし、図69のリンクアップ検出時処理ルーチンを完了している場合のリングポート状態テーブル2200を示す説明図である。リンクアップ検出時処理ルーチンのステップS810、S820の処理によってポート3210の回線状態2220を"up"にし、切替段階2250を"1"にする。図の背景ハッチの欄が変更箇所である。以下、同じ。
図71は、入れ替え新ノード3200のポート3220がリンクアップし、図69のリンクアップ検出時処理ルーチンを完了している場合のリングポート状態テーブル2200を示す説明図である。ステップS810、S820の処理によってポート3220の回線状態2220を"up"にし、切替段階2250を"1"にする。
図72は、入れ替え新ノード3200のポート3240がリンクアップし、図69のリンクアップ検出時処理ルーチンを完了している場合のリングポート状態テーブル2200を示す説明図である。ステップS810、S820の処理によってポート3240の回線状態2220を"up"にし、切替段階2250を"1"にする。さらに、全ての制御ポートおよび迂回ポートの切替段階が"1"になった入れ替え新ノード3200は、図69のステップS830の処理によって、全ての制御ポートおよび迂回ポートのリングポート状態テーブル2200のデータVLANの論理的通信状態2240を"フォワーディング"に変更する。
その後、図69のステップS2140の処理によって迂回用回線の監視を開始し、ステップS2150のLAG切替要求フレームを隣接ノードの一方へ送信する。
ステップS2150によるLAG切替要求フレームはどちらの隣接ノードに送信してもよいが、ここでは仮に符号番号が若い方の制御ポート3210へ送信する場合で説明する。入れ替え新ノード3200がステップS2150で制御ポート3210へLAG切替要求フレームを送信すると、受信した隣接ノード200Bでは第2実施例と同一の処理、図48に示された処理を実行し、LAG切替応答フレームを入れ替え新ノード3200へと送信する。
図73は、図72で入れ替え新ノード3200のポート3240がリンクアップしたときの入れ替え旧ノード3100のリングポート状態テーブル2200を示す説明図である。図69のステップS810、S820の処理によってポート3140の回線状態2220を"up"にし、切替段階2250を"1"にする。入れ替え旧ノード3100では、制御ポートおよび迂回ポートのコンフィグレーションがポート3140のみであるため、ステップ2125で全ての制御ポートおよび迂回ポートの切替段階が"1"になったと判定され、入れ替え旧ノード3100は、ステップS830の処理によって迂回ポート3140のリングポート状態テーブル2200のデータVLANの論理的通信状態2240を"フォワーディング"に変更する。
図74は、入れ替え新ノード3200がリンクアップ検出時処理ルーチン(図69)を完了し、ポート3210、ポート3220、ポート3230、ポート3240がリンクアップしたときの転送経路を模式的に示す説明図である。隣接ノード200BがLAG切替要求フレームを受信して、図48で説明した通りにLAG状態テーブル2400のLAG240の送信先指定ポート2430を増設ポート230に変更したことで、ヘルスチェックフレームH110とユーザトラフィックU500が入れ替え新ノード3200を経由するように転送経路が切り替わる。
入れ替え新ノード3200では、リングポート状態テーブル2200および中継可否管理テーブル2500に従いフレームの中継を行う。リングポート状態テーブル2200は、図72で説明した通りのものである。すなわち、リングポート状態テーブル2200において、制御VLANの論理的通信状態2230は、ポート3210、ポート3220が"フォワーディング"、ポート3240が"ブロッキング"となっており、データVLANの論理的通信状態2240は、ポート3210、ポート3220、ポート3240が"フォワーディング"となっている。入れ替え新ノード3200の中継可否管理テーブル2500は図67で説明した通り、受信ポート2510のポート3210に対応する送信先2520には、ポート3220、ポート3240が登録されている。
図74に戻って、ポート3210で受信したヘルスチェックフレームH110は、制御VLANの論理的通信状態2230が"フォワーディング"であるポート3220へと中継される。ポート3210で受信したユーザトラフィックU500は、データVLANの論理的通信状態2230が"フォワーディング"であるポート3220、ポート3240へと中継される。このとき、入れ替え新ノード3200がポート3220へと中継したヘルスチェックフレームH110とユーザトラフィックU500は、隣接ノード300Bから監視ノード100へと中継される。
入れ替え新ノード3200がポート3240へと中継したユーザトラフィックU500は、入れ替え旧ノード3100で、上記と同様にリングポート状態テーブル2200および中継可否管理テーブル2500に従いフレームの中継が行われる。リングポート状態テーブル2200は図73で説明した通り、データVLANの論理的通信状態2240は、ポート3140が"フォワーディング"となっている。中継可否管理テーブル2500は図68で説明した通り、受信ポート2510のポート3140に対応する送信先2520はポート3130が登録されている。これらの結果、ポート3140で受信したユーザトラフィックU500はポート3130へと中継される。
図75は、リングプロトコル処理部1000Cで実行されるLAG切替応答受信時処理ルーチンを示すフローチャートである。このLAG切替応答受信時処理ルーチンは、入れ替え新ノード3200のリングプロトコル処理部1000で実行されるもので、LAG切替応答フレームを受信したタイミングで実行開始される。LAG切替応答フレームは、図48のステップS920で送信されたものである。ステップS1000、S1010、S1030の処理は、第2実施例の図52と同じである。第2実施例と異なる処理として、ステップS1010の処理の次に、迂回ポートのコンフィグレーションが存在するか否かを判定し(ステップS2005)、迂回ポートのコンフィグレーションが存在する場合に以下の処理を行う。
まず、リングポート状態テーブル2200上の全ての制御ポートの切替段階2260が"2"であるか否かを判定し(ステップS1015)、"2"であると判定された場合に、迂回ポート障害監視停止要求フレームを迂回ポートへ送信する(ステップS2210)。一方、ステップS1015で否定判定された場合には、迂回ポート切替要求フレームを迂回ポートへ送信する(ステップS2220)。ステップS2210またはS2220の実行後、ステップS1030に移行する。また、ステップS2005で否定判定された場合にも、ステップS103に移行する。図69のリンクアップ検出時処理ルーチンおよび図75のLAG切替応答受信時処理ルーチンが、「課題を解決するための手段」の欄に記載した「新装置ネットワーク制御部」に対応している。
図76は、リングプロトコル処理部1000Cで実行される迂回ポート切替要求受信時処理ルーチンを示すフローチャートである。この迂回ポート切替要求受信時処理ルーチンは、ネットワーク装置3100のリングプロトコル処理部1000Cで実行されるもので、迂回ポート切替要求フレームを受信したタイミングで実行開始される。迂回ポート切替要求フレームは、前述した図75のステップS2220で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Cは、迂回ポート切替要求フレームを受信したポートについてのリングポート状態テーブル2200の役割2250が"迂回"であるか否かを判定する(ステップS2305)。ここで、"迂回"であると判断された場合に、リングプロトコル処理部1000Cは、迂回ポート切替要求フレームを受信した迂回ポートのリングポート状態テーブル2200の切替段階2260を"2"に変更し(ステップS2310)、中継可否管理テーブル2500の受信ポート2510がアクセスポートであるエントリの送信ポート2520を迂回ポートへと変更し (ステップS2320)、迂回ポート切替応答フレームを送信する(ステップS2330)。ステップS2330の実行後、リングプロトコル処理部1000Cは、迂回ポート切替要求フレームを他ネットワーク装置に中継せずに廃棄する(ステップS2340)。なお、ステップS2305で否定判定された場合には、ステップS2340に移行する。この迂回ポート切替要求受信時処理ルーチンが、「課題を解決するための手段」の欄に記載した「旧装置ネットワーク制御部」に対応している。
図77は、迂回ポート切替要求受信時処理ルーチン(図76)のステップS2310の処理が完了した時点での入れ替え旧ノード3100のリングポート状態テーブル2200を示す説明図である。背景ハッチの欄が、図72からの変更点である。図76のステップS2310の処理によってポート3140の切替段階2250が"2"に変更されている。
図78は、迂回ポート切替要求受信時処理ルーチン(図76)のステップS2320の処理が完了した時点での入れ替え旧ノード3100の中継可否管理テーブル2500を示す説明図である。背景ハッチの欄が図68からの変更箇所である。すなわち、アクセスポート3130から受信したフレームは、迂回ポート3140へと送信される(3行目)。
図79は、入れ替え旧ノード3100が図76のステップS2320で説明した手順を完了したときの転送経路を模式的に示す説明図である。入れ替え旧ノード3100が迂回ポート切替要求フレームを受信して、図76で説明した通りに中継可否管理テーブル2500を図78のように変更したことで、ユーザトラフィックU600の転送経路が切り替わる。
入れ替え旧ノード3100では、ポート3130から受信したフレームをリングポート状態テーブル2200、中継可否管理テーブル2500に従い中継する。入れ替え旧ノード3100のリングポート状態テーブル2200のデータVLANの論理的通信状態2240は図77の通り、データポート3110、ポート3120、ポート3140が"フォワーディング"である。入れ替え旧ノード3100の中継可否管理テーブル2500は図78の通り、受信ポート2510のポート3130に対応する送信先2520はポート3140となっている。以上から、ポート3130で受信したユーザトラフィックU600はポート3140へと中継される。これにより、入れ替え対象である入れ替え旧ノード3100において、入れ替え新ノード3200へと回線が切り替わることになる。
入れ替え旧ノード3100がポート3140へと中継したユーザトラフィックは、入れ替え新ノード3200で上記と同様にリングポート状態テーブルおよび中継可否管理テーブルに従いフレームの中継が行われる。入れ替え新ノード3200のリングポート状態テーブル2200は図72で説明した通り、データVLANの論理的通信状態2240は、ポート3210、ポート3220、ポート3240が"フォワーディング"となっている。入れ替え新ノード3200の中継可否管理テーブル2500は図67で説明した通り、受信ポート2510のポート3240に対応する送信先2520はポート3210、ポート3220が登録されている。以上から、ポート3240で受信したユーザトラフィック600はポート3210、ポート3220へと中継される。
図80は、リングプロトコル処理部1000Cで実行される迂回ポート切替応答受信時処理ルーチンを示すフローチャートである。この迂回ポート切替応答受信時処理ルーチンは、ネットワーク装置3200のリングプロトコル処理部1000Cで実行されるもので、迂回ポート切替応答フレームを受信したタイミングで実行開始される。迂回ポート切替応答フレームは、前述した図76のステップS2330で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Cは、迂回ポート切替応答フレームを受信したポートについてのリングポート状態テーブル2200役割2250が"迂回"であるか否かを判定する(ステップS2405)。ここで、"迂回"であれば、リングポート状態テーブル2200の切替段階2260を"2"に変更する(ステップS2410)。その後、中継可否管理テーブル2500の状態を以下の通り変更する。受信ポート2510が制御ポートのエントリである送信ポート2520を制御ポートおよびアクセスポートに変更し、受信ポート2510がアクセスポートのエントリである送信ポート2520を制御ポートに変更し、受信ポート2510が迂回ポートのエントリである送信ポート2520を廃棄に変更する(ステップS2420)。続いて、LAG切替要求フレームを送信する(ステップS2430)。
ステップS2430の実行後、リングプロトコル処理部1000Cは、迂回ポート切替応答フレームを他ネットワーク装置に中継せずに廃棄する(ステップS2440)。なお、ステップS2405で否定判定された場合には、ステップS2440に移行する。
図81は、迂回ポート切替応答受信時処理ルーチン(図80)のステップS2410の処理が完了した時点での入れ替え新ノード3200のリングポート状態テーブル2200を示す説明図である。背景ハッチの欄が、図72からの変更点である。図80のステップS2410の処理によってポート3240の切替段階2250が"2"に変更されている。
図82は、迂回ポート切替応答受信時処理ルーチン(図80)のステップS2420の処理が完了した時点での入れ替え新ノード3200の中継可否管理テーブル2500を示す説明図である。制御ポート3210から受信したフレームは、制御ポート3220およびアクセスポート3230へと送信される(1行目)。制御ポート3220から受信したフレームは、制御ポート3210およびアクセスポート3230へと送信される(2行目)。アクセスポート3230から受信したフレームは、制御ポート3210および制御ポート3220へと送信される(3行目)。迂回ポート3240から受信したフレームは、他ネットワーク装置へ中継せずに廃棄する(4行目)。
図83は、入れ替え旧ノード3200が迂回ポート切替応答受信時処理ルーチン(図80)のステップS2420で説明した手順を完了したときの転送経路を模式的に示す説明図である。入れ替え新ノード3200が迂回ポート切替応答フレームを受信して、中継可否管理テーブル2500を図82の通り変更したことで、ユーザトラフィックU500、U600の転送経路が切り替わる。まずユーザトラフィックU500について説明する。
入れ替え新ノード3200では、ポート3210から受信したフレームをリングポート状態テーブル2200、中継可否管理テーブル2500に従い中継する。入れ替え新ノード3200のリングポート状態テーブル2200は図81で説明した通り、データVLANの論理的通信状態2240は、ポート3210、ポート3220、ポート3240が"フォワーディング"となっている。入れ替え新ノード3200の中継可否管理テーブル2500は図82の通りであり、受信ポート2510のポート3210に対応する送信先2520にポート3220、ポート3230が登録されている。以上から、ポート3210で受信したユーザトラフィック500はポート3220、ポート3230へと中継される。
次にユーザトラフィックU600について説明する。入れ替え旧ノード3100のリングポート状態テーブル2200については上記と同一のため説明を省略する。入れ替え旧ノード3100の中継可否管理テーブル2500は、受信ポート2510のポート3230に対応する送信先2520に、ポート3210、ポート3220が登録されている。以上から、ポート3230で受信したユーザトラフィックU600はポート3210、ポート3220へと中継される。
図84は、リングプロトコル処理部1000Cで実行される迂回ポート障害監視停止要求受信時処理ルーチンを示すフローチャートである。この処理ルーチンは、迂回ポート障害監視停止要求フレームを受信したタイミングで実行開始される。迂回ポート障害監視停止要求フレームは、前述した図75のステップS2210で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Cは迂回ポート障害監視停止要求フレームを受信したポートについてのリングポート状態テーブル2200役割2250が"迂回"であるか否かを判定する(ステップS2705)。ここで"迂回"であれば、リングポート状態テーブル2200の切替段階2260を"3"に変更する(ステップS2710)。その後、迂回ポート障害監視停止要求フレームを受信したポートからのヘルスチェックフレームの送信を停止し(ステップS2720)、迂回ポート障害監視停止応答フレームを送信する(ステップS2730)。
ステップS2730の実行後、リングプロトコル処理部1000Cは、迂回ポート障害監視停止要求フレームを他ネットワーク装置に中継せずに廃棄する(ステップS2740)。なお、ステップS2705で否定判定された場合には、ステップS2740に移行する。
図85は、図84のステップS2710の処理が完了した時点での入れ替え旧ノード3100のリングポート状態テーブル2200を示す説明図である。背景ハッチの欄が、図77からの変更点である。図84のステップS2710の処理によってポート3140の切替段階2250が"3"に変更されている。
図86は、リングプロトコル処理部1000Cで実行される迂回ポート障害監視停止応答受信時処理ルーチンを示すフローチャートである。この処理ルーチンは、迂回ポート障害監視停止応答フレームを受信したタイミングで実行開始される。迂回ポート障害監視停止応答フレームは、前述した図84のステップS2730で送信されたものである。
処理が開始されると、リングプロトコル処理部1000Cは迂回ポート障害監視停止応答フレームを受信したポートについてのリングポート状態テーブル2200役割2250が"迂回"であるか否かを判定する(ステップS2805)。ここで"迂回"であれば、リングポート状態テーブル2200の切替段階2260を"3"に変更する(ステップS2810)。その後、迂回ポート障害監視停止応答フレームを受信したポートからのヘルスチェックフレームの送信を停止し (ステップS2820)、隣接ノード間の回線が切断可能なことをネットワーク管理者に通知し、回線の切断を促す(ステップS2830)。
ステップS2830の実行後、リングプロトコル処理部1000Cは、迂回ポート障害監視停止応答フレームを他ネットワーク装置に中継せずに廃棄する(ステップS2840)。なお、ステップS2805で否定判定された場合には、ステップS2840に移行する。
図87は、迂回ポート障害監視停止応答受信時処理ルーチン(図86)のステップS2810の処理が完了した時点での入れ替え新ノード3200のリングポート状態テーブル2200を示す説明図である。背景ハッチの欄が、図81からの変更点である。図86のステップS2810の処理によってポート3240の切替段階2250が"3"に変更されている。
図88は、図84、図86の処理の結果、ヘルスチェックH130、H140が停止した状態の転送経路を示す説明図である。ユーザトラフィックU500、U600およびリングのヘルスチェックH110、H120については図83での転送経路と同一であり以下の通りとなる。
端末500が送信するユーザトラフィックU500は、ネットワーク装置200B、3200、3300を経由して端末600へ到達する。端末600が送信するユーザトラフィックU600は、ネットワーク装置3300、3200、200Bを経由して端末500へ到達する。ヘルスチェックフレームH110はポート110から送信され、ネットワーク装置200B,3200,300Bを経由してネットワーク装置100のポート120へと到達する。ヘルスチェックフレームH120は、ポート120から送信され、ネットワーク装置300B,3200,200Bを経由してネットワーク装置100のポート110へと到達する。
図89は、ネットワーク管理者が入れ替え旧ノードと他ネットワーク装置間の回線を切断するときの作業手順を示すフローチャートである。ネットワーク管理者は、前述した図86のステップS2830によって発せられた通知を受けたときに、図89に示す作業を行う。
図示するように、ネットワーク管理者は、隣接ノード間の回線が切断可能である通知をうけると、まず、入れ替え旧ノードと他ネットワーク装置間の回線を切断する(手順1)。ここで、他ネットワーク装置間とは、隣接ノード200B、隣接ノード300B、入れ替え新ノード3200のそれぞれとの間である。その後、ネットワーク管理者は、隣接ノードと入れ替え新ノードのコンフィグレーションの変更を行う(手順2)。これは、隣接ノードは、減設ポートのコンフィグレーション削除後に増設ポートが通常ポートになるようにコンフィグレーションの変更を実施するものであり、入れ替え新ノードは、制御ポートが通常ポートになるようにコンフィグレーションを変更し、迂回ポートのコンフィグレーションを削除するものである。これで、ネットワーク管理者は作業を終える。
図90は、ネットワーク管理者による前記手順2の作業を受けて、リングプロトコル処理部1000Cで実行される初期化処理ルーチンを示すフローチャートである。この初期化処理ルーチンは、ネットワーク装置3200のリングプロトコル処理部1000Cで、図89の手順2による制御ポートのコンフィグレーション変更、迂回ポートのコンフィグレーション削除を検出したときに実行される。図示するように、処理が開始されると、リングプロトコル処理部1000Cは、迂回ポートのコンフィグレーション削除ならば(ステップS2905:YES)、リングポート状態テーブル2200から迂回ポートのエントリを削除する(ステップS2910)。
制御ポートのコンフィグレーション変更の場合(ステップS2905:NO)には、リングポート状態テーブル2200の当該ポートの役割2250を"通常"に変更し(ステップS2920)、当該ポートの切替段階2260を"0"に変更する(ステップS2930)。ステップS2910またはS2930の実行後、この初期化処理ルーチンを終了する。隣接ノード200B、300Bにおける初期化処理は図55に示した処理と同様である。
C5.障害時処理:
図91は迂回ポートでの障害監視の処理ルーチンを示すフローチャートである。この処理ルーチンは入れ替え旧ノード3100と入れ替え新ノード3200のリングプロトコル処理部1000Cで実行されるもので、迂回ポートのリンクアップを検出したタイミングで実行開始される。処理が開始されると、まず、迂回ポートヘルスチェックフレームを定期的に送信する(ステップS2510)。その後、迂回ポートヘルスチェックフレームを受信した場合(ステップS2515:YES)、迂回ポートヘルスチェック用のタイマをリセットし(ステップS2520)、迂回ポートの状態を正常状態とし(ステップS2530)、受信した迂回ポートヘルスチェックフレームを中継せずに廃棄する(ステップS2540)。ステップS2540の実行後、ステップS2515に処理を戻す。
ステップS2515で否定判定され、かつ、タイムアウトが発生した場合(ステップS2535:YES)、迂回ポートの状態を障害状態とする(ステップS2550)。ステップS2535で否定判定されたときには、ステップS2515に処理を戻す。ステップS2535でのタイムアウト時間については装置で予め定められた固定値としてもよいし、コンフィグレーションで指定してもよい。
図92は、迂回ポート障害検出時処理ルーチンを示すフローチャートである。この処理ルーチンは、入れ替え旧ノード3100と入れ替え新ノード3200のリングプロトコル処理部1000Cで実行されるもので、図91のステップS2550で迂回ポートの状態が障害状態となったときに処理を開始する。障害を検出した場合、リングプロトコル処理部1000Cは、まず、迂回ポートの切替段階が"0"または"1"であるときに(ステップS2605:YES)、切替手順の実行を停止させる(ステップS2610)。具体的には、入れ替え旧ノード3200では、図80のステップS2410を実行しないようにし、入れ替え新ノード3100では、図76のステップS2310を実行しない。これにより、障害から復旧するまで切替手順を進めないようにしている。ステップS2610の実行後、迂回ポートに障害が発生していることを通知する(ステップS2620)。
一方、ステップS2605で否定判定されたときは、リングプロトコル処理部1000Cは、入れ替え新ノードである場合に(ステップS2615:YES)、中継可否管理テーブル2500の受信ポート2510が制御ポートのエントリである送信ポート2520を制御ポートおよびアクセスポートに変更し、受信ポート2510がアクセスポートのエントリである送信ポート2520を制御ポートに変更し、受信ポート2510が迂回ポートのエントリである送信ポート2520を廃棄に変更し(ステップS2630)、ステップS2620に移行する。
リングプロトコル処理部1000Cは、ステップS2615で否定判定された場合に、中継可否管理テーブル2500の受信ポート2510がアクセスポートの中継可否管理テーブル2500の受信ポート2510が通常ポートのエントリである送信ポート2520を通常ポートおよびアクセスポートに変更し、受信ポート2510がアクセスポートのエントリである送信ポート2520を廃棄に変更し、受信ポート2510が迂回ポートのエントリである送信ポート2520を廃棄に変更し(ステップS2640)、ステップS2620に移行する。ステップS2620の実行後、本処理ルーチンを一旦終了する。
図93は、迂回ポート障害検出時処理ルーチン(図92)のステップS2630の処理が完了した時点での入れ替え新ノード3200の中継可否管理テーブル2500を示す説明図である。制御ポート3210から受信したフレームは、制御ポート3220およびアクセスポート3230へと送信される(1行目)。制御ポート3220から受信したフレームは、制御ポート3210およびアクセスポート3230へと送信される(2行目)。アクセスポート3230から受信したフレームは、制御ポート3210および制御ポート3220へと送信される(3行目)。迂回ポート3240から受信したフレームは、他ネットワーク装置へ中継せずに廃棄する(4行目)。
図94は、迂回ポート障害検出時処理ルーチン(図92)のステップS2640の処理が完了した時点での入れ替え新ノード3100の中継可否管理テーブル2500を示す説明図である。制御ポート3110から受信したフレームは、制御ポート3120およびアクセスポート3130へと送信される(1行目)。制御ポート3120から受信したフレームは、制御ポート3110およびアクセスポート3130へと送信される(2行目)。アクセスポート3230から受信したフレームは、他ネットワーク装置へ中継せずに廃棄する(3行目)。迂回ポート3240から受信したフレームは、他ネットワーク装置へ中継せずに廃棄する(4行目)。
図95は、ポート3140、ポート3240を接続する回線に障害が発生したときの転送経路を模式的に示す説明図である。障害が検出された場合、迂回ポート障害検出時処理ルーチン(図92)によって、入れ替え旧ノード3100および入れ替え新ノード3200の中継可否管理テーブル2500が障害発生時の状態に変更される。このために、ユーザトラフィックU500、U600の転送経路が切り替わる。まずユーザトラフィックU500について説明する。
入れ替え新ノード3200のリングポート状態テーブル2200は図87で説明した通り、データVLANの論理的通信状態2240は、ポート3210、ポート3220、ポート3240が"フォワーディング"となっている。入れ替え新ノード3200の中継可否管理テーブル2500については、図93の通りであり、受信ポート2510のポート3210に対応する送信先2520はポート3220、ポート3230が登録されている。以上から、ポート3210で受信したユーザトラフィック500はポート3220、ポート3230へと中継される。
次にユーザトラフィックU600について説明する。ユーザトラフィックU600は、リングポート状態テーブル2200については上記と同一のため説明を省略する。入れ替え新ノード3200の中継可否管理テーブル2500については、受信ポート2510のポート3230に対応する送信先2520はポート3210、ポート3220が登録されている。以上から、ポート3230で受信したユーザトラフィック600はポート3210、ポート3220へと中継される。以上のように、迂回用ポートを接続する回線に障害が発生した場合にもユーザトラフィックU500,U600に通信断が発生することが無い。
C6.実施例効果:
以上説明した第3実施例のネットワークシステム10Cでは、リングネットワークの端末を収容するネットワーク装置を入れ替える際に、入れ替え対象である入れ替え旧ノード3100と隣接するネットワーク装置間の回線を切断する前に、入れ替え新ノード3200を通信可能に接続し(ポートをリンクアップし)、入れ替え旧ノード3100と入れ替え新ノード3200を接続しユーザトラフィックを疎通させる迂回回線とした上で、入れ替え新ノード3200から、全てのリングポートがリンクアップの状態となったときに、入れ替え旧ノード3100に対して、迂回回線の切替が指示される。入れ替え旧ノード3100では、その変更の指示を受けたときに、中継可否管理テーブル2500に記憶される送信先ポートが更新される。このためにユーザトラフィックの通信を維持しつつ、フレームを入れ替え対象の新ネットワーク装置経由に切り替えて送ることができる。
D.変形例:
・変形例1:
前記各実施例および各変形例では、ネットワーク装置が備える各テーブルについて、その構成の一例を示した。しかし、これらのテーブルが備える要素は、その発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、上記に例示した要素以外の要素を備えるものとしても良い。
・変形例2:
前記各実施例および各変形例では、ネットワークシステムを構成するネットワーク装置は4台であり、1台を追加する(あるいは入れ替える)構成としたが、これに換えて、追加する前は3台以上の任意の台数とすることもできる。
・変形例3:
前記各実施例および各変形例において、ハードウェアによって実現されるものとした構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されるものとした構成の一部をハードウェアに置き換えるようにしてもよい。
なお、前述した実施例および各変形例における構成要素の中の、独立請求項で記載された要素以外の要素は、付加的な要素であり、適宜省略可能である。また、本発明はこれらの実施例および各変形例になんら限定されるものではなく、その要旨を逸脱しない範囲内において種々の態様での実施が可能である。