DNS, 네임서버, 도메인, A Record, CNAME

메밀·2023년 5월 14일
0

배포 중 궁금증이 생겨 정리해둔다.

1. DNS

  • Domain Name System

1) 도메인

  • www.naver.com 같은 것.
    • 엄밀히 도메인은 naver.com
    • www는 호스트네임 (ex. blog, cafe…)
  • 웹사이트에 접속하려면 브라우저가 그 사이트를 제공하는 서버에 요청을 해서 데이터를 받아와야한다. 그러려면 그 서버의 IP 주소를 알아야하는데, 이때 보다 외우기 쉬운 주소(도메인)으로 접속한다. 전화번호부와 비슷한 개념이다.

그렇다면 이 전화번호부는 어디에 있을까?


2) DNS, 네임서버

  • 시스템이라는 말에서도 알 수 있듯, 어디 한 군데에 싹 들어있는 게 아니라 다층적으로 구성된 네트워크에 분산돼서 도메인 정보들이 저장되고 조회된다.
  • DNS 서버는 네임서버라고도 불린다.

널리 쓰이는 예제

  1. 내 컴퓨터에서 www.naver.com에 접속한다. 현재 내 브라우저는 네이버의 IP를 모른다.
  2. 브라우저는 먼저 PC에 설정된 로컬 DNS 서버에 해당 도메인과 호스트명의 IP를 갖고 있는지 물어본다. 이 주소의 정보가 이미 캐싱돼있을 수도 있고, 없을 수도 있다.
    • 이 로컬 DNS 서버는 보통 통신사마다 지정된 곳이 있는데, 사용자가 다른 곳으로 바꿀 수 있다.
    • 있다면 바로 반환.
  3. 없으면 로컬 DNS는 Root DNS 서버에 이 주소에 해당하는 IP를 어디서 찾을 수 있는지 물어본다.
    • 루트 DNS 서버는 전세계에 13군데가 있다.
    • 한국에는 없지만 미러 서버가 이를 대신한다.
  4. 루트 DNS 서버는 응답으로, .com으로 끝나는 도메인들을 담당하는 서버의 IP 주소를 반환한다.
  5. 로컬 DNS 서버는 이 주소를 받아들고, .com 담당 서버를 찾아간다.
  6. .com 담당 서버는 naver.com의 도메인 정보를 가진 naver.com의 도메인 서버를 알려준다.
  7. 그 주소를 보고 naver.com 서버에 가면, ‘www.naver.com’, ‘mail.naver.com’, ‘blog.naver.com’ 등 여러 호스트네임 별 IP 주소가 있다.
  8. 여기로부터 www에 해당하는 IP 주소를 얻어낸 다음 브라우저로 반환하고, 비로소 www.naver.com의 서버로 접속하게 된다.


2. A Record vs. CNAME

1) A Record

도메인을 서버의 IP로 직통연결
접속이 빠르다

2) CNAME

도메인을 별명과 연결
IP가 유동적으로 변하는 서버의 경우, 그 바뀌는 IP들에 일정하게 연결된 다른 도메인, 즉 canonical name을 적는다.
AWS나 Firebase에서 아이피가 계속 바뀔 때 사용 가능
한 군데를 더 거친다는 게 단점

0개의 댓글