본문 바로가기
Web

DNS(Domain Name System)

by Big Sun 2024. 1. 21.
728x90

 

DNS란??

 

DNS는 Domain Name System의 약자로, IP 주소와 도메인 주소를 연결해주는 시스템이다.

 

 

예를 들어, IP 주소가 44.342.03.244이고, 도메인 주소가 www.eatceed.com  이라고 하자.

 

해당 IP 주소와 도메인 주소가 관계가 있다는 것을 알려주는 시스템이 있어야한다.

사용자는 IP 주소가 무엇인지 일일이 외울 수 없다. 따라서, 도메인 주소를 검색하면 DNS에 해당 도메인 주소와 IP 주소가 매핑되어 있기 때문에 사용자가 IP 주소를 몰라도 도메인 주소를 통해 해당 IP에 접근할 수 있는 것이다.

 

 

예시를 그림으로 나타내면 아래와 같다.

 

 

먼저, 사용자가 www.exceed.com  으로 요청을 하면, DNS에서 도메인 주소와 매칭되는 IP 주소를 반환한다.

웹은 해당 IP를 가진 서버에게 요청을 하여 응답을 받을 수 있다.

 

 

리눅스의 /etc/hosts 파일

 

리눅스에 DNS와 같은 역할을 하는 파일


 

 

 

DNS가 도메인 이름의 IP 주소를 알아내는 과정

 

www.eatceed.com  이라는 도메인이 있다고 가정하자

 

해당 도메인은 여러개의 네임 서버들을 가지고 있다.

어떻게 도메인이 하나인데 여러개의 네임 서버들이 있을까??

하나의 도메인은 Root 도메인, Top - level 도메인, Second-level 도메인 그리고 서브 도메인으로 구성된다.

즉, 하나의 도메인에 부분별로 이를 담당하는 네임 서버들이 존재한다는 것이다.

각 네임 서버들은 자신이 담당하는 도메인의 하위 도메인을 담당하는 네임 서버의 도메인 이름을 알고 있다.

따라서, Root 네임 서버는 TLD 네임 서버들의 위치 정보를 알고 있고 TLD 네임 서버들은 SLD 네임 서버들의 위치 정보를 알고 있다.

 

그리고 최 하위 도메인을 담당하는 네임 서버들은 자신이 담당하는 도메인 이름에 맵핑된 IP 주소를 알고 있다.


예를 들어, 도메인 이름 www.eatceed.com에 해당하는 IP 주소를 알아내는 과정은 아래와 같다.

  1. 파일 시스템에 존재하는 hosts 파일의 내용 확인
  2. 로컬 네임 서버가 Root 네임 서버에게 질의 : com 담당 네임 서버의 위치 정보를 대신 알려준다.
  3. 로컬 네임 서버가 com 담당 네임 서버에게 질의 : eatceed.com 담당 네임 서버의 위치 정보를 대신 알려준다.
  4. 로컬 네임 서버가 eatceed.com 담당 네임 서버에게 질의 : www.eatceed.com 담당 네임 서버의 위치 정보를 대신 알려준다.
  5. 로컬 네임 서버가 www.eatceed.com 담당 네임 서버에게 질의 : 요청된 도메인에 맵핑된 위치 정보를 알려준다.
  6. 로컬 네임 서버가 응답받은 IP 주소를 가지고 브라우저가 해당 IP 주소에 접속을 시도한다.



지금까지 DNS에 대해서 알아보았습니다.

728x90

'Web' 카테고리의 다른 글

토큰을 사용한 인증과 인가  (0) 2023.07.10
토큰을 사용하는 이유  (0) 2023.07.03
Postman에서 토큰 자동 설정하는 방법  (1) 2023.05.14
JWT에 대하여  (0) 2023.03.31
HTTP 란 무엇일까?  (0) 2022.11.14