本文将介绍如何使用“网络分析与监控”产品的“站点监控”功能,监控国内各省份三大运营商的用户和云上的应用服务访问您的域名能否正常解析。
域名DNS解析原理
域名解析(DNS)就是把域名转换为网络IP地址的服务。域名通常容易记忆且带品牌标识,因此常作为对外提供服务的网络地址。用户访问域名的过程实际是通过DNS解析获得服务的真实网络IP地址,最终访问对应的IP地址。下图是DNS解析的过程图,需要重点理解的是:域名解析是通过运营商递归DNS来完成的,运营商递归DNS会从根服务器递归查询到权威DNS服务器最终找到域名解析指向的IP地址(对应图中 2、3、4步)。PC设备上网默认获取的DNS服务IP就是运营商递归DNS服务器IP(递归DNS也常叫公共DNS),运营商通常以省为单位建设递归DNS服务,所以一旦递归DNS服务发生解析异常,会影响使用对应省份运营商网络的所有用户。
业务场景描述
根据前面介绍的DNS解析过程,用户访问域名后会从运营商递归DNS获取到域名解析结果IP地址,但少数情况下从运营商递归DNS拿到的域名解析结果不一定正确(即与域名持有人在权威域名解析服务器设置的域名解析指向地址不相同,比如发生域名解析污染、域名解析劫持、权威DNS服务故障等情况),此时会导致用户无法正常访问服务!因此互联网上关键重要服务域名持有者,希望能监控用户能否从全国各个省份运营商的递归DNS服务器拿到正确的解析结果,以便确定全国用户能否正常访问自己的服务。
解决方案
通过”网络分析与监控“提供的站点监控功能,模拟全国各省份运营商用户访问域名并获得解析结果,如果获取的域名解析结果与域名持有者在权威DNS设置的解析结果不匹配,可以实时产生告警通知,让域名持有者第一时间知晓域名在哪些城市运营商访问可能会有异常,第一时间介入进行故障风险排查处理。
具体功能操作指南
准备条件
完成产品开通,然后进入控制台”站点监控“功能。
配置域名DNS监控任务
进入”站点监控“功能后,使用创建任务功能设置DNS解析监控任务(也可用Api创建监控任务):
上图中根据提示输入要监控的域名(也可以个性化设置监控频率、监控解析记录类型、DNS访问协议类型等),需要格外注意”DNS服务器“设置项要选择”探测点对应的运营商DNS“,这样发起的模拟拨测任务将与大部分网络用户一样都通过运营商的递归DNS来获取解析结果,监控结果能近似代表大部分网络用户访问域名的情况。另外建议设置”期望解析别名或者地址“,将域名在权威DNS中配置的正确解析结果设为期望解析地址,并将匹配规则设置为”所有DNS应答都出现在期望解析别名或者地址中“。这样一旦发现某地发起的DNS监控解析结果不在期望解析地址列表中时,会立即产生告警。
选择探测点
在上面第二步配置完监控参数后,需要设置发起监控任务的探测点。因本次业务场景是要监控域名在全国各省份运营商DNS能否解析正常,因此探测节点设置时可通过”所有运营商探测点“快速批量选中全国各省会城市三大运营商探测节点,如下图:
配置告警规则
设置探测点后,最终需要配置监控告警规则。系统支持从探测点”可用率“、”响应时间“等维度指标设置告警水位及规则,并关联告警联系人组(告警联系人组在”云监控-报警服务-报警联系人“功能设置)。通过以上办法就能实现在全国范围内监控域名能否解析正常。
常见告警信息解读
根据上述方法配置了域名的全国DNS解析监控任务后,一旦发生解析异常告警(比如收到告警短信、钉钉、邮件通知等),可以通过具体的告警信息来分析告警产生原因。如下图”监控任务“列表页面,点击对应的监控任务名称,可进入查看监控详情。
进入任务详情页面后,从右上方可以直接看到因为哪条告警规则触发的报警。如下图:
同时在本页面还可以查看详细的拨测监控异常结果明细信息,如下图:
这里我们主要通过”错误码和错误信息“来判断分析真实报警产生的原因,常见的错误信息有如下几种:
错误码 |
错误信息 |
错误排查 |
---|---|---|
615 |
not match |
代表该拨测点上本次拨测监控获取的域名解析结果与用户任务设置的期望解析结果不匹配,可以借助操作列中的“问题排查”功能再一次发起拨测验证,做二次确认。 |
610 |
read udp i/o timeout |
代表DNS解析过程因超时导致失败。具体原因可能是DNS服务器网络问题或DNS服务器查询时间超时。可以通过在网络分析与监控的一次性拨测的功能中尝试ping对应的dns服务器确认和排除连接DNS服务器的网络是否有问题。通过多次dns探测仍存在大量失败结果需联系dns权威提供方确认dns服务配置和查询是否有问题。 |
613 |
server misbehaving |
代表DNS解析通讯的各种异常。 |
616 |
dns server answer empty |
代表DNS服务器返回结果为空(只有在任务配置中添加了期望的解析结果才会生效,否则属于ErrorCdoe 0解析正常)。 |