Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and conigured all OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron I correctly installed and user Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one setted in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and conigured all OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron I correctly installed and user Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one setted in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and conigured configured all Havana OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron neutron. I correctly installed and user used Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one setted in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and configured all Havana OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron. I correctly installed and used Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one setted set in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and configured all Havana OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron. I correctly installed and used Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one set in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

keystone user list:

 +----------------------------------+---------+---------+---------------------+
    |                id                |   name  | enabled |        email        |
    +----------------------------------+---------+---------+---------------------+
    | 8e3a1eb12b4d40d5a1fc3945a0ddfab3 |  admin  |   True  |   nano@example.com  |
    | 0a0f96b166a4427683262a5dd1e9bc20 |  betim  |   True  |                     |
    | e41b8b5ae4104530b306154518d0fce0 |  glance |   True  |  glance@example.com |
    | b1813a584303498684a2c7c4826e08db | neutron |   True  | neutron@example.com |
    | cf9d095329c742bdbb39bdd8652298f8 |   nova  |   True  |   nova@example.com  |
    +----------------------------------+---------+---------+---------------------+

tenant-list:

+----------------------------------+---------+---------+
|                id                |   name  | enabled |
+----------------------------------+---------+---------+
| b88a37c00ed94428a26c58bcb3abfde3 |  admin  |   True  |
| 3611554d610c45a0a591c738e9f3b1bc | service |   True  |
| 5e35fff9d95742fab2a3a5f929f73b1c |  users  |   True  |
+----------------------------------+---------+---------+

role-list:

+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| 6e7cabd1d3384a64a2842f3f3a8a4130 |  admin   |
+----------------------------------+----------+

endpoint-list:

+----------------------------------+-----------+--------------------------------------------+-----------------------------------------
| id | region | publicurl | internalurl | adminurl | service_id |
| 0336baf3de36441b93d3add97ffce4e0 | regionOne | http://xxx.xxx.xxx.96:5000/v2.0| http://192.168.1.194:5000/v2.0 | http://192.168.1.194:35357/v2.0 | 396f3bd5d9fb4c37ae591f08b7592378 |
| 285353f72df94fa3b8b59e6ce94a1fdb | regionOne | http://xxx.xxx.xxx.96:9292 | http://192.168.1.194:9292 | http://192.168.1.194:9292 | 9fc7dfca5c6448a5b4d60ad63bd19d73 |
| 3c24180a096a4bb9a7101339ea1c3416 | regionOne | http://xxx.xxx.xxx.96:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | ec384a3eb0b248d5b7684c0c4fd21fd8 |
| 547b59cea7a64abbbecf151b3bbc3a18 | regionOne | http://xxx.xxx.xxx.96:9696 | http://192.168.1.194:9696 | http://192.168.1.194:9696 | c79c0c245b794298b9b45bfd72baa464 |
+----------------------------------+-----------+--------------------------------------------+--------------------------------------------+--------------------------------------------+----------------------------------+

service-list:

+----------------------------------+----------+----------+------------------------------+
|                id                |   name   |   type   |         description          |
+----------------------------------+----------+----------+------------------------------+
| 9fc7dfca5c6448a5b4d60ad63bd19d73 |  glance  |  image   |     Glance Image Service     |
| 396f3bd5d9fb4c37ae591f08b7592378 | keystone | identity |  Keystone Identity Service   |
| c79c0c245b794298b9b45bfd72baa464 | neutron  | network  | OpenStack Networking Service |
| ec384a3eb0b248d5b7684c0c4fd21fd8 |   nova   | compute  |     Nova Compute service     |
+----------------------------------+----------+----------+------------------------------+

In neutron.conf i have:

[DEFAULT]
auth_strategy=keystone
[keystone_authtoken]
auth_host = 192.168.1.194
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = neutron
admin_password = nano

I also updated the password of the neutron user with keystone client to enshure that no mistype occured during the user creation.

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and configured all Havana OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron. I correctly installed and used Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one set in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

