У меня запущен скрипт, который запускает интерфейс с новым 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.
Нет, если вы используете уже используемый IP-адрес, последует непредсказуемое поведение. Либо ваша сеть, либо сеть другой машины перестанет работать, или будет работать случайным образом и т. Д. Правильнее всего будет использовать DHCP.
Ты можешь использовать arping
как это:
arping -D -I interface -c 2 ip_address > /dev/null
И проверьте возвращаемое значение ($?
):
0
: нет конфликта1
: конфликтВы можете выполнить его до ifconfig
так как ему не нужен IP-адрес (являющийся ARP). Так что никакого «непредсказуемого» поведения не ожидается.
Сделайте сопоставление всех ваших новых MAC-адресов серверов и того, какой IP вы им назначите. Пусть сценарий найдет MAC и найдет его IP. Вам нужно только обновить таблицу сопоставления для каждого нового сервера. В любом случае вы должны скопировать сценарий на каждый новый сервер, поэтому копирование таблицы и ее обновление не составляет большого труда.
Если это звучит как большая работа, поздравляю, вы повторно внедрили DHCP, очень плохо.