CentOS DNS 서버 설정

개요

DNS (Domain Name System) 서버는 인터넷상에서 도메인 이름과 IP 주소 간의 변환을 담당하는 중요한 역할을 합니다. CentOS에서는 BIND (Berkeley Internet Name Domain)를 사용하여 DNS 서버를 설정할 수 있습니다. 이 블로그 포스트에서는 CentOS에서 DNS 서버를 설정하는 방법을 소개합니다.

CentOS에 BIND 설치하기

먼저 CentOS 시스템에 BIND를 설치해야 합니다. 다음 명령을 사용하여 BIND 패키지를 설치합니다.

sudo yum install bind

BIND 구성 파일 수정하기

BIND를 설치한 후에는 구성 파일을 수정하여 DNS 서버의 동작 방식을 결정해야 합니다. 기본적으로 named.conf 파일을 수정하면 됩니다.

sudo vi /etc/named.conf

주석 제거

named.conf 파일에서 주석된 줄을 찾아서 제거합니다. 주석된 줄은 //로 시작하거나 /* */로 감싸여 있습니다. 주석은 구성 파일의 이해를 돕기 위한 것이지만 실제 적용되지 않기 때문에 제거해야 합니다.

DNS 존 설정

named.conf 파일에서 DNS 존 설정을 추가합니다. DNS 존은 도메인의 이름, IP 주소 및 기타 DNS 레코드를 포함하는 데이터베이스입니다. 존 정보를 추가하는 방법은 다음과 같습니다.

zone "example.com" {
    type master;
    file "/var/named/example.com.zone";
};

위 예제에서는 example.com 도메인을 위한 DNS 존을 설정하고 있습니다. example.com.zone 파일에 실제 도메인의 정보가 저장됩니다. 이 파일은 나중에 생성할 수 있습니다.

전체 구성 파일 저장 및 닫기

named.conf 파일을 저장하고 닫습니다.

DNS 존 파일 추가하기

위에서 설정한 DNS 존에 대한 정보를 포함하는 존 파일을 생성해야 합니다.

sudo vi /var/named/example.com.zone

존 설정 추가

새로 생성한 존 파일에 존 설정을 추가합니다. 존 설정은 도메인과 관련된 DNS 레코드를 정의합니다. 예를 들어, A 레코드는 이름과 IP 주소 간의 매핑을 지정하는 레코드입니다. 존 파일에 대한 예제는 다음과 같습니다.

$TTL 3600
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2019010101      ; serial
                        3600            ; refresh
                        1800            ; retry
                        604800          ; expire
                        86400           ; minimum TTL
)
;
@       IN      NS      ns1.example.com.
;
ns1     IN      A       192.168.1.10
www     IN      A       192.168.1.20

위 예제에서는 ns1.example.comwww.example.com에 대한 A 레코드를 정의하고 있습니다. ns1.example.com은 IP 주소 192.168.1.10으로, www.example.com은 IP 주소 192.168.1.20으로 매핑되어 있습니다.

전체 존 파일 저장 및 닫기

example.com.zone 파일을 저장하고 닫습니다.

DNS 서버 시작하기

DNS 서버를 시작하기 전에 SELinux를 임시로 비활성화하는 것이 좋습니다.

sudo setenforce 0

DNS 서버를 시작합니다.

sudo systemctl start named

DNS 서버가 부팅 시 자동으로 시작되도록 하려면 다음 명령을 사용합니다.

sudo systemctl enable named

CentOS 방화벽 설정 업데이트하기

실제 트래픽을 DNS 서버로 전달하기 위해서는 CentOS 방화벽에 필요한 포트를 허용해야 합니다. DNS 서버를 사용하는 포트로는 TCP/UDP 53이 있습니다.

sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --reload

테스트

DNS 서버가 제대로 설정되었는지 확인하기 위해 다음 명령을 사용하여 도메인 이름을 해석해 보세요.

nslookup example.com

위 명령은 example.com 도메인 이름에 대한 IP 주소를 검색합니다.

결론

CentOS에서 DNS 서버를 설정하는 방법에 대해 알아보았습니다. BIND 구성 파일을 수정하고 DNS 존 파일을 생성한 후 DNS 서버를 시작하여 도메인 이름과 IP 주소 간의 변환을 수행할 수 있습니다. DNS 서버를 올바르게 구성하면 네트워크 환경에서 도메인 이름 기반으로 리소스에 쉽게 접근할 수 있습니다.

DNS 설정 및 구성에 대한 자세한 내용은 CentOS 공식 문서를 참조하세요.