2008. 9. 2. 18:17

DNS Server(Domain Name System)

 

 

 

                       DNS Server(Domain Name System)

 

 

 

 

 

 

0. DNS 관련 용어(Terms)

_______________________

 

 

DNS 서버에 대한 자세한 정보를 논하기 전에 DNS 서버에서 사용하는 도메인에 대한 명확한

용어의 개념을 알아 보자.

 

 

URL : "http://www.itbank.com"

 

       www            : Hostname

       itbank.com     : Domainname

       www.itbank.com : FQDN(Fully Qualified Domain Name)

 

 

+------------ itbank.com ------------+

| [DNS Server]                       |

| IP1 --> www        X (www)         |

| IP2 --> mail                       |

| IP3 --> ftp        X (mail)        |

|                                    |

|                    X (ftp)         |

|                                    |

+------------------------------------+

 

[참고] 일반적인 Domainname : www.itbank.com

 

 

 

(1). Host Name?

 

인터넷에서 호스트는, 인터넷을 통해 다른 컴퓨터들과 쌍방향 통신이 가능한 컴퓨터를 말

한다. 호스트는 특정한 호스트번호를 갖는데, 이는 네트웍 번호와 합해져서, 고유의 IP

주소를 이루게된다. 인터넷 서비스 제공업체를 통한 PPP 사용자의 경우에는, 접속되어있

는 동안에만 고유한 IP 주소를 갖게되며, 그 시간동안은 해당 사용자의 컴퓨터도 하나의

호스트가 되는 것이다. 이러한 맥락에서 보면, 호스트란 네트웍의 하나의 노드라고 볼 수

도 있다.

 

 

 

(2). Domain Name?

 

인터넷에 연결된 다른 컴퓨터와 통신을 하기 위해서는 컴퓨터가 인터넷에 연결되어 있어

야 하고 컴퓨터의 주소를 알고 있어야 한다. 컴퓨터의 주소는 숫자로 표현된 주소와 영문

자로 표현된 주소의 2가지가 있다.

 

203.247.51.32 (IP주소)

 

숫자로 표현된 주소는 왼쪽 그림과 같이 점으로 구분되어 4단계로 표시되는데, 점으로 구

분된 각 숫자에는 0 ∼ 255 까지의 숫자를 사용할 수 있으며, 전세계적으로 중복되지 않

도록 사용해야 한다. 숫자로 표현된 이러한 주소를 인터넷 공인 IP 주소라고 한다.

 

그러나 인터넷 사용자들이 다른 컴퓨터와의 통신을 위해 숫자로 표현된 주소를 사용하게

되면, 주소를 이해하거나 기억하기 어렵다는 단점이 있다. 따라서 숫자로 표현된 주소대

신에 영문자로 표현된 주소를 사용할 수 있도록 하였는데, 영문자로 표현된 주소는 우리

가 실생활에서 사용하는 영문단어로 구성되어 인터넷 사용자들이 쉽게 기억할 수 있고 편

리하게 다른 컴퓨터와 통신할 수 있다.

 

 

itwill.co.kr (도메인주소)

1단계: kr

2단계: co

3단계: itwill

 

영문자로 표현된 주소는 왼쪽 그림과 같이 점으로 구분되어 여러 단계로 구성된다. 각 단

계는 오른쪽 맨 마지막에서부터 1단계, 2단계, 3단계 등으로 불리며, 전세계적으로 중복

되지 않는 고유한 이름이 부여된다. 이를 인터넷 도메인이라고 하는데, 인터넷 도메인 이

름은 인터넷에 연결된 전세계의 어떠한 컴퓨터와도 통신을 가능하게 해준다. 

 

[인터넷 도메인 이름의 부여 원칙]

 

* 영문자 A~z, 숫자 0~9 또는 하이픈(-)의 조합으로만 표현되며, 영문자의 대, 소문자는

  구별하지 않고 같은 것으로 간주한다.

* 첫 글자는 영문자로 시작하여야 하며, 하이픈으로 끝날수 없다 (우리나라에서는 1999년

  6월 30일부터 숫자로 시작되는 도메인 이름도 허용되었다).

