注意:

为专用计算实例配置 NAT 网关

简介

许多 Oracle Cloud Infrastructure 客户在虚拟云网络 (virtual cloud network, VCN) 中具有计算实例,出于隐私、安全或运营方面的考虑,它们连接到专用子网。为了允许这些资源访问公共互联网以进行软件更新、CRL 检查等,客户的唯一选项是在公共子网中创建 NAT 实例,并通过使用专用 IP 地址作为专用子网内的路由目标来路由该实例的流量。尽管许多人成功地使用了这种办法,但这种办法并不容易扩展,而且提供了许多行政和业务方面的挑战。

NAT 网关可应对这些挑战,并向 Oracle Cloud Infrastructure 客户提供简单直观的工具来满足其网络安全需求。NAT 网关提供以下功能:

登录 OCI 控制台并创建 VCN

注意: 说明中的屏幕截图可能与实际 UI 不同。

  1. 使用租户名称, 用户名和密码登录到 Oracle Cloud Infrastructure 控制台。

  2. 从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 ,然后选择适当的区间。单击 启动 VCN 向导

    注意: 确保在 COMPARTMENT 列表下选择了正确的区间。

  3. 单击 VCN 和 Internet 连接 ,然后单击 启动 VCN 向导

  4. 填写对话框并单击 下一步

    • 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)
  5. 验证所有信息,然后单击 创建

    这将创建包含以下组件的 VCN:VCN、公共子网、专用子网、Internet 网关 (IG)、NAT 网关 (NAT)、服务网关 (SG)。

  6. 单击 查看虚拟云网络 以显示您的 VCN 详细信息。

创建并连接到计算实例

  1. 通过在要存储密钥的目录打开终端窗口并发出以下 OpenSSH 命令来创建可用于登录到 VM 的 SSH 加密密钥,其中 <my-key> 是您需要的密钥名称:

    ssh-keygen -t rsa -N "" -b 2048 -C <my-key> -f <my-key>
    

    该命令生成用于生成密钥的随机文本艺术。完成后,应具有两个文件:

    • 私有密钥文件: <my-key>
    • 公共密钥文件: <my-key>.pub

    可以使用这些文件连接到计算实例。

  2. 转到 OCI 控制台。从 OCI 服务菜单的 计算 下,单击 实例

  3. 单击 创建实例 并填写对话框:

    • 为实例命名 : 输入名称
    • 选择操作系统或映像源 :对于该映像,建议使用最新的 Oracle Linux
    • 可用性域 :选择可用性域
    • 实例类型 :选择虚拟机
    • 实例配置 :选择 VM 配置

    正在配置网络

    • 虚拟云网络区间 :选择您的区间

    • 虚拟云网络 :选择 VCN

    • 子网区间: 选择您的区间

    • 子网: 公共子网下选择公共子网

    • 使用网络安全组控制流量: 保持未选中状态

    • 分配公共 IP 地址: 选中此选项

      分配公共 IP 地址

    然后输入以下内容:

    • 引导卷: 保留默认值
    • 添加 SSH 密钥: 选择 粘贴 SSH 密钥 并粘贴之前保存的公共密钥
  4. 单击创建

    注意: 如果显示“服务限制”错误,请选择与 VM.Standard2.1、VM.Standard.E2.1、VM.Standard1.1、VM.Standard.B1.1 不同的配置,或选择其他 AD。

  5. 等待实例处于 Running 状态。在云 shell 终端中,输入命令:

    cd .ssh
    
  6. 输入 ls 并验证您的 SSH 密钥文件是否存在。

  7. 输入命令:

    bash
    
    ssh -i id_rsa opc@PUBLIC_IP_OF_COMPUTE
    

    提示: 如果看到“权限被拒绝错误”,请确保您在 SSH 命令中使用 -i。必须键入命令;不要复制和粘贴 SSH 命令。

  8. 提示输入安全消息时输入 yes

    安全消息

  9. 验证在提示上显示 opc@<COMPUTE_INSTANCE_NAME>

配置 NAT 网关

