Loading... # 背景 线上环境计划稍后上CDN,但是对于业务稳定性不确定,之前与研发沟通初步认为没有问题。但是,为了确保线上使用CDN后不影响业务运行,还是觉着可以在本地办公环境下,对目标域名进行fake。 # 问题出现 ![2024-03-20T09:13:50.png][1] 在操作的过程中: * 对dnsmasq的配置内容进行新增 将目标域名解析为CDN域名的A记录。 * 调整办公网络DNS 修改出口路由器DHCP配置的DNS 修改为DNS服务器192.168.124.198 如果没有问题,那么问题就来了。 先是后面的同事,说电脑卡,重启后还是卡。我一看,简直除了拖动窗口无法点击其他东西了,关机也是ctrl alt delete,然后右下角选择关机。 这时候,办公室的其他同事也发现,除了电脑微信可以使用,网站无法打开。 毫无意外,势必是刚刚修改的DNS的问题。 赶紧进行切换,稍后就慢慢恢复了。 # 破案过程 ## 部署 dnsmassq监控 本地有categraf监控客户端,直接跑起来dnsmasq_exporter,然后使用input.exec插件将数据通过categraf打给夜莺监控就可以看了。 ``` wget -O /usr/bin/dnsmasq_exporter http://vip.123pan.cn/1815238395/download/categraf/dnsmasq/dnsmasq_exporter chmod a+x /usr/bin/dnsmasq_exporter cat <<'EOF'>/usr/lib/systemd/system/dnsmasq_exporter.service [Unit] Description=DNS caching server. After=network.target [Service] ExecStart=/usr/bin/dnsmasq_exporter --log.path=/var/log/dnsmasq.log [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl restart dnsmasq_exporter cat <<'EOF'>/opt/categraf/conf/input.exec/dnsmasq_exporter.sh #!/bin/bash curl http://127.0.0.1:9153/metrics EOF chmod a+x /opt/categraf/conf/input.exec/dnsmasq_exporter.sh ``` ![2024-03-20T09:15:55.png][2] ## 尝试在出口机房部署dnsmasq 已经部署好了。俩机器从ping的角度看也没啥问题。 ![2024-03-22T08:15:22.png][3] ## 查看防火墙对于访问源的session速度限制 也没有限制哦。 ![2024-03-22T08:14:56.png][4] ## 好像确实是dnsmasq的性能问题 用一会儿就断线了 ## 切换bind ``` yum install -y bind cat <<'EOF'>/etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; recursion yes; dnssec-enable yes; dnssec-validation no; bindkeys-file "/etc/named.root.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; max-cache-size 256M; forwarders { 223.5.5.5; }; forward only; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; statistics-channels { inet 127.0.0.1 port 8053 allow { 127.0.0.1; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; EOF named-checkconf rndc reload ``` 部署监控 ``` wget --no-check-certificate -O /bin/bind_exporter http://vip.123pan.cn/1815238395/download/bind/bind_exporter chmod a+x /bin/bind_exporter cat <<'EOF'>/etc/systemd/system/bind_exporter.service [Unit] Description=BIND Exporter for Prometheus Wants=network-online.target After=network-online.target [Service] Type=simple ExecStart=/bin/bind_exporter --bind.stats-url=http://localhost:8053/ Restart=on-failure [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable bind_exporter systemctl start bind_exporter ``` 好像一会儿也断,但是比dnsmasqs要好一些 担心同事上不去网,中午就测试了一小会儿。有机会再测试。 ![2024-03-26T06:12:19.png][5] ## 切换另一台openeuler + dnsmasq 不行。能看到服务器收到包,但是就是不想应。而且ifconfig查看网卡接口的drop包不断上涨。 这个ifconfig的drop是网卡综合丢包的计数器。 偶然的机会,发现openeuler的yum仓库中的dnsmasq有问题。 ![2024-03-26T06:13:17.png][6] ![2024-03-26T06:16:18.png][7] [1]: https://www.sddts.cn/usr/uploads/2024/03/2413293080.png [2]: https://www.sddts.cn/usr/uploads/2024/03/1614847494.png [3]: https://www.sddts.cn/usr/uploads/2024/03/2444823299.png [4]: https://www.sddts.cn/usr/uploads/2024/03/3422643882.png [5]: https://www.sddts.cn/usr/uploads/2024/03/3102166622.png [6]: https://www.sddts.cn/usr/uploads/2024/03/1494215423.png [7]: https://www.sddts.cn/usr/uploads/2024/03/2192280083.png 最后修改:2024 年 05 月 11 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