L2スイッチング / MRP
Media Redundancy Protocol(MRP)は、リング構成のEthernetネットワークに特化したレイヤー2のループ防止・冗長化機能です。トポロジーを限定し、各スイッチの役割をあらかじめ固定しておくことで、障害の検出と経路の切り替えをより高速に行います。
この章では、MRPの概要と使用方法について説明します。
概要
MRPは、リング構成のEthernetネットワークでのみ動作します。このMRP用リング構成のネットワークを、MRPリングと呼びます。
MRPリングは、2つ以上のスイッチ(ノード)で構成されます。
各ノードは、2つのポートでMRPリングに接続します。
MRPリング内のノードのうち1つにMedia Redundancy Manager(MRM)という役割を設定します。
また、MRM以外のノードにはMedia Redundancy Client(MRC)という役割を設定します。
MRPリングは必ず1つのMRMと1つ以上のMRCで構成されます。
MRMではMRPリング用の2ポートのうち1つのポートで、データトラフィックの通信をブロッキングしており、リングに障害が発生したときだけフォワーディング状態に切り替わります。障害から復旧したときは再度ブロッキング状態に戻ります。
下記の図は、4ノード構成のMRPリングです。

MRPリング
MRPのリング構成のEthernetネットワーク。2つ以上のノードで構成されます。ノード間は2つのポートで接続します。
Media Redundancy Manager(MRM)とMedia Redundancy Client(MRC)
MRPリングを構成するリング上の各スイッチは、役割上Media Redundancy Manager(MRM)とMedia Redundancy Client(MRC)に分類されます。MRMは、該当MRPリングの動作を制御するスイッチで、各MRPリングに1台だけ設定できます。その他のスイッチはMRCとなります。各ノードは2つのポートでMRPリングに接続します。リング上での通信は、制御トラフィック、データトラフィックともにこの2ポートを通じて行われます。MRP接続用ポートは同じVLANに所属する必要があります。
MRMでは必ず1つのポートでMRPメッセージを除くすべてのトラフィックをブロッキングしています。(ループ防止)
リングに障害が発生した場合は、ブロッキングを解除し、トラフィックの送受信を行います。
MRMの両ポートからは定期的にMRPメッセージが送られ、MRPリングが正常に動作しているかを管理しています。
MRPメッセージ
MRPリングでは、次のようなMRPメッセージを使って、リング障害の発生・回復を検出し、通信回復のための処置を行います。| リング障害を検出するため、MRMが定期的に2つのポートから送出するメッセージ。MRMは、一定の時間内に送信したポートではない方のポートでMRP_Testメッセージを受信できなかった場合、リングに障害が発生したと判断する。障害発生中もMRMはMRP_Testメッセージを送出し続け、一定の時間内に送信したポートではない方のポートで再び受信した場合にリングが障害から回復したと判断する | |
| MRPリング用のポートがダウンしたことを示すためにMRCからMRMに送出するメッセージ | |
| MRPリング用のポートが起動したことを示すためにMRCからMRMに送出するメッセージ | |
| リング状態の変化を示し、MRCにFDBをクリアするように指示するために、MRMによってMRCに送出するメッセージ |
障害検出機能
MRPでは、リング障害(ケーブルやスイッチの障害)を検出するために、次の2つの手段を用います。- MRP_Testメッセージ(MRMによるポーリング)
- MRP_LinkDownメッセージ(MRCによる障害通知)
基本動作
次に、MRPの基本的な動作について説明します。正常時
MRMでは定期的に両ポートからMRP_Testメッセージを送信してMRPリングの状態を確認しています。MRPリングに障害が発生していない場合、MRMが両ポートから送出したMRP_Testメッセージは、一定の時間内に送信したポートではない方のポートに到着します。
MRMはMRPリングが正常状態にあると見なし、データトラフィックに対して片方のポートをブロック状態にします。

障害発生時(MRP_Testメッセージによる障害検出)
MRMが両ポートから送出したMRP_Testメッセージが、一定の時間内に送信したポートではない方のポートで受信できなかった場合、MRMはリングに障害が発生したと判断します。なお、MRMは、障害の回復を検出するため障害発生中もMRP_Testメッセージを通常どおり送出し続けます。

