BOOTPROTO = brak | statyczny | dhcp i /etc/resolv.conf

Co to znaczy, gdy w iv id jest napisane BOOTPROTO=none = „4b2fd48573″>

plik.

Pamiętam, że kiedyś istniał BOOTPROTO=static i bardzo jasno i prosto powiedział nam, że jeśli zostanie podany IPADDR=<x.x.x.x>, serwer wymyśli podany adres IP. Podobnie BOOTPROTO=dhcp będzie szukać serwera DHCP w celu uzyskania dynamicznego adresu IP. Redhat mówi:

 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. 
  • Czy to oznacza, że jeśli nie określimy adresu IP w pliku ifcfg-eth0, będzie szukał Serwer DHCP i jeśli podano adres IP, przejmie to statyczne IP?

  • Jakie są szanse, że będzie szukał serwera DHCP i modyfikował / etc / resolv. conf, nawet jeśli adres IP jest określony jako IPADDR=, gdy BOOTPROTO jest ustawione na brak?

Kontekst: – Przenieśliśmy centra danych i musieliśmy zmienić adresy IP na wielu serwerach. Zmodyfikowaliśmy /etc/resolv.conf adresami IP nowych serwerów DNS, ale z jakiegoś powodu na niektórych serwerach /etc/resolv.conf został wyczyszczony lub wymyślił stare adresy IP DNS. W skrypcie /etc/init.d/network widzę, że dzwoni /etc/sysconfig/network-scripts/network-functions który ma tę funkcję. Czy to jest winowajca?

# 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; } 

W jakich okolicznościach ta funkcja się nazywa?

Wiem to ustawienie do no zapobiegnie zmianie /etc/resolv.conf, jednak chciałbym wiedzieć, czy nasz serwer zaczął nawet szukać serwera DHCP chociaż BOOTPROTO został ustawiony na none i określono adres IP? jeśli tak, dlaczego?

Kilka razy zrestartowałem problemy z serwerami, aby powtórzyć problem, ale zawartość /etc/resolv.conf nie zmienia się teraz. Co mogło spowodować zmianę pliku /etc/resolv.conf przy pierwszym ponownym uruchomieniu?

Czy możemy użyć BOOTPROTO=static? Przeczytałem, że jest przestarzały. Nasze komputery to wszystko RHEL 6.5

Odpowiedź

Jeśli przeczytasz /etc/sysconfig/network-scripts/ifup-eth, zobaczysz że sieć używa DHCP, jeśli BOOTPROTO jest ustawione na dhcp lub bootp, w przeciwnym razie „s nieużywane:

if ["${BOOTPROTO}" = "bootp" -o "${BOOTPROTO}" = "dhcp" ]; then DYNCONFIG=true 

Dalej, jeśli DYNCONFIG nie ma wartości null (i dhclient), wtedy skrypty próbują użyć DHCP, w przeciwnym razie podejmowana jest próba statycznego adresowania IP.

Używanie grep -r BOOTPROTO * w /etc nie pokazuje niczego poza powyższym fragmentem, co sugeruje, że możesz użyć czegokolwiek w BOOTPROTO, o ile nie jest to „t żadne z dwóch powyższych.

Możesz użyć BOOTPROTO=static, ale jeśli powiedziano nam, że to nie jest obsługiwane, nie możesz zagwarantować jak to będzie działać w przyszłości. Ponadto nie zmieni to problemu – static lub none spowoduje, że skrypt nie użyje DHCP.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *