Posted
Filed under Linux

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

<<<  LINUX 에서 Domain Name Server 설정하기 >>>

--------------------------------------------------------------------------------------------------------------------
※ 네임서버를 설정하기 전에 네임서버에 관련된 파일을 살펴보도록 하자.

 1. Resolver

   1.1. /etc/host.conf
     - 해석(Resolution) 방법 및 순서를 지정하는 파일 [ vi /etc/host.conf 로 확인 ]

   1.2. /etc/resolv.conf
     - 네임서버 위치를 지정하는 파일 [ vi /etc/resolv.conf 로 확인 ]


 2. Name Daemon : 실제 도메인 서버 설정시 편집해야 하는 파일들

   2.1. /etc/named.conf  

     - 네임서버 기본 설정 파일
     - /etc/init.d/named 네임서버 데몬이 참조하는 환경(설정) 파일

   2.2. /var/named

     - /etc/named.conf 파일에 등록된 지역(zone)에 대한 실제 .zone 파일들이 위치하는 곳.
     - 정방향 파일 설정을 위한 파일들의 위치.

   2.3. /var/named/*.zone

     - /etc/named.conf 설정 파일에서 정방향 조회에 대한 도메인(zone)을 추가한 후,
     - /var/named 디렉토리로 이동하여 도메인.zone 파일을 만들고, 적절히 수정해야 한다.
     - 예 : meimay7.co.kr.zone 파일을 생성하면 네임서버 동작시 /etc/named.conf 에서는 지정된
             디렉토리(/var/named)에 있는 meimay7.co.kr.zone 파일 내용을 참조하여 네임서버가
             작동하게 된다.

--------------------------------------------------------------------------------------------------------------------
 /etc/resolv.conf
--------------------------------------------------------------------------------------------------------------------

1. resolv.conf 파일은 자신의 호스트(내 로컬 컴퓨터)가 네임서버가 아니더라도 도메인 해석을
    위하여 어느 네임서버를 사용할 것인가를 설정해 주는 파일이다.


2. 따라서 이 파일이 존재하지 않으면 사용자의 호스트에서는 네임서버를 찾을 수 없으므로 접속
    하고자 하는 호스트 주소를 알 수 없게 되어 도메인 이름으로는 외부 네트워크에 접근할 수 없
    게 된다.


3. resolv.conf 파일 설정 옵션

   3.1. domain
     - 사용자 호스트의 로컬 도메인 이름을 넣는다.
     - 즉, 자신의 호스트 이름이다
     - # uname -a  또는 hostname 으로 자신의 호스트 명 확인

   3.2. search
     - 자동으로 찾을 도메인 주소를 입력.
     - 이 옵션으로 지정한 도메인에 대해서는 호스트명만 입력하면 자동으로 FQDN 으로 인식하여
       해당 사이트를 찾습니다. 예를 들어 search naver.com 으로 지정해 주면 웹 브라우저에서
       www 를 치면 www.naver.com 으로 인식한다.

   3.3. nameserver
     - IP 주소로 네임서버를 사용할 호스트를 입력합니다. 첫번째 네임서버에 장애가 발생되면
       두번째 네임서버, 세번째 네임서버 순으로 작동한다. ( 최대 3개지 지정 가능 )


4. 일단 /etc/resolv.conf 파일의 내부를 보자.

   4.1. 최초의 파일 내용

      # cat /etc/resolv.conf
      <<<<<<<< 내용 >>>>>>>>
       nameserver 168.126.63.1
       nameserver 168.126.63.2

  4.2. 도메인이 없는 경우 /etc/resolv.conf 를 다음과 같이 설정하자.

      # vi /etc/resolv.conf
      <<<<<<<< 내용 >>>>>>>>
       domain localhost                       --         추가부분
       search localhost                       --         추가부분
       nameserver 168.126.63.1             -- 자기 IP
       nameserver 168.126.63.2             -- 자기IP
       
   4.3. 도메인이 있는 경우 /etc/resolv.conf 를 다음과 같이 설정하자.   

      # vi /etc/resolv.conf
      <<<<<<<< 내용 >>>>>>>>
       domain www.meimay7.co.kr                       --         추가부분
       search meimay7.co.kr                                --         추가부분
       nameserver 168.126.63.1
       nameserver 168.126.63.2


   4.4. /etc/hosts 와 /etc/resolv.conf 와의 차이점 ☆★☆★☆★

     - /etc/hosts 는 로컬 시스템에서 작동하는 간이 네임서버 파일이라 할 수 있습니다.
       로컬 시스템에서는 도메인 검색 질의를 할 경우 이 파일에서 해당 도메인이 있는지
       체크하여 없으면 /etc/resolv.conf 파일에 지정되어 있는 네임서버에게 도메인 검색
       을 질의하여 IP 주소로 변환이 이루어집니다. 그러므로 /etc/hosts는 엄밀히 말하자면,
       네이서버라 할 수 없지만, 로컬 시스템상에서는 도메인이나 IP 주소를 해석해 주는
       기능을 하므로, 간이 네임서버라 할 수 있습니다.

       /etc/hosts 파일에 인터넷 사이트의 도메인 주소를 단축시켜 단축시킨 이름으로 웹
       서핑이나 텔넷, FTP등에서 사용할 수 있는 이점은 있지만, 이용하는 사이트가 많아지면
       많아 질수록 이 파일에서 추가해 주는 것이 한계가 있으므로, 도메인에 대한 맣은 데이터
       베이스를 가지고 있는 네임서버가 필요하게 되는 것입니다.

       따라서 /etc/resolv.conf 파일에 nameserver 옵션으로 네임서버 주소를 지정해 주면
       수많은 도메인에 대해서 쉽게 변환이 이뤄지게 됨으로써 클라이언트 환경에서 인터넷을
       사용하는데 그만큼 편리하게 됩니다.


--------------------------------------------------------------------------------------------------------------------
☆★☆★☆★  Domain Name Server 설치  ☆★☆★☆★
--------------------------------------------------------------------------------------------------------------------

1. /etc/named.conf 파일에 정방향 조회를 위해서 다음 내용을 추가.

   1.1. 이 작업은 윈도우에서 DNS -> 정방향 조회 영역 -> meimay7.co.kr 도메인을 생성하는
          것과 같은 작업니다.

   1.2. /etc/named.conf 파일의 추가된 내용

 // generated by named-bootconf.pl

 options {
  //------------- /ver/named 디렉토리의 .zone 파일을 참조한다. -----------------------//
  directory "/var/named";
  //--------------------------------------------------------------------------------------------------//
  /*
   * If there is a firewall between you and nameservers you want
   * to talk to, you might need to uncomment the query-source
   * directive below.  Previous versions of BIND always asked
   * questions using port 53, but BIND 8.1 uses an unprivileged
   * port by default.
   */
  // query-source address * port 53;
 };

 //
 // a caching only nameserver config
 //
 controls {
  inet 127.0.0.1 allow { localhost; } keys { rndckey; };
 };
 zone "." IN {
  type hint;
  file "named.ca";
 };

 zone "localhost" IN {
  type master;
  file "localhost.zone";
  allow-update { none; };
 };
 
 //---------------------- 추가부분 -----------------------//
 zone "meimay7.co.kr" IN {
  type master;
  file "meimay7.co.kr.zone";
  allow-update { none; };
 };
 //---------------------- 추가부분 끝 -----------------------//

 zone "0.0.127.in-addr.arpa" IN {
  type master;
  file "named.local";
  allow-update { none; };
 };

 include "/etc/rndc.key";

