Co to znaczy, kiedy mówi BOOTPROTO=none
w /etc/sysconfig/network-scripts/ifcfg-eth0
pliku.
Pamiętam, że kiedyś tak było BOOTPROTO=static
i było to bardzo jasne i proste, mówiąc nam, że jeśli IPADDR=<x.x.x.x>
zostanie podany, serwer wymyśli określony adres IP. Podobnie BOOTPROTO=dhcp
wyszuka serwer DHCP, aby uzyskać dynamiczny adres IP. Redhat mówi:
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.
Czy to znaczy, że jeśli nie podamy adresu IP w pliku ifcfg-eth0, poszuka serwera DHCP, a jeśli zostanie podany adres IP, to wykryje ten statyczny adres IP?
Jakie są szanse, że wyszuka serwer DHCP i zmodyfikuje plik /etc/resolv.conf, nawet jeśli adres IP jest określony
IPADDR=
przy ustawieniu BOOTPROTO na none?
Kontekst: - przenieśliśmy centra danych i musieliśmy zmienić adresy IP na wielu serwerach. Zmodyfikowaliśmy /etc/resolv.conf
adresy IP nowych serwerów DNS, ale z jakiegoś powodu niektóre serwery /etc/resolv.conf
zostały wykasowane lub pojawiły się stare adresy IP DNS. /etc/init.d/network
Widzę, że w skrypcie jest to wywołanie, /etc/sysconfig/network-scripts/network-functions
które ma tę funkcję. Czy to winowajca?
# 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;
}
W jakich okolicznościach nazywana jest ta funkcja?
Wiem, że to ustawienie PEERDNS
do no
zapobiegnie /etc/resolv.conf zmianę, jednak chciałbym wiedzieć czy nasz serwer zaczął patrząc na serwerze DHCP, chociaż BOOTPROTO
był ustawiony none
i adres IP został określony? jeśli tak, dlaczego?
Ponownie uruchomiłem problemy z serwerami z tym problemem, aby powtórzyć problem ponownie, ale zawartość /etc/resolv.conf
się nie zmienia. Co mogło spowodować zmianę pliku /etc/resolv.conf przy pierwszym uruchomieniu?
Czy możemy użyć BOOTPROTO=static
? Przeczytałem jego przestarzałe. Wszystkie nasze maszyny to RHEL 6.5