Why isn't ethernet bridging working with OpenStack?
I'm trying to setup OpenStack with the nova.network.manager.FlatManager network manager which attaches (in my setting) every virtual machine to the br100 network bridge.
On my host, I'm using the following network setting:
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
which results in the following interface configuration:
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)
The bridge configuration (brctl show) looks like this:
bridge name bridge id STP enabled interfaces
br100 8000.fe163e3a77dc no vnet1
virbr0 8000.000000000000 yes
I've created a virtual machine (using vnet1) that has been assigned the IP address 192.168.100.2.
For me, everything seem fines, except that eth0:0 is not attached to the bridge. When I try to change that by running brctl addif br100 eth0:0
, networking breaks completely (I cannot ping other hosts on the 192.168.0.x subnet anymore), but still, I cannot ping the virtual machine attached to the bridge (using the vnet1 interface).
How can I attach eth0:0 to the bridge without breaking my eth0 LAN connection? Or is there a superior way for networking in an OpenStack test environment on a host with only one physical network adapter?
Solution 1:
First, forget virbr0
-- that's added by libvirt and is irrelevant.
For an "all-in-one" Openstack server with one NIC, there should be no need for another aliased virtual interface. As discussed in the Openstack guide, you should bridge br100
to your public IP address (eth0), and let Nova create instances and bridge them to br100
.
e.g. add the below to /etc/network/interfaces
, modify as appropriate for static:
auto br100 iface br100 inet dhcp bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0
The allowable private IP subnet has to be configured via the --fixed-range
option in nova.conf
, and the --flat_network_bridge
option set to br100
.
Please paste your
nova.conf
in the question to help with further troubleshooting!