BOOTPROTO = aucun | statique | dhcp et /etc/resolv.conf

Quest-ce que cela signifie quand il dit BOOTPROTO=none dans /etc/sysconfig/network-scripts/ifcfg-eth0 fichier.

Je me souviens quil y avait autrefois BOOTPROTO=static et cétait très clair et direct en nous disant que si un IPADDR=<x.x.x.x> est donné, le serveur affichera ladresse 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 ladresse 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 quil 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 a dû changer les adresses IP de nombreux serveurs. Nous avons modifié /etc/resolv.conf avec les adresses IP des nouveaux serveurs DNS, mais pour une raison quelconque, sur certains serveurs, le /etc/resolv.conf a été masqué ou a trouvé danciennes adresses IP DNS. Dans le script /etc/init.d/network, je vois quil 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 ce paramètre à no empêchera le fichier /etc/resolv.conf de changer, cependant, jaimerais savoir si notre serveur a même commencé à chercher un serveur DHCP si BOOTPROTO a été défini sur none et quune adresse IP a été spécifiée? si oui, pourquoi?

Jai redémarré les problèmes de serveurs avec ce problème plusieurs fois pour reproduire le problème à nouveau, mais le contenu de /etc/resolv.conf ne change pas maintenant. Quest-ce qui a pu « avoir causé la modification du fichier /etc/resolv.conf lors du premier redémarrage?

Pouvons-nous utiliser BOOTPROTO=static? Jai lu sa version obsolète. Nos machines sont tous RHEL 6.5

Réponse

Si vous lisez /etc/sysconfig/network-scripts/ifup-eth vous « verrez que le réseau utilise DHCP si BOOTPROTO est défini sur dhcp ou bootp, sinon cest « s non utilisé:

if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true 

Plus bas, si DYNCONFIG nest pas nul (et dhclient est disponible) alors le script tente dutiliser DHCP, sinon un adressage IP statique est tenté.

Utilisation de grep -r BOOTPROTO * dans /etc ne montre rien dautre que lextrait de code ci-dessus, ce qui suggère que vous pouvez utiliser nimporte quoi dans BOOTPROTO tant que ce nest pas lun des deux ci-dessus.

Vous pouvez utiliser BOOTPROTO=static, mais si nous « sommes dit » que ce nest pas pris en charge, vous ne pouvez pas garantir t que cela fonctionnera comme ça à lavenir. De plus, cela ne changera rien à votre problème – static ou none empêchera le script dutiliser DHCP.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *