[root@serverb ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 服务器返回的两种不同的响应状态码,它们分别表示以下情况: SERVFAIL表示DNS服务器无法处理该查询请求,通常是由于服务器故障、网络问题或其他错误导致的。 PQxqrG5/DAsu9RBIZN4Ol4lzzGkMBzyDxsC0lI+l8HDz5qTocF2tx8+F CYOeqJ235GhJI6cqMs0qFSMd9yHKupIllXOvrIBTgcJ/ . 3600 IN NSEC3 1 1 10 332539EE7F95C32A 0JES1F5OD9SG1E4CCRGBS865PMBUV4PC NS DS RRSIG 0jehpe7obc68rhh4ntet0u9o44qmosmo.io ANSWER: 4 表示DNS服务器返回了4个答案。 Zone数据问题 有时,名称解析问题是由于权威名称服务器上区域中错误配置引起的。
故障恢复指恢复业务连续性的应急操作,很多故障是在不断尝试验证解决恢复的动作,所以故障恢复环节与故障定位环节有一定的交叠,或在这两个环节之间不断试错的循环,即故障恢复操作可能和故障诊断是同时,也可能是诊断之后或诊断之前 1.已知预案下的恢复三把斧 在故障管理过程中,通常大部分故障有一些明确的故障恢复预案,比如基础设施、服务器、网络设备、网络线路,以及应用系统层中关于服务可用性等故障因素,以及基于历史故障经验积累的方案。 、数据完整性的故障恢复,这些故障恢复通常需要现场临时决断恢复。 4.恢复后信息传递 虽然从MTTR角度看,恢复通常以技术指标的恢复为判断条件,但是在实际的故障处置过程中,恢复结束的判断条件通常是验证与信息通报。 验证包括技术验证与业务验证。 结束 注:“3.4 事中处置”另外3个环节内容链接: 1.故障发现、故障响应 2.故障定位
1.在启动DNS时出现Generating /etc/rndc.key:卡在这里了 [root@RedHat named]# /etc/init.d/named restart Stopping named
故障现象: http://访问正常 https://访问异常卡顿 发现服务器上无法正常查询dns请求 image.png 后面经过修改DNS,恢复了正常的DNS查询后,即恢复正常! 因为请求的网站都是内部网站,域名已经在hosts里面指定,所以DNS异常也没影响网站的访问。 经过分析:故障应该是因为DNS查询故障导致SSL证书查询异常导致。
DNS 具备负载均衡功能,接收到客户端的请求后, DNSserver 负责轮询域名对应的多个 HIVE 机器 IP ,并返回给客户端,达到负载均衡。DNS 负载均衡的实现直接依赖于 DNS 。 4. 具体 DNS 故障模拟情况如下:(详细内容略去) Datanode 出现单点 DNS 故障。 Namenode 节点出现 DNS 故障。 Secondary Namenode 出现 DNS 故障。 整个 HDFS 集群出现 DNS 故障。 JobTracker 出现单点 DNS 故障。 TaskTracker 出现单点 DNS 故障。 整个计算引擎出现 DNS 故障。 Hive 服务器出现 DNS 故障。 PLClient 出现 DNS 故障。 DFSClient 出现 DNS 故障。 目前,我们通过添加 DNS 备用服务器的方法来提高 DNS 的可用性。我们目前拥有4个 DNS 服务器,它们的配置相同,其中一个作为主 DNS 服务器,其3个作为从 DNS 服务器。
最近我们边缘集群服务遇到了一个 DNS 访问故障问题,现象是在边缘服务器上无法访问 DNS 服务器(10.7.0.1), 发出去的 DNS 请求包没有收到任何回应。 由于这是第一次遇到这种问题,因此我记录了详细的故障排查过程,让我们一起来看看是如何一步步逼近真相,找到问题根源的。 首先简单介绍一下我们的部署架构,这个 DNS 服务器(10.7.0.1)主要用来为我们的存储节点提供负载均衡服务。我们有 4 台存储服务器, 总容量达 2PB。 executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=e1cbb8879d17fd80aa0153da4e4e42ffe4593d96 最后, 我们下线了这台虚拟机, 彻底修复了故障,至此破案。 小结 这次故障排查过程还是比较顺利的, 虽然中间编译 tcpdump 工具花了点时间。
★.1host:DNS信息 参数: 一般情况下,host查找的是A,AAAA,和MX的记录 案例: DNS服务器查询 host -t ns 域名 A记录和MX记录查询 host 域名(host -t 通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。 (use IPv4 query transport only) -6 (use IPv6 query transport only) -m (enable memory usage debugging) IN ANY ;; ANSWER SECTION: cnblogs.com. 5 IN NS ns4.dnsv4 ,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器) 4.查询域名MX记录(邮件记录) > set type=mx > cnblogs.com 5.查询域名ns记录(域名所使用的DNS
,DNS又故障了等等等等。 思来想去,随着Facebook 六小时断网故障的发生,我想先从故障开始,通过多起故障了解DNS分层访问体系,待对DNS分层体系有了了解后,我们在一点点去填充里面的知识点; image.png 本篇文章的主角是图一的 Auth DNS; 故障一:20211004 Facebook六小时中断 2021年10月4日,FB例行维护做全球骨干网容量评估的操作时无意中断了网络连接,且内置审计工具触发bug未能阻止命令执行,FB ipv4和4个IPv6的地址组成的一组权威,这里看到的IP是通过BGP Anycast的方式在全球多个点进行的同一IP播布,BGP Anycast的一个好处就是,当探测到单点故障时,可以通过路由取消的方式完成故障点的下线 日,Akamai DNS故障,导致Fnac、Amazon云服务等2w多个大型网站瘫痪;我们通过故障一Facebook的故障,看出AuthDNS对网络的依赖和DNS解析服务对业务的影响,我们通过故障二联通解析异常得出
DNS 问题分析 于是转向抓取 DNS 的包,很快得到失望的结果,seewo-xxx.uc-all 域名的 DNS 的请求也没有发起。 libuv 默认会开启 4 个线程,可以通过 UV_THREADPOOL_SIZE 环境变量修改,最大不能超过 1024,然后初始化了 3 个队列,然后创建并启动线程。 static uv_thread_t default_threads[4]; #define MAX_THREADPOOL_SIZE 1024 static void init_threads(void ) { nthreads = ARRAY_SIZE(default_threads); // 默认 4 个线程 val = getenv("UV_THREADPOOL_SIZE"); if 0x00007fd5181ecf09 in _nss_dns_gethostbyname4_r () from /lib64/libnss_dns.so.2 #5 0x00007fd51a6ee1c4
通过Wireshark和arthas排查由DNS引发的Ignite生产故障案例 故障背景 故障分析 第一次定位问题 跨架构假设 生产重现故障 Wireshark抓包分析 客户端10秒超时源码跟踪 结合日志查看服务端卡点 故障分析 由于开发人员log4j2日志配置不对,导致生产上没有看到错误日志 目前从维护人员得到的信息来看,猜测可能有2个原因导致故障: 1、跨架构导致故障,因为客户端x86架构,服务端power架构 2、网络问题导致故障,怀疑是跨中心,跨了网段导致故障 第一次定位问题 跨架构假设 针对第一点的假设,通过并行环境模拟,模拟不出故障,因此只能到生产环境重现故障,再做下一步定位。 生产重现故障 修改log4j2日志,得到报错信息(以下是后续本地环境模拟的,报错内容和生产一致): 服务端节点错误: [2021-11-25T18:13:28,887][ERROR][tcp-disco-sock-reader ,也就是DNS解析,获取到IP,然后连接; 之前生产环境为什么没发现问题,是因为dns没有开启,本次由于其他业务上线,开启dns 相关配置如下: 原来没开启DNS: cat /etc/nsswitch.conf
3月26日上午,DNSPod技术人员发现,目前北京联通递归DNS 202.106.46.151/202.106.0.20/210.51.176.71等多个IP出现时断时续的故障,经测试使用这些递归DNS 网络上搜索DNS故障,众多网友反馈,包括CCTV、凤凰网、网易等多家知名网站出现大规模访问故障。 故障原因猜测 DNSPod技术人员表示,出现问题的原因是在域名请求对应的IP地址过程中,递归DNS处在一个桥梁的过程中,当递归出现故障,请求将无法顺利完成,因此出现网站无法打开现象。 详情如下图显示: 故障如何应对? 作为普通用户,如何应对这次故障呢? 2、找到更改适配器设置按钮,出现本地连接,点击属性,更改网络连接的TCP/IP V4属性即可。
DNS+Anycast 均衡负载实战(IPV4) 我们都知道google的公共DNS为:8.8.8.8,甚至我们可以在全球任何地方都能ping通这个IP或者通过dig能解析域名,例如如下操作: # dig answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53023 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, 但任播地址仅仅使用到了IPV6上,而对于IPV4并没有任播,IPV4只有组播以及单播。 而今天讲的则是IPV4的任播方式,虽然没有按照rfc1513的格式实现,但是凭借IPV4这么多年的沉淀,早已利用各种骚操作使用任何场景,下面我们就来解开这IPV4的dns+anycast部署模式。 搭建dns服务器 我们这里使用的是bind9作为DNS服务器,分别在DNS1、DNS2、DNS3上执行:./named -c .
该公司在Edge DNS服务事件通告中表示:“我们已意识到Edge DNS服务出现了问题。” “我们正在积极调查问题。如果您因该问题而有疑问或受到影响,请联系Akamai技术支持部门。” 据Akamai声称,Edge DNS是其基于云的权威DNS解决方案,旨在提供24/7全天候不间断的DNS可用性,并提高DNS响应能力。 Akamai表示,故障不是网络攻击造成的。 Akamai现在披露,这次全球性故障的原因是“软件配置更新触发了DNS系统中的一个bug。” “今天15点46分,软件配置更新触发了DNS系统中的bug,该系统负责将浏览器引导到各个网站。这导致了故障,从而影响了一些客户网站的可用性。” “故障持续长达一个小时。 我们正在审核软件更新流程,以防将来出现故障。”
DNS劫持的常见形成原因网络运营商为了商业利益而进行的劫持,黑客通过篡改DNS缓存或利用漏洞进行攻击,以及用户设备感染恶意软件导致DNS设置被更改。 dns劫持最佳修复解决方法DNS被劫持的修复方法还是比较多的,这里为大家列出4个效果最好的DNS劫持的解决方案:1.更换DNS服务器使用公共的、可信赖的DNS服务器,如Google的8.8.8.8和8.8.4.4 4.检查路由器设置确保路由器固件是最新的,并检查路由器的DNS设置,防止被运营商或其他方篡改。5.DNS解析缓慢这可能是由于网络拥堵、DNS服务器负载过高或本地设备性能问题导致的。 6.DNS解析失败当输入的域名无法被正确解析为IP地址时,常常因为域名不存在、DNS服务器故障或网络配置错误。 DNS被劫持时保持冷静和耐心是关键,不要急于恢复网络连接或访问可能受影响的网站,以免进一步加剧问题,通过逐步采取上面描述的4种处理修复解决方案,我们可以更有效地应对DNS劫持事件,并减少潜在的损失和风险
文章根据我在公司实际运维时处理过的一个真实故障写作,给出可复现实验、真实报错与日志、定位路径、可运行的修复策略,以及上线时容易遗漏的策略清单。 控制器应用命名空间:prod(本文在该命名空间启用 default deny)官方 NetworkPolicy 文档明确指出:只有当 CNI 实现支持策略时,NetworkPolicy 才会生效;并且策略是 L3/L4 阿里云 ACK 的 DNS 故障文档则系统性地罗列了常见客户端报错与可能的网络策略成因,包括 curl: (6) Could not resolve host、dial tcp: lookup ...: kubectl top(若仍失败,检查 metrics-server 与聚合层是否被策略影响)kubectl top nodes || truekubectl top pods -A || true如果在第 4 ACK DNS 故障页(系统性罗列 curl、dig、Go 客户端错误示例与成因,包括 i/o timeout、no such host。
控制面故障影响范围分类 按照影响 DNS 节点范围和处理方式来区分控制面故障的类型,主要就是两种类型,部分节点受影响和全部节点受影响。 01.部分节点受影响 这里可能有多种原因,最常见的如 DNS 节点与控制中心之间的网络异常,或者部分控制中心从节点故障,只影响少部分边缘的 DNS 节点的控制面数据同步,那么这时候故障 DNS 节点自救做自我剔除 02.全部节点受影响 这里最大的可能原因是控制中心节点故障,如控制中心主节点宕机,或者网络故障导致所有从节点数据同步落后,此时如果故障 DNS 节点还进行自我剔除,所有 DNS 节点“集体自杀”了,后果严重 故障 DNS 节点能做的是告警、尝试切换寻找正常的控制节点等操作,很多时候故障节点已经可以自动恢复,比如单独某个控制从节点故障自动切换即可恢复。 控制面故障处理: 接下来就需要对控制面故障的 DNS 节点进行处理,此处可以有多种处理方式,自动或手动,DNSPod 目前主要还是手动处理,主要由以下几个原因: 目前外部的监控节点对 DNS 服务器做的是完全黑盒拨测
keepalived的主要作用体现在处理单点故障,像前面我们设置的两台主机,就可以进行故障演练,现在的状态是master主机开启着keepalived: ? ?
DNS 污染 DNS 污染又称 DNS 缓存投毒,通过制造一些虚假的域名服务器数据包,将域名指向不正确的 IP 地址。 解决办法 绕过被污染的非权威 DNS 服务器,直接访问干净的公共 DNS 服务器。 在本机直接绑定 hosts,绕过 DNS 解析过程。 DNS 劫持 DNS 劫持指 DNS 服务器被控制,用户查询 DNS 时,服务器直接返回它想让你看到的结果(转到劫持者指定的网站)。 image.png 解决办法 手动更换公共 DNS 服务器,绕过被劫持的 DNS 服务器。 附录 公共 DNS 公共 DNS 是一种面向大众的免费的 DNS 互联网基础服务,更换主机 DNS 服务器地址为公共 DNS 后,可以在一定程度加速域名解析、防止 DNS 劫持、加强上网安全,还可以屏蔽大多数运营商的广告
关键节点的单点故障(Single Point of Failure)在大型的架构中,往往是致命的。 超过一定的时间阈值,临时节点将由ZK自动删除,这样原来序列最小的节点也就没了,客户端应用按2中的约定找最小节点的服务器时,自动会找到原来次最小的节点,继续充为master(老大挂了,老二顶上),即实现了故障转换
DNS服务器解析域名的过程如下所示: ? 本地DNS服务器:严格来讲,它不属于DNS体系。事实上,每台主机都需要配置一个本地DNS服务器才能正常上网。 当主机发出DNS请求的时候,该请求被本地DNS服务器处理。本地DNS服务器实际上作为一个转发功能存在。 DNS递归查询 DNS递归查询是将域名解析的负担交给被查询的DNS服务器来完成的。 在这个过程中,DNS服务器只告诉你该去哪个IP地址继续查询。这就大大降低了DNS服务器的负担。 ? 实际上,我们每次的DNS查询并不一定都是权威DNS服务器处理的,大多数可能是本地DNS服务器处理的。 根据Type的不同,DNS可以分为4类。 DNS病毒 一般影响我们个人用户的DNS攻击有篡改host文件,DNS污染,DNS劫持。