본문 바로가기
Cloud/Amazon Cloud

[Route 53] DNS(Domain Name System)란? DNS 동작 방식

by ganyga 2024. 2. 23.

DNS란?

  • Domain Name System으로 hostname을 대상 서버 IP 주소로 번역해 주는 것
  • 예를 들어, 웹 브라우저에 www.google.com을 입력하면 IP 주소를 주고, 구글로부터 데이터를 얻음
  • DNS는 인터넷의 중추로 URL과 호스트 이름을 IP로 변환하는 것임
  • DNS에는 계층적 이름 구조가 있음
    • .com
    • example.com
    • www.example.com
    • api.example.com

 

DNS 관련 용어

  • Domain Registrar : 도메인 이름을 등록하는 곳 (ex. Amazon Route53, Godaddy 등)
  • DNS Records(DNS 레코드) : A, AAAA, CNAME, NS 등
  • Zone File : 모든 DNS 레코드를 포함하는 것 = hostname과 IP 또는 주소를 일치시키는 방법
  • Name Server(네임 서버) : DNS 쿼리를 실제로 해결하는 서버
  • Top Level Domain(TLD, 최상위 도메인) : .com, .us, .in, .gov, .org  
  • Second Level Domain(SLD, 2단계 도메인) : amazon.com, google.com
  • FQDN : 전체 주소 도메인 이름의 약자

DNS 동작 방식

공인 IP가 9.10.11.12인 Web Server가 있을 때, 도메인 이름 example.com을 이용해서 접근하고자 함

example.com 도메인 이름을 DNS용 서버를 등록해야 함

내 컴퓨터, WebBrowser가 example.com에 어떻게 접근하고 응답을 받는지 보면

  1. Web Browser가 example.com에 접근하기 위해서 Local DNS Server에 'example.com을 아십니까?'라고 물어봄
    이때, Local DNS Server는 보통 회사에 의해 할당되고 관리됨, 또는 인터넷 서비스 제공자(ISP)에 동적으로 할당됨

  2. Local DNS Server가 이 쿼리를 전에 본 적이 없다면, ICANN에 의해 관리된 Root DNS Server에 'example.com을 아십니까?'라고 물어봄

  3. 가장 먼저 요청되는 서버인 Root DNS Server는 '본 적 없지만, .com은 알고 있습니다.'라고 말함
    '.com은 NS 레코드로 공인 IP 1.2.3.4로 가보세요.'라고 답변함
    답을 갖고 있진 않지만, 답에 좀 더 가까운 것을 알려줌
    Local DNS Server는 '좋아요, 최상단 도메인에 물어보겠습니다.'라고 함

  4. IP가 1.2.3.4인 .com IANA에 의해 관리되는 TLD DNS Server에게 'example.com을 아십니까?'라고 물어봄

  5. TLD DNS Server는 example.com이 무엇인지 몰라서 쿼리에 당장 답할 수가 없음, 어떤 레코드인지도 모름
    그러나 example.com이라는 서버는 알고 있음 'example.com은 공인 IP가 5.6.7.8로 가보세요.'라고 답변함
  6. Local DNS Server는 최종 서버로 도메인 이름 레지스트라에 의해 관리되는 SLD DNS Server로 감 'example.com을 아십니까?'라고 물어봄
  7. SLD DNS Server에는 example.com에 대한 항목이 있음
    'example.com 이 무엇인지 알고 있죠.'라고 하면서, 'example.com은 A레코드이고, 이것의 결과로 IP 9.10.11.12를 얻습니다.'라고 답변함

  8. Local DNS Server가 이제 답을 알고 있음, DNS Server에 반복적으로 물어보며, 가장 구체적인 것을 찾음 
    만약 누군가가 다시 example.com을 물어본다면 '이제 답변을 바로 드리겠습니다'라고 함(Cache에 저장되기 때문)
    답변을 Web Browser에 보내고, Web Browser는 답변을 받음

  9. 이제 9.10.11.12 IP 주소를 이용하여 Web Server에 접근할 수 있음