//
CentOS 5.6 – DNS サーバ構築

CentOS 5.6 – DNS サーバ構築DNS サーバとは、ドメイン名(e.g. rislim.jp)と IP アドレス(49.212.18.207) を
紐付けるためのサーバです。

インターネット(に限らずネットワーク)は基本的に IP アドレスで通信を行います。
しかし、IP アドレスを記憶するのは大変なので
覚えやすいドメインと IP アドレスを紐付けることで、通信を楽に行えるようにしています。

大雑把に説明すると、rislim.jp にブラウザからアクセスした場合、まず端末に指定している
DNS サーバに rislim.jp というドメインの IP アドレスはいくつですか?と問い合わせます。
DNS サーバが rislim.jp というドメインの IP アドレスを調べ、49.212.18.207 という IP アドレスを
端末に返し、ブラウザは IP アドレスに対して通信を開始します。
そのため、rislim.jp というドメインを管理している DNS サーバがダウンした場合、名前解決が行えず
rislim.jp というドメイン名ではウェブページにアクセスできない
(IP アドレスでの通信は可)障害が発生します。
この事から、DNS サーバというものが実は重要である、という事になります。

01. BIND インストール

# yum -y install bind bind-chroot caching-nameserver

02. BIND 設定ファイル編集

■設定ファイルの準備
# cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf

■設定ファイルの編集
# vi /var/named/chroot/etc/named.conf

  <15行目付近>
  listen-on port 53 { 127.0.0.1; };
    ↓
  #listen-on port 53 { 127.0.0.1; };
    ※コメントアウト

  <16行目付近>
  listen-on-v6 port 53 { ::1; };
    ↓
  #listen-on-v6 port 53 { ::1; };
    ※コメントアウト

  <17行目付近に下記を挿入>
  version "";

  <27行目付近>
  allow-query     { localhost; };
    ↓
  allow-query     { localhost; localnets; };

  <28行目付近>
  allow-query-cache { localhost; };
    ↓
  allow-query-cache { localhost; localnets; };

  <29行目付近(上記allow-query-cacheの直下)に下記を挿入>
  forwarders{
      xxx.xxx.xxx.xxx;
      yyy.yyy.yyy.yyy;
  };

    ※xxx.xxx.xxx.xxx にはプロバイダのプライマリ DNS サーバの IP アドレスを、
      yyy.yyy.yyy.yyy にはプロバイダのセカンダリ DNS サーバの IP アドレスを設定。

  <35行目付近に下記を挿入>
  category lame-servers { null; };

  <41行目付近に下記を挿入>
  include "/etc/named.rislim.local.zone";  ※rislim.local の箇所は任意に設定してください。

  <最終行に下記を追加>
  view "internal" {
      match-clients { localnets; };
      match-destinations { localnets; };
      recursion yes;
      include "/etc/named.rfc1912.zones";
      include "/etc/named.rislim.local.zone";  ※rislim.local の箇所は任意に設定してください。
  };

  ●最終的には下記のようになります(コメント行は割愛します)
  options {
      #listen-on port 53 { 127.0.0.1; };
      #listen-on-v6 port 53 { ::1; };
      version "";
      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; localnets; };
      allow-query-cache { localhost; localnets; };

      forwarders{
          xxx.xxx.xxx.xxx;
          yyy.yyy.yyy.yyy;
      };
  };
  logging {
      channel default_debug {
          file "data/named.run";
          severity dynamic;
      };
      category lame-servers { null; };
  };
  view localhost_resolver {
      match-clients      { localhost; };
      match-destinations { localhost; };
      recursion yes;
      include "/etc/named.rfc1912.zones";
      include "/etc/named.rislim.local.zone";
  };
  view "internal" {
      match-clients { localnets; };
      match-destinations { localnets; }
      recursion yes;
      include "/etc/named.rfc1912.zones";
      include "/etc/named.rislim.local.zone";
  };

# vi /var/named/chroot/etc/named.rislim.local.zone

  <下記内容で新規作成>
  zone "rislim.local" {
      type master;
      file "rislim.local.db";
  };
  zone "1.168.192.in-addr.arpa" {
      type master;
      file "1.168.192.in-addr.arpa.db";
  };

# echo OPTIONS="-4" >> /etc/sysconfig/named

03. ルートゾーン設定ファイルの更新

# dig . ns @198.41.0.4 > /var/named/chroot/var/named/named.ca

04. ゾーン設定ファイル作成

■正引き(ドメイン名->IP アドレス)用設定ファイル作成
# vi /var/named/chroot/var/named/rislim.local.db

  <下記内容で新規作成>
  $TTL    86400
  @       IN       SOA    rislim.local. root.rislim.local.(
                            2011091301 ; serial  ※シリアル値。任意ですがYYYYMMDDxx(xxは通し番号)とするのが一般的です。
                            28800      ; refresh
                            14400      ; retry
                            3600000    ; expire
                            86400 )    ; minimum
          IN       NS     rislim.local.
          IN       MX 10  rislim.local.
  @       IN       A      192.168.1.10  ※サーバのプライベート IP アドレスを設定します

■逆引き(IP アドレス->ドメイン名)用設定ファイル作成
# vi /var/named/chroot/var/named/1.168.192.in-addr.arpa.db

  <下記内容で新規作成>
  $TTL    86400
  @       IN       SOA    rislim.local. root.rislim.local.(
                            2011091301 ; serial  ※シリアル値。任意ですがYYYYMMDDxx(xxは通し番号)とするのが一般的です。
                            28800      ; refresh
                            14400      ; retry
                            3600000    ; expire
                            86400 )    ; minimum
          IN       NS     rislim.local.
  10      IN       PTR    rislim.local.  ※サーバのプライベート IP アドレスの第4オクテットとサーバの ホスト名+ドメイン名(ここではlocaldomain)を記載します。

04. BIND 起動

■BIND 起動
# /etc/init.d/named start

■BIND 自動起動設定
# chkconfig named on

05. サーバの DNS 参照先設定

echo "nameserver 127.0.0.1" > /etc/resolv.conf

06. 動作確認

# dig rislim.local
  ;; ANSWER SECTION:
  rislim.local.       67      IN      A       192.168.1.10

# dig -x 192.168.1.10
  ;; ANSWER SECTION:
  192.168.1.10              67      IN      PTR     rislim.local.

また、Windows からも確認できる。

cmd> nslookup
nslookup> server 192.168.1.10
nslookup> rislim.local
  名前: rislim.local
  Address: 192.168.1.10
nslookup> 192.168.1.10
  名前: rislim.local
  Address: 192.168.1.10

Instagr.am

Recent Posts

土山茜さん@ポートレート撮影
1月 6, 2013
By RISLIM
2013年。
1月 1, 2013
By RISLIM
神奈川県・滝『本棚』
10月 17, 2012
By RISLIM
神奈川県・滝『下棚』
10月 10, 2012
By RISLIM
神奈川県・滝『飛竜の滝』
10月 7, 2012
By RISLIM
にほんブログ村 IT技術ブログへ
Get Adobe Flash player