目錄

簡介

必要條件

需求

採用元件

背景資訊

技術

REP理論

REP備用埠選擇

阻塞的埠通告

備用埠選擇

終端埠通告

REP鏈路故障通知

REP首選埠和VLAN負載均衡

設定

網路圖表

組態

驗證

命令摘要

疑難排解

輸入佇列楔形

REP日誌消息

相關資訊

簡介

本檔案介紹如何在Catalyst 9000交換器上設定和驗證彈性乙太網路通訊協定(REP)。

必要條件

需求

思科建議您瞭解以下主題：

- 第2層環路防護

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS XE 17.6.5及更高版本

注意：帶有Stackwise Virtual (SVL)的交換機不支援REP

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

REP是Cisco專有的協定，旨在防止網路環路，並在第2層乙太網中發生鏈路故障時提供快速收斂。它是生成樹協定的替代協定，通常用於需要大型第2層擴展的特定第2層拓撲，如IoT網路、工業網路或製造網路。REP「網段」是透過將配置有相同網段ID的交換機之間的埠連結在一起而形成的。藉助REP負載平衡及其與STP共存的功能，REP可用於構建複雜但可預測的第2層拓撲。

技術

字詞

定義

區段

連線在一起並共用相同網段ID的埠鏈

區段ID

用於表示網段的數字，介於1和1024之間

REP埠

配置為運行REP的埠。在REP埠上停用了STP。

邊緣連線埠

終止REP段一個邊的埠。

備用埠

阻止網段中的VLAN以防止環路的埠。如果配置了負載均衡，則網段中有2個備用埠

開放埠

網段中轉發所有VLAN的埠

封閉式區段

REP網段，其中兩個邊緣埠位於同一台交換機上，並且相互連線。也稱為「環網段」。

開啟區段

REP網段，其中邊緣埠彼此之間沒有連線。邊緣埠位於不同的交換機上，並且在它們之間有一個阻塞埠。

連結狀態層(LSL)

負責建立鄰居鄰接關係和維護鏈路狀態的三次握手協定。LSL幀在REP埠上每隔1秒傳送一次。

硬體泛洪層(HFL)

負責透過組播泛洪REP PDU在鏈路故障後促進快速收斂的層

封鎖的連線埠通告(BPA)

埠傳送的消息，用於通告其阻止的VLAN清單。BPA也可以傳送拓撲更改，使接收埠刷新其MAC表

終端埠通告(EPA)

承載有關REP網段的全局資訊，並由邊緣埠傳送

REP管理VLAN

用於在鏈路故障後泛洪REP快速通知進行收斂的VLAN。如果已配置HFL，則在此處運行。否則，REP管理VLAN為1。

REP理論

REP可以透過阻塞網段中的一個埠（稱為備用埠）上的VLAN來防止交換環路。當REP段中的所有埠都處於UP狀態時，備用埠會阻塞以防止環路。當REP網段中的鏈路發生故障，或者交換機出現導致REP協定資料包鏈路丟失的問題時，備用埠會為其之前阻塞的VLAN進行轉發。必須注意的是，正因為如此，REP網段只能處理網段內的一個故障埠。REP網段上超過1個鏈路故障可能會導致流量丟失。

在介面上啟用REP後，它會立即阻止所有VLAN。REP LSL接管並開始傳送LSL PDU以建立鄰接關係。鄰接關係使用三次握手來建立，後續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備用埠選擇

REP備用埠是網段中阻塞VLAN的埠。

- 使用建議和協定機制建立REP鄰居之後，會立即選舉備用埠，以確定網段中哪個埠仍然處於阻塞狀態。

- 網段中的每個埠都會通告其埠金鑰和埠優先順序，並等待協定。

- 具有最高優先順序的連線埠會獲選為替代連線埠。

- 選舉過程透過REP BPA消息進行。

阻塞的埠通告

BPA消息由埠金鑰和埠優先順序組成。

- REP埠鍵是9位元組識別符號，每次埠進入阻塞狀態（對於啟用REP的埠，該狀態立即在鏈路連線時生成。）

- 它是埠ID和隨機生成的號碼的組合。

- 埠優先順序也是9位元組識別符號。

備用埠選擇

1. 在鏈路啟動時，當REP埠處於阻塞狀態時，它會向其REP鄰居通告其埠金鑰和優先順序

2. 接收埠將接收的BPA埠優先順序與其自己的埠優先順序進行比較

3. 接收埠以ACK消息作出響應，該消息包含BPA中從相鄰埠接收的金鑰。當鄰居在BPA中收到自己的金鑰時，它知道BPA是來自鄰居的ACK消息

4. 如果ACK包含的埠優先順序高於本地埠優先順序，則本地埠會進入OPEN狀態。它不以較高優先順序對鄰居做出響應，但會將該提議從它的另一個REP埠轉發到它的另一個REP鄰居

5. 另一個REP鄰居將收到的埠優先順序與自己的埠優先順序進行比較。如果收到的優先順序高於本地優先順序，它也不會響應並轉發該建議。如果本地優先順序更高，則它會以自己的優先順序對原始建議做出響應

