DNS Record
도메인 이름에 대한 다양한 정보를 저장하며 클라이언트가 도메인을 입력할때
이 정보를 받아서 적절한 처리를 한다.
일반적으로 사용되는 DNS 레코드에는
A 및 AAAA 레코드,
CNAME,
DNAME 및
ALIAS 레코드,
CAA 레코드,
CERT 레코드,
MX 레코드,
SOA 레코드,
NS 레코드,
PTR 레코드,
SPF 레코드,
SRV 레코드 및 TXT 레코드가 포함됩니다.
이러한 각 레코드는 고유한 기능을 가지고 있으며 각각의 레코드를 이해하는 것은 DNS 시스템이 제대로 작동하는 데 중요한 부분입니다.
A 레코드
- A레코드는 도메인이름을 직접적으로 서버 아이피 주소와 연결해주는 레코드이다.
- A레코드에 입력한 도메인주소로 접근하면 IP주소로 연결된다.
CNAME - Canonical name
- 도메인을 별명과 연결한다 .
- IP 주소가 유동적으로 변하는 서버의 경우 A 레코드로 작성하면 IP가 변경될때마다 A레코드를 다시 작성해주어야한다.
- CNAME으로 A레코드의 도메인 주소값을 입력하면 IP값이 변경되어도 레코드를 수정해주지 않아도 접근이 가능하다.
예를 들어 CNAME으로 www.soolae-server.shop을 을 작성하고
a레코드는 soolae-server.shop이고
a레코드에서 가리키는 IP는 유동적으로 변경된다고 했을때
사용자가 www.soolae-server.shop 인 CNAME으로 접근하고
CNAME은 A레코드값과 연결되고
A레코드가 가진 IP값을 가지고 온다.
MX레코드 - Mail Exchange Record
- 여러개의 MX 레코드를 생성할수있고 우선순위를 설정할수있다. Priority
- 이메일 서버는 우선순위가 낮은 레코드를 사용하려고 시도한다. ex) 우선순위가 1 , 2, 3 인경우 1
- 메일 전송시 해당 도메인의 mx 레코드로 전송된다.
ex)
A레코드에 메일을받을 서버의 IP를 연결해서 생성 / mail.도메인주소
MX레코드를 생성 / 도메인주소 10 mail.도메인주소
이렇게 입력하면 해당도메인주소로 이메일이 전송될때 donghyeon@도메인이름
mx레코드를 요청하고 네임서버는 우선순위가높은 mx레코드를 보내주고
연결된 도메인인 mail.도메인 으로 메일이 전송된다.
그럼 이메일을 mail.도메인 에 연결된 ip주소를 가진 서버에서 처리하게된다.
TXT레코드
- 텍스트 레코드는 텍스트 문자열을 넣을수있는 레코드 이다.
- 도메인이나 하위 도메인과 관련된 텍스트 정보를 저장한다.
- SPF 레코드와 이메일 확인 레코드를 저장할 수 있다.
SPF레코드 - Sender Policy Framework
- 도메인 에서 이메일을 보낼수있도록 승인된 서버를 나열하는 텍스트 레코드
- SPF레코드는 TXT레코드를 작성하는 한 방법이며 이메일 인증을 위해서 사용하는 레코드이다.
ex)
도메인 / TXT / "v=spf1 mx include:mailplug.com ~all"
v=spf1 : SPF레코드의 버전
mx : 도메인의 메일 서버를 허용
include:mailplug.com : mailplug.com 에서 메일을 보낼수있는 서버를 포함 / mailplug.com의 spf 정책을 이용한다
~all : 메일전송정책 해당 SPF정책을 따르지않는 이메일을 유사스팸으로 간주하고 수신서버에서 판단하여 스팸으로 분류.
-all : 엄격한거부정책 SPF를 따르지않는 이메일을 모두 거부.
SRV레코드
_admin._tcp.soolae-server.shop. 300 IN SRV 1 10 8081 soolae-server.shop.
인스턴트 메시징 등의 특정 서비스에 대한 포트를 지정
해당 IP주소의 포트 정보도 포함
일부 인터넷 프로토콜은 SRV레코드를 작성해야 동작할수있다.
서비스 지정: SRV 레코드는 특정 서비스(예: SIP, XMPP 등)가 사용하는 포트를 지정합니다.
프로토콜: SRV 레코드는 어떤 프로토콜을 사용하는지를 명시합니다. 예를 들어, `_sip._tcp.example.com`은 SIP 프로토콜을 TCP를 통해 사용하는 서비스임을 나타냅니다.
우선순위 및 가중치: SRV 레코드는 우선순위와 가중치를 설정할 수 있어, 여러 대의 서버가 있을 경우 어떤 서버로 연결할지를 결정하는 데 도움을 줍니다.
연결과정
- 도메인 쿼리: 클라이언트가 특정 도메인에 대해 SRV 레코드를 조회합니다.
- SRV 레코드 응답: SRV 레코드는 해당 서비스에 대한 포트와 IP 주소를 제공합니다.
- A 레코드 조회: 만약 SRV 레코드가 도메인 이름을 포함하고 있다면, 클라이언트는 해당 도메인에 대한 A 레코드를 조회하여 실제 IP 주소를 확인합니다.
- 서비스 연결: 클라이언트는 SRV 레코드에서 제공된 포트와 A 레코드에서 제공된 IP 주소를 사용하여 해당 서비스에 연결합니다.
DNS SOA레코드
도메인에 관련된 설정정보 레코드
- 도메인 영역에대한 중요한 정보를 저장
- 권한과 관리정보를 포함
- 네임서버: 해당 도메인의 주요 네임서버 정보를 포함
- 관리자이메일: 네임서버 관리자 이메일 주소를 나타낸다
- 시리얼너버: 도메인 설ㅈ엉의 버전을 나타내며 , 업데이트시 증가
- 리프레시 주기: 주 서버가 보조 서버로 데이터를 갱신하는 주기를 나타낸다.
- 재시도 주기 : 주서버와 연결 실패시 보조 서버가 재시도하는 주기
- 만료시간 : 캐시된 정보를 폐기하기 전에 유지하는 시간.
- 최소 TTL값: 캐시된 DNS레코드의 기본 유효 시간을 설정
TTL - Time To Live
패킷이 라우터에 의해 폐기될때 까지 네트워크 내부에 존재하도록 설정된 시간 또는 홉(Hop) 의 양을 나타낸다.
- 홉(Hop) : 패킷이 네트워크의 장비를 지나갈때 마다 홉이 하나씩 증가, 홉을 통과할때마다 패킷의 생존 시간이 감소
DNS TTL
- dns레코드가 생성될때 TTL값을 설정한다.
- 클라이언트가 dns서버에 도메인이름을 조회할때 해당 dns서버는 요청된 레코드를 찾는다.
- dns서버는 레코드를 반환할때 TTL값을 함께 제공한다. 이 TTL값은 클라이언트나 다른 dns서버가 해당 레코드를 얼마나 오랫동안 저장할지를 결정한다.
'공부 임시 저장소' 카테고리의 다른 글
SSL 보안인증서란? (0) | 2024.10.13 |
---|---|
도메인이란? DNS (1) | 2024.10.13 |
스프링 부트 - spring-security-jwt (0) | 2024.06.25 |
스프링부트 - aws s3파일저장 (0) | 2024.06.25 |
스프링부트 - 파일 저장 (0) | 2024.06.24 |