Day 11-DNS 서버

2019. 12. 3. 14:29Security/리눅스

* DNS 서버

- 클라이언트가 도메인(호스트 네임)의 IP정보를 요청하면 DNS를 조회해서 IP 주소를 알려주는 역할로 분산 데이터베이스 시스템.

- HTTP, FTP, SMTP등 사용자가 제공한 호스트 네임을 IP로 변환하는데 이용.

-인터넷의 가장 중요한 기능중 하나이며 Network edge에 구현.

 

DNS를 중앙 집중식이 아닌 분산형 DB 시스템으로 운영하는 이유

1. 서버 장애

2. 트래픽 집중

3. 중앙 서버까지의 거리

4. 관리

 

DNS 구조

사이트명.com. -> 에서 .은 루트 DNS라고 함

 

cache DNS

cache DNS는 루트 DNS 서버의 정보만 가지고 있고 나머지 DNS 서버의 정보는 직접 가지고 있는 것이 아니라 루트 DNS서버의 하위 서버에 질의한다.

 

Client가 www.amazone.com의 IP를 원할때 local DNS서버(cache DNS)의 동작 과정

1. local DNS가 루트 DNS에게 com DNS의 IP정보를 요청하면 루트 DNS가 com DNS의 IP 정보를 알려줌.

2. 응답받은 com DNS의 IP로 amazone.com의 IP정보를 요청하면 com DNS가 amazone.com의 IP 정보를 알려줌.

3. 응답받은 amazone.com DNS의 IP로 www.amazone.com의 IP 정보를 요청하면 amazone.com DNS가 www.amazone.com의 IP정보를 알려 줌

4. 획득한 www.amazone.com의 IP를 클라이언트에게 제공

 

DNS 서버의 종류 

Top-Level domain(TLD) server
- com, org, net등과 같은 상위 레벨 도메인과 모든 국가의 상위 레벨 도메인에 대한 책임이 있다.

- net TLD : Network solutions maintains servers

- edu TLD : 교육

 

Authoritative DNS server(1차, 2차)
- 인터넷에 접근하기 쉬운 host를 가진 기관은 호스트 명을 IP로 매핑하기 위한 DNS 레코드를 제공하는데

  책임 DNS 서버가 레코드를 가짐.

- 일부 서비스 제공자의 책임 DNS서버에 이 레코드를 저장하도록 비용을 지불 할 수도 있다.

 

Cache DNS server(Forwarder)

- 엄격한 계층 구조에 포함되어 있지 않다.

- IP 매핑을 위한 도메인 정보를 갖지 않는다.

- 호스트의 질의에 대답만을 제공한다.

- Local DNS 서버로 authoritative DNS보다 많이 쓰인다.

 

* Authoritative DNS server 구축

1. DNS 서버 설치 및 설치 확인

yum list bind : bind 서버 설치 여부 확인

yum install -y bind : bind 서버 설치

systemctl start named.service : Bind 서버 시작

 

2. 환경 설정(/etc/resolv.conf)

nameserver [Local DNS 서버 IP]
-> 질의할 local DNS 서버의 IP를 지정, 최대한 가까운 DNS서버를 지정한다.

search localdomain 

-> 호스트명만 입력할 경우 자동으로 추가할 도메인

resolve.conf의 nameserver를 192.168.10.187로 수정

 

3. /etc/named.conf 파일 설정(기존 내용은 삭제)

서비스가 시작될 때 가장 먼저 읽히는 마스터 파일. zone 파일에 대한 호출 정보를 가지고 있다.

options : zone 파일의 경로나 덤프 파일의 이름을 지정

zone : 질의를 구체적인 파일과 연결.

 

zone 영역의 설정

zone "서비스 대상 영역" IN { 
         type [ master | slave | hint ]; 
         file " zone 파일명"; 
         allow-update {[ none | 2차 DNS 서버 IP ] ; }; 
         masters { master DNS 서버 IP; };

};

 

4. Cache 파일 확인 
- named.ca 파일(bind를 깔면 자동으로 배포 됨)

cat /var/named/name.ca로 확인

 

5. Zone 파일 생성(/var/named/bst15.zone)

- 도메인 zone 파일

@ IN SOA : 이 문서를 시작하는 시작점. 

ns.bst15.dal. : 네임서버

root.ns.bst15.dal. : 이 서버의 도메인 관련된 계정. 적혀 있는 시간들은 Slave server 관련된 설정이다.

NS : 네임 서버 지정

A : 호스트 주소 지정

 

6. name 서버 시작

systemctl start named.service 또는 systemctl restart named.service

 

만약 정상적으로 작동 안 한다면 생성된 zone파일의 그룹 소유자를 반드시 named로 정의

 

7. Zone서버가 정상적으로 돌아가는지 확인해보기

 

[Window에서]

DNS 서버의 IP주소를 내가 설정한 Zone파일로 설정하고 되는지 도메인으로 인터넷이 정상적으로 작동하는지 확인

 

[리눅스에서]

host 도메인명으로 ip를 정상적으로 호출하는지 확인

 

 

* 용어 및 개념 정리

 

분산형 데이터베이스 : 수많은 네임 서버들이 계층형 구조로 구조화 되어있음.

 

클라우딩 시스템 : 예전에는 서버 팜이라고 했음

 

DNS서버는 외부에 공개하려고 만든 정보이기 때문에 기밀성의 문제가 발생하면 안된다.

 

 

'Security > 리눅스' 카테고리의 다른 글

Day 13-DNS 서버(3)  (0) 2019.12.05
DAY 12-DNS 서버(2)  (0) 2019.12.04
Day 10-FTP  (0) 2019.11.29
Day 9-CRON, RSYNC, 서비스와 데몬  (0) 2019.11.28
Day 8-리눅스 프로세스 및 RPM&YUM  (0) 2019.11.27