BIND9をchrootで建てる【後編】

目次

昔閉鎖したブログから復活させた記事です
ごちゃついていますが見たい方はどうぞご覧下さい。

ひとこと

前回BIND自体は建てられたのですが、若干不足がありました。BIND以外の設定にも少し触れたいと思います。

rndcの設定

bind を遠隔操作できる奴らしいのですが、systemd のUnit定義ファイルでも使われていたようでエラーを吐いてました。active にはなっているのですが、stop しようもんなら次々にエラーを吐きます。これを解消すべく設定を行います。

rndc認証鍵の作成

それ専用のコマンドがあるみたいなので使います。

$ sudo su -
# cd /chroot/named/etc
# rndc-confgen -r /chroot/named/dev/urandom > key.txt

key.txt を開きます。

# vim key.txt
省略
# key "rndc-key" {
#       algorithm hmac-md5;
#       secret "**********************==";
# };
#
# controls {
#       inet 127.0.0.1 port 953
#       allow { 127.0.0.1; } keys { "rndc-key"; };
# };

:%s/# //g をしてからだとヤンクしやすいです。key と controls のブロックをすべてヤンクします。

named.conf.optionsを編集

先ほどヤンクした内容をこのファイルの先頭にペーストします。

key "rndc-key" {
    algorithm hmac-md5;
    secret "**********************==";
};
controls {
    inet 127.0.0.1 port 953
    allow { 127.0.0.1; } keys { "rndc-key"; };
};
省略

このとき key のブロックだけもう一度ヤンクしておきます。

rndc.keyの作成

新たにファイルを作成します。rndc コマンドで鍵を指定するために使用します。

# vim rndc.key

先ほどヤンクした内容をペーストして完了です。

systemdの設定

Unit定義ファイルを編集します。

# vim /lib/systemed/system/bind9.service

開けたら、ExecReload と ExecStop だけ以下のように書き換えてます。

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
Wants=nss-lookup.target
Before=nss-lookup.target
[Service]
EnvironmentFile=/etc/default/bind9
ExecStart=/usr/sbin/named -f $OPTIONS
# ココの2行(以下は書き換え後)
ExecReload=/usr/sbin/rndc -k /chroot/named/etc/rndc.key reload
ExecStop=/usr/sbin/rndc -k /chroot/named/etc/rndc.key stop
[Install]
WantedBy=multi-user.target

ここまで出来たらbind9を再起動しましょう。

# systemctl restart bind9

特にエラーなど出ていなければ成功です。

セカンダリネームサーバーの設置

お名前.com でドメインを取得したのですが、こちらがセカンダリを無料で貸してくれるそうなのでありがたく使わせて頂きます。

お名前.com での操作

まずお名前.com でログインします。画像などはありませんがそれほど難しくないので言葉だけで説明します。

DNS のタブをクリック。

↓

ドメインのDNS関連機能設定 を選択のうえ次へをクリック

↓

設定したいドメインを選択して次へをクリック

↓

セカンダリDNS(Slave)を利用する で設定するをクリック

↓

ここで自分の建てたDNSサーバーのIPアドレスを登録します。

named.conf.external-zonesの編集

セカンダリDNS へのゾーン転送を許可する必要があります。

view "external" {
    zone "kusshie.com" {
        type master;
        file "kusshie.com.wan";
        # ここから追記
        allow-transfer {
            # セカンダリのIPアドレス
            163.44.76.202;
        };
        allow-notify {
            # セカンダリのIPアドレス
            163.44.76.202;
        };
        # 追記ここまで
    };
省略
};

NSレコードの追記

正引き情報と逆引き情報のそれぞれにNSレコードを追記します。

    IN    NS    2nd.dnsv.jp.

/chroot/named/etc/namedb にある正引きと逆引きの2つのファイルにそれぞれ追記する必要があります。

ネームサーバーの登録

レジストラにネームサーバーを登録しなければ誰にも認知されませんから、自分の建てたDNSが機能することはありません。したがって、ネームサーバーの登録を行います。

先ほどセカンダリの設定をしたページの左にある縦に長いメニューにDNS設定/転送設定と書かれている場所があるのでそこをクリックします。

そうするとドメインを選ぶ画面に戻ってくるのでもう一度設定したいドメインを選択して次へをクリックします。

セカンダリの設定の下に「ネームサーバー名としてホスト登録を行う」と書かれたところがあると思います。

そこをクリックしてネームサーバーのホスト名を登録して下さい。

自分のネームサーバーのIPアドレスが 10.0.0.1 で、ns.example.com というドメイン名を付けていたとします。

自分の建てたDNSには登録されているかもしれませんが、現時点では誰もそれを知りません。したがって、少なくともお名前.com には認識してもらえるようにIPアドレスと一緒に登録を行うわけです。

これでお名前.comは ns.example.com を認識できるようになりました。

ここまで出来たらあとは簡単です。

左の縦長メニューにあるネームサーバーの変更からプライマリとセカンダリを登録して完了です。

まとめ

スクショとるのが面倒で最後の方は雑な説明になりました。こんな感じで独自DNSサーバーを稼働させられます。こんな面倒なことするより、お名前.com とかそれ以外のDNSサーバーを間借りさせてもらう方が簡単で速いです。しかし、苦労して構築することでDNSの仕組みについても考えるきっかけになるので悪くないのではと思います。暇な人はやってみて下さい。

疲れた。




Archives

2022 (6)
2021 (3)
2020 (4)

Writer

筆者のイメージ画像
kusshie

情報系学部に所属していた社会人1年生です。大学ではネットワークを学んでいましたがまだまだです。 最近は友達に誘われてISPごっこに足を踏み入れました (AS63791)。