젠투에서의 네임서버 설정관련

입질쾌감 물때표

일단 본인의 호스트를 네임서버로 돌리기 위해서는 net-dns/bind 패키지가 설치되어 있어야 한다.

mainframe pri # emerge -pv bind

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] net-dns/bind-9.7.3_p3  USE="berkdb mysql ssl xml -dlz -doc -geoip -gssapi -idn -ipv6 -ldap -odbc -postgres -resolvconf -sdb-ldap (-selinux) -threads -urandom" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB
mainframe pri # 

webterror.net 이라는 호스트는 A라는 네임서버에서 사용하고 있고 sub.webterror.net 이라는 호스트를 내 컴퓨터로 던지고 싶다면 그 부분에 대해선 webterror.net 서버에 있는 네임서버가 다음처럼 zone 파일을 가지고 있어야 한다.

$TTL 86400
@      IN      SOA      webterror.net.   root.webterror.net.  (
                              2008122601 ; Serial
                              28800      ; Refresh
                              3600       ; Retry
                              43200     ; Expire - 1 week
                              86400 )    ; Minimum

; Host Name
ns      IN      A      218.210.133.52

하지만, 위의 설정은 호스팅업체에 문의해서 해결할수 밖에 없는 부분이고, 만약 서브도메인의 네임서버를 집에 있는 컴퓨터로 돌려 놓으면, sub2.sub.webterror.net 같은 도메인을 직접 설정해서 사용할수 있게 된다.

먼저 위의 패키지가 설치되었다면 설정파일을 보자.

mainframe pri # cat /etc/bind/named.conf
/*
 * Refer to the named.conf(5) and named(8) man pages, and the documentation
 * in /usr/share/doc/bind-9 for more details.
 * Online versions of the documentation can be found here:
 * http://www.isc.org/software/bind/documentation
 *
 * If you are going to set up an authoritative server, make sure you
 * understand the hairy details of how DNS works. Even with simple mistakes,
 * you can break connectivity for affected parties, or cause huge amounts of
 * useless Internet traffic.
 */

acl "xfer" {
   /* Deny transfers by default except for the listed hosts.
    * If we have other name servers, place them here.
    */
   none;
};

/*
 * You might put in here some ips which are allowed to use the cache or
 * recursive queries
 */
acl "trusted" {
   127.0.0.0/8;
   ::1/128;
};

options {
   directory "/var/bind";
   pid-file "/var/run/named/named.pid";

   /* https://www.isc.org/solutions/dlv >=bind-9.7.x only */
   //bindkeys-file "/etc/bind/bind.keys";

   listen-on-v6 { ::1; };
   listen-on { 127.0.0.1; };

   allow-query {
      /*
       * Accept queries from our "trusted" ACL.  We will
       * allow anyone to query our master zones below.
       * This prevents us from becoming a free DNS server
       * to the masses.
       */
      trusted;
   };

   allow-query-cache {
      /* Use the cache for the "trusted" ACL. */
      trusted;
   };

   allow-recursion {
      /* Only trusted addresses are allowed to use recursion. */
      trusted;
   };

   allow-transfer {
      /* Zone tranfers are denied by default. */
      none;
   };

   allow-update {
      /* Don't allow updates, e.g. via nsupdate. */
      none;
   };

   /*
   * If you've got a DNS server around at your upstream provider, enter its
   * IP address here, and enable the line below. This will make you benefit
   * from its cache, thus reduce overall DNS traffic in the Internet.
   *
   * Uncomment the following lines to turn on DNS forwarding, and change
   *  and/or update the forwarding ip address(es):
   */
/*
   forward first;
   forwarders {
   //   123.123.123.123;   // Your ISP NS
   //   124.124.124.124;   // Your ISP NS
   //   4.2.2.1;      // Level3 Public DNS
   //   4.2.2.2;      // Level3 Public DNS
      8.8.8.8;      // Google Open DNS
      8.8.4.4;      // Google Open DNS
   };

*/

   //dnssec-enable yes;
   //dnssec-validation yes;

   /* if you have problems and are behind a firewall: */
   //query-source address * port 53;
};

