0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unbound(DNS)導入メモ

Last updated at Posted at 2025-03-17

自室IPv6化計画の一環です

動機

IPv4の時はサーバ系のアドレスを192.168.11.xxxで手動設定しており、覚えるのは最後の3桁だけだったので簡単に覚えられました。

IPv6にしたらULAの先頭のfdxx.xxxx.xxxxが覚えきれない/(^o^)\

覚えるのを諦めてDNSを導入することにしましたが、以前BINDを使ってものすごく疲弊してDNS自体が暫くトラウマになってたので、簡単と噂のUnboundを使ってみることにしました。

実際めちゃくちゃ簡単で書く内容がほぼなかったのですが、ちょっとだけ躓いたところもあるのでメモだけ残しておきます。

インストール

Fedora40です。
SELinuxはEnforcingにしてますが、特に問題は起きませんでした。

# unboundを使うのでsystemd-resolvedを止める
$ systemctl disable systemd-resolved
$ systemctl stop systemd-resolved
$ mv /etc/resolv.conf /etc/resolv.conf.bk

# unboundのインストール
$ dnf install unbound
$ systemctl enable unbound
$ systemctl start unbound

IPv6のport:53が開いていればOKです

$ ss -na | grep 53
udp   UNCONN 0      0                  [::]:53             [::]:*
tcp   LISTEN 0      256                [::]:53             [::]:*

$ lsof -i:53
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
unbound 1167 unbound    3u  IPv6   9153      0t0  UDP *:domain 
unbound 1167 unbound    4u  IPv6   9154      0t0  TCP *:domain (LISTEN)

最終的にavahi(mDNS|port:5353)も止めました

$ systemctl stop avahi-daemon.socket
$ systemctl stop avahi-daemon.service
$ systemctl disable avahi-daemon.socket
$ systemctl disable avahi-daemon.socket

resolv.confの修正

systemd-resolvedを止めたのでNetworkManagerが起動時に/etc/resolv.confを作るようになります。なのでNetworkManagerのDNSの設定を修正しておきます。

$ vi /etc/NetworkManager/system-connections/<IFの名前>.nmconnection
[ipv4]
...
# IPv4でも使うなら127.0.0.1、IPv6でのみ利用ならルーターのアドレスや1.1.1.1等
dns=127.0.0.1
dns-priority=10

[ipv6]
...
dns=::1
dns-priority=9

dns-priorityは小さな値ほど優先されるようなので、今回IPv6でDNSをしたい!ってことなのでIPv6を優先させます。

これでNetworkManagerを再起動するとresolv.confが書き換わっています。

$ systemctl restart NetworkManager
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver ::1
nameserver 127.0.0.1

unbound.confの設定

$ vi /etc/unbound/unbound.conf

confの中の項目ごとにめっちゃドキュメント書いてあるのが素敵ですね。

だらだら眺めているとremote-controlとか怖い文字列の項目を見たのでセキュリティ対応が必要かなってinclude先まで探ってみると、待ち受けがportではなくファイル(socket)になっていたのでまぁ一安心。unbound-controlコマンドを受け付けるsocketになっているようです。

unbound.confやその下のconf.dやlocal.dの中身を書き換えた後は一部を除いてreloadすれば有効になります。

$ systemctl reload unbound

IFの設定

# 待ち受けアドレス。他の端末からIPv6で参照できるように
interface: ::0

# portがLISTENされてても、アクセスコントロールの許可がないとRefuseを食らう
access-control: fdxx:xxxx:xxxx::/64 allow

# IPv4でも使うならコチラも設定
interface: 0.0.0.0
access-control: 192.168.xx.xxx/24 allow

この辺書き換えた後はunboundの再起動が必要だって書いてました。

# The listen interfaces are not changed on reload, only on restart.

ログの設定

# デフォルトはログ無しだけど、初心者なのでトラブル対応用に
logfile: "/var/log/unbound/unbound.log"
use-syslog: no

トラブル対応用にログはいるよね~って出そうとしたら、ログの出力でトラブルやがな(´・ω・`)

ログがでないなーって思ったらunboundのユーザーがunboundなので/var/log以下へのアクセス拒否を食らってました。

$ mkdir /var/log/unbound
$ chown unbound:unbound /var/log/unbound

上位DNSの設定

室内端末以外は丸投げです。

nameでドメイン名を指定すればそのドメインに対してだけforwardを設定することができますが、丸投げの時は"."だけ書けばいいようです。

Use an entry with name "." to forward all queries.

forward-zone:
        name: "."
        forward-addr: 1.1.1.1
        forward-addr: 8.8.8.8

おしまい

簡単!☺️

一応digったりpingしたりして、上位サーバから名前を引っ張ってこれているか確かめておきます。

$ systemctl restart unbound
$ dig www.google.com
$ dig www.google.com aaaa

ローカルアドレスを設定する

お待ちかねローカルアドレスの設定です。ローカルアドレスと名前はlocal.dの下に書くのがお作法のようです。

$ cd /etc/unbound/local.d
$ vi home.conf

今回はdesktop.homeとかnotepc.homeとかhomeドメインにしたのでhome.confとしましたが、unbound.confで次のようになっているので.confがついていればファイル名は何でもOKです。

include: /etc/unbound/local.d/*.conf

home.confの中にAAAAレコードを記述します。

# FQDNは.を名前の最後に付けるのがお作法(一応無しで試しても動いた)
local-data: "minipc.home. IN AAAA fdxx:xxxx:xxxx::1000"
local-data: "desktop.home. IN AAAA fdxx:xxxx:xxxx::1"
local-data: "notepc.home. IN AAAA fdxx:xxxx:xxxx::2"

後はreloadすれば有効になります。

$ systemctl reload unbound
$ dig desktop.home aaaa

Windows側の設定

サーバのFirewallでDNSが通るようになっているか確認しておいてください。

$ firewall-cmd --list-services
dns ssh

Windowsのネットワークの設定でIPv6のDNSにサーバのアドレスを突っ込みます。DHCPv6やRDNSSを使えばDNSの設定を自動化できますが、それはまた次回。

image.png

これでもう名前解決ができるようになってます。

> nslookup desktop.home
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?