일단 테크블로그😊

[Network/개념] DNS의 개념과 작동과정 본문

Security/Network

[Network/개념] DNS의 개념과 작동과정

^__^/ 2023. 3. 19. 14:52

1. DNS(Domain Name System)란?

DNS의 개념을 이해하기 위해서는 우선 IP주소의 필요성을 알아야 한다. IP주소는 왜 알아야 할까??

 

정말 간단하다. 인터넷 사이트에 접속하기 위해서이다!!

 

그러나 우리는 여기서 의문을 가질 것이다. "나는 네이버라는 인터넷 사이트의 IP주소를 모르지만 네이버에 접속하는 데 문제가 없는데?"

 

이것이 바로 DNS의 핵심이다.

 

우리는 네이버에 접속하기 위해 네이버의 IP주소를 입력하지 않는다. 구글, 쿠팡, 아마존부터 모든 다양한 사이트들에 대해서도 마친가지이다. 즉, 우리는 해당 사이트에 접속할 때 사람이 읽을 수 있는 '도메인 네임'을 사용한다. "www.naver.com "의 형식이 바로 도메인 네임인 것이다.

 

그리고 DNS란, 이 '도메인 네임'을 'IP주소'로 바꿔주는 역할을 하는 것이다.

 

 

실제로 한번 접속해보자. 네이버의 IP주소는 다음과 같다. 

nslookup ("도메인 네임")

이를 실제로 인터넷 주소창에 입력하면, 정상적으로 원하는 사이트에 접속할 수 있는 것을 확인할 수 있다.

원래대로라면, 우리는 우리가 접속하고자 하는 모든 인터넷 주소를 IP를 외워야 한다. 그러나, 이는 현실적으로 무리다 (당장에 구글이나 네이버만 해도, 숫자덩어리로 접속하는 사람은 없을것이다. 그렇죠?)

 

그러나 우리 컴퓨터는 "www.naver.com"이란 주소를 모른다. 223.130.195.95 라는 주소만을 이해할 수 있다. 그렇기에 우리가 편하게 쓸 수 있는 Domain Name의 도입과 함께, 이 Domain name을 가져다가 IP주소로 바꿔주는 허드렛일을 해주는 착한 친구 DNS가 우리도 모르는 새에 이것을 일일이 바꿔주고 있던 것이다. 

 



2. DNS 변환 과정

출처 -한국인터넷정보센터 (https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/dns/dnsInfo.jsp)

그러면 DNS가 어떻게 www.naver.com을 223.130.195.95로 변환할까? 사실은 변환이라기 보다는 이 도메인 네임에 해당하는 IP주소를 1대1로 저장하고 있는 데이터베이스에서 해당 주소를 찾아오는 것이다.

 

세상에는 인터넷 사이트가 너무 많다. 그래서 한 서버에 다 저장해 둘 수 없다. 그런 것이 가능하기도 힘들 뿐더러, 보안상 취약해질 수 있고, 접속량 폭주로 트래픽이 엄청 밀릴 수도 있다. 그래서 Domain Name System이라는 이름 그대로, 일정한 "System" 에 의해 체계적으로 계층을 나눠 주소 정보를 데이터베이스에 분산하여 저장하고, DNS는 그 분산된 규칙에 따라 해당하는 주소를 재귀적으로(recursive) 탐색한 뒤 변환결과를 가져오게 된다.

 

과정을 간단히 살펴보자.

 


1.우선 호스트가 www.naver.com 을 입력한다.

2.DNS는 루트 DNS서버로 가서 이 주소를 입력받았는데 어디로 가야하는지 물어봄

3.루트는 .com으로 끝나는 도메인을 보고 가야 할 위치를 알려줌.

4.DNS는 그 위치로 가서 다시 어디로 가야하는지 물어봄

....


이런 과정으로 계속 DNS가 여러 단계를 거쳐 재귀적으로 발품을 팔아서 223.130.195.95 라는 결과물을 게 된다. (캐시나 ISP서버, COM서버 등 복잡한 과정과 정식 명칭은 뺐습니다. 더 공부하시고 싶으신 분들은 DNS 서버에 관해 검색해보세요!)

 

 

마지막으로 DNS의 질의응답 과정이 올바르게 일어나는지 확인할 수 있는 dig 명령어를 실습해보고 마무리하자.

Wireshark를 통하여 DNS가 네이버의 주소를 잘 찾아오는 것을 확인할 수 있다.

 

 

 

댓글과 피드백 환영합니다~!