最近一周多以來(lái)被一個(gè)網(wǎng)絡(luò)問(wèn)題一直困擾著,上周開(kāi)始有同事反應(yīng)使用在筆記本上安裝虛擬機(jī)后網(wǎng)絡(luò)不通,當(dāng)時(shí)也沒(méi)在意,重啟網(wǎng)卡后正常,后來(lái)不行,將動(dòng)態(tài)IP設(shè)置為靜態(tài)后可以了,當(dāng)時(shí)以為是個(gè)例。過(guò)了幾天又有兩三個(gè)人反應(yīng)有同樣問(wèn)題,不得已在自己電腦上也安裝了同樣環(huán)境,結(jié)果問(wèn)題都復(fù)現(xiàn)了。期間也嘗試了好多種解決辦法,剛開(kāi)始比較急,也比較浮躁,以為是用戶(hù)客戶(hù)端自己的問(wèn)題,但后來(lái)隨著問(wèn)題深入,發(fā)現(xiàn)應(yīng)該和網(wǎng)絡(luò)有關(guān),在網(wǎng)上上查詢(xún)了并嘗試了很多操作,但沒(méi)有能夠解決問(wèn)題,有點(diǎn)氣餒,因?yàn)橐恢闭也坏絾?wèn)題根源所在,當(dāng)時(shí)也找過(guò)好幾個(gè)廠(chǎng)家技術(shù)人員,但每次聽(tīng)說(shuō)問(wèn)題描述后都一直表明和路由器無(wú)關(guān),所以每次都不了了之。
為此網(wǎng)上查找了很多關(guān)于虛擬機(jī)網(wǎng)絡(luò)配置,ARP相關(guān)信息,在了解ARP相關(guān)知識(shí)后,懷疑應(yīng)該是路由器哪里配置問(wèn)題,無(wú)法學(xué)習(xí)虛擬機(jī)的MAC導(dǎo)致,嘗試在路由器上手動(dòng)添加宿主機(jī)Mac+虛擬機(jī)IP對(duì)應(yīng)后,虛擬機(jī)網(wǎng)絡(luò)正常,雖然沒(méi)有徹底解決問(wèn)題,但比上周有了一點(diǎn)進(jìn)步,也更加明確這是ARP設(shè)置問(wèn)題。
一早聯(lián)系廠(chǎng)家技術(shù)人員,說(shuō)明問(wèn)題后對(duì)方還是用同樣里有拒絕,后來(lái)不甘心,把之前嘗試的一些操作都告知對(duì)方后,對(duì)方讓我發(fā)送路由器配置信息,結(jié)果一眼就看出了是因?yàn)閱⒂昧薃RP強(qiáng)制學(xué)習(xí)導(dǎo)致,取消該功能后重啟虛擬機(jī)網(wǎng)絡(luò),一切正常。
后來(lái)回想起來(lái),之前又一次網(wǎng)絡(luò)問(wèn)題懷疑是ARP攻擊,所以在路由器上啟用了這個(gè)功能,但是后來(lái)遺忘了,解決這個(gè)問(wèn)題用了不到5分鐘,但教訓(xùn)是深刻的。
首先是在解決問(wèn)題時(shí)沒(méi)有認(rèn)真仔細(xì)對(duì)待,當(dāng)時(shí)以為是個(gè)體問(wèn)題,所以也就用其他方式應(yīng)對(duì)了,沒(méi)有去深入;
其次在解決問(wèn)題時(shí)沒(méi)有準(zhǔn)確定位,主要一是因?yàn)殚_(kāi)始時(shí)沒(méi)有在一個(gè)測(cè)試環(huán)境復(fù)現(xiàn)問(wèn)題,另外也從沒(méi)有認(rèn)真的思考到底是什么原因,沒(méi)有從一個(gè)整體去思考,比如應(yīng)該從虛擬機(jī)--宿主機(jī)-AP-路由器一個(gè)一個(gè)排查;
第三是之前做了網(wǎng)絡(luò)配置沒(méi)有詳細(xì)記錄,以為小的配置改變就不記錄,導(dǎo)致后來(lái)想不起來(lái),也為排查問(wèn)題延誤了時(shí)間,因?yàn)檫@個(gè)問(wèn)題之前是不存在的,所以懷疑是不是哪一次做了配置或其他改變因?yàn)椋捎谥白隽寺酚善魃?jí),一直以為是升級(jí)導(dǎo)致;
最后是對(duì)自己自信不夠,覺(jué)得這個(gè)問(wèn)題太復(fù)雜,要尋求廠(chǎng)商協(xié)助,最后廠(chǎng)商把問(wèn)題踢回來(lái)后還得自己解決。
從這個(gè)問(wèn)題中也學(xué)習(xí)了虛擬機(jī)網(wǎng)絡(luò)模式,ARP相關(guān)知識(shí),也是一個(gè)好處,另外也告誡自己,以后碰到問(wèn)題一定要冷靜,專(zhuān)心的分析,不要三心二意,從源頭原理上去分析問(wèn)題,一步一步排查,必要的時(shí)候?qū)で蟮谌浇鉀Q,最后也得相信自己,只要專(zhuān)注思考,認(rèn)真仔細(xì)的去排查,肯定會(huì)找到問(wèn)題根源并解決的。
故障現(xiàn)象:
Mac或其他系統(tǒng)安裝虛擬機(jī)的筆記本,連接無(wú)線(xiàn)網(wǎng)絡(luò)后,虛擬機(jī)可以從路由器上獲取IP,但是無(wú)法Ping 網(wǎng)關(guān)或其他內(nèi)網(wǎng)同網(wǎng)段客戶(hù)機(jī),除了安裝虛擬機(jī)的宿主機(jī)。路由器也無(wú)法Ping虛擬機(jī)。
網(wǎng)絡(luò)連接方式:
虛擬機(jī)--筆記本(宿主機(jī))--AP--POE AP交換機(jī)--華為路由器
環(huán)境:
宿主機(jī)涉及Mac 操作系統(tǒng),Windows 10, Ubuntu。
虛擬機(jī)軟件:Vmware Fucsion, Vmware workatation, Oracle Virtualbox。
虛擬機(jī)系統(tǒng): Centos 7, Windows 7, Ubuntu.
宿主機(jī)和虛擬機(jī)用的是橋模式。
路由器(網(wǎng)關(guān)/DHCP server): 華為AR1220E-S
AP: 華為AP2010DN
排查步驟:
1). 重啟虛擬機(jī)網(wǎng)絡(luò)服務(wù),無(wú)法解決問(wèn)題;
2). 將虛擬機(jī)IP設(shè)置為靜態(tài),有的虛擬機(jī)網(wǎng)絡(luò)正常,但是有的不正常;
3). 嘗試多次斷開(kāi)宿主機(jī)網(wǎng)絡(luò)連接,有的虛擬機(jī)可以,但有的不行;
4). 檢查宿主機(jī)網(wǎng)絡(luò)和虛擬機(jī)網(wǎng)絡(luò)連接,網(wǎng)絡(luò)正常;
5). 檢查路由器設(shè)置,路由器ARP信息里沒(méi)有虛擬機(jī)IP和MAC地址對(duì)應(yīng)信息,但是路由器DHCP客戶(hù)表里有虛擬機(jī)IP和MAC;
6). 通過(guò)抓包軟件在宿主機(jī)上發(fā)現(xiàn),虛擬機(jī)ping 網(wǎng)關(guān)后沒(méi)有響應(yīng)。
在虛擬機(jī)上ping 網(wǎng)關(guān)然后在宿主機(jī)上抓包,發(fā)現(xiàn)ping 請(qǐng)求后發(fā)出后得到的是:no response found,也就是無(wú)響應(yīng)。
如果將筆記本連接在有線(xiàn)網(wǎng)絡(luò)則虛擬機(jī)網(wǎng)絡(luò)正常;
將筆記本帶回家連接家里路由器,發(fā)現(xiàn)虛擬機(jī)網(wǎng)絡(luò)正常;
將虛擬機(jī)網(wǎng)絡(luò)由橋模式改為NAT,正常;
在路由器ARP設(shè)置里,手動(dòng)添加靜態(tài)MAC地址表,添加虛擬機(jī)IP和宿主機(jī)MAC地址映射后,虛擬機(jī)網(wǎng)絡(luò)正常;
重啟路由器,重啟后正常,但第二天故障依舊。
解決方法:
因?yàn)槁酚善鲉⒂昧藦?qiáng)制ARP學(xué)習(xí),關(guān)閉后重啟虛擬機(jī)網(wǎng)絡(luò)服務(wù)即正常。
路由器配置:
<CS-Router01>system-view
[CS-Router01]undo arp learning strict
即在路由器上關(guān)閉ARP嚴(yán)格學(xué)習(xí),在網(wǎng)頁(yè)"安全"--"安全防護(hù)"--"ARP防攻擊"--"ARP嚴(yán)格學(xué)習(xí)" 關(guān)閉。
虛擬機(jī)配置(Centos7):
systemctl restart network
參考資料:
1). arp learning strict(系統(tǒng)視圖):
該命令應(yīng)用場(chǎng)景:
如果大量用戶(hù)在同一時(shí)間段內(nèi)向設(shè)備發(fā)送大量ARP報(bào)文,或者攻擊者偽造正常用戶(hù)的ARP報(bào)文發(fā)送給設(shè)備,則會(huì)造成下面的危害:
設(shè)備因處理大量ARP報(bào)文而導(dǎo)致CPU負(fù)荷過(guò)重,同時(shí)設(shè)備學(xué)習(xí)大量的ARP報(bào)文可能導(dǎo)致設(shè)備ARP表項(xiàng)資源被無(wú)效的ARP條目耗盡,造成合法用戶(hù)的ARP報(bào)文不能繼續(xù)生成ARP條目,導(dǎo)致用戶(hù)無(wú)法正常通信。
偽造的ARP報(bào)文將錯(cuò)誤地更新設(shè)備ARP表項(xiàng),導(dǎo)致合法用戶(hù)無(wú)法正常通信。
為避免上述危害,可以在網(wǎng)關(guān)設(shè)備上使能ARP表項(xiàng)嚴(yán)格學(xué)習(xí)功能。只有本設(shè)備主動(dòng)發(fā)送的ARP請(qǐng)求報(bào)文的應(yīng)答報(bào)文才能觸發(fā)本設(shè)備學(xué)習(xí)ARP,其他設(shè)備主動(dòng)向本設(shè)備發(fā)送的ARP報(bào)文不能觸發(fā)本設(shè)備學(xué)習(xí)ARP,這樣,可以拒絕大部分的ARP報(bào)文攻擊。
<CS-Router01>dis arp learning strict
The global configuration:
Interface LearningStrictState
Total:0
Force-enable:0
Force-disable:0
2). ARP學(xué)習(xí)失敗故障啟示錄
http://support.huawei.com/huaweiconnect/enterprise/zh/thread-437689.html
3). ARP 學(xué)習(xí)理解
https://wenku.baidu.com/view/a474111bba0d4a7303763a82.html
4).使用地址解析協(xié)議 (ARP) 對(duì)網(wǎng)絡(luò)連接問(wèn)題進(jìn)行故障排除
https://kb.vmware.com/s/article/2077864?r=2&Quarterback.validateRoute=1&KM_Utility.getArticleData=1&KM_Utility.getGUser=1&KM_Utility.getArticleLanguage=1&KM_Utility.getArticle=1