2. zone "meimay7.co.kr" 도메인을 추가하였으므로 /etc/named.conf 내용중 디렉토리가 지정한 곳에서
    .zone 파일을 참조할 수 있도록 "meimay7.co.kr.zone" 파일을 생성한다.

   2.1. # cp localhost.zone meimay7.co.kr.zone


3. meimay7.co.kr.zone 파일을 열어 SOA 부분 설정가 도메인(meimay7.co.kr)이 사용할 호스트를 추가하자

   3.1. 이 작업은 윈도우의 DNS -> 정방향 조회역역 -> meimay7.co.kr 탭에서 SOA 등의 각종 설정과
          www , mail 등의 호스트를 지정하는 부분과 같은 작업니다.

   3.2. vi meimay7.co.kr.zone 으로 파일을 열자

   3.3. meimay7.co.kr.zone 파일을 다음과 같이 되도록 설정하자. ( 문자뒤에는 꼭 . 을 붙인다!!!!!!!!!! )

 $TTL 86400                                                        (name 서버이름)     (name서버 관리자)
 @   1D IN SOA ns.meimay7.co.kr. meimay7.hotmail.com. (
      42  ; serial (d. adams)
      3H  ; refresh
      15M  ; retry
      1W  ; expiry
      1D )  ; minimum

     IN NS ns.meimay7.co.kr.
 @    IN A  172.15.0.19 ; 호스트 지정부분
 www    IN A  172.15.0.19 ; 호스트 지정부분


