虛擬網關解決ARP***-原理分析

//by redice 2008.11.21
 
  前些天我在黑基上看到了一篇文章《虛擬網關解決ARP***》,感覺很巧妙,原文地址是(http://www.hackbase.com/tech/2008-10-07/41833.html)。唯一不足的地方是原文寫的不夠通俗。爲了讓更多的人掌握這個巧妙的方法,今天我斗膽來分析一下《虛擬網關解決ARP***》的原理,如果你已經對ARP***的原理還不熟悉的話,建議你先去了解一下ARP***的原理。

 

1. 局域網內通信靠IP地址還是MAC地址?

答案:MAC地址。通常局域網內MAC地址是通過IP地址查詢到的。

 

2. 如果已知網關的MAC地址,而不知道網關IP地址,能否通過網關上網?

答案:可以,因爲上面已經說過了,局域網內通信靠的是MAC地址,而不是IP地址。
 
 
 
  要實現虛擬網關上網,還需要經過一些特殊的設置。方法如下(假設已經知道真實網關 MAC:11-11-11-11-11-11,IP:192.168.1.1/24):
第一步 在網段內找一個空閒的IP地址作爲虛擬網關的IP,例如192.168.1.123。在“TCP/IP屬性裏將默認網關設置成192.168.1.123
第二步 使用“arp -s 192.168.1.123 11-11-11-11-11-11”命令將我們設置的虛擬網關的IP和真實網關的MAC地址綁定起來。(這一步是關鍵,arp -s命令可以將IP地址MAC地址綁定起來。命令在哪裏執行?cmd下。)
  設置完了,試一試,你會發現你仍然能夠上網,爲什麼呢?繼續往下看。

  上面的討論貌似和今天的主題沒有什麼聯繫,其實虛擬網關解決ARP***,已經在不知不覺中被我們設置完成了。通過上面的那種虛擬網關,我們不但依然能上網,而且還能防止ARP***。
 
  下面說分析一下兩個問題:
第一,爲什麼能夠通過虛擬網關上網?
第二,爲什麼虛擬網關設置能否防止ARP***?

 

  第一個問題:爲什麼能夠通過虛擬網關上網?

答案:當我們的電腦要連接互聯網時,數據需要經過網關的中轉,如果能維持和網關的通信,我們的電腦就能保持上網。我們的電腦向外部網絡發送數據時,先發送給了網關,我們已經設置了網關的IP地址是192.168.1.123,但是局域網內通信靠的是MAC地址,因此,我們首先需要根據網關的IP地址獲取網關的MAC地址,在上面我們已經綁定了虛假網關“192.168.1.123” 和真實網關的MAC,這樣我們使用這個虛假的網關IP就獲取到了真實的網關MAC,因此我們的電腦讓然能正確地向網關發送數據。於是乎,我們就能上網了。

 
  第二個問題:爲什麼虛擬網關設置能夠防止ARP***?
答案:這個纔是我們今天要討論的關鍵。如下圖所示的局域網環境。

 
 
 
  圖中主機A進行了虛擬網關設置(虛擬網關IP地址是192.168.1.123)。
 
  現在,我們針對兩種常見的ARP***進行分析.
 
  第一種情況:主機B對主機A發動ARP***(冒充路由器向主機A發送ARP應答)。根據ARP***的原理,ARP數據包的源IP肯定是路由器的IP192.168.1.1,源硬件地址肯定是一個虛假的MAC地址,主機A接收到數據包,建立起一條ARP映射的緩存(192.168.1.1-虛假MAC,由於我們使用的是虛假網關,因此這個虛假的映射對我們已經沒有什麼影響了。
  第二種情況:主機A中了ARP病毒,不斷對外發送ARP***數據包(通常是冒充網關發送的ARP應答),病毒獲取到的網關IP是我們設置的虛假網關IP,因此它對外冒充的也就是虛假網關,呵呵,這當然對其它電腦也沒有影響了。
 
 
  從上面的兩種情況我們可以看出,這種虛擬網關的方法不但能夠防止自己不夠***,還能防止自己中毒後***別人,真是一石二鳥。如果在路由器中再靜態綁定局域網內機器的IPMAC,那就更完美了。小弟不才,說的不當之處還請指出。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章