본문 바로가기

CS

[CS] DNS란 무엇인가? (도메인으로 IP를 찾는 원리?)

누군가에게 전화를 걸때 전화번호를 다 외울수가 없으니 이름으로 검색하여 찾는다.

이때 전화번호는 IP, 저장된 이름은 도메인의 개념이라고 볼 수 있다.

여기서 전화번호(IP)와 이름(도메인)을 함께 저장하는 전화번호부가 바로 DNS이다.

 

 

📝DNS란?

Domain Name System의 약자로 도메인에 관련된 시스템이다. DNS는 네임서버, 도메인 네임서버 라고 불리기도 한다.

도메인이란 www.naver.com  의 주소 중 naver.com 부분을 가르킨다.

여기서 www는 호스트 네임(host name) 이라고 불린다.

 

📝도메인을 사용하는 이유?

마치 누구에게 연락을 하기위해 전화번호가 필요하듯 웹사이트에 접속하기 위해서는 내 컴퓨터의 브라우저가
내가 접속하고자 하는 서버에 요청을 해 데이터를 받아와야 하는데 이때 해당 서버의 IP를 알아야한다.

하지만 사이트마다 IP주소를 모두 외울수가 없기 때문에 외우기 쉬운 주소로 접속을 하는것이다.

 

서두에 언급했듯, IP와 도메인 주소를 함께 저장하는곳이 Domain Name System 즉 DNS이다. DNS는 네트워크에 분산저장된다!

 

 

 

💻 예시를 통한 설명

예를들어 내 브라우저가 네이버에 접근하려 한다. 하지만 아직 IP주소를 모르기때문에
브라우저는 우선 PC에 설정된 로컬 DNS 서버에 해당 도메인과 호스트명의 IP를 가지고 있는지 요청한다.
DNS에는 해당 IP주소가 캐싱돼있을 수도 있고 없을수도 있다.
있다면 바로 반환을 할것이고 없다면 로컬DNS는 Root DNS 서버에 이 주소의 IP를 어디서 찾을 수 있는지
요청한다. (Root DNS 서버는 전세계에 13군데가 있다고 한다! 이중 한국에는 없지만 미러서버가 대체한다고 한다.)

루트 DNS 서버는 .com으로 끝나는 도메인을 담당하는 서버의 IP 주소를 반환한다.
로컬 DNS 서버는 해당 주소에 해당하는 DNS서버에 찾아가면 다양한 호스트 네임별로 구성된 IP 주소가 있다.
그중 www 호스트 네임으로 된 사이트의 Ip주소를 얻어낸다음 브라우저에 반환한다음
비로소 해당 IP로 접속하게 된다.

분산저장된 DNS 구조

 

 

📌 추가 정보 1.

사용자가 DNS에 IP주소를 요청한 중간과정을 해커가 가로챈다음
가짜 사이트를 제공하는식으로 공격이 되기도 한다.
이를 DNS 스푸핑 이라고 한다.

 

📌 추가 정보 2.

후이즈나 가비아같은 국내 서비스에서 내가 사이트의 도메인을 구매할 수 있다.
도메인을 가지고 나면 네임서버에 IP를 호스트 네임별로 등록하여 사용하면 된다.

 

 

 

 

 

 

 


참고링크 : https://www.youtube.com/watch?v=6fc9NAQkcv0