DNS(Domain Name System)

Ouroboros·2023년 11월 29일
0

네트워크

목록 보기
17/20

DNS

모든 사용자가 IP 주소로만 접속해야한다면, 일반사람들은 접근하기 어려울 것이다. 많은 사람들이 쉽게 접속하기 위해서 도메인을 만들었다.
만약 'www.singasong.co.kr'이라는 도메인이 있다면, DNS(Domain Name System)은 이러한 사람이 쓰는 주소를 컴퓨터가 쓰는 IP 주소로 변환한다. DNS를 통해 클라이언트는 도메인을 이용해서 서버에 접근할 수 있다. 이름과 숫자를 관리하는 전화번호부 같은 기능이라고 할 수 있다.

DNS 구조



도메인은 전세계적으로 고유한 이름을 말한다. 도메인은 생성 규칙과 체계를 따른다.
도메인은 DOT(.)으로 연결한 계층 구조 이고, 나무를 거꾸로 한듯한 역트리 구조를 가지고 있다. 예를 들어 'www.singasong.co.kr'라는 도메인이 있다면, '.kr'이라는 최상위 도메인부터 처리하며, 각 단계의 서버들을 통해 순차적으로 확인한다.
도메인은 네임서버(DNS 서버)에서 저장, 관리된다. 각각의 네임서버는 도메인 계층의 일부 영역을 담당한다. 상위계층의 네임서버는 하위 계층의 도메인도 관리하고 하위계층 네임 서버의 IP를 가지고 있다.
이러한 수평/수직적인 구조 덕분에 체계적인 주소 관리가 가능하다.

1단계 도메인 또는 최상위도메인TLD, Top Level Doamin:

루트 바로 아래 단계의 도메인! 1단계 도메인은 다시 ccTLD, gTLD로 나뉜다.
1-1) 'kr'과 같이 국가를 나타내는 국가 코드 도메인
ccTLD (country code Top Level Domain)
1-2) 'com'같이 등록인의 목적에 따라 사용되는 일반 도메인
gTLD (generic Top Level Domain)

2단계 도메인 (1단계 도메인의 하위 도메인):

조직의 속성을 구분하는 'co'(영리 기업), 'go'(정부 기관), 'ac'(대학)과 같은 도메인이 있다.

3단계 도메인:

조직이나 서비스의 이름을 나타내는 도메인 이름으로 도메인 사용자가 원하는 문자열을 사용할 수 있다.

호스트명

'www'는 호스트명으로 불린다. 주소의 체계에 따라 4단계 도메인 즉 서브도메인이 있을 수 있다. 예를들어 mail.singasong.co.kr같은 경우이다.

DNS 처리과정

쿼리(Query)란 클라이언트가 네임서버(DNS 서버)에 IP주소를 물어보고 응답받는 과정을 말한다. 계층구조로 만들어진 여러 서버들을 통해서 여러 차례 요청과 응답을 받는데 이것을 재귀적 쿼리(Recursive Query)라고 한다.

  1. 사용자가 브라우저에 www.example.com이라는 주소를 입력한다.
  2. DNS Resolver는 자신의 캐시에 해당 도메인에 대한 IP주소가 있는지 확인한다.
    (DNS Resolver는 클라이언트와 컴퓨터나 네트워크에 위치한 DNS 클라이언트로서, DNS 서버에 요청하여 질문하는 역할을 한다.)
  3. DNS Resolver에 IP 주소가 없다면 네임서버(DNS 서버)에 해당 IP를 찾아달라는 요청을 한다.
  4. Root DNS Server는 전 세계에 13개가 존재하며, 모든 도메인의 IP주소를 가지고 있지는 않으나 TLD(Top-Level-Domain)의 서버를 가지고 있다. Root DNS Server는 TLD 서버 IP 주소를 반환한다.
  5. DNS Resolver는 위를 참고하여 TLD 서버에게 다음 하위 서버의 IP주소를 요청한다. 그리고 응답받는다.
  6. 'www.example.com' 도메인을 관리하는 서버는 IP주소(ex)192.0.0.1)를 반환하고 DNS Resolver는 캐시에 저장한다. 이후 같은 요청이 들어오면 캐시에서 작업하여 클라이언트에게 반환한다.

참고자료

1) https://www.stevenjlee.net/2020/07/08/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-dns-domain-name-server/
2) https://velog.io/@eunnbi/DNS%EC%99%80-%EC%9E%91%EB%8F%99-%EC%9B%90%EB%A6%AC
3) DNS Resolver와 DNS Local server 차이점
https://velog.io/@zinukk/9kpyzbdt

0개의 댓글