아래는 바로 답변란에 붙여넣기 좋게 정리한 내용이야. (출처 링크 없음, 강조기호 없음)
답변내용:
Ubuntu 14.04에서 DNS 서버를 구축하는 가장 일반적인 방법은 BIND9를 설치해 권한 DNS(Authoritative DNS)로 운영하는 방식입니다. 기본 흐름은 “패키지 설치 → 옵션 설정 → 존(Zone) 파일 작성 → 서비스 재시작/검증 → 방화벽/포트 확인” 순서입니다.
1) BIND9 설치
sudo apt-get update
sudo apt-get install bind9 bind9utils dnsutils
2) 기본 옵션 설정(선택)
설정 파일은 /etc/bind/ 아래에 있습니다.
캐시/재귀(내부용)까지 같이 할 경우 외부에서 접근 못하게 제한하는 것이 안전합니다.
sudo nano /etc/bind/named.conf.options
예시(내부망에서만 재귀 허용, 그 외 차단):
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { 127.0.0.1; 192.168.0.0/16; };
allow-query { any; };
listen-on { any; };
listen-on-v6 { any; };
dnssec-validation auto;
};
권한 DNS만 운영할 목적이면 recursion을 no로 두고, allow-query만 조정해도 됩니다.
3) 정방향 존(도메인 -> IP) 등록
sudo nano /etc/bind/named.conf.local
예시:
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
};
4) 존 파일 작성
기본 템플릿을 복사해서 수정하는 방식이 편합니다.
sudo cp /etc/bind/db.local /etc/bind/db.example.com
sudo nano /etc/bind/db.example.com
예시(필수 항목만):
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2026010101 ; Serial (수정할 때마다 증가)
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
ns1 IN A 192.168.0.10
@ IN A 192.168.0.10
www IN A 192.168.0.10
5) 역방향 존(IP -> 도메인) 등록(선택)
sudo nano /etc/bind/named.conf.local
예시(192.168.0.0/24 대역):
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.0";
};
sudo cp /etc/bind/db.127 /etc/bind/db.192.168.0
sudo nano /etc/bind/db.192.168.0
예시:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2026010101
3600
1800
604800
86400 )
;
@ IN NS ns1.example.com.
10 IN PTR ns1.example.com.
10 IN PTR example.com.
6) 설정 검사 후 재시작
sudo named-checkconf
sudo named-checkzone example.com /etc/bind/db.example.com
sudo named-checkzone 0.168.192.in-addr.arpa /etc/bind/db.192.168.0
sudo service bind9 restart
sudo service bind9 status
7) 동작 확인
로컬에서:
dig @127.0.0.1 example.com
dig @127.0.0.1 www.example.com
dig @127.0.0.1 -x 192.168.0.10
원격에서:
dig @DNS서버IP example.com
8) 포트/방화벽 확인
DNS는 UDP 53, TCP 53을 사용합니다. 외부/내부에서 접근이 필요하면 53 포트가 열려 있어야 합니다.
정리하면, Ubuntu 14.04에서는 BIND9로 존을 정의하고 A/NS/PTR 레코드를 작성한 뒤 named-check로 검증하고 재시작하면 DNS 서버가 구성됩니다. 존 파일을 수정할 때는 Serial 값을 올린 뒤 재시작(또는 reload)하는 것이 중요합니다.