KVM com um IP de host e uma sub-rede diferente para máquinas

KVM com um IP de host e uma sub-rede diferente para máquinas

Já configurei um host KVM com configurações de IP adequadas, mas meu host me fez criar DHCP e usá-lo para atribuir os IPs às máquinas. Quero ver se existe uma maneira mais fácil de fazer isso (ou melhor). Quando comecei a fazer isso, não encontrei nada que me apontasse na direção certa. Estou saindo de uma nova instalação do Debian 6.0 x64, então não tenho nada instalado. Eu fiz login, consultei as informações abaixo e alterei a senha do meu host definido.

Eu tenho um sistema Debian 6.0 x64 com a seguinte configuração de rede inicial (substituída por 255 no lugar da minha primeira oitava 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

Eu tenho uma sub-rede/29 que desejo que as máquinas virtuais usem no meu host:

IP: 255.46.187.152 /29
Máscara: 255.255.255.248
Transmissão: 255.46.187.159

Endereços IP utilizáveis: 255.46.187.153 a 255.46.187.158

Gosto da interface do Cloudmin, então quero tentar usá-la, se puder, para administrar meus convidados.

Então, minhas perguntas:

Como configuro isso no sistema host da melhor maneira para que eu possa usar os IPs de sub-rede adicionais nos convidados e acessá-los pela Internet?

Também preciso hospedar um servidor DNS, o que significa que uma dessas VMs deve ter dois IPs atribuídos a ela e acessíveis do mundo externo. Como posso fazer isso usando Cloudmin? Fiquei com uma dúvida sobre isso aqui:Vários endereços IP atribuídos a uma VM KVMMas acabei de reformatar todo o servidor e estou tentando descobrir uma maneira melhor de fazer isso.

Informações da 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

Obrigado por qualquer ajuda que você possa me fornecer.

EDIT: instalei o kvm e o cloudmin:

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

Reinicializei e agora minha configuração de rede está assim:

# 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

Configurei no Cloudmin o IP inicial como 255.46.187.153 e o IP final como 255.46.187.158. O CIDR é 29 e o gateway é 255.46.187.152.

Eu instalei um convidado com o ubuntuserver 12.04 x64, que foi capaz de obter e recuperar recursos da Internet durante a instalação, mas agora não consegue acessar nada nem pode ser acessado de nada. Sua configuração de rede é:

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>

E não consigo fazer ping em google.com por meio de DNS ou IP direto, não consigo fazer ping na VM de fora ou do host. alguma ideia agora?

Responder1

O gateway configurado no convidado não é um IP da máquina host, eu tentaria esta configuração no convidado:

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

também no host, certifique-se de adicionar a rota ao convidado, adicione-a 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

desta forma você pode usar endereços de rede e de transmissão para convidados (255.46.187.152 e 255.46.187.159)

alguns recursos, desculpe, não em inglês:

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

http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way(alemão)

Responder2

Se a VM não estiver na mesma rede que o host, talvez seja necessário configurar o host como um roteador para as VMs:

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: Desculpe pelo "MASQUERADE", simplesmente copiei e colei um script que tinha por aí. No seu caso, você não precisa disso. Mas pode ser útil em um caso diferente, por exemplo, quando você deseja fornecer IPs privados às suas VMs.

informação relacionada