概要
OpenWrt では、ローカル DNS トラフィックを https-dns-proxy に渡すことで、
ルーター全体で HostuxDNS を利用できます。LAN 内の端末側は変更せず、ルーターが
問い合わせを DNS over HTTPS に変換します。
このガイドでは、ローカルクライアントに dnsmasq、暗号化アップストリームに
https-dns-proxy を使う OpenWrt の一般的な構成を前提にします。
必要なパッケージをインストールする
まずパッケージ一覧を更新し、プロキシと LuCI モジュールをインストールします。
opkg update
opkg install https-dns-proxy luci-app-https-dns-proxy
このパッケージは dnsmasq と連携し、LAN 向けの DNS は引き続きルーターが受け持ちます。
HostuxDNS の DoH インスタンスを作成する
LuCI で サービス > HTTPS DNS Proxy を開き、新しいインスタンスを追加します。
- 名前:
hostuxdns - リゾルバー URL:
https://dns.hostux.net/dns-query - Bootstrap DNS:
46.226.108.173,46.226.109.82
ルーター側で広告やトラッカーを遮断したい場合は、通常のエンドポイントではなく
https://dns.hostux.net/ads を使ってください。
proxy を dnsmasq に接続する
LAN クライアントの DNS はこれまでどおりルーターに向けます。そのうえで
dnsmasq が https-dns-proxy の作成したローカルリスナーへ
問い合わせを転送する構成にします。
OpenWrt に複数の上流 DNS が設定されている場合は、不要なものを無効にして HostuxDNS をアクティブな暗号化アップストリームにしてください。
端末はルーターに問い合わせ、ルーターは DoH で HostuxDNS に問い合わせる、という形です。
再起動して確認する
LuCI で変更を適用するか、次のようにサービスを再起動します。
/etc/init.d/https-dns-proxy restart
/etc/init.d/dnsmasq restart
その後、ルーター上で名前解決を確認します。
nslookup openwrt.org 127.0.0.1
これで解決できれば、ルーターを DNS として使っている LAN 内の端末も HostuxDNS の暗号化アップストリームを利用できます。
補足
- このガイドは DoH に限定
- この手順は
https-dns-proxyを前提としているため、DoH を扱います。DoT や DoQ は対象外です。 - Bootstrap DNS が必要な理由
- 暗号化プロキシが完全に動き始める前に、ルーターが
dns.hostux.netに到達するための平文 IP が必要になることがあります。 - 公式リファレンス
- OpenWrt: dnsmasq と https-dns-proxy を使った DoH