가. DNS 개요
- DNS (Domain Name System) : Domain Name System의 약자 DNS는 도메인 네임 시스템(인터넷의 전화번호부)를 뜻함
- 사용자가 네이버 또는 Google 과 같은 도메인 이름을 웹 브라우저에 입력하는 경우 DNS는 해당 사이트의 올바른 IP 주소를 찾는 역할을 함
- DNS 는 전세계적으로 약속된 규칙을 공유 → 상위 기관에서 인증된 기간에게 도메인을 생성하거나 IP 주소로 변경 할 수 있는 권한 부여
- DNS 구성 요소
- 도메인 네임 스페이스 (Domain Name Space) : DNS가 저장 관리하는 계층적 구조
- 도메인 네임 스페이스라는 규칙으로 도메인 이름 저장을 분산
- 네임 서버 (Name Server) : 권한 있는 DNS 서버
- 네임서버가 해당 도메인 이름의 IP 주소를 찾음
- 리졸버 (Resolver) : 권한 없는 DNS 서버
- DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행
- 도메인 네임 스페이스 (Domain Name Space) : DNS가 저장 관리하는 계층적 구조
1. DNS의 역할과 중요성
- 역할
- DNS 는 도메인 이름을 웹 브라우저에 입력하는 경우 해당 사이트의 올바른 IP 주소를 찾는 역할을 수행
- 중요성
- DNS는 사람이 읽을 수 있는 웹사이트 이름을 컴퓨터가 읽을 수 있는 IP 주소로 변환함으로써 사람들이 원하는 웹사이트를 쉽게 찾고 액세스할 수 있도록 함
- DNS는 또한 네트워크 보안에서도 중요한 역할
- DNS는 호스트 이름을 IP 주소로 변경함으로써 단일 서버의 부하를 줄이기 위해 서버가 등록된 호스트 이름을 공유할 수 있도록 함
- DNS 캐싱은 브라우저에서 기록(페이지 및 웹사이트에서 사용자가 수행하는 작업)을 저장하여 나중에 사용할 수 있도록 하여 웹사이트 성능을 향상
- 주 방문하는 웹사이트의 페이지 로딩 시간을 단축
2. 도메인 네임과 IP 주소 간의 변환
- 브라우저 → DNS Resolver
- 사용자가 웹 브라우저에 도메인 이름을 입력하면, DNS Resolver는 우선 자신의 캐시에 해당 도메인 이름에 대한 IP 주소가 저장되어 있는지 확인
- 캐시에 저장된 IP 주소가 있다면, DNS Resolver는 바로 해당 IP 주소를 반환
- 하지만 캐시에 저장된 IP 주소가 없거나, 캐시에 저장된 IP 주소가 만료되었다면, DNS Resolver는 DNS 서버에 요청
나. DNS 레코드 종류
1. A 레코드, CNAME, MX 레코드 등
종류 | 설명 |
|
|
A
|
해당 도메인 주소가 가지는 IP (1:1) |
CNAME
|
별칭을 부여한 특정 도메인 주소 |
MX
|
메일을 주고 받기 위한 서비스 레코드 |
TXT
|
일반적인 텍스트 내용을 기록, String |
SOA
|
도메인의 시작점(Start Of Authority) |
HINFO
|
호스트의 CPU 정보와 운영체제 정보 |
MINFO
|
메일박스와 메일리스트 정보 |
PTR
|
IP 주소에 대한 호스트명 |
UINFO
|
사용자 정보 |
ANY
|
호스트에 관련된 모든 레코드들의 정보 |
AAAA
|
IPv6 버전의 A 레코드 |
SRV
|
비슷한 TCP/IP 서비스를 제공하는 다수 서버 위치 정보 |
NS
|
영역을 풀이할 수 있는 dns 서버 목록 (Name Server) |
- A 레코드
- DNS에 저장되는 정보의 타입으로 도메인 주소와 서버의 IP 주소를 직접 매핑시키는 방법
- 도메인 tistory.com을 예로 든다면, A record는 ‘티스토리 도메인은 IP 주소 121.53.105.234 에 연결되어 있다' 라고 말하는 역할
- A 레코드는 반드시 도메인과 아이피 간의 일대일 매칭이 될 필요는 없음 → 도메인 매핑 설정에 따라서 일대다 / 다대일도 될 수 있음
- 실제로 naver.com의 A 레코드를 조회하였을 때 223.130.200.104 / 223.130.200.107 등 여러개의 IP 주소가 매핑 되어 있음
- TTL (TIme To Live) : TTL 이라는 옶션값은 DNS서버나 사용자 PC의 캐쉬(메모리)에 저장되는 시간을 말함
- CNAME (Canonical Name record)
- Cname 레코드는 도메인 별명 레코드라고 부르며, 도메인 주소를 또 다른 도메인 주소로 이중 매핑 시키는 형태의 DNS 레코드 타입
- 쉽게 말해, 도메인 주소로 연결한 부분에 다시 한번 도메인 주소로 연결하는 방식
- CNAME 레코드는 무조건 다른 도메인 주소를 등록해야 하며, A 레코드처럼 직접 IP 주소를 등록해서는 안됨
- MX (Mail Exchanger)
- MX 레코드는 메일 서버 레코드이며, 해당 도메인과 연동되어 있는 메일서버를 확인하는데 사용하는 레코드
- MX 레코드가 해당 도메인에 설정되어 있어야, 해당 도메인을 이메일 주소로 사용할 수 있음
- MX 레코드는 일반적으로 도메인을 구입한 회사 홈페이지(예: 호스팅케이알, Cafe24, 가비아 등)에서 설정 할 수 있음
- 해당 명령어로 CMD에서 도메인의 MX레코드를 확인할 수 있음 → nslookup -type=mx {도메인}
- TXT (TEXT)
- TXT 레코드는 텍스트를 입력할 수 있는 레코드
- 메모를 남기는 용도
- SOA (Start of Authority)
- SOA 레코드는 네임 서버가 해당 도메인에 관하여 인증된 데이터를 가지고 있음을 증명하는 레코드
- SOA 레코드는 기본 이름 서버, 도메인 관리자의 전자 메일, 도메인 일련 번호 및 영역 새로 고침과 관련된 여러 타이머를 포함하여 DNS 영역에 대한 핵심 정보를 저장
- SOA 레코드가 없는 도메인은 네임서버에서 정상적으로 동작하지 않게 됨 → SOA 레코드는 도메인당 1개
- 예시
- Mname / primary name : 도메인에 대한 기본 호스트네임
- RName / mail addr : 관리자의 이메일 주소, 일반적인 이메일 형식인 @가 아니라 마침표
- serial : 도메인의 갱신 버전 번호 → 일반적으로 날짜 (YYYYMMDD) 형식
- refresh : 도메인 영역의 데이터 갱신ㄴ 여부를 체크하는 주기(초 단위)
- retry : (장애 등의 이유로) refresh 주기로 체크하지 못했을 경우, 체크를 재시도하는 주기(초 단위)
- expire : retry의 주기로 체크를 수차례 반복하다가, 도메인을 더 이상 신뢰할 수 있는 영역이라고 간주하지 않아 서비스를 중단하는 최대 기간
- minimum : 도메인을 찾을 수 없는 경우, 네임 서버가 도메인의 부재정보를 캐싱하는 시간
- HINFO (Host Information)
- HINFO 레코드는 호스트에 대한 일반 정보를 얻는 데 사용 됨 → CPU 및 OS 유형을 얻을 수 있음
- HINFO 레코드는 두 호스트가 통신 하기를 원할 때 운영 체제 특정 프로토콜을 사용할 수 있는 가능성을 제공
- 일반적으로 보안상의 이유로 HINFO 레코드는 공용 서버에서 사용되지 않는 편이다.
- PTR (Pointer)
- IP 주소에 대한 도메인 주소를 확인할 수 있는 레코드
- A 레코드의 반대 방향인 레코드라 볼 수 있음
- A 레코드가 도메인네임에 대한 질의를 IP로 응답하면, PTR 레코드는 IP에 대한 질의를 도메인네임으로 응답
- 단, A 레코드와 달리, PTR 레코드는 1개의 IP에 1개의 도메인 네임만 가질 수 있다는 점이 다름
- AAAA
- AAAA 레코드는, A 레코드의 IPv6 버전이라고 보면 됨
- A의 확장형으로 도메인에 IPv6 주소가 매핑되어 있는 레코드
- NS (Name Server)
- NS 레코드는 네임 서버 레코드로 도메인에 대한 네임서버의 권한을 누가 관리하고 있는지를 알려주는 레코드
- 예를 들어, example.co.kr 이라는 도메인을 cafe24 업체에서 구입해서 사용하고 있다고 하면, example.co.kr 도메인을 관리하는 네임 서버는 당연히 cafe24가 되게 되는데
이때, NS 레코드는 어떤 도메인에 대한 처리를 다른 도메인 네임 서버에 위임하는 기능을 가진 레코드
다. DNS 서버의 작동 원리
1. 권한 있는 DNS 서버와 재귀적 DNS 서버
- 권한 있는 DNS 서버
- 특정 도메인 이름에 대한 공식 DNS 레코드를 저장하고 제공
- 재귀 DNS 서버
- 권한 있는 DNS 서버에서 정보를 재귀적으로 가져와서 사용자 쿼리를 해결하는 역할을 담당
'INFRA' 카테고리의 다른 글
네트워크 보안 기초 (1) | 2024.09.05 |
---|---|
서버 설정과 관리 (0) | 2024.09.05 |
네트워크 프로토콜 (0) | 2024.09.05 |
IP주소와 서브네팅 (0) | 2024.09.05 |
네트워크 기본 개념 (0) | 2024.09.05 |