리눅스

LINUX (Domain/ DNS 란?/ indexes 란?/ nslookup)

아리빠 2023. 5. 2. 12:40

●도메인(Domain)과 호스트네임(Hostname)의 차이점

 

-  도메인은 인터넷 상에서 컴퓨터를 식별하기 위한 문자열 주소

"naver.com"과 같은 고유한 형식을 갖는다.

 

- 호스트네임은 네트워크 상에서 컴퓨터를 식별하기 위한 문자열 주소

www.naver.com  에서 "www"에 해당

 

 

 

● 도메인 주소 마지막엔 항상 . 이 생략되어 있다

 

- 이는 인터넷에서 사용하는 표준 DNS (Domain Name System)의 규칙 중 하나다

마지막 . 을 생략하면 운영체제나 DNS 클라이언트가 자동으로 마지막에 . 을 추가하여 처리해준다

 

 

 

● DNS 란? 

 

- 인터넷 상에서 도메인 이름과 IP주소 간의 변환을 담당하는 시스템 

전 세계적으로 분산되어 있는 컴퓨터 네트워크 시스템으로 구성, 이 시스템은 인터넷에서 웹 사이트, 이메일 등 다양한 서비스 사용을 돕는다.

DNS 시스템은 도메인 이름을 IP주소로 변환하거나, IP주소를 도메인 이름으로 변환하는 작업을 수행하여, 인터넷에서 도메인 이름을 사용하여 해당 서버에 직접 접속 하도록 해준다.

사용자가 웹 브라우저에 www.tyhan02.tistory.com  을 입력 -> DNS 시스템이 해당 도메인 이름에 대한 IP  주소를 찾아 사용자 컴퓨터에 전달, 사용자의 웹 브라우저는 해당 IP주소에 대해 웹 페이지를 요청하고, 서버는 이를 응답해 사용자의 웹 브라우저에 페이지를 표시한다.

 

 

 

● indexes 란?

 

- 파일이나 디렉토리 목록을 자동으로 생성하는 웹 서버 기능

웹 서버는 일반적으로 인덱스 파일(ex> index.html)을 찾아 파일 이름을 표시하거나 폴더에 포함된 파일을 자동으로 연결

인덱스 파일이 없으면 서버는 파일 목록을 생성해 디렉토리 내의 모든 파일을 나열한다. 

인덱스 기능은 웹 서버에서 파일을 찾는데 도움을 주며, 디렉토리 내 파일에 대한 정보를 제공

 

 

 

● nslookup

입력하는 주소에 대한 ip정보를 가져옴

 

 

-다음 코드는 DNS 서버에서 사용할 Zone 파일과 Reverse Zone 파일을 생성하는 과정이다

root@hty1:/etc/bind# cp db.local  it.zone
root@hty1:/etc/bind# vi it.zone

  1 $TTL    604800
  2 @   IN  SOA ns.it.kr.   master.it.kr. (
  3                   2     ; Serial
  4              604800     ; Refresh
  5               86400     ; Retry
  6             2419200     ; Expire
  7              604800 )   ; Negative Cache TTL
  8 @   IN  NS  ns.it.kr.
  9     IN  A   100.50.20.10
 10 ns  IN  A   100.50.20.10
 11 www IN  A   100.50.20.20
 12 ftp IN  A   100.50.20.30
 13 mail    IN  A   100.50.20.40
 14 sun     IN  CNAME   www​

$TTL 604800

: TTL은 Time to Live의 약자로, DNS 레코드가 캐시에 저장될 수 있는 시간을 정의, 604800초 (7일)로 설정


@ IN SOA ns.it.kr. master.it.kr. (

: Primary master 서버의 정보를 나타냅니다. 이 서버는 ns.it.kr이라는 도메인의 Primary 서버이며, master.it.kr이라는 이메일 주소를 갖는다.


2 ; Serial

: Serial은 Zone 파일이 변경될 때마다 증가하는 숫자로, 이를 통해 Secondary 서버들이 Primary 서버의 변경사항을 감지할 수 있다


604800 ; Refresh

: Primary 서버에서 Secondary 서버로 Zone 정보를 전달할 때 사용하는 주기를 정의,  604800초 (7일)로 설정


86400 ; Retry

: Secondary 서버가 Primary 서버로부터 Zone 정보를 가져오지 못한 경우, 재시도할 주기를 정의, 6400초 (1일)로 설정


2419200 ; Expire

: Secondary 서버에서 Zone 정보가 만료되는 시간을 정의,  2419200초 (28일)로 설정


604800 ) ; Negative Cache TTL