* 길이는 각 단계별로 최소 2자에서 최대 63자까지 가능하다.

* 컴마(,), 언더바(_) 등의 기호는 사용할 수 없다.

* 전세계적으로 중복되지 않도록 고유해야 한다 (이미 사용되고 있는 도메인 이름은 쓸

  수 없다).

 

 

 

(3). FQDN(Fully Qualified Domain Name)?

 

FQDN[에프큐디엔]은 시스템을 지칭하는 완전한 이름으로서, 호스트 이름과 그것의 도메인

이름으로 구성된다. 예를 들어, "www"가 호스트 이름이고, "terms.co.kr"이 도메인 이름

이라면, FQDN은 "www.terms.co.kr"가 된다. FQDN은 인터넷상의 특정 호스트를 지칭하기

위한 고유한 인터넷 주소를 가져야한다. 인터넷상에 있지 않지만, 전자우편 주소를 위한

이름공간을 공유하는 일부 호스트를 위해서도, 동일한 이름 구조가 사용된다. FQDN을 가

지고 있지 않은 호스트는 뱅 경로를 사용하여 지칭되어야한다.

 

모든 인터넷 컴퓨터들과 대부분의 UUCP 사이트들은 1980년부터 작성된 막후의 많은 량의

소프트웨어 덕분에 이제 FQDN을 해석할 수 있다.

 

 

 

(4). Internet?

 

인터넷은 전세계적인 컴퓨터 네트웍 시스템으로서, 사용자가 어떤 컴퓨터에 있든지 간에

그가 사용권한을 가지고 있다면 그 어떤 다른 컴퓨터에도 접속해서 정보를 얻을 수 있는

"네트웍의 네트웍"이다. 인터넷은 1969년에 미국 정부의 ARPA (Advanced Research

Projects Agency)에 의해 태동되었으며, 처음에는 ARPANet으로 알려졌었다. 인터넷의 원

래 목표는 한 대학에 있는 연구용 컴퓨터의 사용자가 다른 대학에 있는 연구용 컴퓨터의

사용자와 "대화할 수 있는" 네트웍을 만드는 것이었다. ARPANet 설계의 부산물 중 하나

는, 메시지가 한 방향 이상으로 나뉘어 전달되거나 또는 다른 길로 전달될 수 있기 때문

에, 적의 군사공격이나 기타 다른 재해로 인해 네트웍의 일부가 파괴된 경우에도 제 기능

을 발휘할 수 있다는 것이다.

 

오늘날 인터넷은 전세계의 수 십억 인구가 액세스할 수 있는 대중 전체를 위한, 협동적이

며, 스스로 유지되는 자립 설비이다. 인터넷은 물리적으로 기존의 공중 전화망의 전체 자

원의 일부를 활용하고 있으며, 기술적으로는 TCP/IP라고 불리는 일련의 프로토콜들을 사

용함으로써 다른 것들과 구별된다. 인터넷 기술에 있어 최근에 나타난 2개의 변화는, 인

트라넷과 엑스트라넷이며, 이들 역시 TCP/IP 프로토콜을 사용한다.

 

많은 인터넷 사용자들을 위하여, 전자우편이 짧은 편지의 처리를 위한 우편서비스를 실용

적으로 대체하고 있다. 전자우편은 인터넷에서 가장 널리 사용되는 응용프로그램이다.

사용자는 또한 IRC를 이용하여 다른 컴퓨터의 사용자와 실시간으로 채팅을 할 수 있다.

최근에는 인터넷 전화설비 및 소프트웨어를 이용하여 실시간으로 음성통화까지 가능하게

되었다.

 

인터넷에서 가장 널리 사용되는 서비스 중의 하나가 월드와이드웹이다. 웹의 가장 두드러

진 특성은 즉시 상호 참조를 할 수 있게 해주는 방법인 하이퍼텍스트인데, 대부분의 웹사

이트들에서 텍스트 내에 다른 색으로 표시되어 있거나 또는 밑줄로 표시되어 있는 단어나

