Article / 文章中心

如何处理阿里云CentOS DNS解析超时

发布时间:2018-02-02 点击数:5253

问题现象

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 系统,继续工作。
  2. 查询解析文件 /etc/resolv.conf 中 options 配置情况。
    • 如果不存在 options 配置,默认使用阿里云 options 配置:options timeout:2 attempts:3 rotate single-request-reopen。AlibabaCloudOptions
    • 如果存在 options 配置:
      • 不存在 single-request-reopen,在 options 配置中追加该项。
      • 存在 single-request-reopen,则脚本停止工作,不更改 DNS nameserver 的配置。

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