NIC가 정적으로 설정되어 있어도 RHEL 7 이후에는 DHCP가 resolv.conf를 덮어씁니다.

NIC가 정적으로 설정되어 있어도 RHEL 7 이후에는 DHCP가 resolv.conf를 덮어씁니다.

모든 RHEL 7 서버에서 이상한 상황에 직면했습니다. 모든 RHEL 7 VM은 DHCP IP를 제공하는 VM에 연결된 구성 도구를 사용하여 구성됩니다. 구성이 완료되면 배치 스크립트를 실행하여 NIC를 정적으로 만들고 resolv.conf유효한 값으로 업데이트합니다.

하지만 우리는 그것이 /usr/sbin/dhcpclient-script그 값으로 업데이트되는 것을 볼 수 있습니다 resolv.conf.

두 NIC의 프로필에는 BOOTPROTO=static, DNS1=x.x.x.x, DNS2=x.x.x.xPEERDNS=no기타 필수 값이 있습니다.

resolv.confNIC를 정적으로 설정한 후에도 구성에 사용되는 DHCP 서버가 수정되는 이유를 이해할 수 없습니다 .

답변1

/etc/dhcp/dhclient-enter-hooks다음 내용으로 파일을 만듭니다 .

#!/bin/sh
make_resolv_conf(){
    :
}

실행 가능하게 만들어라chmod +x /etc/dhcp/dhclient-enter-hooks

에 대한 설명man dhclient-script

연결하다

클라이언트 스크립트가 시작되면 먼저 make_resolv_conf나중에 /etc/resolv.conf파일을 생성하는 데 사용되는 셸 함수를 정의합니다. 기본 동작을 재정의하려면 Enter 후크 스크립트에서 이 함수를 재정의하세요.

함수를 정의한 후 make_resolv_conf클라이언트 스크립트는 실행 가능한 스크립트가 있는지 확인하고 /etc/dhcp/dhclient-enter-hooks, 있으면 Bourne Shell '.'을 사용하여 인라인 스크립트를 호출합니다. 주문하다. OPERATION 아래에 기록된 전체 환경은 이 스크립트에서 사용할 수 있으며 스크립트의 동작을 변경해야 하는 경우 환경을 수정할 수 있습니다.

방법: DHCP 클라이언트가 /etc/resolv.conf를 업데이트하지 않도록 합니다.

답변2

이 답변에 대한 모든 크레딧은 @GAD3R에게 있습니다. 내 시스템의 디렉토리 구조에서는 파일을 .d 디렉토리에 배치하도록 권장합니다. 이것은 미래에 더 유지 관리하기 쉬운 방법인 것 같습니다. 이것을 @GAD3R의 답변으로 편집하고 싶지만 이것이 인기가 있을지는 모르겠습니다. 어쩌면 .d 디렉토리가 없는 시스템이 여전히 존재할 수도 있습니다. 나는 복사하여 붙여넣을 수 있는 솔루션을 좋아합니다.

sudo tee /etc/dhcp/dhclient-enter-hooks.d/unhand-resolv-conf <<EOF
#!/bin/sh
make_resolv_conf(){
    :
}
EOF
sudo chmod +x /etc/dhcp/dhclient-enter-hooks.d/unhand-resolv-conf

답변3

resolvconf가 기본적으로 어떻게 작동하는지 살펴보고 있을 것입니다.

/etc/resolv.conf를 변경하지 않으려면 다음 명령이 실행되도록 예약하십시오. 재부팅 시 실행되도록 예약하세요.

resolvconf --disable-updates

관련 정보