现在,我们将在 VCN 中创建路由表。

  1. 切换到 OCI 控制台。从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 。找到 VCN 并单击 VCN 名称以显示 VCN 详细信息。

  2. 单击 NAT 网关

  3. 单击 路由表 ,然后单击 创建路由表 。填写对话框:

    • 在区间中创建: 此字段默认为您的当前区间;请确保选择了正确的区间
    • 名称: 输入一个名称

    单击 +Additional 路由规则

    • 目标类型: 选择 NAT 网关
    • 目标 CIDR 块: 输入 0.0.0.0/0
    • 区间: 确保选择了正确的区间
    • 目标 NAT 网关: 为 VCN 选择 NAT 网关
  4. 单击 创建路由表

    创建路由表

  5. 单击您的 VCN 名称以显示 VCN 详细信息。单击 创建子网 。填写对话框:

    • 名称: 输入一个名称
    • 子网类型: 区域
    • CIDR 块: 提供 CIDR(例如 10.0.5.0/24)
    • 路由表: 选择之前创建的路由表

    注意: 请勿选择 默认路由表 。这样做是为了使此子网中的计算实例的所有路由都通过 NAT 网关进行。

    • 子网访问: 专用子网
    • DHCP 选项: 选择默认值
    • 安全列表: 选择您之前创建的安全列表
  6. 将其他所有选项保留为默认值,然后单击 创建子网

    创建子网

  7. 转到云 shell 终端并生成 SSH 密钥对。输入命令:

    ssh-keygen
    
  8. 再次要求 Enter File in which to save the keyCreated DirectoryEnter passphraseEnter Passphrase 时,按 Enter 键。

  9. 输入命令:

    cd ~/.ssh
    

    然后

    ls
    

    您应具有私钥和公钥:/home/opc/.ssh/<sshkeyname>(私钥)和 /home/opc/.ssh/<sshkeyname>.pub(公钥)。

  10. 输入命令:

    cat ~/.ssh/id_rsa.pub
    

    将公钥内容复制并粘贴到记事本。我们将使用此公共密钥在 VCN 的专用子网中启动计算实例。

  11. 切换到 OCI 控制台窗口,然后启动与之前一样的其他计算实例。 确保所选子网是之前创建的专用子网

  12. 实例运行后,在实例详细信息页面中记下实例的专用 IP 地址(单击实例名称)。

  13. 通过 SSH 会话切换到公共计算实例(之前创建的第一个计算实例),然后切换到 git-bash 窗口。输入命令:

    cd ~/.ssh
    

    bash
    
    ssh –i id_rsa opc@Private_IP_OF_COMPUTE_INSTANCE
    

    注意: 用户名为 opc。

    提示: 如果看到“权限被拒绝错误”,请确保您在 SSH 命令中使用 -i

    注意: 使用前面提到的第二个计算实例的专用 IP。

  14. 提示输入安全消息时输入 Yes

  15. 在专用计算实例中,输入命令:

    ping 8.8.8.8
    

    并确认有互联网连接。

    专用子网中的计算实例具有 Internet 访问。这是可能的,因为流量正在通过我们创建并连接到 VCN 的 NAT 网关进行路由。接下来,我们只需单击一下即可使用 NAT 网关上的流量切换功能来阻止 / 允许流量。

  16. 切换到 OCI 控制台窗口。在 VCN 的详细信息页面中,单击 NAT 网关

  17. 将鼠标悬停在 "Action"(操作)图标上,然后选择 Block Traffic(块流量)

  18. 切换回 SSH 会话到专用计算实例,然后输入命令 ping 8.8.8.8(如果尚未运行)。确认没有响应。

    Nat 网关

  19. 切换回 OCI 控制台窗口,然后按照上面的步骤,这次选择 允许流量 。切换回 SSH 会话并验证是否已收到 ping 响应。

删除资源

  1. 切换到 OCI 控制台窗口。

  2. 如果未显示计算实例,请从 OCI 服务菜单中单击 计算 下的 实例

  3. 找到计算实例,单击“Action(操作)”图标,然后单击 Terminate(终止)

    终止选项

  4. 确保选中 Permanently delete the attach Boot Volume,然后单击 Terminate Instance(终止实例)。等待实例完全终止。

    “终止实例”按钮

  5. 重复以上步骤可删除第二个计算实例。

  6. 从 OCI 服务菜单中,单击 网络 下的 虚拟云网络 。此时将显示所有 VCN 的列表。

  7. 找到 VCN,单击“操作”图标,然后单击 终止 。在确认窗口中单击 全部终止 。删除 VCN 后单击 关闭

    “终止”按钮

致谢

更多学习资源

docs.oracle.com/learn 上浏览其他实验室,或者访问 Oracle Learning YouTube 频道 上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心