内容

はじめに

前提条件

要件

使用するコンポーネント

背景説明

用語

REP理論

REP代替ポートの選択

ブロックポートアドバタイズメント

代替ポートの選択

エンドポートアドバタイズメント

REPリンク障害通知

REP優先ポートおよびVLANロードバランシング

設定

ネットワーク図

コンフィギュレーション

確認

コマンドの概要

トラブルシュート

入力キューウェッジ

REPログメッセージ

関連情報

はじめに

このドキュメントでは、Catalyst 9000スイッチでResilient Ethernet Protocol(REP)を設定および検証する方法について説明します。

前提条件

要件

次の項目に関する知識があることを推奨しています。

- レイヤ2ループ防止

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS XE 17.6.5以降

注意: REPは、Stackwise仮想(SVL)スイッチではサポートされていません

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

REPは、ネットワークループを防止し、レイヤ2イーサネットネットワークのリンク障害時に高速コンバージェンスを提供するように設計されたシスコ独自のプロトコルです。これはスパニングツリープロトコルの代替であり、IoTネットワーク、産業ネットワーク、製造ネットワークなど、大規模なレイヤ2の拡張を必要とする特定のレイヤ2トポロジでよく使用されます。REPの「セグメント」は、同じセグメントIDで構成されたスイッチ間でポートを連鎖することによって形成されます。REPロード・バランシングやSTPとの共存機能などの機能を使用して、複雑で予測可能なレイヤー2トポロジーを構築できます。

用語

ターム

定義

セグメント

同じセグメントIDを共有する、相互に接続されたポートのチェーン

セグメントID

セグメントを表すために使用される1 ～ 1024の数値

REPポート

REPを実行するように設定されたポート。REPポートでSTPが無効になっている。

Edge Port

REPセグメントの1つのエッジを終端するポート。

代替ポート

ループを防ぐためにセグメント内でVLANをブロックするポート。ロードバランシングが設定されている場合、セグメントには2つの代替ポートがあります

ポートを開く

すべてのVLANを転送するセグメント内のポート

閉じたセグメント

REPセグメント。両方のエッジポートが同じスイッチ上にあり、相互に接続されているセグメント。「リングセグメント」とも呼ばれます。

セグメントを開く

エッジポートが相互に接続されていないREPセグメント。エッジポートは異なるスイッチにあり、その間にブロッキングポートがあります。

リンクステータスレイヤ(LSL)

ネイバー隣接関係の確立とリンクステータスの維持を行う3ウェイハンドシェイクプロトコル。LSLフレームは、REPポートで1秒ごとに送信されます。

ハードウェア フラッド レイヤ（HFL）

REP PDUをマルチキャストでフラッディングすることにより、リンク障害後の迅速なコンバージェンスを促進するレイヤ

ブロックされたポートアドバタイズメント(BPA)

ブロックしているVLANのリストをアドバタイズするためにポートから送信されるメッセージ。BPAもトポロジの変更を伝送でき、受信ポートがMACテーブルをフラッシュします

エンドポートアドバタイズメント(EPA)

REPセグメントに関するグローバル情報を伝送し、エッジポートによって送信される

REP管理VLAN

リンク障害後のコンバージェンスのためのREP高速通知のフラッディングに使用されるVLAN。HFLが設定されている場合は、ここで動作します。そうでない場合、REP Admin VLANは1です。

REP理論

REPは、代替ポートと呼ばれるセグメント内の1つのポートでVLANをブロックすることで、スイッチングループを防止できます。REPセグメント内のすべてのポートがUP状態になると、ループを防止するために代替ポートがブロックされます。REPセグメント内のリンクに障害が発生するか、スイッチに問題が発生してREPプロトコルパケットが失われた場合、代替ポートでは、以前にブロックされていたVLANへの転送が開始されます。このため、REPセグメントは、セグメント内で1つの障害ポートしか処理できないことに注意してください。REPセグメントで1つ以上のリンク障害が発生すると、トラフィックが失われる可能性があります。

