Tech story/Cloud

KT Cloud Dev Tools - DNS 기술 소개

KT Cloud Crew 2021. 2. 15. 16:37

DNS(Domain Name System)이란 무엇일까요?

 

지금 여러분이 보고 계신 KT Cloud 테크 블로그 맨 위에, 무엇이 보이시나요?

tech.ktcloud.com 이라는 도메인 주소가 보이시죠?

 

우리는 특정 사이트에 들어가기 위해 URL을 입력하지만, 실제로는 해당 사이트의 IP 주소를 알아야만 접속할 수 있습니다. 예를 들어 KT Cloud 홈페이지에 접속하고 싶다면, 우리가 흔히 알고 있는 cloud.kt.com이 아닌, 실제 IP 주소인 14.x.x.x를 통해야 접속이 가능하다는 뜻입니다.

 

그러나 14.x.x.x라는 IP 주소를 외우고 있는 사람이 몇 명이나 될까요?

 

DNS는 이렇게 외우기 힘든 IP 주소와 사용하기 편리한 도메인 주소를 매핑해줘서, 사용자가 도메인 주소를 입력했을 때 이에 대응하는 IP 주소로 반환해주는 역할을 합니다.

우리가 매일 들어가는 인터넷상의 웹사이트들은 모두 DNS 서비스를 통해서 접근할 수 있었던 것입니다.

 

 

DNS 작동 원리

 

그럼 지금부터 DNS 구조에 대해 살펴볼까요?

 

DNS에 저장되는 (도메인 네임, IP 주소) 쌍을 레코드(record)라고 하며, 레코드가 저장되어 특정 도메인 네임에 대한 요청이 들어왔을 때 IP 주소를 반환해주는 서버를 네임서버(name server)라고 합니다.

 

DNS 라우팅 원리

위 그림에서는 DNS를 통해 KT Cloud 웹 페이지에 접속하는 과정을 보여줍니다.

 


(1) 사용자가 cloud.kt.com에 접속하고자 DNS Resolver에 요청합니다.

(2) DNS Resolver는 Root DNS name server에게 cloud.kt.com의 IP 주소를 요청합니다.

(3) Root Server에는 해당 정보가 없기 때문에 .com 상위 도메인을 사용하는 도메인을 관리하는 .com TLD name server의 IP 주소를 알려줍니다.

(4) DNS Resolver가 Root Server로부터 받은 .com TLD server에게 또다시 cloud.kt.com의 IP 주소를 요청합니다.

(5) .com TLD server는 cloud.kt.com의 정보를 가지고 있는 네임 서버의 주소를 알기 때문에, 해당 네임 서버의 IP 주소(x1.x1.x1.x1)를 알려줍니다.

(6) DNS Resolver는 TLD server로부터 받은 네임 서버에게 cloud.kt.com의 IP 주소를 요청합니다.

(7) x1.x1.x1.x1에는 cloud.kt.com의 IP 주소가 저장되어 있기 때문에 해당 IP 주소(x2.x2.x2.x2)를 반환합니다.

(8) 사용자는 cloud.kt.com의 IP 주소를 (드디어) 전달받습니다.

(9) 해당 IP 주소로 접속합니다.

(10) 서버가 웹 페이지를 사용자에게 보여줍니다.


 

DNS resolver는 계층적으로 root server, TLD server, name server 순서로 질의를 하게 됩니다.

이러한 질의 방식을 iterative query 방식이라고 합니다.

 

DNS에서 한 번 요청된 정보는 DNS resolver에 캐시(cache)로 저장됩니다.

따라서 다음번에 같은 주소로 접속하게 되면, resolver에 남아 있는 레코드 정보를 가져다가 빠르게 IP 주소를 반환하게 됩니다. 다만 캐시에 저장되는 정보는 TTL(Time To Leave) 정보를 가지고 있어서, 특정 시간 이상이 지나면 캐시에서 삭제하게 되어, 다시 root로 질의하게 됩니다.

 

 

 

마무리

DNS와 관련된 또 다른 콘텐츠로 조만간 다시 찾아오겠습니다!

읽어주셔서 감사합니다.