Назад | Перейти на главную страницу

Как узнать, что мой IP недействителен

У меня запущен скрипт, который запускает интерфейс с новым 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, очень плохо.