BOOTPROTO = ingen | statisk | dhcp og /etc/resolv.conf (Norsk)

Hva betyr det når det står BOOTPROTO=none i /etc/sysconfig/network-scripts/ifcfg-eth0 fil.

Jeg husker at det pleide å være BOOTPROTO=static og det var veldig tydelig og rett fram i å fortelle oss at hvis en IPADDR=<x.x.x.x> er gitt, vil serveren komme opp med den angitte IP-adressen. På samme måte vil BOOTPROTO=dhcp lete etter en DHCP-server for å få en dynamisk IP-adresse. Redhat sier:

 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. 
  • Betyr det at hvis vi ikke spesifiserer IP-en i ifcfg-eth0-filen, vil den se etter en DHCP-server, og hvis en IP er spesifisert, vil den plukke opp den statiske IP-en?

  • Hva er sjansene for at den vil se etter en DHCP-server og endre / etc / resolv. conf selv om en IP-adresse er spesifisert med IPADDR= når BOOTPROTO er satt til ingen?

Kontekst: – Vi flyttet datasentre og måtte endre IP-adresser på mange av serverne. Vi hadde endret /etc/resolv.conf med IP-adressene til de nye DNS-serverne, men av en eller annen grunn, på noen av serverne, /etc/resolv.conf ble tømt, eller kom opp med gamle DNS-IP-adresser. I /etc/init.d/network -skriptet ser jeg at det kaller /etc/sysconfig/network-scripts/network-functions som har denne funksjonen. Er dette synderen?

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

Under hvilke omstendigheter kalles denne funksjonen?

Jeg vet den innstillingen til no forhindrer at /etc/resolv.conf endres, men jeg vil gjerne vite om serveren vår hadde begynt å lete etter en DHCP-server til og med skjønt BOOTPROTO var satt til none og en IP-adresse ble spesifisert? Hvis ja, hvorfor?

Jeg startet om serverproblemene med dette problemet noen ganger for å replikere problemet igjen, men innholdet i /etc/resolv.conf endres ikke nå. Hva kan ha forårsaket at /etc/resolv.conf ble endret i den første omstarten?

Kan vi bruke BOOTPROTO=static? Jeg leste den utdaterte. Våre maskiner er alle RHEL 6.5

Svar

Hvis du leser /etc/sysconfig/network-scripts/ifup-eth vil du se at nettverk bruker DHCP hvis BOOTPROTO er satt til dhcp eller bootp, ellers er det ikke brukt:

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

Lenger nede, hvis DYNCONFIG ikke er null (og dhclient er tilgjengelig) så forsøker manusene å bruke DHCP ellers forsøkes statisk IP-adressering.

Bruk av grep -r BOOTPROTO * innen /etc viser ikke noe annet enn kodebiten ovenfor, noe som tyder på at du kan bruke noe i BOOTPROTO så lenge det ikke er en av de to ovenfor.

Du kan bruke BOOTPROTO=static, men hvis vi «får beskjed om at det ikke støttes, kan du ikke garantere t hatt det vil fungere slik i fremtiden. I tillegg vil det ikke gjøre noen forskjell for problemet ditt – static eller none vil føre til at skriptet ikke bruker DHCP.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *