28일차

장민우·2024년 5월 7일
post-thumbnail

DNS(Domain Name System) 서버


Domain 주소를 IP 주소로, IP 주소를 Domain 주소로 변환하는 프로토콜


DNS 서버 종류

  • Master Server : Domain Zone에 대한 권한을 가진 DNS 서버

  • Slave Server : Domain Zone에 대한 보조 DNS 서버 Master Server로부터 Domain 정보를 받아오며 Domain Zone을 변경할 수 없음

  • Caching Server : Domain Zone을 관리하지 않는 서버로 다른 DNS 서버로부터 Domain 정보를 받아 Cache를 저장하는 NDS 서버, 빠른 DNS 응답을 위해 ISP나 네트워크 관리자가 구축하여 사용.

DNS Query 종류

  • 재귀 쿼리(Recursive Query) : 일반적으로 Client가 DNS서버에게 Domain 정보를 요청하는 쿼리

  • 반복 쿼리(Iterative Query) : DNS 서버가 요청한 Domain 정보를 알아내기 위해 Domain 주소를 계층적으로 요청하는 쿼리

Domain Zone

  • 정방향 영역(Forward Zone)
    Domain 주소에 대한 IP 주소를 포함하는 Zone

  • 역방향 영역(Reverse Zone)
    IP 주소에 대한 Domain 주소 정보를 포함하는 Zone

DNS 레코드 종류

DNS 레코드설명
A도메인 주소에 대한 IPv4 주소
AAAA도메인 주소에 대한 IPv6 주소
CNAME호스트에 대한 별칭 정보
MX메일 서버(Mail Exchanger)에 대한 정보
NSDomain의 Name Server(DNS) 에 대한 정보
PTRIP 주소에 대한 Domain 주소 정보
SOA도메인 Zone에 대한 권한 정보(Start Of Authority)
TXT다양한 정보를 포함하기 위한 텍스트 레코드

DNS서비스 구성 방법


  1. DNS 서비스 패키지 설치
    $ yum install bind

  2. BIND 구성 파일 설정
    $ vim /etc/named.conf

기본 설정 값설명
listen-on port 53 {127.0.0.1;};DNS 요청에 응답할 인터페이스와 포트 (IPv4)
listen-on-v6 port 54{LL1l};DNS 요청에 응답할 인터페이스와 포트 (IPv6)
allow-query {localhost;};NDS 쿼리 요청을 허가할 대상

특정 인터페이스 또는, 특정 대상을 지정하려9면 적절한 설정 값을 지정해야 하고, 특정 대상을 지정하지 않으려면 any를 입력.

  1. 서비스 시작
    $systemctl start named.service
  2. 부팅시 서비스 자동시작(영구 시작 설정)
    $systemctl enable named.service
  3. 방화벽 설정
    $ firewall-cmd --add-service=dns
    $ firewall-cmd --add-service=dns --permanent
  4. 동작 확인
    $ nslookup

    캐싱 전용 DNS 서버는 자신이 소유하고 있는 영역(Zone)은 없지만 다른 도메인에 대한 쿼리를 수신하고 직접 순환 쿼리를 수행하거나 다른 DNS 서버로 재귀 쿼리를 수행하여 요청 대한 응답을 확인하고 클라이언트에게 전달하는 역할을 수행합니다.

Domain Zone 구성 방법


  1. DNS 구성파일(/etc/named.rfc1912.zones)에서 Domain Zone 선언.
    $ vim /etc/named.rfc1912.zones

  1. Domain Zone File 작성

    우선 /var/named 디렉터리에 있는 named.empty나 named.localhost 파일을 복사한다 (복사하지 않아도 되지만 기본양식을 따라하기 위해서)

    /var/named 밑에 생성한 example.com.zone (실습 파일) 을 수정한다.
    $ vim /var/named/ZONE_FILE
    $ vim /var/named/example.com.zone

TTL : 도메인의 수명 1D는 하루를 의미함.
@ : 서비스할 영역의 도메인명. @ 기호는 origin을 의미.
IN : DNS클래시 중 Internet을 의미
SOA : 도메인에 대한 정보와 권한이 있음을 선언.(Start of Authority)
ns : 해당 존의 마스터 네임 서버. ns로 입력했으니 master 네임서버인 "example.com"이 된다.
hostmaster.example.com. : DNS 서버 관리자의 메일 주소.
(host1@example.com >>> host.example.com.)

serial : 시리얼 번호. 도메인 정보의 갱신 여부를 판단하기 위하여 사용.
refresh : Slave 서버가 1차 Master 서버의 변경을 확인하는 주기.
retry : Slave 서버에서 Master 서버로 연결이 되지 않을 경우 재시도 주기.
expire : Master 서버로 연결이 계속 이루어지지 않을 경우 만료 기간.
minimim : 캐싱 DNS 서버에서 도메인의 레코드가 유지될 기간을 지정.

  1. restart
    $ systemctl restart named.service
  2. 소유그룹 변경


이런 오류가 발생하기 때문에 소유그룹을 변경해야 한다.(?)

$ chgrp named /var/named/example.com.zone

$ ls -l /var/named/example.com.zone
-rw-r-----. 1 root named 303 May 7 14:26 example.com.zone

$ systemctl restart named.service

  1. 확인
    $ nslookup


클라이언트에서 dns 변경.

역방향 ZONE


  1. DNS 구성파일(/etc/named.rfc1912.zones)에서 Domain Zone 선언.
    $ vim /etc/named.rfc1912.zones

    도메인 주소를 거꾸로 생성.

  2. 마찬가지로 소유그룹 변경

  3. Domain Zone File 작성
    $ vim /var/named/ZONE_FILE
    $ vim /var/named/example.com.zone


빨간색 골뱅이는 지워야함 오타임.
역방향은 PTR 설정.

  1. restart
    $ systemctl restart named.service

  2. nslookup


SLAVE ZONE


$vim /etc/named.rfc1912.zones

  • 네트워크 설정


오류 점검


  • DNS 서버 구성파일 오류점검
    named-checkconf [CONFIG_FILE]\

  • Domain Zone 파일 오류 점검
    $ named-checkzone DOMAIN_ZONE DOMAIN_ZONE_FILE
    $ named-checkzone example.com /var/named/example.com.zone

0개의 댓글