
Quiero utilizar la configuración NAT de la red libvirt.
libvirt dicehttps://wiki.libvirt.org/page/Virtual_network_%22default%22_has_not_been_started:
"1) Si en realidad no está utilizando dnsmasq en la máquina física para servir DHCP para elred fisica, deberías desactivar dnsmasq por completo"
eso corresponde a mi contexto, así que detengo y desactivo dnsmasq en el sistema host.
en el sistema qemu:
virsh # net-edit default
<network>
<name>default</name>
<uuid>b6ef8506-d4c7-4bba-9fe7-8f971ea87d10</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:06:86:de'/>
<domain name='circus.net'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.10'/>
</dhcp>
</ip>
</network>
Inicio la red predeterminada:
virsh # net-start default
Network default started
virsh # net-list
Name State Autostart Persistent
----------------------------------------------------------
default active no yes
Empiezo los invitados S0 y S1
virsh # start S0
Domain S0 started
virsh # start S1
Domain S1 started
virsh # list
Id Name State
----------------------------------------------------
1 S0 running
2 S1 running
pero DHCP no parece funcionar:
virsh # net-dhcp-leases default
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
-------------------------------------------------------------------------------
en la máquina anfitriona:
ping: S1: Name or service not known
lo que he probado:
en virt-manager
hostnamectl set-hostname server1
hostnamectl set-hostname server0
virsh # shutdown S0
virsh # shutdown S1
virsh # net-destroy default
en el anfitrión:
tcpdump -i virbr0
en qemu:
virsh # net-start default
virsh # start S0
virsh # start S1
tcpdump no ve nada llegando a virbr0
mi pregunta es: ¿cómo hacer que DHCP funcione en este caso?
preguntas adicionales:
1. Se dice que en libvirt, nat conf debería funcionar de fábrica (conf predeterminada), no hay nada que hacer. ¿Qué significa exactamente "listo para usar"? Tanto S1 como S0 aquí tienen, de forma predeterminada, el FQDN configurado en localhost.localdomain, entonces, ¿cómo hace libvirt DHCP la distinción entre S0 y S1?
2.Si quiero personalizar mi configuración de dnsmasq (por ejemplo, algo como log-facility=/var/log/dnsmasq.log), ¿dónde está el archivo de configuración? ¿No está en /etc/dnsmasq.conf o en /etc/dnsmasq.d/anyname.conf porque dnsmasq no funciona en el host?
Respuesta1
Tuve el mismo problema en un sistema Debian y estoy publicando una solución en caso de que ayude, o si alguien puede mejorarla, sería genial :)
La conectividad de host a invitado funciona después de agregar lo siguiente al archivo XML del dominio invitado:
<interface type='bridge'>
<source bridge='virbr0'/>
<model type='virtio'/>
</interface>
Eso creó una interfaz de red nunca antes vista en el sistema invitado. Luego ejecuté dhclient
la interfaz dentro de la VM invitada y obtuvo una dirección 192.168.122.x con puertos accesibles para el sistema host.