Linux

CentOS 7 - DNS Server

seo07 2024. 7. 22. 11:16

✔ DNS(Domain Name Server)

- Domain 이름을 IP로 변환해주는 서버

- 사이트에 있는 서버들의 정보를 저장

- 컴퓨터 이름 + IP 를 hosts 파일에 기록

- C:\Windows\System32\drivers\etc\hosts (window)

- /etc/hosts (linux)

- DNS는 기본적으로 UDP 53번을 사용, 특수한 경우 TCP 53번 포트 사용한다

※ TCP 포트 사용하는 경우

 1. 안정성을 위해 두 개의 DNS 서버를 사용할 경우 Master에서 Slave로 Zone 정보를 보낼 때 사용

 2. 쿼리 메시지가 512bite를 넘어갈 때 사용

 

🔵 도메인 구조

Root Level Domain 도메인 구조에서 최상위를 차지하는 도메인
일반적으로 브라우저에 입력하는 경우는 생략
도메인 설정 시 반드시 표기
전 세계에 Root DNS 서버 13개 존재
Top Level Domain kr, fr, sp, en, jp, … ccTLD(country code) / 국가 코드 최상위 도메인
com, net, org, gTLD(general) / 일반 최상위 도메인
Second Level Domain naver, google, kakao 회사나 조직, 기관 등의 목적에 부합되는 단어 및 숫자를 이용해 생성
Third Level Domain www, ftp, 각 목적에 따라 필요한 경우 생성된 도메인, 서브 도메인이라고도 함

 

※ FQDN(Full Qualified Domain Name)

- "www.naver.com"  처럼 호스트 부분(www)과 도메인 부분(naver.com)을 전체로 부르는 것

<이미지 : https://한국인터넷정보센터.한국 자료 첨부>

 

🔵 DNS 동작 방식

🔵 DNS Server 종류

 ▪ 캐시 네임 서버(로컬 DNS 서버)

   - 사용자들의 질의를 받아 DNS 정보를 조회하여 응답해주는 네임 서버 

 

 ▪ 권한 네임 서버(마스터 DNS 서버)

   - 도메인 존(zone) 데이터를 갖고 있어, 응답하는 네임 서버

   - 도메인을 등록할 때 이 서버의 IP를 등록하고 자체 도메인에 대한 정보를 관리

   - 회사나 단체에서 제공하는 서비스 or 호스트를 IP로 매핑시켜주는 서버

 

🔵 DNS 관련 설정 파일

 ▪ /etc/hosts

   - 자체 설정 forward 파일

 

 ▪ /etc/resolv.conf

   - 네임서버 주소 지정

   - 직접 지정은 일회성( 재부팅 시 초기화 )

   - 네트워크 설정 파일에서 DNS 서버 주소를 지정해야 함

 

🔵 DNS Server 구축

◾ Local DNS Server(Cache DNS Server or Recursive DNS Server)

 1. 서비스에 필요한 패키지 찾기

  # bind, bind-utils

 

 2. 패키지 버전 확인 및 설치

  # yum install -y bind-utils bind 

 

 3. 설정

  # vim /etc/named.conf

  12행 ~ 45행 : 전역 설정

  

  13행 listen-on port 53 { 127.0.0.1; }; // 127.0.0.1any 로 수정

  21행 allow-query { localhost; }; // localhostany 로 수정

 

 ※ named-checkconf /etc/named.conf : 문법 체크

 

 4. 서비스 실행 및 동작 확인 & 방화벽 설정 및 확인

  # systemctl restart dns

  # systemctl status named

  # firewall-cmd --add-service=dns --permanent

  # firewall-cmd --add-port={53/tcp,53/udp} --permanent

  # firewall-cmd --reload

  # firewall-cmd --list-all

  # setenforce 0

  # vim /etc/selinux/conf

     enforcing을 disabled로 변경

 

5. /etc/resolv.conf 파일 수정

  nameserver [DNS 서버 IP] // 추가

 

6. nslookup 확인

  # nslookup

   > server

   > www.naver.com

 

※ dig를 통해 IP를 받아오는 경로를 추적

# dig @192.168.56.10 www.kakao.com  A +trace

 

◾  Master DNS Server(Authoritative DNS Server)

▫ 정방향 DNS 설정

- /etc/named.conf 파일 수정

 

 - # forwarders {a.b.c.d}; : 내부 DNS 설정 시 외부 DNS 서버로 포워딩 하는  명령

 - zone 생성 

 

 - Zone Database 파일 생성

 # cd /var/named

 # cp named.localhost syc.com.db

 ※ 파일의 소유그룹을 named로 변경해야 함

vim syc.com.db

syc.com.db 파일 수정
/var/named/ ls -l : zone db 파일 소유그룹 확인

▫ 역방향 DNS 설정

- /etc/named.conf 파일 수정

- Zone Database 파일 생성

# cd /var/named/

# cp -p named.loopback syc.rev

# vim syc.rev