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

Hvad betyder det, når der står BOOTPROTO=none i /etc/sysconfig/network-scripts/ifcfg-eth0 -fil.

Jeg kan huske, at der plejede at være BOOTPROTO=static, og det var meget klart og ligetil at fortælle os, at hvis en IPADDR=<x.x.x.x> er angivet, vil serveren komme med den specificerede IP-adresse. Ligeledes vil BOOTPROTO=dhcp lede efter en DHCP-server for at opnå en dynamisk IP-adresse. Redhat siger:

 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. 
  • Betyder det, at hvis vi ikke angiver IPen i ifcfg-eth0-fil, vil den se efter en DHCP-server, og hvis en IP er angivet, afhenter den den statiske IP?

  • Hvad er chancerne for, at den vil se efter en DHCP-server og ændre / etc / resolv. conf selv hvis en IP-adresse er angivet med IPADDR= når BOOTPROTO er indstillet til ingen?

Kontekst: – Vi flyttede datacentre og måtte ændre IP-adresser i mange af serverne. Vi havde ændret /etc/resolv.conf med IP-adresserne på de nye DNS-servere, men af en eller anden grund var /etc/resolv.conf blev udslettet eller kom med gamle DNS IP-adresser. I /etc/init.d/network scriptet ser jeg det kalder /etc/sysconfig/network-scripts/network-functions som har denne funktion. 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 omstændigheder kaldes denne funktion?

Jeg ved den indstilling til no forhindrer /etc/resolv.conf i at ændre sig, men jeg vil gerne vide, om vores server var begyndt at lede efter en DHCP-server selv skønt BOOTPROTO blev indstillet til none og en IP-adresse blev angivet? hvis ja, hvorfor?

Jeg genstartede serverproblemerne med dette problem et par gange for at replikere problemet igen, men indholdet af /etc/resolv.conf ændres ikke nu. Hvad kunne “have forårsaget, at /etc/resolv.conf blev ændret i den første genstart?

Kan vi bruge BOOTPROTO=static? Jeg læste dens forældede. Vores maskiner er alle RHEL 6.5

Svar

Hvis du læser /etc/sysconfig/network-scripts/ifup-eth vil du se at netværk bruger DHCP, hvis BOOTPROTO er indstillet til dhcp eller bootp, ellers er det ikke brugt:

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

Længere nede, hvis DYNCONFIG ikke er nul (og dhclient er tilgængelig) så forsøger scripts at bruge DHCP ellers forsøges statisk IP-adressering.

Brug af grep -r BOOTPROTO * inden for /etc viser ikke andet end ovenstående uddrag, hvilket tyder på, at du kan bruge noget i BOOTPROTO, så længe det ikke er en af de to ovenfor.

Du kan bruge BOOTPROTO=static, men hvis vi “får besked om, at det ikke understøttes, kan du ikke garantere t hat det fungerer sådan her i fremtiden. Derudover vil det ikke gøre en forskel for dit problem – static eller none vil medføre, at scriptet ikke bruger DHCP.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *