Network
DNS란 무엇이며 어떻게 동작하는가?
WoongIT
2022. 7. 27. 09:41
반응형
SMALL
DNS(Domain Name System)
- TCP/IP 네트워크 서비스인 DNS가 등장
- 네트워크 상에 존재하는 모든 PC는 IP 주소가 있다.
- 그러나 모든 IP 주소가 도메인 이름을 가지는 것은 아니다.
DNS 서버의 종류
DNS 서버는 크게 권한 없는 네임 서버와 권한 있는 네임 서버로 나뉜다.
권한 없는 네임 서버 (non-Authoritative Name Server)
Recursive DNS Server (리커시브; 재귀)
- 인터넷 사용자가 가장 먼저 접근하는 DNS 서버이다. 매번 3개의 DNS 서버를 거친다면 효율이 떨어지므로, 한 번 DNS 서버에 요청해 얻은 데이터를 일정 기간 동안 캐시라는 형태로 저장
- 직접 도메인과 IP 주소의 관계를 기록/저장/변경하지 않고 캐시만을 보관하기 때문에, Authoritative와 비교되는 의미로 non-Authoritative, Recursive라는 이름을 붙었다.
권한 있는 네임 서버 (Authoritative Name Server)
Root DNS Server
- ICANN이 직접 관리하는 서버로,
- TLD(최상위 도메인) DNS 서버 IP 주소들을 저장해 두고 안내하는 역할을 한다.
TLD (최상위 도메인) DNS Server
- 도메인 등록 기관이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해 두고 안내하는 역할을 한다.
Authoritative DNS Server (어쏘러테이티브; 권한있는)
- 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버이다.
DNS 리소스 레코드
- DNS 서버는 데이터베이스 서버의 한 유형이며
- 클라이언트로부터 질의를 받았을 때 그에 맞는 데이터를 응답해야 한다.
- 데이터베이스의 한 항목(Row)을 DNS 서버에서는 리소스 레코드라고 부른다.
도메인(Domain)
- 통상적으로 도메인의 가장 끝에 있는 점(.)은 생략되어 있다.
- 이것을 `Root`도메인이라고 부른다.
- Root 도메인의 직속 하위 도메인을 Top-level 도메인이라고 부르며 com, net, co .kr 등이 있다.
- Top-level 도메인 직속 하위 도메인은 Second-level도메인이라고 부르며
- 그 직속 하위 도메인을 Sub도메인이라고 부른다.
DNS의 규칙
- 직속 하위 레벨의 DNS 서버 리스트를 알고 있어야 한다.
- 모든 컴퓨터는 적어도 Root 도메인의 DNS 서버를 알고 있어야 한다.
질의메시지
- 클라이언트가 DNS 서버에게 질의를 보낼 때, 도메인 주소만 보내는 것이 아니라 다음과 같은 정보도 포함해서 보낸다.
- Query Name String: 요청하고자 하는 도메인 이름
- Type: 질의의 데이터 타입. 타입에 따라 응답 정보의 내용이 달라진다.
- Class: 현재는 인터넷만 사용하므로 기본으로 IN 값을 보낸다.
A 레코드 (A Record)
- DNS에 저장되는 정보의 타입으로 도메인 주소와 서버의 IP 주소가 직접 매핑시키는 방법
- IP 직통 방법이라 접속이 빠르다
- 장점) 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있다
- 단점) IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있다
CNAME (Canonical Name)
- 도메인 주소를 또 다른 도메인 주소로 매핑 시키는 형태의 DNS 레코드 타입이다.
- 장점) IP 주소가 자주 변경되는 환경에서 유연하게 대응
- 단점) 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청 → 성능저하
naver.com 192.168.0.1 dev.plusblog.co.kr 172.17.0.1 develop.plusblog.co.kr dev.plusblog.co.kr.
- 사용자가 develop.plusblog.co.kr 주소를 요청
- DNS 서버는 dev.plusblog.co.kr을 리턴
- 사용자는 다시 dev.plusblog.co.kr 정보를 DNS 서버에 요청
- DNS 서버는 이제 172.17.0.1 을 리턴
A | 도메인에 대한 IP 정보를 담고 있습니다. |
ANY | 도메인에 대한 모든 정보를 질의합니다. (DNS 증폭 DRDOS 공격에 악용) |
CNAME | 특정 A레코드에 대한 별칭을 지정한다. |
MX | Mail eXchange의 약자 메일 서버에 대해 질의합니다. (해당 Domain의 Mail서버 정보) |
NS | Name Server에 대한 질의를 합니다. |
SOA | 해당 Domain 관리 권한 및 Zone Transfer(영역 전송)과 관련된 정보가 들어 있다. |
HINFO | Host에 대한 정보의 질의를 합니다. |
PTR | 역방향 조회에 사용되는 레코드, 특정 IP주소에 대한 FQDN 정보를 가지고 있다. |
DNS 처리 순서
- 브라우저에서 Nesite.com을 검색한 뒤, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청한다. (브라우저 기본 DNS 설정은 통신사 DNS 서버이다.)
- ISP 서버에서는 캐시 데이터가 없다는 것을 확인하고 Root DNS 서버에게 어디로 가야 하는지 요청한다. (만약 캐시가 있다면 8번 단계로 건너뛴다.)
- Root DNS 서버는 TLD DNS 서버 주소만 관리하므로 ***.com 도메인을 보고, com 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내한다.
- ISP 서버는 com 서버에게 어디로 가야 하는지 다시 요청한다.
- com 서버는 가비아 DNS 서버가 해당 도메인이 관리되고 있다는 사실을 확인하고, 가비아 DNS 서버 주소를 안내한다.
- ISP 서버는 가비아 서버에게 다시 요청한다.
- 가비아 서버는 요청 받은 도메인 주소의 IP 주소를 확인하고 알려준다. 동시에 ISP 서버는 해당 정보를 캐시로 기록한다.
- ISP 서버는 브라우저에게 알아 낸 IP 주소를 안내한다.
요약
DNS란 ?
- TCP/IP 네트워크 상에서 사람이 기억하기 쉽게 문자로 만들어진 도메인을 숫자로 된 IP 주소로 바꾸는 서버를 DNS라고 한다.
DNS 서버에게 IP 주소를 요청할 때 UDP를 사용하는 이유는?
- DNS는 신뢰성보다 속도가 더 중요하고, 많은 클라이언트를 수용하는 것을 필요로 한다.
- 따라서 속도가 빠르고, 연결 상태를 유지하지 않고 정보 기록을 최소화하여 많은 클라이언트 수용이 가능한 UDP를 사용한다.
DNS 서버의 종류에 대해 설명하라.
- Root DNS Server : ICANN이 직접 관리하는 서버,
- TLD(최상위 도메인) DNS 서버 IP 주소들을 저장해 두고 안내
- TLD DNS Server, : 도메인 등록 기관이 관리하는 서버로,
- Authoritative DNS 서버 주소를 저장해 두고 안내하는 역할을 한다.
- Authoritative DNS Server : 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버
- Recursive DNS Server : 인터넷 사용자가 가장 먼저 접근하는 DNS 서버, 캐시라는 형태로 저장
DNS 서버를 여러 종류로 나누는 이유는?
- 존재하는 도메인 수가 많기 때문에 하나의 DNS 서버만 사용한다면 성능, 유지 관리 등 많은 문제가 생김
- 따라서 DNS 서버 종류를 계층화해 트래픽을 분산하고 유지 및 관리
반응형
LIST