Pourquoi les ponts Ethernet ne fonctionnent-ils pas avec OpenStack?

J’essaie de configurer OpenStack avec le gestionnaire de réseau nova.network.manager.FlatManager qui relie (dans mon contexte) chaque machine virtuelle au pont réseau br100.

Sur mon hôte, j’utilise le paramètre réseau suivant:

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.50 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 auto eth0:0 iface eth0:0 inet static address 192.168.100.1 netmask 255.255.255.0 broadcast 192.168.100.255 

ce qui entraîne la configuration de l’interface suivante:

 eth0 Link encap:Ethernet HWaddr 00:1a:92:08:15:43 inet addr:192.168.0.50 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::21a:92ff:fe08:1543/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Mesortingc:1 RX packets:5365 errors:0 dropped:0 overruns:0 frame:0 TX packets:5177 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:572855 (572.8 KB) TX bytes:1812681 (1.8 MB) Interrupt:43 Base address:0x6000 eth0:0 Link encap:Ethernet HWaddr 00:1a:92:08:15:43 inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Mesortingc:1 Interrupt:43 Base address:0x6000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Mesortingc:1 RX packets:49079 errors:0 dropped:0 overruns:0 frame:0 TX packets:49079 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:25157104 (25.1 MB) TX bytes:25157104 (25.1 MB) virbr0 Link encap:Ethernet HWaddr c6:b2:4f:da:cd:ff inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Mesortingc:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) vnet1 Link encap:Ethernet HWaddr fe:16:3e:3a:77:dc inet6 addr: fe80::fc16:3eff:fe3a:77dc/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Mesortingc:1 RX packets:153 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:6642 (6.6 KB) TX bytes:468 (468.0 B) 

La configuration du pont (brctl show) ressemble à ceci:

 bridge name bridge id STP enabled interfaces br100 8000.fe163e3a77dc no vnet1 virbr0 8000.000000000000 yes 

J’ai créé une machine virtuelle (à l’aide de vnet1) à laquelle l’adresse IP 192.168.100.2 a été atsortingbuée.

Pour moi, tout semble bien, sauf que eth0: 0 n’est pas attaché au pont. Lorsque j’essaie de modifier cela en exécutant brctl addif br100 eth0:0 , la mise en réseau est complètement interrompue (je ne peux plus brctl addif br100 eth0:0 ping à d’autres hôtes sur le sous-réseau 192.168.0.x), mais je ne peux toujours pas envoyer de commande ping à la machine virtuelle connectée au pont (à l’aide de l’interface vnet1).

Comment puis-je attacher eth0: 0 au pont sans rompre ma connexion eth0 LAN? Ou existe-t-il un moyen plus efficace de mettre en réseau un environnement de test OpenStack sur un hôte avec une seule carte réseau physique?

Tout d’abord, oubliez virbr0 – ajouté par libvirt et non pertinent.

Pour un serveur Openstack “tout-en-un” avec une seule carte réseau, une autre interface virtuelle avec alias ne devrait pas être nécessaire. Comme indiqué dans le guide Openstack , vous devez relier br100 à votre adresse IP publique (eth0) et laisser Nova créer des instances et les br100 à br100 .

Par exemple, ajoutez le /etc/network/interfaces ci-dessous à /etc/network/interfaces , modifiez-le selon le cas pour static:

 auto br100
 iface br100 inet dhcp
     bridge_ports eth0
     bridge_stp off
     bridge_maxwait 0
     bridge_fd 0

Le sous-réseau IP privé autorisé doit être configuré via l’option --fixed-range dans nova.conf , et l’option --flat_network_bridge définie sur br100 .

Veuillez coller votre nova.conf dans la question pour faciliter le dépannage!