ubuntu - 隔离网络和客户的最佳方法是什么? (kvm/qemu/libvirt)

标签 ubuntu qemu kvm libvirt

我想知道如何在同一台服务器上“保护”KVM guest /网络免受其他网络中其他 guest 的影响。

今天,我有一台运行 KVM/qemu/libvirt 的专用服务器,并且对于每个客户,我都有一个网络子网。例如:
- 客户_A - 192.168.10.0/29
- 客户_B - 192.168.11.0/29

但是 Customer_A 可以 ping 一台机器进入 Customer_B 的网络,反之亦然。

为了尝试修复它,我在专用服务器中创建了一个防火墙并阻止从一个网络到另一个网络的转发,但我的问题是,我可以使用例如 vlan 来避免一个网络与另一个网络通信吗?隔离网络和客户的最佳方法是什么?

谢谢你。

最佳答案

Libvirt 有一个 'nwfilter' object它允许您定义一般防火墙规则并将它们与提供给 guest 的单个 NIC 相关联。 Libvirt 在启动/停止客户机或热插拔客户机时根据需要将这些转换为对 ebtables/iptables 的调用。因此,使用它可以让您更直接地在 libvirt 的上下文中管理防火墙规则。这可能是控制 guest 之间访问的侵入性最小的方式,因为它不需要使用像 vlan 之类的东西来分隔 guest 。 Libvirt 提供了一个“干净流量”的 nwfilter 定义示例,可以进行 MAC 和 IP 地址欺骗保护。

要记住的一件事是,一些客户可能希望他们的 VM 可供全世界访问,无论连接的人是来自 Internet 上其他地方的用户,还是同一主机中另一个 VM 上的用户。例如,如果客户 A 正在托管一个面向公众的网站,则几乎没有理由阻止客户 B 连接到它。在这方面,使用防火墙规则可能比使用 vlan 完全分离流量更灵活。

关于ubuntu - 隔离网络和客户的最佳方法是什么? (kvm/qemu/libvirt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43929557/

相关文章:

ubuntu - 如何向网络管理器管理的 Ubuntu 添加持久静态路由?

qemu - 如何使用 virsh 创建 tap 设备?

virtualization - qemu KVM内核模块没有这样的文件或目录

linux - KVM 运行 Windows XP 的虚拟机 : How to get files from guest to host?

linux - 在嵌套的 QEMU guest 中直接分配 pci 设备

ubuntu - Python:简单的 for 循环语法错误

git - Ubuntu + Git + Netbeans 7 - 我们需要在操作系统上安装 Git 吗?

node.js - 将 Docker 与具有 node-gyp 依赖项的 nodejs 一起使用

yocto - 无法像文档中描述的那样使用 runqemu 运行 Yocto 图像

arm - 使用 KVM 加速在 ARM 上运行 qemu