REPがインターフェイス上で有効になっていると、すべてのVLANがただちにブロックされます。REP LSLがLSL PDUを引き継ぎ、隣接関係を確立するために送信を開始します。隣接関係は、3ウェイハンドシェイクを使用して作成され、後続のLSL helloパケットが1秒間隔で送信されて、REPネイバーが維持されます。

REPネイバー検出中に、デバイスはREPセグメントIDとポートIDを交換します。

- セグメントIDは1 ～ 1024の数値で、インターフェイスでREPを有効にするときに設定されます。これにより、REPセグメントが一意に識別されます。

- ポートIDは、スイッチのシステムMACアドレスとポート番号から自動的に生成される60ビットのワードです。

- LSL PDUが宛先MACアドレス0180.c200.0000に送信されます。

9200-STACK-1#show interface port-channel1 rep detail | i PortID

PortID: 08E978BC1A4FDD80                                         <--- Port ID with system MAC in bold

9200-STACK-1#show version | i MAC

Base Ethernet MAC Address : 78:bc:1a:4f:dd:80                    <-- Switch system MAC

REPポートがシャットダウンされた後、またはLSL helloタイムアウトが5秒後に期限切れになった後に、REPポートがFailedステータスに移行します。

REP代替ポートの選択

REP代替ポートは、VLANをブロックしているセグメント内のポートです。

- 代替ポートの選択は、プロポーザルおよびアグリーメントメカニズムを使用してREPネイバーが確立された直後に行われ、セグメント内のブロッキング状態にある単一のポートを判別します。

- セグメント内の各ポートは、自身のポートキーとポートプライオリティをアドバタイズし、アグリーメントを待ちます。

- プライオリティが最も高いポートが代替ポートとして選択されます。

- 選択プロセスは、REP BPAメッセージを介して行われます。

ブロックポートアドバタイズメント

BPAメッセージは、ポートキーとポートプライオリティで構成されます。

- REP Port Keyは、ポートがブロッキングステート（REPが有効なポートの場合は即座にリンクアップ状態）になるたびに生成される9バイトのIDです。

- ポートIDとランダムに生成された番号の組み合わせである

- ポートプライオリティも9バイトのIDです。

代替ポートの選択

1. リンクアップ時に、REPポートがブロッキングステートにある間、そのポートのキーと優先順位をREPネイバーにアドバタイズします

2. 受信側ポートは、受信したBPAポートプライオリティを自身のポートプライオリティと比較します

3. 受信側ポートは、ネイバーポートからBPAで受信したキーを含むACKメッセージで応答します。ネイバーは、BPAで自身のキーを受信すると、そのネイバーからのBPAがACKメッセージであることを認識します

4. ACKにローカルポートプライオリティよりも高いポートプライオリティが含まれている場合、ローカルポートはOPENステータスに移行します。プライオリティの高いネイバーには応答しませんが、プロポーザルを他のREPポートから他のREPネイバーに転送します

5. もう一方のREPネイバーは、受信したポートプライオリティを自身のプライオリティと比較します。受信したプライオリティがローカルプライオリティよりも高い場合、応答も行われず、プロポーザルが転送されます。ローカルプライオリティの方が高い場合は、元のプロポーザルに対してローカルプライオリティで応答します

このプロセスは、最もプライオリティの高いポートがブロッキングモードのままになるまで繰り返されます。これがセグメントの代替ポートになります。代替ポートは、そのポート・キーを含むBPAメッセージをREPセグメントに送信し続けます。セグメント内のすべてのREPポートは、代替ポートのキーをキャッシュします。

安定したREPセグメントでは、すべてのポートが代替ポートキーの同じコピーを持つことによって、代替ポートで一致します。代替ポートのポートキーIDを維持する各スイッチは、リンク障害のシナリオ時に関連付けられます。

