おつかれさまです。 先日、家庭内にVMware VSphere Hypervisor 7.0(ESXi)の環境を作った関係で、家庭内で名前解決できる環境が欲しくなったので、Unboundを建てることにしました。
Unboundを選んだ理由
Unbound自体はDNSキャッシュサーバ(リゾルバ)ですが、local-zoneという機能を使うと簡易的な内部DNSコンテンツサーバ (権威サーバ)としての機能を持たせることができます。将来的に広告ブロックなどの機能を持ったDNSキャッシュサーバにしたいという 思いもあり、Unboundを選びました。
Unboundのインストール
ESXiのVMとして構築します。ハードウェア構成は以下の通りです。 他にもいろんな機能を持たせたいので気持ち多めになっていますが、Unboundを動かすだけならもう少しコンパクトな環境で動くと思います。 (公式で推奨ハードウェア構成を検索したのですが見つけられず…)
OSは自分が使い慣れているDebianを選びましたが、ほかのディストリビューションでも問題ないです。
$ uname -a Linux dns-ntp-sv 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64 GNU/Linux
# apt-get update # apt-get install unbound
/etc/unboundの下に設定ファイルを置く場所があるので、Unbound.confを編集します。 ※どなたかの設定ファイルを参考に設定したのですが参考元をメモしておくのを忘れました…。思い出したら掲載します。 bbb~の部分はマスクしています。forword-zoneを書かないと、インターネット上のほかの名前解決ができないはずなので 家庭内にあるルータ(こいつ自身はISPから降ってくるDNSキャッシュサーバにforwordしているだけ)とGoogle Public DNSに 向けておきました。この辺は好みなのでISPのDNSキャッシュサーバに直接向けても問題ないと思います。
# cat unbound.conf server: verbosity: 0 #No Log interface: ::1 #IPv6 interface: ::0 #IPv6 interface:127.0.0.1 #IPv4 interface: 0.0.0.0 #IPv4 access-control: 0.0.0.0/0 refuse access-control: ::0/0 refuse access-control: 127.0.0.0/8 allow access-control: ::1 allow access-control: bbb.bbb.bbb.bbb/24 allow # your IPv4 LAN ### access-control: 2001:xxxx:xxxx:xxxx::/64 allow # your IPv6 LAN #INCLUDE FILES include: /etc/unbound/unbound.conf.d/local.zone forward-zone: name: "." forward-addr: 8.8.8.8 # Google public DNS forward-addr: bbb.bbb.bbb.bbb # House DNS forworder
コンテンツサーバとしての記述はlocal.zoneというファイルに記載します。 IPアドレスはマスクしています。
# cat local.zone local-data: "esxi.nty.lab. IN A bbb.bbb.bbb.xxx" local-data: "ntp.nty.lab. IN A bbb.bbb.bbb.yyy" local-data: "zabbix.nty.lab. IN A bbb.bbb.bbb.zzz"
設定確認&リロード
# unbound-checkconf unbound.conf # systemctl reload unbound