[Openstack] Error in ml2 with cisco_nexus driver

Henry Gessau gessau at cisco.com
Wed Apr 2 18:56:14 UTC 2014


Hi Dennis,

On Wed, Apr 02, at 1:28 pm Qin, Xiaohong (Xiaohong.Qin at emc.com) wrote:

> Hi Kyle,
> 
> I was also trying to use this Nexus driver with Ml2/VXLAN deployment in
> devstack. But for some reason, it didn't invoke the nexus driver code and

The Nexus driver in ML2 does not support VXLAN. It supports only VLAN.

> didn't do anything on my Nexus switch. I have followed the instructions
> posted in this link,
> 
> https://wiki.openstack.org/wiki/Neutron/ML2/MechCiscoNexus
> 
> Did I miss anything here? I have pulled the latest OpenStack code from the main branch. 
> 
> Thanks.
> 
> Dennis Qin (aka Xiaohong Qin)
> 
> -----Original Message-----
> From: Kyle Mestery (kmestery) [mailto:kmestery at cisco.com] 
> Sent: Friday, November 29, 2013 7:57 PM
> To: Sayaji Patil
> Cc: <openstack at lists.openstack.org>
> Subject: Re: [Openstack] Error in ml2 with cisco_nexus driver
> 
> On Nov 29, 2013, at 1:11 PM, Sayaji Patil <sayaji15 at gmail.com> wrote:
>> 
>> Hi,
>>      I have set up an all-in-one installation using devstack. When I 
>> try to create an instance, I get this error when the plugin tries to 
>> create a vlan on the nexus switch
>> 
>> 2013-11-27 16:38:29.752 ^[[00;32mDEBUG ncclient.transport.ssh 
>> [^[[00;36m-^[[00;32m] ^[[01;35m^[[00;32mstarting thread (client mode): 
>> 0x4509ed0L^[[00m ^[[00;33mfrom (pid=13833) _log 
>> /usr/lib/python2.6/site-packages/paramiko/transport.py:1406^[[00m
>> 2013-11-27 16:38:29.753 ^[[01;31mERROR ncclient.transport.ssh 
>> [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31mException: Error reading SSH 
>> protocol banner^[[00m
>> 2013-11-27 16:38:29.753 ^[[01;31mERROR ncclient.transport.ssh 
>> [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31mTraceback (most recent call 
>> last):^[[00m
>> 2013-11-27 16:38:29.753 ^[[01;31mERROR ncclient.transport.ssh [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31m  File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 1557, in run^[[00m
>> 2013-11-27 16:38:29.753 ^[[01;31mERROR ncclient.transport.ssh [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31m    self._check_banner()^[[00m
>> 2013-11-27 16:38:29.754 ^[[01;31mERROR ncclient.transport.ssh [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31m  File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 1683, in _check_banner^[[00m
>> 2013-11-27 16:38:29.754 ^[[01;31mERROR ncclient.transport.ssh [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31m    raise SSHException('Error reading SSH protocol banner' + str(x))^[[00m
>> 2013-11-27 16:38:29.754 ^[[01;31mERROR ncclient.transport.ssh 
>> [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31mSSHException: Error reading 
>> SSH protocol banner^[[00m
>> 2013-11-27 16:38:29.754 ^[[01;31mERROR ncclient.transport.ssh 
>> [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31m^[[00m
>> 2013-11-27 16:38:29.754 ^[[01;31mERROR neutron.plugins.ml2.managers 
>> [^[[01;36mreq-b51e27b6-2808-47ad-95db-e9d0113fcfe1 ^[[00;36mNone 
>> None^[[01;31m] ^[[01;35m^[[01;31mMechanism driver 'cisco_nexus' failed 
>> in update_port_postcommit^[[00m
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00mTraceback (most recent call last):
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 156, in _call_on_drivers
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    getattr(driver.obj, method_name)(context)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/mech_cisco_nexus.py", line 159, in update_port_postcommit
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    self._invoke_nexus_on_port_event(context)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/mech_cisco_nexus.py", line 149, in _invoke_nexus_on_port_event
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    self._manage_port(vlan_name, vlan_id, host_id, instance_id)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/mech_cisco_nexus.py", line 114, in _manage_port
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    vlan_name, port_id)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus_network_driver.py", line 194, in create_and_trunk_vlan
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    self.create_vlan(nexus_host, vlan_id, vlan_name)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus_network_driver.py", line 131, in create_vlan
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    self._edit_config(nexus_host, target='running', config=confstr)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus_network_driver.py", line 68, in _edit_config
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    mgr = self.nxos_connect(nexus_host)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus_network_driver.py", line 114, in nxos_connect
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00m    raise cexc.NexusConnectFailed(nexus_host=nexus_host, exc=e)
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers ^[[01;35m^[[00mNexusConnectFailed: Unable to connect to Nexus 172.25.31.82. Reason: Negotiation failed.
>> ^[[01;31m2013-11-27 16:38:29.754 TRACE neutron.plugins.ml2.managers 
>> ^[[01;35m^[[00m
>> 2013-11-27 16:38:29.755 ^[[01;31mERROR 
>> neutron.openstack.common.rpc.amqp 
>> [^[[01;36mreq-b51e27b6-2808-47ad-95db-e9d0113fcfe1 ^[[00;36mNone 
>> None^[[01;31m] ^[[01;35m^[[01;31mException during message 
>> handling^[[00m
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00mTraceback (most recent call last):
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/openstack/common/rpc/amqp.py", line 438, in _process_data
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    **args)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/common/rpc.py", line 44, in dispatch
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    neutron_ctxt, version, method, namespace, **kwargs)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/openstack/common/rpc/dispatcher.py", line 172, in dispatch
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    result = getattr(proxyobj, method)(ctxt, **kwargs)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/rpc.py", line 192, in update_device_up
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    q_const.PORT_STATUS_ACTIVE)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/plugin.py", line 690, in update_port_status
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    self.mechanism_manager.update_port_postcommit(mech_context)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 395, in update_port_postcommit
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    self._call_on_drivers("update_port_postcommit", context)
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m  File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 167, in _call_on_drivers
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00m    method=method_name
>> ^[[01;31m2013-11-27 16:38:29.755 TRACE neutron.openstack.common.rpc.amqp ^[[01;35m^[[00mMechanismDriverError: update_port_postcommit failed.
>> 
>> Also now when I try to manually ssh to the switch, I get this error
>> 
>> [root at openstackcoi logs]# ssh 172.25.31.82 -l admin
>> ssh_exchange_identification: Connection closed by remote host
>> 
>> This is my ml2_conf_cisco.ini
>> 
>> [ml2_mech_cisco_nexus:172.25.31.82]
>> openstackcoi=1/1
>> ssh_port=22
>> username=admin
>> password=*******
>> 
>> Regards,
>> Sayaji
>> 
> Sayali:
> 
> Can you try ensuring you've done an ssh to the switch using the same username you are running devstack as? I believe you have to do this for the ssh to work, and only need to do this once. Let me know if this solves your problem.
> 
> Thanks,
> Kyle
> 
>> 
>> 
>> _______________________________________________
>> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> Post to     : openstack at lists.openstack.org
>> Unsubscribe : 
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> 
> 
> 
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> 
> 
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> 





More information about the Openstack mailing list