エンドポートアドバタイズメント

EPAメッセージは4秒ごとにエッジポートによって生成されます。これらのメッセージは、セグメント内のすべてのREPインターフェイスによって転送され、各ポートが独自のトポロジ情報をメッセージに追加します。

エッジポートがセグメント内の他のエッジポートによって生成されたEPAを受信すると、そのエッジポートはセグメント全体の完全なトポロジを持ちます。

EPAは、各エッジポートが互いを認識できるようにし、プライマリエッジポートの選択を容易にします。プライオリティが最も高いエッジポートがプライマリエッジポートになります。

REPリンク障害通知

REPセグメントでリンクに障害が発生すると、そのリンクは「Failed」状態に移行し、代替ポートのキャッシュされたキーを含むリンク障害通知を送信します。送信側スイッチは、アップ状態のREPリンクのMACアドレスもフラッシュします。

REPネイバースイッチは、リンク障害通知を受信し、セグメント上の任意のREPネイバーに転送するとともに、REPセグメント内のポートのMACアドレスエントリをフラッシュします。リンク障害通知を受信したスイッチのセグメントに代替ポートが含まれている場合、そのスイッチはポートをオープン状態に移行します。

リンク障害通知は、次の2つの方法で配布されます。

1. BPAメッセージを0100.0ccc.ccceのシスコマルチキャストアドレスに送信することによるREP Fast通知

2. REP BPDUフレーム内のBPAメッセージの送信によるREPの信頼性の高い通知（REP LSLフレームと同様）。

機能

迅速な通知

信頼性の高い通知

転送されたハードウェア

Yes

いいえ

信頼性

いいえ

シーケンス番号と再送信による対応

代替/ブロッキングポートを通過

いいえ

Yes

REPセグメントの外部に転送

Yes

いいえ

REP管理VLANで送信

Yes

なし（ネイティブVLANを使用）

REPリンク障害通知は、STP TCNと同様に動作します。TCNはCPUにパントされ、REPポートでMACフラッシュをトリガーします。STPセグメントに面しているREPポートに追加設定を行うと、REPリンク障害通知をSTP TCNに変換して、REPリンク障害が原因でMACをフラッシュするようにSTPドメインに通知できます。

REP優先ポートおよびVLANロードバランシング

VLANロードバランシングが設定されている場合、REPプライマリエッジポートは、ロードバランシングを開始できるポートです。REP Preferredポートは、代替ポートとして優先されるポートです。

プライマリエッジポートは、追加の設定を介してプライマリエッジポートからロードバランシングが開始されるため、ロードバランシングのシナリオに適しています。

ロードバランシングは、優先ポートがどのVLANをブロックするかを設定することによって実現されます。

- 残りのVLANは、プライマリエッジポートでブロックされます。

- VLANロードバランシングが設定され、アクティブな場合は、代替ポートが2つあります。

ロードバランシングが設定されると、リンク障害または手動プリエンプションがプライマリエッジポートからトリガーされるまで有効になりません。

設定

ネットワーク図

コンフィギュレーション

すべてのポートは、REPセグメントIDが一致するトランクポートとして設定する必要があります。エッジスイッチにはエッジパラメータが必要です。

9200-STACK-1#show running-config interface port-channel 1

Building configuration...

Current configuration : 100 bytes

!

interface Port-channel1

switchport mode trunk        <-- Must be a trunk

load-interval 30

rep segment 1 edge           <-- configure edge port in REP segment 1

end

エッジポートではないREPポートには、 edgeキーワードは必要ありません。

9300-STACK-2#show running-config interface port-channel 1

Building configuration...

Current configuration : 69 bytes

!

interface Port-channel1

switchport mode trunk

rep segment 1                <-- non-edge REP port configuration

end

確認

すべてのセグメントポートが設定されると、セグメントは完了し、障害が発生したポートは存在しなくなります。

