CentOS6.5でやっているLinuxサーバー設定関連の続き記事。

BINDの導入の続きです。

今回は、ゾーンデータベースの作成~動作確認まで行います。

スポンサードリンク

正引きゾーンデータベースの作成

前回、named.conf に正引きゾーンと逆引きゾーンの設定を行いましたのでゾーンデータベースの作成を行います。

「/var/named/cross-ring.org.db」というファイルを新規作成し、以下の内容を記述します。

$TTL 2D ・・・・・・ (1)
@       IN  SOA     cross-ring.org. root.cross-ring.org. ( ・・・・・・ (2)
                        2014102500
                        7200
                        3600
                        604800
                        86400
                    )
        IN  NS      cross-ring.org. ・・・・・・ (3)
        IN  MX 10   mail.cross-ring.org. ・・・・・・・ (4)
        IN  MX 20   smtp.cross-ring.org.
        IN  A       192.168.1.5 ・・・・・・ (5)
www     IN  A       192.168.1.5
mail    IN  A       192.168.1.5
smtp    IN  A       192.168.1.5

(1) ゾーンデータベースの有効期限の設定です。2Dは2日間という指定になります。
86400(1日)や172800(2日)と書かれている事も多いです。

(2) SOA(Start of Authorityの略)レコードの設定です。

@は$ORIGIN(変数)の値に置き換えられます。$ORIGINは「$ORIGIN <ホスト名>」と(1)と(2)の間の行に記載してホスト名を定義する事が可能で、上記のように省略した場合はnamed.confで「zone <ホスト名>」と記載したときのホスト名が$ORIGINの値として扱われます。
つまり当サイトでは「zone “cross-ring.org”」と記載していたため@の位置に「cross-ring.org」が記載されているのと同義となります。

SOAの後ろに書いてあるのは、「サーバーホスト名」と「管理者メールアドレス」になります。

( )内の値は上から順に説明をすると

  • シリアル番号: ゾーンデータベースのバージョン番号(YYYYMMDDXX Y=年、M=月、D=日、X=番号と表記されている事が多い)を記載、ゾーンデータベースを更新するときは値を更新する必要がある。
  • リフレッシュ間隔: ゾーンデータベースがリフレッシュされる時間を表す値。(単位:秒)
  • リトライ間隔: リフレッシュに失敗した場合に再試行するまでの時間を表す値。(単位:秒)
  • 情報破棄時間: ゾーンデータベースの内容を破棄すべき上限の時間を表す値。(単位:秒)
  • 最小有効時間: このゾーンデータベースの最小有効時間を表す値。(単位:秒)

(3) NS(Name Server)の指定を行っています。ゾーンを受け持つネームサーバーの指定を行います。
※なお、省略形式で書いていますが、INの前の記入を省略すると直前の行のINの前に記載された内容を引き継ぎます。上記の場合は(2)の行の@を引き継いでいる形になります。(4)や(5)の行も同様に@を引き継いでいます。

(4) MX(Mail Exchanger)の定義を行っています。メールの処理を行うホストの指定を行います。
なお、MXの後ろの値は優先度で値が小さいほど優先度が高い事を表しています。

(5) A(Addresses)の定義を行っています。ホスト名からIPアドレスへのマッピングの定義を行っています。
最初の行は「cross-ring.org というホスト名を 192.168.1.5へ変換する」という意味になります。
2行目はホスト名の省略を使っており、wwwの後ろに「.$ORIGIN」の内容が付加される形になり、「www.cross-ring.org」というホスト名を192.168.1.5へ変換するという意味になります。(3~4行目もwwwのケースと同様です。)

ゾーンデータベースは上記のように「<host name> <class> <resource record> <value>」といった形式で記載します。valueはresource recordの内容によって変化します。
(classやresource recordについてはこちらを参照)

 

逆引きゾーンデータベースの作成

「/var/named/1.168.192.in-addr.arpa.db」というファイルを新規作成し、以下の内容を記述します。

$TTL 2D ・・・・・・ (6)
@       IN  SOA     cross-ring.org. root.cross-ring.org. ( ・・・・・・ (7)
                        2014102500
                        7200
                        3600
                        604800
                        86400
                    )
        IN  NS      cross-ring.org. ・・・・・・ (8)
5       IN  PTR     cross-ring.org. ・・・・・・ (9)

(6) 正引きの時と同じく有効期限の設定です。

(7) こちらも正引きの時と同様です。今回$ORIGINは「1.168.192.in-addr.arpa」に変わります。

(8) 正引きの時と同じくNSの設定です。「192.168.1.X」というIPの場合はcross-ring.orgのName Serverを利用するという事になります。

(9) PTR(Domain Name Pointer)の定義を行います。上記の例では、192.168.1.5というIPはcross-ring.orgのホスト名へマッピングしているという事になります。

 

以上で、ゾーンデータベースの作成は完了です。

設定が全て完了した後は、BINDの再起動(起動)を行います。

# service named restart

 

ファイアーウォールの設定

BINDはTCP 53番ポートとUDP 53番ポートを使います。ファイアウォールの設定を行います。

変更するファイルは「/etc/sysconfig/iptables」です。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT ・・・・・・ (10)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT ・・・・・・ (11)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

(10)、(11) TCP 53番ポートとUDP 53番ポートのアクセスを許可します。

設定が完了した後はiptablesの再起動を行います。

# service iptables restart

 

リゾルバの変更

DNSサービスのクライアントの事で、名前解決のために動作しているプログラムです。

「/etc/resolv.conf」の編集を行います。

# Generated by NetworkManager
nameserver 127.0.0.1 ・・・・・・ (12)
#nameserver 192.168.1.1

