arp命令

[功能]

管理系統的arp緩存。

 

[描述]

用來管理系統的arp緩存,常用的命令包括:

arp: 顯示所有的表項。

arp  -d  address: 刪除一個arp表項。

arp  -s address hw_addr: 設置一個arp表項。

 

常用參數:

-a 使用bsd形式輸出。(沒有固定的列)

-n 使用數字形式顯示ip地址,而不是默認的主機名形式。

-D 不是指定硬件地址而是指定一個網絡接口的名稱,表項將使用相應接口的MAC地址。一般用來設置ARP代理。

-H type, --hw-type type: 指定檢查特定類型的表項,默認type爲ether,還有其他類型。

-i If, --device If: 指定設置哪個網絡接口上面的arp表項。

-f filename: 作用同'-s',不過它通過文件來指定IP地址和MAC地址的綁定。文件中每行分別是主機和MAC,中間以空格分割。如果沒有指定文件名稱,則使用/etc/ethers文件。

 

以下例子中,用主機名稱的地方也可以用點分10進制的ip地址來表示。另外輸出結果中用"C"表示ARP緩存內容,"M"表示永久性表項,"P"表示公共的表項。

 

 

[舉例]

*查看arp表:

#arp

Address                  HWtype  HWaddress           Flags Mask            Iface

hostname1                ether   44:37:e6:97:92:16   C                     eth0

hostname2                ether   00:0f:fe:43:28:c5   C                     eth0

hostname3                ether   00:1d:92:e3:d5:ee   C                     eth0

hostname4                ether   00:1d:0f:11:f2:a5   C                     eth0

這裏,Flags中的"C"代表此表項目是高速緩存中的內容,高速緩存中的內容過一段時間(一般20分鐘)會清空,而"M"則表示靜態表項,靜態表項的內容不會過一段時間被清空。

 

*查看arp表,並且用ip顯示而不是主機名稱:

# arp -n

Address                  HWtype  HWaddress           Flags Mask            Iface

10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0

10.1.10.253              ether   44:37:e6:9b:2c:53   C                     eth0

10.1.10.178              ether   00:1b:78:83:d9:85   C                     eth0

10.1.10.119              ether   00:1d:0f:11:f2:a5   C                     eth0

這裏,對於上面的條目,假設當我們"ping 10.1.10.1"通過之後,arp中會多一條"10.1.10.1"相關的信息。

 

*查看arp表,顯示主機名稱和ip:

#arp -a

ns.amazon.esdl.others.com (10.1.10.254) at 00:1d:92:e3:d5:ee [ether] on eth0

server.amazon.eadl.others.com (10.1.10.253) at 44:37:e6:9b:2c:53 [ether] on eth0

D2-baijh.amazon.esdl.others.com (10.1.10.178) at 00:1b:78:83:d9:85 [ether] on eth0

aplab.local (10.1.10.119) at 00:1d:0f:11:f2:a5 [ether] on eth0

 

*添加一對IP和MAC地址的綁定:

# arp -s 10.1.1.1 00:11:22:33:44:55:66

這裏,如果網絡無法達到,那麼會報告錯誤,具體如下:

root@quietheart:/home/lv-k# arp -s 10.1.1.1 00:11:22:33:44:55:66

SIOCSARP: Network is unreachable

root@quietheart:/home/lv-k# arp -n

Address                  HWtype  HWaddress           Flags Mask            Iface

10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0

10.1.10.253              ether   44:37:e6:9b:2c:53   C                     eth0

10.1.10.178              ether   00:1b:78:83:d9:85   C                     eth0

10.1.10.119              ether   00:1d:0f:11:f2:a5   C                     eth0

實際上,如果"arp -s"設置成功之後,會增加一個Flags爲"CM"的表項,有些系統靜態條目不會因爲ARP響應而更新,而高速緩存中的條目會因此而更新。如果想要手工設置沒有"M",那麼用"temp"選項,例如:"arp -s IP MAC temp"類似的命令,實踐發現,如果已經設置過IP了,那麼再設置也不會改變其Flags。

 

*刪除一個arp表項:

# arp -d 10.1.10.118

這裏,刪除之後只是硬件地址沒有了,如下:

root@quietheart:~# arp -n

Address                  HWtype  HWaddress           Flags Mask            Iface

10.1.10.118              ether   00:25:9c:c2:79:90   CM                    eth0

10.1.10.254              ether   00:1d:92:e3:d5:ee   C                     eth0

root@quietheart:~# arp -d 10.1.10.118

root@quietheart:~# arp -n

Address                  HWtype  HWaddress           Flags Mask            Iface

10.1.10.118                      (incomplete)                              eth0

10.1.10.254              ether   00:1d:92:e3:d5:ee   C   

 

*刪除eth0上面的一個arp表項:

# arp -i eth0 -d 10.1.10.118

 

[其它]

*指定回覆的MAC地址:

#/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub

當eth0收到IP地址爲10.0.0.2的請求時,將會用eth1的MAC地址回答。

例如,雙網卡機器運行這條命令:

/usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub

會多一項:

10.0.0.2                 *           MP                    eth0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章