티스토리 뷰

반응형





반갑습니다.


오랫만에 포스팅을 하네요.


오늘은 레드헷 계열인 Centos 6.5에서 DNS를 구축해보겠습니다.



1. DNS란?





DNS란 무엇일까요 ?


구축하기 전에 이 서버가 무엇을 의미하는지에 대해서 설명을 듣고 가야겠죠 ?


DNS는 우리가 사용하는 서버 중 아주 쉽게 볼 수 있습니다.


간단하게


서버의 IP를 문자로 표현해주고 또한 그 문자를 IP로 표현해줍니다.


여기서 IP를 문자로 표현해주는 것을 정방향 이라고 합니다.


그럼 반대로 문자를 IP로 표현해주는 것은 역방향 이라고 합니다.


하지만, 소규모의 DNS 서버 중 역방향을 구축하는 곳은 많지 않으며 정방향만 사용하는 곳이 많습니다.



그럼 IP를 문자를 표현한다.


그 문자는 어떤식이냐 ?


www.fmh.kr


위와 같은 도메인이 원래는 DNS로 구축된 정방향 서비스 입니다.


위 도메인이 DNS로 구축되어 있지 않다면 우리는 항상 문자 도메인 주소가 아닌 IP 도메인 주소를 입력해야 접근할 수 있습니다.


간단한 예로 보여드리겠습니다.




문자 도메인 주소를 입력하면 해당 웹 페이지에 접속합니다.


그럼 원래 해당 서버 IP 주소로 입력하면 어떻게 될까요?


먼저 해당 도메인의 IP주소를 확인해보겠습니다.


C:\Users\seob\>nslookup www.fmh.kr

이름 : www.fmh.kr

Address : 101.75.5.86


현재 아이피로 접속하면 홈페이지를 만든 호스팅 업체 사이트로 들어가집니다.


만약 호스팅 업체를 통해서가 아닌 서버 한 대가 해당 웹 서버를 운영한다치면 호스팅 홈페이지가 아닌 위와 같이 fmh.kr 홈페이지에 접속이 됩니다.





정방향, 역방향에 대한 예를 들어봤구요.


그럼 www.fmh.kr 호스트로 계층적 관리 시스템에 대해 살펴보겠습니다.


현재 호스트 이름에서는 점(.)으로 도메인 계층을 구분하며 오른쪽부터 최상위 도메인이 시작됩니다.


최상위 도메인은 루트 도메인이라 불리며, 제일 오른쪽에 점(.)이 현재 생략이 되어있습니다.


실제로는 www.fmh.kr. 이 맞는 표현입니다.




간단한 이론은 여기까지 끝내고 실습으로 들어가보겠습니다.




2. 설치 전 확인



먼저 DNS를 구축하기 앞서.. DNS 패키지 파일이 설치되어있음을 확인해봅니다.


[root@seob00 /]# rpm -qa | grep bind

samba-winbind-clients-3.6.9-164.el6.x86_64

PackageKit-device-rebind-0.5.8-21.el6.x86_64

ypbind-1.20.4-30.el6.x86_64

rpcbind-0.2.0-11.el6.x86_64

samba-winbind-3.6.9-164.el6.x86_64


다행히(?)도 패키지가 설치되어 있지 않습니다.


rpm -qa | grep 으로 확인하는 방법이 있지만


다른 방법으로는 yum list installed | grep bind 방법이 있습니다.



[root@seob00 /]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:0F:FB:65  

          inet addr:192.168.75.3  Bcast:192.168.75.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe0f:fb65/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:47762 errors:0 dropped:0 overruns:0 frame:0

          TX packets:23595 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:56787219 (54.1 MiB)  TX bytes:1361977 (1.2 MiB)


lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:7717 errors:0 dropped:0 overruns:0 frame:0

          TX packets:7717 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:2606294 (2.4 MiB)  TX bytes:2606294 (2.4 MiB)


그리고 추가적으로 DNS 서버를 구축할 IP를 확인합니다.


현재 제 아이피는 192.168.75.3 입니다.





설치전 모든 확인을 했기 때문에 곧바로 시작하도록 하겠습니다 !




3. 설치 및 구축 [ 정방향 설정 ]



바로 DNS 구성 패키지를 설치해보겠습니다.


[root@seob00 /]# yum install bind*

Loaded plugins: fastestmirror, priorities, refresh-packagekit, security

Loading mirror speeds from cached hostfile

 * base: data.nicehosting.co.kr

 * elrepo: ftp.ne.jp

 * epel: mirror.premi.st

 * extras: data.nicehosting.co.kr

 * ius: ftp.neowiz.com

 * osg: t2.unl.edu

 * remi: remi.kazukioishi.net

 * rpmforge: ftp.riken.jp

 * rpmfusion-free-updates: mirrors.163.com

 * rpmfusion-nonfree-updates: mirror.hust.edu.cn

 * updates: data.nicehosting.co.kr

