# DNS 工作图

OpenResty Edge 可以当做 DNS 的权威解析服务器。

如下示意图:

在不考虑 DNS 缓存的情况下,客户端解析 example.com 需要经过这两个环节:

  1. 查询根域名服务器,获取 example.com 的权威服务器地址。
  2. 查询 example.com 的权威服务器,获取 example.com 的地址。

如果希望使用 OpenResty Edge 网关来实现权威服务器,需要将权威服务器地址指向网关节点

# 启用 DNS

在使用 DNS 服务之前,需要确保全局配置/DNS是启用的状态。

# 创建 DNS 应用

选择DNS选项卡,点击创建新的DNS应用。

按照提示填写解析的域名和域名服务器,如 example.com 和 ns1.example.com/ns2.example.com。

# 解析到网关节点

在域名提供商的管理控制台里,将域名服务器(如 n1s.example.com)的解析指到网关节点上。

如在 Godaddy 上,就是先添加主机名ns1和ns2,IP 地址为Edge的网关节点IP,然后再将域名服务器设置为 ns1.example.com / ns2.example.com。

等待NS记录解析生效后,网关节点就可以提供 DNS 解析的服务了。

# 添加DNS记录

在 DNS 应用列表中选择创建好的DNS应用,点击添加 DNS 记录。

支持添加的DNS记录类型有:A、AAAA、CNAME、MX、TXT、NS,同时可以根据用户网络类型解析到不同的网关节点,

目前可选择的网络类型有国家,地区以及运营商。

# 自动选择合适的DNS记录

在创建DNS记录的时候可以选择该条记录对应的网段,Edge会通过请求的ip地址返回对应的DNS记录

或者通过cidr的方式

# 计算推荐配置

如果不想手动配置每条DNS记录,可以使用 计算推荐配置

填入配置,会根据配置生成合适的DNS记录

# DNS 记录优先级

OpenResty Edge 可以针对不同的网络来源,配置不同的 DNS 解析记录。比如配置如下两条 DNS 记录:

  1. 来自北京的 DNS 请求,解析到 1.1.1.1 这个 IP
  2. 来自中国的 DNS 请求,解析到 2.2.2.2 这个 IP

针对这种存在包含关系的 DNS 记录,OpenResty Edge 会按照精确度优先的原则来解析。 比如:

  1. 如果客户端来自北京,则会应用规则 1,解析到 1.1.1.1
  2. 如果客户端来自非北京的中国其他地区,则会应用规则 2,解析到 2.2.2.2

# DNS记录支持主备设置

类型 + 记录 + 网络类型 完全相同的DNS记录可以设置互为主备

默认只使用主DNS记录,以下情况会使用备DNS记录:

  1. 没有主DNS记录
  2. 开启了健康检查后,主DNS记录不健康

# 开启DNS健康检查

在 DNS 应用编辑页面中打开 DNS健康检查

配置项含义如下:

  • 端口:edge admin会检查DNS记录的ip+配置的端口是否能正常通信,每个DNS应用只支持配置一个端口
  • 超时时间:每次检查tcp连接的超时时间,如果超过此时间不能建立正常连接,则认为此次检查失败
  • “不健康”阈值:检查失败次数超过此阈值,就判定此DNS记录不健康

暂时只支持 A 和 AAAA 类型的DNS记录进行健康检查,不健康的DNS记录会被强制下线

不健康状态:

健康状态:

# DNS绑定到k8s集群

DNS绑定到k8s集群后会自动管理dns记录

新建dns应用时打开map to kubernetes开关,选择k8s集群,点击创建按钮。