![对于多服务器网络托管设置,最佳的 IP/子网设置策略是什么?](https://linux22.com/image/568599/%E5%AF%B9%E4%BA%8E%E5%A4%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BD%91%E7%BB%9C%E6%89%98%E7%AE%A1%E8%AE%BE%E7%BD%AE%EF%BC%8C%E6%9C%80%E4%BD%B3%E7%9A%84%20IP%2F%E5%AD%90%E7%BD%91%E8%AE%BE%E7%BD%AE%E7%AD%96%E7%95%A5%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
抱歉,标题混乱,但请让我尝试更好地解释一下:
我们运行一个托管解决方案,到目前为止,它已经支持共享托管和 VPS。很简单。
我们现在有更大的客户,需要更复杂的设置。我们或多或少已经解决了服务器设置本身的问题,其中包括:
- 1-2 个前端代理/负载平衡服务器
- 2 个以上应用服务器
- 1 个数据库服务器
- 1 个可选的 Memcached 服务器
我们要处理的问题是就灵活且易于维护的 IP 设置达成一致。到目前为止,我们已经将内部服务器划分到其自己的子网中,我们还考虑过为每个服务器分配一个官方 IP,等等。
这里最好的方法是什么?有什么最佳实践吗?使用一在前端服务器上设置官方 IP,然后为后面的服务器设置一个内部子网?
然后,我们可以对任何最终需要访问的源(例如,通过 3306 直接访问 DB 服务器)进行 NAT。
答案1
这确实取决于您的目标。您所在地区的注册机构是否会在不考虑实际需求的情况下发放所需数量的 IP 地址?您是否需要所有服务器都可以在没有 NAT 或某种隧道的情况下进行访问,以便进行诊断/故障排除?您是否在使用 IPv6,其中地址节省问题无论如何都无关紧要?
至少成熟鼓励申请人不要将公共 IPv4 地址用于不需要公共访问并使用虚拟主机和负载平衡器以节省 IPv4 地址空间。
如果您出于安全考虑而将内部服务器划分为自己的 VLAN 和 IP 子网,那么在某些情况下,这样做是合理的。您需要定义一个威胁模型看看分段是否会带来安全增益,从而证明增加额外网络的管理开销是合理的。但这又与是否使用公共 IPv4 地址的问题无关 - 无论哪种方式,您都可以设置 IP 过滤器来满足您的需求。
答案2
因此,您需要一个高而薄的堆栈,顶部和底部有 2 或 3 个单点故障。我可能认为这不是提供服务的最可靠方式。
虽然架构在某种程度上会受到实现它的技术的限制,但您并未提供相关细节。
将内部服务器划分到自己的子网中,
什么鬼?VLAN 与子网不一样。虽然 VLAN 的切换速度比 IP 路由稍快,但与在每一层进行的处理相比,IME 的差异微不足道 - 而且使用单独的子网在安全性方面有额外的好处。事实上,如果您在具有单独 NIC 的节点上实现路由,那么与 VLAN 相比,速度不会减慢。
在前端服务器上使用一个官方 IP
管理负载平衡的另一个单点故障和复杂性。至少使用 2 个循环 DNS 或多路径上游。
直接超过 3306
啊,终于有一些有用的信息了 - 这是 MySQL。然后,运行复制就变得轻而易举了,使用指定为 memcache 服务器的机器作为另一个节点(作为故障转移中的从属或主-主复制)。此外,在此层的两个节点上运行 memcache。
最好的方法是回去并重新开始。