4406 packages excluded due to repository priority protections

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package bind.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

---> Package bind-chroot.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

---> Package bind-devel.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

---> Package bind-dyndb-ldap.x86_64 0:2.3-5.el6 will be installed

---> Package bind-libs.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

---> Package bind-sdb.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

---> Package bind-utils.x86_64 32:9.8.2-0.23.rc1.el6_5.1 will be installed

--> Finished Dependency Resolution


Dependencies Resolved


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

 Package                                                    Arch                                              Version                                                               Repository                                          Size

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

Installing:

 bind                                                       x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                            4.0 M

 bind-chroot                                                x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                             71 k

 bind-devel                                                 x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                            378 k

 bind-dyndb-ldap                                            x86_64                                            2.3-5.el6                                                             base                                                69 k

 bind-libs                                                  x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                            879 k

 bind-sdb                                                   x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                            307 k

 bind-utils                                                 x86_64                                            32:9.8.2-0.23.rc1.el6_5.1                                             updates                                            182 k


Transaction Summary

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

Install       7 Package(s)


Total download size: 5.8 M

Installed size: 12 M

Is this ok [y/N]: y

Downloading Packages:

(1/7): bind-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                         | 4.0 MB     00:02     

(2/7): bind-chroot-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                  |  71 kB     00:00     

(3/7): bind-devel-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                   | 378 kB     00:00     

(4/7): bind-dyndb-ldap-2.3-5.el6.x86_64.rpm                                                                                                                                                                           |  69 kB     00:00     

(5/7): bind-libs-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                    | 879 kB     00:00     

(6/7): bind-sdb-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                     | 307 kB     00:00     

(7/7): bind-utils-9.8.2-0.23.rc1.el6_5.1.x86_64.rpm                                                                                                                                                                   | 182 kB     00:00     

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

Total                                                                                                                                                                                                        1.8 MB/s | 5.8 MB     00:03     

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

  Installing : 32:bind-libs-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                1/7 

  Installing : 32:bind-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                     2/7 

  Installing : 32:bind-chroot-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                              3/7 

  Installing : bind-dyndb-ldap-2.3-5.el6.x86_64                                                                                                                                                                                          4/7 

  Installing : 32:bind-utils-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                               5/7 

  Installing : 32:bind-devel-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                               6/7 

  Installing : 32:bind-sdb-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                 7/7 

  Verifying  : 32:bind-utils-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                               1/7 

  Verifying  : 32:bind-chroot-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                              2/7 

  Verifying  : 32:bind-devel-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                               3/7 

  Verifying  : 32:bind-libs-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                4/7 

  Verifying  : 32:bind-sdb-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                 5/7 

  Verifying  : 32:bind-9.8.2-0.23.rc1.el6_5.1.x86_64                                                                                                                                                                                     6/7 

  Verifying  : bind-dyndb-ldap-2.3-5.el6.x86_64                                                                                                                                                                                          7/7 


Installed:

  bind.x86_64 32:9.8.2-0.23.rc1.el6_5.1          bind-chroot.x86_64 32:9.8.2-0.23.rc1.el6_5.1      bind-devel.x86_64 32:9.8.2-0.23.rc1.el6_5.1      bind-dyndb-ldap.x86_64 0:2.3-5.el6      bind-libs.x86_64 32:9.8.2-0.23.rc1.el6_5.1     

  bind-sdb.x86_64 32:9.8.2-0.23.rc1.el6_5.1      bind-utils.x86_64 32:9.8.2-0.23.rc1.el6_5.1      


Complete!


설치가 완료 되었습니다.




자. 그럼 우리가 어떤 파일을 건들여야하는지에 대해 알아보겠습니다 !


■ 설정 파일 목록


/etc/named.conf - DNS 서버에 대한 설정 값을 담는 파일

/etc/named.rfc1912.zones - DNS 서버에 대한 정방향, 역방향 선언에 대한 값을 담는 파일



먼저 /etc/named.conf 파일을 수정하겠습니다.


//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


options {

listen-on port 53 { 127.0.0.1; }; // 외부에서 53 번 포트 접속에 대한 IP 설정.

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query     { localhost; }; // 외부에서의 DNS 쿼리 접속에 대한 설정.

recursion yes;


dnssec-enable yes;

dnssec-validation yes;

dnssec-lookaside auto;


/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";


managed-keys-directory "/var/named/dynamic";

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {

type hint;

file "named.ca";

};


include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";


■ /etc/named.conf 파일 기본값


현재 서버에 대한 기본값입니다.


여기서 딱 2개만 변경하도록 하겠습니다.


현재 제가 초록색으로 표시를 해두었습니다.


이 괄호안에 있는 부분을 모두 any로 변경해주세요.


변경치 않으면 로컬에서만 사용 가능해집니다.


로컬에서만 서버를 사용한다면.. 정말 의미없죠 ?




음은 정방향에 대한 설정을 하도록 하겠습니다.


// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package 

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

// 

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


zone "localhost.localdomain" IN {

type master;

file "named.localhost";

allow-update { none; };

};


zone "localhost" IN {

type master;

file "named.localhost";

allow-update { none; };

};


zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};


