フルサービスリゾルバが権威DNSを選択するアルゴリズムについて

2024年6月21日

NTTコミュニケーションズ株式会社
末松© NTT Communications Corporation All Rights Reserved.

慶文

自己紹介

2024/6/1から!

・名前:末松 慶文
・所属:NTTコミュニケーションズ株式会社 / DNSOPS.jp幹事
・仕事:ISPとして提供しているフルサービスリゾルバ(キャッシュDNS)と権威DNSの設計および開発 (回線サービス名:OCN)
・今回の発表について- フルサービスリゾルバの実装について理解を深める。
- メジャーな2つの実装(BIND 9.18, Unbound 1.20)について調査- 選択アルゴリズムを調整するオプションについて紹介■免責事項
発表内容は個人の見解であり、所属する組織の見解やソフトウェア開発元の見解を示すものではありません。
© NTT Communications Corporation All Rights Reserved.

2

水責め対策機能(fetches-per-server)の動作状況なども選択アルゴリズム(BIND)

・BINDはADB(Address database dump)に権威DNSの動作や応答性について記録・基本的には応答が高速な(srttが最も小さな)権威DNSを選択しクエリーする

権威DNS選択イメージ
権威DNS1(srtt:大)お客さま

権威DNS2(srtt:中)フルサービス
リゾルバ
応答が高速な権威DNSを選択

ADBの内容を出力可能$ rndc dumpdb –adb

権威DNS3(srtt:小)ADB表示サンプル:; l.gtld-servers.net [v6 TTL 11] [v4 unexpected] [v6 nxrrset]; l.gtld-servers.net [v4 TTL 0] [v4 success] [v6 unexpected];
192.41.162.30 [srtt 181080] [flags 00004000] [edns 9/0/0/0/0] [plain 0/0] [udpsize 512] [ttl 1330]© NTT Communications Corporation All Rights Reserved.

3

選択アルゴリズム(Unbound)・Uboundはinfra-cacheに権威DNSの動作や応答性について記録・応答が低速な権威DNSを選択対象から除外し、それ以外の権威DNSをランダムに選択しクエリーする・ランダムな選択ではなく、最も応答が高速な権威DNSを選択するように設定も可能
fast-server-permil: <number> ※1000回のうち何回を応答が高速な権威DNSを選択するか指定
デフォルト値は0

権威DNS選択イメージ
権威DNS1(rto:20ms)

お客さま

フルサービス
リゾルバ

ランダムに権威DNSを選択

最も応答が高速な権威
DNSのrto+400msを超過
時は選択対象から除外

権威DNS2(rto:100ms)

権威DNS3(rto:450ms)

Infra-cacheの内容を出力可能$ unbound-control dump_infra
Infra-cache表示サンプル:
192.0.2.1 ttl 316 ping 0 var 94 rtt 376 rto 120000 ednsknown 0 edns 0 delay 0© NTT Communications Corporation All Rights Reserved.

4

IPv6をもつ権威DNSの優先的な選択について
・BINDの場合
・BIND 9.18のデフォルト設定では、IPv6とIPv4の権威DNSが存在する場合、srttを用いて権威DNSを選択する際に、IPv6を持つ権威DNSを50ms優遇する。
・オプションにて設定することで、ms単位でどの程度IPv6を優先するかを変更可能 (デフォルト値は50)v6-bias <integer>
・Unboundの場合
・Unbound 1.19のデフォルト設定では、 IPv6とIPv4の権威DNSがが存在する場合、IPv6を持つ権威DNSを優先的に選択する動作はしない。
・オプションにて設定することで、IPv6,IPv4の優先について変更が可能 (デフォルト値はno)
prefer-ip4: <yes or no> , prefer-ip6: <yes or no>© NTT Communications Corporation All Rights Reserved.

5おわりに調査結果
・フルサービスリゾルバの各実装によって、権威DNSを選択する際のアルゴリズムが異なる- BIND: 応答速度が高速な権威DNSを選択、IPv6を持つ権威DNSを優先的に選択- Unbound: 応答速度によらずランダムに権威DNSを選択、IPv6を優先的に選択しない

考察・各実装で権威DNSの選択時のアルゴリズムが異なる
・権威DNSを国内と国外で冗⾧をとる場合、(状況によっては)特定の権威DNSにクエリが偏る可能性が考えられる

引き続き!

低遅延、高パフォーマンス、安定稼働するフルサービスリゾルバ、権威DNSの提供に取組む© NTT Communications Corporation All Rights Reserved.

6

参考・DNS OARC31 Testing server selection algorithms in DNS resolvers
https://indico.dns-oarc.net/event/32/contributions/711/attachments/705/1200/resolver_server_selection.pdf
・BIND 9 Administrator Reference Manual Release 9.18.27
https://downloads.isc.org/isc /bind9/9.18.27/doc /arm/Bv9ARM.pdf
・Address database dump (ADB) - understanding the fields and what they represent
https://kb.isc.org/docs/aa-01463
・Unbound 1.20 Manualhttps://nlnetlabs.nl/documentation/unbound/unbound.conf/
・Unbound Timeout Information
https://www.nlnetlabs.nl/documentation/unbound/info-timeout/
・Unbound Timeout and Server Selection Information
https://unbound.docs.nlnetlabs.nl/en/latest/reference/history/info-timeout-server-selection.html
・Computing TCP‘s Retransmission Timer
https://datatracker.ietf.org/doc /html/rfc2988
・Unboundの追加パラメータチューニング
https://www.dnsops.jp/event/20190628/LT_simamura_unbound.pdf© NTT Communications Corporation All Rights Reserved.

7

ご清聴ありがとうございました© NTT Communications Corporation All Rights Reserved.

8