关于dnssec
dnssec技术细节这里不谈,网上有,这里只提一下它的作用和局限性。
dnssec核心不在于防止解析结果被篡改,不在于安全传输,而是在于校验通过递归查询得到的结果是否正确,是否正确的判断标准是:解析结果是否是所查询域名的权威服务器所想要提供的,比如:video.erlkonig.tech的权威服务器是any.ns.cloudflare.com,权威服务器想要提供的A解析结果是104.18.44.85,那么经过查询得到的结果一样则是正确的。
以video.erlkonig.tech这个域名为例,原理是:通过签名,权威服务器any.ns.cloudflare.com使用zks-private对解析结果(resource record)进行签名并将签名值添加为RRSIG类型的记录。客户端到通过zsk-public和RRSIG来验证得到的解析结果。递归查询者通过ksk-public和zsk-public的RRSIG验证zsk;同时向上一级域名(.tech.)的权威服务器(nic.tech.)请求查询(DS类型的记录)验证erlkonig.tech使用的ksk。之后再向根服务器验证.tech.的ksk。
dnssec不能保证得到正确的结果,只能保证得不到错误的结果,如果递归查询得不到正确的结果,则服务器会返回解析失败。
windows server 作为缓存服务器开启dnssec
dnscmd /config /enablednssec 1 #开启dnssec valiate
dnscmd /RetrieveRootTrustAnchors #获取信任锚点(根服务器的ksk公钥hash)