相關概念
ARP協定是“Address Resolution Protocol”(地址解析協定)的縮寫。ARP 把IP 地址解析成 LAN 硬體使用的媒體訪問控制地址。IP數據包常通過乙太網傳送,但乙太網設備並不識別32位IP位址,它們是以48位乙太網地址傳輸乙太網數據包。因此,必須把IP目的地址轉換成乙太網目的地址。在乙太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。它就是通過地址解析協定獲得的。ARP協定用於將網路中的IP位址解析為目標硬體地址(MAC地址),以保證通信的順利進行。
ARP原理:某機器A要向主機B傳送報文,會查詢本地的ARP快取表,找到B的IP位址對應的MAC地址後就會進行數據傳輸。如果未找到,則廣播A一個ARP請求報文(攜帶主機A的IP位址Ia——物理地址Pa),請求IP位址為Ib的主機B回答物理地址Pb。網上所有主機包括B都收到ARP請求,但只有主機B識別自己的IP位址,於是向A主機發回一個ARP回響報文。其中就包含有B的MAC地址,A接收到B的應答後,就會更新本地的ARP快取。接著使用這個MAC地址傳送數據(由網卡附加MAC地址)。因此,本地高速快取的這個ARP表是本地網路流通的基礎,而且這個快取是動態的。
ARP表:為了加快通信的速度,最近常用的MAC地址與IP的轉換不用依靠交換機來進行,而是在本機上建立一個用來記錄常用主機IP-MAC映射表,即ARP表。
所使用的到乙太網的 IP 或令牌環物理地址翻譯表。ARP該命令只有在安裝了 TCP/IP 協定之後才可用。
命令語法
arp[-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]
參數
顯示所有接口的當前 ARP 快取表。要顯示特定 IP 地址的 ARP 快取項,請使用帶有 InetAddr 參數的 arp -a,此處的 InetAddr 代表 IP 地址。如果未指定 InetAddr,則使用第一個適用的接口。要顯示特定接口的 ARP 快取表,請將 -N IfaceAddr 參數與 -a 參數一起使用,此處的 IfaceAddr 代表指派給該接口的 IP 地址。-N 參數區分大小寫。
與 -a 相同。
刪除指定的 IP 地址項,此處的 InetAddr 代表 IP 地址。對於指定的接口,要刪除表中的某項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表指派給該接口的 IP 地址。要刪除所有項,請使用星號 (*) 通配符代替 InetAddr。
向 ARP 快取添加可將 IP 地址 InetAddr 解析成物理地址 EtherAddr 的靜態項。要向指定接口的表添加靜態 ARP 快取項,請使用 IfaceAddr 參數,此處的 IfaceAddr 代表指派給該接口的 IP 地址。
在命令提示符下顯示幫助。
注釋
InetAddr 和 IfaceAddr 的 IP 地址用帶圓點的十進制記數法表示。
EtherAddr 的物理地址由六個位元組組成,這些位元組用十六進制記數法表示並且用連字元隔開(比如,00-AA-00-4F-2A-9C)。
通過 -s 參數添加的項屬於靜態項,它們不會 ARP 快取逾時。如果終止 TCP/IP 協定後再啟動,這些項會被刪除。要創建永久的靜態 ARP 快取項,請將適當的 arp 命令置於批處理檔案中,並使用“任務計畫”在啟動時運行該批處理檔案。
命令套用
常見用法
arp -a或arp –g
用於查看高速快取中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是UNIX平台上用來顯示ARp高速快取中所有項目的選項,而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。
arp -a Ip
如果有多個網卡,那么使用arp -a加上接口的Ip地址,就可以只顯示與該接口相關的ARp快取項目。
arp -s Ip 物理地址
可以向ARp高速快取中人工輸入一個靜態項目。該項目在計算機引導過程中將保持有效狀態,或者在出現錯誤時,人工配置的物理地址將自動更新該項目。
arp -d Ip
使用該命令能夠人工刪除一個靜態項目。
相關套用
在PC上綁定安全網關的IP和MAC地址:
首先,獲得安全網關的區域網路的MAC地址(例如HiPER網關地址192.168.16.254的MAC地址為0022aa0022aa)。
編寫一個批處理檔案rarp.bat內容如下:
@echo off
arp -d
arp -s 192.168.16.254 00-22-aa-00-22-aa
(將檔案中的網關IP位址和MAC地址更改為實際使用的網關IP位址和MAC地址即可)。
將這個批處理軟體拖到“windows開始程式啟動”中。