KVM con una IP de host y una subred diferente para máquinas

KVM con una IP de host y una subred diferente para máquinas

Ya configuré un host KVM con las configuraciones de IP adecuadas, pero mi host me hizo crear DHCP y usarlo para asignar las IP a las máquinas. Quiero ver si hay una manera más fácil de hacerlo (o mejor). Cuando comencé esto por primera vez, no encontré nada que me indicara la dirección correcta. Vengo de una instalación nueva de Debian 6.0 x64, así que no tengo nada instalado. Inicié sesión, consulté la siguiente información y cambié la contraseña de mi conjunto de host.

Tengo un sistema Debian 6.0 x64 con la siguiente configuración de red inicial (sustituí 255 en lugar de mi primera octava real):

# tail /etc/network/interfaces
auto  eth0
iface eth0 inet static
address   255.9.24.80
broadcast 255.9.24.95
netmask   255.255.255.224
gateway   255.9.24.65

# default route to access subnet
up route add -net 255.9.24.64 netmask 255.255.255.224 gw 255.9.24.65 eth0

Tengo una subred /29 que quiero que utilicen las máquinas virtuales desde mi host:

IP: 255.46.187.152 /29
Máscara: 255.255.255.248
Transmisión: 255.46.187.159

Direcciones IP utilizables: 255.46.187.153 a 255.46.187.158

Me gusta la interfaz de Cloudmin, así que quiero intentar usarla si puedo para administrar a mis invitados.

Entonces, mis preguntas:

¿Cómo configuro esto de la mejor manera en el sistema host para poder usar las IP de subred adicionales en los invitados y tener acceso a ellas desde Internet?

También necesito alojar un servidor DNS, lo que significa que una de estas máquinas virtuales debe tener dos IP asignadas y accesibles desde el mundo exterior. ¿Cómo puedo hacer eso usando Cloudmin? Tenía una pregunta sobre esto aquí:Múltiples direcciones IP asignadas a una VM KVMPero acabo de reformatear todo el servidor y estoy tratando de encontrar una mejor manera de hacerlo.

Información de la máquina:

# ip route show
255.9.24.64/27 via 255.9.24.65 dev eth0
255.9.24.64/27 dev eth0  proto kernel  scope link  src 255.9.24.80
default via 255.9.24.65 dev eth0

brctl is empty

# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether c8:60:00:54:b5:d8 brd ff:ff:ff:ff:ff:ff
inet 255.9.24.80/27 brd 255.9.24.95 scope global eth0
inet6 fe80::ca60:ff:fe54:b5d8/64 scope link
  valid_lft forever preferred_lft forever

Gracias por cualquier ayuda que me puedan brindar.

EDITAR: He instalado kvm y cloudmin:

aptitude install qemu-kvm libvirt-bin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-debian-install.sh
./cloudmin-kvm-debian-install.sh

Reinicié y ahora mi configuración de red se ve así:

# device: eth0
iface eth0 inet manual

# default route to access subnet


iface br0 inet static
    address 255.9.24.80
    netmask 255.255.255.224
    broadcast 255.9.24.95
    network 255.9.24.64
    bridge_ports eth0
    gateway 255.9.24.65

Configuré en Cloudmin la IP inicial como 255.46.187.153 y la IP final como 255.46.187.158. El CIDR es 29 y la puerta de enlace es 255.46.187.152.

Instalé un invitado con ubuntuserver 12.04 x64, que pudo obtener y recuperar recursos de Internet durante la instalación, pero ahora no puede acceder a nada ni se puede acceder a él desde nada. Su configuración de red es:

iface eth0 inet static
 address 255.46.187.153
 netmask 255.255.255.224
 broadcast 255.46.187.159
 gateway 255.46.187.152
 dns-nameservers <host provided nameservers>

Y no puedo hacer ping a google.com a través de DNS o IP directa, no puedo hacer ping a la VM desde el exterior ni desde el host. ¿Alguna idea ahora?

Respuesta1

La puerta de enlace configurada en el invitado no es una IP de la máquina host, probaría esta configuración en el invitado:

auto eth0
iface eth0 inet static
       address 255.46.187.153
       netmask 255.255.255.255
       gateway 255.9.24.80
       pointopoint 255.9.24.80
       dns-nameservers <host provided nameservers>
       up ip addr add 255.46.187.154 dev eth0

también en el host, asegúrese de agregar la ruta al invitado, agregue esto a /etc/network/interfaces

iface eth0 inet static
       (...)
       up route add -host 255.46.187.153 dev br0
       up route add -host 255.46.187.154 dev br0

de esta manera puedes usar direcciones de red y de transmisión para invitados (255.46.187.152 y 255.46.187.159)

algunos recursos, lo siento, no en inglés:

http://www.ingent.net/ca/2012/03/server-virtualization-kvm-hetzner/(catalán)

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way(alemán)

Respuesta2

Si la máquina virtual no está en la misma red que el host, es posible que deba configurar el host como enrutador para las máquinas virtuales:

iptables --table nat --append POSTROUTING --out-interface br0 -j MASQUERADE
iptables --append FORWARD --in-interface br0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Editar: Perdón por la "MASCARADA", simplemente copié y pegué un guión que tenía por ahí. En tu caso no lo necesitas. Pero puede resultar útil en un caso diferente, por ejemplo, cuando desee proporcionar IP privadas a sus máquinas virtuales.

información relacionada