O que significa quando diz BOOTPROTO=none
no /etc/sysconfig/network-scripts/ifcfg-eth0
arquivo.
Lembro-me de que costumava haver BOOTPROTO=static
e foi muito claro e direto nos dizer que, se um IPADDR=<x.x.x.x>
for fornecido, o servidor apresentará o endereço IP especificado. Da mesma forma, BOOTPROTO=dhcp
procurará um servidor DHCP para obter um endereço IP dinâmico. Redhat diz:
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.
Isso significa que, se não especificarmos o IP no arquivo ifcfg-eth0, ele procurará um servidor DHCP e, se um IP for especificado, ele buscará esse IP estático?
Quais são as chances de ele procurar um servidor DHCP e modificar o /etc/resolv.conf mesmo que um endereço IP seja especificado
IPADDR=
quando BOOTPROTO estiver definido como nenhum?
Contexto: - Mudamos os datacenters e tivemos que alterar os endereços IP em muitos dos servidores. Nós modificamos /etc/resolv.conf
com os endereços IP dos novos servidores DNS, mas, por algum motivo, em alguns servidores eles /etc/resolv.conf
foram apagados ou surgiram com endereços IP DNS antigos. No /etc/init.d/network
script eu vejo que está chamando /etc/sysconfig/network-scripts/network-functions
que tem essa função. Este é o culpado?
# 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;
}
Sob quais circunstâncias essa função é chamada?
Eu sei que ajuste PEERDNS
a no
irá impedir o /etc/resolv.conf de mudar, no entanto, eu gostaria de saber se o nosso servidor tinha começou a procurar um servidor DHCP mesmo que BOOTPROTO
foi definido para none
e um endereço de IP foi especificado? se sim, por que?
Reiniciei os problemas dos servidores com esse problema algumas vezes para replicar o problema novamente, mas o conteúdo de /etc/resolv.conf
não está mudando agora. O que poderia ter causado a alteração do /etc/resolv.conf na primeira reinicialização?
Podemos usar BOOTPROTO=static
? Eu li o seu obsoleto. Nossas máquinas são todas RHEL 6.5