• 文字サイズ変更
  • S
  • M
  • L
  • No : 12211
  • 公開日時 : 2016/12/10 17:11
  • 印刷

CentOS6でのbindの設定(VPSクラウド)

回答

設定前の準備

VPSクラウドでは、初期状態ではドメイン名が設定されていません。
ドメイン名を使用してサーバーにアクセスするにはお客さまにて独自ドメイン名を取得して頂き、
そのドメインのゾーン情報を管理するネームサーバーを構築して頂く必要がございます。

ネームサーバーはお客さまの任意のサーバーをご利用になれますので、 必ずWebARENAのVPSクラウド上で構築しなければならないという事はございません。 他にご利用になれるネームサーバーをお持ちのお客さまはそちらをご利用頂くことも出来ますが、 WebARENAのVPSクラウド上にネームサーバーを構築してご利用頂くことが出来ますのでここではその方法をご案内致します。

VPSクラウド上にネームサーバーを構築する場合は、ドメインを取得したレジストラ(ドメイン名取得業者)を通じて お客さまの独自ドメインのネームサーバーを登録しておく必要がございます。

DNSサーバーとしてVPSクラウドをご利用になるお客さまは、インスタンスのIPアドレスを登録して下さい。

登録の具体的な方法はレジストラによって異なりますので、ドメインを取得したレジストラにお問い合わせ下さい。

 

設定する内容

ここでは既に以下の準備が整っているものとして、 VPSクラウド上にプライマリネームサーバーを構築する方法を説明しています。

  • 独自ドメイン名の取得が完了している。
  • VPSクラウド上にネームサーバーを構築するためのインスタンスを作成している。
  • レジストラを通じインスタンスのIPアドレスをネームサーバーとして登録している。

以降の説明は、例として以下のようなご利用形態を前提として記述しています。
実際に設定頂く際には、ドメイン名、IPアドレスはお客さまのものに置き換えて設定を行って下さい。

  • ネームサーバーを構築するインスタンスのIPアドレスを「192.0.2.5」とする。
  • ドメイン名を「example.com」とする。
  • ゾーンファイル名を「example.com.db」(/var/named/example.com.db)とする。
  • セカンダリネームサーバーとして「ns2.example.com<192.0.2.6>」を使用する。
  • VPSクラウド上に http://www.example.com/ というアドレスのWebサーバーを構築する。
  • VPSクラウド上に ******@example.com というメールアドレスを使用するためのメールサーバーを構築する。

 

セキュリティーグループの設定

ネームサーバーを構築するには、セキュリティポートの設定が必要です。

  • bindの初期設定では、53番ポートを使用します。
  • インスタンス起動時に割り当てたセキュリティーグループに対し、次のルールを追記してください。
  • udp:53,53,ip4:0.0.0.0/0

接続元となるcidrアドレスは、お客さまの環境に合わせて書き換えてください。 セキュリティーグループの編集方法は、オンラインマニュアルに記載しておりますのでご参照ください。

 

bindの設定手順

