DNS 레코드
•
DNS 레코드는 도메인 이름과 관련된 정보를 저장하는 데이터베이스 항목이다.
•
DNS 서버로 패킷(Packet)요청이 들어왔을 때 어떤 식으로 패킷을 처리할지를 나타내는 지침과 같다.
도메인 | 매핑하는 목적지 | Record Type | DNS Class |
google.com | 172.12.0.1 | A | IN |
naver.com | 192.168.1.1 | A | IN |
original.com | different.com | CNAME | IN |
example.com | 10 mail.example.com | MX | IN |
example.jp.com | v=spf1 include:_spf.example.com ~all" | TXT | IN |
DNS Record Types (DNS 레코드 타입)
DNS 레코드 타입 | 설명 |
A record | 도메인을 해당하는 IP 주소 (IPv4 형식)을 매핑합니다. |
AAAA record | 도메인을 해당하는 IP 주소 (IPv6 형식)을 매핑합니다. |
CNAME record | 도메인을 다른 도메인 이름에 별칭(별명)으로 매핑합니다. |
MX record | 도메인의 메일 서버를 지정합니다. |
TXT record | 특정 도메인에 대한 추가 정보를 포함하는 텍스트 데이터를 제공합니다. |
… | … |
TTL
•
TTL(Time to Live)은 DNS 서버가 특정 DNS 레코드를 얼마나 오래 캐시에 유지할지 정하는 시간을 뜻한다.
•
TTL의 단위는 "초"이다. 다음은 TTL에서 값의 예시이다.
TTL | 시간 |
600 | 10 분 |
3600 | 1 시간 |
21600 | 6 시간 |
43200 | 12 시간 |
86400 | 24 시간 |
DNS 클래스
•
DNS 클래스는 3 가지 유형이 있다
IN (Internet)
•
가장 널리 사용되는 클래스로, 대부분의 DNS 레코드가 이 클래스를 사용한다.
•
인터넷을 기반으로 하는 DNS 레코드를 나타낸다.
CH (CHAOS)
•
주로 실험 및 테스트 목적으로 사용되는 클래스이다.
•
시스템 정보 및 실험용 레코드를 사용할 때 참조된다.
HS (Hesiod)
•
주로 특정 응용 프로그램에 의해 사용되는 클래스이다.
•
헤시오드(Hesiod)는 네트워크 정보를 분산 관리하는 데 사용되는 프로토콜이다.
Apex 도메인
•
Apex 도메인은 도메인 이름 계층에서 최상위에 위치하는 도메인을 의미한다.
•
즉, 하위 도메인이 없는 루트 도메인(root domain)이다
Record
A Record
•
도메인을 IPv4 주소로 매핑하는 역할을 한다.
•
가장 기본적인 DNS 레코드이다.
•
A 레코드는 1대 1 매핑이 될 필요는 없다.
•
1:N 관계 매핑, N:M 관계 매핑이 될 수 있다.
A 레코드 예시
도메인 이름 | Class | Record Type | IPv4주소 | TTL |
example.com | IN | A | 192.0.2.1 | 3600 |
google.com | IN | A | 256.2.11.45 | 3600 |
naver.com | IN | A | 1.0.0.0 | 3600 |
naver.com | IN | A | 1.0.0.1 | 3600 |
naver.com | IN | A | 1.0.0.2 | 3600 |
AAAA Record
•
A record의 IPv6 버전이다.
•
IPv6 주소는 128비트로 표현된다. (IPv4는 32비트)
•
IPv6 예시 : 2001:0db8:85a3:0000:0000:8a2e:0370:7334
AAA 레코드 예시
도메인 이름 | Class | Record Type | IPv6주소 | TTL |
example.com. | IN | AAAA | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | 14400 |
CNAME Record
•
CNAME 레코드는 도메인 주소를 또 다른 도메인 주소로 매핑한다.
•
CNAME 레코드는 Apex 도메인(최상위 루드)에서 사용할 수 없다.
CNAME 레코드 예시
도메인 이름 | Class | Record Type | 주소 | TTL |
example.com | IN | CNAME | power.com. | 14400 |
power.com | IN | A | 192.0.2.1 | 3600 |
A / AAAA Record 와 CNAME Record 비교 정리
•
A/AAAA와 CNAME의 가장 큰 차이점은
•
A/AAAA 레코드는 IP 주소로, CNAME 레코드는 도메인 네임으로 매핑한다는 점이다.
A 레코드 / AAAA 레코드 | CNAME 레코드 | |
레코드 대상 | IP 주소 (A: IPv4, AAAA: IPv6) | 도메인 네임 |
사용 예시 | example.com → 192.168.1.1 | http://www.example.com → example.com |
성능 | 직접적 IP 주소로 매핑하기 때문에 빠르다 | 추가적인 DNS 조회가 필요하므로 약간의 성능 손실 |
Apex 도메인 | 지원, 사용 가능 | 지원하지 않음 |
Alias Record (Route 53)
•
AWS 클라우드 내에서만 사용되는 레코드이다
•
Alias 레코드는 Route 53에서 사용되는 고유한 DNS 레코드 타입이다.
•
Alias 레코드는 Route 53을 AWS 리소스(예: CloudFront, ElB, S3 등)와 연결할 때 사용된다.
•
예시) Route 53에서 example.com 도메인을 Alias 레코드로 CloudFront의 d1234abc.cloudfront.net에 연결
Alias 레코드의 예시
도메인 이름 | Record Type | AWS 서비스 엔드포인트 |
alias.example.com | A | some-aws-service.amazonaws.com |
Alias 레코드를 작성할 때 Alias를 ON/OFF 하는 버튼이 있는데 ON으로 설정해야 된다. 그리고 Record type은 A 레코드 또는 AAAA 레코드를 선택한다.
Alias Record vs. CNAME Record 비교 정리
Alias 레코드 | CNAME 레코드 | |
용도 | AWS 서비스와 연결하기 위해 사용 | 다른 도메인과 연결하기 위해 사용 |
Apex 도메인(최상위 도메인) | ||
사용 예시 | example.com → CloudFrontexample.com → S3 | dr.example.com → example.com |
속도 | CNAME 보다 빠르다(추가적인 조회 없이 직접적으로 AWS 서비스로 매핑하기 때문에) | 추가 DNS 조회가 필요하므로 상대적으로 느릴 수 있음 |
NS Record (Name Server)
•
NS 레코드는 도메인을 관리하는 Name Server(네임 서버)의 정보를 담고 있는 DNS 레코드이다.
•
특정 도메인을 어떤 네임 서버가 관리하는지를 정의한다.
네임 서버(Name Server)는 도메인 이름을 IP 주소로 변환하는 역할을 하는 서버이다.
도메인 이름(예: example.com)을 IP 주소(예:192.0.2.1)로 변환하는데 사용하는 서버
도메인 이름 | 레코드 타입 | 네임 서버 | TTL |
example.com | NS | ns1.example.com | 86400 |
example.com | NS | ns2.example.com | 86400 |
네임 서버 작동 방식
1.
사용자가 example.com 웹사이트에 접속 (DNS 서버에 요청)
2.
DNS 서버는 example.com에 대한 NS 레코드를 확인 후, 네임 서버(예: ns1.example.com)로 요청을 전달
3.
네임 서버는 A 레코드나 CNAME 레코드를 통해 example.com의 IP 주소를 반환
4.
사용자는 이 IP 주소로 웹사이트에 접속
SOA Record (Start of Authority)
•
SOA 레코드는 도메인의 DNS 정보를 관리하는 첫 번째 레코드로, 도메인의 DNS 설정과 관련된 중요한 정보(예: 메인 네임 서버와 DNS의 관리자 연락처 등)를 갖고있다.
•
주로 DNS 관리와 서버 동기화를 담당한다.
Route 53에서 새로운 Hosted Zone을 만들면 자동으로 생성되며, 주로 DNS 동작을 제어하는 역할을 한다.
•
Primary Name Server : 해당 도메인의 주 네임 서버를 지정
•
Responsible Party : 도메인의 관리자 이메일 주소를 정의한다.
•
서버 동기화와 관련된 정보 관리 (예: Secondary 서버가 정보를 어떻게 업데이트할지)
•
DNS 캐시 관리 (정보가 얼마나 오래 저장될지 설정)
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024013101 ; Serial Number
7200 ; Refresh (Secondary 서버가 Primary를 확인하는 주기)
900 ; Retry (Secondary 서버가 동기화 실패 후 재시도하는 간격)
1209600 ; Expire (Secondary 서버가 데이터를 보관하는 최대 기간)
86400 ; Minimum TTL (레코드의 최소 캐싱 시간)
)
Markdown
복사



