OpenWrtでDNSサーバーを構築する方法

OpenWrtでDNSサーバーを構築する方法

オープンソースの無料ソフトウェアルーター「OpenWRT」には、デフォルトでDNSサーバー機能が搭載されており有効化されています。(DNSサーバー機能は、dnsmasqというソフトウェアによって提供されています。)

DNSサーバー機能は、デフォルト設定のままでもおおむね問題なく動作しますが、設定を調整することで利用環境に最適な状態に設定を調整できます。

そこでここでは、OpenWRTのWebインターフェースからDNSサーバー機能の設定を調整する方法を解説します。なお、OpenWRTの基本的なインストール方法については、以下の記事をご覧ください。

Hyper-Vでソフトウェアルーター「OpenWrt」の仮想マシンを構築する方法
Hyper-Vでソフトウェアルーター「OpenWrt」の仮想マシンを構築する方法
カスタマイズ性が高くWebインターフェースを備えたオープンソースの無料ソフトウェアルーター「OpenWrt」を、Hyper-Vの仮想マシンにインストールする方法を解説します。

DNSサーバー機能の有効/無効化

DNSサーバー機能を使わない場合は、機能を無効化することができます。

DNSサーバー機能を無効化するには、Webインターフェース(LuCI)の上部メニューから「ネットワーク」>「DHCPおよびDNS」を開いて、「デバイスとポート」タブで「DNSサーバーポート」の値に「0」を設定して「保存&適用」をクリックします。

OpenWrtでDNSサーバーを構築する方法

以上で、DNSサーバー機能を無効化できます。

なお、DNSサーバー機能を有効化したいときは「DNSサーバーポート」の値を未設定に戻して「保存&適用」をクリックすことで、デフォルトの53番ポートで有効化できます。

OpenWrtでDNSサーバーを構築する方法

DNSキャッシュ機能だけを無効化したいときは

DNSキャッシュ機能だけを無効化したいときは、Webインターフェース(LuCI)の上部メニューから「ネットワーク」>「DHCPおよびDNS」を開いて、「制限」タブで「DNSクエリのキャッシュサイズ」の値に「0」を設定して「保存&適用」をクリックします。

OpenWrtでDNSサーバーを構築する方法

デフォルト設定に戻したいときは「DNSクエリのキャッシュサイズ」の値に「1000」を設定して「保存&適用」をクリックします。

OpenWrtでDNSサーバーを構築する方法

DNSクエリのログを記録

DNSクエリのログを記録したいときは、Webインターフェース(LuCI)の上部メニューから「ネットワーク」>「DHCPおよびDNS」を開いて、「ログ」タブで「ログクエリ」のチェックをオンにして「保存&適用」をクリックします。

OpenWrtでDNSサーバーを構築する方法

これで、Webインターフェース(LuCI)の上部メニュー「状態」>「システムログ」から、ログを確認できるようになります。

DNSフォワーディング

DNSサーバーへの問い合わせを別のDNSサーバーにフォワードするときは、Webインターフェース(LuCI)の上部メニューから「ネットワーク」>「DHCPおよびDNS」を開いて、「転送」タブで「DNSフォワーディング」にフォワード先DNSサーバーのIPアドレスを入力して「+」ボタンをクリックして追加して、再度にページ下部の「保存&適用」をクリックします。

以下の画像では、すべての問合せをGoogleパブリックDNSに転送しています。

OpenWrtでDNSサーバーを構築する方法

ドメイン名によってフォワード先を分ける

ドメイン名によってフォワード先のDNSサーバーを変えたいときは、フォワード先DNSを以下のように入力します。以下では、example.comドメインの名前解決を192.168.2.1というDNSサーバーにフォワードします。

/example.com/192.168.2.1

DNSフィルタリング

特定のドメインへの接続をDNSサーバーでブロックしたいときは、上の「ドメイン名によってフォワード先を分ける」の設定で、以下のようにフォワード先DNSサーバーを空で設定することで、指定したドメインへの接続をブロックすることができます。

/example.com/

静的レコードの追加

静的なレコードを追加したいときは、Webインターフェース(LuCI)の上部メニューから「ネットワーク」>「DHCPおよびDNS」を開いて、「DNSレコード」タブでA、AAAA、SRV、MX、CNAMEといった種類のレコードを追加できます。

OpenWrtでDNSサーバーを構築する方法

なお、レコードを追加したときは「保存&適用」をクリックして設定の適用を忘れずに。

コマンド操作で設定したいときは

コマンド操作に慣れている方であれば、Webインターフェースからよりも効率的に設定できるでしょう。コマンドによる設定方法は、以下の公式サイトが参考になります。

[OpenWrt Wiki] DHCP and DNS configuration /etc/config/dhcp

あとがき

ここでは、OpenWrtのDNSサーバー機能の基本的な設定項目だけを紹介しましたが、紹介した以外にも設定項目はかなりあり、Webインターフェースからだけでも十分な設定が可能です。