MRP_Testメッセージが受信できなくなった場合、MRMはデータトラフィックに対してポートのブロックを解除します。
さらに、MRMはMRP_TopologyChangeメッセージをすべてのMRCに送信し、FDBをクリアするよう指示します。
これにより、リング上での通信が復旧します。

障害発生時(MRP_LinkDownメッセージによる障害検出)
MRCではMRPリング接続用ポートのリンクダウンにより障害を検知すると、すぐにMRMにMRP_LinkDownメッセージを送出します。MRMでは、MRCからのMRP_LinkDownメッセージを受信すると、両ポートからMRP_Testメッセージを送出します。

一定の時間内に送信したポートではない方のポートでMRP_Testメッセージを受信できなかった場合、MRMはリングに障害が発生したと判断し、MRMはデータトラフィックに対してポートのブロックを解除します。
さらに、MRMはMRP_TopologyChangeメッセージをすべてのMRCに送信し、FDBをクリアするよう指示します。
これにより、リング上での通信が復旧します。

障害回復時(MRP_Testメッセージによる障害回復検知)
障害が回復すると、MRMは再びMRP_Testメッセージを受信できるようになります。この場合、MRPリングが障害から回復したと判断し、MRMはデータトラフィックに対して一方のポートを再度ブロックします。
さらに、MRMはMRP_TopologyChangeメッセージをすべてのMRCに送信して、FDBをクリアするよう指示します。
これにより、リング上での通信が正常時の動作に復旧します。

障害回復時(MRP_LinkUpメッセージによる障害回復検知)
MRCではMRPリング接続用ポートのリンクアップにより障害の回復を検知すると、すぐにMRMにMRP_LinkUpメッセージを送出します。MRMがMRCからのMRP_LinkUpメッセージを受信すると、両ポートからMRP_Testメッセージを送出します。
一定の時間内に送信したポートではない方のポートでMRP_Testメッセージを受信した場合、MRPリングが障害から回復したと判断し、MRMはデータトラフィックに対して一方のポートを再度ブロックします。
さらに、MRMはMRP_TopologyChangeメッセージをすべてのMRCに送信して、FDBをクリアするよう指示します。
これにより、リング上での通信が正常時の動作に復旧します。

基本設定
MRPを使用するための基本設定について説明します。ここではスイッチA~Dで構成するMRPリングを例として、設定方法を説明します。

この例では、説明のためリング以外のポート設定については省略しています。MRMとMRCの設定の違いは、roleコマンドによるMRM/MRCの設定のみです。
また、MRC(スイッチB、C、D)の設定はどのスイッチも同じです。
MRM(スイッチA)の設定
- VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 100 awplus(config-vlan)# exit
- MRPリング「1」用のVLAN 100にポートを割り当てます。MRPリング接続用ポートは2ポート必要です。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport access vlan 100 awplus(config-if)# exit
- service mrpコマンドでMRPを有効にします。
awplus(config)# service mrp
- mrp ringコマンドでMRPリング「1」を作成します。
awplus(config)# mrp ring 1
- roleコマンドでスイッチAをMRPリング「1」のMRMに設定します。
awplus(config-mrp-ring)# role manager awplus(config-mrp-ring-manager)# exit awplus(config-mrp-ring)# exit
- mrp ringコマンドでポートにMRPリング「1」を割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# mrp ring 1 awplus(config-if)# exit
MRC(スイッチB、C、D)の設定
- VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 100 awplus(config-vlan)# exit
- MRPリング「1」用のVLAN 100にポートを割り当てます。MRPリング接続用ポートは2ポート必要です。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport access vlan 100 awplus(config-if)# exit
- service mrpコマンドでMRPを有効にします。
awplus(config)# service mrp
- mrp ringコマンドでMRPリング「1」を作成します。
awplus(config)# mrp ring 1 awplus(config-mrp-ring)# exit
- mrp ringコマンドでポートにMRPリング「1」を割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# mrp ring 1 awplus(config-if)# exit
以上で設定は完了です。
- MRPリングの情報を表示はshow mrp ringコマンドで行います。
- MRPリングの統計カウンターの表示はshow counter mrpコマンドで行います。
基本設定(複数リング)
複数のMRPリングを使用する場合の基本設定について説明します。複数のリングを使用する場合は以下の仕様にご注意ください。
- MRMは最大8つのリングに所属することができます。MRCは1つのリングにしか所属できません。
- 複数リングの共通MRMにおいて、リング接続用ポート(2ポート)はリングごとに用意する必要があります。同じポートを複数のリングで共有することはできません。
ここでは、スイッチAを共通MRMとし、A、B、C、DでMRPリング「1」を、A、E、F、GでMRPリング「2」を形成する複数リング構成の基本的な設定手順を説明します。

この例では、説明のためリング以外のポート設定については省略しています。
リング「1」「2」共通MRM(スイッチA)の設定
MRPリング「1」と「2」の共通MRMであるスイッチAの設定は以下の手順で行います。- VLANモードに移行して、MRPリング「1」用のVLAN 100とMRPリング「2」用のVLAN 200を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 100 awplus(config-vlan)# vlan 200 awplus(config-vlan)# exit
- MRPリング「1」用のVLAN 100、MRPリング「2」用のVLAN 200にポートを割り当てます。MRPリング接続用ポートは各リング2ポートずつ必要です。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport access vlan 100 awplus(config-if)# exit awplus(config)# interface port1.0.3-port1.0.4 awplus(config-if)# switchport access vlan 200 awplus(config-if)# exit
- service mrpコマンドでMRPを有効にします。
awplus(config)# service mrp
- mrp ringコマンドでMRPリング「1」を作成し、roleコマンドでスイッチAをMRPリング「1」のMRMに設定します。
awplus(config)# mrp ring 1 awplus(config-mrp-ring)# role manager awplus(config-mrp-ring-manager)# exit awplus(config-mrp-ring)# exit
- 同様に、MRPリング「2」を作成し、roleコマンドでスイッチAをMRPリング「2」のMRMに設定します。
awplus(config)# mrp ring 2 awplus(config-mrp-ring)# role manager awplus(config-mrp-ring-manager)# exit awplus(config-mrp-ring)# exit
- mrp ringコマンドでリング接続用ポート1.0.1~1.0.2にMRPリング「1」を、リング接続用ポート1.0.3~1.0.4にMRPリング「2」を割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# mrp ring 1 awplus(config-if)# exit awplus(config)# interface port1.0.3-port1.0.4 awplus(config-if)# mrp ring 2 awplus(config-if)# exit
リング「1」MRC(スイッチB、C、D)の設定
MRPリング「1」のMRCであるスイッチB、C、Dの設定は以下の手順で行います。- VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 100 awplus(config-vlan)# exit
- MRPリング「1」用のVLAN 100をポートを割り当てます。MRPリング接続用ポートは2ポート必要です。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport access vlan 100 awplus(config-if)# exit
- service mrpコマンドでMRPを有効にします。
awplus(config)# service mrp
- mrp ringコマンドでMRPリング「1」を作成します。
awplus(config)# mrp ring 1 awplus(config-mrp-ring)# exit
- mrp ringコマンドでリング接続用ポート1.0.1~1.0.2にMRPリング「1」を割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# mrp ring 1 awplus(config-if)# exit
リング「2」MRC(スイッチE、F、G)の設定
MRPリング「2」のMRCであるスイッチE、F、Gの設定は以下の手順で行います。- VLANモードに移行して、MRPリング「2」用のVLAN 200を作成します。
awplus(config)# vlan database awplus(config-vlan)# vlan 200 awplus(config-vlan)# exit
- MRPリング「2」用のVLAN 200をポートを割り当てます。MRPリング接続用ポートは2ポート必要です。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# switchport access vlan 200 awplus(config-if)# exit
- service mrpコマンドでMRPを有効にします。
awplus(config)# service mrp
- mrp ringコマンドでMRPリング「2」を作成します。
awplus(config)# mrp ring 2 awplus(config-mrp-ring)# exit
- mrp ringコマンドでリング接続用ポート1.0.1~1.0.2にMRPリング「2」を割り当てます。
awplus(config)# interface port1.0.1-port1.0.2 awplus(config-if)# mrp ring 2 awplus(config-if)# exit
以上で設定は完了です。
- MRPリングの情報を表示はshow mrp ringコマンドで行います。
- MRPリングの統計カウンターの表示はshow counter mrpコマンドで行います。