문장이 바로 그 것이다. 사용자가 이러한 단어나 구절을 선택하면, 이것과 관련 있는 사

이트나 페이지로 전환된다. 때로는 이러한 링크는 클릭이 가능하도록 만들어진 이미지

(또는 이미지의 일부)에도 숨겨져 있을 수 있다. 마우스의 포인터를 하이퍼텍스트 링크에

갖다대면, 포인터의 모양이 화살표에서 손 모양으로 바뀌는데, 이것은 다른 사이트나 페이

지로 전환하기 위해 클릭할 수 있다는 것을 가리킨다.

 

웹을 사용하면 무수히 많은 량의 정보에 쉽게 액세스할 수 있다. 웹 서핑은 웹 브라우저

를 통해 이루어지는데, 유명한 것으로는 넷스케이프 네비게이터와 마이크로소프트의 인터

넷익스플로러가 있다. 특정 웹사이트의 모습은 어떤 브라우저를 사용하느냐에 따라 다소

다르게 보일 수도 있다. 또한 최신 버전의 브라우저들은 애니메이션, 가상현실, 소리, 음

악파일 등에 있어 이전 버전에 비해 더 많은 특수기능들을 제공한다.

 

 

 

(5). ARPANet (Advanced Research Projects Agency Network)?

 

아파넷은 인터넷의 기초가 된 네트웍이다. 아파넷은 패킷 스위칭 개념을 이용하여 전용회

선으로 서로 연결된 여러 대의 컴퓨터로 구성되었으며, 주로 미 군당국에서 자금을 지원

하였다.

 

아파넷은 이후 1980년대에 들어서면서 새로운 군사용 네트웍인 DDF(Defense Data Network)

와 국립과학재단의 후원을 받는 과학 및 학술컴퓨터 네트웍인 NSFNet으로 분리되었다.

1995년에 NSFNet은, 인터넷 백본(vBNS라고 불린다)을 PSINet, UUNET, ANS/AOL, 스프린트,

MCI, 및 AGIS-Net99 등과 같은 상용 백본 제공업체의 컨소시움으로 바꾸기 위해, 차례대

로 단계적 철수를 시작했다.

 

 

 

 

 

 

1. DNS 개요(Concept)

____________________

 

- DNS(Domain Name System / Service)

 

(1). 초기의 도메인 관리

 

 

 

+-------------Domain-----------------+

|                                    |

|  SERVER -------+------> SERVERA    |

|  HOST.txt      |                   |

|                +------> SERVERB    |

|                |                   |

|                +------> SERVERC    |

|                |                   |

|                +------> .....      |

|                                    |

+------------------------------------+

 

[Main Server] -------------------> [Domin Server]

  HOST.TXT                          /etc/hosts

(Domain <--> IP)

 

      [그림] 초기의 도메인 관리

 

 

 

(2). 현재의 도메인 관리

 

DNS(Domain Name System), BIND(Berkeley Internet Name Domain)

- BIND 4.X

- BIND 8.X

- BIND 9.X

 

 

 

==== DNS Client ====       ==== DNS Server =====                              

Resolver                     in.named(53)

- /etc/nsswitch.conf        /etc/named.conf

- /etc/resolv.conf           DB : /var/named/

====================       =====================

Web Browser                   - Forward Zone File(D==>IP)

- http://www.itbank.com       - Reverse Zone File(IP==>D)

                              - localhost Zone File(Caching)

                              - hint File(named.root, hint)

 

             [그림] BIND 동작

 

 

------------------------------------------------------

도메인           

------------------------------------------------------

.                             - Nameless Root Domain

.com                   - 1차 도메인(국가 도메인 포함)

                                      (예) kr, jp, ....

                                      (예) .com, .org, ....

.itbank.com            - 2차 도메인

                                      (예) yahoo.com, itbank.com, daum.net

.yahoo.co.kr   - 3차 도메인

------------------------------------------------------

       

(예) www.yahoo.co.kr

            A   A  A

|   |  |

           (a) (b)(c)

(a) : 3차 도메인

(b) : 2차 도메인

(c) : 1차 도메인

 

            [그림] 도메인 이름 체계

 

 

