

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Transit Gateway 中的组播
<a name="tgw-multicast-overview"></a>

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

**Topics**
+ [组播概念](#concepts)
+ [注意事项](#limits)
+ [组播路由](#how-multicast-works)
+ [组播域](multicast-domains-about.md)
+ [共享组播域](multicast-share-domain.md)
+ [将源注册到多播组](add-source-multicast-group.md)
+ [将成员注册到多播组](add-members-multicast-group.md)
+ [从多播组取消注册源](remove-source-multicast-group.md)
+ [从多播组取消注册成员](remove-members-multicast-group.md)
+ [查看组播组](view-multicast-group.md)
+ [为 Windows 服务器设置组播](multicastwin.md)
+ [示例：管理 IGMP 配置](multicast-configurations-igmp.md)
+ [示例：管理静态源配置](multicast-configurations-no-igmp.md)
+ [示例：管理静态组成员配置](multicast-configurations-no-igmp-source.md)

## 组播概念
<a name="concepts"></a>

以下是组播的主要概念：
+ **组播域** — 允许将一个组播网络分段成不同的域，并将中转网关用作组播路由器。您可以在子网级别定义组播域成员资格。
+ **组播组** — 识别一组将发送和接收相同组播流量的主机。组播组由组 IP 地址标识。组播组成员资格由附加到 EC2 实例的单个弹性网络接口定义。
+ **Internet 组管理协议 (IGMP)** — 允许主机和路由器动态管理组播组成员资格的互联网协议。IGMP 组播域包含使用 IGMP 协议加入、离开和发送消息的主机。AWS 支持 IGMPv2 协议以及 IGMP 和静态（基于 API）组成员资组播域。
+ **组播源** — 静态配置的与支持的 EC2 实例关联的弹性网络接口，用于发送组播流量。组播源仅适用于静态源配置。

  静态源组播域包含不使用 IGMP 协议加入、离开和发送消息的主机。您可以使用 AWS CLI 添加源成员和组成员。静态添加的源发送组播流量，成员接收组播流量。
+ **组播组成员** — 与支持的 EC2 实例关联的弹性网络接口，用于接收组播流量。组播组具有多个组成员。在静态源组成员资格配置中，组播组成员只能接收流量。在 IGMP 组配置中，成员既可以发送流量，也可以接收流量。

## 注意事项
<a name="limits"></a>
+ Transit Gateway 组播可能不适用于高频交易或对性能敏感的应用程序。我们强烈建议您查看[组播配额](transit-gateway-quotas.md#multicast-quotas)的限制。请联系您的客户或解决方案架构师团队，以详细评估您的性能需求。
+ 有关受支持区域的信息，请参阅 [AWS Transit Gateway 常见问题](https://aws.amazon.com/transit-gateway/faqs/)。
+ 您必须创建一个新的中转网关才能支持组播。
+ 组播组成员资源使用 Amazon Virtual Private Cloud Console、AWS CLI 或 IGMP 进行管理。
+ 一个子网只能位于一个组播域中。
+ 如果您使用非 Nitro 实例，则必须禁用 **Source/Dest (源/目标)** 检查。有关禁用检查的信息，请参阅 *Amazon EC2 用户指南*中的[更改源或目标检查](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check)。
+ 非 Nitro 实例不能是组播发送方。
+ Direct Connect、Site-to-Site VPN 或对等连接或中转网关连接不支持组播路由。
+ 中转网关不支持组播数据包分段。分段组播数据包会被丢弃。有关更多信息，请参阅 [最大传输单元 (MTU)](transit-gateway-quotas.md#mtu-quotas)。
+ 启动时，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 中时，您不能使用安全组引用将目标安全组设置为接受来自源安全组的流量。
+ 对于静态组播组和源，AWS Transit Gateway 会自动移除已不存在的 ENI 的静态组和源。这是通过定期担任[中转网关服务关联角色](service-linked-roles.md#tgw-service-linked-roles)来描述账户中的 ENI 来实现的。
+ 只有静态组播支持 IPv6。动态组播不支持。

## 组播路由
<a name="how-multicast-works"></a>

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

### 网络 ACL
<a name="multicast-nacl"></a>

网络 ACL 规则在子网级别运行。它们将应用于组播流量，因为中转网关位于子网外。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[网络 ACL](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)。

对于互联网组管理协议（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 地址 | 出站组播流量 | 

### 安全组
<a name="mulicast-security-group"></a>

安全组规则在实例级别操作。它们可以应用于入站和出站组播流量。行为与单播流量相同。对于所有组成员实例，您必须允许来自组源的入站流量。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[安全组](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

对于 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 地址 | 出站组播流量 | 

# AWS Transit Gateways 中的组播域
<a name="multicast-domains-about"></a>

组播域允许将一个组播网络分段分成不同域。要开始将多播与中转网关结合使用，请创建多播域，然后将子网与域关联。

## 多播域属性
<a name="multicast-domain-attributes"></a>

下表详细介绍了多播域属性。您不能同时启用这两个属性。


| 属性 | 描述 | 
| --- | --- | 
|  Igmpv2Support (AWS CLI) **IGMPv2 支持**（控制台）  |  此属性决定组成员如何加入或退出多播组。 当此属性处于禁用状态时，您必须将组成员手动添加到域中。 在至少有一个成员使用 IGMP 协议时启用此属性。成员通过以下方式之一加入多播组： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/vpc/latest/tgw/multicast-domains-about.html) 如果您注册多播组成员，则必须将其取消注册。中转网关将忽略手动添加的组成员发送的 IGMP `LEAVE` 消息。  | 
| StaticSourcesSupport (AWS CLI) **Static sources support**（静态资源支持）（控制台） |  此属性确定该组是否有静态多播源。 当此启用此属性时，您需要使用 [register-transit-gateway-multicast-group-sources](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-transit-gateway-multicast-group-sources.html) 为多播域添加源。只有多播源才能发送多播流量。 禁用此属性时，则没有指定的多播源。位于与多播域关联的子网中的任何实例都可以发送多播流量，组成员将接收多播流量。  | 

# 在 Transit Gateway 中 AWS 创建 IGMP 多播域
<a name="create-tgw-igmp-domain"></a>

如果您尚未执行此操作，请查看可用的组播域属性。有关更多信息，请参阅 [AWS Transit Gateways 中的组播域](multicast-domains-about.md)。

**要使用控制台创建 IGMP 组播域**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择 **Create transit gateway multicast domain**（创建中转网关组播域）。

1. 对于 **Name tag**（名称标签），输入域的名称。

1. 对于 **Transit Gateway ID**（中转网关 ID），选择处理组播流量的中转网关。

1. 要获得**IGMPv2 支持**，请选中该复选框。

1. 对于**静态源支持**，请清除该复选框。

1. 要自动接受此组播域的跨账户子网关联，请选择 **Auto accept shared associations**（自动接受共享关联）。

1. 选择 **Create transit gateway multicast domain**（创建中转网关组播域）。

**使用创建 IGMP 多播域 AWS CLI**  
使用 [create-transit-gateway-multicast-domain](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-transit-gateway-multicast-domain.html) 命令。

```
aws ec2 create-transit-gateway-multicast-domain --transit-gateway-id tgw-0xexampleid12345 --options StaticSourcesSupport=disable,Igmpv2Support=enable
```

# 在 AWS Transit Gateway 中创建静态源组播域
<a name="create-tgw-domain"></a>

如果您尚未执行此操作，请查看可用的组播域属性。有关更多信息，请参阅 [AWS Transit Gateways 中的组播域](multicast-domains-about.md)。

**要使用控制台创建静态多播域**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择 **Create transit gateway multicast domain**（创建中转网关多播域）。

1. 对于 **Name tag**（命名标签），输入用于标识域的名称。

1. 对于 **Transit Gateway ID**（中转网关 ID），选择处理多播流量的中转网关。

1. 对于 **IGMPv2 支持**，请清除该复选框。

1. 对于 **Static sources support**（静态源支持），请选择该复选框。

1. 要自动接受此组播域的跨账户子网关联，请选择 **Auto accept shared associations**（自动接受共享关联）。

1. 选择 **Create transit gateway multicast domain**（创建中转网关多播域）。

**要使用 AWS CLI 创建静态多播域**  
使用 [create-transit-gateway-multicast-domain](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-transit-gateway-multicast-domain.html) 命令。

```
aws ec2 create-transit-gateway-multicast-domain --transit-gateway-id tgw-0xexampleid12345 --options StaticSourcesSupport=enable,Igmpv2Support=disable
```

# 在 Transit Gateway 中将 VPC 附件和子网与多播域关联 AWS
<a name="associate-attachment-to-domain"></a>

使用以下过程将 VPC 连接与组播域关联。创建关联时，您可以随后选择要包括在组播域中的子网。

开始之前，您必须先在中转网关上创建 VPC 连接。有关更多信息，请参阅 [T AWS ransit Gateway 中的亚马逊 VPC 附件](tgw-vpc-attachments.md)。

**要使用控制台将 VPC 连接与组播域关联**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域，然后依次选择 **Actions**（操作）、**Create association**（创建关联）。

1. 对于 **Choose attachment to associate**（选择要关联的连接），选择中转网关连接。

1. 对于 **Choose subnets to associate**（选择要关联的子网），选择要包括在组播域中的子网。

1. 选择 **Create association（创建关联）**。

**要将 VPC 附件与多播域关联，请使用 AWS CLI**  
使用 [associate-transit-gateway-multicast-domain](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-transit-gateway-multicast-domain.html) 命令。

# 在 AWS Transit Gateway 中取消子网与组播域的关联
<a name="remove-subnet-association"></a>

使用以下过程取消子网与多播域的关联。

**使用控制台取消子网的关联**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 选择 **Associations (关联)** 选项卡。

1. 选择子网，然后选择 **Actions**（操作）、**Delete association**（删除关联）。

**使用 AWS CLI 取消子网关联**  
使用 [disassociate-transit-gateway-multicast-domain](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-transit-gateway-multicast-domain.html) 命令。

# 在 T AWS ransit Gateway 中查看组播域关联
<a name="view-tgw-domain-association"></a>

查看组播域以验证这些域可用，并且包含了相应的子网和连接。

**要使用控制台查看组播域**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 选择 **Associations (关联)** 选项卡。

**要使用查看多播域 AWS CLI**  
使用 [describe-transit-gateway-multicast-domains](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-transit-gateway-multicast-domains.html) 命令。

# 在 AWS Transit Gateway 中向组播域添加标签
<a name="tgw-domain-tagging"></a>

向资源添加标签以帮助整理和识别资源，例如，按用途、拥有者或环境。您可以向每个多播域添加多个标签。每个多播域的标签键必须唯一。如果您添加的标签中的键已经与多播域关联，它将更新该标签的值。有关更多信息，请参阅[标记 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)。

**要使用控制台向多播域添加标签**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 依次选择 **Actions**（操作）、**Manage tags**（管理标签）。

1. 对于每个标签，选择 **Add new tag**（添加新标签），然后输入标签的 **Key**（键）和 **Value**（值）。

1. 选择**保存**。

**使用 AWS CLI 将标签添加到多播域**  
使用 [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 命令。

# 在 AWS Transit Gateway 中删除组播域
<a name="delete-tgw-domain"></a>

使用以下过程删除中组播域。

**要使用控制台删除组播域**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域，然后依次选择 **Actions**（操作）、**Delete multicast domain**（删除组播域）。

1. 提示进行确认时，输入 **delete**，然后选择 **Delete**（删除）。

**使用 AWS CLI 删除组播域**  
使用 [delete-transit-gateway-multicast-domain](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-transit-gateway-multicast-domain.html) 命令。

# T AWS ransit Gateway 中的共享组播域
<a name="multicast-share-domain"></a>

通过组播域共享，组播域所有者可以与其组织内或 AWS Organizations中的组织间的其他 AWS 账户共享该域。作为多播域拥有者，您可以集中创建和管理多播域。共享后，使用者可以在共享的多播域上执行以下操作：
+ 在多播域中注册和取消注册组成员或组源
+ 将子网与多播域关联，并取消子网与多播域的关联

多播域拥有者可以与以下角色共享多播域：
+ AWS 组织内部或组织中的跨组织账户 AWS Organizations
+ 其组织内部的组织单位 AWS Organizations
+ 它的整个组织都在 AWS Organizations
+ AWS 之外的账户 AWS Organizations。

  要与组织外部的 AWS 帐户共享多播域，必须使用 AWS Resource Access Manager创建资源共享，然后在选择要与之**共享多播域的委托人时选择 “允许与任何人**共享”。有关创建资源共享的更多信息，请参阅 *AWS RAM 用户指南*中的[在 AWS RAM中创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)。

**Topics**
+ [共享多播域的先决条件](#sharing-prereqs)
+ [相关服务](#sharing-related)
+ [共享的多播域权限](#sharing-perms)
+ [计费和计量](#sharing-billing)
+ [配额](#sharing-quotas)
+ [跨可用区共享资源](sharing-azs.md)
+ [共享组播域](sharing-share.md)
+ [取消共享共享的组播域](sharing-unshare.md)
+ [识别共享的组播域](sharing-identify.md)

## 共享多播域的先决条件
<a name="sharing-prereqs"></a>
+ 要共享多播域名，您必须在自己的 AWS 账户中拥有该域名。您无法共享已与您共享的多播域。
+ 要与您的组织或中的组织单位共享多播域 AWS Organizations，必须启用与 AWS Organizations共享。有关更多信息，请参阅《AWS RAM 用户指南》**中的[允许与 AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) 共享。

## 相关服务
<a name="sharing-related"></a>

多播域共享与 AWS Resource Access Manager (AWS RAM) 集成。 AWS RAM 是一项服务，可让您与任何 AWS 账户或通过任何账户共享 AWS 资源 AWS Organizations。利用 AWS RAM，您可通过创建*资源共享*来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的用户。消费者可以是个人 AWS 帐户、组织单位或整个组织 AWS Organizations。

有关的更多信息 AWS RAM，请参阅《*[AWS RAM 用户指南》](https://docs.aws.amazon.com/ram/latest/userguide/)*。

## 共享的多播域权限
<a name="sharing-perms"></a>

### 拥有者的权限
<a name="perms-owner"></a>

拥有者负责管理多播域以及他们注册或与该域关联的成员和挂载。拥有者可以随时更改或撤销共享访问权限。他们可以使用 AWS Organizations 来查看、修改和删除使用者在共享多播域上创建的资源。

### 使用者的权限
<a name="perms-consumer"></a>

共享组播域的用户可以通过在他们创建的多播域上采用的操作方式，对共享的多播域执行以下操作：
+ 在多播域中注册和取消注册组成员或组源
+ 将子网与多播域关联，并取消子网与多播域的关联

使用者负责管理他们在共享多播域上创建的资源。

客户无法查看或修改其他使用者或多播域拥有者拥有的资源，也不能修改与他们共享的多播域。

## 计费和计量
<a name="sharing-billing"></a>

对于拥有者或使用者的共享多播域，不会收取额外费用。

## 配额
<a name="sharing-quotas"></a>

共享的多播域计入共享用户和所有者的多播域配额。

# 在 T AWS ransit Gateway 中跨可用区域共享资源
<a name="sharing-azs"></a>

为确保资源分布在某个地区的可用区中，T AWS ransit Gateway 会独立地将可用区映射到每个账户的名称。这可能会导致账户之间的可用区命名差异。例如，您 AWS 账户的可用区`us-east-1a`可能与其他 AWS 账户的可用区不同。`us-east-1a`

要确定您的多播域相对于账户的位置，您必须使用*可用区 ID* (AZ ID)。可用区 ID 是所有 AWS 账户中可用区的唯一且一致的标识符。例如，`use1-az1`是该`us-east-1`区域的可用区 ID，它在每个 AWS 账户中的位置都相同。

**查看您账户 IDs 中可用区的可用区**

1. 在家中打开[https://console.aws.amazon.com/ram/主 AWS RAM](https://console.aws.amazon.com/ram/home)机。

1. 当前区域 IDs 的可用区显示在屏幕右侧的 “**您的可用区 ID**” 面板中。

# 在 T AWS ransit Gateway 中共享多播域
<a name="sharing-share"></a>

当拥有者与您共享组播域时，您可以执行以下操作：
+ 注册和取消注册组成员或组源
+ 关联和取消关联子网

**注意**  
要共享多播域，必须将其添加到资源共享中。资源共享是一种 AWS RAM 允许您跨 AWS 账户共享资源的资源。资源共享指定要共享的资源以及与之共享资源的使用者。当您使用共享多播域时 Amazon Virtual Private Cloud Console，可以将其添加到现有资源共享中。要将多播域添加到新的资源共享中，必须首先使用 [AWS RAM 控制台](https://console.aws.amazon.com/ram)创建资源共享。  
如果您是组织中的一员， AWS Organizations 并且启用了组织内部共享，则会自动授予组织中的消费者访问共享多播域的权限。否则，使用者将会收到加入资源共享的邀请，并在接受邀请后获得对共享多播域的访问权限。

您可以使用 Amazon Virtual Private Cloud 控制台、 AWS RAM 控制台或共享您拥有的多播域。 AWS CLI

**要使用 \$1Amazon Virtual Private Cloud Console共享您拥有的多播域**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Multicast Domains**（多播域）。

1. 选择您的多播域，然后选择 **Actions**（操作）、**Share multicast domain**（共享多播域）。

1. 选择您的资源共享，然后选择 **Share multicast domain**（共享多播域）。

**使用控制台共享您拥有的多播域 AWS RAM**  
请参阅《AWS RAM 用户指南》**中的[创建资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)。

**要共享您拥有的多播域，请使用 AWS CLI**  
使用 [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 命令。

# 在 Transit Gateway 中 AWS 取消共享共享多播域
<a name="sharing-unshare"></a>

当共享的多播域被取消共享时，使用者多播域资源会发生以下情况：
+ 使用者子网与多播域的关联被解除。子网仍保留在使用者账户中。
+ 使用者组源和组成员将与多播域取消关联，然后从使用者账户中删除。

 要取消共享多播域，必须将其从资源共享中删除。您可以通过 AWS RAM 控制台或 AWS CLI.

要取消共享您拥有的已共享多播域，必须从资源共享中将其删除。您可以使用 Amazon Virtual Private Cloud、 AWS RAM 控制台或 AWS CLI。

**要使用 \$1Amazon Virtual Private Cloud Console取消共享您拥有的共享多播域**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Multicast Domains**（多播域）。

1. 选择您的多播域，然后依次选择 **Actions**（操作）、**Stop sharing**（停止共享）。

**使用控制台取消共享您拥有的共享多播域 AWS RAM**  
请参阅《AWS RAM 用户指南》**中的[更新资源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)。

**要取消共享您拥有的共享多播域，请使用 AWS CLI**  
使用 [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 命令。

# 在 T AWS ransit Gateway 中识别共享的多播域
<a name="sharing-identify"></a>

所有者和使用者可以使用和来识别共享的 Amazon Virtual Private Cloud 多播域 AWS CLI

**要使用 \$1Amazon Virtual Private Cloud Console识别共享的多播域**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Multicast Domains**（多播域）。

1. 选择您的多播域。

1. 在**传输组播域详细信息**页面上，查看**所有者 ID** 以识别组播域的 AWS 账户 ID。

**要使用识别共享的多播域 AWS CLI**  
使用 [describe-transit-gateway-multicast-domains](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-transit-gateway-multicast-domains.html) 命令。该命令返回您拥有的多播域和与您共享的多播域。 `OwnerId`显示多播域所有者的 AWS 帐户 ID。

# 在 T AWS ransit Gateway 中的组播组中注册源
<a name="add-source-multicast-group"></a>

**注意**  
仅当您将**静态源支持**属性设置为**启用**时，才需要执行此过程。

使用以下过程将源注册到多播组。源是发送多播流量的网络接口。

您需要以下信息才能添加源：
+ 多播域的 ID
+ 来源 IDs 的网络接口
+ 多播组 IP 地址

**使用控制台注册源**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域，然后依次选择 **Actions**（操作）、**Add group sources**（添加组源）。

1. 在 “**组 IP 地址**” 中，输入要分配给多播域的 IPv6 CID IPv4 R 块或 CIDR 块。

1. 在 **Choose network interfaces (选择网络接口)** 下，选择多播发送方的网络接口。

1. 选择 **Add sources (添加源)**。

**要使用注册来源 AWS CLI**  
使用 [register-transit-gateway-multicast-group-sources 命令](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-transit-gateway-multicast-group-sources.html)。

# 在 T AWS ransit Gateway 中向组播群组注册成员
<a name="add-members-multicast-group"></a>

使用以下过程将组成员注册到多播组。

您需要以下信息才能添加成员：
+ 多播域的 ID
+ 小组 IDs 成员的网络接口
+ 多播组 IP 地址

**使用控制台注册成员**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域，然后依次选择 **Actions**（操作）、**Add group members**（添加组成员）。

1. 在 “**组 IP 地址**” 中，输入要分配给多播域的 IPv6 CID IPv4 R 块或 CIDR 块。

1. 在 **Choose network interfaces (选择网络接口)** 下，选择多播接收方的网络接口。

1. 选择 **Add members (添加成员)**。

**要使用注册会员 AWS CLI**  
使用 [register-transit-gateway-multicast-group-members 命令](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-transit-gateway-multicast-group-members.html)。

# 在 AWS Transit Gateway 中取消注册组播组中的源
<a name="remove-source-multicast-group"></a>

除非您手动将源添加到多播组，否则无需遵循此过程。

**使用控制台删除源**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 选择 **Groups (组)** 选项卡。

1. 选择源，然后选择 **Remove source (删除源)**。

**使用 AWS CLI 删除源**  
使用 [deregister-transit-gateway-multicast-group-sources](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-transit-gateway-multicast-group-sources.html) 命令。

# 在 Transit Gateway 中取消组播群组成员的 AWS 注册
<a name="remove-members-multicast-group"></a>

除非您手动将成员添加到多播组，否则无需遵循此过程。

**使用控制台取消注册成员**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 选择**组**选项卡。

1. 选择成员，然后选择 **Remove member (删除成员)**。

**要取消注册会员，请使用 AWS CLI**  
使用 [deregister-transit-gateway-multicast-group-members 命令](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-transit-gateway-multicast-group-members.html)。

# 在 T AWS ransit Gateway 中查看组播组
<a name="view-multicast-group"></a>

您可以查看有关您的组播组的信息，以验证是否使用该 IGMPv2 协议发现了成员。当 AWS 发现使用该协议的@@ **成员时，成员类型**`MemberType`（在控制台中 AWS CLI）或（中）会显示 IGMP。

**使用控制台查看多播组**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**中转网关组播**。

1. 选择多播域。

1. 选择**组**选项卡。

**要查看组播组，请使用 AWS CLI**  
使用 [search-transit-gateway-multicast-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/search-transit-gateway-multicast-groups.html) 命令。

以下示例显示 IGMP 协议发现了多播组成员。

```
aws ec2 search-transit-gateway-multicast-groups --transit-gateway-multicast-domain tgw-mcast-domain-000fb24d04EXAMPLE
{
    "MulticastGroups": [
        {
            "GroupIpAddress": "224.0.1.0",
            "TransitGatewayAttachmentId": "tgw-attach-0372e72386EXAMPLE",
            "SubnetId": "subnet-0187aff814EXAMPLE",
            "ResourceId": "vpc-0065acced4EXAMPLE",
            "ResourceType": "vpc",
            "NetworkInterfaceId": "eni-03847706f6EXAMPLE",
            "MemberType": "igmp"
        }
    ]
}
```

# 在 AWS Transit Gateway 中为 Windows Server 设置组播
<a name="multicastwin"></a>

 在 Windows Server 2019 或 2022 上设置多播以使用中转网关时，您需要执行其他步骤。要进行此设置，你需要使用 PowerShell，然后运行以下命令：

**使用 PowerShell 为 Windows Server 设置组播**

1. 针对 TCP/IP 堆栈，将 Windows Server 更改为使用 IGMPv2 而不是 IGMPv3：

   `PS C:\> New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name IGMPVersion -PropertyType DWord -Value 3 `
**注意**  
`New-ItemProperty` 是指定 IGMP 版本的属性索引。由于 IGMP v2 是组播支持的版本，因此该属性 `Value` 必须为 `3`。您可运行以下命令将 IGMP 版本设置为 2，而无需编辑 Windows 注册表。：  
`Set-NetIPv4Protocol -IGMPVersion Version2`

1. 默认情况下，Windows 防火墙会丢弃大多数 UDP 流量。您首先需要检查哪个连接配置文件用于多播：

   ```
   PS C:\> Get-NetConnectionProfile | Select-Object NetworkCategory
   
   NetworkCategory
   ---------------
            Public
   ```

1. 更新上一步中的连接配置文件以允许访问所需的 UDP 端口：

   `PS C:\> Set-NetFirewallProfile -Profile Public -Enabled False`

1. 重启 EC2 实例。

1. 测试您的多播应用程序，确保流量按预期流动。

# 示例：使用 Tr AWS ansit Gateway 管理 IGMP 配置
<a name="multicast-configurations-igmp"></a>

本示例显示至少有一台主机将 IGMP 协议用于多播流量时， AWS 会在收到来自实例的 IGMP `JOIN` 消息时自动创建多播组，然后将该实例添加为该组中的成员。您也可以使用将非 IGMP 主机作为成员静态添加至群组。 AWS CLI位于与多播域关联的子网中的任何实例都可以发送流量，组成员将接收多播流量。

 使用以下步骤完成配置：

1. 创建 VPC。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

1. 在 VPC 中创建子网。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. 创建为多播流量配置的中转网关。有关更多信息，请参阅 [在 Transit Gateway 中创建 AWS 公交网关](create-tgw.md)。

1. 创建 VPC 连接。有关更多信息，请参阅 [在 AWS Transit Gateway 中创建 VPC 连接](create-vpc-attachment.md)。

1. 创建为 IGMP 支持配置的多播域。有关更多信息，请参阅 [在 Transit Gateway 中 AWS 创建 IGMP 多播域](create-tgw-igmp-domain.md)。

   使用以下设置：
   + 启用**IGMPv2 支持**。
   + 禁用 **Static sources support**（静态源支持）。

1. 在中转网关 VPC 连接中的子网和组播域之间创建关联。有关更多信息，请参阅 [在 Transit Gateway 中将 VPC 附件和子网与多播域关联 AWS](associate-attachment-to-domain.md)。

1. EC2 的默认 IGMP 版本为 IGMPv3。您需要更改所有 IGMP 组成员的版本。您可以运行以下命令：

   ```
   sudo sysctl net.ipv4.conf.eth0.force_igmp_version=2
   ```

1. 将不使用 IGMP 协议的成员添加到多播组。有关更多信息，请参阅 [在 T AWS ransit Gateway 中向组播群组注册成员](add-members-multicast-group.md)。

# 示例：在 Tr AWS ansit Gateway 中管理静态来源配置
<a name="multicast-configurations-no-igmp"></a>

此示例介绍如何将组播源静态添加到群组。主机不使用 IGMP 协议加入或退出组播组。您需要静态添加接收组播流量的组成员。

 使用以下步骤完成配置：

1. 创建 VPC。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

1. 在 VPC 中创建子网。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. 创建为多播流量配置的中转网关。有关更多信息，请参阅 [在 Transit Gateway 中创建 AWS 公交网关](create-tgw.md)。

1. 创建 VPC 连接。有关更多信息，请参阅 [在 AWS Transit Gateway 中创建 VPC 连接](create-vpc-attachment.md)。

1. 创建配置为不支持 IGMP 的多播域，并支持静态添加源。有关更多信息，请参阅 [在 AWS Transit Gateway 中创建静态源组播域](create-tgw-domain.md)。

   使用以下设置：
   + 禁用**IGMPv2 支持**。
   + 要手动添加源，请启用 **Static sources support**（静态源支持）。

     当启用属性时，源是唯一可发送多播流量的资源。否则，位于与组播域关联的子网中的任何实例都可以发送组播流量，组成员将接收组播流量。

1. 在中转网关 VPC 连接中的子网和组播域之间创建关联。有关更多信息，请参阅 [在 Transit Gateway 中将 VPC 附件和子网与多播域关联 AWS](associate-attachment-to-domain.md)。

1. 如果您启用 **Static sources support**（静态源支持），请将源添加到组播组。有关更多信息，请参阅 [在 T AWS ransit Gateway 中的组播组中注册源](add-source-multicast-group.md)。

1. 将成员添加到多播组。有关更多信息，请参阅 [在 T AWS ransit Gateway 中向组播群组注册成员](add-members-multicast-group.md)。

# 示例：在 T AWS ransit Gateway 中管理静态群组成员配置
<a name="multicast-configurations-no-igmp-source"></a>

此示例显示静态地将多播成员添加到组中。主机不能使用 IGMP 协议加入或退出多播组。位于与多播域关联的子网中的任何实例都可以发送多播流量，组成员将接收多播流量。

 使用以下步骤完成配置：

1. 创建 VPC。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)。

1. 在 VPC 中创建子网。有关更多信息，请参阅 *Amazon VPC 用户指南*中的[创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

1. 创建为多播流量配置的中转网关。有关更多信息，请参阅 [在 Transit Gateway 中创建 AWS 公交网关](create-tgw.md)。

1. 创建 VPC 连接。有关更多信息，请参阅 [在 AWS Transit Gateway 中创建 VPC 连接](create-vpc-attachment.md)。

1. 创建配置为不支持 IGMP 的多播域，并支持静态添加源。有关更多信息，请参阅 [在 AWS Transit Gateway 中创建静态源组播域](create-tgw-domain.md)。

   使用以下设置：
   + 禁用**IGMPv2 支持**。
   + 禁用 **Static sources support**（静态源支持）。

1. 在中转网关 VPC 连接中的子网和组播域之间创建关联。有关更多信息，请参阅 [在 Transit Gateway 中将 VPC 附件和子网与多播域关联 AWS](associate-attachment-to-domain.md)。

1. 将成员添加到多播组。有关更多信息，请参阅 [在 T AWS ransit Gateway 中向组播群组注册成员](add-members-multicast-group.md)。