• 검색 결과가 없습니다.

Chapter 10

N/A
N/A
Protected

Academic year: 2022

Share "Chapter 10"

Copied!
45
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Chapter 10

Domain Name System

(DNS)

(2)

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)

3

Chapter

Outline

(4)

4

10-1 NEED FOR DNS

-TCP/IP 계층에서 개체를 구별하기 위해 IP 주소를 사용

-인간이 4바이트의 IP 주소인 숫자를 외우기가 매우 어렵다.

-좀 쉬운 방법이 없을까?  도메인 네임

-도메인 네임 

4바이트의 IP 주소 맵핑

(5)

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

(6)

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)

7

DNS 캡슐화

DNS는 UDP 혹은 TCP를 사용한다. 어느 경우든 서버에 의해 사용되는 포트번호는 잘 알려진 포트번호 '53'이다.

응답 메시지의 크기가 512 byte보다 작으면 UDP를

사용하는데 이는 최대 UDP 패키지의 크기가 512 byte로 제한되기 때문이다. 응답 메시지의 크기가 512 byte

이상이면 TCP 연결이 사용된다. 대부분의 패킷이 UDP를

사용하며 UDP에 캡슐화 된다.

(8)

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)

9

트리 (tree)구조를 가지는 도메인 공간 구조

인터넷 도메인 네임 공간의 일부.

10-2 NAME SPACE

(10)

10

영역(zone)들로 분할된 DNS 명칭 공간 부분.

네임 서버들

(11)

11

Domain names and labels

(12)

12

Generic domains

(13)

13

10-3 RESOLUTION

도메인 네임을 주소로, 그 반대

(14)

14

Topics Discussed in the Section

Resolver

Mapping Names to Addresses

Mapping Addresses to Names

Recursive Resolution

Iterative Resolution

Caching

(15)

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)

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)

17

10-4 DNS MESSAGES

DNS는 두 가지 종류의 메시지를 가진다.

∘ 질의 메시지(Query message)

: 헤더와 질의코드(question records)로 구성된다.

∘ 응답 메시지(Answer message)

: 헤더와 질의 레코드, 응답 레코드, 권한 레코드. 추가적인 레코드로

구성된다 .

(18)

18

(1) 질의 섹션(Question Section)

하나 이상의 질의(question) 레코드로 구성된다.

이는 질의와 응답 메시지에 모두 존재한다.

(2) 응답 섹션(Answer Section)

하나 이상의 자원(Resource) 레코드로 구성된다.

이는 응답메시지에 존재하고 서버로부터 클라이언트로의 응답을 포함한다.

(3) 권한 섹션(Authoritative Section)

하나 이상의 자원(Resource) 레코드로 구성된다. 이는 응답메시지에만 존재하며, 질의에 대한 하나 이상의 권한이 있는 서버에 대한 정보(도메인 이름)를 제공한다.

(4) 추가적인 정보 섹션(Additional Section)

하나 이상의 자원 레코드로 구성된다. 이는 응답 메시지에만 존재하며, 해석기에서 도움이 될만한 추가적인 정보들을 제공한다.

(19)

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)

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)

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)

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)

23

▪캐싱(Cashing)

서버는 자신의 도메인에 있지 않은 이름에 대한 문의를 받을 때마다, 서버 IP주소에 대한 데 이터베이스 검색을 요구한다. 이 검색 시간의 감소가 효율증가를 가져온다. DNS는 이를 위 해 캐싱(Cashing)이라는 절차를 이용한다. 서버가 다른 서버에게 매핑 정보를 요청하고 응 답을 수신하면 이 정보를 클라이언트에게 전달하기 전에 캐시 메모리에 저장한다. 동일한 혹은 다른 클라이언트가 동일한 매핑을 문의해오면 서버는 자신의 캐시 메모리로 검색한 후 문제를 해결한다.

󰋻 인터넷상에서 DNS 트래픽을 줄이기 위해서 사용

󰋻 모든 네임 서버는 캐시를 사용

󰋻 변환기가 아닌 서버에서 관리.

󰋻 시스템이 가동되고 있는 동안 항상 메모리에 두고 프로그램(네임서버)으로 관리.

