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
728x90
'Network & Server' 카테고리의 다른 글
[Network] Nslookup & ping 정리 (0) | 2023.11.10 |
---|---|
[Network] 동기 vs 비동기 통신 (Ajax, kafka) 정리 (0) | 2023.11.06 |
[Network] nslookup (DNS-domain name service 조회) 정리 (0) | 2023.09.30 |
[Network] SSH tunneling vs SSH port forwarding (0) | 2023.01.19 |
[Network] SSL(Secure Sockets layer) 란? 사용되는 곳, 작동 원리, 인증과 인증서 유형 (0) | 2022.11.06 |
댓글