BOOTPROTO = ninguno | estática | DHCP y /etc/resolv.conf

17

¿Qué significa cuando dice BOOTPROTO=noneen el /etc/sysconfig/network-scripts/ifcfg-eth0archivo?

Recuerdo que solía ser BOOTPROTO=staticy fue muy claro y directo en decirnos que si una IPADDR=<x.x.x.x>se da, el servidor se van a plantear con la dirección IP especificada. Del mismo modo, BOOTPROTO=dhcpse 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.
  • Qué significa si no se especifica la dirección IP en el archivo ifcfg-eth0, se buscará un servidor DHCP y si se especifica una dirección IP, que captará esa IP estática?

  • ¿Cuáles son las posibilidades de que se buscará un servidor DHCP y modificar /etc/resolv.conf incluso si una dirección IP se especifica con IPADDR=cuando BOOTPROTO se establece en ninguno?

Contexto: - Movimos los centros de datos y tuvimos que cambiar las direcciones IP en muchos de los servidores. Habíamos modificado /etc/resolv.confcon las direcciones IP de los nuevos servidores DNS, pero por alguna razón, en algunos de los servidores /etc/resolv.confse borraron, o surgieron las antiguas direcciones IP DNS. En el /etc/init.d/networkguión lo veo está llamando a /etc/sysconfig/network-scripts/network-functionsla 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;
}

¿Bajo qué circunstancias se llama esta función?

Sé que la configuración PEERDNSpara noevitará que /etc/resolv.conf cambie, sin embargo, me gustaría saber si nuestro servidor había comenzado a buscar un servidor DHCP a pesar de que BOOTPROTOestaba configurado noney se especificó una dirección IP. ¿si es así por qué?

Reinicié los problemas del servidor con este problema varias veces para replicarlo nuevamente, pero el contenido de /etc/resolv.confno está cambiando ahora. ¿Qué pudo haber causado que se cambiara /etc/resolv.conf en el primer reinicio?

Podemos usar BOOTPROTO=static? Leí que está en desuso. Nuestras máquinas son todas RHEL 6.5

Sree
fuente

Respuestas:

21

Si lee /etc/sysconfig/network-scripts/ifup-ethusted verá que la creación de redes usos DHCP si BOOTPROTOse establece en dhcpo bootp, de lo contrario no se utiliza:

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

Más abajo, si DYNCONFIGno es nulo (ydhclient está disponible), los scripts intentan usar DHCP; de lo contrario, se intenta el direccionamiento IP estático.

El uso grep -r BOOTPROTO *dentro /etcno muestra nada más que el fragmento anterior, lo que sugiere que podría usar cualquier cosa enBOOTPROTO siempre que no sea uno de los dos anteriores.

Podrías usarlo BOOTPROTO=static, pero si nos dicen que no es compatible, no puedes garantizar que funcione así en el futuro. Además, no hará una diferencia en su problema, statico nonehará que el script no use DHCP.

garethTheRed
fuente