DNS 는 Domain Name System 의 약자로 google.com 이라는 도메인 이름을 216.58.220.110 로 변환하는 역할을 수행합니다.

보통 서버로 사용하는 리눅스는 정적 IP 를 사용하며 yum 같은 외부 네트워크에 연결하는 프로그램이 정상 동작하려면 리눅스에 DNS 설정이 제대로 되어 있어야 합니다.


공식 도구 활용

nmcli 사용

최신 CentOS 계열은 nmcli 명령어 로 DNS 를 설정할 수 있습니다. 다음 명령은 enp5s0f0 인 NIC 에 DNS 를 192.168.129.2 로 설정하는 예제입니다.

nmcli con mod  enp5s0f0 ipv4.address 192.168.129.150/24 \
        ipv4.gateway 192.168.129.2 \
        ipv4.dns 192.168.129.2 \
        ipv4.method manual connection.autoconnect yes
BASH


netplan 사용

Ubutun 20 부터는 netplan 을 사용하므로 yaml 파일에 DNS 와 network 정보를 설정해주면 됩니다.

resolv.conf 에 직접 설정

Linux 나 OS X 등에서 DNS 변환시 사용할 DNS 서버는 /etc/resolv.conf  파일에 설정하며 포맷은 다음과 같이 nameserver 키워드 뒤에 서버의 IP 를 적어주면 됩니다.

최근 Linux 배포판은 resolv.conf 를 직접 수정하면 재부팅시 정보가 사라질 수 있으니 nmcli나 netplan 을 사용해서 설정해야 합니다.


리눅스의 경우 키워드는 최대 3개까지 가능하며 다음은 구글 DNS 를 최우선으로 하고 연결하지 못할 경우 CloudFlare 의 DNS 를 사용하도록 설정하는 예제입니다.

nameserver 8.8.8.8
nameserver 1.1.1.1
CODE


만약 검색시 기본 도메인을 설정할 경우 search 키워드뒤에 기본 도메인을 기술해 주면 됩니다. 

nameserver 8.8.8.8 
nameserver 1.1.1.1 
search example.com
BASH

예로 위와 같이 설정하면 nslookup www 만 쳐도 www.example.com 의 IP 를 찾아 줍니다.

확인

DNS 의 정상 설정 여부는 DNS 를 사용하는 nslookup 이나 host 명령어를 사용해서 정상 동작 여부를 확인하면 됩니다.

$ host google.com

google.com has address 172.217.25.78
google.com has IPv6 address 2404:6800:4004:81c::200e
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
BASH


같이 보기


Ref