KVM, VM, réseau interne

Bonjour à tous,

voilà mon premier message ici. Je ne traine pas souvent par ici car mon profil est celui d’un développeur et non d’un administrateur système et/ou réseau. Mais voilà, pour aller plus loin dans les développements et mieux comprendre les systèmes sur lesquels tournent mes dev, je m’aventure dans l’administration. Donc, pas ou peu de connaissance et un vocabulaire approximatif dans ces domaines.

Le ton est donné :wink: voici maintenant la raison de ma venue :

A partir d’une dedibox prise pour réaliser les tests, je tente de mettre en place une virtualisation avec KVM sous debian Wheezy.

Le serveur est configuré avec une partition étendue relativement grande pour accueillir les VMs.

Avec lvm2 j’ai créé un volume logique de 100Go que j’utilise pour la création de ma première VM.

Avec bridge-utils j’ai créé un pont dont voici la configuration /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 62.XXX.YYY.ZZZ
  netmask 255.255.255.0
  gateway 62.XXX.YYY.1
  bridge_ports eth0
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12
  bridge_stp off

Puis j’ai tout redémarré.

Installation de : kvm qemu-kvm libvirt-bin virtinst
et ajout de l’utilisateur root aux groupes libvirt et kvm :

adduser `id -un` libvirt adduser `id -un` kvm

j’ai téléchargé debian-7.3.0-amd64-netinst.iso pour créer les VMs.

C’est à ce stade que je bloque.

en utilisant virt-manager une VM a été créée.
j’ai eu des problèmes au niveau de la configuration réseau de cette VM.
l’installation c’est tout de même poursuivi jusqu’à la fin.

j’arrive à me connecter à la console de cette VM par virt-manager, mais j’aimerai pouvoir m’y connecter par ssh directement à partir de l’hôte principal et surtout donner accès à internet à cette VM.

Voici le contenu de /etc/network/interfaces de la VM

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
  address 192.168.122.3
  netmask 255.255.255.0
  network 192.168.122.0
  broadcast 192.168.122.255
  gateway 192.168.122.1

  dns-nameservers 192.168.122.1
  dns-search test.nj.com

Je compte utiliser firehol pour configurer iptable.
il y a peut être de la configuration NAT à faire, ou un truc du genre (vraiment dsl pour mes lacunes)

Bref, si quelqu’un peut m’aiguiller pour continuer la mise en place de cette configuration ?
Si possible avec des termes simples, car le réseau est la partie que je ne maitrise absolument pas du tout.

Merci pour vos réponses et/ou suggestions.

Nicolas.

Si tu veux vraiment faire simple et configurer rapidement une VM opérationnelle, utilise qemu.
wiki.qemu.org/Main_Page
wiki.debian.org/QEMU

Merci pour ta réponse piratebab, je vais donc lire attentivement les docs.
Est-ce que tu aurais tout même une suggestion concernant l’interface de la VM ?
Car j’ai la sensation qu’il ne me manque vraiment pas grand chose pour que cette VM soit opérationnelle.

Salut,

Bien sûr tu n’as pas oublié d’installer openssh et de le démarrer !
(expérience vécue) :slightly_smiling:

Bonjour ggoodluck47,
effectivement ce n’est pas installé sur la VM :wink:
seulement voilà, impossible de me connecter à internet à partir de la VM, donc pas de apt-get possible.
Je suis en train de batailler sur la conf réseau où je ne panne pas grand chose

outout de brctl show :

bridge name bridge id STP enabled interfaces br0 8000.d4ae52ca0eb4 yes eth0 vnet0

Tu as créé un pont br0 liant l’interface physique eth0 de la machine hôte avec l’interface virtuelle vnet0 qui est elle-même reliée à l’interface eth0 de la machine virtuelle. De ce fait, elles sont dans le même réseau logique ethernet, qui est également le réseau ethernet extérieur de l’hébergeur dans lequel se trouve la dédibox. J’espère que c’est assez clair.

On fait cela quand la machine virtuelle doit apparaître comme faisant partie du réseau extérieur à la machine hôte. En corollaire, elle doit avoir une adresse IP (publique) faisant partie de ce réseau 62.XXX.YYY.0/24, comme la machine hôte. Ces adresses IP appartiennent à l’hébergeur qui les attribue à ses serveurs dédiés. Or tu as configuré une adresse privée 192.168.122.3 sur l’interface eth0 de la machine virtuelle, avec une adresse de passerelle et de DNS 192.168.122.1 qui n’existe pas, et la machine hôte n’a aucune connaissance de ces adresses privées (à moins que tu ne nous aies pas tout dit). Aucune chance que ça marche. En plus, l’hébergeur va voir sur son réseau des requêtes ARP voire des paquets IP broadcast émis depuis ta dédibox avec l’adresse MAC source et l’adresse IP source 192.168.122.3 de la machine virtuelle qu’il ne connaît pas, ça peut ne pas lui plaire et le conduire à bloquer ta dédibox, selon que ses conditions d’utilisation sont plus ou moins strictes.

