<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p>Hi,</p>
<p>I've asked this question a few times on the IRC channel, and I have an open question on ask.openstack.org but so far noone has managed to answer it successfully.</p>
<p>I have installed OpenStack Grizzly on Ubuntu 12.04 LTS with Quantum and it is up to date with the Ubuntu OpenStack respository.</p>
<p>I have a simple problem: the network interface is not being created when an instance starts up.  Horizon seems to think that the interface is correct.  It lists:</p>
<p>IP Addresses<br />---------------<br />Officenet<br /><br />However, in the logs of the instance I get:</p>
<p>ip: SIOCGIFFLAGS: No such device</p>
<p>...and the only interface that exists inside the instance is lo.</p>
<p>I don't appear to get any obvious errors in any of the quantum or nova logs.</p>
<p>I believe that quantum is supposed to create a tap port on the OVS bridge specified by externel_network_bridge (br-eth1), but this is not happening.  The network physical port connected via eth1 has a hardware DHCP server on it, but it doesn't appear to assigning a network device on that bridge, so the DHCP request is not being forwarded.</p>
<p>I have included my quantum config, l3_agent.ini, and the output of ovs-vsctl as I guess these are the most appropriate.  (Removing commented-out defaults)</p>
<p>Other than solving my particular problem, I'm also trying to understand the process that occurs here.   What service (nova/quantum/something else?) actually creates the port on the OVS bridge and links it to the instance's virtual network device?</p>
<p>Thanks for the help,<br />Tudor.</p>
<p>Quantum.conf</p>
<p>=========</p>
<p>[DEFAULT]<br /># Show more verbose log output (sets INFO log level output)<br />verbose = True</p>
<p># Show debugging output in logs (sets DEBUG log level output)<br />debug = True</p>
<p># Address to bind the API server<br />bind_host = 0.0.0.0</p>
<p># Port the bind the API server to<br />bind_port = 9696</p>
<p># Quantum plugin provider module</p>
<p>core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2</p>
<p># Paste configuration file<br />api_paste_config = /etc/quantum/api-paste.ini</p>
<p># The strategy to be used for auth.<br /># Supported values are 'keystone'(default), 'noauth'.<br />auth_strategy = keystone</p>
<p># AMQP exchange to connect to if using RabbitMQ or QPID</p>
<p>control_exchange = quantum</p>
<p># If passed, use a fake RabbitMQ provider<br />fake_rabbit = False</p>
<p># IP address of the RabbitMQ installation<br />rabbit_host = 10.0.0.1<br /># Password of the RabbitMQ server<br />rabbit_password = password</p>
<p># ============ Notification System Options =====================</p>
<p># Notifications can be sent when network/subnet/port are create, updated or deleted.<br /># There are four methods of sending notifications, logging (via the<br /># log_file directive), rpc (via a message queue),<br /># noop (no notifications sent, the default) or list of them</p>
<p># Defined in notifier api<br />notification_driver = quantum.openstack.common.notifier.list_notifier</p>
<p># Defined in list_notifier</p>
<p>list_notifier_drivers = quantum.openstack.common.notifier.rabbit_notifier</p>
<p>[QUOTAS]</p>
<p>L3_agent.ini</p>
<p>========</p>
<p>[DEFAULT]</p>
<p># OVS</p>
<p>interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver<br /># LinuxBridge<br />#interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver</p>
<p># The Quantum user information for accessing the Quantum API.<br />auth_url = http://10.0.0.1:35357/v2.0<br />auth_region = RegionOne<br />admin_tenant_name = service<br />admin_user = quantum <br />admin_password = password</p>
<p><br /># Use "sudo quantum-rootwrap /etc/quantum/rootwrap.conf" to use the real<br /># root filter facility.<br /># Change to "sudo" to skip the filtering and just run the comand directly<br />root_helper = sudo /usr/bin/quantum-rootwrap /etc/quantum/rootwrap.conf</p>
<p># Allow overlapping IP (Must have kernel build with CONFIG_NET_NS=y and<br /># iproute2 package that supports namespaces).<br /># use_namespaces = True<br />use_namespaces = False</p>
<p># If use_namespaces is set as False then the agent can only configure one router.<br /># This is done by setting the specific router_id.<br /># router_id =<br />router_id = e263323d-ad1d-4930-8739-ebf80cef3f96</p>
<p># Each L3 agent can be associated with at most one external network. This<br /># value should be set to the UUID of that external network. If empty,<br /># the agent will enforce that only a single external networks exists and<br /># use that external network id<br /># gateway_external_net_id =<br />gateway_external_net_id = e1bbbcb1-e20d-48e5-ae89-823c1a485625</p>
<p># Indicates that this L3 agent should also handle routers that do not have</p>
<p># an external network gateway configured. This option should be True only<br /># for a single agent in a Quantum deployment, and may be False for all agents<br /># if all routers must have an external network gateway<br /># handle_internal_only_routers = True</p>
<p># Name of bridge used for external network traffic. This should be set to<br /># empty value for the linux bridge<br /># external_network_bridge = br-ex<br />external_network_bridge = br-eth1</p>
<p># IP address used by Nova metadata server<br /># metadata_ip =<br />metadata_ip = 10.0.0.1</p>
<p># TCP Port used by Nova metadata server<br /># metadata_port = 8775</p>
<p># The time in seconds between state poll requests<br /># polling_interval = 3</p>
<p> </p>
<p>ovs-vsctl show</p>
<p>=========</p>
<p># ovs-vsctl show<br />e1bbbcb1-e20d-48e5-ae89-823c1a485625<br /> Bridge "br-eth1"<br /> Port "phy-br-eth1"<br /> Interface "phy-br-eth1"<br /> Port "eth1"<br /> Interface "eth1"<br /> Port "br-eth1"<br /> Interface "br-eth1"<br /> type: internal<br /> Bridge br-tun<br /> Port patch-int<br /> Interface patch-int<br /> type: patch<br /> options: {peer=patch-tun}<br /> Port br-tun<br /> Interface br-tun<br /> type: internal<br /> Bridge "br-eth0"<br /> Port "phy-br-eth0"<br /> Interface "phy-br-eth0"<br /> Port "eth0"<br /> Interface "eth0"<br /> Port "br-eth0"<br /> Interface "br-eth0"<br /> type: internal<br /> ovs_version: "1.4.0+build0"</p>
<p> </p>
<div> </div>
</body></html>