Configurer des adresses IP publiques dans les machines virtuelles KVM

12

J'ai un serveur physique exécutant CentOS 6.5 avec une interface connectée à Internet (avec une adresse IP publique). À l'intérieur de ce serveur, j'ai deux machines virtuelles créées avec KVM via libvirt avec une interface chacune. Je veux attribuer une adresse IP publique à chaque machine virtuelle et continuer à utiliser la connexion avec le serveur physique.

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

J'ai essayé différentes façons, comme l'ajout d'un pont Linux avec brctlet la connexion de l'interface physique du serveur et des deux interfaces virtuelles des machines virtuelles, mais cela n'a pas fonctionné et j'ai perdu la connectivité avec le serveur physique.

Je suis ouvert à l'utilisation de ponts Linux ou de réseaux libvirt.

Comment puis-je obtenir des adresses IP publiques sur les deux machines virtuelles et sur le serveur physique?

se déconnecter
la source
Essayez d'ajouter un deuxième adaptateur aux machines virtuelles et connectez-les au réseau de serveur interne.
shcherbak
quel réseau de serveurs internes? de toute façon, je veux la configuration de la question, si possible.
fermeture de session
Supposons que cela vous aidera: [KVM - Créer une machine virtuelle avec 2 interfaces de ponts] ( askubuntu.com/questions/581771/… ), [Pont réseau KVM avec deux cartes réseau] ( serverfault.com/questions/130134/… )
shcherbak
encore une fois, je préférerais avoir une seule interface par VM, si possible.
fermeture de session
hier, j'ai répondu à une question similaire sur l'hôte et l'invité debian kvm. unix.stackexchange.com/questions/245073/… - à part les détails mineurs de la configuration de l'interface, devrait être similaire sur centos.
cas

Réponses:

4

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

Pas:

  1. Identifiez les interfaces VM KVM. Les noms des interfaces commencent probablement parvnet*

Dans cet exemple vnet0etvnet1

  1. Créez un pont Linux avec:

    brctl addbr virbr1

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

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

brctl addif virbr1 vnet0
brctl addif virbr1 vnet1
brctl addif virbr1 eth0
  1. Configurer l'interface du serveur physique sans avoir d'adresse IP attribuée:

Dans CentOS 6.5, modifiez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0avec le contenu suivant:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
NAME=eth0
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
  1. Configurez le pont de serveur physique pour avoir une adresse IP:

Dans CentOS 6.5, modifiez le fichier /etc/sysconfig/network-scripts/ifcfg-virbr1avec le contenu suivant:

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 la mise en réseau du serveur physique:

service network restart

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

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

Cela dépend du système d'exploitation des machines virtuelles. Quoi qu'il en soit, il doit inclure au moins l'adresse IP, le masque de réseau et la passerelle par défaut. De toute évidence, les serveurs DNS termineront 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.

se déconnecter
la source