網絡連接或配置的錯誤容易導致二層網絡中出現轉發環路,使設備對廣播、組播以及未知單播等報文進行重複發送,造成網絡資源的浪費甚至導致網絡癱瘓。為了能夠及時發現二層網絡中的環路,以避免對整個網絡造成嚴重影響,需要提供一種監測機製,使網絡中出現環路時能及時通知用戶檢查網絡連接和配置情況,並能夠自動關閉出問題的端口以消除環路,這種機製就是環路監測機製。當網絡中出現環路時,環路監測機製通過打印日誌信息(log)和發送告警信息(trap)以通知用戶,同時還可根據用戶事先的配置來選擇是否關閉出現環路的端口。
設備通過發送環路監測報文、並監測其是否返回本設備(不要求收、發端口為同一端口)以確認是否存在環路,若某端口收到了由本設備發出的環路監測報文,就認定該端口存在環路。
圖 1 環路監測報文以太網頭格式
如圖 1所示,是環路監測報文的以太網頭格式定義,其中各字段的解釋如下:
l DMAC:報文的目的MAC地址,使用組播MAC地址010F-E200-0007。當設備使能了環路監測功能時,會將該目的地址的報文上送CPU處理,並在收到該報文的VLAN內將原始報文廣播一份。
l SMAC:報文的源MAC地址,采用發送該報文的設備的橋MAC。
l TPID:VLAN標簽的類型,取值為0x8100。
l TCI:VLAN標簽的具體值,具體內容為優先級、VLAN ID等。
l Type:協議類型,取值為0x8918。
如圖 2所示,是環路監測報文的內部頭格式定義,其中各字段的解釋如下:
l Code:協議子類型,取值為0x0001,表示環路監測協議。
l Version:版本,取值為0x0000,目前保留。
l Length:報文長度(包括環路監測報文的頭部,但不包括以太網頭部)。
l Reserved:保留字段。
環路監測報文的內容以TLV(Type/Length/Value,類型/長度/值)格式進行組裝,環路監測機製所支持的TLV類型以及攜帶要求如表 1所示。
表 1 TLV類型以及攜帶要求
TLV名稱 | 說明 | 攜帶要求 |
End of PDU | 結束TLV,用來標誌PDU結束 | 可選 |
Device ID | 設備標識TLV,表示發送設備的橋MAC地址 | 必須 |
Port ID | 端口標識TLV,用來標識PDU發送端的端口索引 | 可選 |
Port Name | 端口名稱TLV,用來標識PDU發送端的端口名稱 | 可選 |
System Name | 係統名稱TLV,表示設備的名稱 | 可選 |
Chassis ID | 框號TLV,表示發送端口所在的框號 | 可選 |
Slot ID | 槽位號TLV,表示發送端口所在的槽位號 | 可選 |
Sub Slot ID | 子槽位號TLV,表示發送端口所在的子槽位號 | 可選 |
由於網絡時刻處於變化中,因此環路監測是一個持續的過程,它以一定的時間間隔發送環路監測報文來以確定各端口是否出現環路、以及存在環路的端口上的環路是否已消除等,這個時間間隔就稱為環路監測的時間間隔。
環路監測的處理模式,就是係統監測到環路時的處理方式,分為以下兩種:
l None模式:當監測到端口出現環路時,除打印日誌信息和發送告警信息外,不對該端口進行任何處理。
l Shutdown模式:當監測到端口出現環路時,除打印日誌信息並發送告警信息外,還會關閉該端口,使其不能收發報文(包括環路監測報文)。
除非進行手工開啟,否則被環路監測的Shutdown模式所關閉的端口將一直維持關閉狀態。
環路狀態自動恢複的過程如下:當設備監測到某端口出現環路後,在三倍環路監測時間間隔內該設備如果沒有收到環路監測報文,就判定該端口上的環路已消除,並通知給用戶。
l 環路狀態自動恢複僅在None模式下有效。在Shutdown模式下,由於出現環路的端口將被強製關閉,因此環路會自動立即消失。
l 當網絡中存在環路時,為防止大量報文的衝擊,設備會丟棄部分報文。而如果環路監測報文也被丟棄,設備在環路狀態自動恢複功能的作用下會誤判定環路已消除。在這種情況下,建議用戶將環路監測的處理模式配置為Shutdown模式,或當設備提示出現環路時進行手工排查,將環路消除。