上山打老虎 发表于 2021-7-10 13:57:17

如何发现DNS网络故障?

  
  文章目录

[*]

[*]故事的开始
[*]DNS的功能
[*]丢包问题
[*]基于TCP的DNS
[*]为什么限制512字节
[*]使用虹科IOTA分析DNS
[*]使用虹科IOTA查找DNS问题
[*]IOTA的DNS仪表盘
[*]DNS延迟时间
[*]安全访问和远程分析
[*]关注我们



  
故事的开始
  为什么访问网站会失败?为什么我发送电子邮件失败?DNS几乎是所有Internet服务的源泉,通常是造成此类问题的重要原因。
  数据包丢失或防火墙配置不正确会影响多种协议。但是,DNS作为基本协议最容易受到数据包丢失和防火墙配置错误的影响。知道这些影响因素可以帮助故障排除,以便可以更快地解决可能出现的任何问题。

DNS的功能
  域名服务(DNS)的主要是将域名和IP地址进行映射。由于提供了全球分布式目录服务,因此,自1985年以来,域名系统一直是Internet功能的重要组成部分。

丢包问题
  DNS从设计上说是一种易受***的协议。在发送电子邮件,访问网站之前,必须先通过DNS将域名解析为IP地址。使用相应的IP地址,各种协议可以建立到相应服务器的连接。但是,如果DNS域名解析出现丢包,则其他所有进程也会受到影响。因此,在许多情况下,DNS都是导致网络错误的原因。DNS主要使用UDP作为其传输协议,是非面向连接的协议。

即使丢失一个数据包也会导致大量延迟。在上面显示的示例中,客户端192.168.2.120在五秒钟的延迟后才向DNS服务器发送新请求。

如果与DNS服务器之间的连接在一定程度上受到干扰并且无法修复,请检查通过TCP的DNS请求是否可以替代。在图1中丢失的数据包已经导致五秒钟的延迟的情况下,图2中的DNS请求在846ms内处理了20%的丢包。

基于TCP的DNS
  DNS主要使用UDP作为传输协议。但是,DNS从一开始就被设计为能够同时使用UDP和TCP。仅当DNS无法通过UDP通信时才使用TCP。
  通常,当数据包大小超过单个UDP数据包的最大长度512字节时。DNS将使用TCP协议进行传输。
  如果数据包大小超过512字节,则设置"TC"位(截断),以通知客户端消息长度已超过最大允许大小。在这种情况下,客户端必须通过TCP重新传输请求。
  但是,如果TCP被阻止,则客户端请求必须通过UDP应答。这导致数据包被分段或丢弃。这会导致DNS解析速度变慢或域名无法解析。

为什么限制512字节
  512字节UDP有效负载的大小取决于IPv4。IPv4标准指定每个网络用户都必须能够处理576字节或更小的字节的数据包。如果减去控制数据(标题),则将保留纯512字节有效负载。
  认识到此限制是一个问题,因此在DNS扩展机制(EDNS)中,最大大小增加到4096字节。当前的DNS服务器包含EDNS实现,因此能够响应查询。
  尽管EDNS自1999年以来一直存在,但并非所有网络组件都能保证平稳运行。防火墙是错误的根源,出于各种原因,可以丢弃总计超过576字节的DNS-UDP数据包。此行为可能不会导致任何直接可见的问题,但是必须确保所有网络设备都支持大型DNS数据包。如果网络环境不完全支持大型DNS消息,则可能导致DNS数据包被分段和/或部分丢弃。对于最终用户,这与通过TCP阻止DNS数据包具有相同的效果。DNS解析无法响应或需要很长时间。

使用虹科IOTA分析DNS
  通过讨论DNS协议和一些最常见的DNS问题,现在可以解决这些问题。如何以一种简单的方式来跟踪所有这些?这就是虹科IOTA的用处。IOTA是一个完整而安全的网络分析和故障排除解决方案。通过将原始数据包数据捕获到磁盘并提取元数据以在仪表板中使用,IOTA可以快速分析网络上发生的事情,而不会丢失任何细节。有许多可定制的仪表板可用来帮助监视基本性能指标,重传,数据包丢失,延迟,吞吐量,可用性,连接性等。

使用虹科IOTA查找DNS问题
  DNS仪表板为您提供了针对您选择时间范围内DNS流量的几种视图,以查看可用流量。第一部分显示DNS流量。饼图显示使用中的顶级DNS服务器以及查询最多的服务器及其各自的带宽。
  "底部"部分显示了所有DNS查询,这些查询的客户端和服务器IP地址,包括在流量中看到的DNS REPLY代码,事件ID的日期/时间。在"详细信息"部分下,您可以查看DNS请求总数和正在使用的DNS查询。


IOTA的DNS仪表盘
  如果没有IOTA,1TB捕获磁盘和仪表板,对这些问题进行故障排除将花费很时间,甚至无法完成。想象一下,使用Wireshark挖掘500GB的跟踪文件,以及每次应用过滤器时的加载时间。使用IOTA,仪表板可以立即概述DNS流量的状况。例如,在以下DNS仪表板的屏幕截图中,清楚地显示了Server Fail DNS REPLY,以及与此通信相关联的客户端和服务器。

如果您想缩小搜索范围,可以通过选择ServFail错误旁边的“过滤”放大镜进行筛选。这将使用过滤器来查找所有这些特定错误。 通过应用此过滤器,IOTA可以深入了解特定服务器的DNS服务器响应和元数据。 您可以在正在进行DNS查询的IP Source(IP源)下看到客户端,而在正在接收和响应DNS查询的Server(服务器)下可以看到IP Destination(IP目的地)。 您可以在下面看到,IOTA已识别出从客户端192.168*请求的最近30分钟内发生的DNS返回代码。


DNS延迟时间
  对于这一点,我们转到仪表盘服务器延迟。 通过使用Goto >>,我们在DNS控制台中设置过滤器,并在Server Latency Dashboard上显示。
  如下图所示,显示了相关的延迟(以毫秒为单位)。最近30分钟的最大应用程序延迟为163.41ms。 我可以进一步看到较高延迟的DNS的确切时间。


安全访问和远程分析
  借助集成的TAP和内部存储功能,IOTA可以部署在网络中的任何关键捕获点,安全地提供对网络的全面可见性。被监视的网络与管理界面隔离开,以避免通过设备注入MITM***的任何风险。
  IOTA通过HTTPS进行全面管理,并具有内置***,这意味着该设备可以部署在任何地方,并且可以从您的办公桌后面轻松访问。

  

  

  
文档来源:51CTO技术博客https://blog.51cto.com/u_14928887/3033288
页: [1]
查看完整版本: 如何发现DNS网络故障?