我在想,为什么不把我们所有的二十几台服务器放入唯一的 VLAN,这样我就可以从路由器有效地管理所有服务器间防火墙规则?(我会让操作系统防火墙作为备份运行。)
在我有限的阅读量中,我并没有将此视为建议,但我觉得这非常有意义。99% 的服务器都是孤岛——您可以从互联网访问它们,它们会更新本地数据,仅此而已。(不过,它们确实需要从我们的管理局域网进行入站 ssh 访问,以及从互联网进行出站以获取更新。)关键是,服务器间连接是迄今为止的例外。没有理由将服务器放在共享局域网中以简化不存在的通信。也没有理由让每台服务器暴露在局域网上第一个被感染的机器下。
我遗漏了什么?这种配置有什么缺点?
附注:我是首先假设 VLAN 可用且易于实现。如果您有一个不错的路由器,并且所有机器都在现代虚拟机管理程序中运行,那么这似乎是一个合理的假设。
答案1
理论上可以,但你会通过路由器发送所有流量,这使其成为流量瓶颈。此外,路由器上有许多接口(每个 VLAN 一个),许多访问控制列表或需要限制/允许流量的单独位置,这会产生大量开销,而且通常可能会造成很大的混乱……
通常,VLAN 用于包含类似安全级别的设备,或容纳许多具有类似角色的设备(如电话、打印机或 wifi 访问),或隔离部门或其他逻辑用户组。这也使他们能够相互通信而不受太多限制,这通常是一个很好的权衡,但您可以使用第 3 层交换机、基于主机的防火墙或专用防火墙等其他方法进一步限制这一点。
当您使用路由器强制客户端流量在 VLAN 间移动时,您会将交换机的所有 VLAN 间流量向上发送到路由器,从而增加那里的带宽使用率。这可能是或可能不是理想的,但通常交换机的吞吐量会高于路由器,因此通常不是一个好的权衡。
话虽如此,考虑到您的环境描述,您可能最有可能从网络范围的防火墙与通过配置管理系统 (puppet/chef/ansible 等) 配置的更简单的基于主机的防火墙相结合中获得最大收益。这为您提供了一种简单的方法来扩展防火墙配置,而无需为每个服务器设置复杂的 VLAN。
编辑:哦,按照你建议的方式做也会将服务器的配置(即:它们的安全性)与服务器本身分开,这可能会导致不必要的额外复杂性。