自建权威DNS服务器,观察请求会发现有大量的NS请求出现,但是什么场景下会有NS请求发出呢?用户来权威查询的应该都是域名的A记录。所以怀疑NS记录查询不是用户自己触发的而是local dns的行为。
正想理解,用户查询一个域名的过程:
用户————》 local DNS ————》.根记录
————》.com记录
————》域名NS记录
————》返回A记录
但是要如何获取域名的NS呢?就是从.com返回的结果如何知道NS记录呢?
几种情况:
一、glue记录存在,local dns不主动发起NS查询的功能,local dns 会把glue记录当作NS记录,之后NS缓存期之内,都会去glue里面记录的NS去查询;
二、glue记录不存在,local dns还需要查询NS自己的解析记录在哪里,会重新问.com,NS记录的解析是什么;
三、glue记录存在,local dns具有主动发起NS查询的功能,就是说当local dns收到了.com返回的带有gule记录的NS的时候,local dns还会主动查询一次域名的NS记录,这样,local dns就会以查询到的NS记录,作为 NS缓存期之内,查询的NS;
这种做法是三种里面最优的。
bind默认answer section比Addtion records里面的权威优先级更高。所有有第三种情况的出现,就会发现自建权威DNS上有很多NS查询记录。基于这种机制,可以做NS基于来源IP的智能解析,不足之处在于,local DNS都在运营商侧,不是我们能够控制的。
网友评论