Eu tenho um servidor físico executando o CentOS 6.5 com uma interface conectada à Internet (com um endereço IP público). Dentro deste servidor, tenho duas VMs criadas com o KVM através da libvirt com uma interface cada. Desejo atribuir um endereço IP público a cada VM e continuar usando a conexão com o servidor físico.
Esta imagem ilustra o que eu tenho em preto e o que eu quero em azul: .
Tentei de várias maneiras, como adicionar uma ponte Linux brctl
e anexar a interface física do servidor e as interfaces virtuais das VMs, mas não funcionou e perdi a conectividade com o servidor físico.
Estou aberto a usar pontes Linux ou redes libvirt.
Como posso obter endereços IP públicos nas VMs e no servidor físico?
Respostas:
Finalmente, encontrei a maneira correta de alcançar o objetivo da pergunta. Isso implica a ponte do Linux, porque não consegui resolver o problema com a rede libvirt.
Passos:
vnet*
Neste exemplo
vnet0
evnet1
Crie uma ponte Linux com:
brctl addbr virbr1
Anexe interfaces de interface física e VMs KVM a nova ponte:
AVISO: se você estiver conectado ao servidor físico através da rede (SSH, Telnet, etc.), perderá a conexão. Use um terminal ou um método alternativo (como outra interface com conectividade).
No CentOS 6.5, edite o arquivo
/etc/sysconfig/network-scripts/ifcfg-eth0
com este conteúdo:No CentOS 6.5, edite o arquivo
/etc/sysconfig/network-scripts/ifcfg-virbr1
com este conteúdo:service network restart
NOTA: você deve recuperar a conectividade de rede do servidor físico (através da interface e da ponte)
Isso depende do sistema operacional das VMs. De qualquer forma, ele deve incluir endereço IP, máscara de rede e gateway padrão, pelo menos. Obviamente, os servidores DNS concluirão a configuração.
Todas essas configurações são estáticas e podem ser substituídas pela atribuição de DHCP. Nesse caso, os endereços MAC da ponte e as interfaces KVM VM podem ser úteis.
fonte