owncloudを導入したのでdnsmasqで内向きDNSを立てた

Page content

概要

owncloudとLet’s encryptでDropbox代替サービスを構築した。しかし、LAN内部ではドメインでの名前解決が出来ない。hostsファイルの編集では、外部ネットワーク(大学など)への接続時再編集が必要で面倒だ。そこで、内向きのdnsサーバーを立てることにした。bindは面倒なので、簡易的にdnsmasqを用いた。結果、dnsサーバーの/etc/hostsを編集するだけで名前解決が出来るようになった。**設定が悪いのか、名前解決したいサーバーとは別にセットアップする必要があった。**サーバーxに対して名前解決したいときは別のサーバーyにdnsサーバーを導入する必要があった。これは今の時代、仮想環境でどうとでもなるがちょっとめんどくさかった。

dnsmasqについて

dnsmaskは簡易的なdnsサービスを提供する。名前解決のテーブルに自身の/etc/hostsを用いることが特徴的である。bindのように正引き・逆引きのファイルを作る手間もいらない。自身で解決できなかったドメインに関しては、上位のdnsサーバーで名前解決を試みる。従って、CentOSのネットワークカードに適切な上位dnsを設定しておくことが必要である。

サーバー環境

VirtualBox仮想環境に構築した。OSはCentOS7を用いた。IPアドレスは手動で設定され固定されている。また、上位DNSとして用いるDNSサーバーアドレスが適切に設定されている(ルーターやISP等のアドレスが指定されている)。

dnsmasqのインストール

最小インストール時にすでに導入されている

firewalldの設定

ゾーンはpublicで、ポート53を開放

#firewall-cmd --permanent --zone=public --add-port=53/tcp
#firewall-cmd --permanent --zone=public --add-port=53/udp

/etc/dnsmasq.confの編集

#nano /etc/dnsmasq.conf

変更箇所

port=53(#port=5353になっているのを変更)
domain-needed(コメント外し)
bogus-priv(コメント外し)

/etc/hostsの編集

#nano /etc/hosts

192.168.1.10 xxx.yyy.com の形式で編集する。最初から記載されている2行は変更しない

起動

OS起動時自動的に立ち上がるように設定する。

#systemctl enable dnsmasq
#systemctl start dnsmasq

ルータの設定変更

配布するDNSサーバーのIPアドレスを設定したDNSサーバーへ変更する。これは、各端末のネットワークカードの設定を個別編集してもよいが、外出時など環境が変わる可能性があるマシンがある場合は、一括してルータの設定を変えたほうが便利だ。

完成

nslookupなどを用いて正常に名前解決できているか確かめる。