󰋻 캐시는 서버에서 동작하는 모든 응용에 가능.

󰋻 이 네임서버를 이용하는 사이트의 다른 모든 호스트도 이 서버의 캐시를 공유.

(24)

24

10-5 TYPES OF RECORDS

DNS에서는 두 가지 종류의 레코드가 사용된다.

질의 레코드는 질의와 응답 메시지의 질의 섹션에 사용된다.

자원 레코드는 응답 메시지의 응답, 권한 및 추가 정보 섹션에 사용된다 .

(25)

25

Topics Discussed in the Section

Question Record

Resource Record

(26)

26

Question record format

질의 레코드의: 클라이언트가 서버로부터 정보를

얻기 위해 사용한다.

(27)

27

Query name format

필드는 가변길이를 가지며 도메인 네임을 포함한다.

(28)

28

질의 종류(Query Type)

질의 종류를 나타낸다. 가장 일반적인 조회 유형은 'A'형으로

IP주소가 조회 이름(query name)에 대해 요구되고 있다는 것을 의미한다. 'PTR'형은 IP 주소에 대응되는 이름을 요구한다.

(29)

29

∙질의 클래스(Query Class)

DNS를 사용하는 특정 프로토콜을 정의한다. 보통 '1'이며, 이 값은 인터넷 주소(IP)를 의미한다.

(30)

30

Resource record format

(31)

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)

32

10-6 COMPRESSION

도 메 인 네 임 이 계 속 DNS 필 드 에 나 타 나 면 , 옵셋포인터(offset pointer)로 표현하여 압축한다.

보통 도메인 네임이 question record에 위치하며,

이것이 응답 레코드에 반복되며, 2-byte offset

pointer로 지정한다.

(33)

33

Format of an offset pointer

(34)

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)

35

Query message

(36)

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)

37

Response message

(38)

38

다음 환경의 자기 PC에서 구글(www.google.co.kr) 접속 시 DNS 질의와

응답 패킷을 UDP프로토콜과 함께 캡쳐 하고 분석하라

Example 10.2

① ipconfig /all (나의 IP, MAC, 디폴트 게이트웨이, DNS 서버 주소 확인)

(39)

39

⑦ DNS Query 패킷(구글에 접속하기 위해 DNS 서버에 구글의 IP 주소를 물어봄. UDP 패킷에 DNS 메시지 포함됨.)

DNS Query 패킷(구글에 접속하기 위해 DNS 서버에 구글의 IP 주소를

물어봄 . UDP 패킷에 DNS 메시지 포함됨.)

(40)

40

(1) DNS Query 패킷(UDP 헤더)

(41)

41

⑦(2) DNS Query 패킷(DNS 메시지 요청(query))

(2) DNS Query 패킷(DNS 메시지 요청(query))

(42)

42

DNS Response 패킷(DNS 서버에서 구글의 IP 주소를 찾아 나에게 응답(Response)을 준다)

(43)

43

(1) DNS Response 패킷(UDP 헤더)

(44)

44

(2) DNS Response 패킷(DNS 메시지 응답(response))

(45)

45

참조

관련 문서

The “Asset Allocation” portfolio assumes the following weights: 25% in the S&P 500, 10% in the Russell 2000, 15% in the MSCI EAFE, 5% in the MSCI EME, 25% in the

If there are no results in each case, then your query result is identical to the answer query result, and therefore your query is correct (or at least, it is good enough that

1 John Owen, Justification by Faith Alone, in The Works of John Owen, ed. John Bolt, trans. Scott Clark, "Do This and Live: Christ's Active Obedience as the

 Ad-hoc search: Find relevant documents for an arbitrary text query.  Filtering: Identify relevant user profiles for

This study aims to explore the concepts of wayfinding and choice architecture in the information book and to find a connection for the proper provision

Additionally, all Google user to download the query index data as a CVS file. So, we gather the individual companies listed on KOSPI100’s search volume index by

„ Query optimizers use equivalence rules to systematically generate expressions equivalent to the given expression.. „ Can generate all equivalent

™ The first nested query, which is correlated, retrieves the project numbers on which the employee works, which is different for each employee tuple because of the