OPNSenseでローカルホスト名を解決する方法
私のルーターはOPNsense Businessで動いています。オープンソースのルーターを使えるのは気に入っていますが、いくつか不満もあります。
最大の問題は、初期設定のままだとOPNsenseがローカルネットワーク上のホスト名を解決できないことです。
なぜOPNsenseはローカルホスト名を解決できないのか?
これまで使ってきたほかのルーターでは、ネットワーク上にfoo123という名前のコンピューターがあり、メインのデスクトップからping foo123を実行すれば、すべて問題なく動作していました。デスクトップからfoo123へのpingが正常に通ります。
ところがOPNsenseでは、デスクトップからfoo123にpingを実行できません。初期状態のOPNsenseはローカルホスト名を解決してくれないようですが、なぜなのかは分かりません。
状況を多少改善する回避策は見つけましたが、それでも完璧ではありません。
Unboundにローカルホスト名を解決させる
Services > Unbound DNS > Generalに移動します。
次のオプションにチェックを入れます。
- Register ISC DHCP4 Leases
- Register DHCP Static Mappings

Unboundの設定で「Register ISC DHCP4 Leases」と「Register DHCP Static Mappings」にチェックを入れる
Applyをクリックして変更を適用します。
ホスト名を手動で指定する
Unboundを設定しても、OPNsenseがローカルホストを常に解決してくれるわけではありません。理由は分かりません。
OPNsenseに解決させたいだけなのにうまくいかない場合は、マッピングを手動で強制的に設定します。
ローカルドメイン名を選ぶ
- System > Settings > Generalに移動します。
- 「Domain」でローカルネットワーク用のドメイン名を指定します。
- これまでは
localを選ぶものだと思っていましたが、ヘルプには選んではいけないと書かれています。 - ホームネットワーク用として技術的に正しいドメインである
home.arpaを選びました。ただ、なんというか、ひどく不格好です。 - IETFの定義では、実際には
home.arpa.(末尾にドット付き)であるべきなのですが、OPNsenseはこれをドメインとして受け付けず、home.arpaを推奨してきます。そのため、ここではhome.arpaを使います。
- これまでは
- Saveをクリックして変更を適用します。

ホストの静的マッピングを作成する
- Services > ISC DHCPv4 > Leasesに移動します。
- OPNsenseに解決させたいホストを、ホスト一覧から見つけます。
- その行の右端にある
+アイコンをクリックします。Static DHCP Mappingダイアログが表示されます。 IP addressフィールドにローカルIPアドレスを入力します。- Saveをクリックして静的IPマッピングを保存します。
ホスト名の手動オーバーライドを作成する
- Services > Unbound DNS > Overridesに移動します。
- 「Host Overrides」で、オレンジ色の「+」ボタンをクリックして新しいオーバーライドを追加します。
- 「Host」に、静的マッピングで指定したホスト名を入力します。
- 「Domain」に
home.arpaを入力します。 - 「IP address」に、静的マッピングで選んだIPアドレスを入力します。
- Saveをクリックします。
.home.arpaドメインサフィックスを付けてホストを指定する
OPNsenseがホストfoo123を解決できないときでも、foo123.home.arpaなら解決できることがあります。そのため、ホスト名だけでうまくいかなければ、いつもドメインサフィックスを付けて試しています。
ドメイン名がないならローカルネットワーク上のホストを指していると明らかなはずなのに、なぜOPNsenseがサフィックスを必要とするのかはよく分かりません。ただ、.home.arpaドメインを付けると結果が変わることがあります。
ほかに改善方法は?
OPNsenseのホスト名解決を、もっと壊れにくく信頼性の高いものにする方法をご存じなら、コメントで教えてください。
記事をランダムに読む