※ Fedora25 では Wayland がデフォルトになっており、このソフトウェアの GUI 部分は未対応である為に動作しません。従って、GUI で動作させるには、Xorg モードで動作させる必要があります。詳しくはコチラをご覧下さい。

 

通常、一般の人には無縁のページです(そのハズ)。
主に、自宅や事務所などで小規模なネットワークを構築しており、IPアドレス(192.168.0.1など)ではなく、名前(pc01とか)でアクセスしたい人向けだと思って下さい。

 

※ DNS とは、IPアドレスに名前を設定するためのサーバーで、ここの設定以外でも、ネットワーク設定(Linux、OSX、Windowsなど)のDNS設定で、BINDが行われているサーバーを指定する必要があります。
※ hosts ファイルでも設定可能ですが、DNSを利用すると、サーバーで一括管理が行えます。
※ ココで紹介しているのは、DNS設定入門のレベルです。もちろんGUIを使用して細かな設定なども行えますが、専門用語や仕組みを理解していないと、難しいと思われます。より深い設定を行いたい場合は、キーやレコードなどの予備知識が必要です。

 

※ Window7~10 では IPv4 及び IPv6 の両方が有効になっている場合、IPv4 の名前解決が正しく行われないというバグが存在します。(Xpなどでは問題なく、Windows7 で nslookupコマンドが正しい値を返したとしてと、アプリケーションで利用できないケースが多い)そのため、Windows7 以降に対応するには IPv6 の設定も行う必要があります。(IPv4で行った設定と同じ事をIPv6でも行うだけ。単純に作業が2倍になる)

 

インストール

『ソフトウェアの追加/削除』でBINDをインストール

 

※ Fedora22 からは DNF を用いてインストールを行います。詳しくはコチラをご覧下さい。

 

BIND インストール

 

※ もちろんインストールされていれば、無視してもらえば問題ない
※ パッケージ名『bind』と『bind-chroot』をインストールして下さい。

 

『ソフトウェアの追加/削除』でBIND用のGUIをインストール

 

BIND GUI インストール

※ パッケージ名『system-config-bind』をインストールして下さい。

 

これで準備は完了だ。

 

設定

 

『システム』>『管理』>『サービス』でサービスの確認

BIND サービス確認

 

※本来ならサービスの開始は一番最後でも問題はないハズだ。無理にこの段階でサービスを開始する必要はない。

 

  • 一覧の中に『named』があることを確認する。
  • 『無効』(赤色)になっている場合は『有効』(緑色)にする。
  • コンセントが刺さっていない場合は、『開始』をクリックしてサービスを開始しよう。

 

※ Fedora 15 以降ではサービスの設定方法が変更されています。詳しくはココを参照して下さい。
※ 『/etc/sysconfig/named』に『ROOTDIR=/var/named/chroot』の行を追加して下さい。(存在しない場合のみ)

 

GUI での設定

GUI で設定する前に

インストールディスクから BIND 関連をインストールした場合などでは、BIND 用の chroot (bind-chroot) がデフォルトで組み込まれるようです。この場合、設定ファイルなどが「/var/named/chroot」配下に移動するわけですが、設定ファイルがデフォルトではコピーされておらず、GUI の起動や保存が失敗するようです。そこで、以下のコマンドを必ずスーパーユーザーで実行して下さい。

 

