DNS 域名原理及失效处理.md 1.6 KB

# DNS 原理

  • DNS 服务器:在外网搭建PowerDNS服务,提供名称解析服务(当然使用其它 DNS 服务器也可以,比如 Bind 等)。最好有自带对外的增、删、改、查 接口服务,通过 http API 暴露接口,否则只能自己开发了。
    • 在域名控制台中,手动设置 svi.pub 域名解析,指向为我们自建的PowerDNS服务。后续的二级域名,都会在我们自建的 DNS 服务器上生成或解析啦。 :)
    • 云平台 "基础设施" 中,部署一个 "powerdns-external-dns" 基础服务(我们暂称之为DNS 客户端吧)。
    • DNS 客户端每隔一段时间(可配置),从云平台的 MetaData 元数据( http://rancher-metadata/ )信息中,获取 服务名、应用名(栈名)、服务所在主机等信息。
    • DNS 客户端通过提前配置好的域名规则 (默认是 <服务名>.<栈名>.<环境名>.)将数据进行组合为 http Post 信息。
    • DNS 客户端通过Insert_Or_Update接口,向 DNS 服务器 的 http API Post 数据,进行二级域名的增、删、改、查 。
  • # 问题处理

    目前基本碰到的问题,都是由于网络延时造成 api 提交数据失败。解决方案有以下几种:

    • 重启下 powerdns-external-dns 服务,查看日志如果没有出现错误即问题解决(80% 可以解决)
    • 将 powerdns-external-dns 中的健康检测的 "超时时间" 适当增加(一般设置为 2-10 左右的值,网络越差值越大 )
    • 优化下网络吧,目前线上暂时未发现有此问题 :-o