REPトポロジを確認します。

9200-STACK-1#show rep topology

REP Segment 1

BridgeName                       PortName   Edge Role

-------------------------------- ---------- ---- ----

9200-STACK-1                     Po1        Pri  Open     <-- primary edge port

9300-STACK-1                     Po1             Alt      <-- alternate port that is blocking VLANs

9300-STACK-1                     Po4             Open

9300-STACK-3                     Po4             Open

9300-STACK-3                     Po3             Open     <-- port is OPEN and forwarding all VLANs

9300-STACK-2                     Po3             Open

9300-STACK-2                     Po1             Open

9200-STACK-1                     Po2        Sec  Open     <-- secondary edge port

インターフェイスのREPステータスを確認します。

9200-STACK-1#show interface port-channel 1 rep                            <-- check REP status for the port

Interface                    Seg-id Type           LinkOp      Role

---------------------------- ------ -------------- ----------- ----

Port-channel1                1      Primary Edge    TWO_WAY     Open      <-- Edge port is not blocking any VLANs

詳細な出力により、ポートのREPステータスをより詳しく把握

9200-STACK-1#show interfaces port-channel1 rep detail

Port-channel1   REP enabled

Segment-id: 1 (Primary Edge)

PortID: 08E978BC1A4FDD80             <-- port ID made from system MAC + random number

Preferred flag: No

Operational Link Status: TWO_WAY

Current Key: 0BE934ED1B4798003405    <-- cached key of the segment Alternate port

Port Role: Open

Blocked VLAN:

Admin-vlan: 1                        <-- REP admin vlan

Preempt Delay Timer: disabled

LSL Ageout Timer: 5000 ms            <-- default link status adjacency hold down timer

LSL Ageout Retries: 5

Configured Load-balancing Block Port: none    <-- no load balancing configured on the port

Configured Load-balancing Block VLAN: none

STCN Propagate to: none                       <-- sending TCNs into STP domain is disabled

LSL PDU rx: 924743, tx: 612406

HFL PDU rx: 1, tx: 1

BPA TLV rx: 611945, tx: 2

BPA (STCN, LSL) TLV rx: 0, tx: 0

BPA (STCN, HFL) TLV rx: 0, tx: 0

EPA-ELECTION TLV rx: 13, tx: 11

EPA-COMMAND TLV rx: 0, tx: 0

EPA-INFO TLV rx: 152998, tx: 152999

コマンドの概要

show rep topology

show rep topology detail

show rep topology segment <Id>

show rep topology segment <Id> detail

show rep topology archive

show rep topology archive detail

show interfaces gig<X/X> rep

show interfaces gig<X/X> rep detail

トラブルシュート

入力キューウェッジ

特定のバージョンのコードでは、REP HSLパケットがインターフェイスの入力キューをウェッジする場合があります。

- これは、HSLパケットが入力キューに入り、LSLコンバージェンスパケットを処理できない場合に、REPコンバージェンスに影響を与える可能性があります

- これは、Cisco Bug ID CSCwc52868

- 入力キューはすべてのプロトコルの処理を処理します。キューがいったん「フル」になると、正規のネットワーク制御トラフィックが枯渇するため、手動で空にすることはできません。

キューウェッジの症状

- CDP、IGMPなどのプロトコルが機能しなくなります（CDPのネイバーが失われる、IGMPマルチキャストプログラミングの問題などが発生します）。

- 症状は、処理が必要なインターフェイスに到着する機能とプロトコルによって異なります。

- インターフェイス入力キューは、インターフェイスに到着したパケットをキューに入れ、CPUにパントして処理するために使用されます

- 特定のパケットをデキューできず、最終的に入力キューの制限に達すると、入力キューがブロックされます

- インターフェイスの入力キューの制限に達すると、他のパケットは保存できなくなり、代わりにドロップされます。

キューウェッジの確認

REPハードウェアフラッディングされたレイヤパケットがREP管理VLAN上を通過すると、L2ポート上の入力キューがブロックされます。

C9300#show interface gi1/0/48

GigabitEthernet1/0/48 is up, line protocol is up (connected)

Hardware is Gigabit Ethernet, address is 7486.0b0c.e0b0 (bia 7486.0b0c.e0b0)

Description: PORT

MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 1/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX

input flow-control is on, output flow-control is unsupported

ARP type: ARPA, ARP Timeout 04:00:00

Last input 01:14:45, output 00:00:00, output hang never

Last clearing of "show interface" counters never

Input queue: 2438/2000/16/0 (size/max/drops/flushes); Total output drops: 0     <-- 2438 frames in the input queue who's limit is 2000

<...snip...>

このCLIをチェックして、インターフェイスがREP HFLフレームでバッファを保持しているかどうかを確認します

- HFLフレームの宛先MACは0100.0ccc.ccceです

C9300#show buffers input-interface gi1/0/48 packet

Tracekey : 1#09f7811786f1de5ddfa0f5542a69f593

Buffer information for Middle buffer at 0x7F81FE8E9000

data_area 0x7F820F78F004, refcount 1, next 0x0, flags 0x210

linktype 189 (LINK_REP), enctype 3 (SNAP), encsize 22, rxtype 88

if_input 0x7F820E71DB50 (GigabitEthernet1/0/48), if_output 0x0 (None)

inputtime 3d14h (elapsed 03:11:48.761)

outputtime 00:00:00.000 (elapsed never), oqnumber 65535

datagramstart 0x7F820F78F072, datagramsize 565, maximum size 804

mac_start 0x7F820F78F072, addr_start 0x7F820F78F072, info_start 0x7F820F78F080

network_start 0x7F820F78F088, transport_start 0x0, caller_pc :55FBF3ED3000+37680AC

7F820F78F072: 01000CCC CCCEA0F8 ...LLN x           <--- HFL destination MAC is in the queue

キューウェッジの修復

- デバイスをリブートします(リロードしないと入力キューをクリアできません。Shut / no shut of interfaceはこれらのバッファをクリアしません)

- この問題に該当しないバージョンのコードにアップグレードします

- 入力キューサイズの調整(HSLフレームがこれ以上到着しないことが確実な場合は、入力キューサイズを増やすことができます。この問題は、次にHSLフラッドが発生したときに再度発生する可能性があることに注意してください)。

この状態で発生するREP syslogがあります。これらのログは、次のセクションで取り上げます

注：これはネイバー間のLSLの喪失を示す一般的なログであり、他の理由で発生する可能性があることに注意してください。したがって、この特定の問題を特定することは有用ですが、この問題に限定されるものではありません

REPログメッセージ

ログ メッセージ

定義

回復アクション

%REP-4-LINKSTATUS：ネイバーが応答しないため、TenGigabitEthernet1/1/1（セグメント1）は動作していません。

ネイバー間のLSLが失われたことを示します。

- インターフェイスにブロックされた入力キューがないことを確認します。

- リンクにCRCや他の増加するエラーがないことを確認します。

- CPUパントパスにCoPPまたはドロップがないことを確認します

%REP-5-EDGEMISCONFIG：無効なトポロジ。セグメント用に設定された3つ以上のエッジポート

受信されたエッジポートアドバタイズメントが、送信されたエッジポートアドバタイズメントと同じでない場合に表示されます。

- トポロジ内の複数のポートが障害状態から回復する際に予想される動作このメッセージは表示されますが、トポロジの確立後は表示されません

- repトポロジ内の障害が発生したすべてのポートは、エッジポートとして機能し、アドバタイズメントを送信します

関連情報

- レイヤ2コンフィギュレーションガイド、Cisco IOS XE Bengaluru 17.6.x（Catalyst 9500スイッチ）

- Cisco Bug ID CSCwc52868