# /var/named 配下の chroot を除くすべてのファイルを /var/named/chroot/var/named にコピー
cp -uRp /var/named/*.* /var/named/data /var/named/dynamic /var/named/slaves /var/named/chroot/var/
# /etc 配下で BIND で利用するファイルを /var/named/chroot/etc にコピー
cp -uRp /etc/named* /etc/pki /etc/localtime /etc/rndc.key /var/named/chroot/etc/
# /var/named の SELinux コンテキストの修正
restorecon -R /var/named

 

『システム』>『管理』>『サーバー設定』>『ドメインネームシステム』
もしくは
『アップリケーション』>『システムツール』>『ドメインネームシステム』
を選択する

 

※ chroot を使用する場合は、ファイル『/etc/sysconfig/named』に『ROOTDIR=/var/named/chroot』の行がある事を確認して下さい。もしない場合は、追加して下さい。

 

BIND 設定その1

 

まずは、アクセス制御リスト(ACL)を設定しましょう。

※ アクセス制御リスト(ACL)とは、DNSへのアクセスするマシンを決定(許可)するためのモノです。

 

一覧から『アクセス制御リストフィルタ』を選択し、『新規』をクリックして『アクセス制御リストフィルタ』を選択して下さい。

 

※ 一覧から『DNSサーバー』を選択した場合は、『アクセス制御リスト』になります。
※ 何も選択されていない場合に『新規』をクリックした場合は、『アクセス制御リスト』になります。

 

BIND ACL 設定

BIND ACL 設定その2

BIND ACL 設定その3

ここで注意してもらいたいのは、①『アクセス制御リスト名』

※ 基本的にこのGUIは、設定ファイルの書き換えを行うものですので、日本語、スペースや殆どの記号などは使用できません。アルファベットを中心に入力するようにして下さい。

 

②の『新規一覧エレメント』を選択して下さい。通常は、『IPv4 アドレス』で良いハズです。

※ 『ローカルホスト』とは、自分自身を指すもので、『IPv4 アドレス』で『127.0.0.1』と指定するのと、殆ど同じ意味です。

 

③にIPアドレスを入力して下さい。

※『192.168.0.1』など固定のアドレスを入力する場合は、④のマスク幅は『32』のままでOK
※『192.168.0』など、末尾を省略する場合は、『24』と入力(1マス8ビット、3マスなので24)

 

⑤の項目は、拒否アドレスとして指定する場合にクリック。『!』が表示されます。

 

『追加』のボタンをクリックで、入力完了。複数件ある場合は、件数分行ってください。

 

最後に『OK』をクリック。

 

すると、ロウトのアイコンが付いた『アクセス制御リストフィルタ』が『BIND設定のGUI』に追加されます。

 

ゾーンの設定

ゾーンとは、区分けとか分類だとか思って下さい。例えば、一階、二階とか、総務部、開発部とか。

 

まずは、『DNSサーバー』を選択し、右クリックで、『追加』>『ゾーン』を選びます。

 

BIND ZONE 設定その1

BIND ZONE 設定その2

①の『クラス』ですが、『IN インターネット』を選択して『OK』を押して下さい。LANでもアドレス形式がインターネットですので、当然ですね。
②の『オリジンのタイプ』ですが、『転送』を選択して『OK』を押して下さい。ここでは何も考えないで下さい。
③の『ゾーンタイプ』は、定義を行いたいので『master』を選択。

 

BIND ZONE 設定その3

すると、ゾーン名の入力が可能になります。
ここで、④にゾーン名を入力することになりますが、名前の最後に必ずピリオド(.)を付けて下さい。

※ 基本的にこのGUIは、設定ファイルの書き換えを行うものですので、日本語、スペースや殆どの記号などは使用できません。アルファベットを中心に入力するようにして下さい。

 

ここでは仮に『floor-1.』(1階)と入力して『OK』を押します。
すると、

 

BIND ZONE 設定その4

が、表示されます。

 

注意して入力する場所は3ヶ所
①には、自分のサーバ名を入力し、名前の最後に必ずピリオド(.)を付けて下さい。
②には、メールアドレスを入力し、名前の最後に必ずピリオド(.)を付けて下さい。
③には数字を入力すれば良いのですが、ユニークにする必要があります。時間などから独自の番号を指定して下さい。

※基本的にこのGUIは、設定ファイルの書き換えを行うものですので、日本語、スペースや殆どの記号などは使用できません。アルファベットを中心に入力するようにして下さい。ただし、③は数字のみ。その他はデフォルトでOK。

 

検索レコードの追加

ここまで来ると、もう一息です。
名前とIPアドレスの関連付けを行いましょう。

 

ゾーン『floor-1.』を選択し、右クリックで『追加』>『A IPv4 アドレス』を選択します。

 

BIND レコード 設定その1

すると、次のような画面が表示されますので、検索レコードを追加します。

 

BIND レコード 設定その2

①にはマシン名を入力します。名前を仮に『pc1』とすると、『floor-1』の『pc1』ですので、『pc1.floor-1.』となります。

※名前の最後に必ずピリオド(.)を付けて下さい。基本的にこのGUIは、設定ファイルの書き換えを行うものですので、日本語、スペースや殆どの記号などは使用できません。アルファベットを中心に入力するようにして下さい。

 

②にはIPアドレスを入力して下さい。

③の『リバースマッピングレコードの作成』は、IPアドレス→マシン名変換用のレコードを作成するオプションです。必ずチェックして下さい。

 

その他はデフォルトでOK

 

これで、検索レコードが追加されました。(該当ツリーを開いて表示しています。)

 

BIND レコード 設定その3

①マシン名→IPアドレス変換用のレコード 『floor-1』の中に『pc1』が追加されています。
②IPアドレス→マシン名変換用のレコード 『192.168.2』の中に『1』が追加されています。

 

編集が終了しましたので、『保存』アイコンをクリックします。
すると、

 

BIND 再起動

と表示されればOKです。

※ このダイアログは BIND が SystemD に移行したシステム(Fedora17~)では表示されません。また、設定の読み込みは行われませんので、『systemctl』コマンドで再読み込みを行わない限り、設定は反映されません。

 

確認

さて、確認を行いましょう。

 

『アップリケーション』>『システムツール』>『端末』を選択

 

マシン名→IPアドレス変換のテスト

マシン名→IPアドレス変換のテスト

①のように入力します。

 

 dig @localhost pc1.floor-1
  dig コマンド
  @localhost 自分自身のDNSに検索
  pc1.floor-1 検索するマシン名

②のように『ANSWER SECTION』が存在し、IPアドレスが返ってくればOK

 

次に、IPアドレス→マシン名変換をテスト

 

IPアドレス→マシン名変換をテスト

①のように入力します。

 

dig @localhost -x 192.168.2.1
dig コマンド
@localhost 自分自身のDNSに検索
-x IPアドレス→マシン名変換指定
192.168.2.1 検索するIPアドレス

 

②のように『ANSWER SECTION』が存在し、マシン名が返ってくればOK

 

最後に、他のマシンからも検索出来るように、システムのファイヤーウォール設定を行います。

 

BIND Firewall 設定

①のDNSにチェック
②の適応をクリック

 

これで、他のマシンからもアクセスできるハズです。

 

※ FirewallD を利用している場合は、コチラをご覧下さい。

 

その他の設定

その他の設定は『DNS サーバー』を右クリックして行います。

 

BIND GUI サーバーオプションダイアログ起動

『編集…』の項目を選択し、サーバーオプション設定ダイアログを表示します。

BIND GUI サーバーオプションの指定

『allow-query』(アドレス変換の問い合わせ許可)や『listen-on』(受付対象の指定)など、独自に設定したい項目がある場合は、このダイアログで指定します。この時、アドレス部分に『Any』を指定した場合は、「全て」が対象になります。

 

サービスの自動起動設定

SysVInit 系( ~ Fedora16 )

chkconfig –level 35 named on

Systemd 系( Fedora17 ~)

systemctl enable named-chroot.service

 

Fedora17 以降での設定

Fedora17 では BIND 自体も systemd に移行しており、独自の設定が必要です。

 

※ Fedora 20 以降では rsyslog に代わり、 journal が利用されます。従って、この rsyslog 設定は不要になりました。ログの確認は、ココで説明してある journalctl コマンドを利用します。(例:『journalctl -f -u named-chroot』)

 

『/etc/rsyslog.d』に『named-rsyslog.conf』(以下のファイルを作成)を追加

 


# Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
# line to your /etc/rsyslog.conf file. Otherwise your logging becomes
# broken when rsyslogd daemon is restarted (due update, for example).
$AddUnixListenSocket /var/named/chroot/dev/log

 

rsysrog の再起動

コマンドを実行『systemctl restart rsyslog.service

 

BIND サービスの有効化および起動

コマンドを実行

 


systemctl enable named-chroot.service
systemctl disable named-sdb-chroot.service named.service
systemctl start named-chroot.service

※ 有効にするサービスはサービス名で決定して下さい。

 

BIND のサービスファイル

 

  • named-chroot.service
    • chroot を使用したBIND(通常はコレを使用します)
  • named-sdb-chroot.service
    • chroot と DB を利用したBIND(sdbインターフェイス:Simplified Database Interface)
  • named.service
    • シンプルなBIND

※ Systemd がよく分からない場合はココを参照して下さい。