Что это значит, когда говорится 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 установлено значение none?
Контекст: - Мы переместили центры обработки данных и нам пришлось менять IP-адреса на многих серверах. Мы изменили /etc/resolv.conf
IP-адреса новых DNS-серверов, но по некоторым причинам на некоторых серверах они /etc/resolv.conf
были отключены или пришли к старым DNS-IP-адресам. В /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