* 수업시에 사용하는 도메인 이름 체계

(예) www.solarisXXX.example.com

 

 

 

[참고] BIND (Berkeley Internet Name Domain)?

BIND는 BSD 기반의 유닉스 시스템을 위해 설계된 DNS이다. BIND는 서버와 resolver 라이

브러리로 구성되어 있다. 네임서버는 클라이언트들이 이름 자원들이나 객체들에 접근하여,

네트웍 내의 다른 객체들과 함께 이러한 정보를 공유할 수 있게 해주는 네트웍 서비스이

다. 이것은 사실상, 컴퓨터 네트웍 내의 객체들을 위한 분산 데이터베이스 시스템이다.

BIND는 호스트 이름과 주소를 저장하고 검색하는데 사용되기 위한 BSD 네트웍 프로그램

(버전 4.3 이상)에 완전히 통합되어 있다.

 

시스템 관리자는 BIND를 네트웍 호스트들의 file(/etc/hosts) 내에 있는 호스트 테이블

룩업의 대체용으로 사용하도록 시스템을 설정할 수 있다. BSD의 기본 설정은 BIND를 사용

하는 것이다.

 

 

 

 

 

2. Solaris 9 DNS 기본 설정

______________________________________

 

솔라리스 9에서는 기본적으로 BIND 8.2.X 버전이 설치 되어 있다. 현재 솔라리스 09/05 버

전에는 8.2.4 버전이 설치되어 있다. 기본적으로 설치 되어 있는 Bind 프로그램을 사용하

는 경우 데몬만 존재하고 /etc/named.conf, /var/named/DB 파일들이 존재하지 않기 때문에

생성을 해 줘야 한다. 설정 파일들은 특정한 문법(Syntax)가 존재하기 때문에 매뉴얼 페이

지를 참고하여 작성하여야 한다.

 

[참고] /etc/named.conf, /var/named/DB 작성시 주의점

경험상, 설정파일이나 DB 파일들에는 탭이나 스페이스를 모두 사용할 수 있다고 되어 있

지만 탭을 사용하는 경우 알수 없는 에러가 생기는 경우를 많았다. 반드시 스페이스를 사

용하여 필드를 구분하자. 일부 다른 문서에서는(특히나 다른 유닉스) 스페이스 대신해서

탭을 쓸것을 권장하지만 솔라리스의 특성으로 여겨진다. 주의하자.

 

 

 

패키지 : SUNWinamd

---------------------------------------

==== DNS Server =====                             

   in.named(53)

   /etc/named.conf

   DB : /var/named/

=====================

- Forward Zone File(D==>IP)

- Reverse Zone File(IP==>D)

- localhost Zone File(Caching)

- hint File(named.root, hint)

---------------------------------------

 

 

(0). Bind 프로그램 설치 확인

 

패키지를 살펴 보면 특별한 설정파일은 없고 in.named, in.named-xfer 프로그램만 존재한

다는 것을 확인할 수 있다.

 

# pkginfo | grep Domain

system      SUNWidnd       Internationalized Domain Name Support Developer Files

system      SUNWidnl       Internationalized Domain Name Support Library Files

system      SUNWinamd      Internet Domain Name Server   <----- Bind 프로그램 확인

 

# pkgchk -v SUNWidnd

# pkgchk -v SUNWidnl

# pkgchk -v SUNWinamd

/usr

/usr/sbin

/usr/sbin/in.named

/usr/sbin/named-xfer

 

 

 

(1). DNS 서비스 데몬 확인

 

DNS 서비스 데몬 in.named는 기본적으로 설치가 되어 있다.

 

# which in.named

/usr/sbin/in.named

 

# in.named -v

in.named BIND 8.3.3 Thu Jun 16 08:11:42 PDT 2005

        Generic Patch-5.9-June 2005

 

 

 

(2). DNS 서비스 포트 확인

 

DNS 서비스 포트는 53으로 설정 되어 있다.

 

# grep 53 /etc/services

domain          53/udp

domain          53/tcp

 

 

 

