Chapter 10
Domain Name System
(DNS)
2
OBJECTIVES:
DNS의 목적
도메인 네임 스페이스와 영역
To describe the distribution of name spaces and define zones.
To discuss the use of DNS in the Internet and describe three categories of domains: generic, country, and reverse.
To discuss name-address resolution and show the two resolution methods: recursive and iterative.
To show the format of DNS message and how they can be compressed.
To discuss DDNS and DNSSEC
3
Chapter
Outline
4
10-1 NEED FOR DNS
-TCP/IP 계층에서 개체를 구별하기 위해 IP 주소를 사용
-인간이 4바이트의 IP 주소인 숫자를 외우기가 매우 어렵다.
-좀 쉬운 방법이 없을까? 도메인 네임
-도메인 네임
4바이트의 IP 주소 맵핑
5 Transport
Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
하부 네트워크에 의해 정의된 프로토콜 Ethernet, 토큰링(FDDI), 폴링(IBM 주전산기)
TCP UDP
Applications
SMTP FTP TELNET DNS SNMP NFS HTTP RPC
IP
ICMP IGMP
ARP RARP
Application
Transport
Internet
Network Access
Transport Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
Transport Transport
Data Link Data Link
Session Session
Application Application
Presentation Presentation
Network Network
Physical Physical
하부 네트워크에 의해 정의된 프로토콜 Ethernet, 토큰링(FDDI), 폴링(IBM 주전산기)
TCP UDP
TCP UDP
Applications
SMTP FTP TELNET DNS SNMP NFS HTTP RPC
Applications
SMTP FTP TELNET DNS SNMP NFS HTTP RPC
NFS RPC
IP
ICMP IGMP
ARP RARP
IP
ICMP IGMP
ARP RARP
Application
Transport
Internet
Network Access
TCP/IP 프로토콜에서의 DNS
Data
(46~1500) FCS(4) Destination
Address(6)
Source Address(6)
Ether Type(2) Preamble
(7)
SFD (1)
UDP 데이터 UDP
헤더
DNS 섹션 DNS
헤더
IP 데이터 IP 헤더
Data
(46~1500) FCS(4) Destination
Address(6)
Source Address(6)
Ether Type(2) Preamble
(7)
SFD (1)
UDP 데이터 UDP
헤더
DNS 섹션 DNS
헤더 DNS 섹션 DNS
헤더
IP 데이터 IP 헤더
TCP/IP 프로토콜에서의 DNS
7
DNS 캡슐화
DNS는 UDP 혹은 TCP를 사용한다. 어느 경우든 서버에 의해 사용되는 포트번호는 잘 알려진 포트번호 '53'이다.
응답 메시지의 크기가 512 byte보다 작으면 UDP를
사용하는데 이는 최대 UDP 패키지의 크기가 512 byte로 제한되기 때문이다. 응답 메시지의 크기가 512 byte
이상이면 TCP 연결이 사용된다. 대부분의 패킷이 UDP를
사용하며 UDP에 캡슐화 된다.
8
Host DNS Client
http://www.daum.net
DNS Server 211.32.117.18
Query message
Answer message Host
Host DNS ClientDNS Client http://www.daum.net
DNS Server DNS Server 211.32.117.18
Query message
Answer message
DNS 의 처리과정
9
트리 (tree)구조를 가지는 도메인 공간 구조
인터넷 도메인 네임 공간의 일부.
10-2 NAME SPACE
10
영역(zone)들로 분할된 DNS 명칭 공간 부분.
네임 서버들
11
Domain names and labels
12
Generic domains
13
10-3 RESOLUTION
도메인 네임을 주소로, 그 반대
14
Topics Discussed in the Section
Resolver
Mapping Names to Addresses
Mapping Addresses to Names
Recursive Resolution
Iterative Resolution
Caching
15
Recursive resolution
1
2 edu
3
8
9
root server 4
com 5
mcgraw.com 6
7
10 fhda.edu Client
1
2 edu
3
8
9
root server 4
com 5
mcgraw.com 6
7
10 fhda.edu
Client
16
Iterative resolution
5 edu
6 3 1 4
2 7
9 8 10
root server
fhda.edu
com mcgraw.com
Client
5 edu
6 3 1 4
2 7
9 8 10
root server
fhda.edu
com mcgraw.com
Client
17
10-4 DNS MESSAGES
DNS는 두 가지 종류의 메시지를 가진다.
∘ 질의 메시지(Query message)
: 헤더와 질의코드(question records)로 구성된다.
∘ 응답 메시지(Answer message)
: 헤더와 질의 레코드, 응답 레코드, 권한 레코드. 추가적인 레코드로
구성된다 .
18
(1) 질의 섹션(Question Section)
하나 이상의 질의(question) 레코드로 구성된다.
이는 질의와 응답 메시지에 모두 존재한다.
(2) 응답 섹션(Answer Section)
하나 이상의 자원(Resource) 레코드로 구성된다.
이는 응답메시지에 존재하고 서버로부터 클라이언트로의 응답을 포함한다.
(3) 권한 섹션(Authoritative Section)
하나 이상의 자원(Resource) 레코드로 구성된다. 이는 응답메시지에만 존재하며, 질의에 대한 하나 이상의 권한이 있는 서버에 대한 정보(도메인 이름)를 제공한다.
(4) 추가적인 정보 섹션(Additional Section)
하나 이상의 자원 레코드로 구성된다. 이는 응답 메시지에만 존재하며, 해석기에서 도움이 될만한 추가적인 정보들을 제공한다.
19
Header
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Identification Flags
Number of question records Number of answer records (All 0s in query message) Number of authoritative records
(All 0s in query message)
Number of additional records (All 0s in query message)
질의와 응답 메시지 모두 같은 헤더 형태를 가지며 질의 메시지의 경우 몇 개의 필드는 0으로 지정된다. 헤더는 12 byte이며, DNS 헤더의 형식
- 식별자(Identification)
클라이언트에서 질의에 대한 응답과의 비교를 위해 사용한다. 클라이언트는 질의를 보낼 때마다 서로 다른 식별자 번호를 사용한다.
- 플래그(Flags):16 bit의 서브 필드로 구성되어 있다.
20
Flags field
∙QR(query/response)
메시지의 종류를 나타낸다. '0'은 질의(query), '1'은 응답(response).
∙OpCode
질의나 응답의 종류를 나타낸다
('0'이면 표준, '1'이면 인버스(inverse), '2'이면 서버상태 요청).
∙AA(authoritative answer)
'1'이면 네임 서버가 권한이 인정된 서버임을 나타낸다.(응답 메시지에서만 사용)
∙TC(truncated)
'1'이면 응답이 512 byte 이상이라 512 byte로 잘리어졌음을 나타낸다.
이는 DNS가 UDP서비스를 사용할 때 사용된다.
∙RD(recursion desired): 재귀 조회와 반복 조회가 있다.
-재귀 조회(recursive query) : '1'로 설정 된 경우 네임 서버에 대해 자기 자신이 조회하도록 처리를 지시한다.
-반복 조회(interactive query) :
'0'으로 설정 된 경우 요구된 네임 서버가 IP 주소를 못 찾으면, 책임지고 다른 서버에게 그 정보를 전해 다른 서버가 찾아 응답하도록 한다.
21
∙RA(recursion available)
서버가 재귀를 지원하면 '1'로 설정된다. 대부분의 서버는 이를 지원한다.
∙rCode
응답에 들어가는 오류의 상태를 보여준다. 권한이 인정된 서버만 이러한 판단을 내릴 수 있다.
값 의 미
0 No error
1 Format error
2 Problem at name server 3 Domain reference problem 4 Query type not supported 5 Administratively prohibited 6 ~ 15 Reserved
22
(3) 질의 레코드 수(Number of question records) 메시지의 질의 섹션내의 질의 수를 포함한다.
(4) 응답 레코드의 수(Number of answer records)
메 시 지 의 응답섹션에 있는 응답레코드의 수를 포함한다( 질의 메시지에서는 0이다).
(5) 권한 레코드의 수(Number of authority records)
응답 메시지의 권한 섹션내의 권한 레코드의 수를 포함한다(질의 메시지에서는 0이다).
(6) 추가 레코드의 수(Number of additional records)
응답 메시지의 추가 섹션에 있는 추가 레코드의 수를 포함한다(질의 메시지에서는 0이다).
23
▪캐싱(Cashing)
서버는 자신의 도메인에 있지 않은 이름에 대한 문의를 받을 때마다, 서버 IP주소에 대한 데 이터베이스 검색을 요구한다. 이 검색 시간의 감소가 효율증가를 가져온다. DNS는 이를 위 해 캐싱(Cashing)이라는 절차를 이용한다. 서버가 다른 서버에게 매핑 정보를 요청하고 응 답을 수신하면 이 정보를 클라이언트에게 전달하기 전에 캐시 메모리에 저장한다. 동일한 혹은 다른 클라이언트가 동일한 매핑을 문의해오면 서버는 자신의 캐시 메모리로 검색한 후 문제를 해결한다.
인터넷상에서 DNS 트래픽을 줄이기 위해서 사용
모든 네임 서버는 캐시를 사용
변환기가 아닌 서버에서 관리.
시스템이 가동되고 있는 동안 항상 메모리에 두고 프로그램(네임서버)으로 관리.
캐시는 서버에서 동작하는 모든 응용에 가능.
이 네임서버를 이용하는 사이트의 다른 모든 호스트도 이 서버의 캐시를 공유.
24
10-5 TYPES OF RECORDS
DNS에서는 두 가지 종류의 레코드가 사용된다.
질의 레코드는 질의와 응답 메시지의 질의 섹션에 사용된다.
자원 레코드는 응답 메시지의 응답, 권한 및 추가 정보 섹션에 사용된다 .
25
Topics Discussed in the Section
Question Record
Resource Record
26
Question record format
질의 레코드의: 클라이언트가 서버로부터 정보를
얻기 위해 사용한다.
27
Query name format
이 필드는 가변길이를 가지며 도메인 네임을 포함한다.
28
질의 종류(Query Type)
질의 종류를 나타낸다. 가장 일반적인 조회 유형은 'A'형으로
IP주소가 조회 이름(query name)에 대해 요구되고 있다는 것을 의미한다. 'PTR'형은 IP 주소에 대응되는 이름을 요구한다.
29
∙질의 클래스(Query Class)
DNS를 사용하는 특정 프로토콜을 정의한다. 보통 '1'이며, 이 값은 인터넷 주소(IP)를 의미한다.
30
Resource record format
31
∙도메인 네임(Domain name)
가변 길이를 가지며 도메인 네임을 포함한다. 'andong.ac.kr'
∙도메인 유형(Domain Type)
질의 섹션에 있는 질의 종류 필드와 동일하나 마지막 두 종류만 허락되지 않는다.
∙도메인 클래스(Domain Class) :
질의 섹션에 있는 클래스 필드와 동일하다.
∙수명(Time to Live) :
이 정보가 로컬 호스트에 캐시되는 경우에 얼마간 이용될 수 있는가를 나타내며 보통 2일간을 나타낸다.
∙자원 데이터의 길이(Resource Data Length)
자원 데이터의 길이를 나타내는데 요구한 정보의 유형에 따라 다르다.
유형 1(A 레코드)일 경우 자원데이터는 4-byte IP 주소이다.
∙자원 데이터(Resource Data)
가변길이를 가지며 응답 섹션의 경우 질의에 대한 응답을 포함하거나 권한 섹션의 경우 권한이 있는 서버의 도메인 네임을 포함하며
추가 정보 섹션의 경우 추가 정보를 포함한다.
이 필드의 형태 및 내용은 종류 필드의 값에 의존한다.
32
10-6 COMPRESSION
도 메 인 네 임 이 계 속 DNS 필 드 에 나 타 나 면 , 옵셋포인터(offset pointer)로 표현하여 압축한다.
보통 도메인 네임이 question record에 위치하며,
이것이 응답 레코드에 반복되며, 2-byte offset
pointer로 지정한다.
33
Format of an offset pointer
34
A resolver sends a query message to a local server to find the IP address for the host “chal.fhda.edu.”. Make format of the query and response messages separately.
-shows the query message sent by the resolver. The first 2 bytes show the identifier (1333)16. It is used as a sequence number and relates a response to a query.
-The next bytes contain the flags with the
value of 0x0100 in hexadecimal. In binary it is 0000000100000000, but it is more meaningful to divide it into the fields as shown below:
Example 10.1
35
Query message
36
Following figure shows the response of the server. The response is similar to the query except that the flags are different and the number of answer records is one. The flags value is 0x8180 in hexadecimal. In binary it is 1000000110000000, but again we divide it into fields as shown below:
Example 10.1 Continued
37
Response message
38
다음 환경의 자기 PC에서 구글(www.google.co.kr) 접속 시 DNS 질의와
응답 패킷을 UDP프로토콜과 함께 캡쳐 하고 분석하라Example 10.2
① ipconfig /all (나의 IP, MAC, 디폴트 게이트웨이, DNS 서버 주소 확인)
39
⑦ DNS Query 패킷(구글에 접속하기 위해 DNS 서버에 구글의 IP 주소를 물어봄. UDP 패킷에 DNS 메시지 포함됨.)
DNS Query 패킷(구글에 접속하기 위해 DNS 서버에 구글의 IP 주소를
물어봄 . UDP 패킷에 DNS 메시지 포함됨.)
40
(1) DNS Query 패킷(UDP 헤더)
41
⑦(2) DNS Query 패킷(DNS 메시지 요청(query))
(2) DNS Query 패킷(DNS 메시지 요청(query))
42
DNS Response 패킷(DNS 서버에서 구글의 IP 주소를 찾아 나에게 응답(Response)을 준다)
43
(1) DNS Response 패킷(UDP 헤더)
44
(2) DNS Response 패킷(DNS 메시지 응답(response))
45