keystone user list:

 +----------------------------------+---------+---------+---------------------+
    |                id                |   name  | enabled |        email        |
    +----------------------------------+---------+---------+---------------------+
    | 8e3a1eb12b4d40d5a1fc3945a0ddfab3 |  admin  |   True  |   nano@example.com  |
    | 0a0f96b166a4427683262a5dd1e9bc20 |  betim  |   True  |                     |
    | e41b8b5ae4104530b306154518d0fce0 |  glance |   True  |  glance@example.com |
    | b1813a584303498684a2c7c4826e08db | neutron |   True  | neutron@example.com |
    | cf9d095329c742bdbb39bdd8652298f8 |   nova  |   True  |   nova@example.com  |
    +----------------------------------+---------+---------+---------------------+

tenant-list:

+----------------------------------+---------+---------+
|                id                |   name  | enabled |
+----------------------------------+---------+---------+
| b88a37c00ed94428a26c58bcb3abfde3 |  admin  |   True  |
| 3611554d610c45a0a591c738e9f3b1bc | service |   True  |
| 5e35fff9d95742fab2a3a5f929f73b1c |  users  |   True  |
+----------------------------------+---------+---------+

role-list:

+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| 6e7cabd1d3384a64a2842f3f3a8a4130 |  admin   |
+----------------------------------+----------+

endpoint-list:

+----------------------------------+-----------+--------------------------------------------+-----------------------------------------
| id | region | publicurl | internalurl | adminurl | service_id |
| 0336baf3de36441b93d3add97ffce4e0 | regionOne | http://xxx.xxx.xxx.96:5000/v2.0| http://192.168.1.194:5000/v2.0 | http://192.168.1.194:35357/v2.0 | 396f3bd5d9fb4c37ae591f08b7592378 |
| 285353f72df94fa3b8b59e6ce94a1fdb | regionOne | http://xxx.xxx.xxx.96:9292 | http://192.168.1.194:9292 | http://192.168.1.194:9292 | 9fc7dfca5c6448a5b4d60ad63bd19d73 |
| 3c24180a096a4bb9a7101339ea1c3416 | regionOne | http://xxx.xxx.xxx.96:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | ec384a3eb0b248d5b7684c0c4fd21fd8 |
| 547b59cea7a64abbbecf151b3bbc3a18 | regionOne | http://xxx.xxx.xxx.96:9696 | http://192.168.1.194:9696 | http://192.168.1.194:9696 | c79c0c245b794298b9b45bfd72baa464 |
+----------------------------------+-----------+--------------------------------------------+--------------------------------------------+--------------------------------------------+----------------------------------+

service-list:

+----------------------------------+----------+----------+------------------------------+
|                id                |   name   |   type   |         description          |
+----------------------------------+----------+----------+------------------------------+
| 9fc7dfca5c6448a5b4d60ad63bd19d73 |  glance  |  image   |     Glance Image Service     |
| 396f3bd5d9fb4c37ae591f08b7592378 | keystone | identity |  Keystone Identity Service   |
| c79c0c245b794298b9b45bfd72baa464 | neutron  | network  | OpenStack Networking Service |
| ec384a3eb0b248d5b7684c0c4fd21fd8 |   nova   | compute  |     Nova Compute service     |
+----------------------------------+----------+----------+------------------------------+

In neutron.conf i have:

[DEFAULT]
auth_strategy=keystone
[keystone_authtoken]
auth_host = 192.168.1.194
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = neutron
admin_password = nano

I also updated the password of the neutron user with keystone client to enshure that no mistype occured during the user creation.

UPDATE

I checked the credential against keystone using the "source" command on the file:

export OS_USERNAME=neutron
export OS_PASSWORD=nano
export OS_TENANT_NAME=service
export OS_AUTH_URL=http://192.168.1.194:35357/v2.0

and I opbtained the token. Using the --verbose tag on the neutron net-list command I can see that keystone actually give to the neutron client the token, and it is correctly included in the http header of the subsequent request to the neutron server, but it answer me with a 401 "Authentication required".

Here is the curl command sequence of the neutron client:

DEBUG: neutronclient.neutron.v2_0.network.ListNetwork get_data(Namespace(columns=[], fields=[], formatter='table', page_size=None, quote_mode='nonnumeric', request_format='json', show_details=False, sort_dir=[], sort_key=[]))
DEBUG: neutronclient.client 
REQ: curl -i http://192.168.1.194:35357/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient" -d '{"auth": {"tenantName": "service", "passwordCredentials": {"username": "neutron", "password": "nano"}}}'

