IP 锚点域名命名规范
本文约定标准 IP 锚点域名的命名空间、命名格式、字段和 DNS 记录写法。
示例统一使用 example.com。实际落地时替换为自己的根域名。
基础规范
命名空间
保留四类核心命名空间:
| 命名空间 | 表达对象 | 用途 |
|---|---|---|
host.example.com |
单个主机地址 | 主机 IP 锚点,例如 VPS、PC、NAS、Router、Gateway |
wan.example.com |
单个公网出口地址 | 公网出口 IP 锚点,例如家庭出口、办公出口、DDNS 出口 |
net.example.com |
单个网络入口地址 | 网络入口 IP 锚点,例如 VPN、Tunnel、Proxy、SSH Gateway |
pool.example.com |
多个地址组成的目标组 | 多 IP 目标组,例如 DNS 轮询、入口集群、负载均衡目标组 |
不使用 svc.example.com 或 dyn.svc.example.com。业务服务域名不纳入本规范;动态出口统一放在 wan.example.com 下。
本规范不定义端口、协议、环境、业务服务、证书和访问控制。业务服务可以引用 IP 锚点域名,但业务服务名不进入 IP 锚点域名本身。
命名格式
| 类型 | 格式 | 示例 |
|---|---|---|
| 主机 IP 锚点 | <host-id>.host.example.com |
vps-hk-oracle-edge.host.example.com |
| 主机地址作用域 | <host-id>.<host-scope>.host.example.com |
vps-hz-aliyun-a.priv.host.example.com |
| 公网出口 IP 锚点 | <site>-<region>-<network>-<identity>.wan.example.com |
home-wh-ct-main.wan.example.com |
| 网络入口 IP 锚点 | <net-type>-<region>-<network>-<identity>.net.example.com |
vpn-wh-ct-main.net.example.com |
| 多 IP 目标组 | <function>-<pool-scope>-<identity>.pool.example.com |
edge-global-main.pool.example.com |
命名约束
- 全部使用小写字母、数字和连字符
-。 - 单个标签不以连字符开头或结尾,不使用连续连字符;单个标签长度不超过 63 个字符,完整域名长度不超过 253 个字符。
identity表达稳定实例身份,不使用 IP、端口、环境名或临时状态。- 不把
grafana、registry、api这类业务服务名放进 IP 锚点域名。 - 不把
prod、dev这类环境名放进 IP 锚点域名;环境信息放到标签、Inventory 或业务域名中。 host、wan、net表达单个稳定对象;pool表达多个地址组成的集合。- 主机存在多个地址时,使用
host-scope的priv、pub、egress区分地址作用域。 pool-scope表达目标组覆盖范围,不要求目标地址属于同一个地域。pool不固定network字段,成员 IP 可以来自不同线路、厂商或地域。pool使用基础设施功能命名,例如edge、ingress、proxy,避免使用具体业务服务名。
字段与取值
本节按命名格式说明字段。region、network、identity 是跨多个命名空间复用的公用字段;pool 不使用 network,因为目标组成员的 IP 来源可能不同。
公用命名字段
| 字段 | 含义 | 使用范围 | 说明 / 示例 |
|---|---|---|---|
region |
地域 | host、wan、net |
例如 wh、sh、hk、sg、us-la |
network |
网络、线路、运营商或云厂商 | host、wan、net |
例如 ct、cu、cmcc、bgp、aliyun、oracle、cf、lan |
identity |
稳定对象身份 | host、wan、net、pool |
用于区分同类对象,例如 main、backup、edge、relay、01 |
network 取值按对象来源选择,避免在同一个字段中混合表达多个维度:
- 家庭、办公、实验室、IDC 等物理出口,优先使用运营商、线路或本地网络,例如
ct、cu、cmcc、cernet、lan。 - 云主机、云 NAT、云负载均衡、云上入口,优先使用云厂商或平台,例如
aliyun、tencent、aws、oracle、gcp。 - 第三方网络平台或明确的全局网络入口,使用平台或线路能力,例如
cf、bgp。 - 不在
network中拼接多个来源。需要表达更细的实例差异时,放到identity、标签、Inventory 或业务配置中。
host 命名字段
适用格式:
| 格式 | 用途 |
|---|---|
<host-id>.host.example.com |
主机默认 IP 锚点 |
<host-id>.<host-scope>.host.example.com |
主机指定地址作用域 |
字段说明:
| 字段 | 含义 | 说明 / 示例 |
|---|---|---|
host-id |
主机稳定身份 | 默认格式为 <role>-<region>-<network>-<identity> |
role |
主机角色 | 例如 vps、pc、nas、router、gw |
region |
地域 | 公用字段 |
network |
网络、线路、运营商或云厂商 | 公用字段 |
identity |
稳定对象身份 | 公用字段,用于区分同类主机 |
host-scope |
主机地址作用域 | 仅用于 <host-id>.<host-scope>.host.example.com |
使用 host-scope 后,地址类型已经由 priv、pub、egress 表达,host-id 可以只保留识别主机所需的稳定字段。简化时以不冲突为前提,不要为了缩短名称牺牲唯一性。
| 场景 | 建议 host-id 格式 | 示例 |
|---|---|---|
| 需要完整自解释,或没有外部资产清单 | <role>-<region>-<network>-<identity> |
vps-hz-aliyun-a.priv.host.example.com |
已使用 host-scope,且主机身份不依赖 network |
<role>-<region>-<identity> |
vps-hz-a.priv.host.example.com |
| 小规模固定资产,名称不会跨地域或厂商冲突 | <role>-<identity> 或 <identity> |
nas-main.priv.host.example.com、nas.priv.host.example.com |
<host-scope>.host.example.com 是作用域子命名空间:
| host-scope 取值 | 作用域子命名空间 | 含义 | 记录建议 |
|---|---|---|---|
priv |
priv.host.example.com |
主机内网地址 | 优先维护在私有 DNS 或分视图 DNS 中;确认允许暴露时才放公网 DNS |
pub |
pub.host.example.com |
主机入站公网地址 | 直接维护 A / AAAA |
egress |
egress.host.example.com |
主机出站公网地址 | 直接维护 A / AAAA,或 CNAME 到 pub / wan 锚点 |
priv.host.example.com 可能暴露内网地址、资产命名和网络结构。公网 DNS 中发布 priv 记录前,应确认该暴露符合安全和运维要求;否则应使用私有 DNS、分视图 DNS 或内部解析区域。
<host-id>.host.example.com 可作为主机默认地址;需要同时管理内网、公网入站和公网出站地址时,优先使用显式作用域。
egress 用于标识主机访问外部网络时对端看到的公网 IP。它常用于第三方服务 IP 白名单、防火墙放行、审计排查和出口一致性检查。egress 可以与 pub 相同,也可以指向 NAT Gateway、共享 EIP、家庭出口或办公出口等
wan.example.com 锚点。
wan 命名字段
适用格式:
| 格式 | 用途 |
|---|---|
<site>-<region>-<network>-<identity>.wan.example.com |
公网出口 IP 锚点 |
字段说明:
| 字段 | 含义 | 说明 / 示例 |
|---|---|---|
site |
场地或出口来源 | 例如 home、office、lab、nat |
region |
地域 | 公用字段 |
network |
网络、线路、运营商或云厂商 | 公用字段 |
identity |
稳定对象身份 | 公用字段 |
net 命名字段
适用格式:
| 格式 | 用途 |
|---|---|
<net-type>-<region>-<network>-<identity>.net.example.com |
网络入口 IP 锚点 |
字段说明:
| 字段 | 含义 | 说明 / 示例 |
|---|---|---|
net-type |
网络入口类型 | 例如 vpn、tunnel、socks、sshgw、proxy、ingress |
region |
地域 | 公用字段 |
network |
网络、线路、运营商或云厂商 | 公用字段 |
identity |
稳定对象身份 | 公用字段 |
pool 命名字段
适用格式:
| 格式 | 用途 |
|---|---|
<function>-<pool-scope>-<identity>.pool.example.com |
多 IP 目标组 |
字段说明:
| 字段 | 含义 | 说明 / 示例 |
|---|---|---|
function |
多 IP 目标组功能 | 例如 edge、ingress、proxy、gateway |
pool-scope |
多 IP 目标组覆盖范围 | 例如 global、multi、cn、ap、hk、sg、wh |
identity |
稳定目标组身份 | 用于区分同类目标组,例如 main、backup、blue、green |
function 用来说明这组 IP 作为哪类基础设施目标被使用,例如边缘入口、统一入口、代理或网关。它不表达具体业务服务;grafana、api、registry 这类业务域名应 CNAME 到 pool 锚点,而不是写进 function。
identity 也不用于绕过业务服务名限制。需要区分多个目标组时,identity 表达稳定的基础设施目标组身份;业务服务名称保留在业务域名、配置、标签或 Inventory 中。
常用 pool-scope:
| 取值 | 含义 |
|---|---|
global |
跨地域或全球目标组 |
multi |
多地域目标组,但不强调具体范围 |
cn |
中国大陆目标组 |
ap |
亚太目标组 |
hk |
香港目标组 |
sg |
新加坡目标组 |
wh |
武汉目标组 |
字段取值参考
地域缩写
| 地域 | 缩写 | 地域 | 缩写 | |
|---|---|---|---|---|
| 武汉 | wh |
香港 | hk |
|
| 上海 | sh |
新加坡 | sg |
|
| 北京 | bj |
日本东京 | jp-tokyo |
|
| 广州 | gz |
韩国首尔 | kr-seoul |
|
| 深圳 | sz |
美国洛杉矶 | us-la |
|
| 杭州 | hz |
美国圣何塞 | us-sjc |
|
| 南京 | nj |
德国法兰克福 | de-fra |
网络和厂商缩写
| 网络 / 线路 | 缩写 | 云厂商 / 平台 | 缩写 | |
|---|---|---|---|---|
| 中国电信 | ct |
阿里云 | aliyun |
|
| 中国联通 | cu |
腾讯云 | tencent |
|
| 中国移动 | cmcc |
Google Cloud Platform | gcp |
|
| 教育网 | cernet |
AWS | aws |
|
| BGP 多线 | bgp |
Oracle Cloud | oracle |
|
| LAN 内网 | lan |
Cloudflare | cf |
不要使用 tc 表示中国电信,避免与 Tencent Cloud 混淆。统一使用 ct。
常用 function
function 用于表达 pool 的基础设施职责,不表达业务服务名。
| 取值 | 含义 | 适用场景 |
|---|---|---|
edge |
边缘入口 | 对外入口、多地域入口、边缘节点集群 |
ingress |
入站入口 | 统一入站流量入口,后续再转发到服务 |
gateway |
网关 | 协议网关、API Gateway、HTTP Gateway |
proxy |
代理 | 正向代理、反向代理、协议代理 |
relay |
中继 | 隧道中继、跨网络转发、中转节点 |
lb |
负载均衡 | 明确表示负载均衡器地址组 |
egress |
出站出口组 | 多个出口 IP 组成的出站池 |
常用 identity
identity 用于表达稳定对象身份,不限于数字编号或主备角色。
对 pool 而言,多个同类目标组需要区分时,可以把稳定的目标组身份放在 identity 中。identity 只用于区分目标组,不改变 function 的基础设施职责,也不承载业务服务名。
| 取值 | 含义 | 取值 | 含义 | |
|---|---|---|---|---|
main |
主实例 | lab |
实验节点 | |
backup |
备用实例 | build |
构建节点 | |
edge |
边缘入口 | storage |
存储节点 | |
relay |
中继节点 | monitor |
监控节点 | |
proxy |
代理节点 | 01, 02 |
数字实例标识 |
DNS 记录示例
以下内容按命名格式展示常见 DNS 记录写法,不代表唯一实现。实际记录类型和目标应结合 DNS 服务商能力、自动化方式和网络拓扑调整。
DNS 记录约束
- 同一记录名使用
CNAME时,不应再同时维护A、AAAA或其他记录。 pool使用多条A/AAAA、DNS 服务商的权重记录、地理解析或健康检查能力实现目标组,不使用多条CNAME聚合多个主机锚点。- DNS 轮询不等于健康检查。需要自动摘除故障地址时,应使用 DNS 服务商健康检查、负载均衡能力或外部自动化同步。
CNAME链路应尽量短,避免业务域名、net、wan、host之间形成难以排查的长链路。- 使用方需要指定地址族时,应查询同一锚点的
A或AAAA记录自行选择,不额外定义v4/v6子命名空间。
业务域名引用示例
业务服务域名可以引用 IP 锚点域名。业务名称保留在业务域名中,IP 锚点域名只表达基础设施对象。
| 业务用途 | 业务域名 | 类型 | 值 / 目标 |
|---|---|---|---|
| Grafana | grafana.example.com |
CNAME |
edge-global-main.pool.example.com |
| API 入口 | api.example.com |
CNAME |
ingress-global-main.pool.example.com |
| Registry | registry.example.com |
CNAME |
edge-global-main.pool.example.com |
| 示例类型 | 命名格式 |
|---|---|
| 主机默认地址 | <host-id>.host.example.com |
| 主机地址作用域 | <host-id>.<host-scope>.host.example.com |
| 公网出口地址 | <site>-<region>-<network>-<identity>.wan.example.com |
| 网络入口地址 | <net-type>-<region>-<network>-<identity>.net.example.com |
| 多 IP 目标组 | <function>-<pool-scope>-<identity>.pool.example.com |
主机默认地址
| 记录名 | 类型 | 值 / 目标 | 说明 |
|---|---|---|---|
vps-hk-oracle-edge.host |
A |
<static-ipv4> |
IPv4 默认解析,将主机默认地址解析到一个 IPv4 地址 |
vps-hk-oracle-edge.host |
AAAA |
<static-ipv6> |
IPv6 默认解析,将主机默认地址解析到一个 IPv6 地址 |
vps-hz-aliyun-a.host |
CNAME |
vps-hz-aliyun-a.pub.host.example.com |
复用显式作用域地址,默认地址跟随 pub 作用域记录维护 |
主机地址作用域
| 记录名 | 类型 | 值 / 目标 | 说明 |
|---|---|---|---|
vps-hz-aliyun-a.priv.host |
A |
<private-ipv4-a> |
主机内网地址,管理主机私网地址 |
vps-hz-aliyun-a.pub.host |
A |
<public-ipv4-a> |
主机入站公网地址,管理主机公网入站地址 |
vps-hz-aliyun-a.egress.host |
CNAME |
vps-hz-aliyun-a.pub.host.example.com |
出站地址复用入站公网地址,出站 IP 与入站公网 IP 相同时使用 |
vps-hz-aliyun-b.priv.host |
A |
<private-ipv4-b> |
共享出口场景下的内网地址,仍单独维护每台主机内网地址 |
vps-hz-aliyun-a.egress.host |
CNAME |
nat-hz-aliyun-main.wan.example.com |
共享出口映射,主机出站地址指向共享出口锚点 |
vps-hz-aliyun-b.egress.host |
CNAME |
nat-hz-aliyun-main.wan.example.com |
共享出口映射,主机出站地址指向共享出口锚点 |
公网出口地址
| 记录名 | 类型 | 值 / 目标 | 说明 |
|---|---|---|---|
home-wh-ct-main.wan |
A |
<dynamic-ipv4> |
公网动态出口 IPv4,由 DDNS 或自动化任务更新 |
home-wh-ct-main.wan |
AAAA |
<dynamic-ipv6> |
公网动态出口 IPv6,由 DDNS 或自动化任务更新 |
nat-hz-aliyun-main.wan |
A |
<shared-egress-ipv4> |
共享 NAT 出口,例如 NAT Gateway、统一公网出口或共享 EIP |
网络入口地址
| 记录名 | 类型 | 值 / 目标 | 说明 |
|---|---|---|---|
vpn-wh-ct-main.net |
CNAME |
home-wh-ct-main.wan.example.com |
VPN 入口,网络入口指向公网出口 |
socks-wh-ct-main.net |
CNAME |
home-wh-ct-main.wan.example.com |
SOCKS 入口,网络入口指向公网出口 |
sshgw-hk-bgp-edge.net |
CNAME |
vps-hk-oracle-edge.host.example.com |
SSH Gateway 入口,网络入口指向主机锚点 |
ingress-hz-aliyun-main.net |
A |
<ingress-eip> |
NAT 入站 EIP,NAT 网关上专门负责入站的 EIP |
tunnel-wh-cf-main.net |
CNAME |
<cloudflare-tunnel-target> |
Tunnel 入口,网络入口指向上游隧道目标 |
多 IP 目标组
| 记录名 | 类型 | 值 / 目标 | 说明 |
|---|---|---|---|
edge-global-main.pool |
A |
多个 <edge-ipv4-*> |
同一记录名维护多条 IPv4 地址,用于 DNS 轮询或 DNS 负载均衡 |
edge-global-main.pool |
AAAA |
多个 <edge-ipv6-*> |
同一记录名维护多条 IPv6 地址,用于 DNS 轮询或 DNS 负载均衡 |
edge-global-main.pool |
A / AAAA |
由 DNS API、Inventory 或自动化任务同步 | 自动化同步目标组,pool 不使用多条 CNAME 聚合多个主机锚点 |
记录反例
| 不推荐 | 推荐 | 原因 |
|---|---|---|
ipv4.tc.wh.example.com |
home-wh-ct-main.wan.example.com |
地址族不应放在首位,且 tc 易混淆 |
home-wh-ct-main.dyn.svc.example.com |
home-wh-ct-main.wan.example.com |
动态出口是公网出口锚点,不是服务域名 |
vps-hk-bgp-nginx.host.example.com |
vps-hk-oracle-edge.host.example.com |
服务名不应作为主机身份 |
pc-wh-ct-192168110.host.example.com |
pc-wh-lan-desktop.host.example.com |
IP 不应进入稳定域名 |
vps-hk-bgp-prod.host.example.com |
vps-hk-oracle-edge.host.example.com |
环境应通过标签、Inventory 或业务域名表达 |
grafana-global-main.pool.example.com |
edge-global-main.pool.example.com |
pool 应表达基础设施目标组,不表达具体业务服务 |
edge-global-main.pool.example.com CNAME vps-a.host.example.com |
edge-global-main.pool.example.com A <edge-ipv4-a> |
同名多 CNAME 不适合作为 DNS 负载均衡模型 |