webentwicklung-frage-antwort-db.com.de

Warum funktioniert Ethernet Bridging nicht mit OpenStack?

Ich versuche, OpenStack mit dem nova.network.manager.FlatManager-Netzwerkmanager einzurichten, der (in meiner Einstellung) jede virtuelle Maschine mit der br100-Netzwerkbrücke verbindet.

Auf meinem Host verwende ich die folgenden Netzwerkeinstellungen:

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

daraus ergibt sich die folgende Schnittstellenkonfiguration:

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  Metric: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  Metric: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  Metric: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  Metric: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  Metric: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)

Die Brückenkonfiguration (brctl show) sieht folgendermaßen aus:

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

Ich habe eine virtuelle Maschine (mit vnet1) erstellt, der die IP-Adresse 192.168.100.2 zugewiesen wurde.

Für mich scheint alles in Ordnung zu sein, außer dass eth0: 0 nicht mit der Brücke verbunden ist. Wenn ich versuche, dies durch Ausführen von brctl addif br100 eth0:0 zu ändern, wird das Netzwerk vollständig unterbrochen (ich kann andere Hosts im Subnetz 192.168.0.x nicht mehr anpingen), aber ich kann die an die Bridge angeschlossene virtuelle Maschine nicht anpingen (mithilfe von vnet1-Schnittstelle).

Wie kann ich eth0: 0 an die Bridge anschließen, ohne meine eth0 LAN-Verbindung zu unterbrechen? Oder gibt es eine überlegene Möglichkeit für die Vernetzung in einer OpenStack-Testumgebung auf einem Host mit nur einem physischen Netzwerkadapter?

7
ChrisM

Vergessen Sie zuerst virbr0 - das wird von libvirt hinzugefügt und ist irrelevant.

Für einen "All-in-One" -Openstack-Server mit einer Netzwerkkarte sollte keine weitere virtuelle Schnittstelle mit Alias ​​erforderlich sein. Wie im Openstack-Handbuch beschrieben , sollten Sie br100 mit Ihrer öffentlichen IP-Adresse (eth0) verbinden und Lassen Sie Nova Instanzen erstellen und diese mit br100 überbrücken.

z.B. Füge das Folgende zu /etc/network/interfaces hinzu und ändere es entsprechend der statischen Aufladung:

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

Das zulässige private IP-Subnetz muss über die Option --fixed-range in nova.conf und die Option --flat_network_bridge auf br100 konfiguriert werden.

Bitte fügen Sie Ihren nova.conf in die Frage ein, um bei der weiteren Fehlerbehebung zu helfen!

4
Bogie