zone "1.0.0.127.in-addr.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};


zone "0.in-addr.arpa" IN {

type master;

file "named.empty";

allow-update { none; };

};


■ /etc/named.rfc1912.zones 파일 기본값



현재 기본적인 설정이 적혀있습니다.


저는 기본적인 정방향 설정만 하겠습니다.


맨 아랫줄에 다음과 같이 추가해주세요.


// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package 

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

// (c)2007 R W Franks

// 

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//


zone "localhost.localdomain" IN {

type master;

file "named.localhost";

allow-update { none; };

};


zone "localhost" IN {

type master;

file "named.localhost";

allow-update { none; };

};


zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};


zone "1.0.0.127.in-addr.arpa" IN {

type master;

file "named.loopback";

allow-update { none; };

};


zone "0.in-addr.arpa" IN {

  type master;

file "named.empty";

allow-update { none; };

};


zone "mslee89.com" IN {                // 도메인 입력

  type master;                         // 서버 타입 지정 (master, slave)

  file "mslee89.com.zone";        // zone 파일 이름 설정

  allow-update { none; };         // 동기화 할 slave 서버의 IP 지정 ( 없을 경우 none; 으로 지정 )

};





추가된 값을 저장하시고 다음 경로로 이동합니다.


그리고 존 파일을 생성해줍니다.


존 파일은 기존에 있는 named.localhost를 복사해서 사용합니다.



[root@seob00 named]# pwd

/var/named

[root@seob00 named]# ls

chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves

[root@seob00 named]# cp -rfp named.localhost mslee89.com.zone



복사된 mslee89.com.zone 설정 하겠습니다.



[root@seob00 named]# cat mslee89.com.zone 

$TTL 1D

@ IN SOA @ rname.invalid. (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

NS @

A 127.0.0.1

AAAA ::1


■ 변경 전



[root@seob00 named]# cat mslee89.com.zone 

$TTL 1D

@   IN SOA  ns.seob00. mslee89.com. (

                    0   ; serial

                    1D  ; refresh

                    1H  ; retry

                    1W  ; expire

                    3H )    ; minimum

         IN  NS  seob00.

         IN  A   192.168.75.3

WWW IN  A   192.168.75.3


■ 변경 후


여기서 seob00은 제 호스트 이름입니다.


NS에는 @ 혹은 호스트이름. 이렇게 넣으시면 되구요.


현재 mslee89.com에 대한 기본값과 www 별칭에 대한 기본값을 넣었습니다.



DNS를 시작하기 앞서 resolv.conf 파일을 수정해야합니다.


[root@seob00 etc]# pwd

/etc

[root@seob00 etc]# cat /etc/resolv.conf 

nameserver 192.168.75.3


여기에 들어가는 IP 주소는 DNS 서버의 주소 아이피입니다.


resolv.conf를 수정했으면 DNS 서버를 올려주고 테스트 해봅니다



[root@seob00 /]# service named restart

Stopping named: .                                          [  OK  ]

Starting named:                                            [  OK  ]

[root@seob00 /]# nslookup mslee89.com

Server: 192.168.75.3

Address: 192.168.75.3#53


Name: mslee89.com

Address: 192.168.75.3


[root@seob00 /]# nslookup www.mslee89.com

Server: 192.168.75.3

Address: 192.168.75.3#53


Name: www.mslee89.com

Address: 192.168.75.3


정방향에 대해서 정상적으로 잘 됩니다.




4. 윈도우 클라이언트에서 DNS 연동


직히 연동이라고 하기도 그렇네요.


윈도우에서 이 서버로 DNS 연동하기 위해서는 다음과 같이 합니다.


먼저 그전에 연동이 안된 모습을 보여드리겠습니다.




mslee89.com에 대한 호스트값을 찾지 못합니다.



하지만 네트워크 설정에서 다음과 같이 추가해줍니다.




DNS 설정 부분에서 DNS 서버의 IP 주소를 입력하고 네트워크를 재활성화 시킵니다.


그리고 다시 테스트 해보시면 정상적으로 작동됩니다.





이제 DNS 서버에서 웹 서버를 만들고 주소창에 mslee89.com을 입력하면 곧바로 웹 서버로 이동 됩니다.


아주 간단한 DNS 서버에 대해 설명을 마칩니다.


반응형

'리눅스 > 기본' 카테고리의 다른 글

[CentOS 7] service 사용 방법  (0) 2014.07.22
[CentOS 7] 설치 가이드  (5) 2014.07.22
Character set 변경 및 확인 [UTF-8, EUC-KR]  (1) 2014.07.11
VNC 관련 Error  (0) 2014.06.17
Kail 1.0.7 OS 둘러보기  (0) 2014.06.02
댓글
공지사항
최근에 올라온 글