跳到主要内容

3.2. Clients Using a Proxy (使用代理的客户端)

使用面向域名的传输代理 (如 HTTP CONNECT ([RFC7231], 第 4.3.6 节) 或 SOCKS5 [RFC1928]) 的客户端可以选择使用命名目标, 在这种情况下客户端不对目标域执行任何 A 或 AAAA 查询。如果客户端配置为使用不提供 SVCB 查询能力 (例如, 通过关联的 DNS 解析器) 的代理的命名目标, 客户端将必须单独执行 SVCB 解析, 这可能会向额外的方而不仅仅是代理披露目标。在这种配置中的客户端应该 (SHOULD) 安排具有适当隐私属性的单独 SVCB 解析过程。如果这不可能, SVCB-optional 客户端必须 (MUST) 完全禁用 SVCB 解析, 而 SVCB-reliant 客户端必须 (MUST) 将配置视为无效。

如果客户端确实使用 SVCB 和命名目标, 客户端应该 (SHOULD) 遵循标准 SVCB 解析过程, 选择与客户端和代理兼容的最小 SvcPriority 选项。当使用 SVCB 记录连接时, 客户端必须 (MUST) 向代理提供最终的 TargetName 和端口, 代理将执行任何所需的 A 和 AAAA 查找。

这种安排有几个好处:

  • 与禁用 SVCB 相比:

    • 它允许客户端使用 SvcParams (如果存在), 这些参数只能与特定的 TargetName 一起使用。SvcParams 可能包含增强性能 (例如, 支持的协议) 和隐私的信息。

    • 它允许顶点域上的服务使用别名。

  • 与向代理提供 IP 地址相比:

    • 它允许代理根据其配置在服务器的 IPv4 和 IPv6 地址之间进行选择。

    • 它确保代理根据其网络地理位置而不是客户端的位置接收地址。

    • 它为具有相同系列的多个地址的 TCP 目标启用更快的回退。