Skip to main content

14. STUN Usages (STUN用法)

STUN 本身不是 NAT 穿透问题的解决方案。相反,STUN 定义了一个可以在更大解决方案内使用的工具。术语 "STUN 用法" (STUN usage) 用于使用 STUN 作为组件的任何解决方案。

在撰写本文时,定义了三种 STUN 用法: 交互式连接建立 (Interactive Connectivity Establishment, ICE) [MMUSIC-ICE]、SIP 客户端发起的连接 (Client-initiated connections for SIP) [SIP-OUTBOUND] 和 NAT 行为发现 (NAT Behavior Discovery) [BEHAVE-NAT]。将来可能会定义其他 STUN 用法。

STUN 用法定义了如何实际使用 STUN——何时发送请求、如何处理响应以及使用此处定义的哪些可选过程 (或 STUN 的扩展)。用法还将定义:

  • 使用哪些 STUN 方法。

  • 使用什么认证和消息完整性机制。

  • 有关完整性机制的手动与自动密钥派生的考虑,如 [RFC4107] 中所讨论的。

  • 使用什么机制来区分 STUN 消息与其他消息。当 STUN 通过 TCP 运行时,可能需要成帧机制。

  • STUN 客户端如何确定 STUN 服务器的 IP 地址和端口。

  • 是否需要与 RFC 3489 的向后兼容性。

  • 此处定义的哪些可选属性 (例如 FINGERPRINT 和 ALTERNATE-SERVER) 或其他扩展中的属性是必需的。

此外,任何 STUN 用法都必须 (must) 考虑在该用法中使用 STUN 的安全影响。已知针对 STUN 的许多攻击 (参见本文档中的安全考虑部分),任何用法都必须考虑如何阻止或缓解这些攻击。

最后,用法必须 (must) 考虑其对 STUN 的使用是否是 NAT 穿透的单边自地址修复 (Unilateral Self-Address Fixing) 方法的示例,如果是,则解决 RFC 3424 [RFC3424] 中提出的问题。