linux:bind_install
DNSサーバの構築
最近のトレンドは権威サーバとキャッシュサーバの分離。KVMで2台DNSサーバ立てることにするとそれぞれ単体で設定すればよいので、その方が単純かつセキュア。(まあ、単純なものほどセキュアなものだが)というのはわかっているのだけれど、もうこの歳になると覚えた時のようにやらないとどうもうまくいかない。三子の魂百までなのか雀百まで踊り忘れずなのかはよくわからんが。
研究室の実際の設定はちょっと違うのだけれど、ここでは以下のような構成で設定する。
ローカルネットワーク | 名前 | IPアドレス |
---|---|---|
ドメイン | local | 192.168.10.0/24 |
DNSサーバ | ns1.local | 192.168.10.1 |
BINDのインストール
インストールはapt
一発。(Ubuntu Serverの場合)
$ sudo apt install bind9
設定ファイル等は/etc/bind
以下に収められている。(Ubuntu 22.04.1 LTSで確認)
Setting-up BIND
そんなもん(8.8.8.8)に飛ばしてしまえ!っつうのは無しにして。
基本的には/etc/bind/named.conf
を変更するのだけれど、bind9.18.1のデフォルトでは
- /etc/bind/named.conf
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones";
のようになっているので、
まずは、/etc/bind/named.conf.options
に必要な設定をする。
- /etc/bind/named.conf.options
acl local-network { 192.168.10.0/24; }; options { directory "/var/cache/bind"; allow-query { localhost; local-network; }; allow-recursion { localhost; local-network; }; allow-query-cache { localhost; local-network; }; forwarders { XXX.XXX.XXX.XXX; }; dnssec-validation auto; };
forwardersのXXX.XXX.XXX.XXX
には学科のDNSサーバを設定する。(将来的に学科のサーバを廃止するときにはどうするんかな)
IPv4プライベートアドレス(RFC1918)のゾーン情報は/etc/bind/named.conf.local
に書けって書いてあるのでそれに従い、
- /etc/bind/named.conf.local
zone "local" IN { type master; file "/etc/bind/db.local"; }; zone "10.168.192.in-addr.arpa" IN { type master; file "/etc/bind/db.10.168.192.in-addr.arpa"; };
のように設定する。
Zoneファイル
- /etc/bind/db.local
$ORIGIN local. $TTL 86400 @ IN SOA ns1.local. mail.address.with.stop.as.delimiter. ( 2022081801 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; IN NS ns1.local. ns1 IN A 192.168.10.1 web IN A 192.168.10.2 mail IN A 192.168.10.3 client IN A 192.168.10.4
- /etc/bind/db.10.168.192.in-addr.arpa
$ORIGIN 10.168.192.in-addr.arpa. $TTL 86400 @ IN SOA ns1.local. mail.address.with.stop.as.delimiter. ( 2022081801 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; @ IN NS ns1.local. ; 1 IN PTR ns1.local. 2 IN PTR web.local. 3 IN PTR mail.local. 4 IN PTR client.local.
bindの起動
設定ファイルのチェックをした後、bindを起動する。
$ named-checkconf $ named-checkzone local db.local zone local/IN: loaded serial 2022081801 OK $ named-checkzone 10.168.192.in-addr.arpa db.10.168.192.in-addr.arpa zone 10.168.192.in-addr.arpa/IN: loaded serial 2022081801 OK $ systemctl start named $ systemctl status named $ netstat -aun | grep 53 ... $ dig @localhost www.ee.ous.ac.jp ...
設定ファイルやZoneファイルを書き換えた後は、(シリアル増やすの忘れんな!)
$ systemctl restart named
BIND = NSD + Unbound
最近だとこんなのがいいらしい。
- dnsdist
- DNSリクエストをバックエンドDNSサーバにフォワード
- QNAME/リクエスト元IPアドレス/QTYPE等毎にバックエンドDNSサーバを指定
- NSD
- Unbound
linux/bind_install.txt · 最終更新: 2022/08/23 13:34 by 127.0.0.1