服务器返回的两种不同的响应状态码,它们分别表示以下情况: SERVFAIL表示DNS服务器无法处理该查询请求,通常是由于服务器故障、网络问题或其他错误导致的。 PQxqrG5/DAsu9RBIZN4Ol4lzzGkMBzyDxsC0lI+l8HDz5qTocF2tx8+F CYOeqJ235GhJI6cqMs0qFSMd9yHKupIllXOvrIBTgcJ/ a8hoyXxoWyQL iwFJ8lj3+Wc3VSdHGvkqWYMZ52Ny9orne3zqTOzpGV1xtyxAiw+a9h92 hufkRTmoki6jMdiIFlVhQIHzqtc4MY/ :8840:9e::17#53(2a01:8840:9e::17) for liruilongs.github.io failed: network unreachable. ;; UDP setup with 2a01:8840:9e::17#53(2a01:8840:9e::17) for liruilongs.github.io failed: network unreachable. ;; communications
1写在前面 ---- 分享一些通过 Bind9 配置DNS服务器的笔记 博文内容涉及 一个基本的 DNS 权威服务器 配置流程 理解不足小伙伴帮忙指正 我承认爱情是空幻的,只有情感才是真实的,是情感在促使我们去追求 BIND9 (Berkeley Internet Name Domain)可以实现权威的 DNS 服务器。 3部署 Bind9 权威服务器 基本步骤 安装 bind 软件 修改配置文件 /etc/named.conf 启用并启动服务 named.service 开通防火墙 dns 虽然名字叫 bind,但主要服务 您可能允许localhost执行区域传输以帮助进行故障排除。 requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7e67c9a9f9d30b3df695a33864c64a1bb0d653a623775fd6
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的正向解析 在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应的IP地址。也就是说,当用户输入了一个域名后,bind服务程序会自动进行查找,并将匹配到的IP地址返给用户。 这也是最常用的DNS工作模式。 正向解析: 根据主机名(域名)查找对应的IP地址。 例子: @ 600 IN SOA dns.boysec.cn. 服务器无法联系上主DNS服务器时,辅助DNS服务器可以在多长时间内认为其缓存是有效的,并供用户查询。 +short k8s-dns.boysec.cn. ## 方法二 [root@k8s-dns etc]# dig -x 10.1.1.250 @10.1.1.250 +short k8s-dns.boysec.cn
BIND9 BIND9是用于搭建DNS服务器的一个软件应用。 记录写法为:主机名 TTL值 IN 记录类型 值 在bind9里的所有配置文件中 所有的域名最后都必须带有".",这个"."意味着根域的意思所以必须要有,不然启动服务的时候会报语法错误。 [root@localhost named]# cat host.com.zone.jnl ;BIND LOG V9 ▒8▒▒JhostcomX6ns1hostcomchai simplefishcnQ ▒Q▒Q▒serverhostcom<▒iJhostcomX6ns1hostcomchai simplefishcnQ▒Q▒Q▒Q▒[root@localhost named]# RNDC管理BIND9 rndc可以对bind9进行热更新,可以对某个域的解析单独进行重载。
1写在前面---- 分享一些 使用 bind9 配置主从权威DNS服务器的笔记 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。 注册服务商将该信息放在父域的区域文件中(如NS,A和AAAA记录),以便DNS解析器可以找到您的名称服务器。 为了帮助确保可靠性,应该至少有两个公共DNS服务器,并且它们应位于不同的站点,以避免由于网络故障而造成的中断。 外部主机如何通过缓存名称服务器和权威名称服务器进行 DNS 解析,对记录执行DNS查找。 部署 配置主 DNS 服务器 安装 bind9 [root@serverb ~]# yum install bind -y 一些准备工作 [root@serverb ~]# vim /etc/named.conf requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 7e67c9a9f9d30b3df695a33864c64a1bb0d653a623775fd6
评估步骤 先对 TDW 各个模块单独进行 DNS 故障模拟并评估,然后对整个 TDW 进行 DNS 故障模拟并评估。 具体 DNS 故障模拟情况如下:(详细内容略去) Datanode 出现单点 DNS 故障。 Namenode 节点出现 DNS 故障。 Secondary Namenode 出现 DNS 故障。 整个 HDFS 集群出现 DNS 故障。 JobTracker 出现单点 DNS 故障。 TaskTracker 出现单点 DNS 故障。 整个计算引擎出现 DNS 故障。 Hive 服务器出现 DNS 故障。 PLClient 出现 DNS 故障。 DFSClient 出现 DNS 故障。 整个 TDW 出现 DNS 故障、也就是存储引擎、查询引擎、计算引擎都出现 DNS 故障。
最近我们边缘集群服务遇到了一个 DNS 访问故障问题,现象是在边缘服务器上无法访问 DNS 服务器(10.7.0.1), 发出去的 DNS 请求包没有收到任何回应。 由于这是第一次遇到这种问题,因此我记录了详细的故障排查过程,让我们一起来看看是如何一步步逼近真相,找到问题根源的。 起初我们怀疑是 DNS 服务本身出了问题。但检查发现 10.7.0.1 上 53 端口处于正常监听状态: 本机执行 DNS 查询也一切正常。这样就可以排除 DNS 服务异常的可能性了。 最后, 我们下线了这台虚拟机, 彻底修复了故障,至此破案。 小结 这次故障排查过程还是比较顺利的, 虽然中间编译 tcpdump 工具花了点时间。 期间用到的一些小技巧包括: 编译静态链接的 tcpdump 方便在受限环境排查 留意 ARP 表中记录的状态 适当运用「社会工程学」, 发动集体回忆 希望通过分享这个案例, 能给你一些故障排查思路上的启发
127.0.0.1; }; }; 重新启动named service named restart 在Prometheus的yml文件中添加如下job,重新启动Prometheus即可 - job_name: dns-master static_configs: - targets: ['10.85.6.66:9119'] labels: alias: dns-master 参考: https://grafana.com/dashboards/1666 https://computingforgeeks.com/how-to-monitor-bind-dns-server-with-prometheus-and-grafana
DNS的分类 主DNS服务器:就是一台存储着原始资料的DNS服务器。 从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。 183.131.200.61 1.81.5.178 1.81.5.179 183.131.200.68 183.131.200.69 183.131.200.72 183.131.200.74 学习部署bind9 _64 GNU/Linux 安装bind9 配置yum源 使用centos6自带的yum源即可,同时确保机器可以解析外网域名,并能连接公网 yum install -y bind-utils bind bind-devel bind-chroot bind9主配置文件 options{ //全局选项 } zone "zone name" { //定义区域 } logging{ 加载自定义区域文件 include "/etc/named.root.key"; 检查配置文件 # named-checkconf -z /etc/named.conf 没有报错就属于正常 启动bind9服务
这个被称为Quad9(在服务获得的9.9.9.9互联网协议地址之后)的免费公共域名服务系统,旨在阻止与僵尸网络,网络钓鱼攻击和其他恶意Internet主机相关的域名该服务和那些不运行自己的DNS黑名单和白名单服务的组织 Quad9由全球网络联盟执法和研究机构建立(GCA)-an组织、与IBM和合作数据包交换所联合推出。 Quad9还会生成一个永不禁止的域白名单。它使用了一百万个被请求的域名列表。 “ 由于威胁行为在全球每天更新一至两次,因此Quad9可能不会对使用快速转换的DNS地址进行命令和控制的恶意软件产生太大影响。 而且组织可以很容易地记录来自Quad9的响应,通过记录NXDOMAIN响应来识别自己网络中可能具有恶意软件的系统,也可能是针对网络钓鱼攻击的系统。
导语 涉及DNS相关的概念词汇非常多,很多技术从业人员朗朗上口的比如于域名劫持,又或者运营商劫持,国内哪里哪里部署了根镜像,域名注册,域名备案,域名解析异常,DNS 放大攻击,随机子域名攻击,DNS故障了 ,DNS又故障了等等等等。 思来想去,随着Facebook 六小时断网故障的发生,我想先从故障开始,通过多起故障了解DNS分层访问体系,待对DNS分层体系有了了解后,我们在一点点去填充里面的知识点; image.png 本篇文章的主角是图一的 故障二:20210405联通大网Tencent Auth 域名解析超时---见内部分享 故障三:域名解析异常导致腾讯新闻列表1小时打开失败---见内部分享 这里还有很多权威DNS的故障,比如2016 日,Akamai DNS故障,导致Fnac、Amazon云服务等2w多个大型网站瘫痪;我们通过故障一Facebook的故障,看出AuthDNS对网络的依赖和DNS解析服务对业务的影响,我们通过故障二联通解析异常得出
后端10台机器:qps 4.44k,错误率6% ,504超时(Node等待后端超时) jmeter -> node接入层 -> ip:port -> 后端单台机器:qps 9.43k 1.png 9. 研发同学结合经验推测问题可能出现在DNS域名解析服务上。 17.png 4.在母机上使用iptables -t mangle -nvL ,确认是DNS限频问题。 18.png 5.在子机上尝试打开DNS缓存服务。 【附】开启NSCD DNS缓存服务的优点和缺点 优点 本地缓存DNS解析信息,提供解析速度。 DNS服务挂了也没有问题,在缓存服务时间范围内,解析依旧正常。 缺点 DNS解析信息会滞后,如域名解析更改需要手动刷新缓存,NSCD不适合做实时的切换的应用,目前对于依赖DNS切换的服务,建议不要开启DNS缓存。
DNS 问题分析 于是转向抓取 DNS 的包,很快得到失望的结果,seewo-xxx.uc-all 域名的 DNS 的请求也没有发起。 如果这个域名的 DNS 请求有发起,但是结果不对或者没有返回,那可以去找 coredns 的问题。但是这里情况是 DNS 请求都没有发起,那还不能甩锅到 coredns 那里。 通过这个图可以看到 libuv 对于网络事件的处理和文件 IO、DNS 的处理是不一样。DNS 的处理使用的是线程池,具体的逻辑后面会介绍。 /deps/uv/src/threadpool.c:122 #9 0x00007fd51a9ddea5 in start_thread () from /lib64/libpthread.so.0 #10 后记 同步阻塞的 DNS 系统函数是挺坑的,有 N 多第三方库自己实现基于 epoll 的异步 DNS 库,感兴趣的同学可以写一个玩一玩。
通过Wireshark和arthas排查由DNS引发的Ignite生产故障案例 故障背景 故障分析 第一次定位问题 跨架构假设 生产重现故障 Wireshark抓包分析 客户端10秒超时源码跟踪 结合日志查看服务端卡点 故障分析 由于开发人员log4j2日志配置不对,导致生产上没有看到错误日志 目前从维护人员得到的信息来看,猜测可能有2个原因导致故障: 1、跨架构导致故障,因为客户端x86架构,服务端power架构 2、网络问题导致故障,怀疑是跨中心,跨了网段导致故障 第一次定位问题 跨架构假设 针对第一点的假设,通过并行环境模拟,模拟不出故障,因此只能到生产环境重现故障,再做下一步定位。 ,也就是DNS解析,获取到IP,然后连接; 之前生产环境为什么没发现问题,是因为dns没有开启,本次由于其他业务上线,开启dns 相关配置如下: 原来没开启DNS: cat /etc/nsswitch.conf hosts: files 本次上线,维护在files后加上dns就会开启DNS,导致问题产生 hosts: files dns 15秒配置如下: 位于/etc/resolv.conf options
3月26日上午,DNSPod技术人员发现,目前北京联通递归DNS 202.106.46.151/202.106.0.20/210.51.176.71等多个IP出现时断时续的故障,经测试使用这些递归DNS 网络上搜索DNS故障,众多网友反馈,包括CCTV、凤凰网、网易等多家知名网站出现大规模访问故障。 故障原因猜测 DNSPod技术人员表示,出现问题的原因是在域名请求对应的IP地址过程中,递归DNS处在一个桥梁的过程中,当递归出现故障,请求将无法顺利完成,因此出现网站无法打开现象。 详情如下图显示: 故障如何应对? 作为普通用户,如何应对这次故障呢? DNSPod安全专家表示,可以通过自行修改DNS服务器地址为114.114.114.114(这是国内第一个、全球第三个开放的DNS服务地址,又称114DNS)或者8.8.8.8(是Google提供的免费
使用rndc可以在不停止DNS服务器工作的情况进行数据的更新,使修改后的配置文件生效。在实际情况下,DNS服务器是非常繁忙的,任何短时间的停顿都会给用户的使用带来影响。 rndc默认监听在953号端口(TCP),其实在bind9中rndc默认就是可以使用,不需要配置密钥文件。 r /dev/urandom # Start of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "PmY9ozjj3 adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "PmY9ozjj3 重启bind9服务 systemctl restart named netstat -luntp|grep 953 rndc的常用操作命令 rndc命令的通用操作格式为: rndc [-c config-file
但是有一种情况是Consumer 和 Provider的长连接还在,注册中心未下发摘除,但服务器端由于某些原因,例如长时间的 Full GC, 硬件故障(后文中为避免重复,统一描述为机器假死)等场景,处于假死状态 目前 SOFARPC 5.3.0 以上的版本支持 RPC 单机故障剔除能力。SOFARPC 通过服务权重控制方式来减少异常服务的调用,将更多流量打到正常服务机器上,提高服务可用性。 官方的文档在这里:自动故障剔除 service public static void main(String[] args) { ServerConfig serverConfig = new catch (InterruptedException e) { e.printStackTrace(); } } } 自动故障剔除模块的注册 注册故障剔除模块 我们在8.源码分析---从设计模式中看SOFARPC中的EventBus?
该公司在Edge DNS服务事件通告中表示:“我们已意识到Edge DNS服务出现了问题。” “我们正在积极调查问题。如果您因该问题而有疑问或受到影响,请联系Akamai技术支持部门。” 据Akamai声称,Edge DNS是其基于云的权威DNS解决方案,旨在提供24/7全天候不间断的DNS可用性,并提高DNS响应能力。 Akamai表示,故障不是网络攻击造成的。 Akamai现在披露,这次全球性故障的原因是“软件配置更新触发了DNS系统中的一个bug。” “今天15点46分,软件配置更新触发了DNS系统中的bug,该系统负责将浏览器引导到各个网站。这导致了故障,从而影响了一些客户网站的可用性。” “故障持续长达一个小时。 我们正在审核软件更新流程,以防将来出现故障。”