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 集群,点击创建按钮。