此程式會重複執行，直到最高優先順序連線埠保持在封鎖模式為止。此埠將成為網段「備用埠」。備用埠繼續將包含其埠金鑰的BPA消息傳送到REP網段。段內的所有REP埠都快取備用埠的金鑰。

在穩定的REP網段中，所有埠在備用埠上一致通過具有相同的備用埠金鑰副本實現。在鏈路故障情況下，每台維護備用埠的埠金鑰ID的交換機都會變得相關。

終端埠通告

EPA消息由邊緣埠每隔4秒生成一次。這些消息由網段中的每個REP介面轉發，並且每個埠都會向消息中增加自己的拓撲資訊。

一旦邊緣埠收到網段中另一個邊緣埠生成的EPA，它就會擁有整個網段的完整拓撲。

EPA允許每個邊緣埠相互檢視並促進主邊緣埠的選舉。優先順序最高的邊緣埠成為主邊緣埠。

REP鏈路故障通知

當鏈路在REP網段中發生故障時，它將進入「故障」狀態，並傳送包含備用埠的快取金鑰的鏈路故障通知。傳送交換機還刷新其仍處於運行狀態的REP鏈路的MAC地址。

REP鄰居交換機收到鏈路故障通知並將其轉發到網段上的任何REP鄰居，並刷新REP網段中埠的MAC地址條目。如果收到鏈路故障通知的交換機包含網段上的備用埠，則該交換機將埠轉換為OPEN狀態。

鏈路故障通知以兩種方式分發：

1. REP快速通知，透過將BPA消息傳送到Cisco組播地址0100.0ccc.ccce

2. REP Reliable Notifications，透過在REP BPDU幀中傳送BPA消息（類似於REP LSL幀）。

功能

快速通知

可靠通知

硬體已轉發

是

否

可靠

否

是，透過序號編碼與重新傳輸

透過備用/阻塞埠

否

是

在REP網段外轉發

是

否

在REP管理VLAN上傳送

是

否（使用本徵VLAN）

REP鏈路故障通知的作用與STP TCN類似，因為它們被傳送到CPU並在REP埠上觸發MAC刷新。在面向STP網段的REP埠上進行其他配置後，REP鏈路故障通知可以轉換為STP TCN，以通知STP域由於REP鏈路故障而刷新MAC。

REP首選埠和VLAN負載均衡

配置VLAN負載均衡後，REP主邊緣埠是可以啟動負載均衡的埠。REP首選埠是首選成為備用埠的埠。

主要邊緣連線埠與負載平衡案例相關，因為負載平衡是透過其他組態從主要邊緣連線埠啟動。

負載均衡是透過配置首選埠應阻塞哪些VLAN來實現的。

- 其餘VLAN在主邊緣埠上被阻塞。

- 當配置了VLAN負載均衡且處於活動狀態時，有2個備用埠。

配置負載均衡後，除非從主邊緣埠觸發鏈路故障或手動搶佔，否則負載均衡不會生效。

設定

網路圖表

組態

所有埠必須配置為具有匹配REP網段ID的中繼埠。邊緣開關需要edge引數。

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收斂

- 這是由思科漏洞ID CSCwc引起的52868

- 輸入隊列處理ALL協定的處理。一旦隊列變為「已滿」，它將耗盡合法的網路控制流量，並且無法手動清空。

隊列楔形的症狀

- 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 does not clear these buffers)

- 升級到不受此問題影響的代碼版本

- 調整輸入佇列大小(在您確定不會再有HSL訊框到達的情況下，您可以嘗試增加輸入佇列大小。請記住，下次發生HSL泛洪時，問題可能會再次出現)。

在這種狀態下，會出現一些REP系統日誌。這些日誌將在下一節中調出

注意：請記住，這是一個指示鄰居之間LSL丟失的通用日誌，這可能是由其他原因造成的。因此，確定此特定問題很有用，但不僅限於此問題

REP日誌消息

記錄訊息

定義

復原動作

%REP-4-LINKSTATUS： TenGigabitEthernet1/1/1（網段1）由於鄰居無響應而不可操作

表示鄰居之間的LSL丟失

- 確認介面沒有楔入輸入隊列

- 驗證鏈路是否沒有CRC錯誤和其他遞增錯誤

- 驗證CPU傳送路徑中是否沒有CoPP或丟棄

%REP-5-EDGEMISCONFIG：拓撲無效。為網段配置了兩個以上的邊緣埠

當接收的邊緣埠通告與傳送的邊緣埠通告不同時顯示

- 當拓撲中的多個埠從故障狀態中恢復時會出現預期行為，但在拓撲建立後不會出現此消息

- rep拓撲中的每個故障埠都充當邊緣埠並傳送通告

相關資訊

- 第2層配置指南，Cisco IOS XE Bengaluru 17.6.x（Catalyst 9500交換機）

- 思科漏洞ID CSCwc52868