TIL | HTTP, 통신 - 2

송치헌·2021년 7월 21일
0

TIL | HTTP와 통신

목록 보기
2/5


DNS


DNS (Domain Name Service) : 전화번호부와 같은 역할로, 사람이 읽을 수 있는 도메인을 기계가 읽을 수 있는 IP주소로 변환해주는(혹은 그 반대) 서비스

DNS는 Domain Name Service의 약자로 쉽게 생각해서 전화번호부라고 생각하면 된다.

전화번호를 일일이 외울 필요없이 전화번호부에 저장된 이름을 검색해서 통화를 걸면 바로 전화가 연결이 된다. 이와 마찬가지로 인터넷이 보급된 초창기에 도메인 네임 서비스가 없이 원하는 웹과 통신하기 위해서 IP주소를 알아야했다. 그러나 이것은 굉장히 비효율적이고 불만이 쏟아져 나왔다.

그래서 DNS가 등장하게 되었다.

웹 서버의 IP주소를 DNS서버에 등록하면 사용자는 그 웹 사이트의 IP주소를 외울 필요 없이 주소 이름만 입력하여 연결할 수 있게 되었다.


DNS 서버의 구조


Wikipedia의 URI를 보자

  • ko.wikipedia.org
ko.wikipedia.org.
subSecond - LevelTop - LevelRoot

기본적으로 사용자가 위키피디아에 접속하기 위해 DNS 서버에 wikipedia.org의 IP주소를 물어보고 DNS 서버가 알려준 IP주소로 다시 요청하여 연결이 된다. 이렇게 쉽게 연결이 되면 참 좋으려만...안타깝게도 DNS 서버는 이렇게 쉽게 IP주소를 알려주지 않는다. 현재 엄청나게 많은 도메인이 존재하기 때문에 하나의 서버에서 관리하기에는 무리가 있다. 따라서 여러 계층을 나누어 관리한다.


DNS 서버에 IP를 질의하는 과정


앞서 얘기했듯 "DNS야! 'ko.wikipedia.org'의 IP주소가 뭐야?" 라고 물어보면 "응 'xxx.xxx.xxx.xxx' 야" 라고 바로 알려주지 않는다.

  1. 먼저 Root Server에 물어본다.
  • "Root Server야 위키피디아 IP주소 알려줘"
    • "미안...나도 잘 몰라. 근데 뒤에가 '.org'네? 나 얘네 주소는 알고 있으니까 얘네 주소 알려줄게 얘네한테 물어봐
  1. Root Server도 모르니 하위 계층인 Top-Level Server에 물어본다.
  • "야 너네는 IP주소 알아? 알려줘"
    • "우리도 모르는데...근데 'wikipedia.org' 이면 Second-Level Server한테 물어보면 알려줄거야."
  1. Top-Level 서버가 모른다고 했고 Second-Level한테 다시 물어보라며 Second-Level 서버의 IP주소를 알려준다. 이제 Second-Level 서버에 가서 물어본다.
  • "이제는 알려줘라..."
    • "아 내가 아는 앤데 앞에 'ko.'이 붙어있네...그건 sub 도메인 서버한테 물어봐"
  1. 마지막으로 Sub도메인을 담당하는 서버에 물어본다.
  • "IP주소가 뭐야?"
    • "먼 길 오느라 고생했네^^ IP주소는 192.xx.xx.xxx이야"
  1. 이제 주소를 알았으니 Wikipedia에 찾아가면 끝!

도메인 이름 등록 과정


이번엔 자신이 직접 웹 서버가 되어 도메인 이름을 DNS 서버에 등록하여 보자.

내가 원하는 도메인 이름은 orange.com 이고 IP주소는 123.123.123.123이라고 가정해보자.

  • 먼저 도메인을 등록할 나는 등록자(Registrant)가 된다. 이제 직접 DNS 서버를 구축하여 도메인의 이름과 IP주소를 DNS 서버에 등록해 주면 되지만 쉬운 일은 아니다. 따라서 등록대행자(Registrar)에서 일정의 수수료를 받고 대신 등록해 주기도 한다.

  • 등록대행자를 통하여 등록을 하는 경우를 보면, 자신이 원하는 도메인 이름을 등록대행자에게 등록한다. 등록대행자는 그 도메인 이름을 등록소(Registry)에 가서 "이 도메인 이름 등록되어 있어요?" 라고 물어본다.

  • 이미 등록이 되어있다면 "이미 있네요. 다른 이름으로 다시 정하라고 얘기해 주세요" 라고 할 것이고, 아니라면 등록이 가능하다고 할 것이다. 등록이 가능한 경우 등록대행자가 등록을 해줄 것이다.

  • 이제 등록대행소에는 내가 원하는 도메인 이름과 나의 IP주소가 등록되어 있다.

RegistrantRegistrarRegistryRoot Server
123.123.123.123orange.com A 123.123.123.123--

도메인 옆에 'A'는 IPv4를 이용하는 IP주소라는 뜻이다. 참고로 'AAAA'는 IPv6을 의미한다.

  • 이제 Top-Level 서버에서 이 도메인을 관리한다. 여기서는 등록대행소의 IP주소를 저장한다.
RegistrantRegistrarRegistryRoot Server
123.123.123.123orange.com A 123.123.123.123orange.com NS 등록대행소 주소-
  • 마지막 루트 서버에서는 등록소 역할을 하는 Top-Level 서버의 도메인 서버 주소를 저장한다. '.com'으로 끝나므로 '.com'을 관리하는 서버의 주소를 저장한다.
RegistrantRegistrarRegistryRoot Server
123.123.123.123orange.com A 123.123.123.123orange.com NS 등록대행소 주소.com NS 등록소 주소

너무 어렵다...


profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글