跳到主要内容

3. 特定源组播的路由器要求 (Router Requirements for Source-Specific Multicast)

路由器必须知道 SSM 地址范围, 才能提供 SSM 服务模型. 知道 SSM 地址范围并能够按本节所述对其应用 SSM 语义的路由器称为 "SSM-aware" router. SSM-aware router 可以具有一个配置选项, 用于将 SSM 语义应用于 IANA 分配范围之外的地址; 但如果存在此类选项, 其默认值必须为 IANA 分配的范围.

本节记录路由器针对特定源目标地址的以下 SFGMP 消息类型的行为:

  • IGMPv3 和 MLDv2 报告 (IGMPv3 and MLDv2 Reports) (3.1)
  • IGMPv3 和 MLDv2 通用查询 (IGMPv3 and MLDv2 General Query) (3.2)
  • IGMPv3 和 MLDv2 组特定查询 (IGMPv3 and MLDv2 Group-Specific Query) (3.3)
  • IGMPv3 和 MLDv2 组和源特定查询 (IGMPv3 and MLDv2 Group-and-Source Specific Query) (3.4)
  • IGMPv1/v2 和 MLDv1 报告 (IGMPv1/v2 and MLDv1 Reports) (3.5)
  • IGMPv1/v2 和 MLDv1 查询 (IGMPv1/v2 and MLDv1 Queries) (3.6)
  • IGMPv2 Leave 和 MLDv1 Done (IGMPv2 Leave and MLDv1 Done) (3.7)

3.1. IGMPv3 和 MLDv2 报告

SFGMP 报告用于报告 SSM 地址范围内的特定源订阅. 如果以下任一类型的组记录引用 SSM 目标地址, 路由器应当忽略该组记录:

  • MODE_IS_EXCLUDE Current-State Record

  • CHANGE_TO_EXCLUDE_MODE Filter-Mode-Change Record

在任一情况下, 路由器都可以选择记录错误. 它必须处理同一报告中的任何其他组记录. 这些行为是对 [IGMPv3, MLDv2] 的 MODIFICATIONS, 用于防止非特定源语义被应用到 SSM 地址, 并避免回退到旧版本兼容模式.

CHANGE_TO_INCLUDE_MODE Filter-Mode-Change Record 按正常 SFGMP 规则处理; 第 2.2.2 节描述了可能发生这种情况的合法场景.

3.2. IGMPv3 和 MLDv2 通用查询

SSM 路由器按照 IGMPv3 和 MLDv2 规范发送周期性 SFGMP 通用查询. SSM 不要求改变此行为.

3.3. IGMPv3 和 MLDv2 组特定查询

支持特定源组播的 SFGMP 路由器可以针对特定源范围内的地址发送组特定查询. 本规范并不明确禁止此类消息, 虽然在撰写本文时, 符合 [IGMPv3, MLDv2] 的路由器不会发送此类消息.

3.4. IGMPv3 和 MLDv2 组和源特定查询

当接收者表示不再有兴趣接收来自某个特定 (S,G) 对的流量时, SFGMP 组和源特定查询用于确定是否仍有任何直接连接的主机对该 (S,G) 对感兴趣. 当路由器收到一个或多个特定源组的 BLOCK_OLD_SOURCES Record 时, 会在特定源地址范围内使用组和源特定查询. 这些查询按 [IGMPv3, MLDv2] 正常发送.

3.5. IGMPv1/v2 和 MLDv1 报告

非 SSM-aware host 可能会针对特定源范围内的地址发送 IGMPv1/v2 或 MLDv1 报告. 路由器应当忽略所有此类报告, 且尤其不应使用它们建立 IP 转发状态. 这是对 [IGMPv3, MLDv2] 的 MODIFICATION. 如果路由器收到此类报告, 可以记录错误 (这同样是 MODIFICATION).

3.6. IGMPv1/v2 和 MLDv1 查询

如 [IGMPv3, MLDv2] 所规定, 在查询器选举中输给较低版本路由器的 SFGMP 路由器必须记录错误.

3.7. IGMPv2 Leave 和 MLDv1 Done

非 SSM-aware host 可能会发送 IGMPv2 Leave 或 MLDv1 Done 消息. 路由器应当忽略特定源地址范围内的所有此类消息, 并可以记录错误 (MODIFICATION).