Cosa significa quando dice BOOTPROTO=none
nel /etc/sysconfig/network-scripts/ifcfg-eth0
file.
Ricordo che c'era una volta BOOTPROTO=static
ed era molto chiaro e diretto nel dirci che se IPADDR=<x.x.x.x>
viene fornito, il server verrà fornito con l'indirizzo IP specificato. Allo stesso modo, BOOTPROTO=dhcp
cercherà un server DHCP per ottenere un indirizzo IP dinamico. 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 che se non specifichiamo l'IP nel file ifcfg-eth0, cercherà un server DHCP e se viene specificato un IP, prenderà quell'IP statico?
Quali sono le possibilità che cercherà un server DHCP e modifichi /etc/resolv.conf anche se viene specificato un indirizzo IP
IPADDR=
quando BOOTPROTO è impostato su nessuno?
Contesto: - Abbiamo spostato i data center e abbiamo dovuto modificare gli indirizzi IP in molti server. Avevamo modificato /etc/resolv.conf
con gli indirizzi IP dei nuovi server DNS, ma per qualche motivo, in alcuni server sono /etc/resolv.conf
stati cancellati o sono stati creati vecchi indirizzi IP DNS. Nella /etc/init.d/network
sceneggiatura vedo che sta chiamando /etc/sysconfig/network-scripts/network-functions
che ha questa funzione. È questo il colpevole?
# 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;
}
In quali circostanze viene chiamata questa funzione?
So che l'impostazione PEERDNS
su no
impedisce a /etc/resolv.conf di cambiare, tuttavia, vorrei sapere se il nostro server aveva iniziato a cercare un server DHCP anche se BOOTPROTO
era impostato su none
e era stato specificato un indirizzo IP? se si, perchè?
Ho riavviato alcune volte i problemi dei server con questo problema per replicare nuovamente il problema, ma il contenuto di /etc/resolv.conf
non sta cambiando ora. Cosa potrebbe aver causato la modifica di /etc/resolv.conf al primo riavvio?
Possiamo usare BOOTPROTO=static
? Ho letto è deprecato. Le nostre macchine sono tutte RHEL 6.5