出事了才发现没有「正常值」

有人反馈解析不对,我打开检测工具,看到一片红,却说不出哪个值是错的。

因为从来没人记录过正确的值。没有对照,异常只是一个形容词。那次排查很被动。基线也是资产,平时十分钟,出事十分钟。

基线三要素

值:这条记录应该解析成什么,精确到 IP 或目标域名。

来源:这个值是从权威 NS 查到的,不是本地缓存,也不是公共 DNS。

时间:什么时候查的,TTL 是多少,两点都要记,不然没法判断缓存。

三样齐了,才算一条能用的基线,缺一个就不完整。没有基线只能凭印象,印象最不可靠。

DNS 污染检测:异常解析地址与地区分布

DNS 污染检测:异常解析地址与地区分布

从权威取,不从缓存取

指定权威 NS 查询,绕开递归缓存,别让本地 DNS 代劳,权威查询要指定服务器。

同一域名有多个 NS 时,逐个查,确认它们返回一致,全部记录,不一致本身就是问题。

用宝塔拨测的 DNS 污染检测看各地递归结果,再和权威值对比,异常才有意义,否则只是感觉。

记录哪些类型

A 和 AAAA:网站入口,别只记 A,IPv6 也要。TTL 决定旧值活多久,也决定切换节奏。

CNAME:有没有经过 CDN 或第三方,链要展开记录,别只记第一跳。

MX 和 TXT:邮件与验证,迁移时最容易丢,MX 丢了邮件就断,TXT 丢了验证会失败。

NS:谁来提供解析,被改是最严重的情况,这条优先级最高。

基线和变更一起存

建一张表:域名、记录类型、值、TTL、权威来源、查询时间,字段固定别人才能接,版本化更好。

每次改解析,同时更新表,并记录变更原因、谁改的、什么时候改的,三样都要。

没有变更记录的基线,过几个月就没人敢信。

对比与复测

出现异常时,先拿各地结果和基线比,看是值变了还是只在一部分地区变,先看值再看范围,最后看时间,三步走完再定性。

再复测两三次,确认差异稳定,污染、调度、缓存要分开,基线能帮你分。

基线是尺子,没有尺子,量什么都是猜。别把基线当一次性任务,它是日常维护,每次发布都顺手更新,比事后补救便宜。团队里指定负责人,别多人乱改。工具只是查,记录靠自己,记录才是资产,有了资产判断才快,也更容易服人。报告里附基线,结论更有说服力,别只写现象,现象人人都会描述,判断才是价值,基线支撑判断,缺了就只能猜。猜对了是运气,要靠自己的记录本。

有基线,异常才有名字。