sol 개발 블로그 로고
Published on

DNS

Authors
  • avatar
    Name
    Chan Sol OH
    Twitter

목차

1. DNS가 무엇인지
2. DNS의 동작
3. DNS의 실제 예시 with AWS Route53

1. DNS, 도메인 이름 등록 기관

도메인 이름 예약과 해당 도메인 이름에 대한 IP 주소 할당을 처리하는 사업체. 예를 들어 172.0.2.1와 같은 IP 주소와 'epicktrees.net' 같은 도에인 이름을 맵핑함. 도메인 이름을 사용하면 숫자 IP 주소를 기억할 필요없이 웹 사이트에 쉽게 접속 가능.

다만, 도메인 이름을 관리하고 유지하는 역할은 등록 기관이 아닌 도메인 이름 레지스트리가 수행.

2-1. DNS의 동작

사용자가 도메인 이름으로 웹 사이트에 접속하려면, 도메인 이름을 IP 주소로 변환하는 8단계의 과정이 필요함.

1. 사용자가 도메인을 입력하면 쿼리가 인터넷으로 이동, DNS 재귀 확인자가 쿼리 수신
2. DNS 재귀 확인자가 DNS 루트 이름 서버(.)를 쿼리
3. 루트 서버가 최상위 도메인 (TLD) DNS 서버(ex: .com .net)의 주소로 확인자에 응답
   example.com을 검색할 경우 요청은 .com TLD를 가리킴
4. 확인자가 .com TLD에 요청
5. TLD 서버가 도메인 이름 서버 (example.com)IP 주소로 응답
6. 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냄
7. example.com의 IP 주소가 이름 서버에서 확인자에게 반환
8. DNS 확인자가 처음 요청한 도메인의 IP 주소를 웹 브라우저에 응답



2-2. 재귀 DNS 확인자

재귀 확인자는 클라이언트의 재귀 요청에 응답하고 DNS 레코드를 추적하는 역할을 수행. 요청한 레코드에 대해, 권한 있는 DNS 이름 서버에 도달할 때까지 일련의 요청을 하는 방식으로 수행. 위에서 권한 있는 DNS 서버란 실제로 DNS 리소스 레코드를 보유하고 담당하는 서버를 말함. 이 서버는 응답하는 DNS 조회 체인의 맨 아래에 있는 서버로, 다른 서버에 쿼리 할 필요 없이 자체 데이터로 쿼리를 충족시킬 수 있음.


foo.example.com 같은 example.com의 하위 도메인에 대한 퀴리인 경우, 추가 이름 서버가 권한 있는 서버 다음 시퀀스에 추가되어 하위 도메인의 CNAME 레코드 저장을 담당.


2-3. DNS A 레코드와 CNAME

"A"는 주어진 도메인의 IP주소를 나타낸다. 예를 들어 example.com의 DNS 레코드를 끌어오면 A 레코드는 104.17..210.9를 반환. 보통 A 레코드는 IPv4 주소만 보유함. CNAME 레코드는 하위 도메인이 다른 도메인의 별칭인 경우 A 레코드 대신 사용된다. 모든 CANME은 IP 주소가 아닌 도메인을 가리킨다. 즉 CNAME 레코드가 있는 도메인은 다른 A 레코드가 있는 도메인을 가리킨다. 위와 같은 CNAME의 특징 덕분에 호스트의 IP 주소가 변경되면, 루트 도메인의 A 레코드만 업데이트하면 모든 CNAME이 루트에 따라서 변경사항을 따른다.