IT

DNSとBINDの基礎【LPIC level2】

DNSとBINDの基礎についてまとめました。

DNSサーバー

DNSサーバーの基本的な役割は、ホスト名とIPアドレスを相互に変換することです。これを名前解決と言います。

BINDは代表的なDNSサーバーソフトウェアで、サーバーデーモンはnamedです。

以下、DNSサーバーに関する基本事項です。

ゾーン

ゾーンとは、DNSサーバーが自ら管理するドメインの範囲のことです。

マスターDNSサーバー、スレーブDNSサーバー

DNSサーバーは複数台で構成されています。これは冗長性を確保する為です。ゾーンファイルを所有するDNSサーバーをマスターDNSサーバー、マスターDNSサーバーの情報を一定期間ごとにコピーし、マスターDNSサーバーと同じ情報を持つようにしているのがスレーブDNSサーバーです。

リゾルバ

リゾルバとは、自分の知っているDNSサーバーに問い合わせを行い名前解決を行うクライアント側のソフトウェアです。

再帰的な問い合わせ

再帰的な問い合わせ(recursive)とは、リゾルバから問い合わせを受けたDNSサーバーが他のDNSに問い合わせを行い、最終的な結果をリゾルバに応答することです。

DNSに問い合わせて名前解決を行うコマンド

nslookup

古くから利用されてきたコマンドです。

host

DNSサーバーを使ってホストやドメインに関する情報を表示します。デフォルトはホスト名とIPアドレスの変換のみです。

dig

より詳細な情報をDNSサーバーから取得できるコマンドです。

BIND

BINDの設定はメイン設定ファイルの/etc/named.confと、ゾーンファイルから構成されています。

acl(access control list)ステートメント

アクセス制御を定義します。

アクセス制御の対象とするIPアドレスやネットワークアドレスのリストを任意の名前で定義します。

includeステートメント

指定された外部ファイルを読み込みます。

optionsステートメント

namedの動作詳細(オプション)を設定します。

directory ディレクトリパス(/var/namedなど);

ゾーンファイルが格納されるディレクトリのパスを指定します。

recursion yes|no

再帰的な問い合わせを受け付けるかの設定をします。yesの場合はキャッシュサーバです。noの場合はゾーンサーバーです。

forwarders { IPアドレス; }

自身が保持しないドメイン情報の問い合わせを転送するDNSサーバーのアドレスを指定します。複数指定可

forward only|first

フォワード(forward)(回送)とは、自身の知らない問い合わせがあれば、別のDNSサーバーにそのまま問い合わせる機能のことです。

forward first

自身が情報を持っていない問い合わせがあればまずフォワードによる名前解決を行い、失敗した場合には自身で再帰的な問い合わせを行います。

forward only

フォワードによる名前解決のみを行い、自身では再帰的な問い合わせは行いません。

allow-query { IPアドレス }

問い合わせを受け付けるホストを指定します。

allow-recursion { IPアドレス }

再帰的な問い合わせを受け付けるホストを指定します。

allow-transfer { IPアドレス }

ゾーン転送を許可するホストを指定します。

blackhole { IPアドレス }

問い合わせを受け付けないホストを指定します。

version “バージョン”

バージョンを表示します。

controlsステートメント

namedを操作できるホストのIPアドレスやポート番号などを指定します。

zone

管理するドメインの範囲を定義します。

rndcコマンド

rndc(remote named daemon control)はnamedの設定や管理をローカルやリモートから行えるコマンドです。

サブコマンド説明
statusnamedの状態を表示
reload ドメイン指定したゾーンファイルを再読み込み
haltnamedを直ちに停止
stop動的な更新等を保存してからnamedを停止

BIND以外のDNSサーバー

dnsmasq

DNSサーバー機能(コンテンツサーバーやキャッシュサーバー)とDHCP機能を持つソフトウェアです。

djbdns

DNSのキャッシュサーバーとコンテンツサーバーが分かれており、安全性を高めたDNSサーバーです。

PowerDNS

RDB(リレーショナルデータベース)として利用できるDNSサーバーです。

今回はDNSサーバーのDNSとBIND(named)の基礎についてでした。

最後まで読んで頂きありがとうございました。

LPIC level2の他の分野へ移動できる全体ページへは以下リンクからお願いします。