컴퓨터 지식/네트워크&프로토콜

[네트워크📶] DNS Zone File / NS LOOKUP 사용법 🎶

서상혁 2020. 6. 13. 22:51

DNS란?

https://programming119.tistory.com/157

 

[네트워크📶] DNS란 / DNS Name Space / DNS Tree / TLD

DNS란 DNS(Domain Name System) 는 적용계층의 프로토콜 중 하나로 도메인 이름과 IP주소를 변환시킬 때 쓰는 프로토콜입니다. naver.com 이나 tistory.com 같은 사이트 URL도 우리같은 사용자가 눈에 보기 쉽게

programming119.tistory.com


 

DNS Zone File

 

특정 네임 스페이스의 한 부분에에 해당하는 여러 정보들을 담고 있는 파일입니다.

 

- DNS : set of "Zone file"

- Zone file : set of records 

 

 

각각의 domain name 들은 zone file을 관리하는 서버를 가지고 있습니다.

naver.com 에 해당하는 zone file을 담은 Authoritative server가 있습니다.

 

원래, 이 zone file은 해당 서버만 단독으로 가지고 있었습니다.

하지만 이렇게 되면, 서버에 문제가 생겼을 때, zone file을 아에 잃게 될 수도 있습니다.

 

따라서, 요즘 대부분의 domain들은 여러 server를 운영합니다. 

Primary Server 와 Secondary Server로 나눠, 주기적으로 Secondary Server에게 zone file 복사본을 전송합니다.

nslookup을 통해 확인이 가능합니다.

 

secondary 서버에게 zone file 을 백업하는 것을 "zone transfer" 라고 부릅니다.

primary 서버에 문제가 생기면, secondary server를 통해 쿼리가 이루어집니다. 

 

zone file 이 매우 커져서, 하나의 하위 노드를 하나 더 만들어 관리하게 될 때, Zone delegation 이 이루어집니다.

korea.ac.kr (고려대) 에 해당하는 zone file이 있었는데, 이 곳에 관련된 학과 정보들이 너무 많다면,

따로 분리해서 관리하는게 편하겠죠? 이때, 상위 도메인은 따로 포인터 정보만 가지고 있고

분리된 하위 도메인들이 해당 zone file을 가지게 됩니다.

예) korea.ac.kr : xxx.korea.ac.kr 에 해당하는 포인터를 가지게 됨

cs.korea.ac.kr : 컴퓨터학과 zone file 

libart.korea.ac.kr : 문과대학 zone file

 

Resource Record

 

nslookup 에 사용되는 queryType들입니다.

전체 Type 은 이곳에서 확인할 수 있습니다.

https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml

 

Domain Name System (DNS) Parameters

4 0x0004 Hesiod (HS) [Dyer, S., and F. Hsu, "Hesiod", Project Athena Technical Plan - Name Service, April 1987.]

www.iana.org

A (1) : ipv4 주소를 확인합니다.

AAAA (28) : ipv6 주소를 확인합니다.

NS (2) : Domain name server들

MX (15) : 메일 Exchange 서버

CNAME (5) : Canonical name (진짜 이름)

PTR (12) : IP 주소에 해당하는 도메인 이름.

SOA (6) : Start of Authority

 

 

 

NSLOOKUP 사용 

 

nslookup 은 name server lookup 의 약자로,

윈도우 명령프롬프트로 name server 에 대한 정보를 확인할 수 있습니다.

 

 


A

 

naver.com 의 IP 주소들이 나옵니다.

* Non-Authorative-Answer

 - 여기서 권한 없는 응답은, 살짝 의역이 잘못 된 것이고 , 사실은 cache 복사본이라는 뜻입니다.

 


AAAA

 

google.com 의 IPv6 주소들이 나옵니다.

 


NS

 

모든 name server 에 대한 도메인을 보여줍니다.


MX

 

naver.com 의 메일서버들이 나옵니다.

