DNS Summer Day 2022

XACK DNS ChangeLog 2022
株式会社XACK
技術部 小澤 遥希
技術部 黒川 陽平

発表内容◆ 会社紹介等
会社・製品のご紹介◆ XACK DNS ChangeLog 2022
XACK DNSに最近追加した機能のご紹介

Copyright © 2022 XACK Inc.

2

会社紹介等

Copyright © 2022 XACK Inc.

3

株式会社XACK 会社紹介
◆

主な業務◆

ネットワークアプリケーションシステム全般に関するソフトウェア開発
製品名

概要

XACK RADIUS

大規模システム向け高性能RADIUSサーバー (GUI対応)
EAP-RP認証対応

XACK DNS

通信事業者向けセキュアDNSサーバー (GUI対応)XACK DHCP

DHCPv4/v6両対応高性能DHCPサーバー (GUI対応)XACK DNS Zone Editor

マルチテナント編集システム (GUI)XACK EAP Tester

RADIUSクライアントシミュレーターXACK DDR Director

DHCP/DNS/RADIUSをまとめたIPAM製品 (鋭意開発中)

Copyright © 2022 XACK Inc.

NEW!

NEW!

4

XACK製品デモサイト紹介
XACK製品デモサイト 『XACK UI製品ラボ』 を開設しました

https://hands-on.xack.co.jp/

Copyright © 2022 XACK Inc.

NEW!

5

XACK製品デモサイト紹介
XACK製品デモサイト 『XACK UI製品ラボ』 を開設しました

https://hands-on.xack.co.jp/

NEW!

！同時接続数上限がございます！
制限に引っかかってしまったらごめんなさい弊社的にはありがたい

Copyright © 2022 XACK Inc.

6

XACK製品デモサイト紹介
XACK製品デモサイト 『XACK UI製品ラボ』 を開設しました

https://hands-on.xack.co.jp/

NEW!

ゾーン編集画面▼▲DNSサーバー管理画面

Copyright © 2022 XACK Inc.

7

XACK DNS 製品紹介
XACK DNSの特徴
フルスクラッチの国産DNSサーバー◆ マスター/スレーブ権威機能・フルリゾルバー機能・フォワーダー機能・etc…
◆ モジュール化による機能の足し引きが可能◆◆◆

例えばマスター権威機能→フォワーダー機能と組み合わせることで、自身が管理するゾーンについては権威ある応答を、そうでないゾーンについてはどこかに転送を、等

仮想サーバー機能◆

1つのインスタンスで複数のサーバーが動作しているかのように振舞うことが可能

通信事業者様や企業・大学様での採用実績あり◆ DNSSEC対応◆ HTTPSレコード対応予定 NEW!
◆Copyright © 2022 XACK Inc.

8

XACK DNS ChangeLog 2022

Copyright © 2022 XACK Inc.

9

XACK DNS ChangeLog 2022
ここ1年間程で追加・改修した機能についてご紹介させていただきます◆ 権威の話マルチマスター環境でのSOAクエリー送信先の選択◆ キャッシュの話
段階的反復問い合わせの抑止
期限切れキャッシュ応答 (RFC 8767)
統計情報の拡充

Copyright © 2022 XACK Inc.

10

権威の話
マルチマスター環境でのSOAクエリー送信先選択

Copyright © 2022 XACK Inc.

11

マルチマスター環境でのSOAクエリー送信先選択
権威マスターサーバーの冗長化されてますか？
◆ マルチマスターで運用していて、異常時に各マスター間でゾーンが揃わない！
なんてことありませんか？あると思います。
◆

新しいのあった！

Masterserial = 2022062402

Masterserial = 2022062401

Masterserial = 2022062403

SOA

serial = 2022062401

Slave

こっちも見てくれ～

Copyright © 2022 XACK Inc.

12

マルチマスター環境でのSOAクエリー送信先選択◆

マルチマスター構成において、SOAクエリーの送信先を選択する動作が選べるようになりました
retry-next（設定の記述順）
MasterMaster

Masterround-robin（順繰り）Master1

Master2

Masterall（全ての中の最新）
MasterMaster

Master

3

Slave

Slave

Slave

設定ファイルの記述順にSOAクエリーを実施。
最初にシリアル値が取得できた時点でシリアル値を比較してゾーン転送。

retry-nextと同様の動作だが、SOAクエリーを実施する最初のマスターは前回最後に問合せたマスターの次に記述されたマスター。

マスター全てにSOAクエリーを実施し、応答されたシリアル値の高い順にゾーン転送を試行。
ゾーン転送が完了した時点で処理を終了。

Copyright © 2022 XACK Inc.

13

キャッシュの話
権威が遅くて反復問い合わせ増大

Copyright © 2022 XACK Inc.

14

権威サーバーの遅延◆

権威サーバーの応答遅延・タイムアウトによりリソースが枯渇…
◆

応答遅延、タイムアウト影響の軽減要望

遅い
クライアント

問合せ

キャッシュ
同時処理上限結局ServFailしたりタイムアウトを待って…

権威リトライ
この間、キャッシュサーバーの同時処理可能クエリー数を消費する※BINDのmax-recursion-queriesのように同時処理可能クエリーの上限がある

Copyright © 2022 XACK Inc.

15

権威サーバーの遅延◆

権威サーバーの応答遅延・タイムアウトによりリソースが枯渇…
◆

応答遅延、タイムアウト影響の軽減要望

遅い
クライアント

問合せ
クライアントもリトライするわけで権威

キャッシュ同時処理上限

同時処理可能クエリー数がどんどん消費される※BINDのmax-recursion-queriesのように同時処理可能クエリーの上限がある

Copyright © 2022 XACK Inc.

16

権威サーバーの遅延◆

これを受けて以下の機能を実装しました
段階的反復問い合わせ抑止機能◆ 段階的転送待ち時間短縮◆ 期限切れキャッシュ応答 (RFC 8767)◆ 統計情報の拡充◆

Copyright © 2022 XACK Inc.

17

段階的反復問い合わせ抑止機能◆

以下の段階的動作を行うように実装① 同時処理クエリー数が閾値を超えた場合、タイムアウト時間を短縮して長期間リソースが枯渇してしまうことを防ぐ② 同時処理クエリー数が閾値を超えた場合、反復問い合わせ動作を全く行わないようにし、キャッシュが存在するレコードに対するクエリーに対して応答できるようにする
遅い
クライアント

問合せ

権威キャッシュ
タイムアウト10秒
同時処理上限閾値を超過

タイムアウト5秒タイムアウト時間を短縮

Copyright © 2022 XACK Inc.

18

段階的反復問い合わせ抑止機能◆

以下の段階的動作を行うように実装① 同時処理クエリー数が閾値を超えた場合、タイムアウト時間を短縮して長期間リソースが枯渇してしまうことを防ぐ② 同時処理クエリー数が閾値を超えた場合、反復問い合わせ動作を全く行わないようにし、キャッシュが存在するレコードに対するクエリーに対して応答できるようにする
遅い
クライアント

問合せ

キャッシュから応答

これらの閾値および①,②の動作有無は設定により可変

Copyright © 2022 XACK Inc.

権威キャッシュ
同時処理上限

反復問い合わせを休止

閾値を超過
反復問い合わせを休止

19

段階的反復問い合わせ抑止機能◆

タイムアウトの短縮、キャッシュヒット時のみ応答の2段階の設定で測定したところ、良い結果が得られた。

Copyright © 2022 XACK Inc.

20

段階的転送待ち時間短縮◆◆

フォワーダー機能でもキャッシュと同様、転送先で応答遅延・タイムアウトする
権威サーバーにあたった場合にリソース枯渇が発生するため改修

改修内容も「段階的反復問い合わせ抑止」機能と同様

Copyright © 2022 XACK Inc.

21

名前解決失敗時の期限切れキャッシュ応答◆◆◆

RFC8767の期限切れキャッシュ利用を実装
名前解決に失敗した場合に名前DBに残っている期限切れキャッシュを利用することで、クライアントへの応答成功率を向上させる
前述の段階的反復問い合わせ抑止機能により抑止された場合にも威力を発揮

遅い
クライアント

問合せ

期限切れキャッシュ
から応答

権威キャッシュ
同時処理上限

反復問い合わせを休止

閾値を超過
反復問い合わせを休止

Copyright © 2022 XACK Inc.

22

統計情報の拡充◆

パケットサイズ別、RTT別に統計情報を取得する機能を追加◆

矢印の指すそれぞれのタイミングで個別に集計

段階的反復問い合わせ機能のパラメータ設定の目安にできます◆ 区分けの境界値は設定により可変です◆

パケットサイズ別⚫ very small⚫ small⚫ medium⚫ large⚫ very large

クライアント

問合せ
応答

Copyright © 2022 XACK Inc.

キャッシュサーバー

反復問合せRTT別⚫ very small⚫ small⚫ medium⚫ large⚫ very large

問合せ

権威サーバー

応答

23

まとめ

Copyright © 2022 XACK Inc.

24

まとめ
最近のXACK DNSの主な機能追加・改修についてご紹介させていただきました◆ 様々なお客様の環境に合ったDNSをご提供するべく日々開発しています◆ 『XACK UI製品ラボ』ぜひお試しください！
◆https://hands-on.xack.co.jp/

Copyright © 2022 XACK Inc.

25

https://xack.co.jp

Copyright © 2022 XACK Inc.

26