×

此示例流程配置在 AWS 上的 Amazon Web Services (AWS) Red Hat OpenShift Service 集群以使用客户的本地硬件 VPN 设备。

AWS VPN 目前不提供将 NAT 应用于 VPN 流量的托管选项。有关更多详细信息,请参阅AWS 知识中心

不支持通过专用连接路由所有流量,例如0.0.0.0/0。这需要删除互联网网关,这将禁用 SRE 管理流量。

有关使用硬件 VPN 设备将 AWS VPC 连接到远程网络的更多信息,请参阅 Amazon VPC 的VPN 连接文档。

创建 VPN 连接

您可以使用以下步骤配置在 AWS 上的 Amazon Web Services (AWS) Red Hat OpenShift Service 集群以使用客户的本地硬件 VPN 设备。

先决条件
  • 硬件 VPN 网关设备型号和软件版本,例如运行版本 8.3 的 Cisco ASA。请参阅 Amazon VPC 的网络管理员指南,以确认您的网关设备是否受 AWS 支持。

  • VPN 网关设备的公共静态 IP 地址。

  • BGP 或静态路由:如果为 BGP,则需要 ASN。如果为静态路由,则必须配置至少一条静态路由。

  • 可选:可访问服务的 IP 和端口/协议,用于测试 VPN 连接。

配置 VPN 连接

步骤
  1. 登录到 AWS 上的 Red Hat OpenShift Service AWS 账户信息中心,然后导航到 VPC 信息中心。

  2. 单击**您的 VPC** 并确定包含 AWS 上的 Red Hat OpenShift Service 集群的 VPC 的名称和 VPC ID。

  3. 在 VPC 信息中心,单击**客户网关**。

  4. 单击**创建客户网关**并为其指定一个有意义的名称。

  5. 选择路由方法:**动态**或**静态**。

  6. 如果是动态的,请在出现的字段中输入 BGP ASN。

  7. 粘贴 VPN 网关端点 IP 地址。

  8. 单击**创建**。

  9. 如果您尚未将虚拟专用网关附加到目标 VPC

    1. 在 VPC 信息中心,单击**虚拟专用网关**。

    2. 单击**创建虚拟专用网关**,为其指定一个有意义的名称,然后单击**创建**。

    3. 保留默认的 Amazon 默认 ASN。

    4. 选择新创建的网关,单击**附加到 VPC**,并将其附加到您之前识别的集群 VPC。

建立 VPN 连接

步骤
  1. 在 VPC 信息中心,单击**站点到站点 VPN 连接**。

  2. 单击**创建 VPN 连接**。

    1. 为其指定一个有意义的名称标签。

    2. 选择之前创建的虚拟专用网关。

    3. 对于客户网关,选择**现有**。

    4. 按名称选择客户网关设备。

    5. 如果 VPN 将使用 BGP,请选择**动态**,否则选择**静态**。输入静态 IP CIDR。如果有多个 CIDR,请将每个 CIDR 添加为**其他规则**。

    6. 单击**创建**。

    7. 等待 VPN 状态更改为**可用**,大约需要 5 到 10 分钟。

  3. 选择您刚刚创建的 VPN 并单击**下载配置**。

    1. 从下拉列表中选择客户网关设备的供应商、平台和版本,然后单击**下载**。

    2. 还提供**通用**供应商配置,用于以纯文本格式检索信息。

建立 VPN 连接后,请务必设置路由传播,否则 VPN 可能无法按预期工作。

注意 VPC 子网信息,您必须将其添加到您的配置中作为远程网络。

启用 VPN 路由传播

设置 VPN 连接后,必须确保启用了路由传播,以便将必要的路由添加到 VPC 的路由表。

步骤
  1. 在 VPC 信息中心,单击**路由表**。

  2. 选择与包含 AWS 上的 Red Hat OpenShift Service 集群的 VPC 关联的私有路由表。

    在某些集群中,特定 VPC 可能有多个路由表。选择具有多个显式关联子网的私有路由表。

  3. 单击**路由传播**选项卡。

  4. 在出现的表中,您应该会看到之前创建的虚拟专用网关。检查**传播列**中的值。

    1. 如果“传播”设置为**否**,请单击**编辑路由传播**,选中虚拟专用网关名称旁边的“传播”复选框,然后单击**保存**。

配置 VPN 隧道后,AWS 将其检测为**已启动**,您的静态或 BGP 路由将自动添加到路由表。

验证 VPN 连接

设置好您这端的 VPN 隧道后,您可以验证隧道在 AWS 控制台中是否已启动,以及隧道间的连接是否正常。

先决条件
  • 已创建 VPN 连接。

步骤
  1. 验证隧道在 AWS 中是否已启动。

    1. 在 VPC 仪表板中,单击**VPN 连接**。

    2. 选择您之前创建的 VPN 连接,然后单击**隧道详细信息**选项卡。

    3. 您应该能够看到至少一个 VPN 隧道处于**已启动**状态。

  2. 验证连接。

    要测试到端点设备的网络连接,nc(或netcat)是一个有用的故障排除工具。它包含在默认镜像中,如果可以建立连接,则会提供快速清晰的输出。

    1. 使用busybox镜像创建一个临时 Pod,该镜像会自行清理。

      $ oc run netcat-test \
          --image=busybox -i -t \
          --restart=Never --rm \
          -- /bin/sh
    2. 使用nc检查连接。

      • 连接成功示例结果

        / nc -zvv 192.168.1.1 8080
        10.181.3.180 (10.181.3.180:8080) open
        sent 0, rcvd 0
      • 连接失败示例结果

        / nc -zvv 192.168.1.2 8080
        nc: 10.181.3.180 (10.181.3.180:8081): Connection refused
        sent 0, rcvd 0
    3. 退出容器,这会自动删除 Pod。

      / exit

VPN 连接故障排除

隧道无法连接

如果隧道连接仍然处于**已关闭**状态,您可以验证以下几点:

  • AWS 隧道不会启动 VPN 连接。连接尝试必须从客户网关发起。

  • 确保您的源流量来自与已配置的客户网关相同的 IP。AWS 会静默丢弃所有源 IP 地址不匹配的网关流量。

  • 确保您的配置与AWS 支持的值匹配。这包括 IKE 版本、DH 组、IKE 生命周期等等。

  • 重新检查 VPC 的路由表。确保已启用传播,并且路由表中存在以您之前创建的虚拟专用网关为目标的条目。

  • 确认您没有任何可能导致中断的防火墙规则。

  • 检查您是否正在使用基于策略的 VPN,因为这可能会根据其配置方式导致复杂问题。

  • 可以在AWS 知识中心中找到更多故障排除步骤。

隧道无法保持连接

如果隧道连接难以保持**已启动**状态,请注意,所有 AWS 隧道连接都必须从您的网关发起。AWS 隧道不会启动隧道连接

Red Hat 建议在您这端的隧道上设置 SLA 监控器(Cisco ASA)或某些设备,该设备会不断发送“有趣的”流量,例如pingnctelnet,到 VPC CIDR 范围内配置的任何 IP 地址。连接是否成功并不重要,重要的是流量正在被定向到隧道。

辅助隧道处于关闭状态

创建 VPN 隧道时,AWS 会创建一个额外的故障转移隧道。根据网关设备的不同,有时辅助隧道会显示为**已关闭**状态。

AWS 通知如下:

You have new non-redundant VPN connections

One or more of your vpn connections are not using both tunnels. This mode of
operation is not highly available and we strongly recommend you configure your
second tunnel. View your non-redundant VPN connections.