카테고리 없음

[인프라 기초] DNS(Domain Name System)

멋쟁휘개발자 2023. 12. 4. 20:51
DNS(Domain Name System)
인터넷 상에서 사용되는 도메인 이름과 IP 주소를 변환하는 시스템

 

 

우리는 도메인 주소(tistory.com)로 접속하지만, 실제로는 해당 서버의 IP 주소(211.249.221.185)로 통신을 하는 것입니다.

이때, 도메인 주소를 입력하면 IP로 변환해주는 것이 DNS 입니다. (DNS가 없었으면, 주소창에 IP 주소를 입력해서 접근했겠죠?)

 

Domain Name System vs Domain Name Server
 - Domain Name System : 도메인 이름과 IP 주소 간의 매핑 시스템 전체를 나타내는 용어
 - Domain Name Server : 도메인 네임 서버는 실제로 이 매핑 정보를 저장하고 관리하는 서버를 의미

 


 

우리 컴퓨터는 인터넷과 연결됨과 동시에 해당 통신사에서 지정한 DNS 로컬 서버가 연결됩니다.

이 DNS 서버가 도메인 이름으로 상위 서버에게 등록된 IP 주소를 찾아서 반환해줍니다.

 


 

도메인의 형태는 sub.Second-level.Top-level(Root)로 이루어져 있고,

각각 도메인을 관리하는 Name Sever가 존재합니다.

(해당 서버는 비영리 단체에서 국가적으로 관리되고 있다고 하는데 자세히는 몰라도 될 듯~)

 

주소의 마지막에는 .(Root)이 있는데, 무조건 있는 거라서 생략된다고 합니다.

 


 

 

내가 만든 App을 서비스하려면 서버와 도메인을 Registry에 등록해야 하는데,

이를 등록하기 위해서는 Name Server를 가지고 있어야 합니다.

 

로컬 PC를 Name Server로 만들어도 되지만, AWS의 Route53 과 같은 서버를 이용하면 편리합니다.

도메인과 IP를 등록해주고, Name Server 를 임대해줍니다.


 

Domain을 등록할 때 record type은 아래와 같습니다.

레코드 타입 설명 사용 예
A 도메인을 IPv4 주소로 매핑 example.com A 192.168.1.1
AAAA 도메인을 IPv6 주소로 매핑 example.com AAAA 2001:db8::1
CNAME 도메인을 다른 도메인의 별칭으로 지정 http://www.example.com CNAME example.com
MX 이메일을 수신하는 메일 서버의 정보 지정 example.com MX mail.example.com
PTR IP 주소를 도메인 이름으로 매핑 (역방향 DNS 조회) 192.168.1.1 PTR example.com
NS 도메인의 네임 서버 정보 지정 example.com NS ns1.example.com
SOA 도메인에 대한 기본 정보 제공 example.com SOA ns1.example.com
TXT 텍스트 정보 저장, 주로 SPF 레코드와 함께 사용 example.com TXT "v=spf1 -all"
SRV 도메인에서 제공되는 특정 서비스 정보 지정 _sip._tcp.example.com SRV 10 60 5060 sipserver.example.com
CAA SSL/TLS 인증서 발급을 허용하는 인증 기관 제한 example.com CAA 0 issue "letsencrypt.org"
DNSKEY DNSSEC에서 사용되는 공개 키 포함 example.com DNSKEY ...

 

CNAME을 왜 쓸까?

 

예를들어 아래와 같이 도메인에 IP를 직접 맵핑 했을 때

홍시 A 123.215.58.1

단감 A 123.215.58.1

 

IP 주소가 바뀌면 홍시와 단감의 IP를 각각 바뀐 주소로 변경해줘야 합니다.

홍시 A 1.1.1.1

단감 A 1.1.1.1

 

 

이때, CNAME으로 맵핑했다면 한 번만 바꿔도 됩니다.

 

A 123.215.58.1 -> 얘만 변경!

 

홍시 CNAME

단감 CNAME