[Openstack] Nexus 9K - Nexus: Segment is an invalid type or not supported by this driver??

Michael Gale gale.michael at gmail.com
Wed Feb 24 20:44:01 UTC 2016


Hello,

    I have an update on this issue :). The short answer is I now have vxlan
working with the N9K.

Long answer .... when I started out with the N9K + vxlan setup I was
receiving failed port binding issues and nothing else. So I decided to
abandon the vxlan setup for now and fall back to vlan + N9K integration.
Once I attempted this step the logs provided a lot of help.

I had to fix:
- configuration errors in ml2_conf.ini file
- updated the configuration to reference the portchannel correctly
- resolved a cabling issue :)

At this point vlan integration was working, meaning as tenant networks are
built, the required vlan interfaces are setup on the controller and compute
nodes and the required N9K switch changes are also made. I then enabled
vxlan in my ml2_conf.ini file.

At this point I found out that the multicast settings under vxlan were
missing, I thought those were optional. I added that missing config setting
and everything started working :)

Thanks again to everyone that responded to my emails.

Michael

On Tue, Feb 16, 2016 at 3:43 PM, Anthony T CHOW <
anthony.chow at al-enterprise.com> wrote:

> Michael,
>
>
>
> I am not a neutron expect but this bug 1433461 does not seem to be a
> duplicate of 1421024.
>
>
>
> Bug 1433461 is for port binding while 1421024 is for Nexus switch not
> configured at all.
>
>
>
> This is the fix for 1433461:
>
>
>
> @@ -1337,7 +1337,7 @@ class Ml2Plugin(db_base_plugin_v2.NeutronDbPluginV2,
>
> 1337
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1337>
>
> updated_port = self._make_port_dict(port)
>
> 1337
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1337>
>
> updated_port = self._make_port_dict(port)
>
> 1338
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1338>
>
> network = self.get_network(context,
>
> 1338
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1338>
>
> network = self.get_network(context,
>
> 1339
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1339>
>
> original_port['network_id'])
>
> 1339
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1339>
>
> original_port['network_id'])
>
> 1340
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1340>
>
> levels = db.get_binding_levels(session, *port_id*,
>
> 1340
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1340>
>
> levels = db.get_binding_levels(session, *port.id <http://port.id>*,
>
> 1341
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1341>
>
> port.port_binding.host)
>
> 1341
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1341>
>
> port.port_binding.host)
>
> 1342
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1342>
>
> mech_context = driver_context.PortContext(
>
> 1342
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1342>
>
> mech_context = driver_context.PortContext(
>
> 1343
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=2b1c4f121e3e8ba1c5eb2ba6661bf6326e1507c5#n1343>
>
> self, context, updated_port, network, port.port_binding,
>
> 1343
> <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/plugins/ml2/plugin.py?id=355ab2f31cf81575c6e1c0899526177711425428#n1343>
>
> self, context, updated_port, network, port.port_binding,
>
>
>
> It is to correctly passing the port id to db.get_binding_levels and not
> just the first 11 characters of the port id.
>
>
>
> I am interested to find out too.
>
>
>
> Anthony.
>
>
>
> *From:* Michael Gale [mailto:gale.michael at gmail.com]
> *Sent:* Tuesday, February 16, 2016 12:57 PM
> *To:* Anthony T CHOW
> *Cc:* openstack at lists.openstack.org
> *Subject:* Re: [Openstack] Nexus 9K - Nexus: Segment is an invalid type
> or not supported by this driver??
>
>
>
> Hello,
>
>
>
>     I am using Linux Bridge, I did see that bug report however it is
> marked as a duplicate of: https://bugs.launchpad.net/neutron/+bug/1433461
> which indicates the issue was fixed in kilo. If I understand the report
> correctly.
>
>
>
> Michael
>
>
>
> On Tue, Feb 16, 2016 at 1:53 PM, Anthony T CHOW <
> anthony.chow at al-enterprise.com> wrote:
>
> Michael,
>
>
>
> Are you using Linux Bridge or OvS?
>
>
>
> There is a bug report: *Linux bridge does not work with cisco_nexus ml2
> plugins*
>
>
>
> https://bugs.launchpad.net/networking-cisco/+bug/1421024
>
>
>
> anthony.
>
>
>
> *From:* Michael Gale [mailto:gale.michael at gmail.com]
> *Sent:* Tuesday, February 16, 2016 12:42 PM
> *To:* openstack at lists.openstack.org
> *Subject:* [Openstack] Nexus 9K - Nexus: Segment is an invalid type or
> not supported by this driver??
>
>
>
> Hello,
>
>
>
>     I am having issues getting my Liberty environment working with VXLAN
> and N9K.
>
>
>
> Currently I am getting the following errors in the logs on startup:
>
> --snip--
>
> 2016-02-16 13:18:42.097 595 WARNING
> networking_cisco.plugins.ml2.drivers.cisco.nexus.mech_cisco_nexus
> [req-825a9891-0467-4958-86ca-c98486a7bf52 - - - - -] Nexus: Segment is an
> invalid type or not supported by this driv
>
> er. Network type = vxlan Physical network = None. Event not processed.
>
> --snip--
>
>
>
> When trying to launch an instance:
>
> --snip--
>
> ERROR neutron.plugins.ml2.managers
> [req-d15ab080-7aa4-46e5-a5c3-b62a13c5646d d2b4e18cf27d41418845439f5d788523
> eaa185709c79477fa1e3edfffa4e4c7f - - -] Failed to bind port
> 9b32f0e7-6b5b-4ced-84b7-262ea12e090c on host compute1
>
>
>
> Nexus: Segment is None, Event not processed
>
> --snip--
>
>
>
> I am assuming I am missing something in the configuration file however I
> can't figure it out. Any help is greatly appreciated.
>
>
>
> Thanks
>
> Michael
>
>
>
> Here is my ml2_conf.ini
>
>
>
> --snip--
>
> # ML2 general
>
> [ml2]
>
> type_drivers = flat,vlan,nexus_vxlan,local
>
> tenant_network_types = nexus_vxlan
>
> mechanism_drivers = linuxbridge,l2population,cisco_nexus
>
> extension_drivers = port_security
>
> path_mtu = 0
>
> segment_mtu = 0
>
>
>
>
>
>
>
> # ML2 VLAN networks
>
> [ml2_type_vlan]
>
> network_vlan_ranges = physeth1:100:163
>
>
>
> [ml2_mech_cisco_nexus:10.92.192.45]
>
> infra1_neutron_agents_container-ee5293cb=1/17
>
> infra1_neutron_server_container-ed083568=1/17
>
> infra2_neutron_agents_container-65f32f70=1/18
>
> infra2_neutron_server_container-1e0b996b=1/18
>
> infra3_neutron_agents_container-2faafbe7=1/19
>
> infra3_neutron_server_container-9eabc975=1/19
>
> compute1=1/21
>
> compute2=1/22
>
> username=openstack
>
> password=foo123
>
> ssh_port=22
>
> physnet=physeth1
>
>
>
> [ml2_mech_cisco_nexus:10.92.192.46]
>
> infra1_neutron_agents_container-ee5293cb=1/17
>
> infra1_neutron_server_container-ed083568=1/17
>
> infra2_neutron_agents_container-65f32f70=1/18
>
> infra2_neutron_server_container-1e0b996b=1/18
>
> infra3_neutron_agents_container-2faafbe7=1/19
>
> infra3_neutron_server_container-9eabc975=1/19
>
> compute1=1/21
>
> compute2=1/22
>
> username=openstack
>
> password=foo123
>
> ssh_port=22
>
> physnet=physeth1
>
>
>
> # ML2 VXLAN networks
>
> [ml2_type_vxlan]
>
> vxlan_group =
>
> vni_ranges = 1:1000
>
>
>
> [ml2_type_nexus_vxlan]
>
> # Comma-separated list of <vni_min>:<vni_max> tuples enumerating
>
> # ranges of VXLAN VNI IDs that are available for tenant network allocation.
>
> vni_ranges=50000:55000
>
>
>
> # Multicast groups for the VXLAN interface. When configured, will
>
> # enable sending all broadcast traffic to this multicast group. Comma
> separated
>
> # list of min:max ranges of multicast IP's
>
> # NOTE: must be a valid multicast IP, invalid IP's will be discarded
>
> mcast_ranges=225.1.1.1:225.1.1.2
>
>
>
> # Security groups
>
> [securitygroup]
>
> enable_security_group = True
>
> enable_ipset = True
>
>
>
> --snip--
>
>
>
>
>
> and my linuxbridge_agent.ini:
>
> --snip--
>
> # Linux bridge agent physical interface mappings
>
> [linux_bridge]
>
>
>
> physical_interface_mappings = physeth1:eth11
>
>
>
> # Linux bridge agent VXLAN networks
>
> [vxlan]
>
>
>
> enable_vxlan = True
>
> vxlan_group =
>
> # VXLAN local tunnel endpoint
>
> local_ip = 10.96.2.141
>
> l2_population = True
>
>
>
>
>
> # Agent
>
> [agent]
>
> prevent_arp_spoofing = False
>
>
>
> # Security groups
>
> [securitygroup]
>
> firewall_driver =
> neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
>
> enable_security_group = True
>
>
>
> --snip--
>
>
>
>
>
>
>
> --
>
> “The Man who says he can, and the man who says he can not.. Are both
> correct”
>



-- 

“The Man who says he can, and the man who says he can not.. Are both
correct”
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20160224/2a863a0d/attachment.html>


More information about the Openstack mailing list