Warum funktioniert Ethernet Bridging nicht mit OpenStack?

7

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

Auf meinem Host verwende ich die folgende Netzwerkeinstellung:

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

Dies führt zu der folgenden 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 an die Brücke gebunden ist. Wenn ich versuche, dies durch Ausführen zu ändern, wird das brctl addif br100 eth0:0Netzwerk vollständig unterbrochen (ich kann keine anderen Hosts im Subnetz 192.168.0.x mehr anpingen), aber ich kann die an die Bridge angeschlossene virtuelle Maschine (über die vnet1-Schnittstelle) nicht anpingen.

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

ChrisM
quelle

Antworten:

4

Vergessen Sie zunächst 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 Alias-Schnittstelle erforderlich sein. Wie im Openstack-Handbuch beschrieben , sollten Sie eine Brücke br100zu Ihrer öffentlichen IP-Adresse (eth0) schlagen und Nova Instanzen erstellen und diese überbrücken lassen br100.

Fügen Sie z. B. Folgendes hinzu, /etc/network/interfacesund ändern Sie es entsprechend der statischen Aufladung:

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

Das zulässige private IP-Subnetz muss über die --fixed-rangeOption in konfiguriert nova.confund die --flat_network_bridgeOption auf gesetzt werden br100.

Bitte fügen Sie Ihre nova.confin die Frage ein, um bei der weiteren Fehlerbehebung zu helfen!

Drehgestell
quelle
Wenn Sie ein Desktop-Ubuntu mit NetworkManager ausführen und Folsom installieren möchten, fügen Sie diese Abschnitte hinzu interfacesund 1) lassen Sie NetworkManager laufen, deaktivieren Sie es mit echo "manual" | sudo tee /etc/init/network-manager.overrideoder entfernen Sie es?
Blair Zajac