それは言うとき、それはどういう意味BOOTPROTO=noneで/etc/sysconfig/network-scripts/ifcfg-eth0のファイル。
以前は存在していたことを覚えていますがBOOTPROTO=static、a IPADDR=<x.x.x.x>が与えられた場合、サーバーは指定されたIPアドレスを取得することを伝えることは非常に明確で簡単でした。同様に、BOOTPROTO=dhcpDHCPサーバーを探して動的IPアドレスを取得します。Redhatのコメント:
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.
ifcfg-eth0ファイルでIPを指定しない場合、DHCPサーバーを検索し、IPが指定されている場合、その静的IPを取得しますか?
IPADDR=BOOTPROTOがnoneに設定されているときにIPアドレスが指定されている場合でも、DHCPサーバーを探して/etc/resolv.confを変更する可能性はありますか?
コンテキスト:-データセンターを移動し、多くのサーバーのIPアドレスを変更する必要がありました。/etc/resolv.conf新しいDNSサーバーのIPアドレスを変更しましたが、何らかの理由で、一部のサーバーで/etc/resolv.conf空白になったり、古いDNS IPアドレスを見つけたりしました。では/etc/init.d/networkスクリプト私はそれが呼び出し元であることがわかり/etc/sysconfig/network-scripts/network-functions、この機能を持っています。これが犯人ですか?
# 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;
}
この関数はどのような状況下で呼び出されますか?
私が設定していることを知っているPEERDNSとすると、no変更するのは/etc/resolv.confを防ぐことができます、しかし、私は、当社のサーバーにもかかわらず、DHCPサーバを探し始めていたかどうかを知りたいのBOOTPROTOに設定されたnoneIPアドレスが指定されましたか?はいの場合、なぜですか?
問題を再現するために、この問題に関するサーバーの問題を数回再起動しましたが、の内容は/etc/resolv.conf現在変更されていません。最初の再起動で/etc/resolv.confが変更された原因は何ですか?
使用できますBOOTPROTO=staticか?非推奨になりました。私たちのマシンはすべてRHEL 6.5です