DNS
Domain Name System(server)
네트워크 상의 도메인 이름을 IP 주소를 매핑해 주는 시스템. 초기에 호스트 네임 별로 IP 주소 정보를 시스템의 hosts.txt 파일로 관리하던 것이 기술이 발달하고 관리 대상이 증가함에 따라, 분산 구조로 관리가 가능하게 개발된 시스템이다.
DNS Components
Domain Name Space
상위 노드와 그 노드 아래로 연결된 공간을 모두 상위 노드의 도메인이라고 한다. 노드에 레이블을 붙여 노드를 구분하는데 루트 도메인 계층인 루트 도메인의 레이블은 ‘null’이다. 모든 도메인은 루트 도메인으로부터 시작한다. 루트 도메인 네임은 하위 도메인들을 분배, 할당한다.
TLD (Top Level Domain)
루트 도메인 계층 하위에 해당하는 계층으로, 국가 할당 도메인과 국제적 업체 할당 도메인으로 분류된다.
-country code TLD: 국가를 나타내고, 하위 도메인들은 그 성격을 나타내는 도메인 네임을 사용한다.
-generic TLD: 국가 단위가 아닌, 국제적 단위로 사용되는 도메인으로, 전 세계를
기준으로 비영리, 상업적, 지역별 등 목적에 따라 분류된다.
Second Level Domain
도메인 등록 조직이나 국가에 속하는 기관의 성격으로 분류된다. gTLD 하위의 경우 최종 사용자(개인이나 조직)가 호스트 네임을 사용하여 도메인을 등록할 수 있다.
최종적으로 호스트 네임과 도메인 네임을 합쳐(Fully Qualified Domain Name) 완성된다. FQDN이
아닌 부분적인 경로만으로 식별 가능한 Partially Qualified Domain
Name을 사용하기도 한다. 이는 하나의 도메인 안에서만 사용할 수 있으며, w.naver.com 이라는 FQDN에서 w가 PQDN이 된다. 일반적으로 루트 도메인의 마지막에 오는 점은 주로 생략하며, DNS에서는
마지막에 오는 점을 사용하면 FQDN으로 인식한다.
레이블은 기업의 이름 등 특정 단어로 만든다. ccTLD 하위의
경우에는 호스트와 조직의 성격을 나타내는 도메인이 위치한다.
Sub Domain
Third Level Domain
Name Server
도메인 zone에 속하는 노드들의 정보를 리소스 레코드로 정의하여 저장한 호스트를 네임 서버라고 하며, 1개 이상이 존재한다. 해당 도메인 존의 정보를 가진 마스터 네임 서버와 보조로 슬레이브 네임 서버가 있다. 해당 도메인 존에 속하는 네임에 대한 질의가 올 경우 해당 도메인 존의 하위 네임 서버 주소를 응답하여 질의를 유도한다.
Resolver
Resource Record (RR)
리소스 레코드는 도메인 네임에 설정할 수 있는 데이터 타입이다. 도메인 네임을 키 값으로 하여 이를 도메인 네임에 필요한 데이터를 설정하는데, 사전에 정의된 데이터 타입과 포맷으로 해야 한다. 도메인 네임과 IP 주소 매치를 위해 사용된다.
-A 리소스 레코드: Host Address란 의미로 도메인 네임에 매치되는 IPv4를 정의한다.
Name |
Class |
TTL |
Type |
Address |
IN |
|
A |
202.xxx.xx.xxx |
Ø Class: IN(InterNet) 외에도 있지만 현재 대부분 IN사용
TTL: 요청된 리소스 리코드는 TTL에 명시된 시간 소요 후 삭제되어 재요청이 필요. 생략 시 SOA 리소스 레코드에 정의된 default
TTL 적용
Ø NS (Name Server) 리소스 레코드: 도메인 존의 네임서버를 정의.
Ø CNAME 리소스 레코드: Canonical
Name. 도메인 네임에 별칭을 매치. 해당
도메인 네임에 대한 리소스 레코드를 동일하게 접근하여 사용하므로, 정보를 CNAME이 상속받는다.
ex) www.naver.com IN
CNAME naver.com 참조 시 naver.com 리소스
레코드를 참조하여 정보를 반환한다.
-SOA 리소스 레코드: Start of a zone Of Authority. 존에 대한 권한 시작을 의미. 하나의 도메인 존에 반드시 하나의 SOA가 존재하는 특수 레코드로, 도메인 존의 default 설정과 마스터 네임 서버 지정 등에 사용된다.
Name |
TTL |
Class |
Type |
Master NS |
Responsible person |
Serial; Refresh; Retry; Expire; Minimum; |
naver.com |
|
IN |
SOA |
ns.naver.com |
admin.ns.naver.com |
(…) |
Name: 상위 도메인 존에게 위임 받은 도메인
존의 도메인 네임
마스터 네임 서버: NS 리소스 레코드와 A 리소스 레코드를 통해 도메인 존에 대한 리소스 레코드 생성, 변경, 삭제 등의 권한을 위임 받음
Responsible person: 도메인 존 관리 담당자 메일 주소
Serial: 도메인 존 파일에 대한 버전 정보. 정보
변경 시 증가. 이 값을 기반으로 슬레이브 네임 서버가 마스터 네임서버의 최신 리소스 레코드 정보를 획득한다.
Refresh: 슬레이브 네임 서버가 마스터 네임서버에 도메인
존 파일 버전을 질의하는 초단위 시간으로, 해당 시간만큼 대기
후 마스터에 질의
Retry: 슬레이브 네임 서버가 마스터 네임 서버에 질의
실패 시 재시도 하는 초 단위 시간으로 Refresh 보다 작은 값 작성
Expire: 슬레이브 네임 서버가 질의 실패 시 마스터로부터 얻은 정보의 유효 시간 초 단위 작성. 해당
도메인 존에 대한 질의 무시
Minimum: 도메인 존 파일에 있는 리소스 레코드들의 default
TTL 값 작성(초 단위)
SOA 끝 필드의 각 설정 값들은 기본 초 단위이며, D, H, W로 각각 일, 시간, 주로 작성 가능하다.
-MX 리소스 레코드: 수신 메일 서버를 정의. 호스트명이나 도메인 네임으로만 정의가 가능하다. IP 주소 입력 시 도메인으로 인식하여 존재하지 않는 도메인이 되어버린다. 레코드 입력 시 마지막에 .을 붙인 FQDN을 사용한다.
DNS work flow
ref: https://aws.amazon.com/ko/route53/what-is-dns/
1. Enter the domain on web browser
2. Find the IP address of the domain from local - ISP DNS resolver
3. ISP DNS resolver requests the IP address to DNS root name server.
DNS root server replies the TLD (Top Level Domain) server.
4. Try the domain to TLD server. (ex. .com, .kr, .jp, .net...)
TLD server replies the name server of the domain.
5. Request to the name server
6. Name server response with IP address of the domain
7. DNS resolver response with the IP address to browser
8. Browser request to the webserver with IP address, port, and URL
9. Web server responses to the end user
'System Engineering > Network' 카테고리의 다른 글
About https (0) | 2018.06.11 |
---|---|
HAProxy – 오픈 소스 로드 밸런서 (0) | 2018.05.24 |
포트 미러링 (0) | 2018.05.24 |
Difference between each layer (0) | 2018.05.16 |
CCNA note (0) | 2017.03.20 |