arp

arp 命令用於顯示和修改 IP 到 MAC 轉換表

補充說明

arp 命令 是 Address Resolution Protocol,地址解析協議,是通過解析網絡層地址來找尋數據鏈路層地址的一個網絡協議包中極其重要的網絡傳輸協議。而該命令可以顯示和修改 arp 協議解析表中的緩衝數據。

這個核心協議模塊實現RFC826中定義的 Address Resolution Protocol [譯註:即TCP/IP的第三層到第一層的地址轉換協議],用於在直接相連的網絡中換第二層硬件地址和 Ipv4 協議地址之間的轉換。 用戶除非想對其進行配置,否則一般不會直接操作這個模塊。

實際上,它提供對核心中其它協議的服務。

用戶進程可以使用 packet(7) 的 sockets,收到 ARP 包(譯註:一譯分組)。 還有一種機制是使用 netlink(7) sockets,在用戶空間管理 ARP 緩存的機制。我們也可以通過 ioctl (2) 控制任意 PF_INET socket上的 ARP 表

ARP 模塊維護一個硬件地址到協議地址映射的緩存。這個緩存有大小限制,所以不常用的和舊的記錄(Entry)將被垃圾收集器清除(garbage-collected),垃圾收集器永遠不能刪除標爲永久的記錄。我們可以使用ioctls直接操縱緩衝, 並且其性狀可以用下面定義的 sysctl 調節。

如果在限定的時間(見下面的sysctl)內,一條現存映射沒有肯定反饋時, 則認爲相鄰層的緩存記錄失效。 爲了再次向目標發送數據,ARP將首先試着詢問本地arp進程 app_solicit 次,獲取更新了的 MAC(介質訪問控制)地址。 如果失敗,並且舊的MAC地址是已知的,則發送 ucast_solicit 次的 unicast probe。如果仍然失敗,則將向網絡廣播一個新的ARP請求,此時要 有待發送數據的隊列

如果 Linux 接到一個地址請求,而且該地址指向 Linux 轉發的地址,並且接收接口打開了代理 arp 時,Linux 將自動添加一條非永久的代理 arp 記錄;如果存在拒絕到目標的路由,則不添加代理 arp 記錄。

語法

1arp(選項)(參數)

選項

 1-a # 主機 :顯示 arp 緩衝區的所有條目;
 2-H # 地址類型 :指定 arp 指令使用的地址類型;
 3-d # 主機 :從 arp 緩衝區中刪除指定主機的 arp 條目;
 4-D # 使用指定接口的硬件地址;
 5-e # 以 Linux 的顯示風格顯示 arp 緩衝區中的條目;
 6-i # 接口 :指定要操作 arp 緩衝區的網絡接口;
 7-s # 主機 MAC 地址 :設置指定的主機的 IP 地址與 MAC 地址的靜態映射;
 8-n # 以數字方式顯示 arp 緩衝區中的條目;
 9-v # 顯示詳細的 arp 緩衝區條目,包括緩衝區條目的統計信息;
10-f # 文件 :設置主機的 IP 地址與 MAC 地址的靜態映射。

參數

主機:查詢 arp 緩衝區中指定主機的 arp 條目。

實例

顯示arp 緩衝區內容

1[root@localhost ~]# arp -v
2Address                  HWtype  HWaddress           Flags Mask            Iface
3192.168.0.134            ether   00:21:5E:C7:4D:88   C                     eth1
4115.238.144.129          ether   38:22:D6:2F:B2:F1   C                     eth0
5Entries: 2      Skipped: 0      Found: 2

添加靜態 arp 映射

1arp -s IP MAC-ADDRESS
2arp -s 192.168.1.1 00:b1:b2:b3:b4:b5

刪除 arp 緩存條目

1arp -d 192.168.1.1

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: