ividにBOOTPROTO=none
と表示されている場合の意味= “4b2fd48573″>
ファイル。
BOOTPROTO=static
があったことを覚えていますが、次の場合は非常に明確でわかりやすくなっています。 IPADDR=<x.x.x.x>
を指定すると、サーバーは指定されたIPアドレスを取得します。同様に、BOOTPROTO=dhcp
は、動的IPアドレスを取得するためにDHCPサーバーを探します。 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を指定しない場合、IPを検索します。 DHCPサーバーとIPが指定されている場合、その静的IPを取得しますか?
-
DHCPサーバーを検索して/ etc / resolvを変更する可能性はどのくらいありますか。 BOOTPROTOがnoneに設定されている場合、IPアドレスが
IPADDR=
で指定されていてもconf?
コンテキスト:-データセンターを移動し、多くのサーバーでIPアドレスを変更する必要がありました。新しいDNSサーバーのIPアドレスで/etc/resolv.conf
を変更しましたが、何らかの理由で、一部のサーバーでは/etc/resolv.conf
が空白になるか、古いDNSIPアドレスを思い付きました。/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; }
この機能はどのような状況で呼び出されますか?
わかっています。その設定からno
を指定すると、/ etc / resolve.confが変更されなくなりますが、サーバーがDHCPサーバーを探し始めたかどうかも知りたいです。 BOOTPROTO
がnone
に設定されていて、IPアドレスが指定されていても?はいの場合、なぜですか?
この問題でサーバーの問題を数回再起動して問題を再度再現しましたが、/etc/resolv.conf
の内容は現在変更されていません。 「最初の再起動時に/etc/resolv.confが変更された原因は何ですか?
BOOTPROTO=static
を使用できますか?非推奨を読みました。すべてRHEL6.5です
回答
/etc/sysconfig/network-scripts/ifup-eth
を読むと、次のように表示されます。 BOOTPROTO
がdhcp
またはbootp
に設定されている場合、そのネットワークはDHCPを使用します。それ以外の場合はDHCPを使用します。未使用:
if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true
さらに下の場合、DYNCONFIG
がnullでない場合(およびdhclient
が使用可能)次に、スクリプトはDHCPの使用を試みます。それ以外の場合は、静的IPアドレス指定が試行されます。
iv id = “9fa000facc”内でgrep -r BOOTPROTO *
を使用します。 >
には上記のスニペット以外は表示されません。これは、上記の2つのうちのいずれかでない限り、BOOTPROTO
で何でも使用できることを示しています。
BOOTPROTO=static
を使用できますが、サポートされていないと言われた場合、tを保証することはできません。将来的にはこのように機能するでしょう。さらに、問題に違いはありません。static
またはnone
を使用すると、スクリプトでDHCPが使用されなくなります。