BOOTPROTO = nenhum | estático | dhcp e /etc/resolv.conf

O que significa quando diz BOOTPROTO=none no /etc/sysconfig/network-scripts/ifcfg-eth0 arquivo.

Lembro que costumava haver BOOTPROTO=static e era muito claro e direto nos dizer que se um IPADDR=<x.x.x.x> é fornecido, o servidor virá com 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á por um Servidor DHCP e se um IP for especificado, ele pegará esse IP estático?

  • Quais são as chances de ele procurar um servidor DHCP e modificar / etc / resolv. conf mesmo se um endereço IP for especificado com IPADDR= quando BOOTPROTO for definido como nenhum?

Contexto: – Nós movemos datacenters e tivemos que alterar os endereços IP em muitos dos servidores. Modificamos /etc/resolv.conf com os endereços IP dos novos servidores DNS, mas por algum motivo, em alguns dos servidores o /etc/resolv.conf ficou em branco ou surgiu com endereços IP DNS antigos. No /etc/init.d/network script, vejo que está chamando /etc/sysconfig/network-scripts/network-functions que tem esta 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; } 

Em que circunstâncias esta função é chamada?

Eu sei aquela configuração para no impedirá que o /etc/resolv.conf mude, no entanto, gostaria de saber se nosso servidor começou a procurar um servidor DHCP mesmo embora BOOTPROTO tenha sido definido como none e um endereço IP tenha sido especificado? em caso afirmativo, por quê?

Reinicializei os problemas dos servidores com este problema algumas vezes para replicar o problema novamente, mas o conteúdo de /etc/resolv.conf não está mudando agora. O que pode ter causado a alteração do /etc/resolv.conf na primeira reinicialização?

Podemos usar BOOTPROTO=static? Li que está obsoleto. Nossas máquinas são todos RHEL 6.5

Resposta

Se você ler /etc/sysconfig/network-scripts/ifup-eth, verá que a rede usa DHCP se BOOTPROTO estiver definido como dhcp ou bootp, caso contrário, “s não usado:

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

Mais abaixo, se DYNCONFIG não for nulo (e dhclient está disponível), os scripts tentam usar o DHCP, caso contrário, o endereçamento IP estático é tentado.

Usando grep -r BOOTPROTO * em /etc não mostra nada além do snippet acima, sugerindo que você pode usar qualquer coisa em BOOTPROTO contanto que não seja um dos dois acima.

Você poderia usar BOOTPROTO=static, mas se nos dissermos que não há suporte, você não pode garantir chapéu vai funcionar assim no futuro. Além disso, não fará diferença para o seu problema – static ou none fará com que o script não use DHCP.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *