Networking, Security, Protocols

DNS(Domain Name System)

Somaz 2022. 1. 19. 14:05
728x90
반응형

1. 개념

네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해주는 TCP/IP 네트워크 서비스이다.

사람이 기억하기 쉬운 문자형태의 도메인명을 기계가 기억하기 쉬운 숫자 형태의 IP주소로 변경하는 것이다.

 

2. 환경설정

패키지(bind*) / 포트(53/tcp,udp) / 서비스(dns) / 데몬(named[.service])

 

패키지 설치
방화벽 설정

3. DNS 설정파일

1) /etc/hosts(온라인과 오프라인의 네임서버 일치)

 

/etc/hosts 파일

2) /etc/resolv.conf(외부망과 내부망을 연결시켜주는 역할)

 

/etc/resolv.conf

 

3) /etc/named.conf(네임서버 전용 포트인 53번 포트를 열어주는 역할)

 

/etc/named.conf

13, 21, 33번을 수정해준다.

 

listen-on port 53 { 127.0.0.1; };

 = 127.0.0.1 : 자기 자신주소  {any;}입력시 외부에서 누구든 접속허용

 

listen-on-v6 port 53 {;;1;};

 = IPv6의 운영설정내용

 

directory    "/var/named";

 = zone 파일이 위치하는 디렉토리명

 

dump-file    "/var/named/data/cache_dump.db";

 = named는 정보가 갱신될 때 dump 파일로 저장하는데, 덤프파일이 생성될 위치와 파일명을 지정한다.

 

statistics-file    "/var/named/data/named_stats.txt";

 = 네임 서버의 통계 파일을 생성할 위치와 파일명을 지정한다.

 

memstatistics-file    /var/named/data/named_mem_stats.txt";

 = 네임 서버의 메모리 통계 파일을 생성할 위치와 파일명을 지정한다.


allow-query {localhost;};

allow-query { 192.168.0/24 };

 = 네임 서버에 질의할 수 있는 호스트를 지정한다.

 localhost가 적힌 자리에 허용 ip나 대역을 적으면된다.

 네트워크 대역에 속한 호스트만이 질의할 수 있다.

 

datasize 512M;

 = DNS 관련 정보를 캐싱하는데 사용하는 메모리를 제한한다.

 

recursion yes;

 = 하위 도메인에 대한 검색 가능 여부를 지정한다.

 

4) /etc/named.rfc1912.zones (네임서버 정의 파일)

 

Forward Zone (정방향 조회영역) : s.zone

 

Reserve Zone (역방향 조회영역) : s.rev

 

/etc/named.rfc1912.zones

외부파일 /etc/named.rfc1912.zones 에는 사용할 도메인 네임과 IP주소를 이용해

정방향 (IP → 문자) 설정과, 역방향 (문자 → IP) 설정을 할 수 있다.

 

zone "somaz.com" IN {  }  = 정방향 도메인 지정 

type master;     = 서버 타입

file "s.zone";    = zone 파일 이름 설정 (사용자가 생성하는 참조파일)

allow-update{ none; };    = 동기화할 slave(2차 도메인) 서버의 IP지정 (없을경우 none)

 

zone "5.17.172.in-addr.arpa"IN { }  = 자기 자신의 IP주소를 거꾸로 기입 

(IP주소를 거꾸로 적어야 네트워크 주소에소 특정 호스트까지 찾아갈 수 있다.)

type master;     = 서버 타입

file "s.rev";    = 사용자가 생성하는 참조파일

 

4. zone 파일 (정/역방향 데이터베이스 파일) 만들기

사용하는 도메인에 대한 zone 파일은 정방향, 역방향 zone 파일로 나뉘고,

파일명은 관리자가 마음대로 지정할 수 있다.

 

파일은 /var/named 의 named.localhost 를 따로 복사해서 사용한다.

 

 

/var/named/named.localhost
s.zone

파일명은 꼭 자신이 /etc/named.rfc1912.zones 파일에 설정한 정방향 zone 이름으로 지정해야 한다.

 

s.rev

역방향은 PTR을 쓰며 반대로 작성해준다.

 

- Zone 파일의 구조

 

DNS 설정파일 (/etc/named.conf ) 에 zone 구문에서 참조할 zone파일의 구조는

최초 TTL 값을 설정한 이후 SOA(Start Of Authority) 레코드와, 자원레코드로 나뉜다.

 

TTL (Time To Live)

zone 파일의 첫 줄에 명시관 TTL 값은 다른 서버에서 도메인 관련 정보를

가져갔을 경우 가져간 서버의 캐시에 정보가 머무는 기간을 설정한다.

 

1) SOA 레코드

해당 도메인에 대해 여기서 설정한 정보가 모든 정보를 가지고 있음을 선언한다.

도메인에 대한 모든 권한이 여기에 있다.

 

nameserver = ns.somaz.com. 

 = 네임서버의 호스트명과 도메인명을 기입한다. 

 마지막에는 루트도메인을 말하는 '.'을 찍는다.

 

contact_email_address = root.somaz.com.

 = 관리자의 이메일 주소를 "계정.도메인" 형태로 기입한다.

 마지막에는 루트 도메인을 뜻하는 '.'을 찍는다.

 

serial = 0

 = 일종의 일련번호로 보통 "YYYYMMDDNN" 형식으로 기입하며 NN은 수정횟수를 말한다.

 (2020년 2월 1일 수정1회 = 2020020101) 

 

refresh = 1D

 = 2차 DNS 서버가 정보를 업데이트 하기 위해 주 네임 서버를 체크하는 주기

 일반 숫자로 입력할 경우 초를 나타낸다. (21600 = 21600초)

 

retry = 1H

 = 2차 DNS 서버가 주 네임서버로 접속실패 했을 경우 재시도하는 주기

 일반 숫자로 입력할 경우 초를 나타낸다. (900 = 15분)

 

expire = 1W

 = 2차 DNS 서버가 주 네임 서버로 접근에 실패해서 재시도를 하는 경우,

 만기되는 시간을 지정한다.

 

minimum = 3H

 = TTL값과 동일하며 zone파일 정보의 최소 보관 시간을 설정한다.

 

2) 자원 레코드

IN        : 네트워킹 주소 클래스

NS       : 도메인의 네임서버 정보 
MX      : 도메인의 Mail 서버로, MX 다음 숫자는 메일처리의 우선순위를 명시한 것.
        : 해당 도메인의 실제 IP주소(IPv4)를 설정 하는 레코드
CNAME : 별칭으로 부여된 name (서브도메인을 사용하기 위해 지정)
HINFO  : 호스트의 CPU정보와 운영체제 정보
MINFO : 메일박스와 메일 리스트 정보 
PTR      : IP주소에 대한 호스트명
TXT      : 호스트에 대한 텍스트 정보
UINFO  : 사용자 정보
ANY     : 호스트에 관련된 모든 레코드들의 정보 

 

 

위와 같이 에러메세지가 나오면 거의 99프로 오타니 잘찾아서 수정하길 바란다.

 

/etc/named.rfc1912.zones

" 표가 하나 빠져서 에러가 낫다.

 

이렇게 잘 작동하면 성공이다.

 

n[문법검사]

# named-checkconf

 = /etc/named.conf 설정파일의 문법적 오류 검사

# named-checkzone

 = zone 파일의 문법적 오류 검사

zone은 DNS 주요 설정파일인 /etc/named.conf 에 설정할 수도 있으며

include 지시자를 이용해 다른 파일에 설정할 수도 있다.

 

zone 구문이 설정된 파일명으로 설정에 오류가 없는지 검사한다.

ex)

# named-checkconf /etc/named.conf

# named-checkconf /etc/named.rfc1912.zones

# systemctl status named

 

nslookup

만약 nslookup이 잘 이루어지지 않으면 /etc/resolv.conf 파일에 들어가

nameserver를 자기 자신의 IP를 준다.

 

성공!

나는 http 서버도 구성해놧기 때문에 이렇게 맵핑되어서 사이트가 잘 출력된다! 

728x90
반응형

'Networking, Security, Protocols' 카테고리의 다른 글

HTTPS  (0) 2022.02.11
RSA 공개키를 이용한 SSH 접속  (0) 2022.01.20
NFS(Network File System) / auto fs(auto file system)  (0) 2022.01.18
FTP란? FTP Server란?  (0) 2022.01.18
SCP(Secure Copy)  (0) 2022.01.17