
У меня есть несколько систем CentOS 6/7 (непроизводственные, экспериментальные), которые были настроены на использование DHCP для своего IP-адреса. На прошлой неделе произошел большой сбой в работе сети, и я обнаружил, что эти системы потеряли свой IP-адрес, а DHCP-клиент прекратил работу. Я полагаю, после слишком большого количества/слишком долгих повторных попыток.
Чтоправильныйспособ заставить его пытаться восстанавливаться вечно? Есть ли настройка клиента dhcp, которая может это сделать? Или мне следует добавить запись cron, которая делает что-то вроде 'ifup eth0' каждый час? Или есть гораздо лучший способ сделать это?
Я знаю, что CentOS 6 и CentOS 7 делают это по-разному, и я ищу ответы для обоих случаев.
Обновлять:
На данный момент я создал этот скрипт (который я поместил в /etc/cron.hourly/), который, похоже, работает в конкретной ситуации CentOS 6. Это, возможно, не лучшее решение, но оно «работает на моей машине».
#!/bin/bash
IF=eth0
ifconfig ${IF} | fgrep 'inet addr' > /dev/null
if [ $? -ne 0 ];
then
echo "Network is dead, trying restart"
ifup ${IF}
fi
Я все еще ищу правильный способ сделать это, поэтому не думаю, что это правильный ответ на мой вопрос.
решение1
CentOS 6 и 7 должны принимать параметр PERSISTENT_DHCLIENT в файлах /etc/sysconfig/network-scripts/ifcfg* .например
# /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
PERSISTENT_DHCLIENT=yes
ONTBOOT=yes
DEVICE=eth0
Это указывает скрипту ifup-eth запустить dhclient без (по умолчанию)-1вариант
if is_true "${PERSISTENT_DHCLIENT}"; then
ONESHOT="";
else
ONESHOT="-1";
fi;
...
DHCLIENTARGS="${DHCLIENTARGS} ${ONESHOT} -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid"
С этой опцией dhclient попробует один раз. Из страницы руководства
-1 Try once to get a lease. One failure, exit with code 2.
Без этой опции dhclient должен периодически повторять попытки (по умолчанию каждые 5 минут) со страницы руководства dhclient.conf.
retry time;
The retry statement determines the time that must pass after the client
has determined that there is no DHCP server present before it tries
again to contact a DHCP server. By default, this is five minutes.