Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Pi-hole v6: Setting up wildcard domains

2025年09月12日に「Dev.to」が公開したITニュース「Pi-hole v6: Setting up wildcard domains」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Pi-hole v6でワイルドカードドメインを設定するには、dnsmasq設定ファイルを`/etc/dnsmasq.d/`に作成し、`server=/ドメイン/#`、`address=/.ドメイン/IP`を記述する。v6では設定ファイルがデフォルトで無効なため、「All Settings > Miscellaneous > misc.etcdnsmasq_d」で有効化が必要だ。これにより、サブドメインの手動設定を効率化できる。

出典: Pi-hole v6: Setting up wildcard domains | Dev.to公開日:

ITニュース解説

システムエンジニアを目指す皆さんにとって、ネットワークの基礎となるDNS(Domain Name System)の仕組みを理解することは非常に重要だ。Pi-holeというツールは、家庭や小規模オフィスネットワークにおけるDNSサーバーとして人気があり、主に広告ブロック機能で知られているが、DNSに関する様々な設定をカスタマイズできる点で、ネットワーク管理の学習にも役立つ。今回は、このPi-holeの最新バージョンであるPi-hole v6で「ワイルドカードドメイン」を設定する際の具体的な手順と、その際に遭遇する可能性のある課題について解説する。

まず、DNSについて簡単に説明する。インターネット上のウェブサイトは「google.com」のようなドメイン名で識別されるが、コンピューターは実際には「172.217.160.142」のようなIPアドレスという数字の羅列で通信を行う。DNSは、このドメイン名をIPアドレスに変換する「電話帳」のような役割を担っている。通常、私たちはISP(インターネットサービスプロバイダ)が提供するDNSサーバーを利用するが、Pi-holeを導入することで、自分のネットワーク内で独自のDNSサーバーを運用できるようになる。これにより、広告ドメインへのアクセスをブロックしたり、特定のドメイン名を独自のIPアドレスに解決させたりといったカスタマイズが可能になるのだ。

今回解説する「ワイルドカードドメイン」とは、例えば「*.myserver.com」のように、特定のドメインの前にどんな文字列があっても、まとめて一つのIPアドレスに解決させる設定のことだ。例えば、「blog.myserver.com」も「wiki.myserver.com」も「dev.myserver.com」も、すべて同じ「myserver.com」のサーバーのIPアドレス(例えば100.101.102.103)にアクセスさせたい場合に非常に便利だ。通常であれば、サブドメインごとに個別の設定が必要になるが、ワイルドカードドメインを利用すれば、設定の手間を大幅に削減できる。特に、多数のウェブサービスを一つのサーバーで運用している場合や、今後増えていく可能性がある場合に、この機能は大きなメリットをもたらす。

しかし、Pi-holeの最新バージョンであるPi-hole v6では、ワイルドカードドメインの設定において、以前のバージョンとは異なる重要な変更点がある。それは、Pi-holeがDNS解決を行う際に内部で利用している「Dnsmasq」というソフトウェアの設定ファイルが、デフォルトでは読み込まれなくなったという点だ。Dnsmasqは軽量なDNSおよびDHCPサーバーソフトウェアで、Pi-holeはこれを活用してDNSクエリの処理を行っている。以前のPi-holeでは、/etc/dnsmasq.d/ ディレクトリにカスタム設定ファイルを作成すれば、自動的にその設定が適用されていた。しかし、Pi-hole v6からはこの挙動が変更され、この設定ファイルを読み込むには、Pi-holeの管理画面から明示的にその機能を有効にする必要が生じた。これが、多くのユーザーがPi-hole v6でワイルドカードドメインを設定する際に直面する「落とし穴」となる。

では、具体的にPi-hole v6でワイルドカードドメインを設定する方法を見ていこう。まず、Pi-holeのWebダッシュボードからはワイルドカードドメインを直接設定する機能が提供されていないため、手動でDnsmasqの設定ファイルを作成する必要がある。この設定ファイルは、/etc/dnsmasq.d/ ディレクトリ内に配置する。例えば、99-myserver.com.conf のような名前でファイルを作成する。ファイル名の 99 は、複数の設定ファイルがある場合に読み込まれる優先順位を示す数字であり、特にこだわりがなければ任意の数字で構わない。このファイルの中に、次のような内容を記述する。

server=/myserver.com/# address=/.myserver.com/100.101.102.103

