Windows ホストにDNSサーバーを立てる

執筆:2021.07.18
編集:2021.07.18
編集:2021.11.19
編集:2021.12.5


注)2021-11-19

DNSサーバーを立てると WSLサービス Ubuntu、docker が利用できません。
エラー: 0xffffffff
Press any key to continue...

参考:WslRegisterDistribution failed with error: 0xffffffff #4364
https://github.com/microsoft/WSL/issues/4364


DNSサービスは、別マシンに作ったほうがいいかもです


注)2021-12-5

Atermの上位機種のルーターにDNS機能がないので、まさかの買い替え前の低速の低価格のほうのルーターに「DNSルーティング設定」という簡易DNS機能が搭載されていました。

Aterm 買い替え前
のAterm
(脆弱性あり:
メーカー未対応)

脆弱性問題解決
と高速化のために
数年前に買ったルーター

Aterm WG1800HP4

簡易NAS ×
DNSルーティング ×
中継機能/子機モード ×
付属品:USB子機 ×
速度 WIFI
300Mbps
1300Mbps
450Mbps
速度 有線 1000Mbps 1000Mbps
WIFIバージョン WIFI4 WIFI5

WIFIの脆弱性があるのでセキュリティ的に問題がありますが、古いルーターから wifiを飛ばせば、簡単に名前解決でき、スマホ、タブレットでプライベートドメイン名でアクセスできました。

必要な時だけ電源いれて、出力を12.5%に絞っているので外にはほとんど漏れていないと思います。

いろいろ触ってわかったこと
中継機能/子機モードは、WIFIを使ったブリッジ接続で、中継機能/子機モードの違いはWIFIのアクセスポイントの有無だけ。
親機がスマホの場合、中継機能/子機モードは、DHCP機能がなくなるので、任意の固定プライベートIPを割り当てるには もう1個ルーターを挟む必要がある。

「DNSルーティング設定」がある最新のルーターに買い替えれば、脆弱性も含めて解決ですね
来年以降、WIFI6の安くていいのがあれば買い換えてみようと思います。

手持ちのルーターで解決できる問題でしたので
WSL2と競合するのでWindowsのDNSアプリは撤去しました。

Aterm WG1800HP4は、先日解約したトリオモデムと相性が悪く、NECサポートに問い合わせて教えてもらった設定にしないと 不定期にインターネット未接続になる(WAN端子切断)現象があったので、
また次のプロバイダでAtermでデフォルト設定で接続できないとか発生すると、目から涙になるので
WIFIルーターは脆弱性問題で長く使える製品ではないし
今度は、お試しで 他のメーカーにしようと思います!



C:\WINDOWS\SYSTEM32\DRIVERS\etc\hosts
/etc/hosts
に設定を加えていましたが管理が面倒です

https://www.nic.ad.jp/ja/newsletter/No22/080.html
> HOSTS.TXTからDNSへ
なるほど私は原始的なことをしていたわけですね 😅

ホストOSのほうは、コメントを入れたりしているので、手書きでいいのですが
ゲストOSにもドメインと固定IPを割りあてているため毎回入力更新はとても面倒です。

ゲストOSは、ホストのDNSサーバー指定するだけで解決するので
アプリで管理したほうがいいかも
ということで、検討に入りました。

アプリで対応する場合
Windows付属のDNSサーバー
 (Windows Serverを持っていないので詳細不明)
・WSL2のゲスト内のDNSサーバー
・仮想マシンのゲストOSのDNSサーバー
・DNS専用 Windowsアプリ

機材で対応する場合
・DNSサーバー機能のあるなんらかの端末
ルーター、NAS、パソコンなど


フリーアプリは、余計な機能があると思うので、自前で調達。

さて、3分クッキングで完成できるのがありますよね。
TIdDNSServerを貼り付けて、入力して、Buildしたら完成。
カップラーメンより早い出来。

設定値をディスクに保存する場合は、書き込み権限などセキュリティを意識しないといけないし面倒。
設定値を変更したい場合は、コードを直接修正してアプリを再構築すればいいでしょう。

とにかく複数のこまかい管理は したくないのです.
取り合えず、下記の仕様で暫定運用してみようと思います
・アプリの多重起動を禁止しておく
・一定周期で、ホストOSのhostファイル更新時刻を確認する
・ホストOSの hostファイルを読み込んで、192.168.* の設定を取り込む
# private IP address
# 10.0.0.0 10.255.255.255 10\.
# 172.16.0.0 172.31.255.255 172\.(1[6-9]|2[0-9]|3[01])\.
# 192.168.0.0 192.168.255.255 192\.168\.
・不足分のドメインリストをアプリで設定する

一度構築してしまえばアプリは、ほぼ無管理で運用できそうな予感
セキュリティ対応のDNSにしないとよくないらしいですが、ルーター管理のローカルネットワーク内だから大丈夫でしょう。

» Windows ホストにDNSサーバーを立てる'">続きを読む