**发布时间:** 2025-09-08
**厂商:** AWS
**类型:** BLOG
**原始链接:** https://aws.amazon.com/blogs/networking-and-content-delivery/redirecting-internet-bound-traffic-through-a-transparent-forward-proxy/
---
<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 使用透明正向代理重定向互联网出口流量
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 解决方案分析
## 解决方案概述
该解决方案提出了一种在AWS上构建**集中式出口(Centralized Egress)**架构,通过**透明转发代理(Transparent Forward Proxy)**来重定向所有发往互联网的流量。其核心是解决部分系统或客户端因技术限制无法配置**显式代理(Explicit Proxy)**的问题,强制所有流量通过统一的安全检查点。该方案利用**Web缓存通信协议(WCCP)**,使流量重定向过程对终端用户完全透明。
- **解决问题**:为那些无法配置显式代理的系统提供一种强制通过代理服务器进行安全检查和内容过滤的机制。
- **适用场景**:
- **安全互联网访问**:企业希望在不修改客户端配置的情况下,确保所有出站流量都经过统一的安全策略控制。
- **数据防泄漏(DLP)**:透明地检查出站流量,防止敏感数据外泄,尤其适用于不支持代理配置的终端。
- **合规性要求**:金融、医疗等受严格监管的行业,需要对所有网络流量进行统一的检查和日志记录以满足合规标准。
- **技术原理**:架构以 **AWS Transit Gateway** 为网络枢纽,通过 **Transit Gateway Connect** 附件与部署在 **Egress VPC** 中的第三方WCCP兼容虚拟路由器(运行在EC2上)建立 **GRE隧道** 和 **BGP会话**。Spoke VPCs的互联网流量被TGW路由至该虚拟路由器,后者利用WCCP协议将流量透明地重定向到代理服务器集群进行检查,处理后再依次流经 **AWS Network Firewall** 和 **NAT Gateway**,最终访问互联网。
## 实施步骤
1. **构建中心辐射型网络**:使用 **AWS Transit Gateway** 作为中心枢纽,连接所有需要访问互联网的应用VPC(Spoke VPCs)和一个专门的出口VPC(Egress VPC)。
2. **部署核心组件**:在Egress VPC的私有子网中,基于 **Amazon EC2** 实例部署WCCP兼容的虚拟路由器和代理服务器(如Squid)。同时,部署 **AWS Network Firewall** 用于深度包检测,以及在公有子网中部署 **NAT Gateway** 用于地址转换。
3. **建立动态路由通道**:
- 使用 **Transit Gateway Connect** 在Transit Gateway和Egress VPC的WCCP虚拟路由器之间建立 **GRE隧道**。
- 在GRE隧道上配置 **BGP** 对等会话。WCCP虚拟路由器通过BGP向Transit Gateway宣告一条默认路由(`0.0.0.0/0`)。
4. **配置流量路由**:
- **Spoke VPCs**:在其路由表中配置默认路由,将所有未知目的地的流量指向Transit Gateway。
- **Transit Gateway**:Spoke VPC路由表中的默认路由指向Transit Gateway Connect附件,从而将所有互联网流量通过GRE隧道发送到Egress VPC中的WCCP虚拟路由器。
5. **配置WCCP重定向**:在WCCP虚拟路由器上配置重定向策略,根据端口、协议等条件拦截特定的互联网流量,并将其转发给同一子网内的代理服务器进行处理。
6. **串联安全服务**:代理服务器处理完流量后,根据其所在子网的路由表,将流量转发至 **AWS Network Firewall** 进行进一步检查。检查通过后,流量最终由 **NAT Gateway** 发往互联网。
## 方案客户价值
- **无缝的安全策略实施**:无需更改任何客户端配置,即可强制所有出站流量通过代理和防火墙进行检查。这极大地简化了大规模环境下的安全策略部署,并覆盖了IoT设备、旧式服务器等无法配置代理的系统。
- **增强的数据丢失防护(DLP)**:通过透明地拦截和检查所有出站流量,企业能够有效识别并阻止敏感数据外流,即使终端设备本身没有DLP能力或不支持代理。
- **满足严格的合规审计**:为需要严格监管的行业提供了一种集中、一致的流量检查和日志记录机制,所有出站流量的记录都集中在Egress VPC中,简化了审计流程并确保满足合规要求。
## 涉及的相关产品
- **AWS Transit Gateway**:作为网络中心枢纽,集中管理VPC间的路由。
- **Transit Gateway Connect**:核心组件,用于集成第三方虚拟网络设备,通过GRE和BGP实现与Transit Gateway的动态路由。
- **Amazon EC2**:用于托管WCCP兼容的虚拟路由器和代理服务器等第三方软件。
- **Amazon VPC**:提供隔离的网络环境和精细的路由控制。
- **AWS Network Firewall**:提供托管的网络防火墙服务,用于流量过滤和威胁防护。
- **NAT Gateway**:为私有子网中的实例提供可扩展的互联网访问能力。
- **第三方虚拟设备**:支持WCCP协议的路由器和代理服务器软件。
## 技术评估
- **优势**:
- **透明性与广泛适用性**:对客户端完全透明,无需任何修改,使其能够无缝应用于任何类型的终端设备和应用程序。
- **集中化与可扩展性**:在Egress VPC中集中实施和管理所有安全策略,简化了运维。架构本身具备高可用性(跨AZ部署)和可扩展性,可以根据流量增长灵活扩展EC2实例和NAT Gateway的规模。
- **灵活性**:代理服务器可以与其他安全系统(如DLP)进行菊花链式串联,形成多层深度的安全检测路径。
- **可能的限制**:
- **配置复杂性**:方案整合了WCCP、BGP、GRE等多种网络协议以及多个AWS服务,初始配置和故障排查的复杂度较高,对网络工程师的技能有一定要求。
- **性能瓶颈**:WCCP虚拟路由器和代理服务器的EC2实例规格是整个数据路径的潜在性能瓶颈,必须进行精确的容量规划和性能测试。
- **对第三方软件的依赖**:解决方案的稳定性和功能依赖于所选的第三方WCCP路由器和代理软件,其性能、特性和许可模式是选型时的关键考虑因素。
---
## 其他信息
### 实施注意事项
- **实例规格选型**:必须根据预期的流量吞吐量,为WCCP路由器和代理服务器选择合适的EC2实例类型,以避免性能瓶颈。
- **高可用性设计**:应在多个可用区(AZ)中部署冗余的WCCP路由器、代理服务器、防火墙端点和NAT网关,以确保架构的弹性和高可用性。
- **WCCP配置**:需精细配置WCCP服务组和重定向规则,以确保只有目标流量被重定向,并可为主备代理服务器设置不同的服务组。
- **监控与日志记录**:
- 必须对WCCP路由器和代理服务器进行全面监控。
- 关键日志包括:
- **WCCP路由器**:WCCP服务状态、数据包重定向统计、接口流量、ACL命中数。
- **代理服务器**:访问日志、错误日志、WCCP服务注册日志、缓存性能、系统资源使用情况。
- 建议将所有日志导出到 **Amazon CloudWatch**,以设置告警并创建可视化仪表板,用于实时监控流量模式和安全事件。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 通过透明正向代理重定向互联网出向流量
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/redirecting-internet-bound-traffic-through-a-transparent-forward-proxy/](https://aws.amazon.com/blogs/networking-and-content-delivery/redirecting-internet-bound-traffic-through-a-transparent-forward-proxy/)
**发布时间:** 2025-09-08
**厂商:** AWS
**类型:** BLOG
---
集中式出口 (Centralized egress) 是一项基本原则,即所有发往互联网的网络流量都通过一个单一、通用的检查点。从安全角度来看,这种方法很有益处,因为它限制了对外部可访问的恶意资源的暴露,例如恶意软件的 [命令与控制 (command and control)](https://en.wikipedia.org/wiki/Botnet#Command_and_control) (C&C) 基础设施。这种检查通常由像 [AWS Network Firewall](https://aws.amazon.com/network-firewall/) 这样的防火墙来完成,并且客户通常也希望在路径中插入一个正向代理 (forward proxy),无论是否使用防火墙。代理可以在两种模式下工作:[显式代理 (explicit proxy)](https://en.wikipedia.org/wiki/Proxy_server) 模式,即所有需要访问互联网的客户端都配置了显式代理,并使用显式代理配置发送支持的出站流量。在 [如何通过域白名单和内容过滤设置出站 VPC 代理](https://aws.amazon.com/blogs/security/how-to-set-up-an-outbound-vpc-proxy-with-domain-whitelisting-and-content-filtering/) 一文中描述了这样一种实现。然而,有些系统无法配置显式代理,客户常常寻找一种方法,将这类系统发往互联网的流量透明地通过代理进行重定向。在本文中,我将解释一种架构,该架构可用于在互联网出口路径中部署代理,并使用 [Web 缓存通信协议 (Web Cache Communication Protocol (WCCP))](https://en.wikipedia.org/wiki/Web_Cache_Communication_Protocol) 透明地将流量重定向到该代理。我将通过一个基于 [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) 架构的概念性概述,来介绍如何实现带有 WCCP 的透明代理。具体的实现细节可能会根据您组织的要求和所选技术而有所不同。
## **真实世界的用例**
以下是三个真实世界的用例。
1. **安全访问互联网**:组织可以使用此架构来确保所有出站互联网流量都通过安全控制,而无需在每个客户端设备上进行显式代理配置。
2. **数据丢失防护**:通过透明地检查流量,公司可以识别并阻止敏感数据离开网络,即使终端不支持显式代理配置。
3. **法规遵从**:具有严格合规要求的行业可以实现对所有网络流量的一致性检查和日志记录,以满足监管标准。
## **前提条件:**
在继续之前,您应该熟悉以下 AWS 网络概念和服务:
- [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/)
- [路由表 (Route tables)](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)
- [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
- [Transit Gateway Connect 附件 (Transit Gateway Connect attachments)](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-connect.html)
- [AWS Network Firewall](https://aws.amazon.com/network-firewall/)
- [NAT 网关 (NAT Gateway)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)
- 第三方虚拟设备 (兼容 WCCP 的路由器和代理服务器) 的 WCCP 功能。
## **架构概述**
该架构的核心是一个出口 VPC (Egress VPC),其中包含运行在 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) 上的兼容 WCCP 的虚拟路由器和代理服务器。这些虚拟路由器使用 WCCP 将流量重定向到代理。这种设置允许对流量进行透明的检查和过滤,而无需更改客户端配置。图 1 展示了该架构图,随后是架构的详细说明。

*图 1: 整体架构图*
## **关键组件**
**Transit Gateway:** Transit Gateway 作为网络连接的中心枢纽,简化了 VPC 与本地网络之间连接的管理。在我们的架构中,Transit Gateway 在多个辐 VPC (Spoke VPC) 之间,以及辐 VPC 与互联网之间通过一个用于检查的出口 VPC 路由流量。
**Transit Gateway Connect 附件**:Connect 附件提供了将第三方虚拟设备与 Transit Gateway 集成的能力。在我们的设计中,这些附件:
- 通过 Connect 附件上的 [通用路由封装 (Generic routing encapsulation (GRE))](https://en.wikipedia.org/wiki/Generic_routing_encapsulation) 将 Transit Gateway 连接到兼容 WCCP 的路由器。
- 无需修改每个 VPC 中的路由表即可实现流量重定向。
- 为扩展和高可用性提供灵活性。
您可以参考 [使用 AWS Transit Gateway Connect 简化 SD-WAN 连接](https://aws.amazon.com/blogs/networking-and-content-delivery/simplify-sd-wan-connectivity-with-aws-transit-gateway-connect/) 一文,作为使用 Connect 附件实现 Transit Gateway 的基础。然后,您可以根据本文中概述的要求修改实现。
**出口 VPC**:出口 VPC 是一个专门的环境,它:
- 在私有子网中托管运行在 Amazon EC2 上的兼容 WCCP 的路由器和代理服务器。
- 在独立的私有子网中包含防火墙。
- 使用代理和防火墙实现集中式安全策略。
- 在公有子网中使用 NAT 网关通过互联网网关 (IGW) 提供互联网连接。
**运行在 Amazon EC2 上的兼容 WCCP 的路由器**:这些路由器是我们透明代理实现的基石。它们执行以下操作:
- 位于从辐 VPC 到互联网的流量路径上。
- 根据配置的策略拦截流量。
- 将特定流量重定向到代理服务器。
- 将处理后的流量返回到其原始路径。
**运行在 Amazon EC2 上的代理服务器**:这些是基于 Amazon EC2 的虚拟设备,用作正向代理 (例如 [Squid](https://en.wikipedia.org/wiki/Squid_\(software\))),它们与前面提到的 WCCP 路由器设备交互并接收重定向的流量。通过使用 WCCP,它们对所有出口流量强制执行配置的策略,并将其转发到路径中的下一个安全功能。在本例中,我们使用的是 AWS Network Firewall。然而,这些代理可以在流量路由到互联网之前,将其他安全/检查系统串联起来,例如 [数据丢失防护 (Data Loss Protection)](https://en.wikipedia.org/wiki/Data_loss_prevention_software) (DLP) 系统。
## **连接性**
如前面的图 1 所示,辐 VPC 使用 VPC 附件连接到 Transit Gateway。这些附件与一个辐 VPC 路由表相关联 (路由将在下一节中解释)。出口 VPC 使用 VPC 附件连接到同一个 Transit Gateway,并且在该 VPC 附件上配置了一个 Connect 附件,用于在 Transit Gateway 和出口 VPC 之间建立连接。此 Connect 附件用于在 Transit Gateway 和出口 VPC 中的虚拟设备 (作为 WCCP 路由器) 之间配置 GRE 隧道。该出口 VPC 通过附加的 IGW 具有到互联网的连接。
## **路由 (参考图 1)**
- **辐 VPC**:每个需要访问互联网的辐 VPC 都有一个与路由表关联的子网,该路由表包含一个指向其附加的 Transit Gateway 的默认路由。此配置将所有发往互联网的流量路由到 Transit Gateway,其中辐 VPC 附件与 Transit Gateway 辐路由表相关联。
- **Transit Gateway 配置**:
- Transit Gateway 辐路由表包含所有辐 VPC 的传播路由以及从 Connect 附件传播的默认路由。该默认路由由出口 VPC 中的 WCCP 虚拟设备生成,并通过 GRE 隧道上的 BGP 对等连接通告给 Transit Gateway。
- 在 Transit Gateway 上,出口 VPC 附件与出口路由表相关联。该表包含从出口 VPC 附件传播到出口 VPC CIDR 的路由,以及从各自附件传播到所有辐 VPC CIDR 的路由。
- Connect 附件与其自己的路由表相关联。此路由表包含传播的辐 VPC 路由以及由 WCCP 路由器通过 GRE 隧道上的 BGP 会话通告的默认路由。
- **出口 VPC 配置**:出口 VPC 需要更多的路由配置来启用透明代理功能。
- 私有子网中的 WCCP 路由器设备与 Transit Gateway 建立 GRE 隧道并创建 BGP 对等会话。
- 通过这些 BGP 会话,WCCP 路由器设备向 Transit Gateway 通告默认路由并接收所有辐 VPC 前缀。
- WCCP 路由器设备使用 WCCP 将发往互联网的流量重定向到同一子网中的正向代理 (本文稍后将详细讨论)。
- **子网特定路由**:私有子网 (WCCP 路由器和代理服务器)。
- 路由表条目中,指向 Transit Gateway CIDR connect 附件对等点的路由指向 Transit Gateway。
- 默认路由指向一个独立私有子网中的防火墙。
- **私有子网 (防火墙)**:
- 默认路由指向相应 [AWS 可用区 (AZ)](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) 公有子网中的 NAT 网关。
- 对于不匹配 WCCP 重定向规则的返回流量,路由指向同一 AZ 中的 WCCP 路由器 ENI。
- **公有子网 (NAT 网关)**:
- 默认路由指向 IGW。
- 对于不匹配 WCCP 重定向规则的返回流量,路由指向同一 AZ 中的防火墙端点。
## **WCCP 重定向**
所有到达 WCCP 路由器的互联网出向流量都会根据配置的 WCCP 重定向规则进行评估,并转发到同一子网中的代理。为了实现冗余,这些 WCCP 路由器配置了 WCCP 重定向,以连接到其他 AZ 中的代理。WCCP 重定向可以配置为处理所有支持的流量或选定的流量类型。配置机制因 WCCP 虚拟设备的供应商而异。到达代理的流量会根据配置进行评估和处理,然后在前往互联网的途中转发到防火墙。如前所述,如果需要,代理可以与其他功能 (如 DLP) 串联。
## **数据包流程**
下图概述了数据包的流程。

*图 2: 带有数据包流程的架构图*
**正向路径:** 本节解释数据包如何从辐 VPC 中的资源通过出口 VPC 中的代理和防火墙到达互联网上的目的地。
- (A) 从辐 VPC 中的源发往互联网的流量遵循子网路由表的默认路由进入 Transit Gateway。
- (B) 进入 Transit Gateway 后,它遵循 Transit Gateway 上的辐路由表中的路由,将流量转发到 Transit Gateway Connect 附件。Connect 附件上有多个 GRE 隧道,所有隧道都向 Transit Gateway 通告默认路由,因此 Transit Gateway 使用等价多路径 (Equal Cost Multi-Pathing) 将流量发送到出口 VPC 中的 WCCP 虚拟设备。
- (C) WCCP 虚拟设备拦截流量并确定是否需要检查。需要检查的流量被重定向到代理服务器,代理服务器应用安全策略、内容过滤或其他控制,然后将其转发到 Network Firewall。
- (CD) 不匹配 WCCP 重定向规则的流量会从 WCCP 虚拟设备流出,并按照子网路由表直接进入 Network Firewall。
- (D) 代理流量被源 NAT (Source NAT) 到其 IP 地址,并从代理服务器流出,按照子网路由表流向 Network Firewall。该路由表有一个默认路由指向出口 VPC 同一 AZ 中的 Network Firewall 端点。
- (E) Network Firewall 检查流量,如果允许,则按照其子网路由表中配置的默认路由,将其发送到出口 VPC 同一 AZ 中的 NAT 网关。
- (F) NAT 网关对流量执行源 NAT,并将其发送到互联网上的目的地。
**反向路径:** 本节解释返回流量的数据包如何从互联网通过出口 VPC 中的代理和防火墙到达辐 VPC 中的资源。
- (G) 来自互联网的返回流量由于源 NAT 而落在同一个 NAT 网关上。
- (H) 按照子网路由表,NAT 网关将流量转发到同一 AZ 中的 Network Firewall。
- (I) 如果此流量在正向路径上匹配了 WCCP 重定向规则并被代理服务器进行了源 NAT,Network Firewall 会将流量发送到同一 AZ 中的代理服务器。
- (J) 代理服务器使用其上的 WCCP 配置,将代理流量的返回流量发送到 WCCP 路由器。
- (IJ) 对于未匹配重定向规则的流量,其返回流量由 Network Firewall 按照子网路由表发送到 WCCP 路由器。
- (K) 从 WCCP 路由器到 Transit Gateway 的 Connect 附件上有多个 GRE 隧道。辐 VPC CIDR 通过这些隧道通告给 WCCP 路由器。WCCP 路由器使用等价多路径通过这些 GRE 隧道将流量发送到 Transit Gateway。
- (L) Transit Gateway 使用 Connect 附件路由表将流量转发到相应的辐 VPC 附件。
- (M) 在辐 VPC 中,流量遵循本地路由,从 Transit Gateway ENI 到达目的地。
## **注意事项**
在实施此解决方案时,请考虑以下四点。
1. **WCCP 虚拟设备选型**
- 确保 WCCP 虚拟设备的规格能够处理预期的流量。您可以参考 [Amazon EC2 实例网络带宽](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) 的文档,选择一个支持您流量需求的合适 EC2 实例。
- 通过跨多个 AZ 部署来规划冗余。
- 组件级别的冗余 (对于 WCCP 路由器或代理服务器) 可以使用 [自动实例恢复](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html) 来实现。
2. **WCCP 配置**
- 根据需要定义服务组,以对不同检查策略的流量进行分类。可以为主代理服务器和备用代理服务器使用不同的服务组。
- 根据您的要求配置重定向。您可以使用多个属性,如端口、协议和源/目的地址。
- 在 WCCP 路由器和代理服务器之间实现身份验证 (本文不涉及)。
3. **代理选择**
- 选择支持 WCCP 集成的代理解决方案。
- 根据预期的流量考虑性能要求。您可以参考 [Amazon EC2 实例网络带宽](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) 的文档,选择一个能够支持您流量的 EC2 实例。
4. **监控和日志记录**
- 为 WCCP 路由器和代理服务器实施全面的日志记录。以下是一些需要收集的日志示例。鉴于 WCCP 和代理的实现因供应商/解决方案而异,这些日志可能会有不同的名称。请查阅供应商文档了解详情:
**在 WCCP 路由器上:**
1. WCCP 服务状态、数据包重定向以及路由器到代理的通信日志
2. 接口流量统计
3. 与 WCCP 相关规则的 ACL 命中计数
4. 用于流量分析的 Netflow/sFlow 数据
**在代理服务器上:**
1. 访问日志和错误日志 (客户端 IP、URL、状态码、传输字节数、时间、连接失败、超时)
2. WCCP 服务日志 (服务注册、组成员关系)
3. 缓存性能日志 (命中/未命中率)
4. 连接处理日志 (TCP 连接、握手)
5. 身份验证日志 (如果适用)
6. SSL/TLS 检查日志 (对于 HTTPS 流量)
7. 系统资源使用情况 (CPU、内存、磁盘 I/O)
- 为流量异常或代理健康问题设置警报,并创建仪表板以可视化流量模式和安全事件。您可以将前面提到的日志导出到 [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 来设置警报和创建仪表板。
## **结论**
使用 WCCP 和 AWS Transit Gateway 实施透明代理,为寻求在不影响用户体验的情况下增强其网络安全状况的组织提供了一个强大的解决方案。通过在出口 VPC 中集中安全控制并使用兼容 WCCP 的路由器,组织可以实现全面的流量检查,同时保持网络性能和可扩展性。
该架构提供了灵活性,以适应不断变化的安全要求和日益增长的网络需求,使其成为希望加强其云安全基础设施的企业的绝佳选择。有关集中式出口的更多信息和架构选项,请参阅 AWS 白皮书 [集中式互联网出口](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/centralized-egress-to-internet.html) 。
|

| |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -- |
| ### Vijay Menon | |
| | |
| Vijay Menon 是常驻新加坡的首席解决方案架构师,拥有大规模网络和通信基础设施背景。他热衷于学习新技术,并通过使用 AWS 产品和服务提供解决方案,帮助客户解决复杂的技术问题。在不帮助客户的时候,他喜欢长跑,并与家人和朋友共度时光。 | |
<!-- AI_TASK_END: AI全文翻译 -->