簡介
本檔案介紹如何在Catalyst 9000交換器上設定和驗證彈性乙太網路通訊協定(REP)。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- 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位元組識別符號。
備用埠選擇
- 在鏈路啟動時,當REP埠處於阻塞狀態時,它會向其REP鄰居通告其埠金鑰和優先順序
- 接收埠將接收的BPA埠優先順序與其自己的埠優先順序進行比較
- 接收埠以ACK消息作出響應,該消息包含BPA中從相鄰埠接收的金鑰。當鄰居在BPA中收到自己的金鑰時,它知道BPA是來自鄰居的ACK消息
- 如果ACK包含的埠優先順序高於本地埠優先順序,則本地埠會進入OPEN狀態。它不以較高優先順序對鄰居做出響應,但會將該提議從它的另一個REP埠轉發到它的另一個REP鄰居
- 另一個REP鄰居將收到的埠優先順序與自己的埠優先順序進行比較。如果收到的優先順序高於本地優先順序,它也不會響應並轉發該建議。如果本地優先順序更高,則它會以自己的優先順序對原始建議做出響應
此程式會重複執行,直到最高優先順序連線埠保持在封鎖模式為止。此埠將成為網段「備用埠」。備用埠繼續將包含其埠金鑰的BPA消息傳送到REP網段。段內的所有REP埠都快取備用埠的金鑰。
在穩定的REP網段中,所有埠在備用埠上一致通過具有相同的備用埠金鑰副本實現。在鏈路故障情況下,每台維護備用埠的埠金鑰ID的交換機都會變得相關。
終端埠通告
EPA消息由邊緣埠每隔4秒生成一次。這些消息由網段中的每個REP介面轉發,並且每個埠都會向消息中增加自己的拓撲資訊。
一旦邊緣埠收到網段中另一個邊緣埠生成的EPA,它就會擁有整個網段的完整拓撲。
EPA允許每個邊緣埠相互檢視並促進主邊緣埠的選舉。優先順序最高的邊緣埠成為主邊緣埠。
REP鏈路故障通知
當鏈路在REP網段中發生故障時,它將進入「故障」狀態,並傳送包含備用埠的快取金鑰的鏈路故障通知。傳送交換機還刷新其仍處於運行狀態的REP鏈路的MAC地址。
REP鄰居交換機收到鏈路故障通知並將其轉發到網段上的任何REP鄰居,並刷新REP網段中埠的MAC地址條目。如果收到鏈路故障通知的交換機包含網段上的備用埠,則該交換機將埠轉換為OPEN狀態。
鏈路故障通知以兩種方式分發:
- REP快速通知,透過將BPA消息傳送到Cisco組播地址0100.0ccc.ccce
- 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:拓撲無效。為網段配置了兩個以上的邊緣埠 |
當接收的邊緣埠通告與傳送的邊緣埠通告不同時顯示 |
- 當拓撲中的多個埠從故障狀態中恢復時會出現預期行為,但在拓撲建立後不會出現此消息
|
相關資訊