有馬総一郎のブログ

(彼氏の事情)

UbuntuサーバーをUnboundでDNSサーバーに。そしてTP-Link AC2600のプライマリDNSにする。

折角、VPNを使って、自宅サーバを外部からもプライベートネットワーク接続できるようになったのだから、内部IPアドレスではなくドメインで接続したい。ということで内部用DNSサーバを立てることにした。

参考にしたのはこのサイトUnboundを使ってお手軽内向きDNSサーバーを構築する | web net FORCE

sudo apt-get install unbound
sudo cp /usr/share/doc/unbound/examples/unbound.conf /etc/unbound/unbound.conf.d/
sudo vim /etc/unbound/unbound.conf.d/unbound.conf

unbound.confのテンプレートをコピーしてきて、unbound.confを編集する。

verbosity: 1

# デフォルトポートで受付
interface: 0.0.0.0
# ローカルネットのみ受付
access-control: 127.0.0.0/23 allow
access-control: 192.168.0.0/23 allow
# 以下のDNSを解決
local-data: "arimasou16.dip.jp. IN A 192.168.1.10"
local-data-ptr: "192.168.1.10 arimasou16.dip.jp."
local-data: "arimasou16.tplinkdns.com. IN A 192.168.1.10"
local-data-ptr: "192.168.1.10 arimasou16.tplinkdns.com."

・・・中略・・・

# forward-zone:
#       name: "example.org"
#       forward-host: fwd.example.com
  forward-zone:
    # 全てのクエリを転送
    name: "."
    # Google DNS サーバー
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

編集後、サービス再起動sudo service unbound restart

それからファイヤーウォールでDNSで使用するポートを開ける。sudo ufw allow 53

そしてTP-Link AC2600のDNSサーバ設定を変更する。詳細設定タブ -> インターネットでDNSサーバーを指定する。

設定項目 設定値
インターネット接続タイプ 静的IP
IPアドレス 192.168.1.2
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.1.1
プライマリDNS 192.168.1.10
セカンダリDNS 192.168.1.1

通常は動的になっていると思うが、ブロードバンドルータが間に挟む場合は固定してブロードバンドルータからの自身のIPアドレスは固定されてたい方がいいので、これを機に固定する。そして、DNSサーバーを指定する。セカンダリはブロードバンドルータに任せるためにルータを指定。

これでスマホやLinux端末では特に hostsファイルを弄ることなく、ドメイン名からローカルにあるサーバーに接続できるようになる。

しかし、これだと、Windowsは上手く行かない。というのもIPv6 が IPv4 より優先されてしまう - マイクロソフト コミュニティからだ。

C:\Users\Arimasou16>nslookup arimasou16.dip.jp
サーバー:  UnKnown
Address:  1234:567:8901:abcd:efd:7899:0000:1234

権限のない回答:
名前:    arimasou16.dip.jp
Address:  1xx.1x.1xx.2xx


C:\Users\Arimasou16>

まあ、スマホではできるようになったので、OKとする。

Comments