목차
본문으로 바로가기

[Linux] OCI resolv.conf, hosts 파일 변경 유지 방법

category Cloud/OCI 2025. 5. 31. 17:53

개요

Oracle Cloud Infrastructure(OCI)에서 /etc/resolv.conf  /etc/hosts 파일을 수동으로 변경한 경우, 시스템 재부팅 후 변경 내용이 초기화되는 현상이 발생할 수 있습니다.
이러한 문제는 인스턴스의 메타데이터 서비스 및 DHCP 클라이언트 설정으로 인해 발생하며, 변경 사항을 유지하려면 특정 설정이 필요합니다.


대상

  • Oracle Linux
  • CentOS
  • 기타 OCI에서 제공하는 Linux 계열 OS (Rocky, AlmaLinux 등)

해결 방법

1. /etc/oci-hostname.conf 설정 파일 생성

OCI에서는 인스턴스의 호스트명과 관련된 정보를 관리하기 위해 /etc/oci-hostname.conf 파일을 사용합니다.

sudo vi /etc/oci-hostname.conf

내용:

PRESERVE_HOSTINFO=2

PRESERVE_HOSTINFO 값 설명:

  • 1 (기본값): DHCP 응답을 기준으로 호스트명 및 hosts 파일 갱신
  • 2: 사용자 정의 호스트명, /etc/hosts, /etc/resolv.conf 유지
  • 3: 사용자 정의 호스트명, /etc/hosts 유지 (resolv.conf는 OCI DHCP에서 갱신됨)

2. /etc/resolv.conf 파일을 불변(immutable)으로 설정

파일 변경 이후 재부팅 시에도 유지되도록 다음 명령을 실행합니다:

sudo chattr +i /etc/resolv.conf
  • 이 방법은 강제적인 보호 기능을 제공하지만, 시스템에서 자동으로 DNS 설정을 업데이트해야 하는 경우에는 적절하지 않을 수 있습니다.

복원(해제)하려면:

sudo chattr -i /etc/resolv.conf

3. DHCP 클라이언트 설정을 통해 DNS 정보 고정

/etc/dhcp/dhclient.conf 파일에서 DHCP 클라이언트가 제공하는 DNS 정보를 무시하고 고정값을 사용하도록 설정할 수 있습니다.

supersede domain-name "example.com";
supersede domain-name-servers 8.8.8.8, 8.8.4.4;

해당 파일이 존재하지 않는 경우 시스템의 DHCP 클라이언트 구성 방식(Netplan, NetworkManager 등)을 확인해야 합니다.


4. cloud-init 또는 NetworkManager 설정 조정

OCI 인스턴스에서는 cloud-init이나 NetworkManager가 DNS 및 hosts 설정을 자동 갱신하는 경우가 있습니다. 이럴 경우 관련 설정을 비활성화해야 합니다.

(1) cloud-init 사용 시

sudo mkdir -p /etc/cloud/cloud.cfg.d
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network: {config: disabled}

(2) NetworkManager 사용 시

sudo vi /etc/NetworkManager/NetworkManager.conf
[main]
dns=none

이후 NetworkManager 재시작:

sudo systemctl restart NetworkManager

참고 문서