はじめに
このドキュメントでは、Catalyst 9000スイッチでResilient Ethernet Protocol(REP)を設定および検証する方法について説明します。
前提条件
要件
次の項目に関する知識があることを推奨しています。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- Catalyst 9200
- Catalyst 9300
- Catalyst 9400
- Catalyst 9500
- Catalyst 9600
- Cisco IOS XE 17.6.5以降
注意: REPは、Stackwise Virtual(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管理VLANは1です。
|
REP理論
REPは、代替ポートと呼ばれるセグメント内の1つのポートでVLANをブロックすることで、スイッチングループを防止できます。REPセグメント内のすべてのポートがUP状態になると、ループを防止するために代替ポートがブロッキング状態になります。REPセグメント内のリンクに障害が発生した場合、またはスイッチで問題が発生してREPプロトコルパケットのリンクが失われた場合、代替ポートでは、以前にブロックされていたVLANの転送が開始されます。このため、REPセグメントは、そのセグメント内で障害が発生した1つのポートしか処理できないことに注意してください。REPセグメントで1つ以上のリンク障害が発生すると、トラフィックが失われる可能性があります。
REPがインターフェイス上で有効になっていると、すべてのVLANがただちにブロックされます。REP LSLがLSL PDUを引き継ぎ、隣接関係を確立するために送信を開始します。隣接関係は、REPネイバーを維持するために、後続のLSL helloパケットが1秒間隔で送信される3ウェイハンドシェイクを使用して作成されます。
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は、ポートがブロッキングステートになるたびに生成される9バイトのIDです。ブロッキングステートは、REPが有効なポートに対して即座にリンクアップ状態になります。
- これは、ポートIDとランダムに生成された番号の組み合わせです。
- ポートプライオリティも9バイトのIDです。
代替ポートの選択
- リンクアップ時に、REPポートがブロッキングステートの間、そのポートキーとプライオリティをREPネイバーにアドバタイズします
- 受信側ポートは、受信したBPAポートプライオリティを自身のポートプライオリティと比較します
- 受信側ポートは、ネイバーポートからBPAで受信したキーを含むACKメッセージで応答します。ネイバーは、BPAで自身のキーを受信すると、そのBPAがネイバーからのACKメッセージであることを認識します
- ACKにローカルポートプライオリティよりも高いポートプライオリティが含まれている場合、ローカルポートはOPENステータスに移行します。プライオリティの高いネイバーには応答しませんが、プロポーザルを他のREPポートから他のREPネイバーに転送します
- 他のREPネイバーは、受信したポートプライオリティを自身のプライオリティと比較します。受信したプライオリティがローカルプライオリティよりも高い場合、応答も行われず、プロポーザルは転送されます。ローカルプライオリティの方が高い場合は、元のプロポーザルに対してローカルプライオリティで応答します

このプロセスは、最もプライオリティの高いポートがブロッキングモードに留まるまで繰り返されます。これがセグメントの代替ポートになります。代替ポートは、そのポート・キーを含むBPAメッセージをREPセグメントに送信し続けます。セグメント内のすべてのREPポートは、代替ポートのキーをキャッシュします。
安定したREPセグメントでは、すべてのポートが代替ポートのキーの同じコピーを持つことで、代替ポートで一致します。代替ポートのポートキーIDを維持しているすべてのスイッチが、リンク障害のシナリオに関連するようになります。
エンドポートアドバタイズメント
EPAメッセージは4秒ごとにエッジポートによって生成されます。これらのメッセージは、セグメント内のすべてのREPインターフェイスによって転送され、各ポートは独自のトポロジ情報をメッセージに追加します。 エッジポートは、セグメント内の他のエッジポートによって生成されたEPAを受信すると、セグメント全体の完全なトポロジを取得します。
EPAは、各エッジポートが互いを認識できるようにし、プライマリエッジポートの選択を容易にします。プライオリティが最も高いエッジポートがプライマリエッジポートになります。
REPリンク障害通知
REPセグメントでリンクに障害が発生すると、リンクは「Failed」状態に移行し、代替ポートのキャッシュされたキーを含むリンク障害通知を送信します。送信側スイッチは、アップ状態のREPリンクのMACアドレスもフラッシュします。
REPネイバースイッチは、リンク障害通知を受信し、セグメント上の任意のREPネイバーに転送するとともに、REPセグメント内のポートのMACアドレスエントリをフラッシュします。リンク障害通知を受信したスイッチのセグメントに代替ポートが含まれている場合、そのポートは「OPEN」状態になります。

リンク障害通知は、次の2つの方法で配布されます。
- 0100.0ccc.ccceのCiscoマルチキャストアドレスへのBPAメッセージの送信によるREP Fast通知
- REP BPDUフレーム(REP LSLフレームと同様)でBPAメッセージを送信することによって、REPの信頼性が高い通知を実現します。
機能
|
迅速な通知
|
信頼性の高い通知
|
転送されたハードウェア
|
Yes
|
いいえ
|
信頼性
|
いいえ
|
シーケンス番号と再送信による対応
|
代替/ブロッキングポートを通過
|
いいえ
|
Yes
|
REPセグメントの外部に転送
|
Yes
|
いいえ
|
REP管理VLANで送信
|
Yes
|
なし(ネイティブVLANを使用)
|
REPリンク障害通知は、STP 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.cccです。
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:無効なトポロジ。セグメント用に設定された2つ以上のエッジポート
|
受信されたエッジポートアドバタイズメントが、送信されたエッジポートアドバタイズメントと同じでない場合に表示されます。
|
- トポロジ内の複数のポートが障害状態から回復する際の予想される動作このメッセージは表示されますが、トポロジの確立後は表示されません
- repトポロジ内の障害が発生したすべてのポートは、エッジポートとして機能し、アドバタイズメントを送信します
|
関連情報