我正在使用Python getdns API。
我正在使用扩展程序:
extensions = {"dnssec_return_validation_chain" : getdns.EXTENSION_TRUE}
这意味着我告诉我答复是否在答复字典中使用dnssec_status
选项保护DNSSEC。 (results.replies_tree
是一个回复词典数组。)
如果没有名称(例如results.status==getdns.RESPSTATUS_NO_NAME
),则查询无法回复。
在这种情况下,我如何知道RESPSTATUS_NO_NAME
响应是否通过DNSSEC验证?
答案 0 :(得分:1)
当状态为getdns.RESPSTATUS_NO_NAME
时,replies_tree 将包含空"answer"
部分的回复并返回代码NXDOMAIN。即result.replies_tree[0]['header']['rcode']==getdns.RCODE_NXDOMAIN
使用dnssec扩展程序时,这些回复将包含"authority"
部分中的不存在证明(安全时)和 包含dnssec_status
的证据回复确实包含答案。
当状态不安全且使用dnssec_return_validation_chain
扩展名时,result.validation_chain
将包含在查询域的祖先之一中不存在安全委派的证据。