BOOTPROTO = 없음 | 정적 | dhcp 및 /etc/resolv.conf

iv id에서 BOOTPROTO=none가 표시되는 것은 무엇을 의미합니까? = “4b2fd48573″>

파일입니다.

예전에 BOOTPROTO=static가 있었던 것을 기억하며 다음과 같은 경우에 매우 명확하고 간단합니다. IPADDR=<x.x.x.x>가 주어지면 서버는 지정된 IP 주소로 표시됩니다. 마찬가지로 BOOTPROTO=dhcp는 동적 IP 주소를 얻기 위해 DHCP 서버를 찾습니다. Redhat은 다음과 같이 말합니다.

 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. 
  • ifcfg-eth0 파일에 IP를 지정하지 않으면 DHCP 서버와 IP가 지정되면 고정 IP를 선택합니까?

  • DHCP 서버를 찾고 / etc / resolv를 수정할 가능성은 얼마나됩니까? BOOTPROTO가 none으로 설정되어있을 때 IP 주소가 IPADDR=로 지정된 경우에도 conf?

컨텍스트 :-데이터 센터를 이동하고 많은 서버에서 IP 주소를 변경해야했습니다. 새 DNS 서버의 IP 주소로 /etc/resolv.conf를 수정했지만 어떤 이유로 든 일부 서버에서는 /etc/resolv.conf가 비워 졌거나 이전 DNS IP 주소를 찾았습니다. /etc/init.d/network 스크립트에서 /etc/sysconfig/network-scripts/network-functions이 기능이 있습니다. 이것이 범인입니까?

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

이 함수는 어떤 상황에서 호출됩니까?

알고 있습니다. 그 설정 에서 no로 변경하면 /etc/resolv.conf가 변경되지 않습니다. 그러나 서버가 DHCP 서버를 찾기 시작했는지 여부를 알고 싶습니다. BOOTPROTOnone로 설정되고 IP 주소가 지정되었지만? 그렇다면 그 이유는 무엇입니까?

문제를 다시 복제하기 위해이 문제가있는 서버 문제를 몇 번 재부팅했지만 /etc/resolv.conf의 내용이 지금 변경되지 않습니다. 첫 번째 재부팅에서 /etc/resolv.conf가 변경된 원인은 무엇입니까?

BOOTPROTO=static를 사용할 수 있습니까? 더 이상 사용되지 않는 것으로 읽었습니다. 모두 RHEL 6.5입니다.

답변

/etc/sysconfig/network-scripts/ifup-eth를 읽으면 BOOTPROTOdhcp 또는 bootp로 설정된 경우 네트워킹은 DHCP를 사용합니다. 그렇지 않으면 사용되지 않음 :

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

더 아래로, DYNCONFIG가 null이 아닌 경우 (그리고 dhclient 사용 가능) 스크립트는 DHCP 사용을 시도합니다. 그렇지 않으면 정적 IP 주소 지정이 시도됩니다.

iv id = “9fa000facc”내에서 grep -r BOOTPROTO * 사용 >

는 위의 스 니펫 외에는 아무것도 표시하지 않습니다. 이는 위의 두 개 중 하나가 아닌 한 BOOTPROTO에서 무엇이든 사용할 수 있음을 의미합니다.

BOOTPROTO=static를 사용할 수 있지만 지원되지 않는다고 “말하면”보장 할 수 없습니다. 모자는 앞으로 이렇게 작동 할 것입니다. 또한 문제에 영향을주지 않습니다. static 또는 none로 인해 스크립트가 DHCP를 사용하지 않습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다