# 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リングです。
Note

本製品はMRM上で最大8つのリングをサポートします。詳しくは「基本設定（複数リング）」をご参照ください。

### 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リングが正常に動作しているかを管理しています。
Note

MRPのリング接続用ポートではLDF検出機能が自動的に無効となります。

### MRPメッセージ

MRPリングでは、次のようなMRPメッセージを使って、リング障害の発生・回復を検出し、通信回復のための処置を行います。

表 1
名 | 機能
MRP_Test | リング障害を検出するため、MRMが定期的に2つのポートから送出するメッセージ。MRMは、一定の時間内に送信したポートではない方のポートでMRP_Testメッセージを受信できなかった場合、リングに障害が発生したと判断する。障害発生中もMRMはMRP_Testメッセージを送出し続け、一定の時間内に送信したポートではない方のポートで再び受信した場合にリングが障害から回復したと判断する
MRP_LinkDown | MRPリング用のポートがダウンしたことを示すためにMRCからMRMに送出するメッセージ
MRP_LinkUp | MRPリング用のポートが起動したことを示すためにMRCからMRMに送出するメッセージ
MRP_TopologyChange | リング状態の変化を示し、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をクリアするよう指示します。
これにより、リング上での通信が復旧します。

Note

lc-reactコマンドを実行している場合、MRMはMRCからのMRP_LinkDownメッセージを受信した時点で障害が発生したと判断し、データトラフィックに対してポートのブロックを解除します。

### 障害回復時（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）の設定

1. VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100
       awplus(config-vlan)# exit

2. MRPリング「1」用のVLAN 100にポートを割り当てます。MRPリング接続用ポートは2ポート必要です。
   Note

   MRPリング接続用ポートはタグなし（access）にもタグ付き（trunk）にも設定可能ですが、タグ付き（trunk）の場合は、vlan-idコマンドでVIDを指定してください。

       awplus(config)# interface port1.0.1-port1.0.2
       awplus(config-if)# switchport access vlan 100
       awplus(config-if)# exit

3. service mrpコマンドでMRPを有効にします。

       awplus(config)# service mrp

4. mrp ringコマンドでMRPリング「1」を作成します。

       awplus(config)# mrp ring 1

5. roleコマンドでスイッチAをMRPリング「1」のMRMに設定します。

       awplus(config-mrp-ring)# role manager
       awplus(config-mrp-ring-manager)# exit
       awplus(config-mrp-ring)# exit

6. 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）の設定

1. VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100
       awplus(config-vlan)# exit

2. 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

3. service mrpコマンドでMRPを有効にします。

       awplus(config)# service mrp

4. mrp ringコマンドでMRPリング「1」を作成します。

       awplus(config)# mrp ring 1
       awplus(config-mrp-ring)# exit

5. 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の設定は以下の手順で行います。

1. 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

2. MRPリング「1」用のVLAN 100、MRPリング「2」用のVLAN 200にポートを割り当てます。MRPリング接続用ポートは各リング2ポートずつ必要です。
   Note

   MRPリング接続用ポートはタグなし（access）にもタグ付き（trunk）にも設定可能ですが、タグ付き（trunk）の場合は、vlan-idコマンドでVIDを指定してください。

       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

3. service mrpコマンドでMRPを有効にします。

       awplus(config)# service mrp

4. 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

5. 同様に、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

6. 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の設定は以下の手順で行います。

1. VLANモードに移行して、MRPリング「1」用のVLAN 100を作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 100
       awplus(config-vlan)# exit

2. 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

3. service mrpコマンドでMRPを有効にします。

       awplus(config)# service mrp

4. mrp ringコマンドでMRPリング「1」を作成します。

       awplus(config)# mrp ring 1
       awplus(config-mrp-ring)# exit

5. 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の設定は以下の手順で行います。

1. VLANモードに移行して、MRPリング「2」用のVLAN 200を作成します。

       awplus(config)# vlan database
       awplus(config-vlan)# vlan 200
       awplus(config-vlan)# exit

2. 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

3. service mrpコマンドでMRPを有効にします。

       awplus(config)# service mrp

4. mrp ringコマンドでMRPリング「2」を作成します。

       awplus(config)# mrp ring 2
       awplus(config-mrp-ring)# exit

5. 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コマンドで行います。