안녕하세요, 여행자 K 입니다.
DNS는 도메인 이름을 IP 주소로 변환해 주는 핵심 서비스로, 내부망 환경이나 테스트 환경에서도 자주 사용됩니다. 이번에는 Linux 환경에서 bind 패키지를 이용해 정방향 조회와 역방향 조회가 모두 가능한 DNS 서버를 구성하는 방법을 단계별로 정리해보겠습니다.
DNS Server란?
DNS(Domain Name System)는 사람이 읽기 쉬운 도메인 이름을 시스템이 통신에 사용하는 IP 주소로 변환해 주는 서비스입니다. 예를 들어 example.test.com 과 같은 이름을 192.168.0.101 과 연결해 주며, 반대로 IP 주소를 기반으로 도메인 이름을 조회하는 역방향 조회(PTR)도 구성할 수 있습니다.
주요 특징
- 정방향 조회: 도메인 이름을 IP 주소로 변환
- 역방향 조회: IP 주소를 도메인 이름으로 변환
- 내부망 이름 관리: 사설 IP 환경에서도 도메인 기반 접근 가능
- 서비스 식별성 향상: 서버를 IP 대신 이름으로 관리 가능
구성 예시
이번 예제에서는 아래와 같은 기준으로 DNS 서버를 구성합니다.
- DNS Server IP:
192.168.0.100 - 도메인:
test.com - 레코드 IP:
192.168.0.101 - 레코드 도메인:
example.test.com
사전 준비사항
DNS Server 구성을 시작하기 전에 아래 사항을 확인합니다.
- root 또는 sudo 권한
- 고정 IP가 설정된 서버
- 도메인명 및 레코드 정보 사전 정의 완료
DNS Server 구성 단계
아래 순서대로 진행하면 BIND 기반 DNS 서버를 구성할 수 있습니다.
1단계: DNS 패키지 설치
먼저 DNS 서버 운영에 필요한 bind, bind-utils 패키지를 설치합니다.
# 패키지 설치
dnf install bind bind-utils

설명
bind: DNS 서버 서비스(named) 패키지bind-utils:dig,nslookup등 조회 도구 포함
2단계: named 서비스 활성화 및 시작
패키지 설치 후 DNS 서비스가 부팅 시 자동 실행되도록 등록하고 즉시 시작합니다.
# named 서비스 시작
systemctl start named
# named 서비스 활성화
systemctl enable named

3단계: named.conf 파일에서 존(Zone) 정의
메인 설정 파일인 /etc/named.conf 에서 DNS 서비스 동작 옵션과 정방향/역방향 존을 정의합니다.
# DNS Zone 설정 편집
vi /etc/named.conf
설정 예시
options {
listen-on port 53 { 127.0.0.1; 192.168.0.100; };
directory "/var/named";
allow-query { any; };
recursion yes;
};
# 정방향 존
zone "test.com" IN {
type master;
file "test.com.zone";
};
# 역방향 존 (192.168.0.0/24)
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.rev";
};

설정 항목 설명
listen-on port 53: DNS 서버가 수신할 IP와 포트 지정directory: Zone 파일이 저장될 기본 디렉토리allow-query { any; };: 모든 클라이언트의 질의 허용recursion yes;: 재귀 질의 허용zone "test.com": 정방향 조회용 존 정의zone "0.168.192.in-addr.arpa": 192.168.0.0/24 대역의 역방향 조회용 존 정의
4단계: 정방향 Zone 파일 생성
도메인 이름을 IP로 변환하기 위한 정방향 Zone 파일을 생성합니다.
# 정방향 Zone 파일 생성
vi /var/named/test.com.zone
정방향 Zone 파일 예시
$TTL 1D
@ IN SOA ns.test.com. root.test.com. (
2026013101
1H
15M
1W
1D )
@ IN NS ns.test.com.
ns IN A 192.168.0.100
example IN A 192.168.0.101

