DNS 서버는 마스터, 슬레이브, 포워딩, 캐시 등 여러 유형이 있으며, 캐시 전용 DNS가 설정하기 쉬운 유형 중 하나입니다. DNS는 UDP 프로토콜을 사용하므로 확인 응답이 필요하지 않아서 쿼리 시간을 개선합니다.

캐시 전용 DNS 서버는 리졸버로도 알려져 있으며, DNS 레코드를 쿼리하고 다른 서버에서 모든 DNS 세부 정보를 가져와 각 쿼리 요청을 캐시에 보관하여 나중에 동일한 요청을 수행할 때 캐시에서 제공하여 응답 시간을 더 줄입니다.
CentOS/RHEL 6에서 DNS 캐싱 전용 서버를 설정하려면 다음 가이드를 따르십시오:
CentOS/RHEL 6에서 캐싱 전용 DNS 이름 서버 설정
내 테스트 환경
DNS server : dns.tecmintlocal.com (Red Hat Enterprise Linux 7.1) Server IP Address : 192.168.0.18 Client : node1.tecmintlocal.com (CentOS 7.1) Client IP Address : 192.168.0.29
단계 1: RHEL/CentOS 7에 캐시 전용 DNS 서버 설치
1. 캐시 전용 DNS 서버는 bind 패키지를 통해 설치할 수 있습니다. 패키지 이름을 기억하지 못하는 경우 아래 명령을 사용하여 빠르게 패키지 이름을 검색할 수 있습니다.
# yum search bind

2. 위 결과에서 여러 패키지를 볼 수 있습니다. 그 중에서 다음 yum 명령을 사용하여 bind와 bind-utils 패키지만 선택하여 설치해야 합니다.
# yum install bind bind-utils -y

단계 2: RHEL/CentOS 7에서 캐시 전용 DNS 구성
3. DNS 패키지가 설치되면 DNS를 구성할 수 있습니다. 선호하는 텍스트 편집기를 사용하여 /etc/named.conf
을 열고 편집하세요. 아래 제안된 변경 사항을 만들어 주세요 (또는 귀하의 요구에 따라 설정을 사용할 수 있습니다).
listen-on port 53 { 127.0.0.1; any; }; allow-query { localhost; any; }; allow-query-cache { localhost; any; };

이러한 지시문은 DNS 서버가 UDP 포트 53에서 수신하도록하며, localhost 및 서버에 도달하는 다른 모든 기계에서 쿼리를 허용하고 응답을 캐시하도록합니다.
4.이 파일의 소유권이 root:named
로 설정되어 있어야하며, 또한 SELinux가 활성화되어 있는 경우 구성 파일을 편집 한 후에는 해당 컨텍스트가 named_conf_t
로 설정되어 있는지 확인해야합니다. (보조 파일 /etc/named.rfc1912.zones
에 대해서도 동일합니다):
# ls -lZ /etc/named.conf # ls -lZ /etc/named.rfc1912.zones
그렇지 않으면 계속 진행하기 전에 SELinux 컨텍스트를 구성하세요:
# semanage fcontext -a -t named_conf_t /etc/named.conf # semanage fcontext -a -t named_conf_t /etc/named.rfc1912.zones
5.게다가, bind 서비스를 시작하기 전에 DNS 구성에 대한 구문 오류를 테스트해야합니다:
# named-checkconf /etc/named.conf
6.구문 검사 결과가 완벽해 보이면 named 서비스를 다시 시작하여 새 변경 사항을 적용하고 시스템 부팅 시 서비스를 자동으로 시작하도록하고 상태를 확인하세요:
# systemctl restart named # systemctl enable named # systemctl status named

7.그다음 방화벽에서 포트 53을 엽니다.
# firewall-cmd --add-port=53/udp # firewall-cmd --add-port=53/udp --permanent

단계 3: RHEL 및 CentOS 7에서 Chroot Cache-Only DNS 서버
8. 만약 캐시 전용 DNS 서버를 chroot 환경 내에 배포하려면 시스템에 chroot 패키지가 설치되어 있어야 하며 추가 구성은 필요하지 않습니다. 기본적으로 chroot에 하드 링크되기 때문입니다.
# yum install bind-chroot -y
chroot 패키지가 설치된 후에는 새 변경 사항을 적용하기 위해 named를 다시 시작할 수 있습니다.
# systemctl restart named
9. 그 다음, /var/named/chroot/etc/
내에 심볼릭 링크(/etc/named.conf
로도 불림)를 만듭니다.
# ln -s /etc/named.conf /var/named/chroot/etc/named.conf
단계 4: 클라이언트 머신에서 DNS 구성
10. 클라이언트 머신에 DNS 캐시 서버 IP 192.168.0.18를 리졸버로 추가합니다. 다음 그림에 표시된 대로 /etc/sysconfig/network-scripts/ifcfg-enp0s3
을 편집합니다.
DNS=192.168.0.18

그리고 /etc/resolv.conf는 다음과 같이 합니다.
nameserver 192.168.0.18
11. 마지막으로 캐시 서버를 확인할 시간입니다. 이를 위해 dig 유틸리티나 nslookup 명령을 사용할 수 있습니다.
웹사이트를 선택하여 두 번 쿼리하여(여기서는 facebook.com 예를 들겠습니다) dig를 사용하면 두 번째 쿼리는 캐시로부터 빠르게 제공되므로 완료됩니다.
# dig facebook.com

nslookup을 사용하여 DNS 서버가 예상대로 작동하는지 확인할 수도 있습니다.
# nslookup facebook.com

요약
이 기사에서는 Red Hat Enterprise Linux 7 및 CentOS 7에서 DNS 캐시 전용 서버를 설정하는 방법을 설명하고 클라이언트 기계에서 테스트했습니다. 아래 양식을 사용하여 궁금한 점이나 제안 사항이 있으면 언제든지 알려주세요.
Source:
https://www.tecmint.com/install-configure-cache-only-dns-server-in-rhel-centos-7/