Skip to content

sischkg/edns0-validation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EDNS0のバリデーションの比較(権威DNSサーバ)

EDNS0について調べたついでに、各DNS権威サーバにEDNS0のようなDNSクエリを送信した場合の応答について 比較してみました。

キャッシュサーバ版はこちらです。

環境

クライアント

  • OS: Ubuntu Mate 14.04
  • DNSクライアント: C++で作成した自作DNSクライアント

サーバ

  • OS: CentOS 6.6 on VirtualBox
  • DNSサーバ
    • Bind: 9.10.2-P3
    • NSD: 4.1.3
    • PowerDNS Authoritative Server 3.4.4
    • knotDNS 1.6.4

調査内容

各DNSサーバへ、NSID(https://tools.ietf.org/html/rfc5001)を 含んだOPT pseudo-RRをもつ、www.example.comのAレコードを問い合わせました。

正しいEDNS0では、ADDITIONAL SECTIONに一つだけOPT pseudo-RRが存在ますが、 ここでは、このルールに反したクエリを送信し、そのレスポンスを比較しました。

ケース0: 通常のクエリに対するレスポンス

下記は、通常のクエリを送信した時にtcpdumpにて取得したパケットキャプチャのデータへのリンクです。

ケース1: 2個のOPT pseudo-RRを含むクエリ

下記は、2個のOPT pseudo-RRを含むクエリを送信した時の、パケットキャプチャのデータです。

ケース2: ANSWER SECTIONにOPT pseudo-RRを含むクエリ

下記は、ANSWER SECTIONにOPT pseudo-RRを含むクエリを送信した時の、パケットキャプチャのデータです。

ケース3: AUTHORITY SECTIONにOPT pseudo-RRを含むクエリ

下記は、AUTHORITY SECTIONにOPT pseudo-RRを含むクエリを送信した時の、パケットキャプチャのデータです。

ケース4: OPT pseudo-RRのドメイン名をwww.example.comにしたクエリ

下記は、OPT pseudo-RRのドメイン名を*www.example.com*にしたクエリを送信した時の、パケットキャプチャのデータです。

比較表

Bind NSD PowerDNS knotDNS
ケース1:OPT pseudo-RR x 2 FormErr FormErr NoError(EDNS0) NoError(EDNS0)
ケース2:OPT pseudo-RR in ANSWER NoError(EDNS0) FormErr NoError(非EDNS0) NoError(非EDNS0)
ケース3:OPT pseudo-RR in AUTHORITY NoError(EDNS0) FormErr NoError(非EDNS0) NoError(非EDNS0)
ケース4:OPT pseudo-RRのドメイン名を変更 FormErr FormErr NoError(EDNS0) NoError(EDNS0)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published