我從一個Python程序獲取DNS記錄,使用DNS Python的Python + DNS:無法獲得RRSIG記錄:未回答
我可以得到各種DNSSEC相關的記錄:
>>> import dns.resolver
>>> myresolver = dns.resolver.Resolver()
>>> myresolver.use_edns(1, 0, 1400)
>>> print myresolver.query('sources.org', 'DNSKEY')
<dns.resolver.Answer object at 0xb78ed78c>
>>> print myresolver.query('ripe.net', 'NSEC')
<dns.resolver.Answer object at 0x8271c0c>
但沒有RRSIG記錄:
>>> print myresolver.query('sources.org', 'RRSIG')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.5/site-packages/dns/resolver.py", line 664, in query
answer = Answer(qname, rdtype, rdclass, response)
File "/usr/lib/python2.5/site-packages/dns/resolver.py", line 121, in __init__
raise NoAnswer
我嘗試了幾個簽名的域名,如absolight.fr或ripe.net。
嘗試挖掘,我看到確實有RRSIG記錄。
使用tcpdump檢查,我可以看到DNS的Python發送正確 查詢並接收正確的回覆(此爲8個記錄):
16:09:39.342532 IP 192.134.4.69.53381 > 192.134.4.162.53: 22330+ [1au] RRSIG? sources.org. (40)
16:09:39.343229 IP 192.134.4.162.53 > 192.134.4.69.53381: 22330 8/5/6 RRSIG[|domain]
DNS的Python 1.6.0 - 的Python 2.5.2(R252 :60911,2008年8月8日,09:22:44) [GCC 4.3.1] on linux2
還測試了4096的EDNS緩衝區大小,結果相同。 – bortzmeyer 2008-09-26 20:05:06