본문 바로가기
📋3-1/📌리눅스서버실습

[리눅스서버실습] - DNS 서버(네임 서버)

by 빛나고요 2021. 6. 13.
BIG

Study. DNS 서버

 

DNS 서버의 개념

📌 Domain Name System 서버, URL을 해당 컴퓨터의 IP주소로 변환시키는 역할

 

📌 '이름 해석'을 전문적으로 해주는 서버 컴퓨터를 네임 서버 또는 DNS 서버라고 함


/etc/hosts 파일 설정과 네임 서버 설정

📌 nslookup  PC가 사용하는 네임 서버의 IP 정보 확인

 

📌 /etc/resolv.conf 파일  네임서버의 정보 및 호스트 이름이 들어있는 파일로 사용하고자 하는 네임서버를 지정하는 파일

 

📌 /etc/hosts 파일 ➤ 도메인의 IP를 찾을 때 컴퓨터가 맨 처음 조사하는 파일(DNS 파일)

- hostname파일에서 호스트 이름을 바꾸면 hosts 파일에서도 호스트 이름을 변경하여 localhost로 연결되도록 해야 함

 

📌 IP 주소를 얻는 내부 흐름도

📌 /etc/hosts.conf 파일 ➤ 어떤 특정 도메인에 대해 IP주소 값을 찾을 때, 그 주소 값을 어디에서 찾을 것인지를 결정하는 파일


캐싱 전용 네임 서버 구축

📌 apt-get -y install bind9 bind9utils  네임 서버와 관련된 패키지 설치

 

📌 /etc/bind/named.conf.options 파일 ➤ named.conf의 환경설정을 할 수 있는 파일

1) recursion yes; ➤ 기본값은 yes이며 재귀 query를 활성화. 네임 서버를 계속 질의할 건지 yes, no 하는 항목

2) allow-query { any; }; ➤ 네임 서버는 하나의 네임 서버만 있는 것이 아니고 하나의 DNS 서버에는 여러 개의 네임 서버를 가져올 수 있는데 이때, 네임 서버가 여러 개 추가되는 것을 허용할 것인지

 

📌 systemctl restart/enable/status bind9

  1) systemctl restart bind9 ➤ 서비스 재시작

  2) systemctl enable bind9 ➤ 부팅 시 서비스 자동 시작

  3) systemctl status bind9 ➤ 서비스 상태 확인

 

📌 ufw allow 53  네임 서버 포트인 53번 허용

 

📌 dig @네임서버IP 조회할URL  네임 서버가 잘 작동하는지 테스트

  1) dig   Domain Information Groper의 약자, 네임 서버로부터 정보를 가져올 수 있는 툴로 네임 서버의 정보를 확인하는 명령어

 

📌 apt-get -y install elinks  elinks 패키지 설치

  1) elinks  유닉스 기반 운영체제를 위한 텍스트 기반 콘솔 웹 브라우저

 

📌 ipconfig  컴퓨터의 네트워크 환경(IP정보)을 확인할 수 있음

 

📌 netsh interface ip set dns 네트워크장치이름 dhcp 자동으로  DNS 서버를 사용하도록 설정


마스터 네임 서버

📌 마스터 네임 서버 john.com과 같은 도메인에 속해 있는 컴퓨터들의 이름을 관리하고, 외부에서 www.john.com이나 ftp.john.com 등의 컴퓨터 IP 주소를 알기 원할 때 해당 컴퓨터의 IP 주소를 알려주는 네임 서버

 

📌 마스터 네임 서버 구성도


FTP 서버

📌 FTP 서버

  1) FTP File Transfer Protocol의 약자, TCP/IP 네트워크 간의 파일 받기와 보내기 작업을 하는 서버

 


마스터 네임 서버 설치 및 운영

📌 ufw allow 80 웹 서버 포트인 80 허용

 

📌 ufw allow 21  FTP 서비스의 방화벽인 21 허용

 


[1] join.com 도메인 설정

📌 /etc/bind/named.conf 네임 서버 설정 파일(대소문자 구분O)

 

📌 named-checkconf  입력한 내용이 문법상 오류가 없는지 확인

 

📌 OOO.OOO.db 파일(zone 파일)

1) $TTL ➤ Time To Live의 약자, 패킷이 라이터에서 폐기되기 전에 네트워크 내에 존재하도록 설정한 시간으로 설정값은 초단위로 함(86400초 = 24시간 = 하루)

2) 3H ➤ 3시간

3) @ ➤ ORIGIN을 의미하는 특수문자로 public domain을 말함. named.conf 파일에 정의된 도메인 명을 의미(도메인 명으로 적어도 무방함)/ 여기서는 john.com을 의미하기 때문에 john.com으로 고쳐써도 무방함

4) SOA ➤ Start Of Authority(권한의 시작)의 약자, 도메인네임서버에 대한 모든 정보를 가지고 있음

5) 2 1D 1H 1W 1H

   2 ➤ (serial) zone파일의 버전 정보를 의미하며, zone파일을 수정하거나 생성한 날을 숫자로 설정

  1D ➤ (refresh) 상위네임서버에 갱신된 정보를 확인하기 위해 주기적으로 체크하는 시간을 초로 설정(D=Day)

  1H ➤ (retry) 상위네임서버에 문제가 생겼을 때 재접속 간격(H=Hour)

  1W ➤ (expire) 상위네임서버에 접속하지 못할 경우 이전의 정보를 파기하는 간격, 상위네임서버의 정(W=Week)

6) IN  ➤ IN  다음으로 나오는 설정을 사용하겠다는 클래스 이름이고 internet을 의미함

- 형식 ➤  [도메인] 탭 [IN] 탭 [A, NS, MX등] 공백or탭 [우선순위 숫자] 탭 [도메인 or IP]

- 첫번째 항목에 @나 아무것도 입력하지 않으면 네임서버 환경설정 파일에서 설정한 도메인으로 인지

7) NS 레코드 ➤ 해당 도메인 호스트의 네임서버 호스트를 지정하는 레코드

8) MX 레코드 ➤ Mail Exchanger의 약자, 해당 도메인에 대한 메일서버를 지정하는 레코드

9) A 레코드  해당 도메인의 실제 IP주소를 설정. 호스트 이름에 상응하는 IP 주소 지정

10) 그 외 레코드 유형

레코드 유형 역할
PTM IP 주소를 호스트 이름으로 매핑할 때 사용
PTR IP 주소에 대한 호스트명
CNAME  Canonical NAME의 약자. 호스트 이름의 alias(엘리어스: 별칭)를 부여할 때 사용
HINFO 호스트 정보를 표시하는 레코드
MINFO 메일박스와 메일 리스트 정보
UINFO 사용자 정보
TXT 호스트의 CPU정보와 운영체제 정보
ANY 호스트에 관련된 모든 레코드들의 정보

라운드 로빈 방식의 네임 서버

📌 라운드 로빈 방식  입력한 내용이 문법상 오류가 없는지 확인

 

📌 라운드 로빈 방식의 네임 서버

댓글