开发者社区 > 域名解析DNS > DNS最佳实践 > 正文

如何处理 CentOS DNS 解析超时



问题现象


CentOS 实例出现 DNS 解析超时的情况。

原因分析


因 CentOS 6 和 CentOS 7 的 DNS 解析机制变动所致,2017 年 2 月 22 日以前创建的 ECS 实例或使用 2017 年 2 月 22 日前的自定义镜像创建的 CentOS 6 和 CentOS7 实例可能出现 DNS 解析超时的情况。

解决方法

  1. 下载脚本 fix_dns.sh
  2. 将下载的脚本放到 /tmp 目录下。
  3. 执行命令 bash /tmp/fix_dns.sh 运行脚本。


脚本作用


判断 DNS 解析文件 /etc/resolv.conf 中是否有 options > single-request-reopen 配置。CentOS 6 和 CentOS 7 的 DNS 解析机制中,发送 IPV4 DNS 和 IPV6 DNS 请求使用了相同的网络五元组,此时应开启 single-request-reopen 配置,一旦出现同一 socket 发送的两次请求处理,解析端发送第一次请求后会关闭 socket,并在发送第二次请求前打开新的 socket。配置成功后不需要重启实例即可生效。

脚本逻辑

  1. 判断实例系统是否为 CentOS 系统:
    • 实例为非 CentOS 系统,如 Ubuntu 和 Debian,脚本停止工作。
    • 实例为 CentOS 系统,继续工作。
  • 查询解析文件 /etc/resolv.conf 中 options 配置情况。
    • 如果不存在 options 配置,默认使用阿里云 options 配置:options timeout:2 attempts:3 rotate single-request-reopen
    • 如果存在 options 配置:不存在 single-request-reopen,在 options 配置中追加该项。
    • 存在 single-request-reopen,则脚本停止工作,不更改 DNS nameserver 的配置。

  • 如问题还未解决,请 提交工单联系阿里云。

    展开
    收起
    boxti 2017-10-20 11:12:12 10053 0
    1 条回答
    写回答
    取消 提交回答

    使用DNS和运维DNS相关的最佳实践

    相关产品

  • 云解析DNS
  • 相关电子书

    更多
    神龙云服务器产品及技术深度解析 立即下载
    CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
    CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载