(12) 追加行で、最初に優先するDNSサーバーを設定しています。

※特に何かを再起動したりとかはしません。

 

動作確認(Linux)

確認にはnslookupを使います。

# nslookup
> cross-ring.org ・・・・・・ (13)
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   cross-ring.org
Address: 192.168.1.5
> cross-ring.net ・・・・・・ (14)
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   cross-ring.net
Address: 203.145.251.120
> exit

(13) nslookupを起動すると「>」という入力欄が表示されるので、今回名前解決するために用意したホスト名を入力します。(今回の場合は「cross-ring.org」)
そのあとに出力される内容を確認して名前解決が成功しているか確認します。
今回はcross-ring.org → 192.168.1.5 へと変換する事なので正常に動作している事が確認できます。
また、今回は「www」や「mail」などを付けた名前解決も可能にしたので「www.cross-ring.org」などでも正しくIPアドレスが返されるか確認しておくと良いと思います。

(14) 念のため外部のサーバーでIPアドレスが引けるか確認を行います。
上記の例では、当サイトでテストをしていますが「google.co.jp」などでも構いません。ホスト名からIPアドレスが取得できるか確認します。

※外部の名前解決のみ失敗する場合は下記をご確認ください。

 

動作確認(Windows)

動作確認をするために、立てたBINDサーバーで名前解決をするように設定が必要です。

DNSサーバーの設定

Windows 7の場合はスタートメニューから「コントロール パネル」を選択。

「ネットワークと共有センター」を開きます。

bind_01

「アダプターの設定の変更」を選択します。

bind_02

ローカルエリア接続で右クリックから「プロパティ」を選択します。

bind_03

「インターネット プロトコルバージョン 4(TCP/IPv4)」を選択して「プロパティ」を開きます。

bind_04

「次のDNSサーバーのアドレスを使う」を選択して「優先DNSサーバー」にBINDサーバーへのアドレスを入力します。

bind_05

※もし、BINDサーバーを四六時中起動していない場合は「代替DNSサーバー」の欄にルーターのIPアドレスを入力しておきます。「例:192.168.1.1」

設定が終われば「OK」をクリックしてウインドウを閉じます。

ホスト名からIPアドレスを引く

Windowsの場合も nslookup を使用します。

Windows 7の場合はスタートメニューから「プログラムとファイルの検索」から「cmd.exe」の検索を行ってコマンドプロンプトを起動します。

bind_06

「nslookup + エンターキー」を入力してnslookupを起動し、以下のように入力してDNSサーバーの動作を確認します。

c:\> nslookup
既定のサーバー: cross-ring.org
Address: 192.168.1.5

> cross-ring.org ・・・・・・ (15)
サーバー: cross-ring.org
Address: 192.168.1.5

名前:    cross-ring.org
Address: 192.168.1.5

> cross-ring.net ・・・・・・ (16)
サーバー: cross-ring.org
Address: 192.168.1.5

名前:    cross-ring.net
Address: 203.145.251.120

> exit

(15) nslookupを起動すると「>」という入力欄が表示されるので、今回名前解決するために用意したホスト名を入力します。(今回の場合は「cross-ring.org」)
そのあとに出力される内容を確認して名前解決が成功しているか確認します。
今回はcross-ring.org → 192.168.1.5 へと変換する事なので正常に動作している事が確認できます。
また、今回は「www」や「mail」などを付けた名前解決も可能にしたので「www.cross-ring.org」などでも正しくIPアドレスが返されるか確認しておくと良いと思います。

(16) 念のため外部のサーバーでIPアドレスが引けるか確認を行います。
上記の例では、当サイトでテストをしていますが「google.co.jp」などでも構いません。ホスト名からIPアドレスが取得できるか確認します。

※外部の名前解決のみ失敗する場合は下記をご確認ください。

 

【番外編】名前解決に失敗する場合

一切、名前解決ができない場合

次の事を確認します。

  1. ファイアーウォールの設定を確認。
    TCPとUDPの53番ポートを開いているか確認。
  2. named.conf の確認
    「listen-on port 53」の設定でサーバーのIPを指定しているか?
    「allow-query」の設定で接続クライアントが対象に入っているか?

外部の名前解決ができない場合

次の事を確認します。

  1. サーバーの時間を確認
    「ntpdate ntp.nict.jp」を実行して時計合わせを行う。
    ※私は、これではまりました・・・orz
  2. named.conf の確認
    「forwarders」でルーターのアドレスを設定しているか確認。
    「recursion」がyesになっている事を確認。

それでも解決しない場合はログファイルの確認を行います。

当サイトの設定では「/var/log/named/default_log.log」のファイルを確認します。

トラックバック

トラックバックURL:

トラックバック & ピンバック

コメントはまだありません。

作ったもの

種牡馬メモサイト

フリーダムウォーズ素材メモサイト

月別アーカイブ

つぶやき

更新記録カレンダー

2019年8月
« 1月    
 1234
567891011
12131415161718
19202122232425
262728293031  

参考書籍

XHTML/HTML+CSSスーパーレシピブックXHTML/HTML+CSSスーパーレシピブック
エ・ビスコム・テック・ラボ

毎日コミュニケーションズ
売り上げランキング : 74419

Amazonで詳しく見る
現場のプロから学ぶXHTML+CSS現場のプロから学ぶXHTML+CSS
益子 貴寛,堀内 敬子,小林 信次,千貫 りこ,伊藤 学,山田 あかね,西畑 一馬,CSS Nite

毎日コミュニケーションズ
売り上げランキング : 39400

Amazonで詳しく見る