¿Qué significa cuando dice BOOTPROTO=none
en el /etc/sysconfig/network-scripts/ifcfg-eth0
archivo.
Recuerdo que solía haber BOOTPROTO=static
y fue muy claro y directo al decirnos que si Se proporciona una IPADDR=<x.x.x.x>
, el servidor generará la dirección IP especificada. Asimismo, BOOTPROTO=dhcp
buscará un servidor DHCP para obtener una dirección IP dinámica. Redhat dice:
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.
-
¿Significa que si no especificamos la IP en el archivo ifcfg-eth0, buscará una Servidor DHCP y si se especifica una IP, recogerá esa IP estática?
-
¿Cuáles son las posibilidades de que busque un servidor DHCP y modifique / etc / resolv. conf incluso si se especifica una dirección IP con
IPADDR=
cuando BOOTPROTO está configurado como none?
Contexto: – Movimos centros de datos y Tuvimos que cambiar las direcciones IP en muchos de los servidores. Modificamos /etc/resolv.conf
con las direcciones IP de los nuevos servidores DNS, pero por alguna razón, en algunos de los servidores, el /etc/resolv.conf
se borró, o aparecieron direcciones IP de DNS antiguas. En la secuencia de comandos /etc/init.d/network
veo que está llamando a /etc/sysconfig/network-scripts/network-functions
que tiene esta función. ¿Es este el culpable?
# 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; }
¿En qué circunstancias se llama esta función?
Lo sé ese ajuste a no
evitará que /etc/resolv.conf cambie, sin embargo, me gustaría saber si nuestro servidor ha comenzado a buscar un servidor DHCP incluso aunque BOOTPROTO
se configuró en none
y se especificó una dirección IP? Si es así, ¿por qué?
Reinicié los problemas del servidor con este problema varias veces para replicar el problema nuevamente, pero el contenido de /etc/resolv.conf
no está cambiando ahora. ¿Qué pudo haber causado que /etc/resolv.conf se cambiara en el primer reinicio?
¿Podemos usar BOOTPROTO=static
? Leí que está obsoleto. Nuestras máquinas son todos RHEL 6.5
Respuesta
Si lee /etc/sysconfig/network-scripts/ifup-eth
verá que la red usa DHCP si BOOTPROTO
se establece en dhcp
o bootp
; de lo contrario, no utilizado:
if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true
Más abajo, si DYNCONFIG
no es nulo (y dhclient
está disponible), los scripts intentan utilizar DHCP; de lo contrario, se intentará una dirección IP estática.
Usando grep -r BOOTPROTO *
dentro de /etc
no muestra nada más que el fragmento anterior, lo que sugiere que puede usar cualquier cosa en BOOTPROTO
siempre que no sea uno de los dos anteriores.
Puede usar BOOTPROTO=static
, pero si «nos dicen» que no es compatible, no puede garantizar t que funcionará así en el futuro. Además, no hará una diferencia en su problema – static
o none
harán que el script no use DHCP.