引言: 單位新購置了華為交換機用于替換部分老舊交換機,原有部分其他品牌的交換機仍在使用中,新舊交換機之間主要通過電口進行對接。替換完成后,一部分交換機之間無法溝通,一部分交換機在上網用戶數量過多時出現包丟失現象。查看交換機資料發現,有些原有交換機不支持自動協商功能。將新購置的交換機修改為非自動協商模式,網絡故障消失。
單位新購置了華為S3700交換機用于替換部分老舊交換機,原有部分H3C交換機和TP-LINK交換機仍在使用中,新舊交換機之間主要通過電口進行對接。替換完成后,進行試運行測試,發現有部分交換機之間無法溝通,有部分交換機之間可以溝通,但在上網用戶數量過多時速率特別慢,會出現數據包丟失現象。
通過觀察無法工作交換機的指示燈,發現有部分指示燈狀態為常滅,部分交換機交換機的工作指示燈為閃爍,這說明有部分接口沒有正常工作,無法正常收發報文,有一部分可以正常收發報文。進入華為S3700交換機的配置管理界面,使用display interface命令查看接口當前物理狀態,發現不能正常收發報文的接口物理狀態為Down,可以正常收發報文的接口物理狀態為UP。
因為原有線路沒有更換,主干使用光纖收發器,末端連接使用的是六類網線,所以基本可以排除線路故障,但是確實存在部分六類RJ45水晶頭同交換機連接不緊密的現象,存在松動現象。對部分連接不緊密的水晶頭更換成了超五類網線(六類線線芯較超五類線芯細,六類線和普通RJ45水晶頭無法匹配使用,六類線只能匹配六類RJ45水晶頭,超五類網線也無法插入六類RJ45水晶頭),更換完成后,交換機接口仍然無法正常連通。
檢查網線周邊的強電并檢測網線周邊的環境,沒有發現私拉強電、強弱電并行。經檢測,網線周邊的電磁環境也屬正常,溫度也均在正常范圍內。
對故障交換機的所有的接口、單板進行了檢測,沒有發現交換機變形、偏位現象。使用新購華為交換機替換原有 H3C、TP-LINK交換機,發現網絡恢復正常,由此判斷可能是不同類型交換機之間兼容性不夠導致故障出現。
進入華為S3700交換機的配置管理模式,使用display interface ethernet brief命令查看S3700交換機各接口的工作模式,發現接口的工作模式為自動協商,速率為100M,半雙工模式(如圖1)。初步懷疑可能是不同類交換機自動協商失敗造成交換機之間無法正常工作。
在華為S3700交換機的配置管理模式下,使用undo negotiation auto命令修改為非自動協商模式,再使用auto duplex full命令修改為全雙工工作模式,接口指示燈開始閃爍,故障物理接口狀態變為UP,故障排除,報文可以正常收發。
查看了H3C和TP-LINK交換機資料,發現兩種類型的交換機過于老舊,有部分交換機不支持自動協商功能。在不通的交換機接口上因無法自動協商,造成不能正常通信,而在存在丟包的交換機接口上,因協商為半雙工,當用戶不多時,不會出現丟包現象,當用戶數過多時,因存在沖突導致出現丟包現象。
自動協商主要功能是通過物理鏈路兩端的設備交互信息而自動選擇同樣工作參數的機制。協商的主要內容包括雙工模式、運行速率以及流控等參數。目前百兆以太網的標準為IEEE 802.3u,千兆以太網的標準為IEEE 802.3z,其中IEEE 802.3z為強制功能,所有的設備必須遵循并且默認啟用自動協商,所以一般故障出現在十兆、百兆以太網。

圖1 華為S3700交換機各接口工作模式
自動協商機制有兩種,一種稱為Autonegotiation,另一種稱為Autosensing/Speed Detection。10M以太網接口在協商之前會發送 LTP(Link Test Pulse),該脈沖用以檢測鏈路是否應用UP,而100M以太網接口在協商之前會發送FLP(Fast link Pulse)。FLP可以理解為一組LTP和數據脈沖的組合,FLP發出后,如果對端為較舊的設備則會將FLP識別為LTP,最后就造成協商不一致,造成故障。一般存在以下幾種情況。
1.兩臺支持自動協商的設備互連。設備A和設備B都向外發送FLP,每臺設備收到對端的FLP后在自己的FLP中將確認BIT位置位,然后每臺設備將自己的速率和雙式設置雙方都支持的最優模式,并開始發送FAST ETHERNET IDLE,然后鏈路就UP了,這樣就協商成最佳狀態。
2.一臺自協商設備和10BASE-T設備互連。自協商設備向外發送FLP,而10BAST-T則發送LTP。當LTP到達自協商設備后,自協商設備會將本端置為10M半雙工,從而協商的結果是10M半雙工,但實際上是可以達到10M全雙工,這就是協商失敗的結果。
3.一臺自協商設備和100BASE-T設備互連。自協商設備向外發送FLP,而100BASE-T設備發送FAST THERNET IDLEA。自協商設備發送的脈沖到達對端的IDLE后,將本端置為100M半雙工,并開始發送FAST ETHERNET IDLE,這樣協商的結果是100M半雙工,但實際上可以達到100M全雙工,這也是協商失敗的結果。
4.A端設備是自動協商狀態,B端設備雖然支持自動協商,但卻被設置為100M全雙工,但是卻被關閉協商能力。當A端設備發送FLP,而B端設備發送FAST ETHERNET IDLE。A端設備收到B端設備的IDLE后就將本端設備為100M半雙工,而B端設備卻是強制100M全雙工,這樣會出現AB兩端同時發送一種數據幀,A端設備認為發生了沖突并破壞自己的幀并丟棄B端設備的幀,然后重發自己的幀,但是B端設備卻不會重發自己的幀,這種A端會收到很多延遲沖突,而B端設備卻會收到很多CRC錯誤幀,這樣就會造成數據發送故障。
網絡設備的接口目前大部分都支持自動協商機制,但對于不同廠家不同產品在理解和使用自動協商機制時存在差異,在不同廠家不同類型的交換機互連不通時,可先嘗試將接口設置為自動協商模式,當協商不成功時,可修改為非自動協商模式。如果仍未成功時,可根據交換機實際情況和線路情況,使用speed 10|100|1000命令,將速率強制設置成10M、100M或1000M,使不同類型不同廠家的交換機速率保持一致,如果不一致就容易造成數據發送故障。