實戰案例:兩臺交換機匯聚互聯,兩邊的終端卻一部分能通、一部分不通?原來中間有...
本期分享的案例是有線網絡的相關問題。
案例背景
這是一個工業網絡的項目,客戶是一家專做機器人解決方案的集成商。近期在某新廠區中采購了兩臺某P交換機本地組網,兩臺交換機通過網線匯聚互聯,模式為靜態匯聚(有臺交換機不支持動態LACP),交換機下面各自掛在不同的終端設備,拓撲如下:
然而,一段時間后用戶發現,A、B區域之間部分終端通信出現了異常,而部分終端之間通信卻又是正常的,比如:
- A區域的IO_device正常通B區域的CPU1
- A區域的硬盤錄像機正常通B區域的攝像機1
- A區域的CPU2與B區域的IO_device通信出現異常
- A區域的硬盤錄像機與B區域的攝像機2通信出現異常
這種部分通的情況非常奇怪,要說是線路故障,那A、B兩邊應該徹底斷聯才是。OK,那就一起來看看這個“奇怪”的問題吧!
排查分析
第一步:確認問題現象
是因為存在終端之間通信異常問題,所以在A區域插上一臺測試電腦觀察與B區域的連通性情況,果然是存在部分終端的通信異常:
- A區域的PC 能ping通B區域的光端機1、光端機2、攝像機1、攝像機2等設備
- A區域的PC 無法ping通B區域的CPU1、IO_device等設備
那么這些設備是不是可能離開網絡了?為了驗證想法,將PC插到B區域的交換機上驗證。
第二步:確認目標設備是否存在網絡中
首先B區域的CPU1和IO_device分別接的是B交換機的端口1和端口2,我們登錄該交換機查看端口狀態:
顯然是亮的,然后把電腦插在B交換機上ping這兩個設備,都通,說明B區域的目標設備存在網絡中:
玄學了!B區域中該設備都在,從A區域去訪問為啥直接不通呢?那么就要考慮匯聚互聯的問題了,下一步檢查匯聚端口。
第三步:確認兩端匯聚端口
進入A區域交換機查看匯聚端口的狀態:
進入B區域交換機查看匯聚端口的狀態:
看到這里非常奇怪,兩邊的網線不是直連的么?怎么會出現一端亮一端不亮的情況?
其實到這里就已經能明確問題原因了,因為匯聚是根據MAC或者IP通過hash的方式選出口的,如下:
- A區域的PC訪問B區域的CPU1或IO_device設備時,因為A交換機7口異常,走的時6口;
- B區域的CPU1或IO_device設備收到包后,由于B交換機3、5口正常link,所以響應的數據包概率性會hash到5口出去;
- 數據包從B交換機的5口出去后,自然時到達不了A交換機故障7口了,所以造成不通的問題。
那么現在就只有最后一個疑問了:為啥網線直連,A交換機7口不亮而B交換機的5口卻是亮的呢?
答案恐怕呼之欲出:拓撲給的不對,中間可能不是直連而是經過未知設備!
第四步:拓撲梳理
因為我不相信用戶現場的描述,所以讓他直接給我梳理匯聚鏈路的拓撲,發現是這樣的:
終于找到答案,中間是通過兩對光纖收發器接過去的......A交換機網口7那條網線故障,才導致匯聚異常。
原因和解決方案
原因總結:兩邊匯聚端口的狀態不對等導致鏈路存在丟包問題。
解決方案:
- 方案1:修復故障的網線鏈路
- 方案2:換成支持LACP的機型使用,但這里需要考慮一個點是中間的光纖收發器是否支持透傳LACP,如果不支持就沒必要了。