레코드 설명
SOA: 해당 존의 시작 정보NS: 네임서버 지정A: 호스트 이름을 IPv4 주소와 연결example IN A 192.168.0.101:example.test.com조회 시 192.168.0.101 응답
SOA 파라미터 의미
2026013101: Serial — Zone 버전1H: Refresh — 보조 서버가 정기 확인하는 주기15M: Retry — 장애 시 재시도 간격1W: Expire — 데이터 유효 한계1D: Minimum — NXDOMAIN 캐시 시간
5단계: 역방향 Zone 파일 생성
IP 주소를 도메인 이름으로 변환하기 위한 역방향 Zone 파일을 생성합니다.
# 역방향 Zone 파일 생성
vi /var/named/192.168.0.rev
역방향 Zone 파일 예시
$TTL 1D
@ IN SOA ns.test.com. root.test.com. (
2026013101
1H
15M
1W
1D )
@ IN NS ns.test.com.
101 IN PTR example.test.com.

레코드 설명
PTR: IP 주소에 대한 도메인 이름 매핑101 IN PTR example.test.com.: 192.168.0.101 조회 시 example.test.com 응답
6단계: Zone 파일 소유권 및 권한 설정
named 서비스가 Zone 파일을 정상적으로 읽을 수 있도록 소유권과 권한을 설정합니다.
# Zone 파일 소유권 설정
chown root:named /var/named/test.com.zone /var/named/192.168.0.rev
# Zone 파일 실행 권한 설정
chmod 640 /var/named/test.com.zone /var/named/192.168.0.rev

7단계: 설정 검증
서비스를 재시작하기 전에 설정 파일과 Zone 파일의 문법 오류를 먼저 검증합니다.
# named 설정 검사
named-checkconf
# 정방향 파일 검사
named-checkzone test.com /var/named/test.com.zone
# 역방향 파일 검사
named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev

검증 포인트
named-checkconf: named.conf 전체 문법 검사named-checkzone: 각 Zone 파일별 문법 및 레코드 검사
8단계: named 서비스 재시작
설정 검증이 끝났다면 DNS 서비스를 재시작하여 변경 내용을 반영합니다.
# named 서비스 재시작
systemctl restart named

9단계: DNS 동작 확인
마지막으로 dig 명령어를 이용해 정방향/역방향 조회가 정상 동작하는지 확인합니다.
# 정방향 조회
dig @192.168.0.100 example.test.com
# 역방향 조회
dig @192.168.0.100 -x 192.168.0.101

정상 동작 기준
- 정방향 조회 시
example.test.com에 대해192.168.0.101응답 - 역방향 조회 시
192.168.0.101에 대해example.test.com응답
전체 설정 요약
아래 표는 이번 DNS Server 구성 절차를 한눈에 볼 수 있도록 정리한 내용입니다.
| 순서 | 구분 | 주요 내용 |
|---|---|---|
| 1 | 패키지 설치 | bind, bind-utils 설치 |
| 2 | 서비스 활성화 | named 서비스 enable / start |
| 3 | 존 정의 | /etc/named.conf 에 정방향/역방향 존 설정 |
| 4 | 정방향 Zone 파일 | test.com.zone 생성 |
| 5 | 역방향 Zone 파일 | 192.168.0.rev 생성 |
| 6 | 권한 설정 | Zone 파일 소유권 및 권한 설정 |
| 7 | 설정 검증 | named-checkconf, named-checkzone 수행 |
| 8 | 서비스 재시작 | systemctl restart named |
| 9 | 동작 확인 | dig 로 정방향/역방향 조회 확인 |
이것으로 Linux 환경에서 BIND 기반 DNS Server를 구성하는 방법을 정리해보았습니다. 핵심은 /etc/named.conf 에서 존을 정확히 정의하고, 정방향 및 역방향 Zone 파일을 올바르게 작성한 뒤 named-checkconf 와 named-checkzone 으로 문법 검증을 선행하는 것입니다. 이후 dig 명령어로 조회 결과만 정상 확인되면 기본적인 DNS 구성은 완료되었다고 볼 수 있습니다.
읽어주셔서 감사합니다.
'Linux' 카테고리의 다른 글
| Linux 계정 비밀번호 정책 설정 방법 (1) | 2026.04.20 |
|---|---|
| Linux SSH 보안 설정 및 적용 방법 (0) | 2026.04.13 |
| Linux Emergency Mode 진입 방법 (0) | 2026.03.23 |
| Linux 디스크 Mount 및 Partition 설정 방법 (0) | 2026.03.16 |
| Linux Local Repository 설정 방법 (0) | 2026.03.09 |