跳到主要内容

14. STUN 用法 (STUN Usages)

STUN 本身不是 NAT 穿越问题的解决方案. 相反, STUN 定义的是可在更大解决方案中使用的工具. 术语 "STUN usage" 用于指任何将 STUN 作为组成部分的解决方案.

撰写本文时, 已定义三种 STUN 用法: Interactive Connectivity Establishment (ICE) [MMUSIC-ICE], Client-initiated connections for SIP [SIP-OUTBOUND], 以及 NAT Behavior Discovery [BEHAVE-NAT]. 未来可能定义其他 STUN 用法.

STUN 用法定义 STUN 实际如何使用 -- 何时发送请求, 如何处理响应, 以及应使用本文 (或 STUN 扩展) 中定义的哪些可选过程. 一种用法还会定义:

  • 使用哪些 STUN 方法.

  • 使用哪些认证和消息完整性机制.

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

  • 使用哪些机制将 STUN 消息与其他消息区分开. 当 STUN 运行在 TCP 上时, 可能需要成帧机制.

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

  • 是否需要与 RFC 3489 向后兼容.

  • 需要本文定义的哪些可选属性 (例如 FINGERPRINT 和 ALTERNATE-SERVER) 或其他扩展中的哪些可选属性.

此外, 任何 STUN 用法都必须考虑在该用法中使用 STUN 的安全影响. 针对 STUN 的若干攻击是已知的 (见本文的 Security Considerations 一节), 任何用法都必须考虑如何阻止或缓解这些攻击.

最后, 一种用法必须考虑其对 STUN 的使用是否属于 NAT 穿越中 Unilateral Self-Address Fixing 方法的示例; 如果是, 则需回答 RFC 3424 [RFC3424] 中提出的问题.