Openstack Neutron RedHat
Openstack Neutron RedHat
Openstack Neutron RedHat
Nir Yechiel,
Networking Technology Product Manager, OpenStack
Red Hat
Agenda
● Neutron refresher
● Deep dive into ML2/Open vSwitch
○ Focus on L2, DHCP, and L3
● Our partner ecosystem and other commercial plugins
● Overview of recent major enhancements
○ IPv6, L3 HA, Distributed Virtual Routing (DVR)
● Q&A
RHEL OpenStack Platform 6
Neutron Overview
What is Neutron?
● Fully supported and integrated OpenStack project
● Exposes an API for defining rich network configuration
● Offers multi-tenancy with self-service
What Neutron is not?
● Neutron does not implement the networks
○ Using the concept of plugins
The Plugin Matters...
● Feature set
● Scale
● Performance
● High Availability
● Manageability
● Network topology
● Traffic flow
● Operational tools
Neutron Key Features
● L2 connectivity
● IP Address Management
● Security Groups
● L3 routing
● External gateway, NAT and floating IPs
● Load balancing, VPN and firewall
Dashboard View
Dashboard View
Red Hat Neutron Focus
● ML2 with Open vSwitch Mechanism Driver (today)
○ Overlay networks with VXLAN
namespace namespace
“global” 1 2
OVS agent
Open vSwitch
Common Deployment - Networks
Controller Nodes Compute Nodes Network Nodes
VM VM VM
Routing, NAT, DHCP
External
Management
Tenant Data
L2 Connectivity
Network Separation
● 802.1Q VLANs
○ Require end-to-end provisioning
○ Number of IDs: 4K (theoretically)
○ VM MAC addresses typically visible in the network core
○ Well known by network admins as well as the network equipment
Network Separation
● 802.1Q VLANs
○ Require end-to-end provisioning
○ Number of IDs: 4K (theoretically)
○ VM MAC addresses typically visible in the network core
○ Well known by network admins as well as the network equipment
OSPF, BGP
ECMP L3 (routed) links
VXLAN, GRE
VTEP VTEP
resource node resource node resource node
Linux bridge
veth pair
Open vSwitch
L2 Connectivity
● Between VMs on different Computes
○ OVS acts as the VTEP
○ Flow rules are installed on ‘br-tun’ to encapsulate the traffic with the
correct VXLAN VNI
L2 - Compute Node
VM VM VM
Tenant flows are eth eth eth
separated by internal,
locally significant,
VLAN IDs. VMs that are tap tap tap
connected to the same qbr qbr qbr
tenant network get the
same VLAN tag qvb qvb qvb
Compute 1
VM VM VTEP VM
Tenant A Tenant B Tenant A
VTEP VTEP
The agents decide when to
create new tunnels or destroy
Compute 3 Compute 4
ones based on forwarding
entries
VM VM
Tenant A Tenant A
Local ARP Response
● ARP messages are treated as normal broadcasts by default
○ Even with l2-pop enabled - still need to traverse the network
Open vSwitch
VTEP
Security Groups
Security Groups
● Per VM stateless ACLs
● Increased intra-subnet and inter-subnet security
● Default group drops all ingress traffic and allows all egress
● Current solution implemented with iptables
● User flow:
○ Assign VMs to groups
○ Specify filtering rules between groups
○ Can match based on IP addresses, ICMP codes, TCP/UDP ports, etc.
Security Groups
Security Groups - Compute Node
Bridge device is
necessary - offers a VM VM VM
route to the kernel for
filtering eth eth eth
veth pair
Open vSwitch
DHCP Service (IPv4)
DHCP
● IPv4 subnets are enabled with DHCP by default
● Neutron is the single source of truth
○ IP addresses are allocated by Neutron and reserved in the Neutron DB
VLAN ID VLAN ID
br-int
Internal VLANs are
converted to tunnels
patch
with unique GRE Key or
VXLAN VNI per network
Virtual interface
br-tun
Open vSwitch Source interface is
determined from
“local_ip” configuration
eth through routing lookup
L3 Routing and NAT (IPv4)
Routing/NAT Features
● East/West routing
● VMs with public IP addresses (floating IPs)
○ Static stateless (1:1) NAT
IP is assigned from
the external pool
Internal VLANs are VLAN ID VLAN ID
converted to tunnels br-int
with unique GRE Key or
VXLAN VNI per network patch-tun int-br-ex
Interface on external
network. This network
patch-int should have externally
phy-br-ex reachable IP pool
br-tun
Virtual interface br-ex
Open vSwitch
br-int
br-tun br-ex
eth eth
Routing - Example
192.168.101.3
172.17.17.1 192.168.101.2
qr-xxxx qg-xxxx
Default SNAT -
-A quantum-l3-agent-snat -s 172.17.17.0/24 -j SNAT --to-source 192.168.101.2
Source: https://twitter.com/SCOTTHOGG/status/603213942429601792
IPv6: The Basics
● No more broadcasts, no ARP
○ Neighbor Solicitation with ICMPv6 Neighbor Discovery
br-tun
Virtual interface Source interface is
determined from
Open vSwitch “local_ip” configuration
eth through routing lookup
L3 Agent HA
L3 High Availability
● L3 HA architecture based on keepalived/VRRP protocol
○ Supported since RHEL OpenStack Platform 6
Host
L3 High Availability
● Routers are scheduled on two or more Network nodes
● Internal HA network is created per tenant
○ Used to transport the VRRP messages
○ Hidden from tenant CLI and Dashboard
○ Uses the tenant default segmentation (e.g. VLAN, VXLAN)
patch-int patch-int
phy-br-ex phy-br-ex
br-tun br-tun
br-ex br-ex
Virtual interface
Management
Tenant Data
What’s Next
● Role-based Access Control (RBAC) for networks
● Neutron quality of service (QoS)
● Pluggable IPAM
● IPv6 Prefix Delegation
● L3 HA + L2 Population
● L3 HA support for IPv6
● Stateful OVS firewall
● VLAN trunking into a VM
Questions?
Don’t forget to submit feedback using the Red Hat Summit app.
nyechiel@redhat.com
@nyechiel