: DNS 질의에 대한 응답이 없을 경우 캐시에 저장될 시간을 정의, 604800초 (7일)로 설정


@ IN NS ns.it.kr.

: Primary 서버의 이름 서버 (NS) 레코드를 정의, @는 현재 도메인을 의미하며, @ IN NS ns.it.kr.은 it.kr 도메인의 이름 서버가 ns.it.kr임을 나타낸다

IN A 100.50.20.10

: it.kr 도메인의 IP 주소를 정의

ns IN A 100.50.20.10

: ns 호스트의 IP 주소를 정의

www IN A 100.50.20.20

: www 호스트의 IP 주소를 정의

ftp IN A 100.50.20.30

: ftp 호스트의 IP 주소를 정의

mail IN A 100.50.20.40

: mail 호스트의 IP 주소를 정의

 

 

 

- 다음은 BIND DNS 서버에서 Reverse DNS Zone 파일인 it.rev를 생성하는 과정이다

 

cp it.zone it.rev
root@hty1:/etc/bind# vi it.rev

 1 $TTL    604800
  2 @   IN  SOA ns.it.kr.   master.it.kr. (
  3                   2     ; Serial
  4              604800     ; Refresh
  5               86400     ; Retry
  6             2419200     ; Expire
  7              604800 )   ; Negative Cache TTL
  8 @   IN  NS  ns.it.kr.                                                  
  9     IN  A   100.50.20.10
 10     IN  PTR it.kr.
 11 10  IN  PTR ns.it.kr.
 12 20  IN  PTR www.it.kr.
 13 20  IN  PTR sun.it.kr.
 14 30  IN  PTR ftp.it.kr.
 15 40  IN  PTR mail.it.kr.


10 IN PTR ns.it.kr.

: IP 주소 100.50.20.10에 대한 Reverse DNS Lookup 결과가 ns.it.kr.임을 지정


20 IN PTR www.it.kr. 

: IP 주소 100.50.20.20에 대한 Reverse DNS Lookup 결과가 www.it.kr.임을 지정


20 IN PTR sun.it.kr.

: IP 주소 100.50.20.20에 대한 Reverse DNS Lookup 결과가 sun.it.kr.임을 지정


30 IN PTR ftp.it.kr.

: IP 주소 100.50.20.30에 대한 Reverse DNS Lookup 결과가 ftp.it.kr.임을 지정


40 IN PTR mail.it.kr.

: IP 주소 100.50.20.40에 대한 Reverse DNS Lookup 결과가 mail.it.kr.임을 지정

 

 

 

 

-DNS 서버 설정을 해주는 코드 작성

/etc/bind# vi named.conf.options
 
21     dnssec-validation no;   // auto ==> no
 22     recursion yes;
 23     allow-query { any; };
 24     listen-on-v6 { any; };
 
 cd  /etc/bind
vi  named.conf.default-zones

 30 zone "it.kr" {
 31     type master;
 32     file "/etc/bind/it.zone";
 33 };
 34
 35 zone "20.50.100.in-addr.arpa" {
 36     type master;
 37     file "/etc/bind/it.rev";
 38 };

named.conf.options 파일에서는 DNSSEC 검증을 하지 않도록 설정하고, recursion을 허용하며, any 즉 모든 IP로부터의 쿼리를 허용하며 IPv6 주소에 대해서도 listen을 허용하는 설정을 해준다

named.conf.default-zones 파일에서는 it.kr 도메인에 대한 설정과 20.50.100.in-addr.arpa에 대한 설정을 하고, it.kr 도메인에 대해서는 master 타입의 설정을 하고 있으며, it.zone 파일을 참조하도록 설정한다.

20.50.100.in-addr.arpa에 대해서는 master 타입의 설정을 하고 있으며, it.rev 파일을 참조하도록 설정하여 100.50.20.0/24 대역의 역방향 룩업을 설정해준다 

위와 같은 결과가 나오게 된다