위로
아래
DNS
DNS (Domain Name System)
- 도메인 주소를 IP 주소로 변환하는 역할
- 자주 사용되는 IP를 숫자가 아니라 기억하기 쉬운 문자로 표현하기 위해 사용 (202.179.177.21 -> www.naver.com)
- 내부 시스템의 서비스 간 연결에 사용 (IP 변경이 필요한 경우에도 서비스에서 IP를 일일이 바꾸는 것이 아니라, 서비스에서는 도메인으로 써두고 DNS 서버에서 도메인에 해당하는 IP 주소만 바꿔서 사용할 수 있다)
DNS 구성 요소
Domain Name Space (도메인 네임 스페이스)
- DNS가 저장 관리하는 계층적 구조를 의미
- 도메인 이름을 분산 저장한다
- 계층적 도메인 레벨 (Hierarchical Domain Level)
- 역트리 구조를 가지고 있다 (root -> Top level 도메인, Second level 도메인, Third level 도메인)
- 도메인 계층을 구별하는 구분자는 . (점)
- 도메인 최대 계층 개수 : 128 계층, 계층별 최대 길이 : 63바이트, 전체 도메인 네임의 길이는 최대 255바이트
- 알파벳, 숫자, - 만 사용할 수 있고 대소문자 구별이 없다
- 하나의 서버가 아니라, 여러 개의 DNS 서버가 존재하고, 각각 계층을 따로 검색해주기 때문에, 계층 구조로 나뉘어져 있다.
- FQDN (Full Qualified Domain Name) : 전체 도메인
Name Server (네임 서버)
- 권한 있는 DNS 서버
- Domain Name Space의 트리구조를 가지고 있는 서버
- 구분
- Root DNS Server : DNS 서버의 최상위 네임 서버. 전 세계에 13개가 있다. DNS 해석 요청에 대해 적절한 TLD 네임 서버 정보를 반환
- Top - Level Domain (TLD) DNS Server : 도메인 등록 기관이 관리하는 서버. com, net, co.kr 등
- Second - Level Domain (SLD) DNS Server (Authoritative DNS Server) : 실제 개인 도메인과 IP 주소의 관계가 기록되는 서버. 도메인, 호스팅 업체의 네임 서버를 말한다.
- Anauthoritative DNS Server : 권한이 없는 DNS 서버로, 리졸버 서버, 리컬시브 서버, 리커서 등이 있다.
DNS Resolver (리졸버)
- 사용자의 컴퓨터나 네트워크에 위치한 DNS 클라이언트
- 사용자가 도메인 이름을 입력하면 해당 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청하는 역할
- DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공한다
DNS 동작 방식
DNS Quary
- 사용자가 도메인 이름을 입력하고 IP 주소를 얻기 위해서 DNS 서버에 보내는 요청
- 도메인을 IP 주소로 변환하려면 DNS 서버에 쿼리하는 과정을 거쳐야 한다
- DNS Resolver가 사용자의 컴퓨터에서 생성하고 DNS 서버에 전송
- 일반적으로 UDP를 통해 전송된다.
- 도메인을 쿼리하면 Local에 있는 DNS 캐시 정보를 먼저 확인한 후 DNS 서버에 쿼리를 한다.
DNS 동작 방식
- 사용자가 도메인 네임을 요청한다
- 정적 쿼리를 통해 hosts 파일에 도메인과 IP 주소가 매핑된 캐시가 있는지 확인한다. (Local 방식)
- 동적 쿼리를 통해 기존 DNS를 조회하여 해당 도메인의 캐시가 있는지 확인한다.
- 둘 다 없다면 DNS 서버에 쿼리를 보내서 IP 주소를 응답받는다
- 응답 받은 IP 주소의 캐시를 남기고 응답을 수행한다.
DNS Delegation (도메인 위임)
- 자신이 가진 도메인 관리 권한을 다른 곳으로 일부 위임해 세부 레코드를 관리하도록 하는 것
- CDN이나 GSLB를 사용하는 것이 대표적인 경우
TTL (Time To Live)
- DNS에 질의해 응답 받은 결과값을 캐시에서 유지하는 시간
- 도메인 정보 갱신 빈도에 따라 TTL 값을 적절히 조절하는 것이 좋다.
- 윈도우 기본 TTL : 3,600초 / 리눅스 기본 TTL : 10,800초
- DNS 서버에서 TTL을 많이 늘려서 캐시를 많이 유지하면 DNS 재귀적 쿼리로 인한 응답 시간이 줄어들어 네트워크 응답 시간이 단축된다.
- TTL 값이 너무 크면 새로 변경된 DNS 정보는 새로 입력되는 게 아니라 덮어쓰기를 해야하므로 그만큼 정보 갱신이 지연된다.
- TTL 값이 너무 작으면 DNS 정보 갱신이 빨라지므로 DNS 쿼리량이 늘어나 DNS 서버에 부하가 증가할 수도 있다.
White Domain (화이트 도메인)
- 불법적인 스팸 등을 차단하기 위하여 정상적인 도메인을 인증 관리하는 제도
- RBL (Realtime Blackhole List, Realtime Blocking List) : 실시간 블랙리스트 (스팸 메일 발송하는 사이트를 블랙리스트 처리해 관리)
- SPF (Sender Policy Framework) : 도메인에 SPF 레코드가 설정되어 있어야 해당 도메인의 메일을 확인해 화이트도메인 처리를 할 수가 있다.
- KISA의 PBL 사이트에서 확인
DNS 레코드
DNS Record
- DNS 서버가 패킷을 받았을 때 어떤 식으로 처리할지를 나타내는 지침
- DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 설정 문자
종류
A (IPv4 호스트) : 도메인 주소를 IPv4 주소로 매핑
AAAA (IPv6 호스트) : 도메인 주소를 IPv6 주소로 매핑
CNAME (별칭) : 도메인 주소에 대해 별칭 이름을 사용하게 해주는 레코드 (예시 : www)
SOA (권한 시작) : 본 영역 데이터에 대한 권한
NS (도메인의 네임 서버) : 본 영역에 대한 네임 서버
MX (메일 교환기) : 도메인에 대한 메일 서버 정보(Mail eXchanger)
PTR (포인터) : IP 주소를 도메인에 매핑(역방향)
TXT (레코드) : 도메인에 대한 일반 텍스트