BIND9によるネームサーバ構築
On this page
DNSサーバーの構築
ここからは全て、Debian, Raspbian 11で確認している。
自身のローカル(自宅等)ネットワーク(LAN)内でIPを打たずにホスト名で接続できるようにしたい場合、DNSサーバーを構築する。 まずはサーバー機を用意する。そのサーバー機にBindをインストールする。
参考 : 内部向け DNS サーバの構築
$ sudo apt install bind
次に、Bindの設定、名前解決の「正引き」、「逆引き」関係の設定をしていく。 まずは/etc/bind/named.conf.localにBindの設定をしていく
(中略)
zone "<ドメイン名>" {
type master;
file "/etc/bind/<正引き設定ファイル名(任意)>";
};
zone "0.168.192.in-addr.arpa" { //192.168.0.*のような場合
type master;
file "/etc/bind/<逆引き設定ファイル名(任意)>";
};
正引き設定をする。先程の<正引き設定ファイル名(任意)>を設定する。
localネットワークに接続しているPCのホスト名とIPアドレスを調べておく。
linuxならホスト名はhostnameで、IPはifconfigまたはip aで見ることができる。
;
; BIND data file for local loopback interface
;
$TTL 604800 ; このファイルの情報は、他の DNS に 604800の間キャッシュされる
@ IN SOA <サーバーのホスト名>.<ドメイン名>. root.<ドメイン名>. (
<シリアル番号 (任意)> ; Serial
<リフレッシュレート> ; Refresh
<情報更新に失敗した際の時間> ; Retry
<失敗した時間がこの時間経過すると更新しなくなる> ; Expire
<他のDNSがクエリに失敗した時、 この間失敗したことがキャッシュされる> ) ; Negative Cache TTL
;
IN NS <DNSサーバーのホスト名>.<ドメイン名>.
IN MX 10 <DNSサーバーのホスト名>.<ドメイン名>.
IN A <DNSサーバーのIP>
<他PCのホスト名> IN A <ホスト名に紐付いているIP> ;他PCが複数の場合この行をそれぞれ追加
逆引きの設定もする。
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA <サーバーのホスト名>.<ドメイン名>. root.<ドメイン名>. (
<シリアル番号 (任意)> ; Serial
<リフレッシュレート> ; Refresh
<情報更新に失敗した際の時間> ; Retry
<失敗した時間がこの時間経過すると更新しなくなる> ; Expire
<他のDNSがクエリに失敗した時、 この間失敗したことがキャッシュされる> ) ; Negative Cache TTL
;
IN NS <サーバーのホスト名>.<ドメイン名>.
IN PTR <ドメイン名>.
IN A 255.255.255.0 ; サブネットマスク この場合は末尾のIPアドレスが異なるPCを管理
<他PCの末尾のIP> IN PTR <サーバーのホスト名>.<ドメイン名>.
/etc/hosts、/etc/resolvconf.confの設定をする。/etc/hostsはDNS サーバの情報と hosts の情報が不整合を起こさない為に localhost 以外はコメントアウト。
/etc/resolvconf.confはドメインの設定を参照のこと。
sudo systemctl restart namedでbindを再起動する。nslookup、ping等で名前解決できることを確認する。