Що це означає, коли йдеться BOOTPROTO=none
у /etc/sysconfig/network-scripts/ifcfg-eth0
файлі.
Я пам’ятаю, що там раніше було, BOOTPROTO=static
і це було дуже чітко і прямо, коли нам було сказано, що якщо IPADDR=<x.x.x.x>
дано дані, сервер придумає вказану IP-адресу. Так само BOOTPROTO=dhcp
буде шукати DHCP-сервер для отримання динамічної IP-адреси. Редхат каже:
BOOTPROTO=protocol
where protocol is one of the following:
none — No boot-time protocol should be used.
bootp — The BOOTP protocol should be used.
dhcp — The DHCP protocol should be used.
Чи означає це, що якщо ми не вкажемо IP у файлі ifcfg-eth0, він шукатиме DHCP-сервер, і якщо вказано IP, він підбере цей статичний IP?
Які шанси на те, що він буде шукати DHCP-сервер і змінити /etc/resolv.conf, навіть якщо для IP-адреси вказано,
IPADDR=
коли для BOOTPROTO встановлено жодне значення?
Контекст: - Ми перемістили центри обробки даних і довелося змінити IP-адреси на багатьох серверах. Ми модифікували /etc/resolv.conf
IP-адреси нових DNS-серверів, але чомусь на деяких серверах /etc/resolv.conf
вимкнено або придумали старі IP-адреси DNS. У /etc/init.d/network
сценарії я бачу, що він викликає /etc/sysconfig/network-scripts/network-functions
цю функцію. Це винуватець?
# Invoke this when /etc/resolv.conf has changed:
change_resolv_conf ()
{
s=$(/bin/grep '^[\ \ ]*option' /etc/resolv.conf 2>/dev/null);
if [ "x$s" != "x" ]; then
s="$s"$'\n';
fi;
if [ $# -gt 1 ]; then
n_args=$#;
while [ $n_args -gt 0 ];
do
if [[ "$s" = *$1* ]]; then
shift;
n_args=$(($n_args-1));
continue;
fi;
s="$s$1";
shift;
if [ $# -gt 0 ]; then
s="$s"$'\n';
fi;
n_args=$(($n_args-1));
done;
elif [ $# -eq 1 ]; then
if [ "x$s" != "x" ]; then
s="$s"$(/bin/grep -vF "$s" $1);
else
s=$(cat $1);
fi;
fi;
(echo "$s" > /etc/resolv.conf;) >/dev/null 2>&1;
r=$?
if [ $r -eq 0 ]; then
[ -x /sbin/restorecon ] && /sbin/restorecon /etc/resolv.conf >/dev/null 2>&1 # reset the correct context
/usr/bin/logger -p local7.notice -t "NET" -i "$0 : updated /etc/resolv.conf";
[ -e /var/lock/subsys/nscd ] && /usr/sbin/nscd -i hosts; # invalidate cache
fi;
return $r;
}
За якими обставинами називається ця функція?
Я знаю, що налаштування PEERDNS
на no
заважає /etc/resolv.conf змінюватися, однак я хотів би дізнатися, чи почав наш сервер шукати DHCP-сервер, навіть якщо BOOTPROTO
було встановлено none
та вказано IP-адресу? якщо так, то чому?
Я перезавантажив проблеми сервера з цією проблемою кілька разів, щоб повторити цю проблему ще раз, але вміст /etc/resolv.conf
не змінюється зараз. Що могло призвести до зміни /etc/resolv.conf під час першого перезавантаження?
Чи можемо ми користуватися BOOTPROTO=static
? Я прочитав його застаріле. Усі наші машини RHEL 6.5