跳到主要内容
博客联网用Linode的VLAN跨越多个区域

用Linode VLAN跨越多区域

用Linode VLAN跨越多区域

VLAN和VPC是网络隔离的方法,我们用它来保护我们在公共云中的基础设施。它们通过大幅减少我们的网络攻击面来提高安全性,同时让我们有能力在有和没有公共互联网接入的情况下对应用层进行分割。今天,让我们想得更大一些,用Linode跨越我们的私人网络的多个区域。

当我们谈论 "区域 "时,我们指的是同一云提供商内的不同地理区域。"区域 "通常是这些地理区域内的额外托管地点。例如,你可能会看到一个位于纽约附近的东北地区和一个位于亚特兰大的东南地区,每个地区都包含多个区域。

除了通过实际接近更多的用户来提供更低的延迟外,运行一个多区域的应用程序使我们在可靠性和容错性方面有很大的提高。任何可能影响你在一个地方的工作负载的事情,包括硬件故障或本地网络中断,都有可能通过有另一个地方来重新路由你的用户而得到缓解。

部署多区域的VLAN

为了在部署在多个地区的VLAN网段之间进行路由,我们可以使用虚拟专用网络(VPN)将VLAN网段绑在一起。 

首先,我们把部署在一个区域的任何相关的VLAN绑在一起,使用Linode作为一个共同的路由器。每个VLAN段都是它自己的孤立的第二层域,并在其第三层子网内运行。各个VLAN网段之间的所有流量将流经路由器,我们可以在路由器中放置防火墙规则,以管理允许在多个网段之间穿越的流量。

然后,我们可以配置这个路由器实例,使用公共互联网和VPN软件(如WireGuard)或像IPSec这样的协议,在其他网段之间桥接流量。

上面的例子显示了一个两个区域的部署。每个区域负责通过一个路由器实例管理两个孤立的VLAN之间的连接。然后每个路由器可以使用我们配置的具有多个接口的Linode路由器实例在本地桥接多个区域。路由器通过使用公共互联网上的WireGuard隧道来跨越各区域。

配置NAT出口点

现在流量可以在任何VLAN之间流动,不受区域限制。此外,如果我们在没有本地互联网连接的情况下进行部署,路由器实例可以作为网络地址转换(NAT)的出口点,为其本地VLAN提供互联网连接。在这种配置中,本地路由器实例将被指定为默认网关(即通常配置为10.0.0.1的10.0.0/24网络)。我们还可以使用路由器实例作为安全套接字外壳(SSH)的管理堡垒。

实现这种NAT配置的常见方法是使用防火墙规则来标记WireGuard流量,并对检测到的任何没有这种标记的流量进行IP伪装。 

例如,路由器将被配置为使用一个iptables规则:

iptables -t nat -A POSTROUTING -o eth0 -m mark !--mark 42 --j MASQUERADE

我们可以配置WireGuard在其配置中使用一个FirewallMark(即42)。这种配置可以确保WireGuard流量不被NAT化,而所有VLAN流量都被NAT化。

然后,云防火墙规则将被配置为允许路由节点之间的WireGuard通信(通常为udp/51820)。

然后,我们可以用防火墙规则配置路由器实例,以根据需要控制或记录本地和全球网段的流量。

考虑因素

这个例子中的部署允许在全球范围内跨越多个区域共享数据,并授权路由器实例控制各个VLAN网段之间的流量。当把流量从多个VLAN网段输送到一个聚合点时,了解这样做时的性能和带宽考虑至关重要。性能将由分配给路由器的计算资源所施加的上传带宽限制决定。

仔细考虑VPN协议以确保其满足你的部署要求也很关键。你选择的技术将对点对点带宽和通过公共互联网发送的流量的安全性产生重大影响。例如,WireGuard使用加密技术来确保流量不会被拦截,与strongSwan这样的IPsec实现相比,它的可信计算基础较小,以限制漏洞和暴露。

多云

我们用来跨越多个地区的同类技术可以在不同的云供应商之间实现。例如,你可以在另一个云服务提供商的网络边界内放置一个路由器实例,并将其绑定到其本地、云提供商特定的VPC配置。你可以在路由器实例之间使用WireGuard隧道来桥接到云提供商的网络。该实施方案对于旨在专门在私有网络中保持隔离的服务非常有效。

下一步是什么

最终,在设计我们的私有网络时,有很多不同的工具可以使用,其好处可以大大超过增加的复杂性。如果你的应用程序与你的用户群一起增长,设计你的环境以减少那些人数更多的人的延迟可以对用户体验产生重大影响。额外的容错将提高可靠性,并保持你的软件的可用性和可访问性。


注释

留下回复

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