VPSクラウドには初期状態で「bind」というネームサーバープログラムがインストールされています。 ネームサーバーを構築する場合は下記の手順でbindの設定を行って下さい。

  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. viなどのテキストエディタで /etc/named.conf ファイルを開いて下さい。
    viで /etc/named.conf ファイルを開くコマンドは以下の通りです。
    [root@localhost ~]#vi /etc/named.conf
    

    他のキャッシュDNSサーバーからの名前解決(query)を許可するために、以下の設定を行います。

    options {
    listen-on port 53 { 127.0.0.1; };
    listen-on port 53 { 192.0.2.5; };(←この行を追加)
    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; };(←行頭に # を追加)
    recursion no;
    allow-query    { any; };	(←allow-query 行を any で追加)
    
    dnssec-enable yes;
    dnssec-validation yes;
    
  3. ファイルの末尾に以下の設定を記述して下さい。
    • file ・・・ ゾーンファイル名を設定します。
    • allow-transfer ・・・ ゾーン転送するセカンダリネームサーバーを制限します。
    zone "example.com" {
                            type master;
                            file "example.com.db";
                            allow-update { none; };
                            allow-transfer { 192.0.2.6/32; };
                        };
    						
  4. viなどのテキストエディタで /var/named/example.com.db ファイルを開いて下さい。
    viで /var/named/example.com.db ファイルを開くコマンドは以下の通りです。
    [root@localhost ~]# vi /var/named/example.com.db
    

    入力画面が表示されたら、ファイルの内容を以下のように記述してファイルを上書き保存して下さい。

    $TTL    86400
    @               IN SOA  ns.example.com.       root (
                    2013030501      ; serial
                    3H              ; refresh
                    15M             ; retry
                    1W              ; expiryk
                    1D )            ; minimum
                    NS           ns.example.com.
                    NS           ns2.example.com.
                    MX 10        @
    
                    A            192.0.2.5
    ns              A            192.0.2.5
    ns2             A            192.0.2.6
    www             A            192.0.2.7
    
    ドメイン名の最後に「.」(ピリオド)が書いてある箇所がありますが、これはbindの設定ファイル(ゾーンファイル)の書式上必要なものです。 「.」を外すと正しく動作しなくなりますので、ご注意下さい。
    SOAレコード(「SOA」と書いてある行)とNSレコード(「NSと書いてある行」)で指定するネームサーバーのドメイン名は レジストラに登録したネームサーバー名と一致させて下さい。
    このファイルの内容を後から再編集する場合は「serial」の左に書かれている数字を今までより大きい数字に書き換えて下さい。 この数字はシリアル番号と呼ばれるもので、数字を増やすことにより セカンダリネームサーバーに設定ファイル(ゾーンファイル)の内容が更新されたことを知らせる仕組みになっています。

    数字は4294967295以下の数であればどのような内容でも差し支えありませんが、 一般的に変更した日の日付に2桁の通し番号を付加した数字を記述することが慣例となっています。
    bind(bind-9.8)ではdnssecにも対応しているため、上記の設定内容以外でもセキュアな環境を構築することが可能となります。詳細な設定内容についてはお客さまにてお調べ下さい。
  5. 以下のコマンドを実行し、bindを起動してください。
    [root@localhost ~]#rndc-confgen -a -r /dev/urandom
    [root@localhost ~]#service named start
    
  6. SSHで接続先を example.com と入力しアクセスしてみて下さい。 ドメイン名で接続した場合にもIPアドレスを使用してアクセスした時と同様にアクセスできれば正しくネームサーバーが動作しています。

自動起動の設定

bindを起動するとネームサーバーとして動作するようになりますが、 そのままの状態ではOSを再起動するたびに手動でbindを起動しなければなりません。

OSの再起動と同時に bind を自動起動したい場合は、chkconfig で named をon に設定して下さい。

バーチャルドメイン設定

Webサーバーやメールサーバーのバーチャルドメイン機能を使用して複数のドメイン名をご利用になる時は、 2つ目以降のドメイン名を使用するための設定を行う必要があります。 設定方法は複数の独自ドメイン名を使用する場合と、1つの独自ドメインでサブドメインを作成する場合で若干異なります。

[ 複数の独自ドメイン名を使用する場合 ]

すでに「example.com」という独自ドメイン名を使用している状態で「example.jp」という別の独自ドメイン名を使用する場合など、 複数の独自ドメイン名を使用する場合の設定手順はこのページの「bindの設定手順」に記載されている手順とほぼ同じです。 4. と 5. の手順に従って追加する独自ドメイン名を設定した後、以下のコマンドを実行し、新しい内容を有効にして下さい。

[root@localhost ~]#service named reload

[ 1つの独自ドメインでサブドメインを作成する場合 ]

すでに「example.com」という独自ドメイン名を使用している状態で「homepage.example.com」というサブドメインを使用する場合など、 1つの独自ドメインでサブドメインを作成してバーチャルドメインを使用する場合の手順です。

サブドメインを作成する場合、/etc/named.confファイルをさらに編集する必要はありません。 /var/named ディレクトリに作成されている独自ドメイン名のゾーンファイル(例では /var/named/example.com.db)にサブドメインの設定を追加します。

ここでは例として以下のようなご利用形態の場合の設定方法をご案内します。

  • すでに設定してある http://www.example.com/ というアドレスのWebサイトを使用する設定に加え、 Webサーバーのバーチャルドメイン機能を使用して http://homepage.example.com/ というアドレスのWebサイトを構築する。
  • すでに設定してある ******@example.com というメールアドレスを使用するための設定に加え、 メールサーバーのバーチャルドメイン機能を使用して ******@mail.example.com というメールアドレスを使えるようにする。
  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. viなどのテキストエディタで /var/named/example.com.db ファイルを修正して下さい。
    viで /var/named/example.com.db ファイルを開くコマンドは以下の通りです。
    [root@localhost ~]#vi /var/named/example.com.db
    

    入力画面が表示されたら、ファイルの内容を編集します。
    まず、「serial」の左に書かれている数字を今までより大きい数字に書き換えて下さい。
    この数字はシリアル番号と呼ばれるもので、数字を増やすことにより セカンダリネームサーバーに設定ファイル(ゾーンファイル)の内容が更新されたことを知らせる仕組みになっています。
    数字は4294967295以下の数であればどのような内容でも差し支えありませんが、 一般的に変更した日の日付に2桁の通し番号を付加した数字を記述することが慣例となっています。 ここでは「2013030501」の数字を1増やして「2013030502」に変更します。
    さらに、ファイルの末尾に緑色で書かれた行を追加して下さい。

    • 「homepage」で始まる行が「homepage.example.com」というドメイン名を使えるようにする設定です。
    • 「mail」で始まる行とその次の行が ******@mail.example.com というメールアドレス宛てのメールを このVPS(example.com)に配送するための設定です。
    $TTL    86400
    @               IN SOA  ns.example.com.       root (
                                  2013030502      ; serial
                                  3H              ; refresh
                                  15M             ; retry
                                  1W              ; expiry
                                  1D )            ; minimum
    
                    NS           ns.example.com.
                    NS           ns2.example.com.
                    MX 10        @
    
                    A            192.0.2.5
    ns              A            192.0.2.5
    ns2             A            192.0.2.6
    www             A            192.0.2.7
    homepage        A            192.0.2.7
    mail            A            192.0.2.5
                    MX 10        example.com.  (←***@mail.example.comの設定)
    					
  3. 以下のコマンドを実行し、新しい設定内容を有効にして下さい。
    [root@localhost ~]#service named reload
    

    その後、homepage.example.com の正引きが行えることをご確認下さい。

 

アンケート:ご意見をお聞かせください