naver.com에 메일을 보낼 때, 사실은 mx2.naver.com 에 해당하는 서버에 보내는 것입니다.

preference 는 우선도를 뜻합니다. 낮을수록 더 우선시 사용되는 서버입니다.

 

네이버 메일 서버의 IP

mx2.naver.com 서버는 naver.com 과는 다른 IP 주소를 가지고 있습니다.


CNAME

 

 

Canonical name 이란, 우리가 보는 이름이 아닌 실제 이름을 뜻합니다.

www.naver.com  은 우리가 편하게 부를 때 사용하는 별명같은 것이지, 실제 real name 은 아닙니다.

매번 www.naver.com.nheos.com  으로 사용하거나 부르면 불편하니, www.naver.com  이라는 쉬운 이름을 쓰는 것입니다. 주소창에 www.naver.com.nheos.com 를 입력해도 정상적으로  네이버에 연결됩니다.

(CNAME이 따로 없는 도메인들도 있습니다.)

 


 

PTR

 

 

 

DN -> IPv4 가 이루어지는거에 반대로

IPv4 -> DN 작업이 이루어집니다.

하지만 DN -> IPv4 자료는 DN 이 key인 상태로 그대로 반대방향을 이용해서 쓰는 것은 매우매우 비용이 큽니다.

따라서, PTR Resouce records 가 따로 존재합니다. 따로 PTR Zone file을 가지고 있어야 한다는 뜻입니다.

쉽게 말하자면, DNS tree 가 거꾸로 되어 있는 형식입니다.

arpa - in.addr - 125 - 209 - 238 - 137 을 통해서 트리를 순회하고, 해당 Zone file에서 DN 정보를 가져옵니다.

그래서 밑에 보시면,  125.209.238.137 을 거꾸로해서 

권한 없는 응답 137.238.209.125.in-addr.arpa 가 되어있죠.

 

* 참고로, MX domain name 은 PTR과 A 모두를 반드시 가지고 있어야 합니다.

 


 

SOA

 

Zone file의 변수들 정보를 볼 수 있습니다.

serial number ,TTL, expire 에 대해서도 나오고,

zonefile 관리하는 사람의 이메일 도 나옵니다.

 

refresh, retry

 

refresh 는 하위 server를 업데이트 해줄 간격을 뜻합니다.

이 경우에는, 변화가 없더라고 하더라도 6시간마다 Secondary Sever 가 Primary Server 에 대해 확인합니다.

Checking operation이 실패하게 되면, retry가 실행됩니다. refresh가 실패 했을 경우, 30분마다 재실행한다는 뜻입니다.

 

expire

Zone file 의 Cached Copy 가 14일동안 유지된다는 뜻입니다. 그 이후에는 만료됩니다. 

 

default TTL

copy 가 3분동안 제공된다, 혹은 유효하다는 뜻입니다. (Time to Live)

* IP 헤더의 TTL 과는 전혀 다릅니다!

 


SRV

 

 

도메인에 따라 NS와 MX 외에도 다른 서버들이 존재할 수 있습니다.

그럴 때, 이를 확인하는 방법을 카테고리화 되어 있습니다.

_서비스이름._프로토콜명.canonicalname 

형식으로 nslookup 을 이용하게되면 확인이 가능합니다.

 

 

TXT

 

 

도메인에 관련된 여러 정보들을 담고 있습니다.

spam filtering을 위한 정보들이 가장 많이 이용됩니다.

 

 


 

 DNS 패킷 구조

 

https://programming119.tistory.com/159

 

[네트워크📶] DNS Message Format

DNS Message Format DNS 는 적용 계층입니다. 전송 계층으로는 UDP를 사용합니다. (port 번호 : 53) Header 와 Question 은 필수 요소입니다. request 뿐만 아니라 response 에도 question 이 나옵니다. Authorit..

programming119.tistory.com

 

 

* 출처 : 고려대학교 김효곤 교수님 "인터넷 프로토콜" 강의

728x90