Wikimedia Cloud Services team/EnhancementProposals/Neutron SDN
This page is a dumping ground for links and documentation in the process of moving CloudVPS to using Neutron.
Preamble
http://research.esg-global.com/reportaction/blog0419201602/Toc
https://wiki.openstack.org/wiki/Meetings/TechnicalCommittee/Neutron_Gap_Coverage
https://review.openstack.org/#/c/101921/
https://docs.openstack.org/ocata/networking-guide/intro-os-networking.html
https://docs.openstack.org/admin-guide/networking-adv-features.html
Labtest Allocations
See Testing deployment.
Open questions
- /etc/nova/nova-compute.conf is managed but unused?
- Can the migration be performed online? (as in data plane)
- Should we use linux bridging or OpenVSwitch?
- Linux bridging is simpler conceptually and component wise but not as featurefull.
- What Neutron plugin should we use?
- What type and mechanism should we use?
- Does L2 Population work as expected?
- VXLAN
- Overhead
- debugging
Conceptual
http://events.linuxfoundation.org/sites/events/files/slides/LinuxConJapan2014_makita_0.pdf
http://www.opencloudblog.com/?p=96
http://www.sparkmycloud.com/blog/openstack-vlan-networking-overview/
Topology
https://docs.openstack.org/mitaka/install-guide-ubuntu/neutron-controller-install-option2.html
The shared switch is a Boolean value that, when set to true, allows a network to be utilized among all tenants. This attribute is available only for networks created by administrators and is not available for networks created by users.
Denton, James (2015-11-27). Learning OpenStack Networking (Neutron) - Second Edition (p. 129). Packt Publishing. Kindle Edition.
Neutron l2/l3 agents https://www.youtube.com/watch?v=uNAkDfkTGBw
Migration(s)
https://docs.openstack.org/kilo/networking-guide/migration.html
https://specs.openstack.org/openstack/neutron-specs/specs/kilo-backlog/migration-from-nova-net.html
https://docs.openstack.org/liberty/networking-guide/migration-nova-network-to-neutron.html
- General overview of transition mechanics with no real technical insight
- assumes things exist and are working such as 'Run a DB dump/restore tool that creates Networking data structures representing current legacy networking config.'
https://wiki.openstack.org/wiki/Neutron/MigrationFromNovaNetwork/HowTo#How_to_test_migration_process
- TODO - fill in the migration process script here -^^
- very limited test case only using devstack
- http://paste.openstack.org/show/84177/
- https://review.openstack.org/#/c/100265/ (depends on and abandoned)
- depends on https://review.openstack.org/#/c/100265/7/nova/api/openstack/compute/contrib/admin_actions.py and associated completely
- custom behavior from patch example (unproven and unloved): nova migration-to-neutron <vm-id> <neutron-net-id>
Spec for Neutron Migration feature (permanent -2?)
- https://review.openstack.org/#/c/101921/
- https://review.openstack.org/#/c/111755/
- https://review.openstack.org/#/c/115635/
- This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
http://lists.openstack.org/pipermail/openstack/2017-March/018903.html (andrew asking for migration stories)
https://www.rivy.org/2012/11/switch-your-kvm-from-regular-bridge-to-open-vswitch/
https://github.com/NeCTAR-RC/novanet2neutron
https://www.youtube.com/watch?v=54wp1yzC-d8 (cern migration story)
http://superuser.openstack.org/articles/ebay-in-production-migration-from-nova-network-to-neutron/
https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address
http://www.stillhq.com/openstack/juno/000014.html
OpenVSwitch
http://docs.openvswitch.org/en/latest/faq/issues/
https://media.readthedocs.org/pdf/openvswitch/latest/openvswitch.pdf
https://pve.proxmox.com/wiki/Open_vSwitch
Managing Open vSwitch across a large heterogenous fleet (rackspace)
- 2.1+ described as best and ubuntu seems to be on 2.0 (flow-eviction-thresholds) via apt-cache
- 2.3 is OVS LTS
http://manpages.ubuntu.com/manpages/trusty/man8/ovs-controller.8.html
Linux Bridging
https://docs.openstack.org/kilo/networking-guide/scenario_legacy_lb.html (LEGACY)
https://robhirschfeld.com/2013/10/16/openstack-neutron-using-linux-bridges-technical-explanation/ (2013...)
http://man7.org/linux/man-pages/man8/bridge.8.html
http://www.microhowto.info/troubleshooting/troubleshooting_ethernet_bridging_on_linux.html
https://docs.openstack.org/kilo/networking-guide/scenario_l3ha_lb.html
https://docs.openstack.org/kilo/networking-guide/deploy_scenario4b.html
https://wiki.linuxfoundation.org/networking/bridge
http://www.linuxjournal.com/article/8172
https://wiki.aalto.fi/download/attachments/70789083/linux_bridging_review.pdf
ML2 Linux Bridging
https://wiki.openstack.org/wiki/Neutron-Linux-Bridge-Plugin (older docs seems redirected from old monolithic plugin)
VXLAN
http://events.linuxfoundation.org/sites/events/files/slides/2013-linuxcon.pdf
https://kimizhang.wordpress.com/2014/04/01/how-ml2vxlan-works/
http://openstack.fr/r/meetup7/OpenStack-Neutron-l2-pop-Linux-VXLAN-Edouard-Thuleau.pdf
https://www.kernel.org/doc/Documentation/networking/vxlan.txt
OpenVSwitch vs Linux Bridging
https://github.com/openvswitch/ovs/blob/master/Documentation/intro/why-ovs.rst
https://ask.openstack.org/en/question/98644/openvswitch-vs-linux-bridge-network-deployment/
https://www.quora.com/What-is-the-major-difference-between-OVS-and-linux-bridge
https://kumul.us/switches-ovs-vs-linux-bridge-simplicity-rules/
Migrating Production Workloads from OVS to Linux Bridge w/ ML2 (RS internal cloud)
https://www.slideshare.net/JamesDenton1/2014-openstack-summit-neutron-ovs-to-linuxbridge-migration
ML2: The Plugin Of Plugins
https://docs.openstack.org/ocata/networking-guide/config-ml2.html
https://wiki.openstack.org/wiki/Neutron/ML2
https://wiki.openstack.org/wiki/Neutron/ML2#Multi-Segment_Networks
- Virtual networks can be composed of multiple segments of the same or different types.
- EXCEPT: The database schema and driver APIs support multi-segment networks, but the client API for multi-segment networks is not yet implemented.
https://wiki.openstack.org/wiki/Neutron/ModularL2Agent (original spec)
http://docs.ocselected.org/openstack-manuals/kilo/networking-guide/content/ml2_l2pop_scenarios.html
https://assafmuller.com/2014/02/23/ml2-address-population/
Next Phases
https://docs.openstack.org/newton/networking-guide/config-bgp-dynamic-routing.html
Associated
Misc Reference
https://kimizhang.wordpress.com/2014/04/01/how-ml2vxlan-works/
https://docs.openstack.org/developer/nova/man/nova-dhcpbridge.html
https://thornelabs.net/2014/03/13/openstack-commands-cheat-sheet.html
https://docs.openstack.org/user-guide/cli-cheat-sheet.html
http://ebtables.netfilter.org/documentation/features.html