Lo que me gustaría hacer es establecer la configuración de red de los invitados (dirección IP, subred, puerta de enlace, dirección de transmisión) desde el sistema host. La configuración de red utilizada está en bridge
modo. ¿Cómo puedo configurar la red desde el host en lugar de configurar el propio cliente a una configuración de red estática?
Si ejecuto:
virsh edit vm1
también hay un <network>
bloque e intenté configurar la interfaz de red desde allí, pero desafortunadamente la máquina virtual invitada no parece usarla y, como tal, está desconectada de la red (ya que solo usa la configuración de red automática) ... Invitado Las máquinas virtuales están basadas en Linux y Windows. Cualquier ayuda sería muy apreciada.
Respuestas:
Si no desea realizar ninguna configuración dentro del invitado, entonces la única opción es un servidor DHCP que distribuye direcciones IP estáticas. Si usa el
bridge
modo, probablemente será un servidor DHCP externo. Consulte su manual para saber cómo servir arrendamientos estáticos.Pero al menos en los modos de reenvío
nat
oroute
, podría usar el libvirt incorporadodnsmasqd
(las versiones más recientes de libvirtd admiten la opción "dhcp-hostsfile" de dnsmasq). Aquí es cómo:Primero, descubra las direcciones MAC de las máquinas virtuales a las que desea asignar direcciones IP estáticas:
Luego edite la red
Encuentre la
<dhcp>
sección, restrinja el rango dinámico y agregue entradas de host para sus máquinas virtualesLuego, reinicie su VM (o reinicie su cliente DHCP, por ejemplo
ifdown eth0; ifup eth0
)Actualización: veo que hay informes de que el cambio podría no tener efecto después de "virsh net-edit". En ese caso, intente esto después de la edición:
... y reinicie el cliente DHCP de la VM.
Si eso todavía no funciona, es posible que deba
Nota: No hay forma de que el host KVM pueda forzar a una VM con SO desconocido y configuración desconocida a usar una determinada configuración de red. Pero si sabe que la VM usa un cierto protocolo de configuración de red, digamos DHCP, puede usar eso. Esto es lo que supone esta publicación.
Algunos sistemas operativos (por ejemplo, algunas distribuciones de Linux) también permiten pasar opciones de configuración de red al invitado, por ejemplo, a través de la línea de comandos del núcleo. Pero eso es muy específico para el sistema operativo, y no veo ninguna ventaja sobre el método DHCP.
fuente
virsh net-update
es un buen comando para usted (no necesita reiniciar / destruir su red, etc.)consulte: https://www.redhat.com/archives/libvir-list/2012-September/msg01380.html
fuente
He podido hacer
dnsmasq
'ver' el mapeo IP-MAC recién agregado simplemente enviando una-HUP
señal aldnsmasq
proceso. Después de eso, reiniciar el nuevo invitado fue suficiente para tener asignada la IP correcta, sin la necesidad de reiniciarlibvirtd
ni la propia red.La documentación oficial de libvirt ( http://wiki.libvirt.org/page/Networking#Applying_modifications_to_the_network ) menciona este script no oficial de Perl que automatiza todo el proceso: https://gist.github.com/bendiken/032ea1bddb9ffafe98b4
No he probado este script yo mismo, porque descubrí que el archivo hosts ya estaba actualizado y que solo enviaba la señal -HUP era suficiente.
El host ejecuta Debian 7.8 y las versiones de los paquetes son:
fuente