0. 이론

DNS란?(DNS 구성)

Beginner:) 2024. 1. 27.
320x100

DNS 구성에 대해 설명을 할 것인데, 공식문서가 아닌 내가 알고 있는 지식(+ 들은 얘기, 블로그 참조)을 적은 내용으로 틀린 정보가 있을 수도 있다. (피드백 주시면 감사감사...)


1. DNS란?

DNS(Domain Name System)란 외우기 쉬운 text형태의 Host Domain Name을 외우기 힘든 숫자형태의 IP주소를 text로 변환해 주는 시스템이다.

 

좀 더 자세히 설명하자면 네이버를 접속하기 위해 주소창에 "223.130.195.200"을 입력해야한다. (글 쓴 기준 IP)

 

이 숫자는 의미가 없기 때문에 외우기가 힘드며 다음, 유튜브, 티스토리 등 외워야 할 사이트가 많으면 헷갈리기 일쑤이다.

 

외우기 쉽게 알파벳, "www.naver.com"이라는 텍스트로 입력하면 "223.130.195.200"으로 변환을 해주는 것이 DNS이다.

 

+) 참고로 사이트의 IP주소를 알고 싶다면 커맨드창에 nslookup [호스트 네임(www.naver.com)]을 입력하면 된다.

 

2. DNS 구성

"그럼 이 서비스를 누가 해주는가?"를 알기 위해 DNS 구성을 먼저 알아야 한다.

 

예를 들어 "https://park-duck.tistory.com/home?page=1/#index"라는 주소가 있다고 하자. 

 

우리는 왼쪽에서 오른쪽으로 읽으려는 습관?이 있기 때문에 www안에 park-duck안에 tistory안에 com을 찾는다고 생각하겠지만

 

사실 DNS가 IP주소를 찾는 방법은 .(루트 도메인) -> com(TLD) -> tistory(SLD) -> park-duck(서브도메인) 순으로, 즉 역순으로 찾아간다.

https://park-duck.tistory.com/home?page=1/#index

 

* 다시 설명하자면, 내가 "www.naver.com"이라고 입력하였을 때 순서는 아래와 같다.

2.1. Local DNS

내가 IP 구성시 설정한 IP, 예로 들어 google:8.8.8.8, KT: 203.248.252.2에 "www.naver.com"의 IP주소가 없다면 Root DNS에 물어본다.

 

2.2. Root DNS

Root DNS는 보통 "www.naver.com"의 IP 주소같이 상세한 정보를 가지고 있지 않다. 즉 TLD에 대한 정보만 제공한다. 생략 가능하다.

 

2.3. TLD(Top Level Domain)

TLD 또한 "www.naver.com"의 IP 주소같이 상세한 정보를 가지고 있지 않다. 즉 SLD에 대한 정보만 제공한다.

 

2.4. SLD(Second Level Domain)

SLD에서는 DNS 정보를 가지고 있다. 즉 IP주소와 MX레코드(메일 서버)에 대한 정보를 가지고 있다.

 

2.5. Sub Domain

Sub Domain은 cafe.naver.com, blog.naver.com과 같이 조직(naver) 또는 개인이 직접 관리하는 정보(cafe, blog)이다. 

 

 

 

 

3. DNS 관리 기관

왜 Root DNS가 IP주소를 가지지 않고 TLD, SLD를 거쳐서 정보를 알아내야 할까?

당연히 전 세계의 트래픽을 감당할 서버는 없는 것이 가장 크고, 독립적으로 관리하여 유지보수가 용이하게 하는 것이 목적이다.

 

3.1. Root DNS

당연히 Root DNS는 하나가 아니다.(천여 개 정도 된다고 한다) 여러 기관에서 운영되는데, 모든 Root DNS 서버의 주소정보는 ICANN(Internet Corporation for Assigned Names and Numbers)에서 관리한다. 

3.2. TLD

최상위 도메인은 관리 TLD 성격에 따라 다른데

