所谓域名存活状态检测, 其实就是一种通过技术手段来进行的操作, 目的是为了判断咱们当前使用的某一个域名, 到底是不是处于正常的解析状态, 能不能被访问到, 或者是已经过期了、被停用了。
这里面的主要判断依据有好几项, 第一看的是DNS服务是不是能够正常去解析, 第二看的是HTTP以及HTTPS这两个网络服务协议对应的服务, 是否会给出响应消息, 第三看的是注册信息的有效期是否还存在于当前的时间里。
在这个环节里, 最经常去执行这些任务的角色, 通常是企业内部的运维人员、负责安全监控的工作人员, 还有专门管理域名资产的人。这些人需要去做的动作是: 必须要把进行检测的频率,跟业务本身的重要程度给匹配起来。
三种核心检测方法
1. 我们对DNS解析检测这个环节进行了操作。我们向DNS服务器去发起了查询的动作。我们的目的是为了确认域名的A记录以及CNAME记录是否存在有效的返回情况。
假如最终的反馈结果是属于NXDOMAIN或者SERVFAIL的域名存活状态检测, 这就意味着该域名已经变得没有作用了, 再或者是DNS的配置出现了不正常的问题。检测命令:dig domain.com 或 nslookup domain.com。
2. HTTP/HTTPS可达性检测指的是向域名发起请求。然后要去验证一下返回来的状态码是多少。如果拿到的是200、301或者是302这几个数字, 那就说明系统是存活的。
但是如果是拿到了404、503, 或者连接直接超时了, 这就视为异常情况。检测命令:curl -I https://domain.com 或 wget --spider domain.com。
3. WHOIS/注册信息核查: 通过查询注册局接口来获取域名的注册状态, 也就是去查看一下那个Status字段, 同时还能看看到期时间是哪天, 还要检查一下是不是处于clientHold或者serverHold这些锁定状态, 这种做法主要是为了用来判断域名是不是快要过期了, 或者是被注册商暂停了解析服务。
批量检测工具与平台
当需要同时监控数百乃至数万个域名时, 逐一去手动执行命令这种方式是非常低效的, 比较常见的做法有:
使用 massdns、dnsx 等开源工具进行并发DNS批量探测;
基于 nmap 来进行端口扫描的这样的服务, 去确认 Web 服务是不是在线的。
去调用那个注册局ICANN认证的API, 然后通过这个API来批量地拉取WHOIS的状态信息。
通过专业的域名监测平台, 能够实现自动化管理, 同时实现可视化管理, 还实现了告警一体化管理。
比如 gname.xin 提供的域名资产监测服务, 这个服务支持将域名列表进行批量导入, 然后定时执行对存活的检测, 并且会自动推送关于过期的提醒以及解析异常的告警信息, 这种功能适合那些要把域名监测纳入日常运维流程的团队使用。
检测频率与监测策略
常见异常与处理
解析突然消失: 要优先检查DNS服务商的后台, 看是不是把记录误删了, 其次还要排查一下, 是不是遭到了DNS劫持。
HTTP返回5xx, 这通常是因为源站的服务器出现宕机情况, 或者ssl证书过了有效期,大家需要去同步检查一下服务器端的日志信息。
WHOIS显示clientHold: 这种情况多数是因为没有通过注册商的审核灵音心图, 或者是没有缴纳费用了, 需要联系注册商进行解锁。
所谓的间歇性丢包, 其潜在原因很有可能是DNS递归服务器出现了故障, 针对这种情况, 应当采用切换多线DNS源的方式来加以验证。
注意事项
<强>检测请求需要去控制频率还有并发量, 这样做是为了避免给这个目标域名造成那个拒绝服务攻击的压力。在进行批量WHOIS查询的时候,必须遵守ICANN里面的那个速率限制规定域名存活状态检测, 具体的要求是每一分钟之内不能超过一次每一个注册局。
生产环境监测这件事应当部署在独立使用的网络链路上面去, 要保证自身监控节点出了故障不会影响对业务情况的判断。所有的检测结果都建议进行留痕存档处理, 把它作为后面安全审计以及SLA考核的一个依据。


