摘要:對於ARP***,通常常規辦法是很難找出和判斷的,須要抓包分析。經過抓取網絡的全部數據進行分析我得出了分析結果:診斷視圖提示有太多「ARP無請求應答」。如今基本肯定爲ARP欺騙***……
最近網絡中有主機頻繁斷線,剛剛開始還比較正常,可是一段時間後就出現斷線狀況,有時很快恢復,可是有時要長達好幾分鐘啊,這樣對工做影響太大了。最初懷疑是不是物理上的錯誤,總之從最容易下手的東西開始檢查,檢查完畢後沒有發現異常!忽然想到目前網上比較流行的ARP***,ARP***出現的故障狀況與此很是之類似!對於ARP***,通常常規辦法是很難找出和判斷的,須要抓包分析。
1.原理知識
在解決問題以前,咱們先了解下ARP的相關原理知識。
ARP原理:
首先,每臺主機都會在本身的ARP緩衝區(ARPCache)中創建一個ARP列表,以表示IP地址和MAC地址的對應關係。當源主機須要將一個數據包要發送到目的主機時,會首先檢查本身ARP列表中是否存在該IP地址對應的MAC地址,若是有﹐就直接將數據包發送到這個MAC地址;若是沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求數據包裏包括源主機的IP地址、硬件地址、以及目的主機的IP地址。
網絡中全部的主機收到這個ARP請求後,會檢查數據包中的目的IP是否和本身的IP地址一致。若是不相同就忽略此數據包;若是相同,該主機首先將發送端的MAC地址和IP地址添加到本身的ARP列表中,若是ARP表中已經存在該IP的信息,則將其覆蓋,而後給源主機發送一個ARP響應數據包,告訴對方本身是它須要查找的MAC地址;源主機收到這個ARP響應數據包後,將獲得的目的主機的IP地址和MAC地址添加到本身的ARP列表中,並利用此信息開始數據的傳輸。若是源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。
ARP欺騙原理:
咱們先模擬一個環境:
網關:192.168.1.1 MAC地址:00:11:22:33:44:55
欺騙主機A:192.168.1.100 MAC地址:00:11:22:33:44:66
被欺騙主機B:192.168.1.50 MAC地址:00:11:22:33:44:77
欺騙主機A不停的發送ARP應答包給網關,告訴網關他是192.168.1.50主機B,這樣網關就相信欺騙主機,而且在網關的ARP緩存表裏就有192.168.1.50對應的MAC就是欺騙主機A的MAC地址00:11:22:33:44:66,網關真正發給主機B的流量就轉發給主機A;另外主機A同時不停的向主機B發送ARP請求,主機B相信主機A爲網關,在主機B的緩存表裏有一條記錄爲192.168.1.1對應00:11:22:33:44:66,這樣主機B真正發送給網關的數據流量就會轉發到主機A;等於說主機A和網關之間的通信就通過了主機A,主機A做爲了一箇中間人在彼此之間進行轉發,這就是ARP欺騙。
2.解決方法
看來只有抓包了,首先,我將交換機作好端口鏡像設置,而後把安裝有科來網絡分析系統的電腦接入鏡像端口,抓取網絡的全部數據進行分析。經過幾個視圖我得出了分析結果:診斷視圖提示有太多「ARP無請求應答」。
在診斷中,我發現幾乎都是00:20:ED:AA:0D:04發起的大量ARP應答。並且在參考信息中提示說可能存在ARP欺騙。看來個人方向是走對了,可是爲了進一步肯定,得結合其餘內容信息。查看協議視圖瞭解ARP協議的詳細狀況,
ARPResponse和ARPRequest相差比例太大了,很不正常啊。接下來,再看看數據包的詳細狀況。
我從數據包信息已經看出問題了,00:20:ED:AA:0D:04在欺騙網絡中192.168.17.0這個網段的主機,應該是在告訴你們它是網關吧,想充當中間人的身份吧,被欺騙主機的通信流量都跑到他那邊「被審覈」了。
如今基本肯定爲ARP欺騙***,如今我須要覈查MAC地址的主機00:20:ED:AA:0D:04是哪臺主機,幸虧我在平時記錄了內部全部主機的MAC地址和主機對應表,終於給找出真兇主機了。可能上面中了ARP病毒,當即斷網殺毒。網絡正常了,嗚呼!整個世界又安靜了!
3.總結(故障原理)
咱們來回顧一下上面ARP***過程。MAC地址爲00:20:ED:AA:0D:04的主機,掃描***192.168.17.0這個網段的全部主機,並告之它就是網關,被欺騙主機的數據都發送到MAC地址爲00:20:ED:AA:0D:04的主機上去了,可是從我抓取的數據包中,MAC爲00:20:ED:AA:0D:04的主機並無欺騙真正的網關,因此咱們的網絡會出現斷網現象。
4.補充內容
對於ARP***的故障,咱們仍是能夠防範的,如下三種是常見的方法:
方法一:平時作好每臺主機的MAC地址記錄,出現情況的時候,能夠利用MAC地址掃描工具掃描出當前網絡中主機的MAC地址對應狀況,參照以前作好的記錄,也能夠找出問題主機。
方法二:ARP–S可在MS-DOS窗口下運行如下命令:ARP–S手工綁定網關IP和網關MAC。靜態綁定,就能夠儘量的減小***了。須要說明的是,手工綁定在計算機重起後就會失效,須要再綁定,可是咱們能夠作一個批處理文件,能夠減小一些煩瑣的手工綁定!
方法三:使用軟件(Antiarp)使用AntiARPSniffer能夠防止利用ARP技術進行數據包截取以及防止利用ARP技術發送地址衝突數據包。