11. 参考文献 (References)
11.1 规范性引用 (Normative References)
11.1.1 STD 2: Assigned Numbers
[STD 2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994.
文档信息 (Document Information):
标题: Assigned Numbers
作者: J. Reynolds, J. Postel
状态: Internet Standard (STD 2)
发布日期: 1994年10月
官方链接: https://www.rfc-editor.org/rfc/rfc1700.html
相关性 (Relevance):
- 定义了服务名称和端口号
- SRV 记录的 Service 字段应引用此文档中的服务名称
- 协议名称 (如 TCP, UDP) 的标准定义
STD 2 (RFC 1700) 已被在线 IANA 注册表取代。当前应参考:
- IANA Service Name and Transport Protocol Port Number Registry
- 网址: https://www.iana.org/assignments/service-names-port-numbers/
11.1.2 RFC 1034: Domain Names - Concepts and Facilities
[RFC 1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987.
文档信息 (Document Information):
标题: Domain Names - Concepts and Facilities
作者: P. Mockapetris
状态: Internet Standard (STD 13)
发布日期: 1987年11月
官方链接: https://www.rfc-editor.org/rfc/rfc1034.html
相关性 (Relevance):
- DNS 基础概念和术语
- 域名层次结构
- 资源记录 (RR) 的基本定义
- 本文档中"域 (domain)"一词的严格定义来源
关键概念 (Key Concepts):
定义的核心概念:
- 域名空间 (Domain Name Space)
- 资源记录 (Resource Records)
- 名称服务器 (Name Servers)
- 解析器 (Resolvers)
- 名称语法 (Name Syntax)
- 别名和规范名称 (Aliases and Canonical Names)
11.1.3 RFC 1035: Domain Names - Implementation and Specification
[RFC 1035] Mockapetris, P., "Domain names - Implementation and Specification", STD 13, RFC 1035, November 1987.
文档信息 (Document Information):
标题: Domain Names - Implementation and Specification
作者: P. Mockapetris
状态: Internet Standard (STD 13)
发布日期: 1987年11月
官方链接: https://www.rfc-editor.org/rfc/rfc1035.html
相关性 (Relevance):
- DNS 协议详细规范
- RR 格式定义
- TTL, Class 字段的标准含义
- DNS 报文格式
- 查询和响应处理
SRV 记录使用的定义 (Definitions Used by SRV):
来自 RFC 1035:
- TTL (Time To Live) 的标准定义
- Class 字段 (IN, CS, CH, HS)
- DNS 报文格式
- 资源记录格式
- 名称压缩机制
- 网络字节序
11.1.4 BCP 14: Key Words for Use in RFCs (RFC 2119)
[BCP 14] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
文档信息 (Document Information):
标题: Key words for use in RFCs to Indicate Requirement Levels
作者: S. Bradner
状态: Best Current Practice (BCP 14)
发布日期: 1997年3月
官方链接: https://www.rfc-editor.org/rfc/rfc2119.html
相关性 (Relevance):
- 定义了 RFC 中使用的关键词
- MUST, MUST NOT, SHOULD, SHOULD NOT, MAY 的精确含义
- 确保规范的一致性和可实施性
关键词定义 (Keyword Definitions):
MUST / REQUIRED / SHALL:
- 绝对要求
- 违反将导致实现不合规
MUST NOT / SHALL NOT:
- 绝对禁止
SHOULD / RECOMMENDED:
- 强烈推荐
- 但在特定情况下可以忽略
SHOULD NOT / NOT RECOMMENDED:
- 强烈不推荐
- 但在特定情况下可以接受
MAY / OPTIONAL:
- 完全可选
- 实现可以选择支持或不支持
11.1.5 RFC 2181: Clarifications to the DNS Specification
[RFC 2181] Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, July 1997.
文档信息 (Document Information):
标题: Clarifications to the DNS Specification
作者: R. Elz, R. Bush
状态: Proposed Standard
发布日期: 1997年7月
官方链接: https://www.rfc-editor.org/rfc/rfc2181.html
相关性 (Relevance):
- DNS 规范的澄清和修正
- 截断响应 (Truncated Response) 的处理规则
- 别名 (CNAME) 的限制
- SRV Target 不能是 CNAME 的要求来源
关键澄清 (Key Clarifications):
相关章节:
- Section 5.1: Name Syntax
→ DNS 名称的有效性
- Section 5.2: CNAME Resource Records
→ CNAME 的限制和约束
→ SRV Target MUST NOT be CNAME
- Section 9: The TC (truncated) header bit
→ 截断响应的处理
→ TCP 重试机制
11.2 参考性引用 (Informative References)
11.2.1 RFC 974: Mail Routing and the Domain System
[RFC 974] Partridge, C., "Mail routing and the domain system", STD 14, RFC 974, January 1986.
文档信息 (Document Information):
标题: Mail Routing and the Domain System
作者: C. Partridge
状态: Internet Standard (STD 14)
发布日期: 1986年1月
官方链接: https://www.rfc-editor.org/rfc/rfc974.html
相关性 (Relevance):
- 定义了 MX 记录
- MX 记录是 SRV 记录的先驱
- 优先级机制的早期实现
与 SRV 的相似性 (Similarity with SRV):
MX 记录:
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.
相似点:
✅ 使用优先级 (Preference)
✅ 支持多个服务器
✅ 实现负载分配和故障转移
差异:
❌ 不支持权重 (Weight)
❌ 不支持自定义端口
❌ 仅用于邮件服务
11.2.2 RFC 2219: Use of DNS Aliases for Network Services
[RFC 2219] Hamilton, M. and R. Wright, "Use of DNS Aliases for Network Services", BCP 17, RFC 2219, October 1997.
文档信息 (Document Information):
标题: Use of DNS Aliases for Network Services
作者: M. Hamilton, R. Wright
状态: Best Current Practice (BCP 17)
发布日期: 1997年10月
官方链接: https://www.rfc-editor.org/rfc/rfc2219.html
相关性 (Relevance):
- 讨论了为网络服务使用 DNS 别名的问题
- 解释了为什么 SRV Target 不应该是 CNAME
- 服务命名的最佳实践
关键建议 (Key Recommendations):
不推荐:
❌ 使用 CNAME 指向服务
❌ 服务名称指向别名
推荐:
✅ 使用 SRV 记录
✅ Target 直接指向 A/AAAA 记录
✅ 避免 CNAME 链
11.2.3 ARM: Discovering LDAP Services with DNS
[ARM] Armijo, M., Esibov, L. and P. Leach, "Discovering LDAP Services with DNS", Work in Progress.
文档信息 (Document Information):
标题: Discovering LDAP Services with DNS
作者: M. Armijo, L. Esibov, P. Leach
状态: Work in Progress (当时)
相关性 (Relevance):
- LDAP 服务发现使用 SRV 记录的示例
- 本文档中 LDAP 示例的来源
此工作后来发展为 RFC 2255 (The LDAP URL Format) 和 RFC 3088 (OpenLDAP Root Service)。
11.2.4 KDC-DNS: Distributing Kerberos KDC and Realm Information with DNS
[KDC-DNS] Hornstein, K. and J. Altman, "Distributing Kerberos KDC and Realm Information with DNS", Work in Progress.
文档信息 (Document Information):
标题: Distributing Kerberos KDC and Realm Information with DNS
作者: K. Hornstein, J. Altman
状态: Work in Progress (当时)
相关性 (Relevance):
- Kerberos 密钥分发中心 (KDC) 发现使用 SRV 记录
- SRV 记录在身份验证系统中的应用
此工作后来标准化为 RFC 4120 (The Kerberos Network Authentication Service (V5))。
Kerberos SRV 记录示例 (Kerberos SRV Record Example):
_kerberos._tcp.EXAMPLE.COM. IN SRV 0 0 88 kdc1.example.com.
_kerberos._tcp.EXAMPLE.COM. IN SRV 0 0 88 kdc2.example.com.
_kerberos._udp.EXAMPLE.COM. IN SRV 0 0 88 kdc1.example.com.
_kerberos._udp.EXAMPLE.COM. IN SRV 0 0 88 kdc2.example.com.
11.3 相关标准和扩展 (Related Standards and Extensions)
11.3.1 后续相关 RFC (Subsequent Related RFCs)
虽然不在原始 RFC 2782 的参考文献中,但以下 RFC 对 SRV 记录有重要影响:
RFC 6335: Service Name and Port Number Procedures (2011)
标题: Internet Assigned Numbers Authority (IANA) Procedures for
the Management of the Service Name and Transport Protocol
Port Number Registry
作者: M. Cotton, L. Eggert, J. Touch, M. Westerlund, S. Cheshire
状态: Best Current Practice (BCP 165)
链接: https://www.rfc-editor.org/rfc/rfc6335.html
影响:
- 更新了服务名称注册程序
- 影响 SRV 记录中的服务名称使用
- 标准化服务名称分配
RFC 6763: DNS-Based Service Discovery (2013)
标题: DNS-Based Service Discovery
作者: S. Cheshire, M. Krochmal
状态: Proposed Standard
链接: https://www.rfc-editor.org/rfc/rfc6763.html
影响:
- 基于 SRV 记录构建
- 扩展了服务发现机制
- 定义了服务实例枚举
- 广泛应用于 Apple Bonjour, Avahi 等
示例:
_http._tcp.local. PTR MyWebServer._http._tcp.local.
MyWebServer._http._tcp.local. SRV 0 0 8080 myserver.local.
RFC 4033-4035: DNSSEC (2005)
标题: DNS Security Extensions
作者: R. Arends, R. Austein, M. Larson, D. Massey, S. Rose
状态: Proposed Standard
链接:
- RFC 4033: https://www.rfc-editor.org/rfc/rfc4033.html (概述)
- RFC 4034: https://www.rfc-editor.org/rfc/rfc4034.html (资源记录)
- RFC 4035: https://www.rfc-editor.org/rfc/rfc4035.html (协议)
影响:
- 为 SRV 记录提供数字签名
- 防止 DNS 欺骗和缓存投毒
- 提高 SRV 记录的安全性
示例:
_ldap._tcp.example.com. IN SRV 0 0 389 server.example.com.
_ldap._tcp.example.com. IN RRSIG SRV 5 4 86400 ...
RFC 7553: The Uniform Resource Identifier (URI) DNS Resource Record (2015)
标题: The Uniform Resource Identifier (URI) DNS Resource Record
作者: P. Faltstrom, O. Kolkman
状态: Proposed Standard
链接: https://www.rfc-editor.org/rfc/rfc7553.html
关系:
- URI RR 作为 SRV 的补充
- 提供更丰富的服务描述
- 支持 URI 模板
示例:
_http._tcp.example.com. IN URI 10 1 "https://www.example.com/"
11.4 实现参考 (Implementation References)
11.4.1 常见实现和库 (Common Implementations and Libraries)
DNS 服务器:
- BIND (ISC) - 支持 SRV 记录
- Microsoft DNS Server - 完整 SRV 支持
- PowerDNS - 支持 SRV 记录
- Unbound - 支持 SRV 解析
DNS 客户端库:
- Python: dnspython (dns.resolver.query)
- Java: dnsjava
- Go: net.LookupSRV()
- C: res_query() with T_SRV
- Node.js: dns.resolveSrv()
- .NET: DnsClient
服务发现工具:
- dig (查询 SRV 记录)
- nslookup (Windows)
- Avahi (Linux)
- Bonjour (macOS/iOS)
11.5 参考文献获取 (Obtaining References)
11.5.1 官方 RFC 资源 (Official RFC Resources)
主站点:
RFC Editor: https://www.rfc-editor.org/
查询工具:
- RFC 检索: https://www.rfc-editor.org/search/rfc_search.php
- 勘误查询: https://www.rfc-editor.org/errata.php
IETF 数据追踪器:
- https://datatracker.ietf.org/
- 跟踪 RFC 的状态、更新和废止关系
11.5.2 IANA 注册表 (IANA Registries)
DNS 参数:
https://www.iana.org/assignments/dns-parameters/
服务名称和端口号:
https://www.iana.org/assignments/service-names-port-numbers/
URI 方案:
https://www.iana.org/assignments/uri-schemes/
11.6 本章小结 (Chapter Summary)
参考文献分类 (Reference Classification):
基础性文档 (Foundational Documents):
✅ RFC 1034/1035 - DNS 核心规范
✅ RFC 2119 - 关键词定义
✅ STD 2 - 服务名称和端口号
澄清性文档 (Clarification Documents):
✅ RFC 2181 - DNS 规范澄清
✅ RFC 2219 - 别名使用建议
应用示例 (Application Examples):
✅ ARM - LDAP 服务发现
✅ KDC-DNS - Kerberos 服务发现
安全扩展 (Security Extensions):
✅ RFC 4033-4035 - DNSSEC
服务发现扩展 (Service Discovery Extensions):
✅ RFC 6763 - DNS-SD
✅ RFC 7553 - URI RR
进一步阅读 (Further Reading):
对于希望深入了解 SRV 记录及其应用的读者,建议按以下顺序阅读:
1. RFC 1034/1035 - 理解 DNS 基础
2. RFC 2782 - 本文档
3. RFC 2181 - DNS 澄清
4. RFC 6763 - DNS-SD 扩展
5. RFC 4033-4035 - DNSSEC 安全