Configurer les adresses IP publiques dans les ordinateurs virtuels KVM

J'ai un server physique exécutant CentOS 6.5 avec une interface connectée à Internet (avec une adresse IP publique). Dans ce server, j'ai deux machines virtuelles créées avec KVM via libvirt avec une interface chacune. Je veux atsortingbuer une adresse IP publique à chaque machine virtuelle et continuer à utiliser la connection avec le server physique.

Cette image illustre ce que j'ai en noir et ce que je veux en bleu: Topologie de réseau .

J'ai essayé plusieurs façons, comme append un pont Linux avec brctl et attacher l'interface physique du server et les deux interfaces virtuelles des machines virtuelles, mais cela n'a pas fonctionné et j'ai perdu la connectivité au server physique.

Je suis ouvert à utiliser des ponts Linux ou des réseaux libvirt.

Comment puis-je get des adresses IP publiques sur les machines virtuelles et sur le server physique?

Enfin, j'ai trouvé la bonne façon d'atteindre l'objective de la question. Cela implique un pontage Linux, parce que je n'ai pas pu résoudre le problème avec le réseau libvirt.

Pas:

  1. Identifier les interfaces VM KVM. Les noms des interfaces commencent vnet* par vnet*

Dans cet exemple, vnet0 et vnet1

  1. Créez un pont Linux avec:

    brctl addbr virbr1

  2. Attacher les interfaces de l'interface physique et des machines virtuelles KVM au nouveau pont:

ATTENTION: si vous êtes connecté au server physique via le réseau (SSH, Telnet, etc.), vous perdrez la connection. Utilisez un terminal ou une méthode alternative (comme toute autre interface avec connectivité).

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

  1. Configurer l'interface du server physique n'ayant pas d'adresse IP atsortingbuée:

Dans CentOS 6.5, éditez le file /etc/sysconfig/network-scripts/ifcfg-eth0 avec ces contenus:

 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes NAME=eth0 TYPE=Ethernet IPV6INIT=no USERCTL=no 
  1. Configurez le pont du server physique pour qu'il possède l'adresse IP:

Dans CentOS 6.5, éditez le file /etc/sysconfig/network-scripts/ifcfg-virbr1 avec ces contenus:

 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. Redémarrez le réseau de servers physiques:

service network restart

REMARQUE: vous devez restaurer la connectivité réseau physique du server (via l'interface et le pont)

  1. Configurer l'interface réseau des machines virtuelles KVM:

Cela dépend du operating system des machines virtuelles. Quoi qu'il en soit, il devrait inclure l'adresse IP, le masque de réseau et la passerelle par défaut, au less. De toute évidence, les servers DNS compléteront la configuration.

Toutes ces configurations sont statiques et pourraient être remplacées par une affectation DHCP. Dans ce cas, les adresses MAC du pont et les interfaces VM KVM pourraient être utiles.