클라우드 환경의 가상 머신(VM)은 일반적으로 DHCP를 통해 IP 주소와 함께 DNS 서버 정보도 자동으로 할당받아 사용하지만,
특정 상황에서는 관리자가 DNS 서버를 직접 지정하거나, DHCP에서 전달되는 DNS 정보를 무시하고 사용자 정의 DNS를 사용이 필요 함.
- Netplan이나 systemd-networkd 설정에서 use-dns: false 옵션을 사용하여 DHCP가 제공하는 DNS를 무시
- nameservers 항목을 통해 원하는 DNS 주소와 검색 도메인을 수동으로 등록
/etc/netplan 아래에 2개의 파일이 존재
- 50-cloud-init.yaml
- cloud-init이 자동 생성
- 먼저 로드됨 (DHCP, 인터페이스 기본 설정)
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: false
- 99-custom-dns.yaml
- 사용자가 수동 작성
- 마지막에 로드되어 덮어씀 (DNS, search 등)
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
use-dns: false
nameservers:
addresses: ['8.8.8.8', '1.1.1.1']
동작 순서
- netplan은 숫자가 낮은 파일은 먼저 읽고, 숫자가 높은 파일로 갈수록 설정을 병합.
- 동일한 인터페이스(eth0)에 중복 키가 잇으면, 번호가 큰 파일의 값이 우선 적용.
- 50번 파일이 IP/DHCP 정보를 제공하고, 99번 파일이 DNS를 덮어씌우는 구조
설정 시 주의
- dhcp4-overrides 구문은 dhcp4: true 가 있어야 정상 작동함.