はじめに
このドキュメントでは、Catalyst 9000スイッチでResilient Ethernet Protocol(REP)を設定および検証する方法について説明します。
前提条件
要件
次の項目に関する知識があることを推奨しています。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
- 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です。
代替ポートの選択
- リンクアップ時に、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アドレスエントリをフラッシュします。リンク障害通知を受信したスイッチのセグメントに代替ポートが含まれている場合、そのスイッチはポートをオープン状態に移行します。
リンク障害通知は、次の2つの方法で配布されます。
- BPAメッセージを0100.0ccc.ccceのシスコマルチキャストアドレスに送信することによるREP Fast通知
- 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トポロジ内の障害が発生したすべてのポートは、エッジポートとして機能し、アドバタイズメントを送信します
|
関連情報