rohaniのブログ

ゆるっと自然言語処理奴。ときどき工作系バイト。

サーバ管理未経験者がDNSサーバの保守のために勉強したことをまとめる

ファイルパス等は私の保守対象に依存する

DNS

DNS(Domain Name System)は、ドメイン名とIPアドレスの対応付けや、 メールの宛先ホストを指示するためのシステム。
DNSサーバはドメイン名とIPアドレスの対応を答える役割を持ち、DNSクライアントはリゾルバというプログラムによってDNSサーバに問い合わせを行う。

ツール:BIND

BIND(Berkeley Internet Name Domain)は、いわゆるDNSサーバとリゾルバライブラリ、各種ツールの集合体なアプリケーション。
BIND の実体プログラムをnamed(ねーむでぃー)という。namedは通常 デーモン として稼動し、 FQDN から IPアドレス へ、またはその逆への 名前解決 を担っている。

DNSサーバ側

動作確認

$ ping IPaddress
$ ping domainName

pingコマンドは指定したコンピュータとの間でネットワークが疎通しているかどうかを調べるコマンド。
まず、IPaddressでpingしてみることで、ネットワーク自体が繋がっているか?を確かめられる。
次に、サーバのドメイン名宛にpingしてみることで、IPアドレスドメイン名への変換(DNS)が機能していることが確かめられる。

各種設定確認

$ cat /etc/bind/named.conf

DNSサーバの設定を確認する
BIND自体の基本設定ファイル。DNSサーバー自体の設定の他、正引き用設定ファイルや逆引き用設定ファイルのパスなどを指定する。

$ cat /etc/bind/domain2ip

ドメイン名→IPアドレスの対応(正引き)を確認する
正引き用設定ファイル(ファイル名domain2ipはnamed.confの内容に依存)

$ cat /etc/bind/ip2domain

IPアドレスドメイン名の対応(逆引き)を確認する
逆引き用設定ファイル(ファイル名ip2domainはnamed.confの内容に依存)

設定変更

お好みのエディタで上記3種のファイルを編集できる。

設定変更の反映

$ /etc/init.d/bind restart

DNSのデータベース(/etc/bind/以下)への変更を反映する。ファイルを編集しただけでは反映されないので注意。

$ ps aux | grep named. # プロセスID番号(以下PID)を確認
$ kill PID # 実行中のnamedを殺す
$ /usr/sbin/named -c /etc/bind/named.conf # BINDの起動
$ cd /usr/sbin
$ ./named # namedの再実行

/etc/bind/named.confを編集した場合は、namedの再起動を行う必要がある。
(このとき、外部DNSサーバのnamedはrootアカウントで実行すべきではなく、仮に不正侵入を許しても大丈夫なアカウントで実行させるのが約束事になっている、らしい)

DNSクライアント側

DNSの動作確認

$ ping IPaddress
$ ping domainName

DNSサーバの動作確認の項目と同じ。

設定確認

$ cat /etc/resolv.conf

ゾルバの設定ファイルを確認する
nameserver IPaddress;DNSサーバのIPアドレスを設定する
search localDomainName, ...;domainの複数版で、ローカルドメイン名を設定する。例えばping hogeしたときにping hoge.localDomainNameと自動で補ってくれるようになるらしい