DNS, 그리고 동작 방식

Minho Yoo·2022년 7월 20일
2
post-thumbnail

DNS(Domain Name Syestem)란?

사용자가 입력한 도메인 주소를 숫자인 IP주소로 변환하는 과정이 필요한데 이것을 담당하는 시스템이 DNS이다.

DNS 예시

네이버 DNS = https://www.naver.com/ -> 223.130.195.200:80
브라우저에 네이버 도메인이 아닌 아이피를 입력해도 네이버로 들어가지는 것을 확인 할 수 있다.

DNS를 사용하는 이유

세상엔 수 많은 사이트들이 존재한다.
그 많은 사이트들의 IP 주소를 일일이 외워서 기억하는 사람은 없을 것이다.
길고 복잡한 IP 주소는 외울수가 없기 때문에 문자 주소를 사용하기 위해 DNS를 사용한다.

구성 요소 및 동작 원리

도메인 네임 스페이스(Domain Name Space)

최상위에 루트 DNS 서버가 존재하고, 그 하위로 인터넷에 연결된 모든 노드가 연속해서 이어진 계층구조로 구성

네임 서버(Name Server)

주소를 변환 시키기 위해 도메인 네임 스페이스의 트리구조에 대한 정보가 필요하다.
이 정보를 가진 서버 도메인 이름을 IP주소로 변환하는 것

리졸버(Resolver)

DNS클라이언트의 요청을 네임 서버로 전달하고 네임 서버로부터 도메인이름과 IP 주소를 받아 클라이언트에 제공하는 기능을 수행

도메인 네임은 특정한 순서를 가지고 있습니다.
서비스별 이름이 위치하고, 조직의 종류, 국가 이름 순서를 표현됩니다.

Kr: 각 국가별 사용을 위해 정의한 도메인으로 ISO 3166 [4]에서 정의하는 국가 코드에 기반함
com: 기업과 같은 상용 조직을 위한 도메인
edu: 교육 기관들을 위한 도메인
net: 네트워크 서비스 제공자와 관련된 시스템을 위한 도메인
org: 다른 TLD에 속하지 않는 비정부 단체를 위한 도메인
int: 국제 협약에 의해 만들어진 조직을 위한 도메인
gov: 본래 정부 기관이나 단체를 위한 도메인이었으나, 현재 미국의 주 정부를 비롯한 연방 정부만 등록하도록 결정
mil: 미국 국방성 관련 기관에서 사용하도록 정의한 도메인
arpa: IP 주소를 도메인 이름으로 매핑하기 위해 사용되는 특수 도메인

DNS 동작과정

  1. 웹 브라우저에 www.naver.com을 입력하면 먼저 PC에 저장된 Local DNS(기지국 DNS 서버)에게 "www.naver.com"이라는 hostname에 대한 IP 주소를 요청한다.

Local DNS(기지국 DNS 서버)란?

기본적으로 인터넷을 사용하기 위해선 IP를 할당해주는 통신사(KT, SK, LG 등)에 등록하게 된다.
컴퓨터의 LAN선을 통해 인터넷이 연결되면, 가입했던 각 통신사의 기지국 DNS 서버가 등록되게 된다.
그러니까 KT를 사용하는 집이면 KT DNS가 되고, SK통신사 사용하는 집이면 SK DNS가 자동으로 셋팅 된다.

Local DNS에는 "www.naver.com"의 IP주소가 있을 수도 없을 수도 있다.
만약 예전에 네이버에 접속했던 전적이 있다면, Local DNS에 접속정보가 캐싱이 되어있어, 바로 PC에 IP 주소를 주고 끝난다.

  1. 그러면 Local DNS는 이제 "www.naver.com"의 IP주소를 찾아내기 위해 다른 DNS 서버들과 통신을 시작한다.
    먼저 Root DNS 서버에게 "www.naver.com"의 IP주소를 요청한다.

Root DNS(루트 네임서버)란?

Root DNS는 인터넷의 도메인 네임 시스템의 루트 존이다.
ICANN이 직접 관리하는 절대 존엄 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 한다.
전세계에 961개의 루트 DNS가 운영되고 있다.

  1. Root DNS 서버는 "www.naver.com"의 IP 주소를 찾을 수 없어 Local DNS 서버에게 "www.naver.com"의 IP주소를 찾을 수 없다고 응답한다.

  2. Local DNS 서버는 com 도메인을 관리하는 TLD DNS 서버(최상위 도메인 서버)에 다시 www.naver.com에 대한 IP 주소를 요청한다.

  3. com 도메인을 관리하는 DNS 서버에도 해당 정보가 없으면, Local DNS 서버에게 "www.naver.com"의 IP 주소를 찾을 수 없다고 응답한다.

  4. 이제 Local DNS 서버는 naver.com DNS 서버(Authoritative DNs 서버)에게 다시 "www.naver.com"의 IP주소를 요청한다.

Authoritative DNS Server란?

실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버
그래서 권한의 의미인 Authoritative가 붙는다.
일반적으로 도메인/호스팅 업체의 '네임서버'를 말하지만, 개인이나 회사 DNS 서버 구축을 한 경우에도 여기에 해당하게 된다.

  1. naver.com DNS 서버에는 "www.naver.com"의 주소가 있다.
    그래서 Local DNS 서버에게 "www.naver.com"에 대한 IP 주소는 222.122.195.6 이라고 응답을 한다.

  2. 이를 수신한 Local DNS는 www.naver.com의 IP 주소를 캐싱하고 이 후 다른 요청이 있을 시 응답할 수 있도록 IP 주소 정보를 단말(PC)에 전달해 준다.

이렇게 Local DNS 서버가 여러 DNS 서버에 차례대로 (Root DNS 서버 -> LD DNS 서버(.com) -> Authoritative DNS 서버(naver.com) 요청하여 그 답을 찾는 과정을 재귀적 쿼리 Recursive Query 라고 부른다.

profile
Always happy coding 😊

0개의 댓글