据我所知,arping 请求另一个 mac 信息,该信息上保存着另一个主机的 IP 地址。
但是,我无法理解带有 -U 选项的 [未经请求的 ARP 模式]。
# arping -i
arping: invalid option -- 'i'
Usage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination
-f : quit on first reply
-q : be quiet
-b : keep broadcasting, don't go unicast
-D : duplicate address detection mode
-U : Unsolicited ARP mode, update your neighbours
-A : ARP answer mode, update your neighbours
-V : print version and exit
-c count : how many packets to send
-w timeout : how long to wait for a reply
-I device : which ethernet device to use (eth0)
-s source : source ip address
destination : ask for what ip address
# arping 10.10.10.50
ARPING 10.10.10.50 from 10.10.10.32 bond0
Unicast reply from 10.10.10.50 [XX:XX:XX:XX:XX:XX] 0.706ms
Unicast reply from 10.10.10.50 [XX:XX:XX:XX:XX:XX] 0.692ms
......
# arping -U 10.10.10.50
bind: Cannot assign requested address
我正在使用 CentOS 6.2。谢谢。
答案1
在正常情况下,如果计算机 A 生成 ARP 请求,则它将具有自己的以太网 (MAC) 地址和计算机 B(计算机 A 想要发现其 MAC 地址的计算机)的 IP 地址。此 ARP 数据包将在以太网网络上广播,并且计算机 B 会向计算机 A 发送单播回复,其中包含计算机 B 的 MAC 地址。一旦计算机 A 收到来自计算机 B 的回复,它就会更新其 ARP 缓存;换句话说,它将计算机 B 的 IP 地址与其 MAC 地址关联起来。
在未经请求的 ARP 中,机器 A 生成的数据包将具有自己的以太网地址(就像正常情况一样),但数据包中不会添加机器 B 的 IP 地址,而是机器 A 的 IP 地址。这样的 ARP 数据包用于更新邻居的 ARP 缓存。也就是说,例如,如果机器 A 的 IP 地址发生变化,那么它可以生成这样的 ARP 数据包,一旦网络中的所有其他机器收到该数据包,它们就可以用机器 A 的新 IP 地址更新其本地缓存。