Amazon VPC 中转网关中的组播 - Amazon VPC

Amazon VPC 中转网关中的组播

组播是一种通信协议,用于同时向多台接收计算机传输单个数据流。Transit Gateway 支持在所连接 VPC 的子网之间路由组播流量,并充当实例的组播路由器,以将流量发送到多个接收实例目标。

组播概念

以下是组播的主要概念:

  • 组播域 — 允许将一个组播网络分段成不同的域,并将中转网关用作组播路由器。您可以在子网级别定义组播域成员资格。

  • 组播组 — 识别一组将发送和接收相同组播流量的主机。组播组由组 IP 地址标识。组播组成员资格由附加到 EC2 实例的单个弹性网络接口定义。

  • Internet 组管理协议 (IGMP) — 允许主机和路由器动态管理组播组成员资格的互联网协议。IGMP 组播域包含使用 IGMP 协议加入、离开和发送消息的主机。AWS 支持 IGMPv2 协议以及 IGMP 和静态(基于 API)组成员资组播域。

  • 组播源 — 静态配置的与支持的 EC2 实例关联的弹性网络接口,用于发送组播流量。组播源仅适用于静态源配置。

    静态源组播域包含不使用 IGMP 协议加入、离开和发送消息的主机。您可以使用 AWS CLI 添加源成员和组成员。静态添加的源发送组播流量,成员接收组播流量。

  • 组播组成员 — 与支持的 EC2 实例关联的弹性网络接口,用于接收组播流量。组播组具有多个组成员。在静态源组成员资格配置中,组播组成员只能接收流量。在 IGMP 组配置中,成员既可以发送流量,也可以接收流量。

注意事项

  • 有关受支持区域的信息,请参阅 AWS Transit Gateway 常见问题

  • 您必须创建一个新的中转网关才能支持组播。

  • 组播组成员资源使用 Amazon Virtual Private Cloud Console、AWS CLI 或 IGMP 进行管理。

  • 一个子网只能位于一个组播域中。

  • 如果您使用非 Nitro 实例,则必须禁用 Source/Dest (源/目标) 检查。有关禁用检查的信息,请参阅 Amazon EC2 用户指南中的更改源或目标检查

  • 非 Nitro 实例不能是组播发送方。

  • AWS Direct Connect、Site-to-Site VPN 或对等连接或中转网关连接不支持组播路由。

  • 中转网关不支持组播数据包分段。分段组播数据包会被丢弃。有关更多信息,请参阅 最大传输单元 (MTU)

  • 启动时,IGMP 主机会发送多条 IGMP JOIN 消息以加入组播组(通常重试 2 到 3 次)。如果发生了所有 IGMP JOIN 消息均丢失的不太可能的情况,主机将不会成为中转网关组播组的一部分。在这种情况下,您需要使用特定于应用程序的方法从主机重新触发 IGMP JOIN 消息。

  • 组成员资格以收到由中转网关发送的 IGMPv2 JOIN 消息开始,并以收到 IGMPv2 LEAVE 消息结束。中转网关会跟踪成功加入组播组的主机。作为云组播路由器,中转网关每两分钟向所有成员发出一条 IGMPv2 QUERY 消息。作为回应,每个成员发送一条 IGMPv2 JOIN 消息,这是成员续订其成员资格的方式。如果成员未能回复连续三次查询,则中转网关将从其加入的所有组中删除此成员资格。但是,它会继续向该成员发送查询 12 个小时,然后将该成员从待查询列表中永久删除。一条明确的 IGMPv2 LEAVE 消息会立即永久地从任何进一步的组播处理中删除此主机。

  • 中转网关会跟踪成功加入组播组的主机。在中转网关中断的情况下,中转网关在上次成功发出 IGMP JOIN 消息后继续向主机发送组播数据七分钟(420 秒)。中转网关会继续向主机发送会员资格查询,最长持续 12 个小时,或直到它收到来自主机的 IGMP LEAVE 消息为止。

  • 中转网关将成员资格查询数据包发送给所有 IGMP 成员,以便它可以跟踪组播组成员资格。这些 IGMP 查询数据包的源 IP 为 0.0.0.0/32,目标 IP 为 224.0.0.1/32,协议为 2。IGMP 主机(实例)上的安全组配置以及主机子网上的任何 ACL 配置都必须允许这些 IGMP 协议消息。

  • 当组播源和目标位于同一 VPC 中时,您不能使用安全组引用将目标安全组设置为接受来自源安全组的流量。

  • 对于静态组播组和源,Amazon VPC 中转网关会自动移除已不存在的 ENI 的静态组和源。这是通过定期担任中转网关服务关联角色来描述账户中的 ENI 来实现的。

  • 只有静态组播支持 IPv6。动态组播不支持。

组播路由

在中转网关上启用组播时,它将充当组播路由器。当您将子网添加到某个组播域时,我们会将所有组播流量发送到与该组播域关联的中转网关。

网络 ACL

网络 ACL 规则在子网级别运行。它们将应用于组播流量,因为中转网关位于子网外。有关更多信息,请参阅 Amazon VPC 用户指南中的网络 ACL

对于互联网组管理协议(IGMP)组播流量,您必须至少具有以下入站规则。远程主机是发送组播流量的主机。

类型 协议 描述
自定义协议 IGMP(2) 0.0.0.0/32 IGMP 查询
自定义 UDP 协议 UDP 远程主机 IP 地址 入站组播流量

对于 IGMP,您必须至少具有以下出站规则。

类型 协议 目的地 描述
自定义协议 IGMP(2) 224.0.0.2/32 IGMP 离开
自定义协议 IGMP(2) 组播组 IP 地址 IGMP 加入
自定义 UDP 协议 UDP 组播组 IP 地址 出站组播流量

安全组

安全组规则在实例级别操作。它们可以应用于入站和出站组播流量。行为与单播流量相同。对于所有组成员实例,您必须允许来自组源的入站流量。有关更多信息,请参阅 Amazon VPC 用户指南中的安全组

对于 IGMP 组播流量,您必须至少具有以下入站规则。远程主机是发送组播流量的主机。您不能将安全组指定为 UDP 入站规则的源。

类型 协议 描述
自定义协议 2 0.0.0.0/32 IGMP 查询
自定义 UDP 协议 UDP 远程主机 IP 地址 入站组播流量

对于 IGMP 组播流量,您必须至少具有以下出站规则。

类型 协议 目的地 描述
自定义协议 2 224.0.0.2/32 IGMP 离开
自定义协议 2 组播组 IP 地址 IGMP 加入
自定义 UDP 协议 UDP 组播组 IP 地址 出站组播流量