2. 新增AP安裝好後,發現一個問題:
現場感測器設備的升級方式都是透過HTTP協定下載檔案到內部完成升級的。 HTTP伺服器是固定的172.16.1.208。但新增區域下的感測器無法並發(多台)升級,而原區域的感測器怎可以同時多台一起升級。如下:
同為專案下的同型號感測器,為何新增的某J AP不行,而原有的H3C AP正常呢?有朋友就說了,某J AP垃圾嗆。好吧,下定論之前,我們先診斷一下。
二、排查思路
使用手機或筆記本接入某J AP無線2.4G長ping伺服器確認是否丟包和延遲;
比較手機或筆記本接入某J AP無線2.4G,從伺服器同時下載文件,看是否正常;
確認新增AP的頻道、頻寬、無線模式、加密方式等是否及原有H3C AP一致;
確認現場幹擾情況,是否為新增AP的抗干擾能力差導致會話建立不成功頻繁斷流;
抓包確認資料流互動情況,看是否有可用資訊。
三、基礎分析
第一步:確認無線網路的連通性
使用手機或筆記本接取某J AP無線2.4G長ping伺服器,可以確認基本上無延遲和丟包,大抵上看有線/有線通訊應該沒有問題才對。
步驟二:比較手機和筆記本同時http拉取文件的情況
http下載檔案很簡單,只需要電腦開啟瀏覽器,輸入伺服器位址URL下載就行了。因為感測器下載有問題,所以試著比較多台筆記本同時下載試試:
結果發現,確實有且僅有1台PC才可以下載成功,其它的PC均無法建立連線並下載檔案。而比較接入原有的H3C AP無線網路則沒這個問題。下一步就要比對下雙方無線AP設定的異同了。
第三步:檢查新增AP和H3C AP的設定差異
無線配置無非是那麼幾項:SSID、加密方式、無線模式、頻道、頻寬、安全防護(隔離、頻寬控制等)、漫遊等等,所以比較如下:
SSID:名稱皆相同
加密方式:均是WPA2-PSK
無線模式:都是802.11b/g/n/ax,wifi6預設AP,但感測器不知此WIFI 6,協商的是bgn,這點也相同
頻道:都是工作在頻道1
頻寬:都是配置的20Mhz頻寬
安全防護:未配置
漫遊設定:現場感應器固定,不涉及漫遊
看不出起來任何差別。下一步則是要確認現場幹擾情況,是否是新增AP的抗干擾能力差導致會話建立不成功頻繁斷流。
第四步:確認無線幹擾
由於是2.4G無線存取使用,故首先懷疑競爭幹擾導致,現場可以明顯看到同頻道造成的強幹擾,新增AP和H3C AP所在的工作的1頻道存在許多SSID,評估存在多方競爭幹擾:
但是透過修改頻道問題依舊。下一步抓下異常的數據交互,看看是否有任何端倪。
第五步:抓取異常資料流確認有效訊息
因為是新增區域下的出現的問題,所以在新增區域的「二級路由器」上抓包,配置監控埠抓取異常感測器與伺服器互動的資料流:
根據資料包分析發現:
異常的TCP握手成功後,終端請求下載時會收到伺服器的HTTP 429報文,然後就主動FIN掉該連線了,並不存在丟包問題。所以大致判斷無線鏈路和有線鏈路的通訊品質是正常的。對比,我們來看看正常的資料流,伺服器並沒有回覆HTTP 429封包:
OK,差不多定性到是伺服器的HTTP會包導致會話建立失敗的問題了,由於HTTP是明文,我們看相關內容。
第六步:確認HTTP 429封包相關內容
HTTP 429封包內容如下:
我翻譯一下:「即此伺服器上的同時下載數量有限制,已達到限制。稍後再試。」也就是說會話限制存在於伺服器端而非網路層的問題。
那麼問題來了:
H3C也是多終端存取啊,為什麼那邊伺服器不拒絕,而新增AP則拒絕呢?透過現場的全域摸排,發現H3C AP和新增AP實際所處的位置是不一樣的!新增AP加了二級路由器是經過NAT的,而H3C AP沒有!如下:
所以合理懷疑HTTP伺服器與終端建立會話只認來源IP,經過了NAT後就只有1個來源IP和伺服器互動了,所以只能一對一,因此做瞭如下有效的比較測試:
伺服器—二層網路—華三AP ))(( 多台感測器,並發下載升級檔案正常
伺服器—二層網路—某J AP ))(( 多台感測器,並發下載升級檔正常
伺服器—二層網路—(WAN)路由器(LAN)—華三AP ))(( 多台感測器,終端無法並發下載文件,只能一個感測器下載
伺服器—二層網路—(WAN)路由器(LAN)—某J AP ))((多台感測器,終端無法並發下載文件,只能一個感測器下載
四、問題總結與解決方案
問題總結:
根本原因是HTTP伺服器存在著只認一個來源IP的會話限制,從而讓經過了NAT 的新增某J AP和H3C AP表現不同,一開始如果從全域看,就是一個很簡單的問題;
解決方案:
知悉用戶使用二層組網,而不需要經過NAT讓終端直接和伺服器通訊;
關閉HTTP伺服器的會話限制,保證可以基於連接埠的方式建立多會話。