How to access external network (flat mode) from VM using linux bridge plugin???

Asked by Bill Chen

Hi all,

I'm using Grizzly (2013.1) and I've created an OpenStack on a single node and only 1 NIC.

I followed all the instruction from here: https://github.com/mseknibilel/OpenStack-Grizzly-Install-Guide/blob/master/OpenStack_Grizzly_Install_Guide.rst

Now I can create network/subnet/router but I can't access external network from VMs.

I've tried to use flat network (using linux bridge plugin) but when I want to create a network with
# quantum net-create external_net1 --provider:network_type flat --provider:physical_network physnet1 --debug

and it says
Invalid input for operation: Unknown provider:physical_network physnet1.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/quantumclient/shell.py", line 497, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/quantumclient/shell.py", line 50, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/common/command.py", line 35, in run
    return super(OpenStackCommand, self).run(parsed_args)
  File "/usr/lib/python2.7/dist-packages/cliff/display.py", line 84, in run
    column_names, data = self.take_action(parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/quantumclient/quantum/v2_0/__init__.py", line 339, in get_data
    data = obj_creator(body)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 107, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 306, in create_network
    return self.post(self.networks_path, body=body)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 987, in post
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 912, in do_request
    self._handle_fault_response(status_code, replybody)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 893, in _handle_fault_response
    exception_handler_v20(status_code, des_error_body)
  File "/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 80, in exception_handler_v20
    message=error_dict)
QuantumClientException: Invalid input for operation: Unknown provider:physical_network physnet1.

I just don't know why physnet1 is unknown because I've set all the configuration the same with the installation guide.
Would it be a limitation that I only have 1 node and 1 NIC?

If I just want to create a network scenario like this:
http://docs.openstack.org/folsom/openstack-network/admin/content/use_cases_single_flat.html

How should I do?

I'm in my company and have IP 10.109.37.216/29 which can access the external network by proxy.

But my VMs now can only get private IP by "provider:network type 'local' " and cannot access the external network (But it's ok to access with all the VM in the same network/router.)

Please help me because I've been stuck here for a long time.

Thank you very much!

Question information

Language:
English Edit question
Status:
Answered
For:
neutron Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Robert Kukura (rkukura) said :
#1

Hi Bill,

Have you set the following in /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini on your controller node?:

network_vlan_ranges = physnet1

The network_vlan_ranges configuration variable serves two related purposes: it declares the names of the available physical networks, and, optionally, declares the ranges of VLAN tags on each physical network available for allocation to tenant networks. Even if tenant VLANs are not being used, the physical network names still need to be declared in network_vlan_ranges.

-Bob

Revision history for this message
Bill Chen (abcde1499) said :
#2

Hi Robert,

I have my controller, network, and compute node all on the same host.

And I set the network_vlan_ranges to "physnet1:1000:2999" as the installation guide says.

# under [LINUX_BRIDGE] section
physical_interface_mappings = physnet1:eth0
# under [VLANS] section
tenant_network_type = vlan
network_vlan_ranges = physnet1:1000:2999

And I also tried to set network_vlan_ranges to "physnet1", it returns the same result.

Would it be some other place that I might be wrong?

Thank you for your respond!

-Bill

Revision history for this message
Robert Kukura (rkukura) said :
#3

Bill,

The "Invalid input for operation: Unknown provider:physical_network physnet1." error message indicates the plugin is not finding "physnet1" in network_vlan_ranges.

Please try setting:

[DEFAULT]
debug = True
verbose = True

in /etc/quantum/quantum.conf, and then restarting the server. Then look for "Network VLAN ranges: " in the quantum-server log to see if physnet1 is listed.

-Bob

Revision history for this message
Bill Chen (abcde1499) said :
#4

Hi Bob,

Thank you for your kindly help.

I found the quantum-server log like below:

2013-05-03 00:04:09 DEBUG [quantum.service] VLANS.network_vlan_ranges = []
2013-05-03 00:04:09 DEBUG [quantum.service] VLANS.tenant_network_type = local

But I did set the
tenant_network_type = vlan
network_vlan_ranges = physnet1
in /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini

Any idea?

Thank you.

-Bill

Revision history for this message
Robert Kukura (rkukura) said :
#5

Sounds like maybe quantum-server is not reading all the right config files. Look for "config files:" near the top of the log output with debugging enabled and verify that the correct linuxbridge_conf.ini is being loaded. If not, check that they are passed via --config-file args on the quantum-server command line.

Revision history for this message
Bill Chen (abcde1499) said :
#6

Hi,

It seems the config files has been loaded correctly, but still not working.

Now I use Open vSwitch plugin with 2 NIC and it's working right now.

I don't know why linux bridge plugin not work, but I think I'll just use the open vswitch plugin.

Thank you very much for your help.

-Bill

Revision history for this message
Lloyd Parkes (lloyd+lp) said :
#7

I had this same problem and it was caused by /etc/default/quantum-server specifying the OVS ini file instead of the Linux Bridge ini file. I changed the line

    QUANTUM_PLUGIN_CONFIG="/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini"

to be

    QUANTUM_PLUGIN_CONFIG="/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini"

The clue for me was following Robert's advice to enable debugging and to look for the "config files:" log entry. I saw that the config files being loaded were ['/etc/quantum/quantum.conf', '/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini'] which is obviously wrong.

Can you help with this problem?

Provide an answer of your own, or ask Bill Chen for more information if necessary.

To post a message you must log in.