Tu as deux possibilités :

a) Obtenir de l’hébergeur une adresse IP publique pour la machine virtuelle et conserver le pontage. La configuration IP de l’interface eth0 de la machine virtuelle sera similaire à celle de l’interface br0 de la machine hôte, comme si c’étaient deux serveurs dédiés indépendants.

b) Supprimer le pont br0 (ou supprimer eth0 du pont s’il doit y avoir plusieurs machines virtuelles dans le même sous-réseau), remettre la configuration IP publique sur eth0 laisser l’adressage privé sur la machine virtuelle, configurer l’interface vnet0 (ou br0 le cas échéant) dans le même sous-réseau que la machine virtuelle avec l’adresse 192.168.122.1. Si la machine a besoin de communique avec l’extérieur, faire du routage avec NAT.

Bonjour PascalHambourg,

merci pour cette réponse.
j’avais suivi ce tuto : howtoforge.com/virtualizatio … eze-server
A priori je n’ai rien omis dans mes posts, mais pour être certains de tout saisir je repars de zéro.

Voici les étapes que je suis en train de suivre :

1) Installation d’une debian wheezy et première configuration du réseau :

[code]auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 62.XXX.YYY.ZZZ
netmask 255.255.255.0
network 62.XXX.YYY.0
broadcast 62.XXX.YYY.255
gateway 62.XXX.YYY.1[/code]

2) Installation des paquets :
[ul]lvm2
bridge-utils
kvm
qemu-kvm
libvirt-bin
virtinst
virt-manager[/ul]

3) création d’un volume logique pour une première VM:
pvcreate /dev/sda4
vgcreate vm1-vol /dev/sda4
lvcreate -n vm1 -L100G vm1-vol

4) Téléchargement de l’iso pour l’installation des VMs :
cdimage.debian.org/debian-cd/7.3.0/amd64/iso-cd/debian-7.3.0-amd64-netinst.iso

A ce stade il devrait y avoir tout ce qu’il faut pour commencer à travailler et c’est là qu’il faut que je configure le réseau proprement pour pouvoir créer cette première VM.
Certaines VMs n’auront pas accès à l’extérieur et d’autres oui. Pour celles ayant besoin d’accéder à l’extérieur j’ai bien noté qu’il faudra faire du NAT.

Je me concentre sur la première étape, c.a.d pas d’accès à l’extérieur.

Etant mes connaissances en réseau … :unamused: … je dois encore me former par beaucoup de lecture.
Si un exemple de config suivant ces steps pouvait m’être fournis cela m’aiderai, car je suis réellement perdu maintenant, tous parle de la mise en place d’un pont (br0) …

bref, je repars dans mes lectures et encore merci à tous pour vos réponses.

La configuration réseau proposée par ce tutoriel n’est tout simplement pas adaptée à la situation de ton serveur dédié. Elle est adaptée à une machine située dans un réseau dont tu contrôles l’adressage IP. Il va falloir faire autrement. Le pont br0 peut servir à mettre plusieurs machines virtuelles dans un même réseau, mais ce doit être un réseau distinct du réseau extérieur, donc eth0 ne doit être attaché au pont.

En fait tout ceci n’a rien de spécifique à KVM ni même à la virtualisation. Tu aurais la même problématique par exemple avec une machine connectée à un réseau que tu ne maîtrises pas (ex : connexion internet fournie par un FAI) à laquelle tu veux connecter une ou plusieurs autres machines, certaines pouvant bénéficier de l’acès internet. Je t’engage donc à améliorer tes connaissances en réseau (adressage, routage IP, pontage, NAT…) pour définir les caractéristiques de ton réseau virtuel. Ensuite il faudra le réaliser avec KVM, mais la première étape est indispensable.

Effectivement cela est indispensable, je reviendrai sur ce post pour le compléter dès que j’aurai avancé sur le sujet car j’imagine que cela pourra intéresser certaines personnes.

Merci PascalHambourg pour ces éclaircissements.

A tous passez de bonnes fêtes