ARP,地址解析協議。在以太局域網中,主機之間交換數據幀時,是通過MAC地址進行的。因此,當以太網的一台主機向另一台IP地址的主機發送數據包時,它需要知道目的IP地址所對應的MAC地址,才能把這個IP數據包發送過去。
工作過程:
主機A(192.168.0.10)向主機B(192.168.0.20)發送一個IP數據包,主機A需要把這個IP數據包封裝在以太數據幀中才能發送,此時需要知道主機B的MAC地址。如果主機A不知道主機B的MAc地址,它就會在網絡上發送一個廣播數據幀,其目標MAC地址是廣播地址“FF.FF.FF.FF.FF.FF”。相當於在本地局域網詢問:“192.168.0.20的MAC地址是什麼”。同一子網下的所有主機都會收到數據幀,但只有B收到數據幀會回復數據幀,內容相當於:“192.168.0.20的MAC地址是12-22-3e-34-4r-6d”。
ARP緩存:
通常,每台主機都會有自己的ARP緩存,其存放著各IP地址所對應的MAC地址,發送數據包時,先檢查ARP緩存是否有IP地址與MAC地址的相應記錄,若沒有,才會進行ARP解析。
ARP緩存條目分為靜態和動態兩種,靜態條目由管理員指定,其固定不變。動態條目,在一定時間內如果緩存表中的某一條目沒有被使用,將會自動刪除。另一方面,當IP地址與MAC地址對應關系改變時,能及時更新。
arp命令:
-n 不進行域名解析
-s addr hw 添加一條靜態arp條目
-a addr 查看指定ip地址arp條目
-d addr 刪除指定地址arp條目
-f file 把file文件中指定的ARP條目導入arp緩存中 (默認是/etc/ethers)
[root@ding ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.1 ether c8:3a:35:2f:24:f0 C
[root@ding ~]# ping 192.168.0.106
PING 192.168.0.106 (192.168.0.106) 56(84) bytes of data.
64 bytes from 192.168.0.106: icmp_seq=1 ttl=64 time=2.04 ms
64 bytes from 192.168.0.106: icmp_seq=2 ttl=64 time=0.326 ms
64 bytes from 192.168.0.106: icmp_seq=3 ttl=64 time=0.482 ms
[root@ding ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.1 ether c8:3a:35:2f:24:f0 C eth0
192.168.0.106 ether 38:ea:a7:86:02:a4 C eth0