Back
DNS 네임서버 운영하기 (근데 이제 BIND9를 곁들인)

DNS 네임서버 운영하기 (근데 이제 BIND9를 곁들인)

Date
Nov 7, 2025
Published

짜잔

Sitey - free domain 레코드 타입을 지정해서 서브도메인을 할당받기 때문에 백엔드와 프론트엔드 작업시 모두 사용 가능.
notion image
 
 
 

목적 및 동기

웹 서비스에서 HTTPS는 필수적인데 ssl 인증서의 적용을 위해서는 도메인이 하다. 서버 개발 시 단지 ssl 적용만을 위한 도메인 구입과 DNS 설정 과정에서 소비되는 리소스를 줄이고 싶었다.
단순히 도메인 공급업체의 API를 활용하는 방식이 아닌, 겸사겸사 DNS의 전체적인 구조 파악하며 BIND9로 네임서버를 직접 구축하는 자체 호스팅 방식을 채택했다.
 

DNS 구조와 BIND9의 역할

DNS 시스템은 책임별로 나뉜 계층형 구조
 

계층 구조

  • Resolver 서버 (KT, SKT 등) // 사서
  • Root 서버 (.) // 도서관
  • TLD 서버 (.com, .net 등) // 층
  • 권한 네임서버 (google.com, daum.net) // 책장
 

DNS의 동작 (cafe.naver.com)

notion image
  1. 브라우저에 cafe.naver.com 입력
  1. 사용중인 인터넷 기지국의 Resolver 서버에서 캐시 확인
    1. ip 반환 or Root 서버 연결
  1. Root 서버에서 .com을 확인하고 해당 TLD 서버 연결
  1. TLD 서버에서 naver.com의 네임서버(ns1.naver.com) 연결
  1. 네임서버에서 cafe.naver.com의 ip(A 레코드) 반환
 

BIND9

  • 권한 네임서버의 역할을 수행하는 소프트웨어
  • 글루레코드 등록 필수
    • 도메인에 대해 네임서버만 지정하게되면 DNS 시스템은 네임서버의 ip를 알 수 없기 때문에 도메인 공급업체에 네임서버의 ip를 글루레코드로 등록
  • Ubuntu 내에 설치하여 네임서버 도메인의 원본 정보를 관리하고 전세계 DNS 시스템에 응답
  • DNS 통신은 53번 포트 사용
  • 구성
    • index 파일
      • named.conf.local
      • 책임 도메인 관리
      • 예시
        zone "sitey.one" { // 책임 대상 도메인 type master; file "/etc/bind/db.sitey.one"; // 해당 도메인의 레코드 파일 위치 }; zone "sitey.my" { type master; file "/etc/bind/db.sitey.my"; };
    • zone 파일
      • db.naver.com
      • 도메인 내 레코드 관리
      • 예시
        ; --- 기본 정보 --- $TTL 3600 @ IN SOA ns1.sitey.one. admin.sitey.one. ( 7 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 3600 ) ; Negative Cache TTL ; ; --- 네임서버 --- @ IN NS ns1.sitey.one. @ IN NS ns2.sitey.one. ; --- 네임서버의 A 레코드 --- ns1 IN A 1.2.3.4 ns2 IN A 1.2.3.4 ; --- A 레코드 --- @ IN A 1.2.3.4 www IN A 1.2.3.4 ; --- 기타 레코드 --- first IN A 1.2.3.4 cname IN CNAME b9401266e46b1428.vercel-dns-016.com. blissey IN A 1.2.3.4
 

BIND9의 동작 (레코드 추가)

  1. A, CNAME 등 신규 레코드 추가 시에 해당 도메인의 zone 파일을 수정
  1. 레코드에 대한 정보 작성
    1. 리졸버들의 캐시 수정을 위해 시리얼 번호 변경 필수
  1. 프로세스 재시작
  1. 다음 DNS 시스템의 요청 시에 해당 정보로 응답
 
 
 

이슈

ip 평판 시스템의 존재

  1. BIND9 구축과 글루레코드 등록까지 완료했음에도 dig 조회 시 NXDOMAIN이 출력
    1. notion image
  1. whois 조회 결과 Domain Status 속성에서 serverHold 확인
    1. notion image
      • serverHold란?
        • 레지스트리(TLD)에 의해 DNS가 중지된 상태
        • EPP Status Codes | What Do They Mean, and Why Should I Know? - ICANN
  1. TLD에 소명신청을 하기 위해 블랙리스트 관리 사이트에서 확인
    1. Spamhaus, VirusTotal, SURBL 등
      1. notion image
    2. 그 중 Spamhaus에 리스팅 되어있었고 사유 확인
      1. notion image
  1. 결국 OCI가 아닌 다른 클라우드 서비스 이용하는 것으로 우회
 

참고

DNS 개념
TISTORYTISTORY🌐 DNS 개념 & 동작 ★ 알기 쉽게 정리
TISTORYTISTORY🌐 DNS 레코드 종류 ★ 완벽 정리
BIND9 공식문서
3. Configurations and Zone Files — BIND 9 9.20.15 documentation