跳到主要内容
博客网络如何在 VPC 中使用 Linode 构建 NAT 网关

如何使用 Linode 在 VPC 中构建 NAT 网关

文本:如何在 VPC 中使用 Linode 构建 NAT 网关

我们的一位客户需要为其网络应用程序和数据库建立一个安全的云基础设施,以处理敏感的客户数据。我们在 VPC 中实施了一个 NAT 网关,允许私有子网中的实例访问互联网进行更新和 API 调用,同时阻止入站流量。该解决方案为私有实例提供互联网访问,而不会将它们直接暴露在公共互联网上,从而增强了安全性。我们是这样做的

该图说明了典型的 VPC 设置,分为三个主要部分:VPC、公用子网和专用子网。首先是绿色外框,即 VPC,它将其中的资源与其他网络隔离开来。用户使用通过 1:1 NAT 分配的静态 IP 地址,通过公共互联网访问网络服务器。网络服务器处理请求,并在必要时与数据库服务器进行通信。网络服务器通过路由器服务器与数据库服务器通信。路由器服务器使用自定义 NAT 在公有子网和私有子网之间安全路由流量。位于专用子网的数据库服务器通过VLAN 接收来自网络服务器的请求。专用子网的隔离功能确保数据库服务器不会直接暴露在互联网上,从而提高了安全性。在本教程中,我们将介绍建立此架构的步骤,以确保专用子网和公用子网之间安全高效的通信。我们将创建一个包含公有子网和私有子网的 VPC,配置 NAT 网关,并设置VLAN 。 

教程

在本教程中,我们将在 VPC 中创建一个 NAT 网关,就像我们刚才看的图一样。如果你已经有一个 Linode 账户,可以跳到步骤 1。如果你还没有 Linode 账户,请使用此链接注册并获得 100 美元的免费点数,以便完成以下步骤。从Linode 控制面板,我们将创建一个包含两个子网的 VPC:一个公共子网和一个私有子网。在私有子网中,我们将添加一个数据库;在私有子网中,我们将添加两个实例:一个作为网络服务器,另一个作为路由器服务器(自定义 NAT)。 

步骤 1:创建 VPC

在 VPC 中构建 NAT 网关的第一步是创建 VPC,从逻辑上隔离我们的资源。回想一下,这就是我们看过的图表中的绿色方框。私有子网和公有子网将位于此 VPC 中。

为此,请从 Linode 云管理器中单击左侧面板上的 VPC,然后单击创建 VPC。

步骤 2:设置公共子网

接下来,我们需要在 VPC 中添加一个公共子网,用于容纳路由器服务器(自定义 NAT)和网络服务器。回想一下,这就是我们浏览的图表中的蓝色方块。

在屏幕底部 "子网 "一栏中,为公共子网添加一个标签。该子网将承载路由器服务器(自定义 NAT)和网络服务器。

然后点击创建 VPC,配置 VPC。

您将看到创建的公共子网以及相应的子网 ID 和 IP 范围。

第 3 步:部署路由器服务器和网络服务器

接下来,我们需要在公共子网中部署 2 个 Linode 实例。其中一个 Linode 实例将作为我们的路由器服务器(自定义 NAT),负责处理 NAT 操作,以管理公共子网和专用子网之间的流量。另一台服务器将充当网络服务器,处理从互联网传入的流量,并将必要的请求转发到专用子网。首先,我们将创建路由器服务器。在云管理器中,点击左侧面板上的 Linodes,然后点击创建 Linode。选择与创建 VPC 时相同的区域,然后选择专用 8 GB CPU 选项。

然后,向下滚动并分配在步骤 1 中创建的 VPC,然后从下拉菜单中选择公共子网。

单击 "创建 Linode "完成此实例的配置。

现在,让我们使用与上述相同的流程创建网络服务器。单击 "创建 Linode",选择为 VPC 所选的区域,然后将 VPC 分配给此实例。现在,你会看到网络服务器和路由器服务器都列在公共子网下的 VPC 中。 

步骤 4:创建专用子网

接下来,我们需要在 VPC 中创建专用子网来托管数据库服务器,该服务器将无法直接访问公共互联网。现在,我们正在构建紫色盒子。

在 VPC 中点击 "创建子网",然后输入标签并分配专用 IP 范围。这个子网可以让你的数据库安全地远离任何外部威胁。

步骤 5:部署数据库服务器 

现在,让我们在专用子网中部署一个 Linode 实例,作为我们的数据库服务器。该实例只能通过安全的VLAN 从公共子网访问。在 Linode 云管理器的左侧面板中,单击 Linodes,然后单击 Create Linode。输入 database-server 作为标签,选择 vpc-nat-gateway-demo 作为 VPC,选择 private-subnet 作为子网。 

