BOOTPROTO = žádný | statický | dhcp a /etc/resolv.conf

Co to znamená, když je v iv id uvedeno BOOTPROTO=none = „4b2fd48573″>

soubor.

Vzpomínám si, že tam byl BOOTPROTO=static a bylo nám velmi jasné a přímočaré říci, že pokud Pokud je zadána IPADDR=<x.x.x.x>, server přijde se zadanou IP adresou. Podobně BOOTPROTO=dhcp vyhledá server DHCP pro získání dynamické adresy IP. Redhat říká:

 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. 
  • Znamená to, že pokud nezadáme IP v souboru ifcfg-eth0, bude hledat Server DHCP a pokud je zadána adresa IP, získá statickou adresu IP?

  • Jaké jsou šance, že vyhledá server DHCP a upraví / etc / resolv. conf, i když je adresa IP zadána pomocí IPADDR=, když je BOOTPROTO nastaveno na none?

Kontext: – Přesunuli jsme datová centra a musel změnit adresy IP na mnoha serverech. Upravili jsme /etc/resolv.conf adresy IP nových serverů DNS, ale na některých serverech /etc/resolv.conf byl prázdný nebo přišel se starými IP adresami DNS. Ve skriptu /etc/init.d/network vidím, že volá /etc/sysconfig/network-scripts/network-functions který má tuto funkci. Je to viník?

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

Za jakých okolností se tato funkce nazývá?

Vím toto nastavení to no zabrání tomu, aby se soubor /etc/resolv.conf změnil, ale rád bych věděl, zda náš server začal hledat server DHCP i ačkoli BOOTPROTO byl nastaven na none a byla zadána adresa IP? pokud ano, proč?

Několikrát jsem restartoval problémy serverů s tímto problémem, abych problém znovu replikoval, ale obsah /etc/resolv.conf se nyní nemění. Co by mohlo způsobit změnu souboru /etc/resolv.conf při prvním restartu?

Můžeme použít BOOTPROTO=static? Četl jsem jeho zastaralé. Naše stroje jsou všechny RHEL 6.5

Odpověď

Pokud si přečtete /etc/sysconfig/network-scripts/ifup-eth uvidíte že síť používá DHCP, pokud je BOOTPROTO nastaven na dhcp nebo bootp, jinak je nepoužívá se:

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

Dále, pokud DYNCONFIG není null (a dhclient je k dispozici), pak se skripty pokusí použít DHCP, jinak se pokusí o statické adresování IP.

Pomocí grep -r BOOTPROTO * v rámci /etc neukazuje nic jiného než výše uvedený úryvek, což naznačuje, že v BOOTPROTO můžete použít cokoli, pokud to není jeden z výše uvedených.

Můžete použít BOOTPROTO=static, ale pokud nám řekneme, že to není podporováno, nemůžete zaručit t v budoucnu to tak bude fungovat. Navíc váš problém nezmění – static nebo none způsobí, že skript nepoužívá DHCP.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *