

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

# 内联流量检查解决方案选项
<a name="solution-options"></a>

以下三节介绍在具有 Gateway Load Balancer 和 Gateway Load Balancer 端点的 AWS 环境中使用第三方防火墙设备进行流量检查的数据流：
+ [VPC-to-VPC 交通检查](vpc-to-vpc-traffic-inspection.md)
+ [VPC-to-on-premises 交通检查](vpc-on-premises-traffic-inspection.md)
+ [通过 NAT 网关和互联网网关检查出站流量](outbound-traffic-inspection-nat-gateway.md)

此解决方案的三个选项中使用了以下资源：
+  VPCs 用于托管工作负载或应用程序的专用辐条。
+ 一个 VPC，用于托管防火墙设备。
+ 分支和设备中每个可用区的 Transit Gateway 弹性网络接口的专用子网 VPCs。
+ 用于设备 VPC 连接的设备模式处于开启状态。
+ 每个可用区中网关负载均衡器端点的专用子网。
+ 用于互连的传输网关 VPCs，此外还可通过 Transit Gateway 虚拟接口和 Direct Connect 网关或通过 VPN 连接提供 AWS Site-to-Site VPN本地连接。

# VPC-to-VPC 交通检查
<a name="vpc-to-vpc-traffic-inspection"></a>

VPC-to-VPC 当流量来自一个 VPC 并发往另一个 VPC 时，就会发生流量检查。流量在到达目标 VPC 之前，会重定向到设备 VPC，以进行流量检查。下图显示了 `Workload spoke VPC1` 中的 Amazon Elastic Compute Cloud（Amazon EC2）实例需要与 `Workload spoke VPC2` 中的 EC2 实例通信时流量的流动方式。

![\[两个分支 VPCs 和一个设备 VPC 之间的流量检查架构图\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/inline-traffic-inspection-third-party-appliances/images/2-vpc-to-vpc.png)


在此应用场景中，两个分支 VPC 跨两个可用区托管工作负载 EC2 实例，一个设备 VPC 托管第三方防火墙设备以进行流量检查。 VPCs 它们使用相互连接 AWS Transit Gateway。该图显示了当可用区 1 中 `Workload spoke VPC1` 中的 EC2 实例向可用区 1 中 `Workload spoke VPC2` 中的实例发送数据包时的以下数据包流：

1. 来自可用区 1 中 `Workload spoke VPC1` 中的 EC2 实例的数据包将发送至可用区 1 中中转网关子网中的 Transit Gateway 弹性网络接口。

1. 根据 VPC 路由表中定义的默认路由，数据包将到达中转网关。

1. 在中转网关中，分支中转网关路由表与 `Workload spoke VPC1` 连接关联，而这决定了下一跃点。

1. 下一跃点是设备 VPC。由于设备 VPC 连接已开启设备模式，因此中转网关会根据 IP 数据包的 4 元组来决定将流量转发到哪个 Transit Gateway 弹性网络接口。

1. 如果 Transit Gateway 选择 `Appliance VPC` 中可用区 1 中的 Transit Gateway 弹性网络接口，则请求流量和响应流量的流量均会停留在可用区 1。

1. 流量会发送到可用区 1 中的 `Gateway Load Balancer endpoint 1`。

1. 网关负载均衡器端点使用逻辑连接到 Gateway Load Balancer AWS PrivateLink。网关负载均衡器使用 4 元组哈希算法来选择流量生命周期内的防火墙设备，然后将流量转发到可用区 1 中 `Appliance VPC` 中的设备进行检查。网关负载均衡器在其与防火墙设备之间创建了一条 GENEVE 隧道。

1. 根据防火墙策略检查流量。

1. 成功检查数据包后，数据包将发送回网关负载均衡器，然后发送到可用区 1 中 `Appliance VPC` 中的网关负载均衡器端点。

1. 在网关负载均衡器端点上，数据包根据 VPC 路由表发送到中转网关。

1. 数据包到达中转网关后，会检查与 `10.2.0.0/16` 网络（即目标网络）关联的路由表。

1. 在到达目标 EC2 实例之前，数据包将发送到可用区 1 中 `Workload spoke VPC2` 中的 Transit Gateway 弹性网络接口。返回流量所遵循的路径相同，但方向相反。

**注意**  
Transit Gateway 会保持可用区亲和性，并使用创建原始请求的同一可用区。例如，如果可用区 2 中 `Workload spoke VPC2` 中的 EC2 实例发起请求，则数据包将转发到可用区 2 中 `Workload spoke VPC2` 中的 Transit Gateway 弹性网络接口子网，到达中转网关，而后转发到目标 VPC 中可用区 2 中的 Transit Gateway 弹性网络接口子网。通过在设备 VPC 中开启设备模式，可确保使用流量生命周期内的 4 元组哈希保持对称流。

# VPC-to-on-premises 交通检查
<a name="vpc-on-premises-traffic-inspection"></a>

下图显示了 `Workload spoke VPC1` 中的 Amazon Elastic Compute Cloud（Amazon EC2）实例希望与本地服务器通信时的流量。

![\[分支 VPC 1 中的 Amazon EC2 实例与本地服务器之间的流量\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/inline-traffic-inspection-third-party-appliances/images/3-vpc-to-onprem.png)


下图显示了如下工作流：

1. 来自可用区 1 中 `Workload spoke VPC 1` 中 EC2 实例的数据包会到达 `Workload spoke VPC 1` 中转网关子网中可用区 1 中的 Transit Gateway 弹性网络接口。数据包根据与 Transit Gateway 弹性网络接口子网关联的 VPC 路由表，到达中转网关。

1. 在中转网关中，`Spoke transit gateway route table` 与 `Workload spoke VPC 1` 连接关联，而这决定了下一跃点。

1. 下一跃点是设备 VPC。Transit Gateway 根据流量生命周期内的 4 元组哈希决定将流量发送到哪个 Transit Gateway 弹性网络接口。

1. 如果 Transit Gateway 选择可用区 1 中的 Transit Gateway 弹性网络接口，则会检查与设备 VPC 中可用区 1 中 Transit Gateway 弹性网络接口子网关联的 VPC 路由表。Transit Gateway 将流量发送到可用区 1 中的网关负载均衡器端点。

1. Gateway Load Balancer 端点通过 AWS PrivateLink 逻辑连接到 Gateway Load Balancer，然后将流量转发到防火墙设备进行流量检查。网关负载均衡器在其与防火墙设备之间创建了一条 GENEVE 隧道。

1. 如果允许流量，则数据包将发送回网关负载均衡器和可用区 1 中的网关负载均衡器端点。

1. 在网关负载均衡器端点上，数据包会检查 VPC 路由表，并且下一跃点是中转网关。

1. 数据包到达中转网关，然后在与设备 VPC 连接关联的设备中转网关路由表中执行查找，以决定跳跃至 `172.16.0.0/16` 网络的下一跃点。

1. 然后，数据包将发送到本地的目标服务器。响应流量所遵循的路径相同，但方向相反。

# 通过 NAT 网关和互联网网关检查出站流量
<a name="outbound-traffic-inspection-nat-gateway"></a>

 下图显示了需要检查从 VPC 发往互联网的出站流量时的工作流程。

![\[通过 NAT 网关和互联网网关，检查从 VPC 发往互联网的流量。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/inline-traffic-inspection-third-party-appliances/images/4-outbound-inspection.png)


下图显示了如下工作流：

1. 来自可用区 1 中 `Workload spoke VPC1` 中的 Amazon Elastic Compute Cloud（Amazon EC2）实例的数据包会到达可用区 1 中的 Transit Gateway 弹性网络接口。根据与源关联的`Workload spoke VPC1`路由表，数据包到达 Transit Gateway。

1. 在 Transit Gateway 中，分支中转网关路由表与 `Workload spoke VPC1` 连接相关联，而这决定了下一跃点。

1. 下一跃点是 `Appliance VPC`。Transit Gateway 根据 4 元组哈希决定将流量发送到哪个 Transit Gateway 弹性网络接口。

1. 如果 Transit Gateway 选择可用区 2 中的 Transit Gateway 弹性网络接口，则会检查与 `Appliance VPC` 的可用区 2 中的 Transit Gateway 弹性网络接口子网关联的 VPC 路由表，然后根据默认路由将流量发送到网关负载均衡器端点。

1. Gateway Load Balancer 端点通过逻辑连接到 Gateway Load Balancer AWS PrivateLink ，网关负载均衡器将流量转发到防火墙设备进行流量检查。网关负载均衡器在其与防火墙设备之间创建了一条 GENEVE 隧道。

1. 如果允许流量，则数据包将根据附加到有效负载的元数据，从其来源发送回网关负载均衡器和可用区 1 中的网关负载均衡器端点。

1. 在可用区 1 中的网关负载均衡器端点上，数据包会检查 VPC 路由表以确定下一跃点。

1. 数据包到达 `NAT gateway 1` 并查看 NAT 网关的路由表，其中默认路由是互联网网关。

1. 然后，数据包将通过互联网网关发送到目的地。返回流量所遵循的路径相同，但方向相反。