DNS 异常怎么判断
DNS 异常的表现比网络层丰富得多,不同的返回码指向完全不同的原因。先认状态,再查配置。
部分地区解析到错误 IP
大部分地区正常,少数地区返回了一个跟你的服务器无关的地址。
两种可能:一是本地 DNS 污染,二是缓存还没过期。
区分方法很简单:换一个公共 DNS 再查一次。换了就正常,说明是运营商递归的问题;换了还是错,那可能是权威侧配置错了,或者域名真的被劫持。
如果返回的是保留地址(比如 0.0.0.0、127.0.0.1 或者内网段),那基本可以判定为污染或拦截。
返回 NXDOMAIN
意思是这条记录不存在。
常见于三种情况:记录压根没添加、添加的主机名拼错了、或者刚添加还没同步到权威服务器。
先去配置台核对主机记录,注意 www 和 @ 的区别,注意有没有多余的点或者空格。配置没问题的话,等几分钟再查。
返回 SERVFAIL
服务器处理失败。这个错误跟你的记录内容关系不大,通常是服务端的问题。
常见原因:权威 DNS 服务器异常或宕机、DNSSEC 配置错误导致校验失败、域名状态异常(比如未实名、被 hold)。
如果是 DNSSEC 的问题,把 DNSSEC 关掉再测,能立刻验证。如果关了就好,那就要重新检查密钥和 DS 记录。
只有部分线路失败
全国大部分正常,某个运营商或者某个省一直超时。
这种通常是线路级的解析问题:那一片的递归服务器到权威服务器的链路不通,或者当地运营商做了限制。
也可能是智能解析配置里,那条线路被漏配了,没有对应的记录可返回。
改完之后怎么办
不要立刻反复测,先等 TTL 到期。
TTL 是 600 秒就等十分钟,是 3600 秒就等一小时。等缓存自然过期,再重新查一遍,结果才有意义。
急着验证的话,可以指定一个没有缓存的公共 DNS 去查,或者直接查权威服务器。