Ce înseamnă când scrie BOOTPROTO=none
în /etc/sysconfig/network-scripts/ifcfg-eth0
fișier.
Îmi amintesc că a existat BOOTPROTO=static
și a fost foarte clar și direct în a ne spune că dacă este dat un IPADDR=<x.x.x.x>
, serverul va veni cu adresa IP specificată. La fel, BOOTPROTO=dhcp
va căuta un server DHCP pentru a obține o adresă IP dinamică. Redhat spune:
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.
-
Înseamnă că dacă nu specificăm adresa IP în fișierul ifcfg-eth0, va căuta un Server DHCP și dacă este specificat un IP, acesta va prelua acel IP static?
-
Care sunt șansele ca acesta să caute un server DHCP și să modifice / etc / resolv. conf chiar dacă o adresă IP este specificată cu
IPADDR=
când BOOTPROTO este setat la none?
Context: – Am mutat centre de date și a trebuit să schimbăm adresele IP în multe dintre servere. Am modificat /etc/resolv.conf
cu adresele IP ale noilor servere DNS, dar din anumite motive, în unele dintre servere, /etc/resolv.conf
a fost șters sau a venit cu adrese IP DNS vechi. În scriptul /etc/init.d/network
văd că apelează /etc/sysconfig/network-scripts/network-functions
care are această funcție. Este acesta vinovatul?
# 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; }
Sub ce circumstanțe se numește această funcție?
Știu acea setare la no
va împiedica modificarea /etc/resolv.conf, cu toate acestea, aș dori să știu dacă serverul nostru a început să caute un server DHCP chiar deși BOOTPROTO
a fost setat la none
și a fost specificată o adresă IP? dacă da, de ce?
Am repornit problemele serverelor cu această problemă de câteva ori pentru a replica din nou problema, dar conținutul /etc/resolv.conf
nu se schimbă acum. Ce ar putea „face ca modificarea /etc/resolv.conf să fie modificată la prima repornire?
Putem folosi BOOTPROTO=static
? Am citit-o învechită. Mașinile noastre sunt toate RHEL 6.5
Răspuns
Dacă citești /etc/sysconfig/network-scripts/ifup-eth
vei vedea că rețeaua utilizează DHCP dacă BOOTPROTO
este setat la dhcp
sau bootp
, în caz contrar neutilizat:
if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true
Mai jos, dacă DYNCONFIG
nu este nul (și dhclient
este disponibil) atunci scripturile încearcă să utilizeze DHCP, altfel se încearcă adresarea IP statică.
Utilizarea grep -r BOOTPROTO *
în /etc
nu afișează altceva decât fragmentul de mai sus, sugerând că puteți folosi orice în BOOTPROTO
atâta timp cât nu este unul dintre cele două de mai sus.
Puteți utiliza BOOTPROTO=static
, dar dacă vi se spune că nu este acceptat, atunci nu puteți garanta căci va funcționa așa în viitor. În plus, nu va face diferența pentru problema dvs. – static
sau none
va face ca scriptul să nu utilizeze DHCP.