关于如何在具有虚拟服务器的服务器主机上设置网络,是否存在标准?
过去我使用过 virtualmin 并将 nic 设置为具有多个别名(例如 eth0:1 eth0:2),并将任何 ip 链接到每个别名,但一般来说,我们通过单个 IP 路由所有网站。
现在我们切换到 KVM 设置,其中主机虚拟化每个子服务器上的物理硬件,而不是虚拟化整个新机器/服务器。虽然每个子服务器内都有一个 virtualmin 安装。我不太熟悉这种分层,我想知道网络的最佳实践是什么。
我正在独自考虑这三行,但希望得到关于如何设置这三行的“事实上的”标准的建议。
我想到的第一个方法是,每个虚拟化服务器只需向主机托管的路由器请求各自的 IP。例如:
我认为优点是每个服务器都有自己的 IP,只要跟踪它,就不会出现任何问题。(我们将从上到下管理这些服务器,它们都是供我们使用的,所以我不担心,因为没有第三方可以更改网络。)
缺点是我可能需要维护 4 个或更多的防火墙/服务器,但无论如何,这都是正常操作的一部分,无法避免,就是这样。
我的第二个想法是有一个类似于我在笔记本电脑上的设置,其中我虚拟化一个路由器(PFSense),并且笔记本电脑中的所有虚拟计算机(包括笔记本电脑本身)都连接到路由器。
我认为这里的优点是集中式防火墙
我在这里看到的缺点是防火墙设置很容易搞砸。虚拟服务器已经有 csf+lsd+iptables 如果物理主机没有备份网络来连接到 nic,并且由于某种原因 PFSense 无法启动,那么盒子就会失去连接,因此服务器会关闭,需要物理前往它所在的服务器场。
最后,虽然我目前还不太清楚如何做到这一点,但我猜这类似于提供 eth0:1 和 eth0:2,我可以让主机获取来自共置的所有可用 ip,然后让主机为每台服务器分配连接到其各自 IP 的自己的线路。
这就是我想到的,但是我太缺乏经验/对自己缺乏信心,无法在没有得到真正做过这件事的人的反馈的情况下简单地执行这些计划。
答案1
我建议您连接物理主机上的第二个 NIC。
其中一个用于主机本身的“管理”目的,另一个用于“虚拟机流量”。
它们可能会上传到同一个地方,但即使您的虚拟机出现问题,这至少可以让您访问主机。
配置完成后,您可以轻松执行选项 1、2 或 3,因为虚拟机有自己的 NIC,您可以做任何您认为最好的事情。
虽然我的大部分虚拟化经验都是使用 VMware,但这是我们设置主机的方式,而且它运行非常有效。
更有趣的是,在 VMware 世界中,他们已经将 IP 堆栈与硬件分离,这意味着在“VM 流量”NIC 的情况下,它没有 IP,并且充当交换机上行链路。我怀疑这在这里也可能是可能的,但我的 KVM/Linux-fu 不够强大,无法为您提供任何实际的见解,让您了解如何做到这一点。但我们的好朋友 Google 可能会做到。
答案2
我熟悉 vmware 环境,其中每个虚拟服务器都将分配虚拟 NIC 并安装 vmware 工具。虚拟服务器可以分配静态 IP 或自动 IP,只要同一网络中有 DHCP 服务器即可。抱歉,我无法具体回答您的问题,但我想分享一下我使用 vmware 的经验。