DEBUG: neutronclient.client RESP:{'date': 'Fri, 29 Nov 2013 16:42:54 GMT', 'vary': 'X-Auth-Token', 'content-length': '4537', 'status': '200', 'content-type': 'application/json'} {"access": {"token": {"issued_at": "2013-11-29T16:42:54.830845", "expires": "2013-11-30T16:42:54Z", "id": "MIIIWQYJKoZIhvcNAQcCoIIISjCCCEYCAQExCTAHBgUrDgMCGjCCBq8GCSqGSIb3DQEHAaCCBqAEggaceyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0xMS0yOVQxNjo0Mjo1NC44MzA4NDUiLCAiZXhwaXJlcyI6ICIyMDEzLTExLTMwVDE2OjQyOjU0WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIlNlcnZpY2UgVGVuYW50IiwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAibmFtZSI6ICJzZXJ2aWNlIn19LCAic2VydmljZUNhdGFsb2ciOiBbeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo5MjkyIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTI5MiIsICJpZCI6ICIyZGQzNTllYjMyYmQ0YjZmYmMzNDRkZGY3NjdiZTdmZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE0MS4yNTAuNDAuOTY6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojg3NzQvdjIvMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIiwgImlkIjogIjIwODQwYzk4ZTkzMzRmN2NhMjUwYjZlMDlmZmNhYTI4IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTY5NiIsICJyZWdpb24iOiAicmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojk2OTYiLCAiaWQiOiAiN2YwMjUyMTBkNTE1NDlmNmE4ZGVlNGMxNzZiOWYwMmMiLCAicHVibGljVVJMIjogImh0dHA6Ly8xNDEuMjUwLjQwLjk2Ojk2OTYifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6NTAwMC92Mi4wIiwgImlkIjogIjMwYmRhYjU2NDBkNjRkZTQ4YTA1M2ViZTU1MWE5ODZiIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo1MDAwL3YyLjAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJuYW1lIjogIm5ldXRyb24iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImIxODEzYTU4NDMwMzQ5ODY4NGEyYzdjNDgyNmUwOGRiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAibmV1dHJvbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI2ZTdjYWJkMWQzMzg0YTY0YTI4NDJmM2YzYThhNDEzMCJdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAJYc7NyxlXzfsEhkFW5J2AMme4QbfCU15LQpjPD7yq0+MBdCqXYwsWZj0YssrgqW89bu6-dojc3HoJIfVJ63jIAaTKDEiz0h1EG7AenfnZ-IQnCZrGESVw1CfFB50t6iapCBAvSZ2e8AasfzSKwFRzYRuDirac+PNSodQvd-WaxQZtoXj1-JZCwePEOXRrq-kouICsNsinGIREWx-NDE60P7jJaUFbybFS5BWCIlZfzQF3VlOT2gRxG7yl+gMWlPmXQhFc6F8n+4m54rXVVUO1pzrTNBAXFl3XTFwK1kbOekH8fgfvFpHPZTv4IdrM-RX4aSk6LGvU3PEDn18OIk0wI=", "tenant": {"description": "Service Tenant", "enabled": true, "id": "3611554d610c45a0a591c738e9f3b1bc", "name": "service"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.1.194:9292", "region": "regionOne", "internalURL": "http://192.168.1.194:9292", "id": "2dd359eb32bd4b6fbc344ddf767be7ff", "publicURL": "http://xxx.xxx.xxx.96:9292"}], "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://192.168.1.194:8774/v2/3611554d610c45a0a591c738e9f3b1bc", "region": "regionOne", "internalURL": "http://192.168.1.194:8774/v2/3611554d610c45a0a591c738e9f3b1bc", "id": "20840c98e9334f7ca250b6e09ffcaa28", "publicURL": "http://xxx.xxx.xxx.96:8774/v2/3611554d610c45a0a591c738e9f3b1bc"}], "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL": "http://192.168.1.194:9696", "region": "regionOne", "internalURL": "http://192.168.1.194:9696", "id": "7f025210d51549f6a8dee4c176b9f02c", "publicURL": "http://xxx.xxx.xxx.96:9696"}], "endpoints_links": [], "type": "network", "name": "neutron"}, {"endpoints": [{"adminURL": "http://192.168.1.194:35357/v2.0", "region": "regionOne", "internalURL": "http://192.168.1.194:5000/v2.0", "id": "30bdab5640d64de48a053ebe551a986b", "publicURL": "http://xxx.xxx.xxx.96:5000/v2.0"}], "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username": "neutron", "roles_links": [], "id": "b1813a584303498684a2c7c4826e08db", "roles": [{"name": "admin"}], "name": "neutron"}, "metadata": {"is_admin": 0, "roles": ["6e7cabd1d3384a64a2842f3f3a8a4130"]}}}

DEBUG: neutronclient.client 
REQ: curl -i http://xxx.xxx.xxx.96:9696/v2.0/networks.json -X GET -H "X-Auth-Token: MIIIWQYJKoZIhvcNAQcCoIIISjCCCEYCAQExCTAHBgUrDgMCGjCCBq8GCSqGSIb3DQEHAaCCBqAEggaceyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0xMS0yOVQxNjo0Mjo1NC44MzA4NDUiLCAiZXhwaXJlcyI6ICIyMDEzLTExLTMwVDE2OjQyOjU0WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIlNlcnZpY2UgVGVuYW50IiwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAibmFtZSI6ICJzZXJ2aWNlIn19LCAic2VydmljZUNhdGFsb2ciOiBbeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo5MjkyIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTI5MiIsICJpZCI6ICIyZGQzNTllYjMyYmQ0YjZmYmMzNDRkZGY3NjdiZTdmZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE0MS4yNTAuNDAuOTY6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojg3NzQvdjIvMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIiwgImlkIjogIjIwODQwYzk4ZTkzMzRmN2NhMjUwYjZlMDlmZmNhYTI4IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTY5NiIsICJyZWdpb24iOiAicmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojk2OTYiLCAiaWQiOiAiN2YwMjUyMTBkNTE1NDlmNmE4ZGVlNGMxNzZiOWYwMmMiLCAicHVibGljVVJMIjogImh0dHA6Ly8xNDEuMjUwLjQwLjk2Ojk2OTYifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6NTAwMC92Mi4wIiwgImlkIjogIjMwYmRhYjU2NDBkNjRkZTQ4YTA1M2ViZTU1MWE5ODZiIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo1MDAwL3YyLjAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJuYW1lIjogIm5ldXRyb24iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImIxODEzYTU4NDMwMzQ5ODY4NGEyYzdjNDgyNmUwOGRiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAibmV1dHJvbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI2ZTdjYWJkMWQzMzg0YTY0YTI4NDJmM2YzYThhNDEzMCJdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAJYc7NyxlXzfsEhkFW5J2AMme4QbfCU15LQpjPD7yq0+MBdCqXYwsWZj0YssrgqW89bu6-dojc3HoJIfVJ63jIAaTKDEiz0h1EG7AenfnZ-IQnCZrGESVw1CfFB50t6iapCBAvSZ2e8AasfzSKwFRzYRuDirac+PNSodQvd-WaxQZtoXj1-JZCwePEOXRrq-kouICsNsinGIREWx-NDE60P7jJaUFbybFS5BWCIlZfzQF3VlOT2gRxG7yl+gMWlPmXQhFc6F8n+4m54rXVVUO1pzrTNBAXFl3XTFwK1kbOekH8fgfvFpHPZTv4IdrM-RX4aSk6LGvU3PEDn18OIk0wI=" -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient"

DEBUG: neutronclient.client RESP:{'date': 'Fri, 29 Nov 2013 16:42:55 GMT', 'status': '401', 'content-length': '23', 'content-type': 'text/plain', 'www-authenticate': "Keystone uri='http://192.168.1.194:5000'"} Authentication required

and here is the same command with --debug:

Authentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

Why does keystone not authenticate my neutron server?

Hello everybody. This is my first question here so I'm sorry if something is not formatted correctly. I installed and configured all Havana OpenStack entities on a single Ubuntu server machine just for testing purpose. The server machine runs nova-compute, nova-controller, keystone, glance and neutron. I correctly installed and used Keystone, Glance, Nova and Swift for a copule of month and now I'm trying to introduce Neutron for networking. I followed this guide http://docs.openstack.org/havana/install-guide/install/apt/content/ch_neutron.html using the ovs plugin with GRE encapsulation.

When I try the command neutron net-list i obtain:

    enterAuthentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required

I can use glance and nova client without any authentication issue, exporting admin username and password and tenantid in enrivonment variables, but the neutron client keeps on creating this problem. I tried with the auth_strategy=noauth in the file neutron.conf and it works but i would like to have a secure access to the neutron api.

Surfing through the log I found in /var/log/neutron.log:

2013-11-28 13:35:04.181 29656 WARNING keystoneclient.middleware.auth_token [-] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}
2013-11-28 13:35:04.182 29656 WARNING keystoneclient.middleware.auth_token [-] Authorization failed for token MIIIUQY[...]Rfn5

So the token is correctly retrieved from the keystone server but then it is not acceppted or well formatted by the neutron client, hence the keystone server refuse it in subsequent comunications.

In /var/log/keystone/keystone.log:

2013-11-28 13:35:04.596 26011 WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from 192.168.1.194

and after abilitating debug loggin on the same file:

2013-11-28 13:45:22.851 31655 WARNING keystone.common.wsgi [-] Authorization failed. Invalid user / password from 192.168.1.194

obviously i checked user and password in the neutron.conf file and the one set in the neutron user in keystone so I'm really lost. Maybe some text coding issue or am I missin something?

keystone user list:

 +----------------------------------+---------+---------+---------------------+
    |                id                |   name  | enabled |        email        |
    +----------------------------------+---------+---------+---------------------+
    | 8e3a1eb12b4d40d5a1fc3945a0ddfab3 |  admin  |   True  |   nano@example.com  |
    | 0a0f96b166a4427683262a5dd1e9bc20 |  betim  |   True  |                     |
    | e41b8b5ae4104530b306154518d0fce0 |  glance |   True  |  glance@example.com |
    | b1813a584303498684a2c7c4826e08db | neutron |   True  | neutron@example.com |
    | cf9d095329c742bdbb39bdd8652298f8 |   nova  |   True  |   nova@example.com  |
    +----------------------------------+---------+---------+---------------------+

tenant-list:

+----------------------------------+---------+---------+
|                id                |   name  | enabled |
+----------------------------------+---------+---------+
| b88a37c00ed94428a26c58bcb3abfde3 |  admin  |   True  |
| 3611554d610c45a0a591c738e9f3b1bc | service |   True  |
| 5e35fff9d95742fab2a3a5f929f73b1c |  users  |   True  |
+----------------------------------+---------+---------+

role-list:

+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |
| 6e7cabd1d3384a64a2842f3f3a8a4130 |  admin   |
+----------------------------------+----------+

endpoint-list:

+----------------------------------+-----------+--------------------------------------------+-----------------------------------------
| id | region | publicurl | internalurl | adminurl | service_id |
| 0336baf3de36441b93d3add97ffce4e0 | regionOne | http://xxx.xxx.xxx.96:5000/v2.0| http://192.168.1.194:5000/v2.0 | http://192.168.1.194:35357/v2.0 | 396f3bd5d9fb4c37ae591f08b7592378 |
| 285353f72df94fa3b8b59e6ce94a1fdb | regionOne | http://xxx.xxx.xxx.96:9292 | http://192.168.1.194:9292 | http://192.168.1.194:9292 | 9fc7dfca5c6448a5b4d60ad63bd19d73 |
| 3c24180a096a4bb9a7101339ea1c3416 | regionOne | http://xxx.xxx.xxx.96:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | http://192.168.1.194:8774/v2/%(tenant_id)s | ec384a3eb0b248d5b7684c0c4fd21fd8 |
| 547b59cea7a64abbbecf151b3bbc3a18 | regionOne | http://xxx.xxx.xxx.96:9696 | http://192.168.1.194:9696 | http://192.168.1.194:9696 | c79c0c245b794298b9b45bfd72baa464 |
+----------------------------------+-----------+--------------------------------------------+--------------------------------------------+--------------------------------------------+----------------------------------+

service-list:

+----------------------------------+----------+----------+------------------------------+
|                id                |   name   |   type   |         description          |
+----------------------------------+----------+----------+------------------------------+
| 9fc7dfca5c6448a5b4d60ad63bd19d73 |  glance  |  image   |     Glance Image Service     |
| 396f3bd5d9fb4c37ae591f08b7592378 | keystone | identity |  Keystone Identity Service   |
| c79c0c245b794298b9b45bfd72baa464 | neutron  | network  | OpenStack Networking Service |
| ec384a3eb0b248d5b7684c0c4fd21fd8 |   nova   | compute  |     Nova Compute service     |
+----------------------------------+----------+----------+------------------------------+

In neutron.conf i have:

[DEFAULT]
auth_strategy=keystone
[keystone_authtoken]
auth_host = 192.168.1.194
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = neutron
admin_password = nano

I also updated the password of the neutron user with keystone client to enshure that no mistype occured during the user creation.

UPDATE

I checked the credential against keystone using the "source" command on the file:

export OS_USERNAME=neutron
export OS_PASSWORD=nano
export OS_TENANT_NAME=service
export OS_AUTH_URL=http://192.168.1.194:35357/v2.0

and I opbtained the token. Using the --verbose tag on the neutron net-list command I can see that keystone actually give gives the token to the neutron client the token, client, and it the token itself is correctly included in the http header of the subsequent request to the neutron server, but it answer me with a 401 "Authentication required".

Here is the curl command sequence of the neutron client:

DEBUG: neutronclient.neutron.v2_0.network.ListNetwork get_data(Namespace(columns=[], fields=[], formatter='table', page_size=None, quote_mode='nonnumeric', request_format='json', show_details=False, sort_dir=[], sort_key=[]))
DEBUG: neutronclient.client 
REQ: curl -i http://192.168.1.194:35357/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient" -d '{"auth": {"tenantName": "service", "passwordCredentials": {"username": "neutron", "password": "nano"}}}'

DEBUG: neutronclient.client RESP:{'date': 'Fri, 29 Nov 2013 16:42:54 GMT', 'vary': 'X-Auth-Token', 'content-length': '4537', 'status': '200', 'content-type': 'application/json'} {"access": {"token": {"issued_at": "2013-11-29T16:42:54.830845", "expires": "2013-11-30T16:42:54Z", "id": "MIIIWQYJKoZIhvcNAQcCoIIISjCCCEYCAQExCTAHBgUrDgMCGjCCBq8GCSqGSIb3DQEHAaCCBqAEggaceyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0xMS0yOVQxNjo0Mjo1NC44MzA4NDUiLCAiZXhwaXJlcyI6ICIyMDEzLTExLTMwVDE2OjQyOjU0WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIlNlcnZpY2UgVGVuYW50IiwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAibmFtZSI6ICJzZXJ2aWNlIn19LCAic2VydmljZUNhdGFsb2ciOiBbeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo5MjkyIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTI5MiIsICJpZCI6ICIyZGQzNTllYjMyYmQ0YjZmYmMzNDRkZGY3NjdiZTdmZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE0MS4yNTAuNDAuOTY6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojg3NzQvdjIvMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIiwgImlkIjogIjIwODQwYzk4ZTkzMzRmN2NhMjUwYjZlMDlmZmNhYTI4IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTY5NiIsICJyZWdpb24iOiAicmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojk2OTYiLCAiaWQiOiAiN2YwMjUyMTBkNTE1NDlmNmE4ZGVlNGMxNzZiOWYwMmMiLCAicHVibGljVVJMIjogImh0dHA6Ly8xNDEuMjUwLjQwLjk2Ojk2OTYifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6NTAwMC92Mi4wIiwgImlkIjogIjMwYmRhYjU2NDBkNjRkZTQ4YTA1M2ViZTU1MWE5ODZiIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo1MDAwL3YyLjAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJuYW1lIjogIm5ldXRyb24iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImIxODEzYTU4NDMwMzQ5ODY4NGEyYzdjNDgyNmUwOGRiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAibmV1dHJvbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI2ZTdjYWJkMWQzMzg0YTY0YTI4NDJmM2YzYThhNDEzMCJdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAJYc7NyxlXzfsEhkFW5J2AMme4QbfCU15LQpjPD7yq0+MBdCqXYwsWZj0YssrgqW89bu6-dojc3HoJIfVJ63jIAaTKDEiz0h1EG7AenfnZ-IQnCZrGESVw1CfFB50t6iapCBAvSZ2e8AasfzSKwFRzYRuDirac+PNSodQvd-WaxQZtoXj1-JZCwePEOXRrq-kouICsNsinGIREWx-NDE60P7jJaUFbybFS5BWCIlZfzQF3VlOT2gRxG7yl+gMWlPmXQhFc6F8n+4m54rXVVUO1pzrTNBAXFl3XTFwK1kbOekH8fgfvFpHPZTv4IdrM-RX4aSk6LGvU3PEDn18OIk0wI=", "tenant": {"description": "Service Tenant", "enabled": true, "id": "3611554d610c45a0a591c738e9f3b1bc", "name": "service"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://192.168.1.194:9292", "region": "regionOne", "internalURL": "http://192.168.1.194:9292", "id": "2dd359eb32bd4b6fbc344ddf767be7ff", "publicURL": "http://xxx.xxx.xxx.96:9292"}], "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://192.168.1.194:8774/v2/3611554d610c45a0a591c738e9f3b1bc", "region": "regionOne", "internalURL": "http://192.168.1.194:8774/v2/3611554d610c45a0a591c738e9f3b1bc", "id": "20840c98e9334f7ca250b6e09ffcaa28", "publicURL": "http://xxx.xxx.xxx.96:8774/v2/3611554d610c45a0a591c738e9f3b1bc"}], "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL": "http://192.168.1.194:9696", "region": "regionOne", "internalURL": "http://192.168.1.194:9696", "id": "7f025210d51549f6a8dee4c176b9f02c", "publicURL": "http://xxx.xxx.xxx.96:9696"}], "endpoints_links": [], "type": "network", "name": "neutron"}, {"endpoints": [{"adminURL": "http://192.168.1.194:35357/v2.0", "region": "regionOne", "internalURL": "http://192.168.1.194:5000/v2.0", "id": "30bdab5640d64de48a053ebe551a986b", "publicURL": "http://xxx.xxx.xxx.96:5000/v2.0"}], "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username": "neutron", "roles_links": [], "id": "b1813a584303498684a2c7c4826e08db", "roles": [{"name": "admin"}], "name": "neutron"}, "metadata": {"is_admin": 0, "roles": ["6e7cabd1d3384a64a2842f3f3a8a4130"]}}}

DEBUG: neutronclient.client 
REQ: curl -i http://xxx.xxx.xxx.96:9696/v2.0/networks.json -X GET -H "X-Auth-Token: MIIIWQYJKoZIhvcNAQcCoIIISjCCCEYCAQExCTAHBgUrDgMCGjCCBq8GCSqGSIb3DQEHAaCCBqAEggaceyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxMy0xMS0yOVQxNjo0Mjo1NC44MzA4NDUiLCAiZXhwaXJlcyI6ICIyMDEzLTExLTMwVDE2OjQyOjU0WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogIlNlcnZpY2UgVGVuYW50IiwgImVuYWJsZWQiOiB0cnVlLCAiaWQiOiAiMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAibmFtZSI6ICJzZXJ2aWNlIn19LCAic2VydmljZUNhdGFsb2ciOiBbeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo5MjkyIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTI5MiIsICJpZCI6ICIyZGQzNTllYjMyYmQ0YjZmYmMzNDRkZGY3NjdiZTdmZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzE0MS4yNTAuNDAuOTY6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojg3NzQvdjIvMzYxMTU1NGQ2MTBjNDVhMGE1OTFjNzM4ZTlmM2IxYmMiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIiwgImlkIjogIjIwODQwYzk4ZTkzMzRmN2NhMjUwYjZlMDlmZmNhYTI4IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo4Nzc0L3YyLzM2MTE1NTRkNjEwYzQ1YTBhNTkxYzczOGU5ZjNiMWJjIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6OTY5NiIsICJyZWdpb24iOiAicmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xOTIuMTY4LjEuMTk0Ojk2OTYiLCAiaWQiOiAiN2YwMjUyMTBkNTE1NDlmNmE4ZGVlNGMxNzZiOWYwMmMiLCAicHVibGljVVJMIjogImh0dHA6Ly8xNDEuMjUwLjQwLjk2Ojk2OTYifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTkyLjE2OC4xLjE5NDozNTM1Ny92Mi4wIiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzE5Mi4xNjguMS4xOTQ6NTAwMC92Mi4wIiwgImlkIjogIjMwYmRhYjU2NDBkNjRkZTQ4YTA1M2ViZTU1MWE5ODZiIiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTQxLjI1MC40MC45Njo1MDAwL3YyLjAifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAiaWRlbnRpdHkiLCAibmFtZSI6ICJrZXlzdG9uZSJ9XSwgInVzZXIiOiB7InVzZXJuYW1lIjogIm5ldXRyb24iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImIxODEzYTU4NDMwMzQ5ODY4NGEyYzdjNDgyNmUwOGRiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAibmV1dHJvbiJ9LCAibWV0YWRhdGEiOiB7ImlzX2FkbWluIjogMCwgInJvbGVzIjogWyI2ZTdjYWJkMWQzMzg0YTY0YTI4NDJmM2YzYThhNDEzMCJdfX19MYIBgTCCAX0CAQEwXDBXMQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVW5zZXQxDjAMBgNVBAcMBVVuc2V0MQ4wDAYDVQQKDAVVbnNldDEYMBYGA1UEAwwPd3d3LmV4YW1wbGUuY29tAgEBMAcGBSsOAwIaMA0GCSqGSIb3DQEBAQUABIIBAJYc7NyxlXzfsEhkFW5J2AMme4QbfCU15LQpjPD7yq0+MBdCqXYwsWZj0YssrgqW89bu6-dojc3HoJIfVJ63jIAaTKDEiz0h1EG7AenfnZ-IQnCZrGESVw1CfFB50t6iapCBAvSZ2e8AasfzSKwFRzYRuDirac+PNSodQvd-WaxQZtoXj1-JZCwePEOXRrq-kouICsNsinGIREWx-NDE60P7jJaUFbybFS5BWCIlZfzQF3VlOT2gRxG7yl+gMWlPmXQhFc6F8n+4m54rXVVUO1pzrTNBAXFl3XTFwK1kbOekH8fgfvFpHPZTv4IdrM-RX4aSk6LGvU3PEDn18OIk0wI=" -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-neutronclient"

DEBUG: neutronclient.client RESP:{'date': 'Fri, 29 Nov 2013 16:42:55 GMT', 'status': '401', 'content-length': '23', 'content-type': 'text/plain', 'www-authenticate': "Keystone uri='http://192.168.1.194:5000'"} Authentication required

and here is the same command with --debug:

Authentication required
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 517, in run_subcommand
    return run_command(cmd, cmd_parser, sub_argv)
  File "/usr/lib/python2.7/dist-packages/neutronclient/shell.py", line 78, in run_command
    return cmd.run(known_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/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/neutronclient/common/command.py", line 41, in take_action
    return self.get_data(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 586, in get_data
    data = self.retrieve_list(parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 555, in retrieve_list
    data = self.call_server(neutron_client, search_opts, parsed_args)
  File "/usr/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py", line 527, in call_server
    data = obj_lister(**search_opts)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 108, in with_params
    ret = self.function(instance, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 325, in list_networks
    **_params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1197, in list
    for r in self._pagination(collection, path, **params):
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1210, in _pagination
    res = self.get(path, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1183, in get
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1168, in retry_request
    headers=headers, params=params)
  File "/usr/lib/python2.7/dist-packages/neutronclient/v2_0/client.py", line 1103, in do_request
    resp, replybody = self.httpclient.do_request(action, method, body=body)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 192, in do_request
    self.endpoint_url + url, method, **kwargs)
  File "/usr/lib/python2.7/dist-packages/neutronclient/client.py", line 156, in _cs_request
    raise exceptions.Unauthorized(message=body)
Unauthorized: Authentication required