{ "info": { "author": "OpenStack", "author_email": "openstack-discuss@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "===============\nnetworking-l2gw\n===============\n\nAPI's and implementations to support L2 Gateways in Neutron.\n\n* Free software: Apache license\n* Source: https://opendev.org/openstack/networking-l2gw\n\nL2 Gateways\n-----------\n\nThis project proposes a Neutron API extension that can be used to express\nand manage L2 Gateway components. In the simplest terms L2 Gateways are meant\nto bridge two or more networks together to make them look at a single L2\nbroadcast domain.\n\nInitial implementation\n----------------------\n\nThere are a number of use cases that can be addressed by an L2 Gateway API.\nMost notably in cloud computing environments, a typical use case is bridging\nthe virtual with the physical. Translate this to Neutron and the OpenStack\nworld, and this means relying on L2 Gateway capabilities to extend Neutron\nlogical (overlay) networks into physical (provider) networks that are outside\nthe OpenStack realm. These networks can be, for instance, VLAN's that may or\nmay not be managed by OpenStack.\n\nMore information\n----------------\n\nFor help using or hacking on L2GW, you can send an email to the\n`OpenStack Discuss Mailing List `;\nplease use the [L2-Gateway] Tag in the subject. Most folks involved hang out on\nthe IRC channel #openstack-neutron.\n\nGetting started\n---------------\n\nTo get started you have to install the l2gw plugin software on the Controller\nnode where you are already running the Neutron server. Then you need a new\nnode, that we call the l2gw node, where you do the actual bridging between a\nvxlan tenant network and a physical network. The l2gw node could be a bare\nmetal switch that supports the OVSDB schema, or a server with OVS installed. In\nthis example we are going to use a server.\n\nIn this example the l2gw node has a `ens5` interface attached to a physical\nsegment, and a management interface with IP 10.225.0.27.\n\n::\n\n ip link set up dev ens5\n apt-get install openvswitch-vtep\n ovsdb-tool create /etc/openvswitch/vtep.db /usr/share/openvswitch/vtep.ovsschema\n ovsdb-tool create /etc/openvswitch/vswitch.db /usr/share/openvswitch/vswitch.ovsschema\n ovsdb-server --pidfile --detach --log-file --remote ptcp:6632:10.225.0.27 \\\n --remote punix:/var/run/openvswitch/db.sock --remote=db:hardware_vtep,Global,managers \\\n /etc/openvswitch/vswitch.db /etc/openvswitch/vtep.db\n ovs-vswitchd --log-file --detach --pidfile unix:/var/run/openvswitch/db.sock\n ovs-vsctl add-br myphyswitch\n vtep-ctl add-ps myphyswitch\n vtep-ctl set Physical_Switch myphyswitch tunnel_ips=10.225.0.27\n ovs-vsctl add-port myphyswitch ens5\n vtep-ctl add-port myphyswitch ens5\n /usr/share/openvswitch/scripts/ovs-vtep \\\n --log-file=/var/log/openvswitch/ovs-vtep.log \\\n --pidfile=/var/run/openvswitch/ovs-vtep.pid \\\n --detach myphyswitch\n\nAt this point your l2gw node is running.\n\nFor the configuration of the Openstack control plane you have to check three files:\n``neutron.conf``, `l2gw_plugin.ini `__, and `l2gateway_agent.ini `__\nEdit your ``neutron.conf`` on the controller node and make sure that in the ``service_plugins`` you have the string\n``networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin``.\n\nYou can add it with:\n::\n\n sudo sed -ri 's/^(service_plugins.*)/\\1,networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin/' \\\n /etc/neutron/neutron.conf\n\nMake sure the neutron-server runs with ``--config-file=/etc/neutron/l2gw_plugin.ini``.\nThe default for the l2gw_plugin.ini file should be okay.\n\nNow you are ready to create the database tables for the neutron l2gw plugin using the command:\n``neutron-db-manage upgrade heads``\n\nThe file `l2gateway_agent.ini `__ is used to configure the neutron-l2gateway agent.\nThe agent is the piece of software that will configure the l2gw node when you interact with the Openstack API.\nHere it is important to give the pointer to the switch.\n``ovsdb_hosts = 'ovsdb1:10.225.0.27:6632'``\n\nThe name ``ovsdb1`` is just a name that will be used in the Openstack database to identify this switch.\n\nNow that both the l2gw node and the Openstack control plane are configured, we can use the API service to bridge a VXLAN tenant network to a physical interface of the l2gw node.\n\nFirst let's create in Openstack a l2-gateway object. We need to give the interface names and the name of the bridge that we used before in the OVS commands.\n\n``l2-gateway-create --device name=\"myphyswitch\",interface_names=\"ens5\" openstackname``\n\nUse the just created to feed the second command where you do the actual bridging between the VXLAN tenant network and the Physical L2 network.\n\n``l2-gateway-connection-create ``\n\nNow let's see what happened. On the l2gw node you can do the commands:\n::\n\n ovs-vsctl show\n vtep-ctl show\n\nYou should see some VXLAN tunnels are created. You will see a vxlan tunnel to each compute node that is hosting an\ninstance attached to the tenant network that you bridge. If there is also a router in this tenant network,\nyou will find a VXLAN tunnel also to the network node.\n\nReferences:\n * http://networkop.co.uk/blog/2016/05/21/neutron-l2gw/\n * http://kimizhang.com/neutron-l2-gateway-hp-5930-switch-ovsdb-integration/\n * http://openvswitch.org/support/dist-docs-2.5/vtep/README.ovs-vtep.md.html\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://opendev.org/openstack/networking-l2gw", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "networking-l2gw", "package_url": "https://pypi.org/project/networking-l2gw/", "platform": "", "project_url": "https://pypi.org/project/networking-l2gw/", "project_urls": { "Homepage": "https://opendev.org/openstack/networking-l2gw" }, "release_url": "https://pypi.org/project/networking-l2gw/15.0.0/", "requires_dist": [ "pbr (!=2.1.0,>=2.0.0)", "Babel (!=2.4.0,>=2.3.4)", "neutron-lib (>=1.29.0)", "python-neutronclient (>=6.7.0)", "ovsdbapp (>=0.10.0)", "neutron (>=13.0.0)" ], "requires_python": "", "summary": "API's and implementations to support L2 Gateways in Neutron.", "version": "15.0.0" }, "last_serial": 5944579, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "b48103dd5ea0657515ab7b17998771bf", "sha256": "ffe2cd5f610d94ce66a558d9d5ebd7acedee7d57ad5f3faeb1667f35f3b48204" }, "downloads": -1, "filename": "networking_l2gw-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b48103dd5ea0657515ab7b17998771bf", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 147845, "upload_time": "2015-12-01T15:06:10", "url": "https://files.pythonhosted.org/packages/59/ea/fad98a80335d3fc4cc523f53820f557c77f24ad5cf6de0078e4e60226d4d/networking_l2gw-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "890a1f6265895e94f1ba41d994400963", "sha256": "9d62cb20bcd0464667e1a2d307641f3f3b27a2293d0a61eb7edb0334ef3ec3f0" }, "downloads": -1, "filename": "networking-l2gw-1.0.0.tar.gz", "has_sig": false, "md5_digest": "890a1f6265895e94f1ba41d994400963", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 143258, "upload_time": "2015-12-01T15:06:18", "url": "https://files.pythonhosted.org/packages/34/99/a589774fe1e32b10f6910b3d1a93111ad78a32e207c2d4f80479af7d34d6/networking-l2gw-1.0.0.tar.gz" } ], "10.0.0": [ { "comment_text": "", "digests": { "md5": "9a78198aa223b3420dda19969b331e40", "sha256": "3d15cceb9773c6db33d6fa86b3ddb36a1062694a208fe547f6a0229629912974" }, "downloads": -1, "filename": "networking_l2gw-10.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9a78198aa223b3420dda19969b331e40", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 171358, "upload_time": "2017-03-24T08:30:19", "url": "https://files.pythonhosted.org/packages/7b/9c/cdc273ec75fd124eb54a94c5c704e08c7e9871b6058b5d2500fd96180ba9/networking_l2gw-10.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ee3f3380d76bed38663601420e2f30d", "sha256": "be6dff8c22f64b484e5bb61157b81425b61e210201c95ee2453d073707ad64ac" }, "downloads": -1, "filename": "networking-l2gw-10.0.0.tar.gz", "has_sig": false, "md5_digest": "2ee3f3380d76bed38663601420e2f30d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160876, "upload_time": "2017-03-24T08:30:21", "url": "https://files.pythonhosted.org/packages/8b/cc/6d63f68bb057e315e4fdc86958aff718d6afef15ca2648632b1e31531edc/networking-l2gw-10.0.0.tar.gz" } ], "11.0.0": [ { "comment_text": "", "digests": { "md5": "aef9bd2f57bc6996525c320e9e605e75", "sha256": "2a6dac3b2eaccc0888c0f71d6c37fcbc7bf9921811a775b0ac4bc03fa8498be9" }, "downloads": -1, "filename": "networking_l2gw-11.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aef9bd2f57bc6996525c320e9e605e75", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 172094, "upload_time": "2017-09-19T05:58:17", "url": "https://files.pythonhosted.org/packages/ae/e4/dd81b0b4a2f39685937fa5d731c92092a3d8bd970af7ba8b8dd0ac268c0c/networking_l2gw-11.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fde0a2652bb26a4228aa5a0f11206e56", "sha256": "73f3eabf5c596d774ff3d645110effaaad8b95a562f33f5016ddaf80c5bd6100" }, "downloads": -1, "filename": "networking-l2gw-11.0.0.tar.gz", "has_sig": false, "md5_digest": "fde0a2652bb26a4228aa5a0f11206e56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 160414, "upload_time": "2017-09-19T05:58:20", "url": "https://files.pythonhosted.org/packages/a3/b1/7aa4bf0452ccd6ca2ad8aa3c87dc4bb10866c1082de6b6b4d15d0512a2bf/networking-l2gw-11.0.0.tar.gz" } ], "12.0.0": [ { "comment_text": "", "digests": { "md5": "7ae716d1b15584d4b4136ece71cf6a85", "sha256": "a9e797d6c45569c1ce8e660ed3c1402f0e36f99ef8444cbaa8cd656341b37271" }, "downloads": -1, "filename": "networking_l2gw-12.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7ae716d1b15584d4b4136ece71cf6a85", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 161211, "upload_time": "2018-02-25T08:09:48", "url": "https://files.pythonhosted.org/packages/c9/ec/59a1ce0b08660f7a87bcb5d11f41902e926821f4ca12083d371cf14ac64b/networking_l2gw-12.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c3787cdb106731b1f141339985bbae19", "sha256": "62444070bfd37919a77a02c15cc27b91184137ba814513b9688a2edceb6e1e68" }, "downloads": -1, "filename": "networking-l2gw-12.0.0.tar.gz", "has_sig": false, "md5_digest": "c3787cdb106731b1f141339985bbae19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 158944, "upload_time": "2018-02-25T08:09:51", "url": "https://files.pythonhosted.org/packages/51/e4/5bf93acf915d73f40711ba40a0474f833ad0264d8cb1c5718a0b8471b175/networking-l2gw-12.0.0.tar.gz" } ], "12.0.1": [ { "comment_text": "", "digests": { "md5": "d5274807f463bdfd6b9d0ba030081067", "sha256": "928406b25e95e188b15571a6ecf114aa0b2b1f74c2ba33f3ca6847dc684a7f32" }, "downloads": -1, "filename": "networking_l2gw-12.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d5274807f463bdfd6b9d0ba030081067", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 161211, "upload_time": "2018-02-25T13:40:53", "url": "https://files.pythonhosted.org/packages/7c/6d/303874446ec100310ea0b35fcb068d235b7dfd1ad6857f193cd1310d5f47/networking_l2gw-12.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdd024c11d02cb2b322ebbac01fdf43d", "sha256": "518c7ac3a5d0e621c0f650b9acacbd77ffac362e6722a5dfaaf4838fc24c59ac" }, "downloads": -1, "filename": "networking-l2gw-12.0.1.tar.gz", "has_sig": false, "md5_digest": "bdd024c11d02cb2b322ebbac01fdf43d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 156565, "upload_time": "2018-02-25T13:40:56", "url": "https://files.pythonhosted.org/packages/a5/77/17b1e0a6622f0b0e0c494a328a72dc9131ce3d73d883429bc2d94f2d4235/networking-l2gw-12.0.1.tar.gz" } ], "13.0.0": [ { "comment_text": "", "digests": { "md5": "74e54156f2ac5360d5e8e09fd69b2a9b", "sha256": "7ea05c23e394ba1c87a80156a83d858d2eb0523de30788337278a2def178aead" }, "downloads": -1, "filename": "networking_l2gw-13.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "74e54156f2ac5360d5e8e09fd69b2a9b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 171725, "upload_time": "2018-08-27T10:37:10", "url": "https://files.pythonhosted.org/packages/da/c1/2f56af7c26510b21141ce1c6b5e976877a3e764c12a0ea15de8801fecb1c/networking_l2gw-13.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6fc9580480bd82f471e69d5d5790ca1f", "sha256": "58be6a4fbf98db71afa6a76b8d37a6e98093f4fbcce2cb7f283ef1d431d40c40" }, "downloads": -1, "filename": "networking-l2gw-13.0.0.tar.gz", "has_sig": false, "md5_digest": "6fc9580480bd82f471e69d5d5790ca1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166036, "upload_time": "2018-08-27T10:37:13", "url": "https://files.pythonhosted.org/packages/7e/a4/527aab80ce10b5e23c1e559e36cb260a842b4e73c3927967bd01241acd34/networking-l2gw-13.0.0.tar.gz" } ], "14.0.0": [ { "comment_text": "", "digests": { "md5": "fe92690868bdd8b627be6157e425aa7c", "sha256": "2a3ae2fd56c1e5333171768c50216e95c22332f10ea046caa011ad077ea44b52" }, "downloads": -1, "filename": "networking_l2gw-14.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fe92690868bdd8b627be6157e425aa7c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 176893, "upload_time": "2019-04-01T11:03:41", "url": "https://files.pythonhosted.org/packages/a4/23/4db9c45fc7a334e2b0ddf0b4941045fe74553ac5c19592c9cd8021b4fc41/networking_l2gw-14.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a125f742fb029e8a31f637d57544ffac", "sha256": "8af4db62fd50bb226de35f5635c890edaffa0ce9f0d966f42bc414c4b6eb1a09" }, "downloads": -1, "filename": "networking-l2gw-14.0.0.tar.gz", "has_sig": false, "md5_digest": "a125f742fb029e8a31f637d57544ffac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 167927, "upload_time": "2019-04-01T11:03:45", "url": "https://files.pythonhosted.org/packages/cc/c4/cba7b46d1283a3b144b08b166cd5a03b93651bdf000758b511c194be7f89/networking-l2gw-14.0.0.tar.gz" } ], "15.0.0": [ { "comment_text": "", "digests": { "md5": "d66525713af36a0b8aacc6abc3bdc112", "sha256": "1b117cd5814d50cd2163b320a8b8ea5b005816b3ef2290e95423b6dc2c3c6ff2" }, "downloads": -1, "filename": "networking_l2gw-15.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d66525713af36a0b8aacc6abc3bdc112", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 177077, "upload_time": "2019-10-08T12:28:46", "url": "https://files.pythonhosted.org/packages/27/f8/2d445a7dd8d92a4f9cc69b1a7b2407b2f9818e17068a932adb682d7e2971/networking_l2gw-15.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59311678eacf983da90a14cb37bfd06b", "sha256": "0f6116414000bfa6bcd6d857fdd38a4da2bdce6e068ef9406cd4d24a3b17dfe4" }, "downloads": -1, "filename": "networking-l2gw-15.0.0.tar.gz", "has_sig": false, "md5_digest": "59311678eacf983da90a14cb37bfd06b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166451, "upload_time": "2019-10-08T12:28:50", "url": "https://files.pythonhosted.org/packages/6d/6d/511124d69d467dbee62c54c19ca3ab1dde32fbf47667fd4ed048a442fb24/networking-l2gw-15.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d66525713af36a0b8aacc6abc3bdc112", "sha256": "1b117cd5814d50cd2163b320a8b8ea5b005816b3ef2290e95423b6dc2c3c6ff2" }, "downloads": -1, "filename": "networking_l2gw-15.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d66525713af36a0b8aacc6abc3bdc112", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 177077, "upload_time": "2019-10-08T12:28:46", "url": "https://files.pythonhosted.org/packages/27/f8/2d445a7dd8d92a4f9cc69b1a7b2407b2f9818e17068a932adb682d7e2971/networking_l2gw-15.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59311678eacf983da90a14cb37bfd06b", "sha256": "0f6116414000bfa6bcd6d857fdd38a4da2bdce6e068ef9406cd4d24a3b17dfe4" }, "downloads": -1, "filename": "networking-l2gw-15.0.0.tar.gz", "has_sig": false, "md5_digest": "59311678eacf983da90a14cb37bfd06b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 166451, "upload_time": "2019-10-08T12:28:50", "url": "https://files.pythonhosted.org/packages/6d/6d/511124d69d467dbee62c54c19ca3ab1dde32fbf47667fd4ed048a442fb24/networking-l2gw-15.0.0.tar.gz" } ] }