2.3. 配置 AWS VPN
这个示例流程配置 Amazon Web Services (AWS) Red Hat OpenShift Service on AWS 集群来使用客户的现场硬件 VPN 设备。
AWS VPN 目前不提供将 NAT 应用到 VPN 流量的受管选项。如需了解更多详细信息,请参阅 AWS 知识库。
不支持通过私有连接路由所有流量,如 0.0.0.0/0
。这需要删除互联网网关,它将禁用 SRE 管理流量。
有关使用硬件 VPN 设备将 AWS VPC 连接到远程网络的更多信息,请参阅 Amazon VPC VPN 连接 文档。
2.3.1. 创建 VPN 连接
您可以按照以下过程,配置 Amazon Web Services (AWS) Red Hat OpenShift Service on AWS 集群来使用客户的现场硬件 VPN 设备。
前提条件
- 硬件 VPN 网关设备模型和软件版本,例如 Cisco ASA 运行版本 8.3。请参阅 Amazon VPC Network Administrator 指南,以确认 AWS 是否支持您的网关设备。
- VPN 网关设备的公共、静态 IP 地址。
- BGP 或静态路由:如果需要 BGP,则需要 ASN。如果静态路由,必须至少配置一个静态路由。
- 可选:一个可访问服务的 IP 和端口/Protocol 来测试 VPN 连接。
2.3.1.1. 配置 VPN 连接
流程
- 登陆到 Red Hat OpenShift Service on AWS AWS Account Dashboard,然后进入 VPC 仪表板。
- 点您的 VPC,找到包含 Red Hat OpenShift Service on AWS 集群上的 VPC 的名称和 VPC ID。
- 在 VPC 仪表板中,点 Customer Gateway。
- 点 Create Customer Gateway 并为它指定一个有意义的名称。
- 选择路由方法:Dynamic 或 Static。
- 如果 Dynamic,在出现的字段中输入 BGP ASN。
- 粘贴 VPN 网关端点 IP 地址。
- 点 Create。
如果您还没有附加到预期的 VPC 的虚拟私有网关:
- 在 VPC 仪表板中点 Virtual Private Gateway。
- 点 Create Virtual Private Gateway,为它指定一个有意义的名称,然后点 Create。
- 默认 Amazon 默认 ASN。
- 选择新创建的网关,点 Attach to VPC,并将其附加到您之前标识的集群 VPC。
2.3.1.2. 建立 VPN 连接
流程
- 在 VPC 仪表板中,点 Site-to-Site VPN 连接。
点 Create VPN 连接。
- 为它指定有意义的名称标签。
- 选择之前创建的虚拟专用网关。
- 对于客户网关,请选择现有。
- 按名称选择客户网关设备。
- 如果 VPN 将使用 BGP,请选择 Dynamic,否则选择 Static。输入静态 IP CIDR。如果有多个 CIDR,请将每个 CIDR 添加为另一个规则。
- 点 Create。
- 等待 VPN 状态更改为 Available,大约需要 5 到 10 分钟。
选择您刚才创建的 VPN 并点 Download Configuration。
- 从下拉列表中,选择客户网关设备的供应商、平台和版本,然后点下载。
- Generic 供应商配置也可用于以纯文本格式检索信息。
建立 VPN 连接后,请确定设置路由传播,或者 VPN 可能无法正常工作。
请注意,VPC 子网信息,您必须作为远程网络添加到配置中。
2.3.1.3. 启用 VPN 路由传播
设置 VPN 连接后,您必须确保启用了路由传播,以便将所需的路由添加到 VPC 的路由表中。
流程
- 在 VPC 仪表板中点 Route Tables。
选择与 VPC 关联的私有 Route 表,该表包含您的 Red Hat OpenShift Service on AWS。
注意在一些集群中,特定 VPC 可能有多个路由表。选择具有多个显式关联子网的私有子网。
- 点 Route Propagation 选项卡。
在显示的表中,您应看到之前创建的虚拟专用网关。检查 Propagate 列中的值。
- 如果 Propagate 设为 No,点 Edit route propagation,选中虚拟私有网关名称旁边的 Propagate 复选框,再点 Save。
在配置 VPN 隧道和 AWS 检测到它为 Up后,您的静态或 BGP 路由会自动添加到路由表中。
2.3.2. 验证 VPN 连接
设置 VPN 隧道后,您可以验证隧道是否在 AWS 控制台中,并且通过隧道连接正常工作。
前提条件
- 创建 VPN 连接。
流程
验证隧道是否在 AWS 中启动。
- 在 VPC 仪表板中点 VPN 连接。
- 选择您之前创建的 VPN 连接并点 Tunnel Details 选项卡。
- 您应该可以看到至少一个 VPN 隧道为 Up。
验证连接。
要测试到端点设备的网络连接,
nc
(或netcat
)是一个有用的故障排除工具。它包含在默认镜像中,如果可以建立连接,提供快速和清晰的输出:使用
busybox
镜像创建一个临时 pod,它会自行清理:$ oc run netcat-test \ --image=busybox -i -t \ --restart=Never --rm \ -- /bin/sh
使用
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
退出容器,该容器自动删除 Pod:
/ exit
2.3.3. VPN 连接故障排除
隧道没有连接
如果隧道连接仍然处于 Down 状态,您可以验证以下几个方面:
隧道没有保持连接
如果隧道连接无法稳定地保持为 Up,代表所有 AWS 隧道连接都必须从您的网关启动。AWS 隧道不会启动隧道。
红帽建议在持续发送"中断"流量的隧道端设置 SLA Monitor (Cisco ASA)或一些设备,例如 ping
、nc
或 telnet
,位于 VPC CIDR 范围内配置的任何 IP 地址。连接是否成功并不重要,只要流量被定向到隧道。
处于 Down 状态的二级隧道
创建 VPN 隧道时,AWS 会创建额外的故障转移隧道。根据网关设备,有时第二个隧道将显示为 Down 状态。
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.