BOOTPROTO = keine | statisch | dhcp und /etc/resolv.conf

Was bedeutet es, wenn in der iv id BOOTPROTO=none steht = „4b2fd48573″>

Datei.

Ich erinnere mich, dass es früher BOOTPROTO=static gab, und es war sehr klar und direkt, uns zu sagen, dass wenn Wenn eine IPADDR=<x.x.x.x> angegeben wird, wird dem Server die angegebene IP-Adresse angezeigt. Ebenso sucht BOOTPROTO=dhcp nach einem DHCP-Server, um eine dynamische IP-Adresse zu erhalten. Redhat sagt:

 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. 
  • Bedeutet dies, dass wenn wir die IP nicht in der ifcfg-eth0-Datei angeben, nach a gesucht wird DHCP-Server und wenn eine IP angegeben ist, wird diese statische IP abgerufen?

  • Wie hoch ist die Wahrscheinlichkeit, dass nach einem DHCP-Server gesucht und / etc / resolv geändert wird. conf auch wenn eine IP-Adresse mit IPADDR= angegeben wird, wenn BOOTPROTO auf none gesetzt ist?

Kontext: – Wir haben Rechenzentren und verschoben mussten die IP-Adressen in vielen Servern ändern. Wir hatten /etc/resolv.conf mit den IP-Adressen der neuen DNS-Server geändert, aber aus irgendeinem Grund in einigen Servern die /etc/resolv.conf wurde ausgeblendet oder hat alte DNS-IP-Adressen gefunden. Im Skript /etc/init.d/network wird /etc/sysconfig/network-scripts/network-functions mit dieser Funktion. Ist dies der Schuldige?

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

Unter welchen Umständen heißt diese Funktion?

Ich weiß diese Einstellung bis no verhindert, dass sich die Datei /etc/resolv.conf ändert. Ich möchte jedoch wissen, ob unser Server überhaupt nach einem DHCP-Server gesucht hat obwohl BOOTPROTO auf none gesetzt wurde und eine IP-Adresse angegeben wurde? Wenn ja, warum?

Ich habe die Serverprobleme mit diesem Problem einige Male neu gestartet, um das Problem erneut zu replizieren, aber der Inhalt von /etc/resolv.conf ändert sich jetzt nicht. Was könnte dazu geführt haben, dass die Datei /etc/resolv.conf beim ersten Neustart geändert wurde?

Können wir BOOTPROTO=static verwenden? Ich habe sie als veraltet gelesen. Unsere Computer sind alle RHEL 6.5

Antwort

Wenn Sie /etc/sysconfig/network-scripts/ifup-eth lesen, werden Sie sehen Dieses Netzwerk verwendet DHCP, wenn BOOTPROTO auf dhcp oder bootp gesetzt ist, andernfalls ist es „s“ nicht verwendet:

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

Weiter unten, wenn DYNCONFIG nicht null ist (und dhclient ist verfügbar), dann versucht das Skript, DHCP zu verwenden, andernfalls wird eine statische IP-Adressierung versucht.

Verwenden von grep -r BOOTPROTO * innerhalb von /etc zeigt nichts anderes als das obige Snippet an, was darauf hindeutet, dass Sie in BOOTPROTO alles verwenden können, solange es nicht eines der beiden oben genannten ist.

Sie könnten BOOTPROTO=static verwenden, aber wenn uns „mitgeteilt wird, dass dies nicht unterstützt wird“, können Sie t nicht garantieren Was wird es in Zukunft so funktionieren. Darüber hinaus macht es keinen Unterschied für Ihr Problem – static oder none führt dazu, dass das Skript kein DHCP verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.