História
Como parte da migração de servidores que estou fazendo, montei uma pequena estrutura virtual para testes… na verdade levantei uma maquina virtual com o KVM com configuração semelhante a que vou usar no VPS.
O objetivo inicial é levantar a máquina com acesso SSH, para poder configurar o servidor (nginx, php e mysql), então segue o passo-a-passo para rede no KVM. O básico do KVM/QEmu pode-se conferir nesse mini tutorial do qemu e nesse micro guia do KVM.
Preparando a VM
Então comece criando o HD, baixando a ISO de sua distro favorita, que é claro que é o Debian, e siga a instalação padrão. Para manter mais parecido com o VPS mantive tudo em uma partição só e deixei um espacinho para o swap.
# qemu-img -f qcow2 debian.qcow 10G # kvm -monitor stdio -smp 2 -m 360 -localtime -hda debian5.qcow -cdrom debian-lenny.iso-boot d -net nic,vlan=0 -net user,vlan=0 -name "debian-lenny"
Esses comandos só criam um HD de 10GB e iniciam o KVM com dois processadores virtuais, 360MB de ram, usando as imagens devidas e rede local padrão. Basta seguir a instalação padrão, depois para carregar a VM use o mesmo comando mas sem a imagem do cd e com boot do hda:
# kvm -monitor stdio -smp 2 -m 360 -localtime -hda debian5.qcow -boot c -net nic,vlan=0-net user,vlan=0 -name "debian-lenny"
Rede do KVM com VDE
Agora parte importante para ter uma rede lega é usar o VDE (virtual distributed ethernet) para configurar a rede do KVM, assim podendo acessar ele como um servidor normal, e ao contrário, assim como em outras VMS.
Primeiro instale o instale o VDE, para a rede distribuída, e o dnsmasq, para servir o DHCP para os guests, no host:
# aptitude install vde2 dnsmasq # modprobe tun # adduser seu_usuario vde2-net $ newgrp vde2-net
E configure suas interfaces de rede para o vde2, em /etc/network/interfaces adicione:
auto tap0 iface tap0 inet static address 10.0.2.1 netmask 255.255.255.0 network 10.0.2.0 broadcast 10.0.2.255 pre-up tunctl -u diogo -t tap0 pre-up /etc/init.d/dnsmasq restart up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE up echo 1 > /proc/sys/net/ipv4/ip_forward vde2-switch -
Troque “diogo” pelo seu usuário que vai iniciar a VM, e as faixas de ip se precisar.
Configure por final o DNSMASQ, ao final do /etc/dnsmasq.conf adcione:
user=nobody domain=qemu.lan interface=tap0 dhcp-range=10.0.2.1,10.0.2.253,255.255.255.0,10.0.2.255,8h
Ainda para cada guest que planeje ter pode definir um ip estatico pelo seu mac address, adcionando um linha para cada conforme o exemplo:
dhcp-host=11:22:33:44:55:66,10.0.2.5
E recarregue sua rede
# /etc/init.d/networking restart
Agora com o host configurado é a hora do guest, lance sua maquina virtual com o comando final:
kvm -monitor stdio -smp 2 -m 360 -localtime -hda debian5.qcow -boot c-net nic,macaddr=1a:2b:3c:4d:5e:6f,model=rtl8139,vlan=0-net vde,vlan=0,sock=/var/run/vde2/tap0.ctl-name "debian-lenny"
Agora na VM configure a rede:
# ifconfig eth0 up # dhclient eth0 # ping 10.0.2.1 # ifconfig eth0 gateway 10.0.2.1 # ifconfig eth0
Presto! O ultimo comando vai mostrar o ip que o guest recebeu (se reservou o ip estático deve ser o 10.0.2.5), o ip do host é 10.0.2.1.
Agora para deixar melhor instale o servidor SSH para acessar a maquina da forma como é devido:
# aptitude install openssh-server
Agora você pode entrar na maquina usando o ssh como root na primeira vez para criar seu usuário, e depois iniciar a vm com a opção “–nographic” e passar a entrar apenas com o SSH.
Divirta-se!