4. 설정이 완료되었으면 네임서버를 재시작 하자.

   4.1. # cd /etc/init.d 명령으로 디렉토리 이동

   4.2. # ./named stop | restart | start      (네임서버 중지 또는 재시작 또는 시작 )

   4.3. # nslookup
          > server 172.15.0.19 ( 도메인 서버 지정 : 로컬 IP )
          > www.meimay7.co.kr
            => 도메인에 해당하는 IP 가 출력되는 정상 셋팅된 것!


5. 기본 DNS 설정이 완료되었으므로 내 컴퓨터의 IP가 도메인 서비스를 할 수 있도록
    /etc/resolv.conf 파일에 다음과 같이 되도록 추가하자
  
   5.1. 파일 내용 추가

   # vi /etc/resolv.conf
      <<<<<<<< 내용 >>>>>>>>
       domain localhost09
       search localhost09
       nameserver 172.15.0.19                  -- 추가부분 (자신의IP) : 가장 위쪽에 추가하자[ 로컬 도메인이 1순위가 되도록 ]
       nameserver 168.126.63.1
       nameserver 168.126.63.2

   5.2. 이 과정은 윈도우2000 에서 "네트워크설정 -> TCP/IP -> 도메인 등록" 과정중 실제 도메인을 자신의
          컴퓨터에 등록하는 과정과 같다.


6. 5번과정까지 끝나면 도메인 설정이 완료된 것이다. " /usr/local/apache2/bin/httpd -k start "
    명령으로 apache 데몬을 실행시키고 웹 브라우저에서 5번과정까지 설정한 도메인으로
    브라우저 접속이 가능한지 테스트 해보도록 하자.

    http://www.meimay7.co.kr


7. 여러개의 도메인 추가하기

   7.1. 여러개의 도메인 등록도 도메인 하나를 등록하는 방식과 동일힌다.

   7.2. /etc/named.conf 에 zone 영역을 추가한다.

 // generated by named-bootconf.pl

 options {
  //------------- /ver/named 디렉토리의 .zone 파일을 참조한다. -----------------------//
  directory "/var/named";
  //--------------------------------------------------------------------------------------------------//
  /*
   * If there is a firewall between you and nameservers you want
   * to talk to, you might need to uncomment the query-source
   * directive below.  Previous versions of BIND always asked
   * questions using port 53, but BIND 8.1 uses an unprivileged
   * port by default.
   */
  // query-source address * port 53;
 };

 //
 // a caching only nameserver config
 //
 controls {
  inet 127.0.0.1 allow { localhost; } keys { rndckey; };
 };
 zone "." IN {
  type hint;
  file "named.ca";
 };

 zone "localhost" IN {
  type master;
  file "localhost.zone";
  allow-update { none; };
 };
 
 zone "meimay7.co.kr" IN {
  type master;
  file "meimay7.co.kr.zone";
  allow-update { none; };
 };

 //---------------------- 추가 도메인 부분 -----------------------//
 zone "meimay7.pe.kr" IN {
  type master;
  file "meimay7.pe.kr.zone";
  allow-update { none; };
 };
 //---------------------- 추가 도메인 부분 끝 -----------------------//

 zone "0.0.127.in-addr.arpa" IN {
  type master;
  file "named.local";
  allow-update { none; };
 };

 include "/etc/rndc.key";

   7.2. /etc/named.conf 에 zone 영역이 추가 되었으면, /var/named 디렉토리에
         "추가도메인명.zone" 파일을 생성하자.

       # cp meimay7.co.kr.zone meimay7.pe.kr.zone

   7.3. /var/named/meimay7.pe.kr.zone 파일을 다음과같이 만들자.


 $TTL 86400                                                        (name 서버이름)     (name서버 관리자)
 @   1D IN SOA ns.meimay7.pe.kr. meimay7.hotmail.com. (
      42  ; serial (d. adams)
      3H  ; refresh
      15M  ; retry
      1W  ; expiry
      1D )  ; minimum

     IN NS ns.meimay7.co.kr.
     IN NS 172.15.0.19.           <====== IP 도 등록하자.
 @    IN A  172.15.0.19 ; 호스트 지정부분
 www    IN A  172.15.0.19 ; 호스트 지정부분

    7.4. 여러개 도메인 추가후 nslookup으로 테스트시 정상적으로 동작이 안될경우,
           " # /etc/init.d/named start " 명령으로 네임서버를 재시작 한 후 테스트 하자.

    7.5 새로 등록된 도메인으로 홈페이지가 뜨는지 웹브라우저에서 확인하자.

2009/07/17 20:32 2009/07/17 20:32