我正在运行一个脚本,它将启动一个具有新 IP 的接口。
如果脚本出现一个已经在使用的 IP,我就会遇到麻烦。
脚本是否可以设置新的 IP,检测到该 IP 已被使用,然后检查下一个,直到找到可用的 IP?
B=192.168.1.
I=1
while [ "$I" != "256" ]
do
ifconfig eth0:1 $B.$I
# check here that IP is Ok !
let "I=I+1"
done
我无法使用 DHCP。
答案1
你可以arping
这样使用:
arping -D -I interface -c 2 ip_address > /dev/null
并检查返回值($?
):
0
:无冲突1
: 冲突
您可以在之前执行它,ifconfig
因为它不需要 IP 地址(即 ARP)。因此不会出现“不可预测”的行为。
答案2
不,如果您使用已在使用的 IP,则会出现不可预测的行为。您的网络或其他机器的网络将停止工作,或随机工作等。正确的做法是使用 DHCP。
答案3
将所有新服务器的 MAC 地址与要为其分配的 IP 进行映射。让脚本找到 MAC 并查找其 IP。您只需更新每个新服务器的映射表。无论如何,您都必须将脚本复制到每个新服务器,因此复制表并更新它并不是什么大问题。
如果这听起来像是很多工作,那么恭喜你,你已经重新实现了 DHCP,而且做得非常糟糕。