该服务器部署完成后,您应该会看到以下内容:

接下来,我们需要编辑配置并选中为该 Linode 分配公共 IP 地址的复选框。这样做的原因是,我们需要从该服务器下载网络工具。 

步骤 6:配置VLAN

接下来,我们需要建立一个VLAN ,以便在公有子网和私有子网之间进行安全通信。数据库服务器和路由器服务器可以通过VLAN 互相通信。

这可确保网络服务器和数据库服务器之间的流量保持私密和安全。在路由器服务器上单击 "配置 "选项卡,然后单击 "编辑"。添加VLAN ,并输入地址(使用占位符文本作为指导)。

现在,让我们进入路由器服务器,将VLAN 添加到配置中。

第 7 步:将流量从数据库服务器转发到路由器服务器

回想一下,我们分配了一个公共 IP,这样我们就可以访问互联网,下载一些网络工具。

现在,让我们下载 ipconfig 使用以下命令:

$ modprobe iptable_nat

$ echo 1 > /proc/sys/net/ipv4/ip_forward

$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

$ iptables -A FORWARD -i eth1 -j ACCEPT  

接下来,我们需要回到数据库服务器,删除公共 IP 复选框,这样它就无法访问互联网了。

数据库服务器现在被安全地隔离在专用子网中。它现在可以与路由器服务器通信了。让我们 ping 一下路由器服务器的 VPC。

接下来,我们需要让数据库服务器通过VLAN 路由流量。为此,请在数据库服务器上运行以下命令:

route add default gw {VLAN-IP-FOR-ROUTER} 

然后,运行路线。

您将看到这里列出的VLAN 。

现在,我们需要配置路由器服务器,将流量从 eth1 (VLAN) 转发到互联网。在这一步中,我们将在服务器上启用 NAT 并启用 IP 转发。

在路由器服务器上运行这些命令:

$ modprobe iptable_nat

$ echo 1 > /proc/sys/net/ipv4/ip_forward

$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

$ iptables -A FORWARD -i eth1 -j ACCEPT 

我们已在 VPC 中成功设置了一个 NAT 网关。

该架构的优势

使用这种架构有几个主要优势。首先,安全性增强。VPC 允许在不同的子网(公共和私有)内隔离资源。NAT 网关可确保私有子网中的实例能够访问互联网,而不会直接受到公共互联网的威胁。通过在 VPC 中使用 NAT 网关,只允许从私有实例向互联网发送出站流量,防止未经请求的入站连接带来安全风险。我们将数据库放在私有子网内,这里的敏感项目被屏蔽,不会直接暴露在互联网上,从而降低了数据泄露的风险。

这种架构还大大提高了可扩展性。NAT 网关设计用于管理大量流量,并能自动调整以适应不断增长的需求,无需人工干预。随着流量负载的增加,NAT 网关会调整其资源,以保持最佳性能并确保持续可用性。这种自动可扩展性对电子商务平台尤其有益,因为这些平台经常会因季节性销售、促销和不同的客户行为而出现流量波动。通过利用 NAT 网关,开发人员可以确保其应用程序即使在高需求情况下也能保持响应速度和可靠性,最终提供更好的用户体验并支持业务增长。

使用 Linode 在 VPC 中构建 NAT 网关可提供一种安全高效的方式来管理公共资源和私有资源之间的网络流量。它确保您的私有实例可以访问必要的外部资源,同时保护它们不直接暴露在互联网上,最终提高云计算基础架构的安全性、可扩展性和效率。 

按照上述步骤并使用提供的图表作为参考,您不仅可以保护客户的敏感数据,还可以优化网络性能。如果您是希望优化云安全的开发人员,并且希望在云中构建更多资源,请使用此链接申请最高 5,000 美元的 Linode 信用额度。

评论 (4)

  1. Author Photo

    how can i create a linode account
    i tried to register and got rejected

  2. Author Photo

    Hi, thank you for the write up, but I think there is an issue with this article. In step 6 when you are configuring the VLAN you label both the configuration of the Database and Router Server as the Router Sever. “From the router server, click on the Configurations tab…” and then later on in the same step you say, “Now, let’s go to the router server and add that VLAN to the configuration.” I assume first is the VLAN configuration for the database (192.0.2.2/24) and the second is for the router (192.0.2.1/24).

    • Hong Diep

      Hi Dane – We appreciate you pointing out that redundant statement! In case they were not aware, I have forwarded this feedback to the team responsible for our documentation so they may make the necessary changes.

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*