BOOTPROTO = nessuno | statico | dhcp e /etc/resolv.conf

Cosa significa quando viene visualizzato BOOTPROTO=none nel /etc/sysconfig/network-scripts/ifcfg-eth0 file.

Ricordo che una volta cera BOOTPROTO=static ed era molto chiaro e diretto nel dirci che se viene fornito un IPADDR=<x.x.x.x>, il server presenterà lindirizzo IP specificato. Allo stesso modo, BOOTPROTO=dhcp cercherà un server DHCP per ottenere un indirizzo IP dinamico. Redhat dice:

 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. 
  • Significa che se non specifichiamo lIP nel file ifcfg-eth0, cercherà un Server DHCP e se viene specificato un IP, rileverà quellIP statico?

  • Quali sono le possibilità che cerchi un server DHCP e modifichi / etc / resolv. conf anche se viene specificato un indirizzo IP con IPADDR= quando BOOTPROTO è impostato su nessuno?

Contesto: – Abbiamo spostato i data center e dovevamo cambiare gli indirizzi IP in molti dei server. Avevamo modificato /etc/resolv.conf con gli indirizzi IP dei nuovi server DNS, ma per qualche motivo, in alcuni server il /etc/resolv.conf è stato cancellato o ha trovato vecchi indirizzi IP DNS. Nello script /etc/init.d/network vedo che sta chiamando /etc/sysconfig/network-scripts/network-functions che ha questa funzione. È questo il colpevole?

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

In quali circostanze viene chiamata questa funzione?

Lo so quellimpostazione a no impedirà la modifica di /etc/resolv.conf, tuttavia, vorrei sapere se il nostro server ha iniziato a cercare un server DHCP anche sebbene BOOTPROTO fosse impostato su none e fosse stato specificato un indirizzo IP? se sì, perché?

Ho riavviato i server con questo problema alcune volte per replicare nuovamente il problema, ma il contenuto di /etc/resolv.conf non sta cambiando ora. Cosa potrebbe “aver causato la modifica di /etc/resolv.conf al primo riavvio?

Possiamo usare BOOTPROTO=static? Ho letto che è deprecato. Le nostre macchine sono tutti RHEL 6.5

Risposta

Se leggi /etc/sysconfig/network-scripts/ifup-eth vedrai quella rete utilizza DHCP se BOOTPROTO è impostato su dhcp o bootp, altrimenti “s non utilizzato:

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

Più in basso, se DYNCONFIG non è nullo (e dhclient è disponibile) quindi lo script tenta di utilizzare DHCP, altrimenti viene tentato un indirizzo IP statico.

Utilizzando grep -r BOOTPROTO * allinterno di /etc non mostra nientaltro che lo snippet precedente, suggerendo che potresti usare qualsiasi cosa in BOOTPROTO purché non sia uno dei due precedenti.

Puoi utilizzare BOOTPROTO=static, ma se “ci viene detto” non è supportato, non puoi garantire che che funzionerà in questo modo in futuro. Inoltre, non farà alcuna differenza per il tuo problema: static o none impedirà allo script di utilizzare DHCP.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *