{{i18nTranslate('_layout.t11')}} {{i18nGetLang()==='zh' ? 'EN' : '中文'}}

# 集群域名解析

可以手动设置域名解析也可以让系统自动根据配置变化修改域名解析记录。

## 原理

从业务域名到边缘节点IP的域名解析过程如下图所示：

其中：

- 1.1 用户查询要访问的网站域名A记录，比如`example.com`；
- 1.2 你的网站域名所在的DNS服务商会将CNAME返回到用户客户端，之所以是CNAME，是因为你需要在DNS解析里设置一个CNAME，来将你的域名映射到CDN集群上
- 2.1 用户客户端查询1.2中返回的网站域名CNAME，查询的DNS服务是你集群使用的DNS服务
- 2.2 你集群使用的DNS服务返回集群域名CNAME
- 3.1 用户客户端再次查询2.2中返回的集群域名CNAME
- 3.2 集群使用的DNS服务返回集群节点IP
- 4.1 这样，用户客户端就可以通过3.2返回的集群节点IP访问到我们的边缘节点了
- 4.2 边缘节点返回用户要访问的内容，整个过程结束

可以看出：

- 业务域名（即提供给用户访问的域名）要单独在自己的DNS解析服务中设置CNAME
- 需要在集群DNS域名解析服务中设置一个集群域名，用于生成业务域名的CNAME，并将业务域名最终解析到节点IP，本文中的域名解析设置即为完成这一步骤
- 集群域名这一步骤对终端访问的用户来说是不可见的，不会影响到用户体验

## 设置集群域名解析

### 步骤1：添加DNS服务商

在”域名解析”菜单 – “DNS服务商”页面点击”[添加DNS账号信息]“：

选择服务商厂家，并填写相关参数，目前支持：

- 阿里云DNS
- 腾讯云DNSPod
- 华为云DNS
- CloudFlare DNS
- 自定义HTTP DNS
- EdgeDNS（仅商业版支持）
- DNS.COM（仅商业版支持）
- GoDaddy（仅商业版支持）
- DNS.LA（仅商业版支持）
- ClouDNS（仅商业版支持）
- Amazon Route 53（仅商业版支持，GoEdge v1.3.0中加入）
- 微软Azure DNS（仅商业版支持，GoEdge v1.3.0中加入）
- 火山引擎TrafficRoute DNS套件（仅商业版支持，GoEdge v1.3.0中加入）
- bunny.net DNS（仅商业版支持，GoEdge v1.3.9中加入）

如果你不知道怎么获取这些参数，请联系对应的服务商咨询。

### 步骤2：同步DNS数据

在已添加的某个服务商详情中，点击对应域名一行中的”同步”，可以同步域名的线路等信息：

### 步骤3：设置集群的DNS

可以在”边缘节点” – “集群列表” – 集群”详情” – “集群设置” – “DNS设置”中修改集群的DNS设置： 这里可以选择我们添加的DNS服务商的域名：

这里的：

- `主域名` - 集群和节点的域名记录所属的主域名
- `DNS子域名` - 集群的独立的域名名称，各个集群之间的域名名称不能冲突

### 步骤4：节点选择线路

在前3个步骤完成后，系统就会自动地同步域名解析记录，节点使用的都是默认线路。如果你想让某个节点只为某个区域或者某个ISP服务时，可以为节点选择线路。

在节点”详情” – “修改设置” – “DNS”设置中可以为当前节点选择线路：

单个节点可以添加多个线路；同样的，多个节点也可以添加同样的线路。

## 诊断问题

可以在”域名解析”菜单 – 某个集群”详情”中，查看当前集群的域名解析问题，并根据提示进行修复：

## 常见问题

### 为什么解析记录显示已解析，但是无法访问，或者无法通过ping等工具查看解析？

1. 域名解析客户端（指我们使用的电脑、路由器、使用的解析服务）通常有缓存，所以不会立即生效，生效时间具有不确定性
2. 你域名使用的DNS服务有缓存或者有生效时间，具体请咨询你使用的DNS服务提供商。

总结：解析记录生成后，如果无法生效，跟你的客户端和你域名使用的DNS服务有关，具有不确定性，GoEdge本身无法控制这些外部因素。

### 设置解析后，为什么我每次Ping域名都得到不一样的IP？

这个跟你域名使用的DNS服务有关，不同的服务商、不同的线路各自有不同的策略，具体请咨询你使用的DNS服务提供商。

{{i18nTranslate('_layout.t27')}}
{{i18nTranslate('_layout.t12')}}