(3). /etc/named.conf, /var/named/* 확인

 

DNS 서버 주설정 파일인 /etc/named.conf 존재하지 않는다. 또한 /etc/named.conf 파일이

없으므로 /var/named/DB 파일들도 존재하지 않는다.

 

# ls -l /etc/named.conf

/etc/named.conf: No such file or directory

 

# ls -ld /var/named

/var/named: No such file or directory

 

 

 

(4). DNS Server 설정

 

DNS 서버 설정을 위해서 /etc/named.conf 파일을 만들고 /var/named/DB 파일들을 생성해

주는 DNS.sh 스크립트를 실행하자. DNS.sh 스크립트는 /etc/named.conf 파일을 생성하고

/var/named 디렉토리를 만든후 그안에 exampleXXX.zone, exampleXXX.rev, localhost.rev

named.root 파일을 생성한다. 또한 /etc/nsswitch.conf, /etc/resolv.conf 파일도 설정

해 준다.

 

# mkdir /mnt/server

# mount 172.16.8.254:/root/shell /mnt/server

# cd /mnt/server

# ./DNS.sh

 

 

 

(5). DNS Server 설정 확인

 

DNS 서버 설정을 다음과 같이 확인하자. in.named 데몬을 띄우고 nslookup 명령어를 통해

확인해 보자. 각 설정 파일의 정보가 정확한지 확인을 해야 한다. in.named 데몬을 띄울때

/var/adm/messages 파일을 모니터링 하는 것을 잊지 말자.

 

# ls -l /etc/named.conf

# ls -l /var/named

# cat /etc/resolv.conf

# cat /etc/nsswitch.conf | grep hosts

....

hosts: files dns

....

 

 

 

(6). DNS 서버 실행

 

# in.named

# pgrep -lf in.named

  193 /usr/sbin/in.named

 

# nslookup www.solarisXXX.example.com

 

 

 

(7). DNS Server 관련 파일들

 

/etc/named.conf                                   DNS Main Conifguration File

 

/var/named/exampleXXX.zone         Forward Zone File

/var/named/exampleXXX.rev          Reverse Zone File

/var/named/localhost.rev           Localhost Zone File

/var/named/named.root                      Hint File

 

/etc/nsswitch.conf                         DNS Client File

/etc/resolv.conf                           DNS Client File

 

 

 

 

 

3. Bind 8.2.4(Solaris 9)

 

각 서버들에 대한 자세한 소개는 "2_DNS8x.txt" 파일에 있다. DNS 서버in.named 데몬은

/etc/named.conf 파일을 설정을 가지고 부팅시에 /etc/rc2.d/S72inetsvc Startup Script

에 의해 설정된다. 솔라리스 9 버전에는 BIND 8.2.X, 또는 BIND 8.3.X 버전이 설치 되어

있다.

 

 

 

(1). 서버의 종류(Server Types)

 

서비스를 제공하는 서버의 영역에 따른 분류

Root Servers(Nameless Root)

■ 1차 도메인 서버/2차 도메인 서버/....

 

서버의 목적에 따른 분류

■ Primary / Secondary Servers(Master / Slave Servers)

■ Caching-Only Servers

■ Forwarding Servers

 

 

 

(2). 클라언트 쿼리 종류(Answer Types)

 

Answers that are returned from DNS servers can be described as authoritative or

non-authoritative.

 

Answers from authoritative DNS servers are:

* Sourced from a disk-based file.

* Usually correct. Because humans administer the DNS, it is possible for

 incorrect data to enter the DNS database.

 

Answers from non-authoritative DNS servers are:

* Sourced from a server cache

* Usually correct

* Can be incorrect if the server’s cache contains stale data

 

 

[EX] nslookup 명령어 확인(Windows에서 확인)

 

C:\> nslookup www.daum.net

Server:  kns.kornet.net

Address:  168.126.63.1

 

Non-authoritative answer:        <----- 출력 정보 확인

Name:    daumtop.daum.akadns.net

Addresses:  211.115.77.214, 211.115.77.211, 222.231.51.78, 211.115.115.212

          222.231.51.77, 211.115.77.213, 222.231.51.40, 211.115.77.212