Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Neutron internals and future plans

Avatar for Rossella Sblendido Rossella Sblendido
July 07, 2017
37

Neutron internals and future plans

Avatar for Rossella Sblendido

Rossella Sblendido

July 07, 2017
Tweet

Transcript

  1. What is Neutron anyway? • Neutron − API exposing logical

    abstractions for consuming the networking service − One or more backend implementations of that API • Why? − Networking constructs baked into Nova (OpenStack compute) − No tenant control over network topology and service insertion − Multi-tenancy and scalability
  2. • Modular Architecture − Plugin: custom back-end implementation of the

    Networking API − Neutron-server: exposes the API − Several agents (L2, L3, DHCP, Metadata, etc) Neutron architecture
  3. • Monolithic plugin (direct control of core resources) • ML2

    − Modular, delegates calls to proper drivers − Two kind of drives: • Type drivers (support specific network type) • Mechanism drivers (ensure the information established by the TypeDriver is properly applied) − 2 default implementations: OpenVSwitch and LinuxBridge Neutron Plugin
  4. • Runs on hypervisor (compute node) • Configure the local

    vswitch • Communicates with the server over RPC • Wires new devices • Security Group Rules L2 Agent
  5. • Proxies Metadata requests to Nova • Routed Networks −

    Process embedded in router • Non-routed Networks − Static routes redirect traffic running in the DHCP namespace Metadata Agent
  6. • Flat (no segmentation) • VLAN • Tunnels (GRE or

    VXLAN) How is traffic isolation achieved?
  7. Telecom/NFV demands and Neutron • Reliability • Plannability • Performance

    ◦ Bandwidth ◦ Real-time-ness • QoS • SR-IOV
  8. • VMs are able to send/receive tagged traffic • Motivations:

    ◦ Be able to connect to lots of networks ◦ Handle containers traffic ◦ Be compatible with legacy applications that expect to use VLANs ◦ New entities: ▪ Trunk port ▪ Sub port https://specs.openstack.org/openstack/neutron-specs/specs/newton/vlan-aware-vms.html VLAN aware VMs
  9. QoS - Minimum bandwidth support • Guaranteed minimum bandwidth •

    Egress traffic • Needs scheduling improvements ◦ No overcommitting of the physical interface https://bugs.launchpad.net/neutron/+bug/1560963 https://bugs.launchpad.net/neutron/+bug/1578989
  10. QoS - Ingress bandwidth limiting • Noisy neighbors on the

    consumer side • CSP’s to ◦ plan and allocate bandwidth to customers ◦ Provide different levels of network services • Bandwidth limiting rules got a direction field ◦ By default set to egress (original functionality) • OVS Agent support is in progress https://blueprints.launchpad.net/neutron/+spec/instance-ingress-bw-limit
  11. OVS + SR-IOV • SR-IOV accelerated OVS ◦ Better performance

    ◦ Same core functionality • Kernel support is in place from version 4.8 ◦ SW representation mode ◦ Allows to offload SW switch traffic rules to the HW e- switch • OVS support is in progress • Neutron status is dependent on the OVS upstream progress https://bugs.launchpad.net/neutron/+bug/1627987
  12. QinQ • Adding QinQ to the supported network types •

    OVS QinQ support ◦ Related patches are merged upstream ◦ Will be released in August (version 2.8) • Neutron implementation is in progress • Adds support for vlan-transparent networks in the OVS ML2 driver https://review.openstack.org/#/c/446047/ https://bugs.launchpad.net/neutron/+bug/1604222