實戰案例:每次集體斷電後,總有那麼一些 AP 無法上線?呵,真是有意思(智障)的案例!

本期分享的案例是有線網路的相關問題。

1. 背景介紹
某商場使用了某P品牌的AC+AP,一共是50多個點位,實現無線覆蓋組網,近期運維人員發現,每次機房斷電後,總有那麼一些AP沒法上線,必須要嘗試斷電重啟(拔插PoE交換機端口)這些AP多次才能上來。

拓樸也是很簡單:

網段:192.168.0.0/23,起始位址為:192.168.0.1—192.168.1.254
2. 處理思路
針對AP離線的問題,我們的標準排查思路是什麼呢?主要如下:


確認AP的運作狀態及接線是否正常;
確認AP是否正確取得到了IP位址;
確認AP是否正常屬於網路中,且AC能ping通AP設備;
如果是跨三層管理,注意DHCP伺服器上是否設定了option欄位保證AP能單播找到AC實作管理。
來吧,一個一個看,很有趣。

3. 排查分析
第一步:確認AP的運作狀態和接線是否正常

AP接線確認:透過POE交換器上網線標籤,確認網口燈是正常亮的,POE供電和Link正常
AP狀態確認:我們找到了離線AP,定睛一看,AP的指示燈是常數的,表示已經被管理了。
意味著什麼?意味著AP設備可能已經被管理了,但這個是離線設備,是不是匪夷所思?

第二步:確認AP是否正確取得到了IP位址

現場是一個二層網絡,所以可以直接在核心交換器的ARP表上查看是否有學到離線AP的IP-MAC就行:

發現是能正常學到的,但由於ARP表項老換時間過長,學到了不一定表示其一直在網路中,那麼下來看一下交換器的MAC位址表中有沒有:

有學到了MAC位址條目,並且處於15號口,那就表示AP設備一定還在網路中的,基本上排除了實體連通性問題。

第三步:測試AC能ping通AP設備
AC要想正常管理到AP,兩者必須是通的,所以下一步在AC的診斷工具中自己去ping該AP,發現是ping不通的,然後用核心交換機去ping該AP:

發現核心也ping不通AP!但是又能學到它的ARP,這又是怎麼一回事呢?玄學吧!而其它正常在線的AP都是能通的,下來進一步再確認AC是否跨三層管理AP,很顯然這個網絡不需要,所以無需關注option配置。

第四步:抽絲剝繭

所以各位,我們把上面的證據收集下來然後剖析一下:

AP離線,但是接線link正常,指示燈常數(被管理)
核心交換器能學到離線AP的ARP,
而MAC表能查到AP對應的端口,其就在網路中沒跑
AP能拿到IP 192.168.1.12,192.168.0.1的核心和192.168.0.253的AC卻ping不通它
那麼,真相似乎只有一個了!離線AP被其它AC設備管理到了,非法AC給AP分配的位址應該是192.168.1.X/24。反推完美解釋上述三條證據鏈!如何驗證?空口抓包看看。

第五步:空口抓包驗證非法AC的存在

因為接取POE交換器是傻瓜式的嘛,所以無法連接埠監AP確認其互動狀況。但可以直接抓空口廣播包確認,為何?因為AP在DHCP互動時會有廣播互動。我們就看看,出了核心交換器給它分配地址,還有誰!
重啟一個AP後,看到沒有,出了0.1這個核心,還有1.253給它分配了位址,看下內容:



OK,確認找到了非法AC設備,這個設備的IP正是192.168.1.253。然後透過這個IP登入看看:



果不其然,離線AP都在上面上線了。但這台非法AC為何會出現在網路裡呢?說來好笑,是因為現場的交換器不夠用了,剛好發現一台「類似交換器」的設備直接插上就用,欸,發現有線也好使。
4. 原理及解決方案
(1) 故障原理

非法AC當成交換器接取網路使用,AP重啟時會概率性的給它分配192.168.1.0/24 IP位址,所以這些AP沒法和192.168.0.X網段的交換器、合法AC通信,並且在非法AC上上線。

(2) 解決方案

將非法AC設備192.168.1.253從網路中撤掉即可。