У меня есть несколько систем 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
Все еще ищу правильный способ сделать это, поэтому я не думаю, что это правильный ответ на мой вопрос.
Оба 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.