Como ya había comentado anteriormente utilizo mi máquina principal Debian como host para varios servidores virtualizados con KVM. En cuanto a la configuración en red comencé configurando una interfaz bridge por DHCP, aunque actualmente utilizo una configuración bridge estática. La configuración de ambas en Debian no es complicada.
Lo que sí hice desde el principio en ambas configuraciones fue deshabilitar Network Manager para evitar cambios inesperados de configuración:
systemctl stop NetworkManager.service systemctl disable NetworkManager.service
Configuración estática
Si queremos crear un bridge estático podemos utilizar la siguiente configuración en /etc/network/interfaces
:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet manual # Bridge interface auto br0 iface br0 inet static address 192.168.1.2 network 192.168.1.0 broadcast 192.168.1.255 netmask 255.255.255.0 gateway 192.168.1.1 dns-search jota.com dns-nameserver 208.67.220.220 dns-nameserver 208.67.222.222 bridge_ports eth0 bridge_stp off
La interfaz lo requiere poca explicación, simplemente levanta automáticamente y se configura como loopback para localhost.
La interfaz primaria eth0 es la que tenía desde el primer momento que instalé Debian. Para la configuración de red KVM la cambié a modo manual. No necesito una IP en dicha interfaz ya que sólo la voy a “puentear” a br0.
La interfaz bridge br0 está configurada para levantar con la máquina (auto) y en modo estático. Los primeros parámetros son típicos: IP, red, dirección de broadcast, máscara de subred, gateway… En cuanto a los parámetros para dns son los utilizados por el programa resolvconf para generar el fichero /etc/resolv.conf
de forma dinámica. Por ejemplo si tiro la interfaz br0:
ifdown br0
El fichero /etc/resolv.conf
se vacía:
[root@jota-pc ~]# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
Ahora levanto de nuevo la interfaz:
ifup br0
Y resolvconf se encarga de introducir la configuración correspondiente.
[root@jota-pc ~]# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 208.67.220.220 nameserver 208.67.222.222 search jota.com
El parámetro bridge_ports lo que hace es mapear los puertos de eth0 a br0. Como no voy a utilizar STP para comunicación entre varias redes bridge desactivo el protocolo Spanning Tree con bridge_stp off.
Configuración DHCP
Para una máquina que va a ser host de varios guest prefiero una configuración estática de red. Sin embargo también podemos configurar la interfaz bridge por DHCP. Incluso en el propio servidor DHCP podríamos asignar manualmente la configuración de red para este host en concreto.
La configuración de /etc/network/interfaces
se simplifica:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet manual # Bridge interface auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off
Como vemos los parámetros del bridge los mantenemos, sólo cambiamos a modo dhcp. En Debian, ya se encargará el demonio dhclient de encontrar el servidor DHCP para recibir la configuración de red.
Además de los parámetros mencionados, podéis consultar la página man correspondiente para encontrar una explicación detallada de cada uno y configurar los que necesitéis.