什么是 FQDN(完全合格域名 · 绝对坐标)?
在公司局域网喊一声“张伟(普通主机名 server1)”,大家可能知道是谁,但寄国际快递时必须写上“中国·浙江省·杭州市·西湖区·XX路XX号·张伟”;而 FQDN 就是互联网世界的“全球唯一绝对快递地址” —— 从主机名一路追溯到最顶层根域(Root .),绝无歧义!
同名同姓,跨网必定迷路
比如只输入 mysql 或 mail。只有在特定局域网或同一个 K8s 命名空间(Namespace)里才能找到;一旦拿到公网或跨环境调用,DNS 根本不知道是哪里的服务器!
- ❌ 依赖搜索后缀:严重依赖
/etc/resolv.conf里的search配置 - ❌ 无法跨网通信:不同子网或公网客户端无法直接寻址
带齐省市门牌,全宇宙精准直达
例如 db.prod.us-east.example.com.。精确包含“主机名 + 二级域 + 顶级域 (TLD) + 根域(.)”,全球任何一台联网电脑或 K8s 节点都能 100% 精准无误找到它!
- ✨ 全球唯一性:在整个地球互联网上有且仅有一台对应服务器
- ✨ K8s 跨空间通信底座:
svc.namespace.svc.cluster.local
拆解 FQDN 的 4 大核心层级与典型应用
从 DNS 倒挂树状结构到云原生微服务,读懂域名寻址机制
1. 根域 (Root Domain: .)
整个 DNS 宇宙的最顶端。由 ICANN 统一管理的 13 组根服务器(A~M),指引所有顶级域名的去向。
2. 顶级域名 (TLD: .com / .cn)
国家代码(.cn, .us)或通用顶级域(.com, .org, .ai)。记录着各大二级域名权威 DNS 服务器的地址。
3. 权威域名与子域 (SLD)
企业购买的唯一品牌域(如 google.com)及其划分的业务子域(如 api.aws.amazon.com)。
4. K8s 集群服务 FQDN
微服务跨命名空间调用标准格式:order-service.default.svc.cluster.local,精准跨 Pod 直连!
🕹️ FQDN 绝对域名拆解与 DNS 寻址演练台
观察不同场景下的 FQDN 如何被逐层解构并定位到物理 IP:
二级域 (SLD): google
顶级域 (TLD): com
根域 (Root): 尾部隐式 . 符号
末尾加个点,省去 4 次无用 DNS 查询
在 Linux 服务器里执行 curl google.com 时,系统会默认先尝试匹配 /etc/resolv.conf 里的搜索后缀(如 google.com.corp.local)。
如果直接写 google.com.(末尾带点),DNS 会直接直连根域查询,查询耗时直降 75%!
CoreDNS 的魔法格式
在 Kubernetes 中,Pod 默认可以通过短名字 redis 访问同 Namespace 下的数据库。
但跨 Namespace 时,必须使用完整的 FQDN:redis.database-ns.svc.cluster.local,构成了云原生微服务网格的寻址骨架。
HTTPS 证书对 FQDN 的严格校验
CA 机构颁发 SSL 证书时,是严格绑定到具体的 FQDN(如 api.example.com)或泛域名(*.example.com)上的。
这也是为什么 SNI 扩展中必须传递完整 FQDN,服务器才能准确匹配并掏出对应的合法公钥证书!