web-dev-qa-db-fra.com

KVM - Créer une machine virtuelle avec 2 interfaces de ponts

Quelqu'un peut-il me faire savoir s'il vous plaît pour créer un VM en utilisant KVM avec 2 interfaces pontées. J'ai un serveur sur lequel Eth0 et Eth1 sont configurés et qui se connecte à 2 réseaux distincts. J'aimerais créer un VM au sein de cette lame physique afin que le VM soit relié aux deux réseaux. afin de pouvoir contrôler le trafic réseau même au niveau VM. Pour le moment, nous ne pouvons obtenir que le VM se connecter à br0, mais comment pourrais-je configurer un br1? Appréciez l'aide!

Dans mon fichier xml qemu, j'ai les éléments suivants:

5
Shailan

Ce qui suit a fonctionné pour moi:

Sudo virt-install -n virt64_01 -r 8192 \
--disk path=/media/newhd/virt64_01.img,bus=virtio,size=50 \
-c ubuntu-14.04.1-server-AMD64.iso \
--network bridge=br0,model=virtio,mac=52:54:00:b2:cb:b0 \
--network bridge=br1,model=virtio \
--video=vmvga --graphics vnc,listen=0.0.0.0 --noautoconsole -v --vcpus=4

Remarque: je spécifie l'adresse MAC de BR0 car j'ai déjà ce nom VM sur le serveur DHCP principal et le serveur DNS, et je souhaite éviter tout travail supplémentaire pour moi-même. Pour BR1, cela m’était égal lors de l’installation, elle sera installée plus tard.

Et pour référence, voici le fichier/etc/network/interfaces sur mon ordinateur hôte serveur Ubutuntu 14.04:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Local network interface
auto br1
iface br1 inet static
 address 192.168.222.1
 network 192.168.222.0
 netmask 255.255.255.0
 broadcast 192.168.222.255
 bridge_ports eth1
 bridge_fd 9
 bridge_hello 2
 bridge_maxage 12
 bridge_stp off

# The primary network interface and bridge
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Maintenant, une fois l'installation terminée, j'ai ajouté manuellement l'invité eth1 au fichier invité/etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# Local network interface
auto eth1
iface eth1 inet static
 address 192.168.222.5
 network 192.168.222.0
 netmask 255.255.255.0
 broadcast 192.168.222.255

Notez qu'il existe NOT une passerelle spécifiée pour eth1. Si une passerelle est spécifiée, l'interface principale et la table de routage seront remplies en conséquence. (Dans mon cas, et pour cette réponse, la passerelle était fausse et les choses ont cessé de fonctionner quand cela a été spécifié. Initialement, tout fonctionnait bien sur le serveur hôte avec une fausse passerelle spécifiée, mais il a finalement été modifié pour utiliser br1 comme interface principale. et les choses ont cessé de fonctionner, je les ai donc entièrement modifiées. Si vous le souhaitez, vous pouvez également gérer explicitement la table de routage.)

Et voici la section pertinente du fichier xml de définition (c’est-à-dire que vous pourrez peut-être utiliser virsh edit pour ne pas avoir à réinstaller votre machine virtuelle):

<interface type='bridge'>
  <mac address='52:54:00:b2:cb:b0'/>
  <source bridge='br0'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
  <mac address='52:54:00:d7:31:77'/>
  <source bridge='br1'/>
  <model type='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>

Modifier:

Les fichiers/etc/network/interfaces de l'hôte et de l'invité pour le cas statique br0 sont les suivants:

Hôte:

doug@s15:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Local network interface
auto br1
iface br1 inet static
  address 192.168.222.1
  network 192.168.222.0
  netmask 255.255.255.0
  broadcast 192.168.222.255
  bridge_ports eth1
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12
  bridge_stp off

# The primary network interface and bridge
auto br0
#iface br0 inet dhcp
iface br0 inet static
  address 192.168.111.112
  network 192.168.111.0
  netmask 255.255.255.0
  gateway 192.168.111.1
  broadcast 192.168.111.255
  dns-search smythies.com
  dns-nameservers 192.168.111.1
  bridge_ports eth0
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12
  bridge_stp off

Quête:

doug@virt64-01:~$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Local network interface
auto eth1
iface eth1 inet static
  address 192.168.222.5
  network 192.168.222.0
  netmask 255.255.255.0
  broadcast 192.168.222.255

# The primary network interface
auto eth0
# iface eth0 inet dhcp
iface eth0 inet static
  address 192.168.111.213
  network 192.168.111.0
  netmask 255.255.255.0
  broadcast 192.168.111.255
  gateway 192.168.111.1
  dns-search smythies.com
  dns-nameservers 192.168.111.1

Et la table de routage sur l'hôte (à titre de vérification):

doug@s15:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.111.1   0.0.0.0         UG    0      0        0 br0
192.168.111.0   0.0.0.0         255.255.255.0   U     0      0        0 br0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.222.0   0.0.0.0         255.255.255.0   U     0      0        0 br1
5
Doug Smythies