深入解析ARP欺騙攻擊防護之ARP
ARP(地址解析協議)是在僅知道主機的IP地址時確定其物理地址的一種協議。因IPv4和以太網的廣泛應用,其主要用作將IP地址翻譯為以太網的MAC地址,但其也能在ATM和FDDI IP網絡中使用。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網絡層(IP層,也就是相當于OSI的第三層)地址解析為數據連接層(MAC層,也就是相當于OSI的第二層)的MAC地址。
假設:
計算機A的IP為192.168.1.1,MAC地址為00-11-22-33-44-01;
計算機B的IP為192.168.1.2,MAC地址為00-11-22-33-44-02;
ARP工作原理如下:
在TCP/IP協議中,A給B發送IP包,在包頭中需要填寫B的IP為目標地址,但這個IP包在以太網上傳輸的時候,還需要進行一次以太包的封裝,在這個以太包中,目標地址就是B的MAC地址.
計算機A是如何得知B的MAC地址的呢?解決問題的關鍵就在于ARP協議。
在A不知道B的MAC地址的情況下,A就廣播一個ARP請求包,請求包中填有B的IP(192.168.1.2),以太網中的所有計算機都會接收這個請求,而正常的情況下只有B會給出ARP應答包,包中就填充上了B的MAC地址,并回復給A。
A得到ARP應答后,將B的MAC地址放入本機緩存,便于下次使用。
本機MAC緩存是有生存期的,生存期結束后,將再次重復上面的過程。
ARP基本功能
在以太網協議中規定,同一局域網中的一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的MAC地址。而在TCP/IP協議棧中,網絡層和傳輸層只關心目標主機的IP地址。這就導致在以太網中使用IP協議時,數據鏈路層的以太網協議接到上層IP協議提供的數據中,只包含目的主機的IP地址。于是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。所謂地址解析(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
另外,當發送主機和目的主機不在同一個局域網中時,即便知道目的主機的MAC地址,兩者也不能直接通信,必須經過路由轉發才可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網外的路由器的某個端口的MAC地址。于是此后發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送。這種情況稱為ARP代理(ARP Proxy)。
ARP緩存表采用了老化機制(即設置了生存時間TTL),在一段時間內如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
【編輯推薦】