概要と注意事項
- iOS14から追加されたDNSSettingsペイロードによる暗号化DNS利用プロファイルの例
- ネイティブにDoT、DoHが利用可能
- macOS11からでも使えるっぽい
- DoTとDoHのどっちがいいだとか、使う必要性とかは面倒な話はなし
- DNSフィルタリングと組み合わせれば簡単なフィルタリングがOS標準機能で実現できる
- 例えばサンプルのDoHの方であれば、エロサイトを(完全ではないだろうが)ブロックできる
- 解除できちゃうからやっぱりSupervisorでガチガチにするしかねぇ
- 見落としか、いつの間にか追記か、以下の注釈が公式に
- When installed from an MDM, the setting only applies to managed wifi networks. When installed manually, this setting also applies to cellular.
- 意訳)MDMから突っ込んだら管理WiFiにしか効かんで。モバイルに適用させたかったら手動で突っ込みぃや。
- おそらく、Appleのプライバシー上、管理されていないネットワーク(モバイル、非管理WiFi)において、管理者によるDNSの強制変更は認めたくない模様
- When installed from an MDM, the setting only applies to managed wifi networks. When installed manually, this setting also applies to cellular.
- ProhibitDisablementがtrueの場合は要Supervisor
- falseの場合、「設定→一般→VPNとネットワーク」で変更が可能
- ちゃんと切り替わっているかはCloudflareのDebug Informationでしか見ていない
- 値を書き換えればGoogle Public DNS、IIS Public DNSは使えたっぽい
- こちらはちゃんと切り替わっているかの裏まではきちんと確認していない
- 上のリファレンスのうち最低限しか記述していないため、すべての通信のDNSが切り替わる
- 特定のDNSサーバでしか名前解決できないようなものがあるともちろんコケる
- 社内Wi-Fiとかキャリアサービスとか、VVMとMMS辺りが怪しげ
-
OnDemandRulesを書けば「モバイルの時だけ」とか「このWi-Fi APに繋いだ時だけ」とかルールが作れるっぽい。後述。
- もし常用するならCellular除外の「WiFiの時だけ」ルールでいいかもしれない
- 特定のDNSサーバでしか名前解決できないようなものがあるともちろんコケる
- 複数設定が入る
- サンプルの二つはPayloadIdentifierが同一なので互いに上書きし合う(重複せずどちらか一方)
- 値を書き換えて複数入れ、切り替えは可能
- 設定は最後に入れたものに切り替わるっぽい
- 一つのプロファイルに複数のDNS設定を記載することも可能
- これを入れたから通信速度が速くなるとかそんなことを期待してはいけない
- どうでもいい話、Android EnterpriseでもAPI 29(Android 10)から同様の機能あり
- プロファイルを入れる方法でなく、アプリから制御する方法もある
- この場合、設定側にアプリアイコンを出せるようになるのでブランディングで有利かもしれない
- アプリ側で切替が完結するので、更新やユーザビリティの面で有利かもしれない
- 「参考とか」にコメントで頂いた参考アプリのソースを紹介
- Wi-Fi設定の警告「このネットワークは暗号化されたDNSのトラフィックをブロックしています」が消せるかもしれないけど未確認
DNS over TLS
Cloudflare 1.1.1.1 のTLSを利用する場合
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>DNS Settings</string>
<key>PayloadDisplayName</key>
<string>DNS設定(DoT)</string>
<key>PayloadIdentifier</key>
<string>com.apple.dnsSettings.managed.91C836B1-5749-4C12-B613-384008F96D92</string>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadUUID</key>
<string>91C836B1-5749-4C12-B613-384008F96D92</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>TLS</string>
<key>ServerAddresses</key>
<array>
<string>2606:4700:4700::1111</string>
<string>2606:4700:4700::1001</string>
<string>1.1.1.1</string>
<string>1.0.0.1</string>
</array>
<key>ServerName</key>
<string>cloudflare-dns.com</string>
</dict>
<key>ProhibitDisablement</key>
<false/>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>DNSSettings</string>
<key>PayloadIdentifier</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>2C3575D8-8480-4AD0-B6A9-803D9FBEDB5E</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
DNS over HTTPS
Cloudflare 1.1.1.1 for Families(Block Malware And Adult Content) のHTTPSを利用する場合
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>DNS Settings</string>
<key>PayloadDisplayName</key>
<string>DNS設定(DoH)</string>
<key>PayloadIdentifier</key>
<string>com.apple.dnsSettings.managed.91C836B1-5749-4C12-B613-384008F96D92</string>
<key>PayloadType</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadUUID</key>
<string>91C836B1-5749-4C12-B613-384008F96D92</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>DNSSettings</key>
<dict>
<key>DNSProtocol</key>
<string>HTTPS</string>
<key>ServerURL</key>
<string>https://family.cloudflare-dns.com/dns-query</string>
</dict>
<key>ProhibitDisablement</key>
<false/>
</dict>
</array>
<key>PayloadDisplayName</key>
<string>DNSSettings</string>
<key>PayloadIdentifier</key>
<string>com.apple.dnsSettings.managed</string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>2C3575D8-8480-4AD0-B6A9-803D9FBEDB5E</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
キーと値
-
PayloadDisplayName
- DNS設定名、切替画面のリストとプロファイル内での表示
-
DNSProtocol
- DoTならばTLS、DoHならHTTPS
-
DoT用設定値
- ServerAddresses
- DNSサーバのIPアドレスを記載する(ホスト名でも通るがリファレンス上は「IPv4 and IPv6 addresses.」)
- ServerName
- たぶんサーバ証明書のSANs
- ServerAddresses
-
DoH用設定値
- ServerURL
- クエリを投げる先のURL
- ServerURL
-
ProhibitDisablement
- 手動変更を禁止するのであればtrue
-
PayloadDisplayName
- プロファイル名
組織名とか説明書きとかその他諸々は省略
IPv6シングルスタックの時
ドコモが2022年春から「IPv6シングルスタック」を導入へ 7月1日から開発者向けに試験環境を提供 - ITmedia Mobile
作ろうスマートフォンコンテンツ : IPv6シングルスタック 接続試験詳細 | サービス・機能 | NTTドコモ
DNS64に対応したDoH、DoTならいけるかもしれない。
Supporting IPv6-only networks
たぶん「dns64.cloudflare-dns.com」、「https://dns64.cloudflare-dns.com/dns-query」
Google Public DNS64
「dns64.dns.google」、「https://dns64.dns.google/dns-query」
ただ、モバイル網内での注意事項はたぶん残る
網内で完結するので無理に使わなくてもいいかも知れない
条件設定
- おさらい
- 手動でプロファイルを入れた場合は、デフォルトで全ての接続(モバイル、Wi-Fi、Ethernet)に影響する。VPNは知らん。
- MDMからプロファイルを入れた場合は、管理Wi-Fiに対してのみ影響する。条件指定してもたぶん効かぬ。
- 条件設定
- プロファイル内でパラメータを記述することにより、DNS設定の適用・除外を操作することができる。
- 書式とかはAppleの公式ドキュメントを参照
- マッチ条件
- DNSDomainMatch
- 解決しようとしたドメインの一致判定
- DNSServerAddressMatch
- ネットワークで指定されたDNSサーバ設定との一致判定
- InterfaceTypeMatch
- インターフェースの判定
- SSIDMatch
- 接続しているWi-FiのSSIDとの一致判定
- URLStringProbe
- 指定したURLにリダイレクトなしで到達できるかの判定
- DNSDomainMatch
- アクション
- ドメイン条件のときはEvaluateConnection、それ以外はConnectとDisconnect
- 気をつける点
- この条件はプロファイル単位ではなく、DNS設定単位で設定するっぽい
- なので、下のサンプルみたいに一つのプロファイルに複数のDNS設定を入れた場合でも、それぞれに条件を記載する必要がありそう。
- 条件設定するときは、最後にデフォルト動作を入れておいた方が動作が安定するかもしれない
- この条件はプロファイル単位ではなく、DNS設定単位で設定するっぽい
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Connect</string>
<key>InterfaceTypeMatch</key>
<array>
<string>Cellular</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>Disconnect</string>
</dict>
</array>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Disconnect</string>
<key>InterfaceTypeMatch</key>
<array>
<string>Cellular</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>Connect</string>
</dict>
</array>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Disconnect</string>
<key>SSIDMatch</key>
<array>
<string>My Home's SSID</string>
</array>
</dict>
<dict>
<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>DomainAction</key>
<string>NeverConnect</string>
<key>Domains</key>
<array>
<string>example.com</string>
</array>
</dict>
</array>
</dict>
<dict>
<key>Action</key>
<string>Connect</string>
</dict>
</array>
参考元とか
-
DNSSettings | Apple Developer Documentation
- 公式リファレンス
-
GitHub paulmillr/encrypted-dns
- プロファイルの入手が可能
- いくつかサンプルがある様子
-
iOS 14でAdGuard DNSを使う方法 | AdGuard
- プロファイルの入手が可能
- このペイロードを利用するDNSサービスで、広告ブロックとかアダルト阻止とか強制セーフサーチあり
- プロファイルに署名がされているため、中身を参考にするのであれば上の方を使うか署名解除が必要
-
iOS14の暗号化DNSサポートと広告ブロック | 280blocker
- 記事を参考頂きありがとうございます
-
Apple Configuration Profile | NextDNS
- NextDNS用のプロファイル作成・ダウンロード
- OnDemandRulesを用いたSSID、ドメインの除外設定のサンプルを入手可能
-
GitHub kkk669/DNSecure
- アプリによるDNS設定のサンプルコード
- アプリをApp Storeにて公開されておられます(2020/10/02時点)
- NTTドコモのIPv6シングルスタック化についての調査メモ
お試し用
下記テキストをコピーして、SafariのURL欄に張り付けて開く
中身を確認したい場合はBase64部分を復号化するか、PCブラウザでやればプロファイル実体の取得が可能
MIMEを「text/xml」にでもすればブラウザ上で表示
まともに使えるかどうかを含めて無保証
data:application/x-apple-aspen-config;charset=UTF-8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPjxkaWN0PjxrZXk+UGF5bG9hZENvbnRlbnQ8L2tleT48YXJyYXk+PGRpY3Q+PGtleT5QYXlsb2FkRGVzY3JpcHRpb248L2tleT48c3RyaW5nPkROUyBTZXR0aW5nczwvc3RyaW5nPjxrZXk+UGF5bG9hZERpc3BsYXlOYW1lPC9rZXk+PHN0cmluZz5DbG91ZEZsYXJlIERvVDwvc3RyaW5nPjxrZXk+UGF5bG9hZElkZW50aWZpZXI8L2tleT48c3RyaW5nPmNvbS5hcHBsZS5kbnNTZXR0aW5ncy5tYW5hZ2VkLjkxQzgzNkIxLTU3NDktNEMxMi1CNjEzLTM4NDAwOEY5NkQ5MDwvc3RyaW5nPjxrZXk+UGF5bG9hZFR5cGU8L2tleT48c3RyaW5nPmNvbS5hcHBsZS5kbnNTZXR0aW5ncy5tYW5hZ2VkPC9zdHJpbmc+PGtleT5QYXlsb2FkVVVJRDwva2V5PjxzdHJpbmc+OTFDODM2QjEtNTc0OS00QzEyLUI2MTMtMzg0MDA4Rjk2RDkwPC9zdHJpbmc+PGtleT5QYXlsb2FkVmVyc2lvbjwva2V5PjxpbnRlZ2VyPjE8L2ludGVnZXI+PGtleT5ETlNTZXR0aW5nczwva2V5PjxkaWN0PjxrZXk+RE5TUHJvdG9jb2w8L2tleT48c3RyaW5nPlRMUzwvc3RyaW5nPjxrZXk+U2VydmVyQWRkcmVzc2VzPC9rZXk+PGFycmF5PjxzdHJpbmc+MjYwNjo0NzAwOjQ3MDA6OjExMTE8L3N0cmluZz48c3RyaW5nPjI2MDY6NDcwMDo0NzAwOjoxMDAxPC9zdHJpbmc+PHN0cmluZz4xLjEuMS4xPC9zdHJpbmc+PHN0cmluZz4xLjAuMC4xPC9zdHJpbmc+PC9hcnJheT48a2V5PlNlcnZlck5hbWU8L2tleT48c3RyaW5nPmNsb3VkZmxhcmUtZG5zLmNvbTwvc3RyaW5nPjwvZGljdD48a2V5PlByb2hpYml0RGlzYWJsZW1lbnQ8L2tleT48ZmFsc2UvPjwvZGljdD48ZGljdD48a2V5PlBheWxvYWREZXNjcmlwdGlvbjwva2V5PjxzdHJpbmc+RE5TIFNldHRpbmdzPC9zdHJpbmc+PGtleT5QYXlsb2FkRGlzcGxheU5hbWU8L2tleT48c3RyaW5nPjEuMS4xLjEgZm9yIEZhbWlsaWVzKEJsb2NrIE1hbHdhcmUgYW5kIEFkdWx0IENvbnRlbnQpPC9zdHJpbmc+PGtleT5QYXlsb2FkSWRlbnRpZmllcjwva2V5PjxzdHJpbmc+Y29tLmFwcGxlLmRuc1NldHRpbmdzLm1hbmFnZWQuOTFDODM2QjEtNTc0OS00QzEyLUI2MTMtMzg0MDA4Rjk2RDkxPC9zdHJpbmc+PGtleT5QYXlsb2FkVHlwZTwva2V5PjxzdHJpbmc+Y29tLmFwcGxlLmRuc1NldHRpbmdzLm1hbmFnZWQ8L3N0cmluZz48a2V5PlBheWxvYWRVVUlEPC9rZXk+PHN0cmluZz45MUM4MzZCMS01NzQ5LTRDMTItQjYxMy0zODQwMDhGOTZEOTE8L3N0cmluZz48a2V5PlBheWxvYWRWZXJzaW9uPC9rZXk+PGludGVnZXI+MTwvaW50ZWdlcj48a2V5PkROU1NldHRpbmdzPC9rZXk+PGRpY3Q+PGtleT5ETlNQcm90b2NvbDwva2V5PjxzdHJpbmc+SFRUUFM8L3N0cmluZz48a2V5PlNlcnZlclVSTDwva2V5PjxzdHJpbmc+aHR0cHM6Ly9mYW1pbHkuY2xvdWRmbGFyZS1kbnMuY29tL2Rucy1xdWVyeTwvc3RyaW5nPjwvZGljdD48a2V5PlByb2hpYml0RGlzYWJsZW1lbnQ8L2tleT48ZmFsc2UvPjwvZGljdD48ZGljdD48a2V5PlBheWxvYWREZXNjcmlwdGlvbjwva2V5PjxzdHJpbmc+RE5TIFNldHRpbmdzPC9zdHJpbmc+PGtleT5QYXlsb2FkRGlzcGxheU5hbWU8L2tleT48c3RyaW5nPklJSiBQdWJsaWMgRE5TKERvVCk8L3N0cmluZz48a2V5PlBheWxvYWRJZGVudGlmaWVyPC9rZXk+PHN0cmluZz5jb20uYXBwbGUuZG5zU2V0dGluZ3MubWFuYWdlZC45MUM4MzZCMS01NzQ5LTRDMTItQjYxMy0zODQwMDhGOTZEOTI8L3N0cmluZz48a2V5PlBheWxvYWRUeXBlPC9rZXk+PHN0cmluZz5jb20uYXBwbGUuZG5zU2V0dGluZ3MubWFuYWdlZDwvc3RyaW5nPjxrZXk+UGF5bG9hZFVVSUQ8L2tleT48c3RyaW5nPjkxQzgzNkIxLTU3NDktNEMxMi1CNjEzLTM4NDAwOEY5NkQ5Mjwvc3RyaW5nPjxrZXk+UGF5bG9hZFZlcnNpb248L2tleT48aW50ZWdlcj4xPC9pbnRlZ2VyPjxrZXk+RE5TU2V0dGluZ3M8L2tleT48ZGljdD48a2V5PkROU1Byb3RvY29sPC9rZXk+PHN0cmluZz5UTFM8L3N0cmluZz48a2V5PlNlcnZlckFkZHJlc3Nlczwva2V5PjxzdHJpbmc+cHVibGljLmRucy5paWouanA8L3N0cmluZz48a2V5PlNlcnZlck5hbWU8L2tleT48c3RyaW5nPnB1YmxpYy5kbnMuaWlqLmpwPC9zdHJpbmc+PC9kaWN0PjxrZXk+UHJvaGliaXREaXNhYmxlbWVudDwva2V5PjxmYWxzZS8+PC9kaWN0PjxkaWN0PjxrZXk+UGF5bG9hZERlc2NyaXB0aW9uPC9rZXk+PHN0cmluZz5ETlMgU2V0dGluZ3M8L3N0cmluZz48a2V5PlBheWxvYWREaXNwbGF5TmFtZTwva2V5PjxzdHJpbmc+QWRHdWFyZCBETlMgRmFtaWx5IHByb3RlY3Rpb248L3N0cmluZz48a2V5PlBheWxvYWRJZGVudGlmaWVyPC9rZXk+PHN0cmluZz5jb20uYXBwbGUuZG5zU2V0dGluZ3MubWFuYWdlZC45MUM4MzZCMS01NzQ5LTRDMTItQjYxMy0zODQwMDhGOTZEOTM8L3N0cmluZz48a2V5PlBheWxvYWRUeXBlPC9rZXk+PHN0cmluZz5jb20uYXBwbGUuZG5zU2V0dGluZ3MubWFuYWdlZDwvc3RyaW5nPjxrZXk+UGF5bG9hZFVVSUQ8L2tleT48c3RyaW5nPjkxQzgzNkIxLTU3NDktNEMxMi1CNjEzLTM4NDAwOEY5NkQ5Mzwvc3RyaW5nPjxrZXk+UGF5bG9hZFZlcnNpb248L2tleT48aW50ZWdlcj4xPC9pbnRlZ2VyPjxrZXk+RE5TU2V0dGluZ3M8L2tleT48ZGljdD48a2V5PkROU1Byb3RvY29sPC9rZXk+PHN0cmluZz5IVFRQUzwvc3RyaW5nPjxrZXk+U2VydmVyVVJMPC9rZXk+PHN0cmluZz5odHRwczovL2Rucy1mYW1pbHkuYWRndWFyZC5jb20vZG5zLXF1ZXJ5PC9zdHJpbmc+PC9kaWN0PjxrZXk+UHJvaGliaXREaXNhYmxlbWVudDwva2V5PjxmYWxzZS8+PC9kaWN0PjxkaWN0PjxrZXk+UGF5bG9hZERlc2NyaXB0aW9uPC9rZXk+PHN0cmluZz5ETlMgU2V0dGluZ3M8L3N0cmluZz48a2V5PlBheWxvYWREaXNwbGF5TmFtZTwva2V5PjxzdHJpbmc+R29vZ2xlIFB1YmxpYyBETlMoRG9UKTwvc3RyaW5nPjxrZXk+UGF5bG9hZElkZW50aWZpZXI8L2tleT48c3RyaW5nPmNvbS5hcHBsZS5kbnNTZXR0aW5ncy5tYW5hZ2VkLjkxQzgzNkIxLTU3NDktNEMxMi1CNjEzLTM4NDAwOEY5NkQ5NDwvc3RyaW5nPjxrZXk+UGF5bG9hZFR5cGU8L2tleT48c3RyaW5nPmNvbS5hcHBsZS5kbnNTZXR0aW5ncy5tYW5hZ2VkPC9zdHJpbmc+PGtleT5QYXlsb2FkVVVJRDwva2V5PjxzdHJpbmc+OTFDODM2QjEtNTc0OS00QzEyLUI2MTMtMzg0MDA4Rjk2RDk0PC9zdHJpbmc+PGtleT5QYXlsb2FkVmVyc2lvbjwva2V5PjxpbnRlZ2VyPjE8L2ludGVnZXI+PGtleT5ETlNTZXR0aW5nczwva2V5PjxkaWN0PjxrZXk+RE5TUHJvdG9jb2w8L2tleT48c3RyaW5nPlRMUzwvc3RyaW5nPjxrZXk+U2VydmVyQWRkcmVzc2VzPC9rZXk+PHN0cmluZz5kbnMuZ29vZ2xlPC9zdHJpbmc+PGtleT5TZXJ2ZXJOYW1lPC9rZXk+PHN0cmluZz5kbnMuZ29vZ2xlPC9zdHJpbmc+PC9kaWN0PjxrZXk+UHJvaGliaXREaXNhYmxlbWVudDwva2V5PjxmYWxzZS8+PC9kaWN0PjwvYXJyYXk+PGtleT5QYXlsb2FkRGlzcGxheU5hbWU8L2tleT48c3RyaW5nPkROU1NldHRpbmdzPC9zdHJpbmc+PGtleT5QYXlsb2FkSWRlbnRpZmllcjwva2V5PjxzdHJpbmc+Y29tLmFwcGxlLmRuc1NldHRpbmdzLm1hbmFnZWQ8L3N0cmluZz48a2V5PlBheWxvYWRSZW1vdmFsRGlzYWxsb3dlZDwva2V5PjxmYWxzZS8+PGtleT5QYXlsb2FkVHlwZTwva2V5PjxzdHJpbmc+Q29uZmlndXJhdGlvbjwvc3RyaW5nPjxrZXk+UGF5bG9hZFVVSUQ8L2tleT48c3RyaW5nPjJDMzU3NUQ4LTg0ODAtNEFEMC1CNkE5LTgwM0Q5RkJFREI1RTwvc3RyaW5nPjxrZXk+UGF5bG9hZFZlcnNpb248L2tleT48aW50ZWdlcj4xPC9pbnRlZ2VyPjwvZGljdD48L3BsaXN0Pgo=
※コピペするときは、枠の右上にコピペボタンが出てきます。モバイルだと切れるけど、指で全選択するよりかは楽かもしれない。
※このDataURIをWebClipにしておけば、通信不可の状態であってもWerClipからプロファイルインストールができるので稀に便利。
プロファイルの概要
以下のDNS設定を含む
切り替えは「設定→一般→VPNとネットワーク」から
- Cloudflare DoT
- 上記、DoTサンプルと同一内容
- Cloudflare Families(Block Malware And Adult Content)
- 上記、DoHサンプルと同一内容
- IIJ Public DNS(DoT)
- 上記DoTサンプルのうち、値をIIJ Public DNSに書き換えたもの
- アドレスをIPでなく「public.dns.iij.jp」で指定しているため、プロファイルのリファレンスから逸脱の可能性
- AdGuard DNS Family protection
- 上記DoHサンプルのうち、値を「参考元とか」にあるAdGuardの一つに書き換えたもの
- Google Public DNS(DoT)
- 上記DoTサンプルのうち、値をGoogle Public DNSに書き換えたもの
- アドレスをIPでなく「dns.google」で指定しているため、プロファイルのリファレンスから逸脱の可能性