(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-26
(45)【発行日】2022-08-03
(54)【発明の名称】通信装置
(51)【国際特許分類】
H04L 12/437 20060101AFI20220727BHJP
【FI】
H04L12/437 Z
(21)【出願番号】P 2019033401
(22)【出願日】2019-02-26
【審査請求日】2021-09-13
(73)【特許権者】
【識別番号】504411166
【氏名又は名称】アラクサラネットワークス株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】特許業務法人藤央特許事務所
(72)【発明者】
【氏名】増永 明剛
(72)【発明者】
【氏名】猪野 賢介
【審査官】野元 久道
(56)【参考文献】
【文献】特開2017-028614(JP,A)
【文献】特開2011-055346(JP,A)
【文献】特開2003-158539(JP,A)
【文献】特開2013-005143(JP,A)
【文献】特開2014-183354(JP,A)
【文献】特開2015-119448(JP,A)
【文献】米国特許出願公開第2011/0051732(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/437
(57)【特許請求の範囲】
【請求項1】
リングプロトコルによって規定されるリングネットワークを構成する通信装置群のうちいずれかの通信装置であって、
前記リングネットワーク内でユーザフレームが送受信される第1仮想ネットワークについてMACアドレスおよびポート番号の組み合わせを登録可能な第1転送先情報と、前記リングネットワーク内でユーザフレームが送受信される第2仮想ネットワークについてMACアドレスおよびポート番号の組み合わせを登録可能な第2転送先情報と、を有する記憶部と、
運用系の仮想ネットワークを前記第1仮想ネットワークから前記第2仮想ネットワークに切り替える場合に、前記運用系の仮想ネットワークに適用される転送先情報を、前記第1転送先情報から前記第2転送先情報に切り替える制御部と、
を有することを特徴とする通信装置。
【請求項2】
請求項1に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群を管理するマスタ装置である場合、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、転送先情報の切替指示を含む制御フレームを転送先の他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項3】
請求項2に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるプライマリポートで前記切替指示を含む制御フレームを受信した場合に、前記切替指示を含む制御フレームを廃棄する、
ことを特徴とする通信装置。
【請求項4】
請求項1に記載の通信装置であって、
前記制御部は、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、前記通信装置群を管理するマスタ装置が生成した転送先情報の切替指示を含む制御フレームを受信した場合、前記運用系の仮想ネットワークに適用される転送先情報を、前記第1転送先情報から前記第2転送先情報に切り替えるとともに、前記切替指示を含む制御フレームを、転送先の他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項5】
請求項1に記載の通信装置であって、
リングネットワーク外のポートから、送信元MACアドレスを含むフレームを受信すると、前記送信元MACアドレスと前記ポートのポート番号との組み合わせを前記第1転送先情報に登録する学習部を有し、
前記制御部は、前記学習部による学習結果を前記第2転送先情報に登録するとともに、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、前記第2転送先情報への前記学習結果の追加指示を含む制御フレームを、転送先の他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項6】
請求項5に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群を管理するマスタ装置である場合、前記追加指示を含む制御フレームを、前記運用系の仮想ネットワークのセカンダリポートから前記他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項7】
請求項5に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群内のマスタ装置に管理されるトランジット装置である場合、前記追加指示を含む制御フレームを受信すると、前記学習結果を前記第2転送先情報に登録する、
ことを特徴とする通信装置。
【請求項8】
請求項7に記載の通信装置であって、
前記制御部は、前記追加指示を含む制御フレームを、前記リングネットワーク内の全ポートから送信する、
ことを特徴とする通信装置。
【請求項9】
請求項6に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるプライマリポートで前記追加指示を含む制御フレームを受信した場合に、前記追加指示を含む制御フレームを廃棄する、
ことを特徴とする通信装置。
【請求項10】
請求項6に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるセカンダリポートで前記追加指示を含む制御フレームを受信した場合に、前記第2転送先情報に前記学習結果を登録する、
ことを特徴とする通信装置。
【請求項11】
請求項1に記載の通信装置であって、
MACアドレスの削除指示を受けると、前記削除指示のMACアドレスと当該MACアドレスに対応するポートのポート番号との組み合わせを前記第1転送先情報から削除する学習部を有し、
前記制御部は、前記学習部によって削除された組み合わせを前記第2転送先情報から削除するとともに、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、前記第2転送先情報からの前記削除された組み合わせの削除指示を含む制御フレームを、転送先の他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項12】
請求項11に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群を管理するマスタ装置である場合、前記削除指示を含む制御フレームを、前記運用系の仮想ネットワークのセカンダリポートから前記他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項13】
請求項11に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群内のマスタ装置に管理されるトランジット装置である場合、前記削除指示を含む制御フレームを受信すると、前記削除された組み合わせを前記第2転送先情報から削除する、
ことを特徴とする通信装置。
【請求項14】
請求項13に記載の通信装置であって、
前記制御部は、前記削除指示を含む制御フレームを、前記リングネットワーク内の全ポートから送信する、
ことを特徴とする通信装置。
【請求項15】
請求項12に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるプライマリポートで前記削除指示を含む制御フレームを受信した場合に、前記削除指示を含む制御フレームを廃棄する、
ことを特徴とする通信装置。
【請求項16】
請求項12に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるセカンダリポートで前記削除指示を含む制御フレームを受信した場合に、前記学習部によって削除された組み合わせを前記第2転送先情報から削除する、
ことを特徴とする通信装置。
【請求項17】
請求項1に記載の通信装置であって、
前記制御部は、前記通信装置群で共通する前記運用系の仮想ネットワークを前記第1仮想ネットワークから前記第2仮想ネットワークに切り替える切替時刻が到来した場合に、前記運用系の仮想ネットワークに適用される転送先情報を、前記第1転送先情報から前記第2転送先情報に切り替える、
ことを特徴とする通信装置。
【請求項18】
請求項17に記載の通信装置であって、
前記制御部は、前記いずれかの通信装置が前記通信装置群を管理するマスタ装置である場合、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、転送先情報の切替指示および前記切替時刻を含む制御フレームを転送先となる他の通信装置に送信する、
ことを特徴とする通信装置。
【請求項19】
請求項18に記載の通信装置であって、
前記制御部は、前記運用系の仮想ネットワークにおけるプライマリポートで前記切替指示および前記切替時刻を含む制御フレームを受信した場合に、前記切替指示および前記切替時刻を含む制御フレームを廃棄する、
ことを特徴とする通信装置。
【請求項20】
請求項17に記載の通信装置であって、
前記制御部は、前記リングネットワーク内で前記リングネットワークを制御する制御フレームが送受信される第3仮想ネットワークを用いて、前記通信装置群を管理するマスタ装置が生成した転送先情報の切替指示および前記切替時刻を含む制御フレームを受信した場合、前記切替指示および前記切替時刻を含む制御フレームを、前記切替時刻の到来前に、転送先の他の通信装置に送信する、
ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを送受信する通信装置に関する。
【背景技術】
【0002】
リングプロトコルは、ユーザフレームを中継する通信装置をリング状に接続し、レイヤ2で通信経路を冗長化する技術である。代表的なリングプロトコルとして、特許文献1がある。リング状に構成されたネットワーク(リングネットワーク。以下、単に、「リング」と称す。)を構成する通信装置は、マスタ装置とトランジット装置の何れかの役割を持つ。
【0003】
リング状という構成上の特徴から経路内で通信がループしてしまうループ構成を防止するために、リングプロトコルは、ネットワークにおいてユーザフレームが転送できない状態(以下、ブロッキング状態と称す。)と、ブロッキング状態を解除してユーザフレームが転送可能な状態(以下、フォワーディング状態と称す。)によりリングを制御する。
【0004】
マスタ装置は、ブロッキング状態とフォワーディング状態との制御をユーザフレームの通信に使われるVLAN(Virtual Local Area Network)単位で行う。以下、このようなVLANを「データVLAN」と称す。なお、制御フレームは、リングの制御に関わるフレームが通信するVLAN(以下、制御VLANと称す。)を伝送する。制御VLANはブロッキング状態またはフォワーディング状態の制御対象にはならない。
【0005】
リングの通信経路は、マスタ装置のリングポートのブロッキング状態とフォワーディング状態で決まる。リングの障害状況が正常状態であるとき、マスタ装置Maは、自身が有する2つのリングポートのうち、1つのリングポートをブロッキング状態とし、もう1つのリングポートをフォワーディング状態とする。これにより、マスタ装置Maは、リングの通信経路がループ構成になることを防ぐ。マスタ装置Maは障害を検出すると、ブロッキング状態にしていたリングポートをフォワーディング状態にして障害個所を回避した通信経路を確保する。
【0006】
リングの障害状況が正常状態であるときに、フォワーディング状態であるリングポートをプライマリポートと呼ぶ。リングの障害状況が正常状態であるときにブロッキング状態であるリングポートをセカンダリポートと呼ぶ。
【0007】
また、リングのトラフィック量制御方式の一例として、リング内を流れるフレームに対して伝送帯域を設定する方式がある(たとえば、下記特許文献2を参照)。特許文献2の方式は、リングを流れるフレームの優先度毎に伝送帯域を設定することで、リングのトラフィック量を制御する方式である。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2008-136013号公報
【文献】特開2006-261825号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、上述したトラフィック量制御のためにデータVLANのプライマリポートとセカンダリポートを切り替えて経路変更する際に、リングを構成する通信装置は未学習のMACアドレスを送信先に指定されたフレームを受信すると、受信したデータVLANに属する全ポートに送信(以降、フラッディングと称す。)する。フラッディングはトラフィック量を増大させる。したがって、トラフィック量制御のために経路変更が実行されると、一時的にトラフィック量が増大し、フレームロスや遅延の発生確率を上げてしまう。
【0010】
本発明は、ブロッキングポート変更の際に、フラッディングを発生させないようにして、トラフィック量を抑制することを目的とする。
【課題を解決するための手段】
【0011】
本願において開示される発明の一側面となる通信装置は、リングプロトコルによって規定されるリングネットワークを構成する通信装置群のうちいずれかの通信装置であって、前記リングネットワーク内でユーザフレームが送受信される第1仮想ネットワークについてMACアドレスおよびポート番号の組み合わせを登録可能な第1転送先情報と、前記リングネットワーク内でユーザフレームが送受信される第2仮想ネットワークについてMACアドレスおよびポート番号の組み合わせを登録可能な第2転送先情報と、を有する記憶部と、運用系の仮想ネットワークを前記第1仮想ネットワークから前記第2仮想ネットワークに切り替える場合に、前記運用系の仮想ネットワークに適用される転送先情報を、前記第1転送先情報から前記第2転送先情報に切り替える制御部と、を有することを特徴とする。
【発明の効果】
【0012】
本発明の代表的な実施の形態によれば、通信経路の切替時にフラッディングが発生させないようにして、トラフィック量を抑制することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施例1にかかるネットワークシステムの構成例を示す説明図である。
【
図2】
図2は、実施例1にかかる通信装置のモジュール構成例を示すブロック図である。
【
図3】
図3は、MACアドレス学習完了後に通信装置が保持するFDBの一例を示す説明図である。
【
図4】
図4は、実施例1にかかる制御フレームのフォーマットを示す説明図である。
【
図5】
図5は、マスタ装置のリング外ポートでMACアドレス学習およびMACアドレスクリアした場合のリングネットワーク全体の処理を示す装置間シーケンス図である。
【
図6】
図6は、トランジット装置のリング外ポートでMACアドレス学習およびMACアドレスクリアした場合のリングネットワーク全体の処理を示す装置間シーケンス図である。
【
図7】
図7は、通信経路切り替え時のリングネットワーク全体の処理を示す通信装置間シーケンス図である。
【
図8】
図8は、MACアドレス学習時の通信装置内のシーケンス図である。
【
図9】
図9は、MACアドレスクリア時の通信装置内のシーケンス図である。
【
図10】
図10は、待機系MACアドレス追加の制御フレームの受信時の通信装置内のシーケンス図である。
【
図11】
図11は、待機系MACアドレスクリア制御フレームの受信時の通信装置内のシーケンス図である。
【
図12】
図12は、実施例1にかかる通信経路切替時におけるマスタ装置内のシーケンス図である。
【
図13】
図13は、実施例1にかかる切替指示の制御フレーム受信時の通信装置内のシーケンス図である。
【
図14】
図14は、ユーザフレーム転送パターン1における通信装置内のシーケンス図である。
【
図15】
図15は、ユーザフレーム転送パターン2における通信装置内のシーケンス図である。
【
図16】
図16は、ユーザフレーム転送パターン3における通信装置内のシーケンス図である。
【
図17】
図17は、運用系FDBの切り替え処理の通信装置内シーケンスである。
【
図18】
図18は、実施例2にかかる通信装置のモジュール構成例を示すブロック図である。
【
図19】
図19は、実施例2にかかる制御フレームのフォーマット例を示す説明図である。
【
図20】
図20は、実施例2にかかる通信経路切替時のリングネットワーク全体の処理を示す通信装置間シーケンス図である。
【
図21】
図21は、実施例2にかかる通信経路切替時におけるマスタ装置内のシーケンス図である。
【
図22】
図22は、実施例2にかかる切替指示の制御フレームの受信時の通信装置内シーケンスである。
【発明を実施するための形態】
【0014】
本実施の形態では、リングネットワークを構成する全通信装置が、通信経路切り替え後におけるフレームの転送先情報(Fowarding Data Base。以下、FDBと称す。)を、切り替え前に予め作成し、マスタ装置の指示でリングに属する全通信装置のFDBを切り替える。
【0015】
これを実現するため、通信経路切り替え前に使用するFDB(以降、運用系FDBと称す。)と、通信経路切り替え後に使用するFDB(以降、待機系FDBと称す。)の2種のFDBを、各通信装置が持つ。運用系FDBには、受信フレームの送信元MACアドレスが登録される。待機系FDBには、他の通信装置から制御フレームにより通知されたMACアドレスが登録される。そのため、あるリングに属する通信装置は、運用系FDBで学習したMACアドレスを他のリングに属する通信装置へ通知する。
【0016】
通信経路の切り替えは、リングに属する全通信装置のうちマスタ装置からトランジット装置への指示により実行される。指示を受けトランジット装置は、待機系FDBを運用系FDBへ切り替えてフレーム転送を行う。FDBは切り替え前に構築済みであるから、通信経路切り替え時のフラッディングは発生しない。
【実施例1】
【0017】
実施例1にかかるネットワークシステムは、リングネットワークにおいてデータVLANを2つ(データVLAN1,データVLAN2)用いる。リングネットワークを構成する各通信装置は、データVLAN1で適用されるFDBと、データVLAN2で適用されるFDBと、を有する。運用系の通信経路がデータVLAN1からデータVLAN2に切り替わると、運用系のFDBも、データVLAN1で適用されるFDBから、データVLAN2で適用されるFDBに切り替わる。
【0018】
(1-1)ネットワークシステムの構成
図1は、実施例1にかかるネットワークシステム100の構成例を示す説明図である。マスタ装置Maおよび複数のトランジット装置(
図1では、一例として2台のトランジット装置Mb,Mc)は、ユーザフレームを中継する通信装置であり、リングネットワークを構成する。
【0019】
マスタ装置Maは、2つのリングポートpa1,pa2とリングポートでないポート(以下、リング外ポートと称す。)pa3を有する。トランジット装置Mbは、2つのリングポートpb1,pb2とリング外ポートpb3を有する。トランジット装置Mcは、2つのリングポートpc1,pc2とリング外ポートpc3を有する。
【0020】
マスタ装置Maは、物理回線であるリンクLanによりネットワークNaに接続される。ネットワークNaには、たとえば、通信装置Na1が存在する。通信装置Na1のMACアドレスを、「aa‐aa‐aa‐00‐00‐11」とする。
【0021】
トランジット装置Mbは、物理回線であるリンクLbnによりネットワークNbに接続される。ネットワークNbには、たとえば、通信装置Nb1が存在する。通信装置Nb1のMACアドレスを、「bb‐bb‐bb‐00‐00‐11」とする。
【0022】
トランジット装置Mcは、物理回線であるリンクLcnによりネットワークNcに接続される。ネットワークNcには、たとえば、通信装置Nc1が存在する。通信装置Nc1のMACアドレスを、「cc‐cc‐cc‐00‐00‐11」とする。
【0023】
マスタ装置Maとトランジット装置Mbとの間では、マスタ装置Maのリングポートpa1とトランジット装置Mbのリングポートpb2とを接続する物理回線であるリンクLabにより通信経路が確保される。
【0024】
マスタ装置Maとトランジット装置Mcとの間では、マスタ装置Maのリングポートpa2とトランジット装置Mcのリングポートpc1とを接続する物理回線であるリンクLacにより通信経路が確保される。
【0025】
トランジット装置Mbとトランジット装置Mcとの間では、トランジット装置Mbのリングポートpb1とトランジット装置Mcのリングポートpc2とを接続する物理回線であるリンクLbcにより通信経路が確保される。
【0026】
すべての通信装置Ma,Mb,Mc間でリンクLab,Lbc,Lacが形成されると、ネットワーク構成はリング状になる。各リングポートpa1,pa2,pb1,pb2,pc1,pc2およびリンクLab,Lbc,Lacにより、ユーザフレームが流れるデータVLAN1およびデータVLAN2と、制御フレームが流れる制御VLAN3と、が設定される。
【0027】
リングの通信経路は、マスタ装置100により制御される。マスタ装置Maの一方のリングポートをプライマリポートと呼び、他方のリングポートをセカンダリポートと呼ぶ。プライマリポートはリングが正常であるとき、通信可能なフォワーディング状態になるリングポートである。セカンダリポートはリングが正常であるとき、ブロッキング状態となるリングポートである。プライマリポートとセカンダリポートはデータVLAN1,2毎に制御される。
【0028】
マスタ装置Maにおいては、データVLAN1では、リングポートpa1がプライマリポート111、リングポートpa2がセカンダリポート121となり、データVLAN2では、リングポートpa2がプライマリポート122、リングポートpa1がセカンダリポート112となる。
【0029】
これに対応して、データVLAN1では、トランジット装置Mbのリングポートpb2は、プライマリポート113となり、リングポートpb1は、プライマリポート115となる。また、データVLAN2では、トランジット装置Mcのリングポートpb2は、プライマリポート114となり、リングポートpb1は、プライマリポート116となる。
【0030】
同様に、VLAN1では、トランジット装置Mcのリングポートpc2は、プライマリポート117となり、リングポートpc1は、プライマリポート119となる。また、VLAN2では、トランジット装置Mcのリングポートpc2は、プライマリポート118となり、リングポートpc1は、プライマリポート120となる。
【0031】
データVLAN1とデータVLAN2の2つのデータVLANは、一方が運用系FDB、もう一方が待機系FDBとして動作する。通信装置Ma,Mb,McとネットワークNa,Nb,Ncとの通信はVLAN1で実行される。各通信装置Ma,Mb,Mcは、ユーザフレームのVLANタグを変換することで運用系FDBを切り替える。
【0032】
(1-2)リングに属する通信装置の構成
図2は、実施例1にかかる通信装置200(マスタ装置Maおよびトランジット装置Mb,Mc)のモジュール構成例を示すブロック図である。通信装置200は、物理的にメモリ210、CPU(Central Processing Unit)220、CAM(Content Addressable Memory)230、データ転送系ASIC(Application Specific Integrated Circuit)240、カプセル化系ASIC250、ポート261~265から構成される。
【0033】
メモリ210は、CPU220が実行するプログラムを格納する。CPU220は、メモリ210に格納されたプログラムを実行する。CAM230は、FDBを格納し、FDBの検索を高速に実行する機能を有する。データ転送系ASIC240は、主にフレームの転送を担う。カプセル化系ASIC250は、フレームのカプセル化およびデカプセル化を担う。
【0034】
ポート261~265は、通信装置200外部とのインターフェースであり、他の通信装置200とのフレーム送受信を行う。ポート261~265のうち、ポート261,262をリングポート、ポート263~265をリング外ポートとする。たとえば、通信装置200がマスタ装置Maである場合、ポート261がポートPa1、ポート262がポートPa2、ポート263~265のいずれか1つが、ポートPa3に対応する。
【0035】
通信装置200がトランジット装置Mbである場合、ポート261がポートPb1、ポート262がポートPb2、ポート263~265のいずれか1つが、ポートPb3に対応する。通信装置200がトランジット装置Mcである場合、ポート261がポートPc1、ポート262がポートPc2、ポート263~265のいずれか1つが、ポートPc3に対応する。
【0036】
上記の物理的な構成要素で、実施例1に必要な次の機能が動作する。メモリ210にはリング制御プログラム211と装置管理プログラム214が展開されている。CAM230が持つFDBは論理的に2つのFDB231,232を含む。FDB231,232は、転送先に転送するポートのポート番号と転送先のMACアドレスの組をエントリとして有する。転送系ASIC240は、転送エンジン241を有する。カプセル化系ASIC250は、フレームカプセリング・デカプセリング機能251を有する。
【0037】
以下、各構成要素について詳述する。なお、「プログラム」を主語(動作主体)として説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリおよびポートを用いながら行うため、プロセッサを主語とした説明としてもよい。
【0038】
リング制御プログラム211は、リング負荷制御プログラム212とFDB制御プログラム213とを有する。リング負荷制御プログラム212は、リングの状態を監視し、トラフィック量の情報に従ってリングの構成を制御する。FDB制御プログラム213は、CAM230に登録されるFDB231,232のエントリを管理する。具体的には、転送エンジン241が、待機系FDBの構築と、転送エンジン241のVLANタグ変換機能242とを用いて、ユーザフレームの転送で参照するFDBの制御を担う。
【0039】
装置管理プログラム214は、転送エンジン241やポート261~265のリンク状態を制御する。CAM230が保持するFDB231,232はそれぞれ、データVLAN1、データVLAN2のFDBである。一方のFDBが運用系FDB、他方のFDBが待機系FDBとなる。
【0040】
転送エンジン241は、MACアドレス学習、MACアドレスクリア、およびフレームの転送を行う。また、転送エンジン241は、VLANタグ変換機能242とMACアドレス通知機能243とを有する。転送エンジン241は、フレームを受信するとCAM230の運用系FDBを検索し、受信フレームの送信元MACアドレスが運用系FDBに登録されているか確認する。運用系FDBに登録されていなければ、運用系FDBに当該送信元MACアドレスを登録する(MACアドレス学習)。
【0041】
また、転送エンジン241は、受信フレームの送信先MACアドレスを運用系FDBから検索し、登録された情報に従ってフレーム転送する。運用系FDBに登録されたMACアドレスは保持時間に制限があり、保持時間が満了となると削除される(MACアドレスクリア)。なお、MACアドレスクリアは、リングプロトコルによる経路変更やユーザの操作でも実行可能である。
【0042】
VLANタグ変換機能242は、転送エンジン241が転送するフレームのVLANタグを書き換える。VLANタグ変換機能242により変換されたVLANタグの変換先のVLAN IDが、運用系FDBとなる。VLANタグ変換機能242を使用してリング制御プログラム211のFDB制御プログラム213が、運用系FDBを決定する。
【0043】
MACアドレス通知機能243は、MACアドレス学習時とMACアドレスクリア時に、MACアドレス学習またはMACアドレスクリアの対象となるMACアドレスを、CPU220(リング制御プログラム211のFDB制御プログラム213)へ通知する。
【0044】
フレームカプセリング・デカプセリング機能251は、リングを流れるトラフィック量を計測するため、リングポート261,262で受信したユーザフレームや、リングポート261,262から送信するユーザフレームにヘッダを追加したり追加されたヘッダを削除したりする。また、フレームカプセリング・デカプセリング機能251は、ユーザフレームに付与した情報から各経路の統計を取得する。
【0045】
図3は、MACアドレス学習完了後に通信装置200が保持するFDBの一例を示す説明図である。(A)は、マスタ装置Ma内のFDB231,232を示す(以下、FDB231a,232aと称す)。(B)は、トランジット装置Mb内のFDB231,232を示す(以下、FDB231b,232bと称す)。(C)は、トランジット装置Mc内のFDB231,232を示す(以下、FDB231c,232cと称す)。データVLAN1が運用系FDB231a,231b,231c、データVLAN2が待機系FDB232a,232b,232cとする。
【0046】
(1-3)制御フレーム
図4は、実施例1にかかる制御フレームのフォーマットを示す説明図である。制御フレーム401は、リングを構成する通信装置間でリングの制御に関する情報を伝達するために使用する。制御フレーム401は、DMAC(Destination Media Access Control)アドレス403、SMAC(ステップSource Media Access Control)アドレス404、VLANタグ405、EtherType406、リングID407、種別408、シーケンス番号409、データ領域410、FCS(Frame Check Sequence)411を有する。
【0047】
DMACアドレス403には、送信先のMACアドレスが格納され、SMACアドレス404には、送信元のMACアドレスが格納される。VLANタグ405には、制御フレームの転送先に指定された制御VLAN3のVLAN IDが格納される。EtherType406には、上位プロトコルを識別するための番号が格納され、制御フレーム401においては、リングプロトコルであることを示す情報が格納される。
【0048】
リングID407には、制御フレーム401が属するリングを一意に特定するIDが格納される。1つの通信装置200に複数のリングIDが設定された場合に、制御フレーム401が制御対象としているリングを識別するために使用される。
【0049】
種別408には、制御フレーム401の種別312が格納される。シーケンス番号409には、制御フレーム401の送信順序を示すシーケンス番号が格納される。データ領域410は、制御フレーム401の種別に応じた情報313が格納される。FCS411には、受信したフレームに誤りがないか調べるために付加されるデータが格納される。
【0050】
また、種別408には、待機系MACアドレス追加414、待機系MACアドレス削除415、切替指示416が格納される。種別408にMACアドレス追加414またはMACアドレス削除415が格納された制御フレーム401は、データ領域410にMACアドレスが格納される。データ領域410に格納されたMACアドレスは、待機系FDB232a,232b,232cの構築に使われる。
【0051】
種別408に切替指示416が格納された制御フレーム401は、データ領域410にVLAN IDが格納される。データ領域410に格納されたVLAN IDは、切り替え後に使用するFDBのVLAN IDである。
【0052】
(1-4)全体の処理
ネットワークシステム100は、リング構成におけるマスタ装置Maのプライマリポートの切り替えに際し、切り替え後のFDBを待機系FDBとして切り替え前に構築すること、および、リングを流れるユーザフレームの転送に使用する運用系FDBを待機系FDBに切り替えることである。以下にリングネットワーク全体の処理(装置間シーケンス)を概説する。
【0053】
リングネットワークの運用開始時、通信装置200は、ユーザフレーム転送用の運用系FDBと待機系FDBとを決める。運用系FDBおよび待機系FDBの各VLAN IDの初期値(リングネットワーク運用開始時の値)は、全通信装置Ma,Mb,Mbで一致する値であれば、どのような方式でもよい。ユーザが通信装置200に対して設定する方式でもよいし、マスタ装置Maが決定する方式でもよい。
【0054】
通信装置200は、待機系FDBの構築をMACアドレス学習またはMACアドレスクリアした際に実行する。該当する通信装置200は、学習またはクリアしたMACアドレスを含む制御フレーム401を他の通信装置200へ通知する。
【0055】
学習したMACアドレスを含む制御フレーム401とは、種別408の待機系MACアドレス追加414のデータ領域410に学習したMACアドレスを含む制御フレーム(以降、「待機系MACアドレス追加414の制御フレーム」と称す。)401である。クリアしたMACアドレスを含む制御フレーム401とは、種別408の待機系MACアドレス削除415のデータ領域410にクリアしたMACアドレスを含む制御フレーム(以降、「待機系MACアドレス削除415の制御フレーム」と称す。)401である。
【0056】
当該制御フレーム401を受信した通信装置200は、通知されたMACアドレスを待機系FDBへ登録(学習の場合)または削除(クリアの場合)する。マスタ装置Maとトランジット装置Mb,Mcで制御フレーム401の受信後の処理が異なる。
【0057】
リングネットワークを構成する全通信装置Ma,Mb,Mcは、フレームカプセリング・デカプセリング機能251を使用し、リングを流れるトラフィック量を測定する。各通信装置Mb,Mcが測定したトラフィック量は、マスタ装置Maに収集される。マスタ装置Maは、トラフィック量からプライマリポートの切り替え要否を判断する。
【0058】
マスタ装置Maは、プライマリポート(フォワーディング状態)の切替指示416の制御フレーム401を、トランジット装置Mb,Mcに送信する。切替指示416の制御フレーム401とは、種別408のプライマリポート(フォワーディング状態)の切替指示416のデータ領域410にVLAN IDを含む制御フレームである。
【0059】
トランジット装置Mb,Mcは、運用系FDBを、制御フレーム401で指示されたVLAN IDで特定されるFDBに切り替える。たとえば、運用系FDBがデータVLAN1のFDB231b,231cで、制御フレーム401で指示されたVLAN IDが「2」である場合、トランジット装置Mb,Mcは、運用系FDBをデータVLAN2のFDB232b,232cに切り替える。以下、これら待機系FDB構築と通信経路切り替えにおけるリングネットワーク全体の処理(装置間シーケンス)について詳述する。
【0060】
なお、運用系FDBをデータVLAN1のFDB231、待機系FDBをデータVLAN2のFDB232とする。すなわち、マスタ装置Maにおいて、運用系FDBがデータVLAN1の場合、運用系FDBのセカンダリポートはリングポートpa2、運用系FDBがデータVLAN2の場合、リングポートpa1となる。
【0061】
(1-4-1)マスタ装置MaにおけるMACアドレス学習およびMACアドレスクリア
図5は、マスタ装置Maのリング外ポートでMACアドレス学習およびMACアドレスクリアした場合のリングネットワーク全体の処理を示す装置間シーケンス図である。
【0062】
マスタ装置Maは、マスタ装置Maのリング外ポートpa3でMACアドレス学習により運用系FDB(FDB231a)にMACアドレスを登録、またはMACアドレスクリアにより運用系FDB(FDB231a)からMACアドレスを削除する(ステップS501)。
【0063】
MACアドレスを登録または削除した場合(ステップS501)、マスタ装置Maは、待機系FDB(FDB232a)にMACアドレスを登録、または待機系FDB(FDB232a)からMACアドレスを削除する(ステップS502)。そして、マスタ装置Maは、待機系MACアドレス追加414または待機系MACアドレス削除415の制御フレーム401(以下、制御フレーム504)を、運用系FDB(FDB231a)で特定されるデータVLAN1でブロッキング状態であるセカンダリポート121(pa2)から送信する(ステップS503)。
【0064】
制御フレーム504をセカンダリポート121(pa2)から送信する理由は、運用系FDB(FDB231a)のセカンダリポート121(pa2)が、通信経路切替後のプライマリポート122となるためである。通信経路切替後に通信可能になるポートを使用してフレーム転送できるFDBを構築するために、運用系FDBのセカンダリポートからFDB構築用の制御フレーム504が送信される。
【0065】
制御フレーム504を受信したトランジット装置Mcは、通知されたMACアドレスを待機系FDB(FDB232c)へ登録、または待機系FDB(FDB232c)から削除する(ステップS505)。
【0066】
MACアドレスを登録または削除した場合(ステップS505)、トランジット装置Mcは、その制御フレーム504(以下、制御フレーム507)を、受信したリングポートpc1(119)とは別のリングポートpc2(117)から送信する(ステップS506)。
【0067】
その制御フレーム504を受信したトランジット装置Mbは、通知されたMACアドレスを待機系FDB(FDB232b)へ登録、または待機系FDB(FDB232b)から削除する(ステップS508)。
【0068】
MACアドレスを登録または削除した場合(ステップS508)、トランジット装置Mbは、その制御フレーム507(以下、制御フレーム510)を、受信したリングポートpb1(115)とは別のリングポートpb1(113)から転送する(ステップS509)。制御フレーム510は最終的にマスタ装置Maに到達する。マスタ装置Maは、リングポートpa1(111)で受信した制御フレーム510を廃棄する(ステップS511)。これにより、
図3の(A)に示すように、マスタ装置MaのFDB231a,232aが構築される。
【0069】
(1-4-2)トランジット装置におけるMACアドレス学習およびMACアドレスクリア
図6は、トランジット装置Mcのリング外ポートpc3でMACアドレス学習およびMACアドレスクリアした場合のリングネットワーク全体の処理を示す装置間シーケンス図である。トランジット装置Mcは、リング外ポートpc3でMACアドレス学習により運用系FDB(FDB231c)にMACアドレスを登録、またはMACアドレスクリアにより運用系FDB(FDB231c)からMACアドレスを削除する(ステップS601)。
【0070】
MACアドレスを登録または削除した場合(ステップS601)、トランジット装置Mcは、待機系FDB(FDB232c)にMACアドレスを登録、または待機系FDBからMACアドレスを削除する(ステップS602)。そして、トランジット装置Mcは、自装置Mcの全リングポートpc1,pc2から、待機系MACアドレス追加414または待機系MACアドレス削除415の制御フレーム401(以下、制御フレーム604,605)を送信する(ステップS603)。
【0071】
ただし、トランジット装置Mcは、自装置Mcの全リングポートpc1,pc2からMACアドレスを配布しているが、制御VLAN3を用いて全リングポートpc1,pc2から制御フレーム604,605を送信する。したがって、全リングポートpc1,pc2からの制御フレーム604,605の送信は、フラッディングには該当しない。
【0072】
制御フレーム605を受信したトランジット装置Mbは、前述(1-4-1)と同様、通知されたMACアドレスを待機系FDB(FDB232b)へ登録、または待機系FDB(FDB232b)から削除する(ステップS606)。
【0073】
MACアドレスを登録または削除した場合(ステップS606)、トランジット装置Mbは、その制御フレーム605(以下、制御フレーム608)を、受信したリングポートpb1(115)とは別のリングポートpb1(113)から転送する(ステップS607)。
【0074】
制御フレーム604,608を受信したマスタ装置Maは、その受信ポートが運用系FDB(FDB231a)のセカンダリポート(ブロッキング状態)である場合、待機系FDB(FDB232a)にMACアドレスを登録、または待機系FDB(FDB232a)から削除する(ステップS609)。受信ポートが運用系FDB(FDB231a)で特定されるデータVLANのプライマリポート(フォワーディング状態)である場合、制御フレーム401を廃棄する(ステップS610)。これにより、
図3の(B)(C)に示すように、トランジット装置MbのFDB231b,232bとトランジット装置McのFDB231c,232cが構築される。
【0075】
(1-4-4)通信経路の切り替え
図7は、通信経路切り替え時のリングネットワーク全体の処理を示す装置間シーケンス図である。一部の経路を流れるトラフィック量がポートの帯域に迫っており、なおかつトラフィックが流れる経路に偏りがある場合がある。
【0076】
マスタ装置Maは、リングの構成変更によるトラフィックの平滑化のため、通信経路の切り替えが必要と判断する。その場合、まず、マスタ装置Maは、運用系FDBを切り替える(ステップS701)。具体的には、たとえば、データVLANのVLAN IDを切り替える。詳細は(1-5-5)で後述する。
【0077】
つぎに、マスタ装置Maは、切替指示416の制御フレーム401(以下、制御フレーム703)を全リングポート(pa1とpa2)から送信する(ステップS702)。ただし、
図7では、説明上、マスタ装置Maによるリングポートpa2からの制御フレーム703の送信を省略している。制御フレーム703を受信したトランジット装置Mbは、運用系FDBを制御フレーム703で指示されたVLAN IDのFDBに切り替える(ステップS704)。詳細は(1-5-6)で後述する。
【0078】
つぎに、トランジット装置Mbは、制御フレーム703を受信したポートとは別のリングポートから制御フレーム703(以下、制御フレーム706)を転送する(ステップS705)。制御フレーム706を受信したトランジット装置Mcは、運用系FDBを制御フレーム706で指示されたVLAN IDのFDBに切り替える(ステップS707)。詳細は(1-5-6)で後述する。
【0079】
つぎに、トランジット装置Mbは、制御フレーム706を受信したポートとは別のリングポートから、制御フレーム706(以下、制御フレーム709)を転送する(ステップS708)。最終的にマスタ装置Maへ制御フレーム709がマスタ装置Maに返ってくるが、マスタ装置Maは制御フレーム709を廃棄する(ステップS710)。
【0080】
(1-5)通信装置200内の処理例
つぎに、通信装置200内のシーケンスを説明する。
【0081】
(1-5-1)MACアドレス学習
図8は、MACアドレス学習時の通信装置200内のシーケンス図である。
図8は、
図5のS501からS503、および、
図6のS601からS603における処理の詳細を示す。通信装置200は、ポート261~265でユーザフレームを受信し、転送エンジン241は、受信したポートのポート番号およびMACアドレスを運用系FDBに登録する(ステップS801)。
【0082】
転送エンジン241は、ユーザフレームを転送した後(ステップS802)、登録したMACアドレスをCPU(リング制御プログラム211)220へ通知する(ステップS803)。CPU(リング制御プログラム211のFDB制御プログラム213)220は、ステップS801でMACアドレスを学習したポートがリングポート261,262であるか確認する(ステップS804)。リングポート261,262である場合(ステップS804:Yes)、何も処理をしない。
【0083】
MACアドレスを学習したポートがリングポート261,262ではない場合(ステップS804:No)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、そのユーザフレームを受信したポートのポート番号およびMACアドレスを待機系FDBに登録する(ステップS805)。
【0084】
つぎに、CPU(リング制御プログラム211のFDB制御プログラム213)220は、その通信装置200の役割を確認する(ステップS806)。通信装置200がマスタ装置Maである場合(ステップS806:マスタ)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、運用系VLANのセカンダリポート(ブロッキング状態)から、ステップS805で登録されたMACアドレスをデータ領域410に含む待機系MACアドレス追加414の制御フレーム401を送信する(ステップS807)。
【0085】
その通信装置200がトランジット装置Mb,Mcである場合(ステップS806:トランジット)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、全リングポート261,262から、ステップS805で登録されたMACアドレスをデータ領域410に含む待機系MACアドレス追加414の制御フレーム401を送信する(ステップS808)。
【0086】
(1-5-2)MACアドレスクリア
図9は、MACアドレスクリア時の通信装置200内のシーケンス図である。
図9は、
図5のS501からS503、および、
図6のS601からS603における処理の詳細を示す。通信装置200は、転送エンジン241でMACアドレスの保持時間満了、またはリングプロトコルによる経路変更(リング外ポートからの待機系MACアドレス削除415の制御フレームの受信を含む)やユーザにより削除の操作を検出する(ステップS901)。
【0087】
MACアドレスの保持時間満了または削除操作が検出された場合(ステップS901)、転送エンジン241は、運用系FDBからMACアドレスを削除し(ステップS902)、CPU(リング制御プログラム211)220へMACアドレスクリアを通知する(ステップS903)。
【0088】
CPU(リング制御プログラム211のFDB制御プログラム213)220は、ステップS902で削除したMACアドレスクリアに対応するポート(MACアドレスクリアしたポート)がリングポート261,262であるか確認する(ステップS904)。リングポート261,262であった場合(ステップS904:Yes)、何も処理しない。
【0089】
一方、MACアドレスクリアしたポートがリングポート261,262ではない場合(ステップS904:No)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系FDBからMACアドレスクリアしたポートのポート番号およびMACアドレスクリアされたMACアドレスを削除する(ステップS905)。
【0090】
つぎに、CPU(リング制御プログラム211)220は、その通信装置200の役割を確認する(ステップS906)。その通信装置200がマスタ装置Maである場合(ステップS906:マスタ)、CPU(FDB制御プログラム213)220は、運用系FDBのセカンダリポート(ブロッキング状態)から、MACアドレスクリアされたMACアドレスをデータ領域410に含む待機系MACアドレス削除415の制御フレーム401を送信する(ステップS907)。その通信装置200がトランジット装置Mb,Mcである場合(ステップS906:トランジット)、CPU(リング制御プログラム211)220は、全リングポート261,262から、MACアドレスクリアされたMACアドレスをデータ領域410に含む待機系MACアドレス削除415の制御フレーム401を送信する(ステップS908)。
【0091】
(1-5-3)待機系MACアドレス追加414の制御フレーム401の受信
図10は、待機系MACアドレス追加414の制御フレーム401の受信時の通信装置200内のシーケンス図である。
図10は、
図5のS505からS506、S508からS509、S511、および、
図6のS606からS607、S609からS610における処理の詳細を示す。
【0092】
待機系MACアドレス追加414の制御フレーム401を受信すると、転送エンジン241は、CPU(リング制御プログラム211)220へ待機系MACアドレス追加414の制御フレーム401を転送する(ステップS1001)。CPU(リング制御プログラム211のFDB制御プログラム213)220は、その通信装置200の役割を確認する(ステップS1002)。
【0093】
その通信装置200がマスタ装置Maである場合(ステップS1002:マスタ)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系MACアドレス追加414の制御フレーム401を受信したポートの種別を確認する(ステップS1003)。
【0094】
待機系MACアドレス追加414の制御フレーム401を受信したポートの種別が運用系FDBのプライマリポート(フォワーディング状態)である場合(ステップS1003:プライマリポート)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、MACアドレス追加414の制御フレーム401を廃棄する(ステップS1004)。
【0095】
セカンダリポート(ブロッキング状態)である場合(ステップS1003:セカンダリポート)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系MACアドレス追加414の制御フレーム401のデータ領域410に含まれるAMACアドレスを待機系FDBに登録する(ステップS1005)。
【0096】
CPU(リング制御プログラム211のFDB制御プログラム213)220は、その通信装置200の役割を確認(ステップS1002)した結果、その通信装置200がトランジット装置Mb,Mcである場合(ステップS1002:トランジット)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系MACアドレス追加414の制御フレーム401のデータ領域410に含まれるMACアドレスを待機系FDBに登録する(ステップS1006)。
【0097】
つぎに、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系MACアドレス追加414の制御フレーム401を受信したポートではないリングポートから、待機系MACアドレス追加414の制御フレーム401を送信する(ステップS1007)。
【0098】
(1-5-4)待機系MACアドレス削除415の制御フレーム401の受信
図11は、待機系MACアドレス削除415の制御フレーム401の受信時の通信装置200内のシーケンス図である。
図11は、
図5のS505からS506、S508からS509、および、
図6のS606からS607、S609からS610における処理の詳細を示す。
【0099】
待機系MACアドレス削除415の制御フレーム401を受信すると、転送エンジン241は、CPU(リング制御プログラム211)220に待機系MACアドレス削除415の制御フレーム401を転送する(ステップS1101)。CPU(リング制御プログラム211のFDB制御プログラム213)220は、その通信装置200の役割を確認する(ステップS1102)。その通信装置200がマスタ装置Maである場合(ステップS1102:マスタ)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、待機系MACアドレス削除415の制御フレーム401を受信したポートの種別を確認する(ステップS1103)。
【0100】
待機系MACアドレス削除415の制御フレーム401を受信したポートの種別が運用系FDBのプライマリポート(フォワーディング状態)である場合(ステップS1103:プライマリポート)、CPU(リング制御プログラム211)220は、待機系MACアドレス削除415の制御フレーム401を廃棄する(ステップS1104)。セカンダリポート(ブロッキング状態)である場合(ステップS1103:セカンダリポート)、CPU(FDB制御プログラム)220は、待機系FDBから待機系MACアドレス削除415のデータ領域401に存在するMACアドレスおよびそのポート番号を削除する(ステップS1105)。
【0101】
その通信装置200の役割を確認(ステップS1102)した結果、トランジット装置である場合(ステップS1102:トランジット)、CPU(FDB制御プログラム)220は、待機系FDBから待機系MACアドレス削除415のデータ領域401に存在するMACアドレスを削除する(ステップS1106)。つぎに、CPU(FDB制御プログラム)220は、待機系MACアドレス削除415の制御フレーム401を受信したポートではないリングポートから、待機系MACアドレス削除415の制御フレーム401を送信する(ステップS1107)。
【0102】
(1-5-5)マスタ装置Maにおける通信経路切り替え処理
図12は、実施例1にかかる通信経路切替時におけるマスタ装置Ma内のシーケンス図である。
図12は、
図7のS701からS702における処理の詳細を示す。まず、CPU(リング制御プログラム211のリング負荷制御プログラム212)220は、プライマリポート(フォワーディング状態)の切り替えタイミングを決める(ステップS1201)。CPU(FDB制御プログラム213)220は、VLANタグ変換を設定し、運用系FDBを切り替える(ステップS1202)。運用系FDBの切り替え処理の詳細は(1-5-8)で説明する。その後、CPU(FDB制御プログラム213)220は、切替指示416の制御フレーム401を送信する(ステップS1203)。
【0103】
(1-5-6)切替指示416の制御フレーム401の受信
図13は、実施例1にかかる切替指示416の制御フレーム401受信時の通信装置200内のシーケンス図である。
図13は、
図6のS704からS705、S707からS708、S710における処理の詳細を示す。切替指示416の制御フレーム401を受信すると、転送エンジン241は、CPU(リング制御プログラム211)220に切替指示416の制御フレーム401を転送する(ステップS1301)。
【0104】
CPU(リング制御プログラム211のFDB制御プログラム213)220は、その通信装置200の役割を確認する(ステップS1302)。その通信装置200がマスタ装置Maである場合(ステップS1302:マスタ)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、切替指示416の制御フレーム401を廃棄する(ステップS1303)。
【0105】
その通信装置200がトランジット装置Mb,Mcである場合(ステップS1302:トランジット)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、切替先のFDBを確認する(ステップS1304)。切替先のFDBが待機系の場合(ステップS1304:待機系)、CPU(FDB制御プログラム213)220は、VLANタグ変換を設定し、運用系FDBを切替指示416の制御フレーム401で指示されたVLAN IDのVLANに切り替える(ステップS1305)。
【0106】
運用系FDBの切替処理の詳細は(1-5-8)で説明する。その後、CPU(FDB制御プログラム213)220は、切替指示416の制御フレーム401を受信したポートではないリングポートから切替指示416の制御フレーム401を送信する(ステップS1306)。切替先のFDBが運用系の場合(ステップS1304:運用系)、CPU(FDB制御プログラム213)220は、切替指示416の制御フレーム401を受信したポートではないリングポートから、切替指示416の制御フレーム401を送信する(ステップS1307)。
【0107】
(1-5-7)ユーザフレームの転送
実施例1の通信装置200は、2つのデータVLANでFDBを二重化するため、リング外ポート263~265とリングポート261,262のVLAN IDが不一致となる場合がある。そのため、ユーザフレームを転送するいくつかのパターンでVLANタグの変換が必要になる。ユーザフレーム転送パターンは、下記の8つとなる。
【0108】
1.リング外ポート263~265とリングポート261,262でVLAN IDが異なる場合に、通信装置200は、リング外ポート263~265からリングポート261,262にユーザフレームを転送する。
【0109】
2.リング外ポート263~265とリングポート261,262でVLAN IDが異なる場合に、通信装置200は、リングポート261,262からリング外ポート263~265にユーザフレームを転送する。
【0110】
3.リング外ポート263~265とリングポート261,262でVLAN IDが異なる場合に、通信装置200は、リング外ポート263~265からリング外ポート263~265にユーザフレームを転送する。
【0111】
4.リング外ポート263~265とリングポート261,262でVLAN IDが異なる場合に、通信装置200は、リングポート261,262からリングポート261,262にユーザフレームを転送する。
【0112】
5.リング外ポート263~265とリングポート261,262でVLAN IDが同じ場合に、通信装置200は、リング外ポート263~265からリングポート261,262にユーザフレームを転送する。
【0113】
6.リング外ポート263~265とリングポート261,262でVLAN IDが同じ場合に、通信装置200は、リングポート261,262からリング外ポート263~265にユーザフレームを転送する。
【0114】
7.リング外ポート263~265とリングポート261,262でVLAN IDが同じ場合に、通信装置200は、リング外ポート263~265からリング外ポート263~265にユーザフレームを転送する。
【0115】
8.リング外ポート263~265とリングポート261,262でVLAN IDが同じ場合に、通信装置200は、リングポート261,262からリングポート261,262にユーザフレームを転送する。
【0116】
ユーザフレーム転送パターン1~8のうち、ユーザフレーム転送パターン4~8についてはフレーム転送時のVLANタグ変換は不要であり、一般的なフレーム転送と変わらないため、説明を省く。ユーザフレーム転送パターン1~3の通信装置200内シーケンスについて、
図14~
図16で述べる。
【0117】
図14は、ユーザフレーム転送パターン1における通信装置200内のシーケンス図である。ここでは、データVLAN1に属するリング外ポート263~265から、データVLAN2に属するリングポート261,262にユーザフレームを転送する場合について説明する。
【0118】
転送エンジン241は、リング外ポート263~265で受信したユーザフレームのVLANタグ405を、データVLAN1からデータVLAN2に変換する(ステップS1401)。転送エンジン241は、変換後のデータVLAN2のFDB232を参照し、ユーザフレームの宛先のMACアドレスとそのリングポート261,262のポート番号を特定する(ステップS1402)。これにより、転送エンジン241は、データVLAN1に属するリング外ポート263~265で受信したユーザフレームをデータVLAN2に属するリングポート261,262に転送する。
【0119】
図15は、ユーザフレーム転送パターン2における通信装置200内のシーケンス図である。ここでは、データVLAN2に属するリングポート261,262からデータVLAN1に属するリング外ポート263~265に、ユーザフレームを転送する場合について説明する。
【0120】
転送エンジン241は、リングポート261,262で受信したユーザフレームを、変換前のデータVLAN2のFDB232を参照し、ユーザフレームの宛先のMACアドレスとそのリング外ポート263~265のポート番号を特定する(ステップS1501)。転送エンジン241は、VLANタグ405をデータVLAN2からデータVLAN1に変換して、VLANタグ405の変換後のユーザフレームを、リング外ポート263~265へ転送する(ステップS1502)。
【0121】
図16は、ユーザフレーム転送パターン3における通信装置200内のシーケンス図である。ここでは、データVLAN1に属するリング外ポート263~265から、データVLAN1に属する他のリング外ポート263~265にユーザフレームを転送する場合について説明する。
【0122】
転送エンジン241は、リング外ポート263~265で受信したユーザフレームのVLANタグ405を、データVLAN1からデータVLAN2に変換する(ステップS1601)。転送エンジン241は、ステップS1601の変換後のデータVLAN2のFDB232を参照し、ユーザフレームの宛先のMACアドレスとそのリング外ポート263~265のポート番号を特定する(ステップS1602)。再度、転送エンジン241は、VLANタグ405をデータVLAN2からデータVLAN1に変換し、ステップS1602で特定したリング外ポート263~265にユーザフレームを転送する(ステップS1603)。
【0123】
(1-5-8)運用系FDBの切り替え
図17は、運用系FDBの切り替え処理の装置内シーケンスである。運用系FDBの切り替え処理とは、
図7のS701、S704、S707、および、後述する
図18のS1811における処理である。
【0124】
運用系FDBを切り替える際、CPU(リング制御プログラム211のFDB制御プログラム213)220は、転送エンジン241に対して切り替え後の運用系FDBのMACアドレス学習とMACアドレス保持時間の監視を有効に設定する(ステップS1701)。つぎに、CPU(リング制御プログラム211のFDB制御プログラム213)220は、転送エンジン241に対して切り替え後の待機系FDBのMACアドレス学習とMACアドレス保持時間の監視を無効に設定する(ステップS1702)。
【0125】
その後、CPU(リング制御プログラム211のFDB制御プログラム213)220は、切り替え後の運用系FDBのVLAN IDを確認する(ステップS1703)。切り替え後の運用系FDBのVLAN IDがリング外ポート263~265のVLAN IDと一致する場合(ステップS1703:一致)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、転送エンジン241のVLANタグ変換機能242に対し、リング外ポート263~265の受信および送信のVLANタグ変換を無効に設定する(ステップS1704)。
【0126】
切り替え後の運用系FDBのVLAN IDがリング外ポート263~265のVLAN IDと不一致となる場合(ステップS1703:不一致)、CPU(リング制御プログラム211のFDB制御プログラム213)220は、転送エンジン241のVLANタグ変換機能242に対し、リング外ポート263~265の受信時のVLANタグ変換先のVLAN IDを切り替え後の運用系FDBのVLAN IDに設定する(ステップS1705)。
【0127】
つぎに、CPU(リング制御プログラム211のFDB制御プログラム213)220は、転送エンジン241のVLANタグ変換機能242に対し、リング外ポート263~265の送信のVLANタグ変換先のVLAN IDをリング外ポート263~265のVLAN IDに設定する(ステップS1706)。この処理を行った後、切り替え後の待機系FDBは、運用系であった時のFDBを保持したまま動作を継続する。
【0128】
[1] このように、実施例1にかかる通信装置200は、記憶部(CAM230)と、制御部(リング制御プログラム211)とを有する。記憶部(CAM230)は、リングネットワーク内でユーザフレームが送受信される第1仮想ネットワーク(データVLAN1)についてMACアドレスおよびポート番号の組み合わせを登録可能な第1転送先情報(FDB231)と、リングネットワーク内でユーザフレームが送受信される第2仮想ネットワーク(データVLAN2)についてMACアドレスおよびポート番号の組み合わせを登録可能な第2転送先情報(FDB232)と、を有する。制御部(リング制御プログラム211)は、運用系の仮想ネットワークを第1仮想ネットワーク(データVLAN1)から第2仮想ネットワーク(データVLAN2)に切り替える場合に、運用系の仮想ネットワークに適用される転送先情報を、第1転送先情報(FDB231)から前記第2転送先情報(FDB232)に切り替える。
【0129】
これにより、第2転送先情報(FDB232)は切替前に構築済みであるから、ブロッキングポート変更の際に、通信経路(運用系の仮想ネットワーク)切替時のフラッディングを発生させないようにして、トラフィック量を抑制することができる。
【0130】
[2] 上記[1]の通信装置200において、制御部(リング制御プログラム211)は、自装置200が通信装置群を管理するマスタ装置Maである場合、リングネットワーク内でリングネットワークを制御する制御フレーム401が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、転送先情報の切替指示(切替先の仮想ネットワークの識別情報(たとえば、VLAN ID))を含む制御フレーム703を転送先の他の通信装置(トランジット装置Mb)に送信する。
【0131】
これにより、トランジット装置Mbは、運用系の仮想ネットワークに適用される転送先情報を、第1転送先情報(FDB231)から前記第2転送先情報(FDB232)に切り替えることができる。
【0132】
[3] 上記[2]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるプライマリポートで切替指示を含む制御フレーム709を受信した場合に、切替指示を含む制御フレーム709を廃棄する。
【0133】
これにより、切替指示を含む制御フレーム709の無限循環を防止することができる。
【0134】
[4] 上記[1]の通信装置200において、制御部(リング制御プログラム211)は、リングネットワーク内でリングネットワークを制御する制御フレーム401が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、通信装置群を管理するマスタ装置Maが生成した転送先情報の切替指示を含む制御フレーム(703、706)を受信した場合、運用系の仮想ネットワークに適用される転送先情報を、第1転送先情報(FDB231)から第2転送先情報(FDB232)に切り替えるとともに、前記切替指示を含む制御フレーム(703、706)を、転送先の他の通信装置(Mb,Ma)に送信する。
【0135】
これにより、リングネットワーク内の各トランジット装置でFDBの切替を実現することができる。
【0136】
[5] 上記[1]の通信装置200は、リング外ポート263~265から、送信元MACアドレスを含むフレームを受信すると、送信元MACアドレスとポート263~265のポート番号との組み合わせを第1転送先情報(FDB231)に登録する学習部(転送エンジン241)を有する。制御部(リング制御プログラム211)は、学習部(転送エンジン241)による学習結果を第2転送先情報(FDB232)に登録するとともに、リングネットワーク内でリングネットワークを制御する制御フレーム401が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、第2転送先情報(FDB232)への学習結果の追加指示を含む制御フレーム(504,507,510)を、転送先の他の通信装置に送信する。
【0137】
これにより、通信経路の切替前に、自装置の第1転送先情報(FDB231)のMACアドレスの学習結果を、自装置および他装置の第2転送先情報(FDB232)に反映することができる。
【0138】
[6] 上記[5]の通信装置200において、制御部(リング制御プログラム211)は、自装置200が通信装置群を管理するマスタ装置Maである場合、追加指示を含む制御フレーム401を、運用系の仮想ネットワークのセカンダリポートから他の通信装置に送信する。
【0139】
これにより、通信経路切替後に通信可能になるポートを使用してフレーム転送できるFDBを構築することができる。
【0140】
[7] 上記[5]の通信装置200において、制御部(リング制御プログラム211)は、自装置200が通信装置群内のマスタ装置Maに管理されるトランジット装置Mb,Mcである場合、追加指示を含む制御フレームを受信すると、学習結果を第2転送先情報(FDB232)に登録する。
【0141】
これにより、他の通信装置からの制御フレームを受信した場合でも、第2転送先情報(FDB232)を学習することができる。
【0142】
[8] 上記[7]の通信装置200において、制御部(リング制御プログラム211)は、追加指示を含む制御フレームを、リングネットワーク内の全ポートから送信する。
【0143】
これにより、制御フレームを用いて学習対象のMACアドレスを配布することができる。
【0144】
[9] 上記[6]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるプライマリポートで追加指示を含む制御フレーム608を受信した場合に、追加指示を含む制御フレーム608を廃棄する。
【0145】
これにより、追加指示を含む制御フレーム608の無限循環を防止することができる。
【0146】
[10] 上記[6]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるセカンダリポートで追加指示を含む制御フレーム608を受信した場合に、第2転送先情報(FDB232)に学習結果を登録する。
【0147】
これにより、追加指示を含む制御フレーム608が廃棄されずに、第2転送先情報(FDB232)を学習することができる。
【0148】
[11] 上記[1]の通信装置200は、MACアドレスの削除指示を受けると、削除指示のMACアドレスと当該MACアドレスに対応するポートのポート番号との組み合わせを第1転送先情報(FDB231)から削除する学習部(転送エンジン241)を有する。制御部(リング制御プログラム211)は、学習部(転送エンジン241)によって削除された組み合わせを第2転送先情報(FDB232)から削除するとともに、リングネットワーク内でリングネットワークを制御する制御フレーム401が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、第2転送先情報(FDB232)からの削除された組み合わせの削除指示を含む制御フレーム(504,507,510,604,605,608)を、転送先の他の通信装置に送信する。
【0149】
これにより、通信経路の切替前に、自装置の第1転送先情報(FDB231)のMACアドレスのクリア結果を、自装置および他装置の第2転送先情報(FDB232)に反映することができる。
【0150】
[12] 上記[11]の通信装置200において、制御部(リング制御プログラム211)は、自装置が通信装置群を管理するマスタ装置Maである場合、削除指示を含む制御フレーム401を、運用系の仮想ネットワークのセカンダリポートから他の通信装置に送信する。
【0151】
これにより、通信経路切替後に通信可能になるポートを使用してフレーム転送できるFDBを構築することができる。
【0152】
[13] 上記[11]の通信装置200において、制御部(リング制御プログラム211)は、自装置が通信装置群内のマスタ装置Maに管理されるトランジット装置Mb,Mcである場合、削除指示を含む制御フレーム401を受信すると、削除された組み合わせを第2転送先情報(FDB232)から削除する。
【0153】
これにより、他の通信装置からの制御フレームを受信した場合でも、第2転送先情報(FDB232)を学習することができる。
【0154】
[14] 上記[13]の通信装置200において、制御部(リング制御プログラム211)は、削除指示を含む制御フレームを、リングネットワーク内の全ポートから送信する。
【0155】
これにより、制御フレームを用いて学習対象のMACアドレスを配布することができる。
【0156】
[15] 上記[12]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるプライマリポートで削除指示を含む制御フレーム510を受信した場合に、削除指示を含む制御フレーム510を廃棄する。
【0157】
これにより、削除指示を含む制御フレーム608の無限循環を防止することができる。
【0158】
[16] 上記[12]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるセカンダリポートで削除指示を含む制御フレーム510を受信した場合に、学習部によって削除された組み合わせを第2転送先情報(FDB232)から削除する。
【0159】
これにより、削除指示を含む制御フレーム608が廃棄されずに、第2転送先情報(FDB232)を学習することができる。
【実施例2】
【0160】
実施例1では、切替指示416の制御フレーム401を受信した通信装置200から運用系FDBを切り替える。このため、マスタ装置Maが通信経路およびFDBを切り替えてからリングネットワークの全通信装置200のFDBの切り替えが終わるまでの間、フレームロスが発生する。実施例2は、このフレームロスを緩和する。
【0161】
実施例1と実施例2の差分は、通信経路切替の方式である。実施例2では、通信装置200間で時刻が同期され、同一時刻に通信経路および運用系FDBが切り替えられる。実施例1との差分を中心に実施例2の詳細を述べ、実施例1と同一部分については同一符号を付してその説明を省略する。
【0162】
(2-1)リングに属する通信装置の構成
図18は、実施例2にかかる通信装置200のモジュール構成例を示すブロック図である。装置管理プログラム214は、時刻管理プログラム1801を持つ。時刻管理プログラム1801は通信装置200毎の時刻を管理し、NTP(Network Time Protocol)などで、通信装置200間の時刻を同期する。リング制御プログラム211は、時刻管理プログラム1801と連携する。時刻管理プログラム1801を除き、通信装置200のモジュール構成は実施例1と同一である。
【0163】
(2-2)制御フレームのフォーマット例
図19は、実施例2にかかる制御フレーム402のフォーマット例を示す説明図である。実施例2の制御フレーム402は、種別408の切替指示1901のデータ領域410にVLAN IDおよび切替時刻1902が格納される。この1点を除き、制御フレーム402は実施例1の制御フレーム401と同一である。
【0164】
(2-3)全体の処理
待機系FDBの構築方法は実施例1の(1-4-1)、(1-4-2)で示した構築方法と同じである。実施例1と実施例2の差分は通信経路の切替処理にある。以下、経路切り替え時の、リングネットワーク全体の処理を示す通信装置200間シーケンスについて詳述する。
【0165】
(2-3-1)通信経路の切替
図20は、実施例2にかかる通信経路切り替え時のリングネットワーク全体の処理を示す通信装置200間シーケンス図である。一部の経路を流れるトラフィック量がポートの帯域に迫っており、なおかつトラフィックが流れる経路に偏りがある場合、マスタ装置Maはリングの構成変更によるトラフィックの平滑化のため、通信経路切り替えが必要と判断する。その場合、マスタ装置Maは、経路切り替えの時刻を登録し(ステップS2001)、種別408の切替指示416にデータ領域410として切替先のVLAN IDおよび切替時刻が格納された制御フレーム402(以下、制御フレーム2003)をリングポート261,262から送信する(ステップS2002)。
【0166】
制御フレーム2003を受信したトランジット装置Mbは、経路の切替時刻を登録し(ステップS2004)、その制御フレーム2003を受信したポートとは別のリングポート261,262から、制御フレーム2003(以下、制御フレーム2006)を送信する(ステップS2005)。
【0167】
制御フレーム2006を受信したトランジット装置Mcは、経路の切替時刻を登録し(ステップS2007)、その制御フレーム2006を受信したポートとは別のリングポート261,262から、制御フレーム2006(以下、制御フレーム2009)を送信する(ステップS2008)。
【0168】
最終的にマスタ装置Maへ制御フレーム2009が返ってくるが、マスタ装置Maは制御フレーム2009を廃棄する(ステップS2010)。このあと、切替時刻が到来すると、リングネットワークを構成する全通信装置Ma、Mb、Mcは、運用系FDBを制御フレーム402で指示されたVLANに切り替える(ステップS2011)。
【0169】
(2-4)通信装置200内の処理
通信装置200内のシーケンスを説明する。
【0170】
(2-4-1)マスタ装置Maにおける通信経路切り替え処理
図21は、実施例2にかかる通信経路切り替え時におけるマスタ装置Ma内のシーケンス図である。
図21は、
図20のS2001からS2002、S2011における処理の詳細を示す。まず、CPU(リング制御プログラム211のリング負荷制御プログラム212)220がプライマリポートの切り替えタイミングを決定する(ステップS2101)。
【0171】
CPU(FDB制御プログラム213)220は、CPU(装置管理プログラム214の時刻管理プログラム1801)220に切替時刻を設定する(ステップS2102)。その後、CPU(FDB制御プログラム213)220は、切替指示1901の制御フレーム402を送信する(ステップS2103)。
【0172】
CPU(時刻管理プログラム1801)220は、CPU(FDB制御プログラム213)220に指定された時刻に通知する(ステップS2104)。通知を受けたCPU(時刻管理プログラム1801)220は、VLANタグ変換を設定し、運用系FDBを切り替える(ステップS2105)。運用系FDBの切替処理の詳細は、上記(1-5-8)で説明した通りである。
【0173】
(2-4-2)切替指示1901の制御フレーム402の受信
図22は、実施例2にかかる切替指示1901の制御フレーム402の受信時の通信装置200内シーケンスである。
図22は、
図20のS2004からS2005、S2007からS2008、S2010、S2011における処理の詳細を示す。切替指示1901の制御フレーム402を受信すると、転送エンジン241は、CPU(リング制御プログラム211)220に切替指示1901の制御フレーム402を転送する(ステップS2201)。
【0174】
CPU(リング制御プログラム211)220は、その通信装置200の役割を確認する(ステップS2202)。その通信装置200がマスタ装置Maである場合(ステップS2202:マスタ)、CPU(リング制御プログラム211)220は、切替指示1901の制御フレーム402を廃棄する(ステップS2203)。
【0175】
その通信装置200がトランジット装置である場合(ステップS2202:トランジット)、CPU(リング制御プログラム211)220は、切替先のFDBを確認する(ステップS2204)。切替先のFDBが待機系の場合(ステップS2204:待機系)、CPU(リング制御プログラム211)220は、CPU(装置管理プログラム214の時刻管理プログラム1801)220に切替時刻を設定する(ステップS2205)。
【0176】
その後、CPU(リング制御プログラム211)220は、切替指示1901の制御フレーム402を受信したポートではないリングポート261,262から、切替指示1901の制御フレーム402を送信する(ステップS2206)。
【0177】
CPU(リング制御プログラム211)220は、切替先のFDBが運用系の場合(ステップS2204:運用系)、切替指示1901の制御フレーム402を受信したポートではないリングポート261,262から、切替指示1901の制御フレーム402を送信する(ステップS2207)。
【0178】
CPU(時刻管理プログラム)220は、CPU(リング制御プログラム211)220に、指定された切替時刻が到来したことを通知する(ステップS2208)。通知を受けたCPU(リング制御プログラム211)220は、VLANタグ変換を設定し、運用系FDBを、切替指示1901の制御フレーム402で指示されたVLAN IDのVLANに切り替える(ステップS2209)。運用系FDBの切替処理の詳細は上記(1-5-8)で説明した通りである。
【0179】
[17] このように、実施例2にかかる通信装置200は、上記[1]の通信装置200において、制御部(リング制御プログラム211)は、通信装置群で共通する運用系の仮想ネットワークを第1仮想ネットワーク(データVLAN1)から第2仮想ネットワーク(データVLAN2)に切り替える切替時刻が到来した場合に、運用系の仮想ネットワークに適用される転送先情報を、第1転送先情報(FDB231)から前記第2転送先情報(FDB232)に切り替える。
【0180】
これにより、マスタ装置Maが通信経路およびFDBを切り替えてからリングネットワークの全通信装置200のFDBの切り替えが終わるまでの間に発生するフレームロスを緩和する。
【0181】
[18] 上記[17]の通信装置200において、制御部(リング制御プログラム211)は、自装置200が通信装置群を管理するマスタ装置Maである場合、リングネットワーク内でリングネットワークを制御する制御フレーム402が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、転送先情報の切替指示および切替時刻を含む制御フレーム2003を転送先となる他の通信装置(トランジット装置Mb)に送信する。
【0182】
これにより、トランジット装置Mbは、切替時刻が到来すると、運用系の仮想ネットワークに適用される転送先情報を、第1転送先情報(FDB231)から前記第2転送先情報(FDB232)に切り替えることができる。
【0183】
[19] 上記[18]の通信装置200において、制御部(リング制御プログラム211)は、運用系の仮想ネットワークにおけるプライマリポートで切替指示および切替時刻を含む制御フレーム2009を受信した場合に、切替指示および前記切替時刻を含む制御フレーム2009を廃棄する。
【0184】
これにより、切替指示および前記切替時刻を含む制御フレーム2009の無限循環を防止することができる。
【0185】
[20] 上記[17]の通信装置200において、制御部(リング制御プログラム211)は、リングネットワーク内でリングネットワークを制御する制御フレーム402が送受信される第3仮想ネットワーク(制御VLAN3)を用いて、通信装置群を管理するマスタ装置Maが生成した転送先情報の切替指示および切替時刻を含む制御フレーム(2003,2006)を受信した場合、切替指示および切替時刻を含む制御フレーム(2006,2009)を、切替時刻の到来前に、転送先の他の通信装置(Mb,Ma)に送信する。
【0186】
これにより、切替時刻が到来すると、リングネットワーク内の各トランジット装置でFDBの切替を実現することができる。
【符号の説明】
【0187】
100 ネットワークシステム
200 通信装置
211 リング制御プログラム
212 リング負荷制御プログラム
213 FDB制御プログラム
214 装置管理プログラム
231、232 FDB
241 転送エンジン
242 タグ変換機能
243 アドレス通知機能
251 フレームカプセリング・デカプセリング機能
261~265 ポート
401,402 制御フレーム
414 待機系MACアドレス追加
415 待機系MACアドレス削除
416,1901 切替指示
1801 時刻管理プログラム