BOOTPROTO = none | static | dhcp și /etc/resolv.conf

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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *