bet*_*eta 38 dhcp libvirt kvm-virtualization virsh
我想要做的是从主机系统设置来宾的网络配置(IP 地址、子网、网关、广播地址)。使用的网络设置处于bridge模式。如何从主机配置网络而不是将客户端本身配置为静态网络配置?
如果我执行:
virsh edit vm1
Run Code Online (Sandbox Code Playgroud)
还有一个<network>块,我试图从那里配置网络接口,但不幸的是来宾 VM 似乎没有使用它,因此对网络离线(因为它仅使用自动网络配置)......来宾VM 都基于 Linux 和 Windows。任何帮助将不胜感激。
Nil*_*ann 65
如果您不想在来宾内部进行任何配置,那么唯一的选择是分配静态 IP 地址的 DHCP 服务器。如果你使用bridge模式,那可能是一些外部 DHCP 服务器。查阅其手册以了解如何提供静态租约。
但至少在转发模式nat或route,您可以使用 libvirt 的内置dnsmasqd(较新版本的的libvirtd支持的dnsmasq的“DHCP-hosts文件”选项)。方法如下:
首先,找出要分配静态 IP 地址的 VM 的 MAC 地址:
virsh dumpxml $VM_NAME | grep 'mac address'
Run Code Online (Sandbox Code Playgroud)
然后编辑网络
virsh net-list
virsh net-edit $NETWORK_NAME # Probably "default"
Run Code Online (Sandbox Code Playgroud)
找到该<dhcp>部分,限制动态范围并为您的 VM 添加主机条目
<dhcp>
<range start='192.168.122.100' end='192.168.122.254'/>
<host mac='52:54:00:6c:3c:01' name='vm1' ip='192.168.122.11'/>
<host mac='52:54:00:6c:3c:02' name='vm2' ip='192.168.122.12'/>
<host mac='52:54:00:6c:3c:03' name='vm3' ip='192.168.122.12'/>
</dhcp>
Run Code Online (Sandbox Code Playgroud)
然后,重新启动您的 VM(或重新启动其 DHCP 客户端,例如ifdown eth0; ifup eth0)
更新:我看到有报道称在“virsh net-edit”之后更改可能不会生效。在这种情况下,请在编辑后尝试此操作:
virsh net-destroy $NETWORK_NAME
virsh net-start $NETWORK_NAME
Run Code Online (Sandbox Code Playgroud)
...并重新启动 VM 的 DHCP 客户端。
如果这仍然不起作用,您可能必须
注意:KVM 主机无法强制具有未知操作系统和未知配置的 VM 使用特定的网络配置。但是如果知道 VM 使用某个网络配置协议 - 例如 DHCP - 你可以使用它。这是这篇文章的假设。
某些操作系统(例如某些 Linux 发行版)还允许将网络配置选项传递给来宾,例如通过内核命令行。但这对于操作系统来说是非常特定的,我认为与 DHCP 方法相比没有任何优势。
小智 14
virsh net-update对您来说是一个很好的命令(您不需要重新启动/破坏您的网络等)
请参阅:https :
//www.redhat.com/archives/libvir-list/2012-September/msg01380.html
| 归档时间: |
|
| 查看次数: |
101737 次 |
| 最近记录: |