// NETWORK · DNS · BIND · CentOS7
yum bind 설치 → named.conf 설정 → zone 파일 작성 → nslookup 확인까지
DNS가 뭔데
네트워크 수업 듣다가 생각했다.
"www.naver.com 치면 어떻게 IP를 찾는 거지?"
IP 외우기는 불가능하고, 도메인으로 치면 뭔가가 IP로 바꿔주긴 하는데. 그게 바로 DNS다. 직접 구축해보면 구조가 보인다. 그래서 CentOS7에 BIND로 네임서버를 올려봤다.
어떤 구성이냐면
이게 전부다. 단방향이 아니라 양방향 다 된다. 추가로 구성한 것들:
✓
정방향 zone (A 레코드)
도메인 이름 → IPv4 주소 변환
✓
역방향 zone (PTR 레코드)
IPv4 주소 → 도메인 이름 변환
✓
외부 쿼리 허용
listen-on any, allow-query any 설정
✓
Authoritative 모드
recursion no — 자신이 관리하는 zone만 응답
기술 스택
PACKAGE
BIND 9 (bind-*)
OS
CentOS 7
CONFIG
named.conf
named.rfc1912.zones
ZONE FILES
로컬 Zone 파일
/var/named/*.zone
BIND 쓴 이유는 단순하다. 리눅스 DNS 서버의 표준이고, 설정 파일 구조가 실제 운영 환경과 동일하다. 이걸 이해하면 어디서든 통한다.
구조
파일 4개짜리 구성이다. 단순한 게 최고다.
BIND 설치하는 방법
제일 쉬운 부분. yum으로 한 방에 설치한다.
named.conf 설정하는 방법
제일 중요한 부분. 설치 직후 기본값은 로컬에서만 수신하도록 잠겨있다. 외부 쿼리를 받으려면 두 줄을 바꿔야 한다.
⚠️
삽질 포인트
recursion yes 로 두면 캐싱 DNS가 돼버린다. 자신이 관리하는 zone만 응답하는 Authoritative 서버로 쓰려면 반드시 no로 바꿔야 한다.zone 등록하는 방법
이 서버가 어떤 도메인을 관리할지 선언하는 파일이다. 정방향, 역방향 두 개를 끝에 추가한다.
⚠️
삽질 포인트
역방향 zone 이름은 IP 대역을 거꾸로 쓰고
.in-addr.arpa를 붙인다. 192.168.50.x 대역이면 → 50.168.192.in-addr.arpazone 파일 작성하는 방법
실제 도메인 ↔ IP 매핑 정보가 담기는 파일이다. /var/named/ 에 만든다.
⚠️
삽질 포인트
PTR 레코드에서 도메인 끝에 점(.)을 반드시 붙여야 한다.
www.linux.edu.kr ← 틀림 / www.linux.edu.kr. ← 맞음. 점 없으면 zone 이름이 자동으로 붙어서 이상한 도메인이 된다.권한 설정하는 방법
named 데몬은 named 계정으로 돌아간다. zone 파일 그룹을 named로 바꿔야 읽을 수 있다.
DNS 서버 지정하는 방법
서버 자신이 자기 DNS를 쓰도록 설정한다.
named 서비스 재시작
⚠️
재시작 실패 시 디버깅
named-checkconf /etc/named.conf — 설정 파일 문법 검증named-checkzone linux.edu.kr /var/named/linux.edu.kr.zone — zone 파일 검증journalctl -xe | grep named — 상세 로그
nslookup으로 확인하는 방법
정방향(도메인→IP), 역방향(IP→도메인) 둘 다 확인한다.
전체 흐름 요약
간단한데 이거 없으면 네트워크 구조 이해가 안 된다. 직접 세워보면 DNS가 얼마나 핵심인지 바로 보인다.
// 교훈
도메인과 IP를 연결하는 DNS 서버,
직접 구축하면 구조가 보인다.
직접 구축하면 구조가 보인다.
Tags:
#DNS
#BIND
#CentOS7
#named
#네임서버
#zone파일
#nslookup














