본문 바로가기
Network & Server

[Network] DNS, A레코드와 CNAME 정리

by 스파이디웹 2023. 11. 6.
728x90

1. DNS란?

  • DNS(Domain Name System)의 약자로, 사용자가 숫자로 된 인터넷 프로토콜 주소 대신 인터넷 도메인 이름과 검색 가능한 URL을 사용하여 웹사이트에 접속하는 것을 가능하게 함
    사용자는  93.184.216.34와 같은 IP 주소를  기억하는 대신  www.example.com을 검색할 수 있음
  • 퍼블릭 DNS: 일반적으로 인터넷 서비스 제공업체(Internet service provider, ISP)가 기업에 IP 레코드를 제공하고, 이러한 레코드는 일반 대중에게 제공되며, 사용 중인 디바이스 또는 디바이스에 연결된 네트워크에 상관없이 누구나 액세스할 수 있습니다.
  • 프라이빗 DNS: 프라이빗 DNS는 회사의 방화벽 뒤에 존재하며 내부 사이트의 레코드만을 보관한다는 점에서 퍼블릭 DNS와 다르고, 이 경우 프라이빗 DNS의 범위는 내부 사이트 및 사용되는 서비스의 IP 주소를 기억하는 것으로 제한되며, 프라이빗 네트워크 외부에서 액세스할 수 없음

2. A레코드

naver.com (A 레코드) 192.168.0.1
google.com (A 레코드) 172.17.0.1
spidyweb.co.kr (A 레코드) 10.232.34.12
  • 이런 정보가 DNS 서버에 저장되고 사용자가 웹 브라우저나 프로그램에서 naver.com을 요청하면 이 테이블에서 naver.com을 찾아 192.168.0.1 을 응답해준다. 사용자의 웹 브라우저나 프로그램은 이 IP 주소를 이용해서 통신하게 됨
  • 위 테이블에서 하나의 행(Row)를 '레코드(Record)'라고 하며, 저장되는 타입에 따라 A Record와 CNAME으로 구분할 수 있음

3. CNAME

naver.com (A 레코드) 192.168.0.1
prd.spidyweb.co.kr (A 레코드) 172.17.0.1
product.spidyweb.co.kr (CNAME 타입) prd.spidyweb.co.kr
  • 위와 같은 정보가 DNS 서버에 저장되어 있다고 하면, 사용자가 prd.spidyweb.co.kr 주소를 요청하면 서버는 172.17.0.1 를 응답함. (A 레코드 정보의 해석)
  • 만약 product.spidyweb.co.kr을 요청하면 DNS 서버는 prd.spidyweb.co.kr 을 리턴하고, 사용자는 다시 prd.spidyweb.co.kr 정보를 DNS 서버에 요청 함. DNS 서버는 이제 172.17.0.1 을 리턴하고 사용자는 IP 주소를 사용하게 됨
  • product.spidyweb.co.kr과 prd.spidyweb.co.kr  정보가 매핑되어 있는 행(Row)을 CNAME 타입이라고 함. 즉, 도메인 주소에 대한 별명을 붙여주는 정보

4. A레코드 vs CNAME

  A레코드 CNAME
정의 A 레코드(A Record)는 DNS에 저장되는 정보의 타입으로 도메인 주소와 서버의 IP 주소가 직접 매핑시키는 방법 위 테이블에 적혀있는 것처럼 첫 번째 컬럼값이 naver.com 같은 도메인 주소고, 두 번째 컬럼 값이 192.168.0.1 같은 IP 주소인 형태 위에서 말했던 것처럼 사용자가 A 레코드에 해당하는 도메인 주소에 대한 해석을 요청하면 DNS 서버는 IP 주소를 리턴 CNAME은 Canonical Name의 약자로 도메인 주소를 또 다른 도메인 주소로 매핑 시키는 형태의 DNS 레코드 타입
  • A 레코드 타입과 CNAME 타입의 장단점은 명확
  • A 레코드의 장점은 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있음.
  • 반면 단점은 IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있음
    • 예를 들어, 172.17.0.2 서버에서 spidyweb.co.kr, prd.spidyweb.co.kr, code.spidyweb.co.kr 등 여러개의 서브 도메인들을 처리하고 있는 경우, 각 서브 도메인들을 A 레코드로만 매핑시켰다면, 172.17.0.2라는 IP 주소가 172.17.0.3이라는 주소로 변경되었다면 모든 A 레코드를 찾아서 변경해야 함
  • CNAME 레코드의 장점은 IP 주소가 자주 변경되는 환경에서 유연하게 대응할 수 있음
    • 예를 들어, prd.spidyweb.co.kr, code.spidyweb.co.kr 도메인 정보를 plusblog.co.kr이라는 주소로 매핑시키는 CNAME 레코드로 저장하고, plusblog.co.kr이라는 주소를 172.17.0.2 라는 IP 주소로 매핑시키는 A 레코드로 저장해 놨다면, 서버의 IP 주소가 바뀌었을 때 plusblog.co.kr의 A 레코드 정보만 변경시키면 됨
  • NAME 레코드의 단점은 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청해야 하고 이것은 DNS 정보를 해석하는데 여러번 요청이 필요하다는 점은 경우에 따라서 성능저하를 유발할 수 있음

 

참조:

https://www.ibm.com/kr-ko/topics/dns

 

DNS | IBM

DNS는 무엇인가요? DNS의 중요성과 이의 작동 방식, 그리고 이를 필요로 하는 경우 자체 기업에 맞는 DNS 솔루션을 어떻게 선택하는지 살펴봅니다.

www.ibm.com

https://dev.plusblog.co.kr/30

 

DNS에서 CNAME과 A 레코드의 차이

가비아, 후이즈, 고대디 등의 DNS를 이용해서 커스텀 도메인을 사용할 때, 서브 도메인을 등록하기 위해서 CNAME과 A 레코드 같은 정보를 DNS 서비스 홈페이지에 등록해야한다. 둘 다 서브 도메인을

dev.plusblog.co.kr

 

728x90

댓글