これらの2行にはそれぞれ重要な意味がある。 1行目の server=/myserver.com/# は、Pi-holeが myserver.com ドメインに対するDNSクエリを受け取った際に、外部の(アップストリーム)DNSサーバーにその解決を問い合わせるのを防ぐ役割がある。通常、Pi-holeは自分で解決できないドメインに対しては、事前に設定された外部のDNSサーバー(Google DNSやCloudflare DNSなど)に問い合わせを行う。しかし、ここで # を指定することで、「myserver.com の解決については、外部には問い合わせず、このPi-hole内で完結させる」という指示を与えている。これにより、次の行で指定するカスタム解決が確実に適用されるようになる。

2行目の address=/.myserver.com/100.101.102.103 がワイルドカードドメインの設定の核心となる。この行は、「.myserver.com で終わるすべてのドメイン名(つまり、myserver.com そのもの、および *.myserver.com の形式のすべてのサブドメイン)に対して、100.101.102.103 というIPアドレスを返す」という指示をしている。ここで指定するIPアドレスは、皆さんがワイルドカードドメインでアクセスさせたいサーバーの実際のIPアドレスに置き換える必要がある。この設定により、blog.myserver.comwiki.myserver.comfoobar.myserver.com といったあらゆるサブドメインが、一括して 100.101.102.103 へと解決されるようになるわけだ。

設定ファイルを作成し保存したら、次にPi-hole v6特有の重要な手順に進む。それは、Dnsmasq設定ファイルのロード機能を有効にすることだ。Pi-holeのWebダッシュボードにログインし、「All Settings」メニューを開く。そこから「Miscellaneous」タブを選択し、「Dnsmasq config files」という項目を探す。通常は misc.etcdnsmasq_d と表示されているフィールドがこれにあたる。ここにチェックを入れるか、設定を有効にするオプションを選択することで、/etc/dnsmasq.d/ ディレクトリ内の設定ファイルがPi-holeによって読み込まれるようになる。この設定を有効にしない限り、いくら設定ファイルを作成してもPi-holeはそれを参照せず、ワイルドカードドメインの設定は機能しないので注意が必要だ。

設定を有効にした後、Pi-holeを再起動するか、DNSサービスの再読み込みを行う必要がある場合があるが、通常はWebダッシュボードでの設定変更が自動的に適用される。設定が正しく機能しているかを確認するには、dig コマンドを使用するのが最も確実な方法だ。例えば、自分のPi-holeのIPアドレスが 192.168.1.123 で、設定したドメインが myserver.com であれば、以下のようにコマンドを実行してみよう。

dig foobar.myserver.com @192.168.1.123 +nocomments

このコマンドは、「foobar.myserver.com というドメイン名を、192.168.1.123(Pi-hole)に問い合わせて解決してください」という意味になる。もし設定が正しければ、出力結果の中に foobar.myserver.com. 0 IN A 100.101.102.103 のような行が表示されるはずだ。これは、「foobar.myserver.com100.101.102.103 というIPアドレスに解決された」ことを示している。この結果を確認できれば、ワイルドカードドメインの設定は無事に成功したことになる。

もし、設定するワイルドカードドメインがごく少数で、/etc/dnsmasq.d/ に個別のファイルを作成する手間を省きたい場合は、Pi-holeのWebダッシュボードの「All Settings > Miscellaneous」ページに別の便利なオプションがある。「Dnsmasq custom configuration」という項目、または misc.dnsmasq_lines と表示されているフィールドだ。ここに、先ほど設定ファイルに記述した server=/myserver.com/#address=/.myserver.com/100.101.102.103 の2行を直接入力することができる。これにより、ターミナルにアクセスしてファイルを作成・編集する手間を省き、Webインターフェースだけで設定を完結させることが可能になる。これは非常に手軽な方法だが、設定が複雑になったり、行数が増えたりする場合には、やはり個別の設定ファイルとして管理する方が見通しが良い場合もあるだろう。

このように、Pi-hole v6でのワイルドカードドメインの設定は、Dnsmasq設定ファイルのロード方法が変更されたため、少し手間が増えたものの、その本質的な設定方法は変わらない。この設定が完了すれば、皆さんは自分のネットワーク内で、大量のサブドメインを手動で設定する煩わしさから解放され、より効率的にネットワークサービスを管理できるようになる。システムエンジニアとして、このようなネットワークのカスタマイズやトラブルシューティングの経験は、必ず皆さんのスキルアップに繋がるはずだ。今回の解説が、Pi-holeを使ったネットワーク管理の理解を深める一助となれば幸いだ。

関連コンテンツ