DNS

Laigasus

Infra|2024년 8월 1일|마지막 수정 시간: 2024년 9월 24일|
type
status
date
slug
summary
tags
category
icon
password

정의

DNS(도메인 네임 시스템)는 인터넷에 연결된 컴퓨터, 서비스, 또는 기타 리소스의 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
 

특징

  • 분산형 데이터베이스 시스템
  • 도메인 이름을 IP 주소로 변환
  • 계층적 구조
  • 캐싱을 통한 빠른 조회 속도
  • 다양한 레코드 유형 지원 (A, AAAA, CNAME, MX 등)
 

FQDN

FQDN(완전한 도메인 이름)은 도메인 이름의 모든 계층을 포함하는 도메인 이름입니다.
notion image

구조

  1. 루트 레벨: 최상위 도메인 서버를 포함합니다.
  1. TLD (최상위 도메인) 레벨: .com, .org, .net 등과 같은 최상위 도메인을 관리합니다.
  1. 도메인 레벨: 특정 도메인 이름을 관리합니다. 예: example.com.
  1. 서브도메인 레벨: 도메인의 하위 섹션을 관리합니다. 예: mail.example.com.
각 레벨은 계층 구조에서 상위 레벨로부터 정보를 요청하고, 이 정보는 하위 레벨로 전달됩니다./.

DNS Zone

DNS Zone은 도메인의 특정 부분을 관리하는 단위입니다. 각 Zone은 각기 다른 관리자에 의해 관리될 수 있으며, 해당 Zone 내의 도메인 이름과 IP 주소 매핑 정보를 포함합니다.

DNS Record

DNS 레코드는 도메인 이름과 그에 연관된 다양한 정보를 저장하는 데이터 항목입니다. 주요 DNS 레코드 유형에는 다음이 포함됩니다:
레코드 유형
설명
A
도메인 이름을 IPv4 주소로 매핑
AAAA
도메인 이름을 IPv6 주소로 매핑
CNAME
하나의 도메인 이름을 다른 도메인 이름으로 매핑, 주로 도메인 별칭 지정에 사용
MX
메일 서버 정보를 지정, 이메일 전송을 위한 메일 서버의 우선순위와 주소 정의
TXT
도메인에 대한 텍스트 정보를 저장, 도메인 소유권 확인이나 이메일 인증에 사용
NS
도메인의 네임서버 정보를 지정, 도메인의 DNS 조회를 처리할 네임서버 정의
PTR
IP 주소를 도메인 이름으로 매핑, 주로 역방향 DNS 조회에 사용
SRV
특정 서비스에 대한 위치 정보를 정의, 여러 서버가 동일한 서비스를 제공할 때 사용
SOA
도메인의 시작 정보를 포함, 기본 네임서버, 관리자 이메일, 도메인 시리얼 번호, 갱신 주기 등의 정보 포함
 

DNS 단일 서버 운영

DNS 서버를 운영하려면 다음의 Task 를 수행해야 합니다.
  1. 네트워크 구성(storage)
  1. 패키지 설치(실행파일/명령어 등) - bind
  1. 서비스 실행(실행 후 설정이 가능한 경우 한정)
  1. 서비스 설정(설정파일+사용자+권한+SELinux...)
  1. 서비스 재시작(서비스 실행 후 설정 시, 아니면 실행)
  1. 방화벽 규칙 설정
 
아래의 명령어를 사용해 bind 를 설치합니다.
 
 
BIND 구성을 위해 /etc/named.conf 설정 값을 변경합니다.
  • listen-on port 53: DNS 서버가 쿼리를 수신할 IP 주소와 포트를 지정합니다.
  • directory: DNS 서버가 사용할 작업 디렉토리를 지정합니다.
  • allow-query: DNS 쿼리를 허용할 클라이언트의 IP 주소 또는 네트워크 범위를 지정합니다.
  • recursion: 재귀 쿼리를 허용할지 여부를 설정합니다.
  • dnssec-validation: DNSSEC 검증을 활성화할지 여부를 설정합니다.
  • pid-file: DNS 서버의 프로세스 ID를 저장할 파일의 경로를 지정합니다.
 
💡
영역(Zone) 이란?
DNS에서 영역(Zone)은 특정 도메인 이름 공간의 일부를 관리하는 단위입니다. 영역은 하나 이상의 도메인 이름과 그에 관련된 리소스 레코드들의 집합으로, DNS 서버가 직접 관리하는 데이터베이스의 일부입니다. 영역 파일에는 해당 도메인에 대한 모든 DNS 정보가 포함되며, 이를 통해 DNS 서버는 특정 도메인에 대한 쿼리에 응답할 수 있습니다.
 
추가로 정방향 /var/named/data/sesac.co.kr.zone 도 작성해줍니다.
역방향 /var/named/data/db.192.168.56 도 만들어줍니다.
 
설정 이후 systemctl 로 해당 서비스를 재시작합니다.
 
기존 생성된 파일의 권한을 부여하고 서비스를 재시작합니다.
 
방화벽을 개방해줍니다
 
정상동작하는지 확인합니다.
 

 

이중화 운영

node1 의 /etc/named.conf 내 영역(Zone)값을 아래와 같이 수정합니다.
 
node2 도 node1 의 패키지와 동일하게 설치합니다.
그리고 node2 /etc/named.conf 를 수정합니다.

REF

 
Loading...