2014年03月18日

DNSサーバで名前解決を提供する

前回の記事では、世の中に無数にあるDNSサーバを利用して名前解決の提供を受けた。

今回は自身が名前解決を提供するDNS設定を行う。

目的


DNSサーバ(BIND)の最低限の設定で名前解決を提供する。
WAN側から名前解決要求を受けて、自身が持つ名前(ホスト名)とIPアドレスの対応表から
IPアドレスを返せるようにする。

ゴール


下図の構成において、
LAN側のルータからR3(test1.example.com:192.168.100.252)へのpingを成功させる。

dns10
図1.構成図

CentOSがDNSサーバとなり、R3へtest1.example.comという名前を持たせる。
その名前へのアクセスの要求があった場合は、R3へのアドレスを教えてあげる。

大まかな流れ


DNSサーバに下図のような設定を入れます。

dns21
図2.概要


WAN側から問い合わせがあった際には、下図のような流れでIPアドレスを教えてあげます。

dns22
図3.名前解決提供の流れ

LAN側のルータ(R1やR2)からtest1.example.comへのアクセスの要求も同様の流れで受け入れる。

前提


前回の記事の設定は導入済みであることが前提。

サーバにゾーンを追加


.zoneファイルを作成し、ゾーンを作り出す。
名前の範囲と構成を表すもの。
今回の完成形は以下。

dns44
図4.今回のゾーンの完成形。

ゾーンファイルの作成


/etc/named.confのdirectoryで指定したディレクトリが.zoneファイルの置き場となる。
※デフォルトでは/var/named/ディレクトリ

/var/named/ディレクトリにexample.com.zoneというファイルを置くことでexmple.comというゾーンが作成される。(というのは少し語弊があるかもしれないけれど)

ここまでで下図のような状況。

dns41
図5.example.comゾーンの作成。


ホストをゾーンに追加


/var/named/example.com.zoneに以下の一行を追加する。

/var/named/example.com.zone
ns1 IN A 192.168.100.253;


ns1はns1.example.comと同義。
今回のファイル名がexample.com.zoneなのでns1に.example.comがつく。
ちなみにns1の代わりにns1.example.com.と同義。
最後に「.」をつけることで完全修飾ドメイン(FQDN)となり、ns1.example.com.example.comのようなことにはならない。

INはおまじない。

Aは、ns1に対応するIPアドレスを書く一行であることを示す。
この1行で最左端のホスト名ns1.example.comは最右端のIPアドレス192.168.100.253に対応させている。
よってns1.example.comは192.168.100.253である、となる。


dns42
図6.CentOSにホスト名を付ける。

同様に以下の1行も/var/named/example.com.zoneに追加

/var/named/example.com.zone
test1 IN A 192.168.100.252;


以下のようになる。
また、example.comゾーンも拡張される。

dns43
図7.R3にホスト名を付ける。

ゾーンのDNSサーバの指定と権威情報の設定


/var/named/example.com.zone
@ IN SOA ns1.example.com. admin.example.com.{
2014111111;
28800;
7200;
604800;
3600;
}


SOAは、この記述がDNSの指定とゾーンの詳細情報について書かれるものだと指定している。

@は、example.comと同義。なぜならこのゾーンファイルのファイル名がexample.com.zoneのため。
今回どのゾーンを設定するのか指定するために、ゾーン名をこの位置に記述する。

INはおまじない。

ns1.example.com.は、このゾーンのDNSサーバを指定している。

admin.example.com.は、このドメイン管理者の連絡先。

その他の数字は

シリアル番号(serial)、更新間隔(refresh)、転送再試行時間(retry)、レコード有効時間(expire)、キャッシュ有効時間(TTL)を示すが、詳細は割愛。

以下のようになるはずである。

dns44
図8.サーバの指定?


が、実はこのままでは上図のようにはならないみたいだ。
bindに設定を反映させるために再起動するとエラーが出てしまう。

NSレコードの設定



今までの設定は以下のようになっている。

/var/named/example.com.zone
@ IN SOA ns1.example.com. admin.example.com.{
2014111111;
28800;
7200;
604800;
3600;
}
ns1 IN A 192.168.100.253;
test1 IN A 192.168.100.252;


SOAレコードのns1.example.com.の指定はNSレコードから検索をするようで、その記述が漏れている。

以下のNSレコードを指定する。

/var/named/example.com.zone
@ IN NS ns1.example.com.


@=example.comゾーンのDNSサーバはns1.example.com.であることを示す1行である。


疎通確認


R2からR3へtest1.example.comを指定してpingを打つ。

R2#ping test1.example.com

Translating "test1.example.com"...domain server (192.168.100.253) [OK]

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.252, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 8/16/28 ms


疎通が確認できた。







この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。