SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki