DNS Summer Day 2023

XACK DNS Tester
will be Launched Soon!
株式会社 XACK堀井 紳一郎

発表内容

 会社紹介等
会社・製品のご紹介

 XACK DNS Tester

リリース間近?のXACK DNS Testerのご紹介

 まとめCopyright © 2023 XACK Inc.

2

会社紹介等

Copyright © 2023 XACK Inc.

3

株式会社XACK 会社紹介
主な業務

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

製品名

概要

XACK RADIUS

大規模システム向け高性能RADIUSサーバー

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製品 (鋭意開発中)

XACK DHCP Tester

DHCPクライアントシミュレーター (好評販売中)

NEW!

XACK RADIUS All-in-One RADIUS認証・転送、マルチテナントに対応した高性能
RADIUSサーバー (GUI対応)NEW!

XACK DNS TesterNEW!

Copyright © 2023 XACK Inc.

DNSクライアントシミュレーター (Coming Soon !)4

XACK DNS 製品紹介
XACK DNSの特徴
フルスクラッチの国産DNSサーバー
 通信事業者様や企業・大学様での採用実績あり
 マスター/スレーブ権威機能・フルリゾルバー機能・フォワーダー機能・etc…
 モジュール化による機能の足し引きが可能

仮想サーバー機能（ビュー機能）

例えばマスター権威機能→フォワーダー機能と組み合わせることで、自身が管理するゾーンについては権威ある応答を、そうでないゾーンについてはどこかに転送を、等
1つのインスタンスで複数のサーバーが動作しているかのように振舞うことが可能

もちろんDNSSECや（Draft段階なのに普及してしまった）HTTPSレコードにも対応

Copyright © 2023 XACK Inc.

5

XACK製品デモサイト紹介
XACK製品デモサイト 『XACK UI製品ラボ』好評運用中！！

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

NEW!

DNSとDHCPに加えてXACK RADIUS All-in-Oneに対応

Copyright © 2023 XACK Inc.

6

XACK製品デモサイト紹介
XACK製品デモサイト 『XACK UI製品ラボ』好評運用中！！

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

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

Copyright © 2023 XACK Inc.

7

XACK DNS Testerのご紹介

Copyright © 2023 XACK Inc.

8

開発の経緯（1）ある日、あるDNSご担当者様の声が聞こえてきました。
「こんなDNSパケット送信ツールがあったらなぁ。。。」
••
•
•
•
•

...

○○○perf的なリストファイル読み込み方式でUDP/TCPクエリー混在に対応
DNSレスポンスを待たずに送信
送信portのランダム化
毎秒QPSの表示
IPv4/IPv6に対応
HTTPSレコードに対応

Copyright © 2023 XACK Inc.

9開発の経緯（2）…ということで、作ってみました。

Copyright © 2023 XACK Inc.

10

実行イメージ (1)
送信先

負荷量と実行時間(30000qpsを3秒間実行)

シナリオファイル

実行方法# bin/dns-tester -I 192.168.56.150 -f conf/scenario/udp.csv -q 30000 -D 3

結果出力
送信数

Sent
29999
30000
30001
TOTAL
90000
AVERAGE
30000

RTT時間

タイムアウト数

応答数

NoErrorFormErr

ServFail NXDomain NotImp

RefusedTimeout

RTT-Min

RTT-Ave

29995
30002
30002

0000000000000000 0.000040 0.000563 0.010949
0 0.000041 0.000381 0.009110
0 0.000039 0.000305 0.008131

89999

000000 0.000039 0.000416 0.010949

29999

000000- 0.000416

RTT-Max

毎秒集計値を出力-

集計値はコンソール出力だけでなく、ログファイルにもCSV形式で出力されます。
※出力項目は同じであるため例示は割愛

Copyright © 2023 XACK Inc.

11

実行イメージ (2)
集計項目はコマンドオプションで選択することができます。
下記はデフォルト項目の各RTT時間をクラス統計(RTT閾値毎の件数)に変更した例です。

コマンドオプション# bin/dns-tester … -S Sent,NoError,FormErr,ServFail,NXDomain,NotImp,Refused,Timeout,RTT-Class

結果出力Sent
NoError FormErr ServFail NXDomain NotImp
Refused Timeout P<10m
P<100mP<1s20230525175022.253728 starting traffic
30000
29999
00000024851
5148
30000
30000
00000026996
3004
30000
30000
00000028103
1897
TOTAL
90000
89999
00000079950
10049
AVERAGE
30000
29999
00000026650
3349
20230525175026.001556 stopped traffic
20230525175026.001561 terminating...

Copyright © 2023 XACK Inc.

P>1s
000000000012シナリオファイル••••

送信内容はシナリオファイルに記述します。
UDPとTCPが混在するシナリオもOKです。
もちろんDNSSECやHTTPSもOKです。
QTYPEはtype<値>形式にも対応しており、マイナー、イレギュラーなQTYPEのクエリーもOKです。

シナリオファイル
PROTOCOL,OPCODE,FLAGS,QNAME,QTYPE,QCLASS,EDNS0-UDP-SIZE,EDNS0-RDATA
UDP,Query,RD,001.example.jp,A,IN,1410,
TCP,Query,RD,002.example.jp,AAAA,IN,,
UDP,Query,DO/RD,003.example.jp,HTTPS,IN,1410,
TCP,Query,RD,004.example.jp,type65535,IN,,…

シーケンス
XACK DNS Tester

DNSサーバー

UDP Query ( 001.example.jp 1 )Response
TCP Query ( 002.example.jp 28)
Response
UDP Query DOビットON ( 003.example.jp 65 )Response
TCP Query ( 004.example.jp 65535 )Response…

Copyright © 2023 XACK Inc.

13

パラメーターファイル• シナリオの各値には変数が使用できます。
• 変数の値はパラメーターファイルで、変数名=値形式で展開する内容を指定します。
• パラメーター1レコードが1トランザクション(シナリオ1pass)に対応して展開されます。

シナリオファイル
UDP,Query,RD,$qname,$qtype,IN,,

パラメーターファイル
qname=abc.example.jp,qtype=A
qname=def.example.jp,qtype=AAAA

変数展開結果UDP,Query,RD,abc.example.jp,A,IN,, (シナリオ1週目)
UDP,Query,RD,def.example.com,AAAA,IN,, (シナリオ2週目)• 変数には機能変数「$random」が用意されており、指定した範囲のランダム値を展開することができます。
• $randomにはタイプ(文字列 or 数値)や範囲(文字列の場合は文字列長、数値の場合は数値範囲)を指定します。
• ランダム値はトランザクション(シナリオ1pass)毎に生成されます。

ランダム展開例
文字列指定
qname=$random(string:1-63).example.jp

数値指定
qname=$random(integer:0-255).0.0.10.in-addr.arpa

Copyright © 2023 XACK Inc.

f41tf.example.jp
9myutzkdvq8t4a4b7usktp.example.jp
4i8r4i0qxu0wutr01k4s4vffoz8d2xn6fbxjaxa77a3ijbil.example.jp
wy8bmnjgpg3bvu8v4llbtbvbum9vxwo9vwkx04d.example.jp
1crp7vbsnk3yvxk.example.jp
15.0.0.10.in-addr.arpa
216.0.0.10.in-addr.arpa
104.0.0.10.in-addr.arpa
207.0.0.10.in-addr.arpa
5.0.0.10.in-addr.arpa
14コマンドオプション (1)
№

オプション

引数

デフォルト値

内容

1.

-b

なし

(なし)

XACK DNS Testerをバックグラウンドで起動する。

2.

-I

IPアドレス

127.0.0.1:53

DNSサーバーのIPアドレスを指定する。

3.

-C

IPアドレス

0.0.0.0:0

DNS要求送信時のIPアドレスおよびポート番号を指定する。

4.

-T

数値

1

DNS要求のタイムアウト秒数を指定する。

5.

-f

ファイルパス(なし)

シナリオファイルのパスを指定する。

6.

-u

ファイルパス(なし)

パラメーターファイルのパスを指定する。

roundrobin

7.

-troundrobinrandomshuffleパラメーターの選択方式を指定する。
roundrobin: ラウンドロビン
random: ランダム
shuffle: シャッフル

8.

-q

数値

1

負荷量をqps単位で指定する。

09.

-d

数値

一定間隔で負荷量を増加する場合に増加要求数を指定する。
同時に-mオプションを指定し最大負荷量を定める必要がある。
増加間隔を指定する場合は、-iオプションを指定する。

10.

-i

数値

1-dオプションによる負荷量増加間隔を秒数で指定する。

11.

-m

数値

-qの値

-dオプションにより負荷量を増加する場合の上限負荷量を指定する。

12.

-D

数値

2147483647

負荷の実行時間を秒単位で指定する。XACK DNS Testerは負荷をかけ始めてからこの時間経過するとプログラムを終了する。

18446744073709551615

トランザクションの実行回数を指定する。XACK DNS Testerはこの回数トランザクションを実行するとプログラムを終了する。
-Dオプションで負荷の実行時間を指定した場合、デフォルト値は制限なしになる。

13.

-N

Copyright © 2023 XACK Inc.

数値

15

コマンドオプション (2)
№

オプション

引数

デフォルト値
Sent,
NoError,FormErr,
ServFail,
NXDomain,
NotImp,Refused,Timeout,
RTT-Minimum,
RTT-Average,
RTT-Maximum

14.

-S集計項目

10000,100000,1000000
15.

-R

Copyright © 2023 XACK Inc.

数値

内容
性能測定する集計項目をカンマ指定する。以下を指定可能である。
Sent: DNS要求送信数
UDP-Sent: DNS要求送信数(UDP)
TCP-Sent: DNS要求送信数(TCP)
NoError: 応答受信数(NoError)
FormErr: 応答受信数(FormErr)
ServFail: 応答受信数(ServFail)
NXDomain: 応答受信数(NXDomain)
NotImp: 応答受信数(NotImp)
Refused : 応答受信数(Refused)
Timeout: 応答待ちタイムアウト数
Internal-Error: 内部エラーによる送信不可数
Illegal-Response: 不正応答受信数
RTT-Minimum: RTT最小時間
RTT-Average: RTT平均時間
RTT-Maximum: RTT最大時間
RTT-Class: 指定されたRTT閾値毎の件数
UDP-RTT-Minimum: RTT最小時間(UDP)UDP-RTT-Average: RTT平均時間(UDP)
UDP-RTT-Maximum: RTT最大時間(UDP)
UDP-RTT-Class : 指定されたRTT閾値毎の件数(UDP)
TCP-RTT-Minimum: RTT最小時間(TCP)
TCP-RTT-Average: RTT平均時間(TCP)
TCP-RTT-Maximum: RTT最大時間(TCP)
TCP-RTT-Class: 指定されたRTT閾値毎の件数(TCP)
RTTを分類する閾値をマイクロ秒で指定する。複数のクラスに分類する場合、カンマ区切りで指定する。この時、数値は昇順である必要がある。
デフォルトでは10ミリ秒未満、100ミリ秒未満、1秒未満、1秒以上の4クラスに分類して集計する。

16

製品固有のポジティブファクターと注意点


製品固有のポジティブファクター
送信ポートのランダム化や製品固有の負荷特性(秒内でのクエリーの送信タイミングランダム化、DNS応答を待たずに送信)により、実環境に近い負荷環境を実現することができます。
 また、ランダム変数機能を搭載しており容易にランダムサブドメイン攻撃をシミュレーションすることができます。


注意点（とりあえず)TSIG,DNSUPDATE,DoT,DoHには対応していません。
 限界性能測定のような高負荷を掛ける場合には、複数実行による並行送信が必要になる場合があります。
Copyright © 2023 XACK Inc.

17

ちょっと興味あるかも、、、


でも、私に必要な機能が揃っているのかしら?
お試しライセンスをご提供いたします。マニュアルも用意しておりますので、すぐにお試し頂けます。
動作環境
 Red Hat Enterprise Linux (CentOS Almalinux) 8.0 ～ 9.2
 Ubuntu 22.04 LTS



でも、お高いんでしょう？
気になる価格・ライセンス系態は別途お問合せください。

Copyright © 2023 XACK Inc.

18

お問合せ

お問合せ先URL
 メール
 TEL
 FAX


Copyright © 2023 XACK Inc.

： https://xack.co.jp/contact/： sales@xack.co.jp： 03-3518-9701： 03-3518-9702

19

まとめCopyright © 2023 XACK Inc.

20

まとめXACK DNS Testerについてご紹介させていただきました 様々なお客様のニーズに合ったネットワーク製品をご提供するべく日々開発しています 興味が湧きましたら是非お試しライセンスで動かしてみてください！
 また、『XACK UI製品ラボ』もぜひお試しください！
https://hands-on.xack.co.jp/
Sent
NoError FormErr ServFail NXDomain NotImp
Refused Timeout RTT-Min RTT-Ave RTT-Max
20230523120508.142849 starting traffic
29999
29995
000000 0.000040 0.000563 0.010949
30000
30002
000000 0.000041 0.000381 0.009110
30001
30002
000000 0.000039 0.000305 0.008131
TOTAL
90000
89999
000000 0.000039 0.000416 0.010949
AVERAGE
30000
29999
000000- 0.000416
20230523120512.001505 stopped traffic
20230523120512.001508 terminating...

Copyright © 2023 XACK Inc.

21

https://xack.co.jp

Copyright © 2022 XACK Inc.

22