/*
logging {
   channel default_log {
      file "/var/log/named/named.log" versions 5 size 50M;
      print-time yes;
      print-severity yes;
      print-category yes;
   };

   category default { default_log; };
   category general { default_log; };
};
*/

include "/etc/bind/rndc.key";
controls {
   inet 127.0.0.1 port 953 allow { 127.0.0.1/32; ::1/128; } keys { "rndc-key"; };
};

zone "." in {
   type hint;
   file "/var/bind/root.cache";
};

zone "localhost" IN {
   type master;
   file "pri/localhost.zone";
   notify no;
};

zone "127.in-addr.arpa" IN {
   type master;
   file "pri/127.zone";
   notify no;
};

/*
 * Briefly, a zone which has been declared delegation-only will be effectively
 * limited to containing NS RRs for subdomains, but no actual data beyond its
 * own apex (for example, its SOA RR and apex NS RRset). This can be used to
 * filter out "wildcard" or "synthesized" data from NAT boxes or from
 * authoritative name servers whose undelegated (in-zone) data is of no
 * interest.
 * See http://www.isc.org/software/bind/delegation-only for more info
 */

//zone "COM" { type delegation-only; };
//zone "NET" { type delegation-only; };

zone "sub.webterror.net" {
   type master;
   file "/var/bind/pri/sub.webterror.net.zone";
   //allow-query { any; };
   //allow-transfer { xfer; };
};

zone "mainframe.webterror.net" {
   type master;
   file "/var/bind/pri/mainframe.webterror.net.zone";
   //allow-query { any; };
   //allow-transfer { xfer; };
};

맨 마지막 부분을 보면 zone 파일 설정부분이 나오는데, 이부분이 만약 sub.webterror.net 로 질의가 왔을때 답변해주는 설정파일이 어디에 있는지 알려주는 내용이다.

/var/bind/pri/mainframe.webterror.net.tw.zone

위의 파일에 설정되어 있다.

설정 파일 내용을 보자.

mainframe pri # cat /var/bind/pri/mainframe.webterror.net.zone
$TTL 86400
@      IN      SOA      mainframe.webterror.net.   root.mainframe.webterror.net.  (
                              2008122601 ; Serial
                              28800      ; Refresh
                              3600       ; Retry
                              43200     ; Expire - 1 week
                              86400 )    ; Minimum
; Name Server
@      IN      NS      mainframe.webterror.net.
@      IN      A      218.210.133.52

; Host Name
ns      IN      A      218.210.133.52

; Virtual Host
www      IN      A      218.210.133.52
@      IN      AAAA   ::1
mainframe pri # 

위의 내용처럼 설정하면(설정내용은 구글링해서 다시 찾아 볼수 있도록) 되는데, 중요한건 그 해당 도메인의 네임서버가 어디인지 알려줘야 하고, ip도 무엇인지도 알려줘야 한다.

설정파일을 만들었으면, zone파일이 제대로 설정되었는지 확인해 보자.

# named-checkzone mainframe.webterror.net mainframe.webterror.net.zone

mainframe.webterror.net 의 도메인에 대한 서버설정파일 mainframe.webterror.net.zone에 대해 확인해보는 것이다. 아무런 문제 없이 OK가 떨어지면 서버에서 제대로 읽힐것이다.
mainframe.webterror.net.zone 파일은 서버가 가동될때 /etc/bind/pri/ 디렉토리로 자동 복사되어 진다.

# /etc/init.d/named restart

다시 재가동시키고 확인해보자.!

# nslookup mainframe.webterror.net
Server:      127.0.0.1
Address:   127.0.0.1#53

Name:   mainframe.webterror.net
Address: 218.210.133.52

nslookup 명령으로 네임서버를 통한 목적 아이피가 어디인지 정확하게 출려되면 정상작동하는 것이다. nslookup 질의할때 다른 네임서버에도 확인해보자.

참고로 위의 글은 네임서버를 처음 설정하면서 착오를 번복하면서 메모해 둔 내용이다. 정확한 설정값이 아닐수도 있음을 밝힌다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다