Caching DNS와 Cache-Only DNS의 차이점 및 Bind를 사용하여 구현하는 방법
Caching DNS(Recursive DNS)
1. 역할
- Caching DNS 서버는 클라이언트로부터 DNS 쿼리를 받아들이고 원하는 도메인의 IP 주소를 찾는 데 필요한 모든 DNS 레코드 정보를 직접 검색합니다.
- 캐시를 사용하여 최종 결과를 저장하며, 미래에 동일한 도메인에 대한 쿼리를 빠르게 처리하기 위해 이러한 결과를 캐싱합니다.
2. 특징
- Caching DNS 서버는 클라이언트의 쿼리에 대한 원본 DNS 서버로의 재귀적 쿼리를 수행합니다.
- 전체 DNS 계층 구조를 이해하며, 캐시와 재귀 쿼리를 사용하여 원하는 정보를 찾습니다.
- ISP 또는 공공 DNS 서버가 Caching DNS 서버의 예입니다.
Cache-Only DNS(DNS Resolver)
1. 역할
- Cache-Only DNS 서버는 클라이언트의 DNS 쿼리를 받아들이고, 외부 DNS 서버(보통 ISP의 DNS 서버 또는 공공 DNS 서버)에게 DNS 쿼리를 보내어 원하는 정보를 검색합니다.
- 이 정보를 로컬 캐시에 저장하고 나중에 동일한 도메인에 대한 쿼리에 대해 로컬 캐시를 사용하여 빠르게 응답합니다.
2. 특징
- Cache-Only DNS 서버는 도메인에 대한 답변을 직접 검색하지 않으며, 외부 DNS 서버로부터 정보를 가져와서 캐시에 저장합니다.
- 전체 DNS 계층 구조를 이해하지 않고, 외부 DNS 서버로의 쿼리를 단순히 전달하고 캐시된 정보를 로컬에서 사용합니다.
Bind를 사용하여 구현하는 방법
Caching DNS(Recursive DNS) 구현
- Bind 설정 파일(/etc/named.conf)에서 recursion yes;와 같은 재귀 쿼리를 활성화하는 설정을 찾아 활성화합니다.
sudo vim /etc/named.conf
recursion yes;
Cache-Only DNS(DNS Resolver) 구현
- Bind 설정 파일(/etc/named.conf)에서 recursion no;와 같은 재귀 쿼리를 비활성화하는 설정을 찾아 활성화합니다.
sudo vim /etc/bind/named.conf
recursion no;
BIND DNS에서 recursion 지시자를 설정하는 방법
BIND의 recursion 및 allow-recursion 설정은 DNS 서버의 재귀 쿼리 동작과 허용에 관한 중요한 설정입니다. 재귀 쿼리는 클라이언트에서 DNS 서버로 보내는 쿼리가 해당 서버가 다른 DNS 서버에게 이어지는지 여부를 나타냅니다.

1. recursion 설정
recursion 설정은 DNS 서버가 재귀 쿼리를 수행할 것인지를 결정하는 설정입니다.
재귀 쿼리란 DNS 서버가 클라이언트의 쿼리를 받아들이고 다른 DNS 서버(상위 도메인의 DNS 서버 등)에 해당 쿼리를 전달하고, 전체 DNS 계층 구조를 따라 답변을 찾는 작업을 의미합니다.
options {
recursion yes; // DNS 서버가 재귀 쿼리를 수행함
};
recursion 설정을 "yes"로 설정하면 DNS 서버가 재귀 쿼리를 수행합니다. 클라이언트로부터의 DNS 쿼리를 전달하고, 완전한 도메인 정보를 찾기 위해 다른 DNS 서버로 쿼리를 보냅니다.
2. allow-recursion 설정
allow-recursion 설정은 DNS 서버에서 재귀 쿼리를 허용할 IP 주소 또는 IP 대역을 지정하는 설정입니다.
이 설정은 보안과 관련이 있으며, 특정 클라이언트 또는 네트워크에서만 재귀 쿼리를 허용하려는 경우 사용됩니다.
options {
recursion yes; // DNS 서버가 재귀 쿼리를 수행함
allow-recursion { trusted-clients; };
};
위의 예에서 trusted-clients는 허용할 클라이언트의 IP 주소 또는 대역을 정의한 ACL(Access Control List)의 이름입니다. 이 ACL에서 정의한 클라이언트만이 재귀 쿼리를 실행할 수 있습니다.
recursion와 allow-recursion 설정은 DNS 서버의 보안 및 동작을 제어하는 데 중요한 역할을 합니다. 보안을 강화하려면 적절한 allow-recursion 설정을 구성하여 허용되지 않는 클라이언트로부터의 재귀 쿼리를 차단할 수 있습니다.
위의 설정은 Bind DNS 서버를 Caching DNS 또는 Cache-Only DNS로 구성하는 방법의 간단한 개요입니다. 원하는 유형의 DNS 서버에 따라 설정을 조정해야 합니다.
참고URL
- ZyTrax : DNS Configuration Types
- O'Reilly : 8.10 Domain Name System (DNS)
'리눅스' 카테고리의 다른 글
| [draft] CentOS 7에서 EPEL 저장소를 설치하는 방법 (0) | 2025.11.25 |
|---|---|
| [draft] Bind DNS에서 Forward first와 Forward only의 차이점과 설정 방법 (0) | 2025.11.25 |
| [draft] init와 systemd의 특징과 주요 차이점 (0) | 2025.11.25 |
| [draft] PHP PDO(pdo-mysql) 모듈을 활성화하는 방법 (0) | 2025.11.25 |
| [draft] 우분투에서 VSFTPD를 설치하고 설정하는 방법 (0) | 2025.11.25 |