本文档介绍了火山引擎私网解析(PrivateZone)的域名系统(DNS)的基本概念。
火山引擎私有网络(VPC,Virtual Private Cloud)为火山引擎的云资源构建逻辑上隔离的、可自定义配置的虚拟网络环境。参见 什么是私有网络。
权威 DNS 服务器(Authoritative Server)是维护 DNS 解析记录的服务器。权威 DNS 服务器不会直接接收用户的 DNS 查询请求,只会和递归 DNS 服务器交互。收到来自递归 DNS 服务器的 DNS 查询请求时,权威 DNS 服务器会返回权威解析记录。
递归 DNS 服务器(Recursive Server)接收用户的 DNS 查询请求。如果用户的 DNS 查询请求命中了缓存,则递归 DNS 服务器会返回缓存的解析结果。如果用户的 DNS 查询请求没有命中缓存,递归 DNS 服务器会通过迭代查询从权威 DNS 服务器获取解析结果。递归 DNS 服务器会把解析结果返回给用户并缓存解析结果。
TTL 是解析记录的一个属性,表示您希望解析记录在递归 DNS 服务器的缓存中保存的时长。如果保存的时长超过了 TTL,该记录会被从缓存中丢弃。
TTL 的值越大,解析记录在递归 DNS 服务器的缓存中保存的时长越长。当解析记录发生变更后,生效所需的时间就越长。
解析器(Resolver)在私网解析 PrivateZone 中提供递归 DNS 服务。收到 DNS 查询请求时,解析器会按次序匹配域名和云产品权威域名的解析记录、类型为 转发到外部DNS系统 的转发规则和匹配递归解析。参见 工作原理。
转发规则用于把 DNS 查询请求转发到外部的 DNS 服务器。转发规则规定了需要转发 DNS 查询请求的域名,对应的出站终端节点及外部的 DNS 服务器的 IP 地址。您在解析器中创建转发规则。
只有匹配转发规则的转发域名且来自转发域名生效范围内的 DNS 查询请求才会按照转发规则被转发。
在把外部的 DNS 查询请求转发到解析器的场景中,您需要创建出站终端节点。收到解析器转发的 DNS 查询请求后,出站终端节点会把 DNS 查询请求转发到外部的 DNS 服务器。
在把 DNS 查询请求转发到外部的 DNS 服务器的场景中,您需要创建出站 VPC。出站 VPC 用于与自建 IDC/第三方云服务建立网络连接。
在把外部的 DNS 查询请求转发到解析器的场景中,您需要创建入站终端节点。收到来自外部的 DNS 查询请求后,入站终端节点会把 DNS 查询请求转发到解析器。
在把外部的 DNS 查询请求转发到解析器的场景中,您需要创建入站 VPC。入站 VPC 用于与自建 IDC/第三方云服务建立网络连接。
域名系统(Domain Name System,DNS)包含域名空间(Domain Name Space)、解析记录(Resource Record)、解析器(Resolver)和名称服务器(Name Server)。从用户的视角看,域名系统的作用类似电话簿,为用户提供了域名对应的资源信息。
例如,一名用户访问网站时,在浏览器中输入网站的域名。浏览器向 DNS 服务器发送查询请求。接收到查询请求后,DNS 服务器将域名解析成 IP 地址,并把 IP 地址返回给浏览器。然后,浏览器向网站服务器的 IP 地址发送 HTTP 请求。
参见 RFC 1034 和 RFC 1035 了解详细信息。
在 DNS 中,域名用于在域名空间(Domain Name Space)中标识网络资源。一个域名(Domain Name)由根域,顶级域,站点域以及子域组成。比如,在 www.example.com.
中,顶级域是 com
,站点域是 example
,子域是 www
,根域是 .
。根域在域名中通常会被省略。
参见 RFC 1034 和 RFC 1035 了解详细信息。
在 VPC 中,域名可以用于标识私有网络(VPC)中的资源,例如 ECS、TOS 或 RDS 等。例如,ecs-game-app-huabei1.private.zone.
可以标识一台 ECS 的私网 IP 地址。
火山引擎的云产品可以通过跨服务访问的方式调用私网解析 PrivateZone 的 OpenAPI 为 VPC 创建域名和域名下的解析记录。通过这种方式创建的域名会以云产品权威域名的形式显示在火山引擎私网解析(PrivateZone)的控制台上。
在私网解析 PrivateZone 中,解析记录(Resource Record,RR)是域名与 VPC 内资源信息的映射。例如,以下解析记录指定 example.com
域名对应的内网 IPv4 地址为 10.0.0.1
。
@.example.com. 600 IN A 10.0.0.1
参见 RFC 1034 和 RFC 1035 了解详细信息。
私网解析 PrivateZone 使用记录集(Record set,RRSet)管理一条或多条有相同的域名、线路和类型的解析记录。您可以为一个记录集中的多条解析记录设置权重,从而实现基于 DNS 的负载均衡。参见 RFC 7719 中的 RRSet。
记录值(RDATA)是解析记录中的资源信息。例如,以下解析记录指定 example.com
域名对应的 IPv4 地址为 10.1.1.1
。其中,10.1.1.1
就是该解析记录的记录值。
@.example.com. 600 IN A 10.1.1.1
参见 RFC 1034 和 RFC 1035 了解详细信息。
私网解析 PrivateZone 可以根据每个 ECS 实例的主机名自动生成一条解析记录,即主机名记录。每个 ECS 实例所对应的主机名记录都指向该 ECS 实例的内网 IP 地址。这样,您就可以通过主机名记录访问 ECS 实例。
线路指用户请求的来源。在私网解析 PrivateZone 中,线路可以是一个 VPC 子网。
如果您的域名可以解析到不同的服务 IP 地址,并且希望用户请求被路由到满足以下要求的 IP 地址以减少用户访问延时:
您可以将一条线路分配给包含一个或多个服务 IP 地址的记录集。每条线路代表记录集中服务 IP 地址的 VPC 子网。
私网解析 PrivateZone 的 DNS 服务器在接收到 DNS 查询请求时,会根据 DNS 查询请求中包含的客户端 IP 地址判断客户端的 IP 地址所在的 VPC 子网。如果客户端的 VPC 子网与线路匹配,则 DNS 响应中仅包含相应记录集内的 IP 地址。