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.