BOOTPROTO = geen | statisch | dhcp en /etc/resolv.conf

Wat betekent het als er BOOTPROTO=none staat in de /etc/sysconfig/network-scripts/ifcfg-eth0 bestand.

Ik herinner me dat er vroeger BOOTPROTO=static was en het was heel duidelijk en ongecompliceerd om ons te vertellen dat als een IPADDR=<x.x.x.x> is gegeven, zal de server het opgegeven IP-adres geven. Evenzo zal BOOTPROTO=dhcp zoeken naar een DHCP-server om een dynamisch IP-adres te verkrijgen. Redhat zegt:

 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. 
  • Betekent dit dat als we het IP-adres niet specificeren in het ifcfg-eth0-bestand, het zal zoeken naar een DHCP-server en als er een IP is gespecificeerd, zal het dat statische IP-adres oppikken?

  • Wat is de kans dat het op zoek gaat naar een DHCP-server en / etc / resolv. conf, zelfs als een IP-adres is gespecificeerd met IPADDR= wanneer BOOTPROTO is ingesteld op geen?

Context: – We hebben datacentra verplaatst en moesten de IP-adressen op veel van de servers wijzigen. We hadden /etc/resolv.conf gewijzigd met de IP-adressen van de nieuwe DNS-servers, maar om de een of andere reden is in sommige van de servers de /etc/resolv.conf is gewist of heeft oude DNS IP-adressen bedacht. In het /etc/init.d/network script zie ik dat het /etc/sysconfig/network-scripts/network-functions die deze functie heeft. Is dit de boosdoener?

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

Onder welke omstandigheden wordt deze functie genoemd?

Ik weet het die instelling naar no zal voorkomen dat /etc/resolv.conf verandert, maar ik zou graag willen weten of onze server op zoek was naar een DHCP-server, zelfs hoewel BOOTPROTO was ingesteld op none en een IP-adres werd opgegeven? zo ja, waarom?

Ik heb de serverproblemen met dit probleem een paar keer opnieuw opgestart om het probleem opnieuw te repliceren, maar de inhoud van /etc/resolv.conf verandert nu niet. Wat kan de oorzaak zijn dat /etc/resolv.conf werd gewijzigd bij de eerste keer opstarten?

Kunnen we BOOTPROTO=static gebruiken? Ik heb gelezen dat het verouderd is. Onze machines zijn allemaal RHEL 6.5

Answer

Als je /etc/sysconfig/network-scripts/ifup-eth leest, zie je dat netwerken DHCP gebruikt als BOOTPROTO is ingesteld op dhcp of bootp, anders is het niet gebruikt:

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

Verder naar beneden, als DYNCONFIG niet nul is (en dhclient beschikbaar is), dan proberen de scripts DHCP te gebruiken, anders wordt geprobeerd een statische IP-adressering te gebruiken.

Met grep -r BOOTPROTO * binnen /etc toont niets anders dan het bovenstaande fragment, wat suggereert dat je alles zou kunnen gebruiken in BOOTPROTO zolang het niet een van de twee hierboven is.

Je zou BOOTPROTO=static kunnen gebruiken, maar als ons wordt verteld dat het niet wordt ondersteund, kun je niet garanderen dat hoed het in de toekomst zo zal werken. Bovendien “maakt het geen verschil voor uw probleem – static of none zorgt ervoor dat het script geen gebruikmaakt van DHCP.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *