注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅 开始使用 Oracle Cloud Infrastructure Free Tier。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间的值示例。完成您的实验室时,请将这些值替换为特定于云环境的那些值。
为专用计算实例配置 NAT 网关
简介
许多 Oracle Cloud Infrastructure 客户在虚拟云网络 (virtual cloud network, VCN) 中具有计算实例,出于隐私、安全或运营方面的考虑,它们连接到专用子网。为了允许这些资源访问公共互联网以进行软件更新、CRL 检查等,客户的唯一选项是在公共子网中创建 NAT 实例,并通过使用专用 IP 地址作为专用子网内的路由目标来路由该实例的流量。尽管许多人成功地使用了这种办法,但这种办法并不容易扩展,而且提供了许多行政和业务方面的挑战。
NAT 网关可应对这些挑战,并向 Oracle Cloud Infrastructure 客户提供简单直观的工具来满足其网络安全需求。NAT 网关提供以下功能:
-
高度可扩展且完全托管:专用子网上的实例可以启动大量公共 Internet 连接。从 Internet 启动的连接将被阻止。
-
安全:单击按钮可以禁用通过 NAT 网关的流量。
-
专用 IP 地址:每个 NAT 网关都分配有一个专用 IP 地址,可以可靠地添加到安全白名单中。
登录 OCI 控制台并创建 VCN
注意: 说明中的屏幕截图可能与实际 UI 不同。
-
使用租户名称, 用户名和密码登录到 Oracle Cloud Infrastructure 控制台。
-
从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 ,然后选择适当的区间。单击 启动 VCN 向导 。
注意: 确保在 COMPARTMENT 列表下选择了正确的区间。
-
单击 VCN 和 Internet 连接 ,然后单击 启动 VCN 向导 。
-
填写对话框并单击 下一步 :
- VCN NAME:提供名称
- COMPARTMENT:确保已选择您的区间
- VCN CIDR BLOCK:提供 CIDR 块 (10.0.0.0/16)
- PUBLIC SUBNET CIDR BLOCK:提供 CIDR 块 (10.0.1.0/24)
- PRIVATE SUBNET CIDR BLOCK:提供 CIDR 块 (10.0.2.0/24)
-
验证所有信息,然后单击 创建 。
这将创建包含以下组件的 VCN:VCN、公共子网、专用子网、Internet 网关 (IG)、NAT 网关 (NAT)、服务网关 (SG)。
-
单击 查看虚拟云网络 以显示您的 VCN 详细信息。
创建并连接到计算实例
-
通过在要存储密钥的目录打开终端窗口并发出以下 OpenSSH 命令来创建可用于登录到 VM 的 SSH 加密密钥,其中 <my-key> 是您需要的密钥名称:
ssh-keygen -t rsa -N "" -b 2048 -C <my-key> -f <my-key>该命令生成用于生成密钥的随机文本艺术。完成后,应具有两个文件:
- 私有密钥文件: <my-key>
- 公共密钥文件: <my-key>.pub
可以使用这些文件连接到计算实例。
-
转到 OCI 控制台。从 OCI 服务菜单的 计算 下,单击 实例 。
-
单击 创建实例 并填写对话框:
- 为实例命名 : 输入名称
- 选择操作系统或映像源 :对于该映像,建议使用最新的 Oracle Linux。
- 可用性域 :选择可用性域
- 实例类型 :选择虚拟机
- 实例配置 :选择 VM 配置
正在配置网络 :
-
虚拟云网络区间 :选择您的区间
-
虚拟云网络 :选择 VCN
-
子网区间: 选择您的区间
-
子网: 在 公共子网下选择公共子网
-
使用网络安全组控制流量: 保持未选中状态
-
分配公共 IP 地址: 选中此选项
然后输入以下内容:
- 引导卷: 保留默认值
- 添加 SSH 密钥: 选择 粘贴 SSH 密钥 并粘贴之前保存的公共密钥
-
单击创建。
注意: 如果显示“服务限制”错误,请选择与 VM.Standard2.1、VM.Standard.E2.1、VM.Standard1.1、VM.Standard.B1.1 不同的配置,或选择其他 AD。
-
等待实例处于 Running 状态。在云 shell 终端中,输入命令:
cd .ssh -
输入 ls 并验证您的 SSH 密钥文件是否存在。
-
输入命令:
bashssh -i id_rsa opc@PUBLIC_IP_OF_COMPUTE提示: 如果看到“权限被拒绝错误”,请确保您在 SSH 命令中使用
-i。必须键入命令;不要复制和粘贴 SSH 命令。 -
提示输入安全消息时输入
yes。 -
验证在提示上显示 opc@
<COMPUTE_INSTANCE_NAME>。
配置 NAT 网关
现在,我们将在 VCN 中创建路由表。
-
切换到 OCI 控制台。从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 。找到 VCN 并单击 VCN 名称以显示 VCN 详细信息。
-
单击 NAT 网关 。
-
单击 路由表 ,然后单击 创建路由表 。填写对话框:
- 在区间中创建: 此字段默认为您的当前区间;请确保选择了正确的区间
- 名称: 输入一个名称
单击 +Additional 路由规则
- 目标类型: 选择 NAT 网关
- 目标 CIDR 块: 输入 0.0.0.0/0
- 区间: 确保选择了正确的区间
- 目标 NAT 网关: 为 VCN 选择 NAT 网关
-
单击 创建路由表 。
-
单击您的 VCN 名称以显示 VCN 详细信息。单击 创建子网 。填写对话框:
- 名称: 输入一个名称
- 子网类型: 区域
- CIDR 块: 提供 CIDR(例如 10.0.5.0/24)
- 路由表: 选择之前创建的路由表
注意: 请勿选择 默认路由表 。这样做是为了使此子网中的计算实例的所有路由都通过 NAT 网关进行。
- 子网访问: 专用子网
- DHCP 选项: 选择默认值
- 安全列表: 选择您之前创建的安全列表
-
将其他所有选项保留为默认值,然后单击 创建子网 。
-
转到云 shell 终端并生成 SSH 密钥对。输入命令:
ssh-keygen -
再次要求
Enter File in which to save the key、Created Directory、Enter passphrase和Enter Passphrase时,按 Enter 键。 -
输入命令:
cd ~/.ssh然后
ls您应具有私钥和公钥:/home/opc/.ssh/<sshkeyname>(私钥)和 /home/opc/.ssh/<sshkeyname>.pub(公钥)。
-
输入命令:
cat ~/.ssh/id_rsa.pub将公钥内容复制并粘贴到记事本。我们将使用此公共密钥在 VCN 的专用子网中启动计算实例。
-
切换到 OCI 控制台窗口,然后启动与之前一样的其他计算实例。 确保所选子网是之前创建的专用子网 。
-
实例运行后,在实例详细信息页面中记下实例的专用 IP 地址(单击实例名称)。
-
通过 SSH 会话切换到公共计算实例(之前创建的第一个计算实例),然后切换到 git-bash 窗口。输入命令:
cd ~/.ssh则
bashssh –i id_rsa opc@Private_IP_OF_COMPUTE_INSTANCE注意: 用户名为 opc。
提示: 如果看到“权限被拒绝错误”,请确保您在 SSH 命令中使用
-i。注意: 使用前面提到的第二个计算实例的专用 IP。
-
提示输入安全消息时输入
Yes。 -
在专用计算实例中,输入命令:
ping 8.8.8.8并确认有互联网连接。
专用子网中的计算实例具有 Internet 访问。这是可能的,因为流量正在通过我们创建并连接到 VCN 的 NAT 网关进行路由。接下来,我们只需单击一下即可使用 NAT 网关上的流量切换功能来阻止 / 允许流量。
-
切换到 OCI 控制台窗口。在 VCN 的详细信息页面中,单击 NAT 网关 。
-
将鼠标悬停在 "Action"(操作)图标上,然后选择 Block Traffic(块流量)。
-
切换回 SSH 会话到专用计算实例,然后输入命令
ping 8.8.8.8(如果尚未运行)。确认没有响应。 -
切换回 OCI 控制台窗口,然后按照上面的步骤,这次选择 允许流量 。切换回 SSH 会话并验证是否已收到
ping响应。
删除资源
-
切换到 OCI 控制台窗口。
-
如果未显示计算实例,请从 OCI 服务菜单中单击 计算 下的 实例 。
-
找到计算实例,单击“Action(操作)”图标,然后单击 Terminate(终止)。
-
确保选中 Permanently delete the attach Boot Volume,然后单击 Terminate Instance(终止实例)。等待实例完全终止。
-
重复以上步骤可删除第二个计算实例。
-
从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 。此时将显示所有 VCN 的列表。
-
找到 VCN,单击“操作”图标,然后单击 终止 。在确认窗口中单击 全部终止 。删除 VCN 后单击 关闭 。
致谢
- Authors-Flavio Pereira, Larry Beausoleil
- 贡献者 — Kamryn Vinson(QA 实习生),Yaisah Granillo(云解决方案工程师)
更多学习资源
在 docs.oracle.com/learn 上浏览其他实验室,或者访问 Oracle Learning YouTube 频道 上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心 。
Configure NAT gateway for private compute instances
F49952-01
November 2021
Copyright © 2021, Oracle and/or its affiliates.