免費ARP 免費ARP,也稱無為ARP(Gratuitous ARP)正常,通常是指只有請求,沒有響應或者無需請求,就有響應的ARP協商
ARP的兩個作用
一、探測IP地址沖突
主機廣播發送ARP Req報文,其總,Dst IP Address就是自己的地址,其余參數都是正常值。
如果一直沒有收到ARP Response,則說明本廣播域中沒有IP地址沖突;如果有相同的IP,則對端收到之后會在操作系統的協調下將網卡置為不可用
通常,主機在初始化、復位網卡時自動發出
二、強制更新對方的ARP表項
強制更新對方的ARP表項,通常用于網管應用和ARP欺騙。該功能可有兩種方式實現,分別是通過ARP Req和Response實現,理解時請參閱ARP流程圖。
例如:
PC1、PC2等在上網時,需要通過網關Rouer的ARP信息,但由于ARP協議中沒有必要的認證等安全機制,導致Cheater有機可乘:
1、Cheater廣播一個ARP Response報文,其中的Src MAC Addr為Cheater的網卡地址,但是SrcIPAddr為Router的IP,即網關地址,其余的還是按照正常值設置
局域網中所有的PC收到更新之后都會更新自己的網關ARP信息,但實際上是錯誤信息。
2、Cheater單播一個ARP Request報文給的PC,其中的SrcMACAddr為Cheater的網卡地址,SrcIPAddr為Router的IP,DstIP為的PC的地址,其余的還是按照正常值設置
相關PC收到ARP請求之后會更新自己的ARP信息。
ARP欺騙小結
從欺騙的角度來看,用廣播ARP Response比較簡單,一次廣播即可解決問題;但對與被欺騙者的具體信息則不清楚;
從流量、網絡管理的角度來看,使用多次單播ARP Request的方式較好,雖然復雜一些,但對于網中用戶可以詳細監管,例如“P2P*”軟件就是使用這種方式
代理ARP可能會引發其他的問題,如:
路由器GW的外網口連接的是廣播型的以太網,GW路由的下一跳是R1,但使用者在寫路由器時,將GW的端口名字作為了next-hop,此時路由器在請求ARP時,永遠只會請求IP包中目的IP的ARP信息,由于以太網廣播的關系,R1和R2都能收到該請求,如果R1和R2都能到達目的地,且都開啟了代理ARP,則GW的ARP表會產生錯亂