[네트워크📶] DNS Zone File / NS LOOKUP 사용법 🎶
DNS란?
https://programming119.tistory.com/157
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
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 는 우선도를 뜻합니다. 낮을수록 더 우선시 사용되는 서버입니다.
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
* 출처 : 고려대학교 김효곤 교수님 "인터넷 프로토콜" 강의