dhcping和arping的使用
dhcping使用
Got answer from: 10.10.192.11
gateway-IP-address]
DESCRIPTION
This command allows the system administrator to check if a remote DHCP server is still functioning.
Options are:
-v Verbose, print some information.
-i Use DHCPINFORM packets.
-r Use DHCPREQUEST packets (default behaviour).
-q Quiet, print nothing on the screen.
-t maxwait
Maximum time to wait for an answer from the server in seconds. Default is 3 seconds.
-c client-IP-address
Request this IP address. Note that this is also the IP address the answer will be sent to.
-s server-IP-address
Send the DHCP packet to this IP address.
-h client-hardware-address
Use this hardware-address in the DHCP request. It can be up to sixteen octets seperated by colons (i.e.
01:02:03:04)
-g gateway-IP-address
Use this IP address for the gateway IP address in the DHCP packet. This option is currently broken.
arping的使用
说明:arping是用于发送arp请求到一个相邻主机的工具;
arping使用arp数据包,通过ping命令检查设备上的硬件地址。
语法:arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination
参数:
-c count表示发送指定数量的 ARP 请求数据包后就停止。如果制定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
-b 用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。
-w timeout设定一个超时时间,单位是秒。如果到了指定时间,arping 还没有完全收到响应则退出;
-q quiet output 不显示任何信息;
-f 表示在收到第一个响应包后就退出;
-s source设定 arping 发送的 arp 数据包中的 SPA 字段的值。如果为空,则按下面处理
如果是 DAD 模式(冲突地址探测),则设置为 0.0.0.0;
如果是 Unsolicited ARP 模式(Gratutious ARP)则设置为目标地址;
否则从路由表得出;
-I interface设置ping使用的网络接口;
destination设置目标地址。
ip冲突是个很基本,也很不应该犯的错误,我来到这个公司3年来,只遇到过2次,但这两次都很致命,都是在很关键的产品上出了问题,如果您也想仔细了解哦arp相关的更深层次的知识,我愿意把我们研究的结果共享出来。
研究了一下arping命令的工作机制和原理,并详细的查看了arping命令的源码。
列出几个我们在检查ip地址冲突时候比较有用的参数:
arping [ -AbDfhqUV] [ -c count] [ -w deadline] [ -s source] -I interface destination
# 注释 :arping 是用于发送 ARP 请求到一个相邻主机的工具
-b # 注释 :-b 用于发送以太网广播帧(FFFFFFFFFFFF) 。arping 一开始使用广播地址,在收到响应后就使用 unicast 地址。
-c count # 注释 :-c 表示发送指定数量的 ARP 请求数据包后就停止。
-I interface # 注释 :-I 指定用那个接口来发送 ARP 请求包。这个选项是必须的。
-s source # 注释 :-s 设定 arping 发送的 arp 数据包中的 SPA 字段的值。如果为空,则按下面处理
# -)1、如果是 DAD 模式(冲突地址探测),则设置为 0.0.0.0
# -)2、如果是 Unsolicited ARP 模式(Gratutious ARP)则设置为目标地址
# -)3、否则从路由表得出
-U # 注释:-U 就是启用 Gratutious 模式,它用于更新别的主机上的 ARP 表中本地主机的条目。不需要响应。
arping命令中发送arp packets时候,是往FF:FF:FF:FF:FF:FF这个以太网内的广播地址发送,包括发送arping命令的本机也会收到这个arp packets(但是本机收到之后不会Reply任何信息)。比如当我们在192.168.10.138上执行下面的命令时:
arping 192.168.10.139
会默认使用eth0,向局域网内所有的主机发送一个:who-has 192.168.10.139的arp request,tell 192.168.10.138 your mac address,类似这样:
”我是主机192.168.10.138 , mac是xxxxxxxxxxx ,ip为192.168.10.139的主机请告之你的mac”
ip为192.168.10.139的主机响应这个广播,应答ARP广播为:”我是192.168.10.139,我的mac为 xxxxxxxxxx2″,此应答只发回给192.168.10.138而不是广播,收到之后,192.168.10.138主机刷新自己的ARP缓存。
1、一个ip(192.168.10.139)被绑在了两台或多台不同的机器(A、B…)上
例如我们在192.168.10.138这台机器上进行监控:
方法一:arping -I eth1 -c 1 192.168.10.139 返回多个mac地址(A、B…)
方法二:arping -I eth1 -b 192.168.10.139 持续的返回多个mac地址(A、B…A、B…)
2、有ip冲突的一台或多台机器(A、B…)上又错误的绑着监控机的ip(192.168.10.138)
我们仍然在192.168.10.138这台机器上进行监控:
arping -I eth1 -c 1 192.168.10.139
此时绑着监控机ip(192.168.10.138),同时又绑着(192.168.10.139)机器(假设为A)不会返回自己的mac地址。
因为这台机器A收到arp请求的时候,会比较来源地址和自己的ip地址,发现来源ip存在于自己的网卡上,以太网协议会认为这个包是来自于自己,不予以响应,自然就不会有反馈了。所以此时执行上面的arping命令知会打印出除了机器A之外绑定了(192.168.10.139)的机器mac列表。
解决这种特殊情况,需要使用-s参数,指定一个ip作为我们发送arp packet的source ip。
比如我们在监控机eth1 192.168.10.138上面绑一个192.168.10.138
ifconfig eth1:1 192.168.10.138
3、当有新的ip(192.168.10.139)绑定在机器A上时,手工执行