はじめに
このドキュメントでは、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を実行するように設定されているポート。STPはREPポートで無効になっています。 |
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セグメントで複数のリンク障害が発生すると、トラフィックが失われる可能性があります。
インターフェイスで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つの方法で配布されます。
- BPAメッセージを0100.0ccc.ccceのCiscoマルチキャストアドレスに送信することによるREP Fast通知
- REP BPDUフレーム内のBPAメッセージの送信によるREPの信頼性の高い通知(REP LSLフレームと同様)。
機能 |
迅速な通知 |
信頼性の高い通知 |
転送されたハードウェア |
Yes |
いいえ |
信頼性 |
いいえ |
シーケンス番号付けと再送信により可能 |
代替/ブロッキングポートを通過 |
いいえ |
Yes |
REPセグメントの外部に転送 |
Yes |
いいえ |
REP管理VLANで送信 |
Yes |
なし(ネイティブVLANを使用) |
REPリンク障害通知は、CPUにパントされてREPポートでのMACフラッシュをトリガーするという点で、STP TCNと同様に動作します。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をチェックして、 confirm もし interface が holding バッファ さらにトラブルシューティングを行うために、 担当者 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トポロジ内の障害が発生したすべてのポートは、エッジポートとして機能し、アドバタイズメントを送信します
|
関連情報