Configurar endereços IP públicos em VMs do KVM

10

Eu tenho um servidor físico rodando o CentOS 6.5 com uma interface conectada à Internet (com um endereço IP público). Dentro deste servidor eu tenho duas VMs criadas com o KVM através do libvirt com uma interface cada. Quero 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: .

Eu tentei várias maneiras, como adicionar uma ponte Linux com brctl e anexar a interface física do servidor e as interfaces virtuais de ambas as VMs, mas não funcionou e perdi a conectividade com o servidor físico.

Estou aberto para usar pontes Linux ou redes libvirt.

Como posso obter endereços IP públicos nas VMs e no servidor físico?

    
por logoff 26.11.2015 / 11:04

1 resposta

3

Finalmente, encontrei a maneira correta de atingir o objetivo da pergunta. Isso implica em bridging do Linux, porque eu não pude resolver o problema com a rede libvirt.

Etapas:

  1. Identifique as interfaces da VM KVM. Provavelmente nomes de interfaces começam com vnet*

Neste exemplo, vnet0 e vnet1

  1. Crie uma ponte Linux com:

    brctl addbr virbr1

  2. Anexe as interfaces da interface física e VMs do KVM à 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).

brctl addif virbr1 vnet0 brctl addif virbr1 vnet1 brctl addif virbr1 eth0

  1. Configurar a interface do servidor físico sem o endereço IP atribuído:

No CentOS 6.5, edite o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0 com estes conteúdos:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. Configurar a ponte do servidor físico para ter o endereço IP:

No CentOS 6.5, edite o arquivo /etc/sysconfig/network-scripts/ifcfg-virbr1 com estes conteúdos:

DEVICE=virbr1
BOOTPROTO=none
ONBOOT=yes
IPADDR=<physical_server_public_ip_address>
NETMASK=<physical_server_public_ip_netmask>
GATEWAY=<physical_server_gateway_ip_address>
NAME=virbr1
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no
DNS1=<physical_server_primary_dns_server_ip_address>
DNS2=<physical_server_secondary_dns_server_ip_address>
  1. Reinicie a rede do servidor físico:

service network restart

NOTA: você deve recuperar a conectividade de rede do servidor físico (através da interface e da ponte)

  1. Configure a interface de rede das VMs do KVM:

Isso depende do sistema operacional das VMs. De qualquer forma, deve incluir endereço IP, máscara de rede e gateway padrão, pelo menos. Obviamente, os servidores DNS irão completar 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 VM KVM podem ser úteis.

    
por 27.11.2015 / 15:12