มันหมายความว่าอย่างไรเมื่อมันบอกว่าBOOTPROTO=none
ใน/etc/sysconfig/network-scripts/ifcfg-eth0
ไฟล์
ฉันจำได้ว่าเคยเป็นมาBOOTPROTO=static
และมันก็ชัดเจนและตรงไปตรงมาในการบอกเราว่าถ้ามีการIPADDR=<x.x.x.x>
มอบเซิร์ฟเวอร์จะเกิดขึ้นพร้อมกับที่อยู่ IP ที่ระบุ ในทำนองเดียวกันBOOTPROTO=dhcp
จะค้นหาเซิร์ฟเวอร์ DHCP เพื่อรับที่อยู่ 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.
มันหมายความว่าถ้าเราไม่ได้ระบุ IP ในไฟล์ ifcfg-eth0 มันจะค้นหาเซิร์ฟเวอร์ DHCP และหากมีการระบุ IP มันจะรับ IP แบบคงที่นั้นหรือไม่
โอกาสที่จะค้นหาเซิร์ฟเวอร์ DHCP และแก้ไข /etc/resolv.conf แม้ว่าที่อยู่ IP จะถูกระบุด้วย
IPADDR=
เมื่อ BOOTPROTO ถูกตั้งค่าเป็น none หรือไม่
บริบท: - เราย้ายศูนย์ข้อมูลและต้องเปลี่ยนที่อยู่ IP ในเซิร์ฟเวอร์จำนวนมาก เราได้ปรับเปลี่ยน/etc/resolv.conf
ด้วยที่อยู่ IP ของเซิร์ฟเวอร์ DNS ใหม่ แต่ด้วยเหตุผลบางประการในเซิร์ฟเวอร์บางแห่ง/etc/resolv.conf
ก็ถูกทำให้ว่างเปล่าหรือเกิดขึ้นกับที่อยู่ IP DNS เก่า ใน/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;
}
ฟังก์ชั่นนี้เรียกว่า cicumstances อะไร?
ฉันรู้ว่าการตั้งค่าPEERDNS
ที่no
จะป้องกันไม่ให้ /etc/resolv.conf เปลี่ยนอย่างไรก็ตามฉันต้องการทราบว่าเซิร์ฟเวอร์ของเราเริ่มค้นหาเซิร์ฟเวอร์ DHCP หรือไม่แม้ว่าจะBOOTPROTO
ถูกตั้งค่าเป็นnone
และที่อยู่ IP ถูกระบุไว้หรือไม่ ถ้าใช่ทำไม
ฉันรีบูตเซิร์ฟเวอร์ปัญหาเกี่ยวกับปัญหานี้สองสามครั้งเพื่อทำซ้ำปัญหาอีกครั้ง แต่เนื้อหาของ/etc/resolv.conf
ไม่เปลี่ยนแปลงในขณะนี้ สิ่งที่อาจทำให้ /etc/resolv.conf มีการเปลี่ยนแปลงในการรีบูตครั้งแรก?
เราสามารถใช้BOOTPROTO=static
? ฉันอ่านเลิกแล้ว เครื่องของเรามี RHEL ทั้งหมด 6.5