gTLDs(Generic Top-Level Doains)에 속하는.com TLD는 ICANN에서,

ccTLDs(Country Code Top-Level Domains)는 국가 도메인으로 .kr TLD는 한국 인터넷 진흥원에서,

sTLDs(Sponsored Top-Level Domains)에 속하는 .edu는 미국 학문기관 등등

성격에 따라 다양한 기관에서 따로 관리한다.

3.3. SLD

.kr을 예로 들면, 한국 인터넷 진흥원에서 모든 한국 사이트를 감당하긴 힘들 것이다.

루트 도메인이 TLD의 정보를 관리하듯이 한국 인터넷 진흥원에서도 SLD를 관리한다.

SLD를 관리하는 업체가 IT업계라면 한 번쯤 들어봤을 카페24, 가비아, 후이즈 등이 있다.

 

 

4. 관련하여

4.1. 매번 이 과정을 반복하나?

그럼 주소창에 "www.google.com"을 입력하면 매번 Root TLD, TLD, SLD까지 가서 정보를 가져오는 것은 아니다.

내 컴퓨터에 "www.google.com"의 정보가 없다면 이 과정을 거치고 보통은 컴퓨터 cache에 저장이 되어 DNS 없이 내 컴퓨터와 google 서버와 1대 1로 통신한다.

사이트를 처음 접속할 때는 느린데, 이후 접속이 빨라지는 이유가 DNS정보를 cache가 가지고 있는 이유도 있지만, 보통은 Image 등의 캐시일 확률이 높긴 하다.

 

4.2. VPN

VPN(Virtual Private Network)으로 IP를 우회한다는 말을 들어보았을 건데, 조금 다른 시각으로 보자.

다크웹이 예를 들기 좋긴 한데,,, 좀 그러니 비밀 웹사이트로 예를 들어보자면

"내 비밀 사이트를 한 친구한테 DNS 형태로 알려주고 싶다"하면 VPN프로그램에 사설 DNS를 만드는 것이다.

VPN 프로그램을 통하여 사이트 IP를 확보하고 암호화, 인증을 거치면 SLD 업체를 거치지 않아도 되기 때문에 세상에 open 되지 않는 것이다.

불법 프로그램 웹사이트 차단이 한국 인터넷 진흥원에서 검열을 하는 것인데, 사설 DNS 서버를 통하여 우회도 가능하다.

 

4.3. HTTPS

https가 생기는 이유가 DNS와 관련이 있다. DNS 응답 중 IP를 조작하거나 SLD가 가지고 있는 IP주소 자체를 바꿔버리는 해킹 공격(DNS Spoofing)이 있었는데, 이를 방지하고자 SSL/TLS 인증서(공개키)를 통해 IP주소가 정상 주소인지 확인하는 https 프로토콜이 생긴 것이다. 이 SSL/TLS 인증서 서비스 또한 서버가 필요하다 보니 인증서도 DNS와 같이 돈을 주고 사야 한다... 마찬가지로 cafe24, 가비아 등에서도 서비스를 제공하고 있다.

 

4.4. www

십여 년 전쯤부터 www 없이 naver.com만 입력하여도 접속이 가능한데, 서브 도메인을 입력하지 않으면 default가 www가 되는 법안이 통과되었기 때문이다. (공식 문서를 보진 않음)

4.5. DNS 등록 시간

DNS를 등록해보면 최대 24시간이 지나야할 수도 있다고 되어있는데, 이유는 다음과 같다.

예를 들어 cafe24라는 SLD에서 나의 host name www.park-duck.co.kr을 등록하였다고고 하자.

그럼 SLD(cafe24)가 TLD에게 나의 정보를 등록해달라고 요구를 하게 되는 이유가 있고, 필요한 경우 TLD 서버끼리 분산 저장하는 경우, Root DNS에도 저장될 수도 있기 이유로, 

즉 모든 DNS에 동기화해야하기 때문에 시간이 걸릴 수도 있는 것이다.

 

반응형

댓글