Qu'est-ce que cela signifie quand il est indiqué BOOTPROTO=none
dans le /etc/sysconfig/network-scripts/ifcfg-eth0
fichier.
Je me souviens qu'il y en avait BOOTPROTO=static
et il était très clair et simple de nous dire que si un IPADDR=<x.x.x.x>
est donné, le serveur fournira l'adresse IP spécifiée. De même, BOOTPROTO=dhcp
recherchera un serveur DHCP pour obtenir une adresse IP dynamique. Redhat dit:
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.
Cela signifie-t-il que si nous ne spécifions pas l'IP dans le fichier ifcfg-eth0, il recherchera un serveur DHCP et si une IP est spécifiée, il récupérera cette IP statique?
Quelles sont les chances qu'il recherche un serveur DHCP et modifie /etc/resolv.conf même si une adresse IP est spécifiée avec
IPADDR=
lorsque BOOTPROTO est défini sur aucun?
Contexte: - Nous avons déplacé les centres de données et avons dû changer les adresses IP dans de nombreux serveurs. Nous avions modifié /etc/resolv.conf
les adresses IP des nouveaux serveurs DNS, mais pour une raison quelconque, certains des serveurs ont /etc/resolv.conf
été masqués ou ont créé d'anciennes adresses IP DNS. Dans le /etc/init.d/network
script, je vois qu'il appelle /etc/sysconfig/network-scripts/network-functions
qui a cette fonction. Est-ce le coupable?
# 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;
}
Dans quelles circonstances cette fonction est-elle appelée?
Je sais que le paramètre PEERDNS
à no
empêchera le /etc/resolv.conf de changer, cependant, je voudrais savoir si notre serveur a commencé à rechercher un serveur DHCP même s'il a BOOTPROTO
été défini sur none
et qu'une adresse IP a été spécifiée? si oui, pourquoi?
J'ai redémarré les problèmes de serveurs avec ce problème à plusieurs reprises pour répliquer le problème à nouveau, mais le contenu de /etc/resolv.conf
ne change pas maintenant. Qu'est-ce qui aurait pu provoquer la modification de /etc/resolv.conf lors du premier redémarrage?
Pouvons-nous utiliser BOOTPROTO=static
? J'ai lu son obsolète. Nos machines sont toutes RHEL 6.5