KVM 虚拟机网络 - 仅限 Guest-guest/VM-VM 网络(无主机/虚拟机管理程序访问,无出站连接)

KVM 虚拟机网络 - 仅限 Guest-guest/VM-VM 网络(无主机/虚拟机管理程序访问,无出站连接)

我知道维尔什命令我可以创建几种类型的网络(例如“NAT 网络”),正如我们在这些 URL 中看到的那样……

KVM网络管理
KVM 默认基于 NAT 的网络(第 33 页)

问题:如何创建网络(lan_n) 其中只有客户机/虚拟机具有连接,没有出站连接,也没有主机/虚拟机管理程序连接?

笔记:与其他资源的连接将由普富思可以访问另一个网络的防火墙服务器(wan_n) 具有出站连接和其他资源。

Network layout...

                [N]wan_n
                [I]wan_n
            [V]pfsense_vm
                [I]lan_n
                [N]lan_n
   .............................
   ↕             ↕             ↕
  [V]some_vm_0  [V]some_vm_1  [V]some_vm_4
                [V]some_vm_2  [V]some_vm_5
                [V]some_vm_3

 _ [N] - Network;
 _ [I] - Network Interface;
 _ [V] - Virtual Machine.

笔记:主机/虚拟机管理程序操作系统是CentOS 7

谢谢!=D

答案1

在 KVM 上创建一个没有网关地址的新网络配置(“非常私密”或“非常孤立”)

这种类型的网络可用于非常私密或者非常孤立网络,因为无法通过此网络与虚拟化主机通信。但是,此虚拟网络接口可用于虚拟客户系统之间的通信。这适用于 IPv4 和 IPv6。但是,新的ipv6='是'必须添加才能实现来宾到来宾的 IPv6 通信。

  • 检查 KVM 和 OS 中的网络状态

检查 KVM 使用的网络...

brctl show

检查 KVM 虚拟网络...

virsh net-list

检查操作系统中的网络...

ip a
  • 创建没有网关地址的新网络配置

模型

read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
<network>
  <name>[MY_NETWORK_NAME]</name>
  <uuid>[MY_NETWORK_UUID]</uuid>
  <bridge name='virbr[MY_NETWORK_NUMBER]' stp='on' delay='0'/>
  <mac address='52:54:00:[MY_NETWORK_MAC_FINAL]'/>
</network>

END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > '/usr/share/libvirt/networks/[MY_NETWORK_NAME].xml'

  1. “[MY_NETWORK_NAME]” - 小写名称,不含空格和特殊字符;
  2. “[MY_NETWORK_UUID]”(“uuid”是可选的)- 您可以在 URL 上生成一个新的https://www.uuidgenerator.net/version4
  3. “[MY_NETWORK_NUMBER]”——我们使用“virbr”前缀来遵循现有的命名“约定”;
  4. “[MY_NETWORK_MAC_FINAL]”(“mac”是可选的)- 前缀“52:54:00:”始终相同,否则将发生错误“无效的多播桥 mac 地址”。您可以在 URL 处生成一个新的https://miniwebtool.com/mac-address-generator/

例子

read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
<network>
  <name>okd_very_private</name>
  <uuid>cbc4be8a-1fc5-4e1a-8065-e12dab7d4175</uuid>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:CB:8A:F0'/>
</network>

END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > '/usr/share/libvirt/networks/okd_very_private.xml'

将新的网络定义 XML 文件添加到 libvirt...

模型

virsh net-define "/usr/share/libvirt/networks/[MY_NETWORK_NAME].xml"

例子

virsh net-define "/usr/share/libvirt/networks/okd_very_private.xml"

笔记:“net-define” 是“net-create”的替代方法。当您想要一个在重启和关闭后仍能持续的持久虚拟网络,而不是使用“net-create”创建的临时虚拟网络时,请使用此选项。

启动新的网络...

模型

virsh net-start [MY_NETWORK_NAME]

例子

virsh net-start okd_very_private

要将新网络设置为每次重新启动 KVM 主机时自动启动...

模型

virsh net-autostart [MY_NETWORK_NAME]

例子

virsh net-autostart okd_very_private

提示:要查看 libvirt 中定义的特定网络的配置详细信息,请使用该命令...

模型

virsh net-dumpxml [MY_NETWORK_NAME]

例子

virsh net-dumpxml okd_very_private

[参考文献:https://libvirt.org/formatnetwork.html#examplesNoGateway]

特别感谢@berndbausch!=D

相关内容