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. P. >