Is Neutron challenging to you? Learn how VMware NSX is the solution for regular OpenStack Network & Security services and Kubernetes Dimitri Desmidt – Technical Product Manager NSX Yves Fauser - Technical Product Manager NSX May 2017 © 2017 VMware Inc. All rights reserved. Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways Neutron is #1 most challenging OpenStack project !!! From OpenStack survey 2016 • https://www.openstack.org/assets/survey/April-2016-User-Survey-Report.pdf Users called out Ceilometer and Neutron most frequently as projects with significant concerns. For Neutron, they wanted the networking service to be less complicated to use, with more substantial documentation and better integration with compute functions and PaaS layer integration 4 Neutron is #1 most challenging OpenStack project !!! From OpenStack last survey April 2017 • https://www.openstack.org/assets/survey/April2017SurveyReport.pdf Neutron needs to be reworked and simpler – we don't need to include every use case under the sun. 5 Neutron is #1 most challenging OpenStack project !!! What are the biggest challenges • Highly Complex implementation – Implementation of L2 Switching (http://docs.openstack.org/developer/neutron/devref/openvswitch_agent.html) Of course this complex solution is possible to be masterized by OpenStack Neutron gurus Web-01 10.1.1.0/24 .11 .12 .13 However it doesn't removes the challenges on: • Performance Series of linux briges + OVS • Troubleshooting Doing a simple packet-walk requires highexpertise And this shows only L2 !!! 6 Neutron is #1 most challenging OpenStack project !!! What are the biggest challenges • Highly Complex implementation – cont – Layer 3 Networking in Neutron - via Layer 3 agent (http://docs.openstack.org/developer/neutron/devref/layer3.html) And this shows only L3. .1 Not: • Distributed L3 .1 App-01 10.1.2.0/24 Web-01 10.1.1.0/24 .11 .12 .13 .11 .12 • Security Group • Load Balancing • etc 7 So why a vendor Neutron plugin? • Simpler implementation of Neutron services • Vendor support of that critical Cloud service • Higher performance • Management / Operation / Troubleshooting tools • Stability at scale + High-Availability 8 Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways Why NSX Neutron plugin? Stability and High-Availability • NSX offers Network & Security services Enterprise-Grade quality – with scale tests and longevity tests run on each release – so with vendor support at scale • High-Availability is offered built-in in NSX 10 Why NSX Neutron plugin? Multi Hyper-Visor support • NSX offers Network & Security services for multiple hypervisors • Important Note: . All NSX Network & Security services are available on both hypervisors. . Network & Security services are installed in kernel for best performance. No Neutron services running in VM (which would bring challenges on HA and performance) 11 Why NSX Neutron plugin? Advanced Network & Security services vendor supported • NSX offers advanced Network & Security services Animated slide NSX API & UI VM1 VM2 LB-Pool VM3 VM1 VM2 NAT VM1 VM2 VM1 VM3 VM4 Subnet A Subnet B VM2 VM1 VM2 12 Why NSX Neutron plugin? Simple and dynamic integration with physical • NSX offers simple and unique integration with physical world NSX router with pre-created BGP adjacencies with physical routers. At day0, nothing is advertised from NSX Router to physical routers Animated slide NSX API & UI BGP OpenStack Logical Networks 13 Why NSX Neutron plugin? Simple and dynamic integration with physical • NSX offers simple and unique integration with physical world Routes learned: . Subnet A + B . Public-NAT 1 + 2 + 3 + 4 Animated slide NSX API & UI Public-NAT4 Physical routers are NOT touched !!! BGP VM1 VM2 Public-NAT3 LB-Pool VM3 VM1 VM2 Public-NAT1 Public-NAT2 VM1 VM2 VM1 VM3 VM4 Subnet A Subnet B VM2 VM1 VM2 OpenStack Logical Networks 14 Why NSX Neutron plugin? Performance – Switching (1/3) • NSX offers stunning performance – Streamlining networking services in the hypervisors And FYI View with Security Gateway VM1 VM2 ovs-vswitchd ovs-fwd (conntrack) eth1 VLAN or VXLAN 15 Why NSX Neutron plugin? Performance – East/West Routing (2/3) • NSX offers stunning performance .1 .1 App-01 10.1.2.0/24 Web-01 10.1.1.0/24 .11 • Traffic Flow with Distributed Routing .12 .13 Logical View .11 .12 Physical View 16 Why NSX Neutron plugin? Performance – North/South Routing (3/3) • NSX offers stunning performance – DPDK support – Active/Active North/South support External .1 .1 DPDK App-01 10.1.2.0/24 Web-01 10.1.1.0/24 (80Gbps / Node) Active/Active .11 .12 .13 Logical View .11 (Active Cluster up to 8 nodes) .12 Physical View 17 Why NSX Neutron plugin? Day2 operations (operations / troubleshooting) • NSX makes Neutron manageable – Typical Troubleshooting without NSX root@compute01:~# ovs-dpctl dump-flows recirc_id(0),in_port(6),eth(src=b6:cf:d2:e5:ac:8c,dst=00:50:56:6d:fa:8e),eth_type(0x0800),ipv4(frag=no), packets:92456, bytes:12844792, used:0.305s, flags:P., actions:drop recirc_id(0),in_port(6),eth(src=00:50:56:93:39:7d,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.31.32,tip=192.168.31.31,op= 1/0xff), packets:69189, bytes:4151340, used:0.105s, actions:5,4 recirc_id(0),in_port(6),eth(src=00:50:56:6d:fa:8e,dst=00:50:56:93:39:7d),eth_type(0x0800),ipv4(frag=no), packets:88150, bytes:12167094, used:0.689s, flags:P., actions:drop recirc_id(0),in_port(6),eth(src=b6:cf:d2:e5:ac:8c,dst=d2:7e:07:86:a1:cc),eth_type(0x0806), packets:1, bytes:60, used:0.793s, actions:4 recirc_id(0),in_port(3),eth(src=42:7f:11:88:a4:49,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8100),vlan(vid=2101),encap(eth_type(0x0806),arp(o p=2/0xff)), packets:30018, bytes:1921152, used:1.621s, actions:2 recirc_id(0),tunnel(tun_id=0x10801000,src=192.168.31.32,dst=192.168.31.231,tos=0xc0,ttl=64,flags(df+csum+key)),in_port(8),skb_mark(0),eth_type(0x0800),ipv4(proto=17,frag=no),udp(dst=3784), packets:92255, bytes:6088830, used:0.097s, actions:userspace(pid=4294963061,slow_path(bfd)) recirc_id(0),in_port(3),eth(src=00:50:56:93:a9:55,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8100),vlan(vid=2101),encap(eth_type(0x0806),arp(s ip=20.20.20.122,tip=20.20.20.121,op=1/0xff)), packets:10005, bytes:640320, used:6.517s, actions:2 recirc_id(0),in_port(4),eth(src=d2:7e:07:86:a1:cc,dst=00:50:56:6d:fa:8e),eth_type(0x0800),ipv4(frag=no), packets:92323, bytes:12738740, used:0.073s, flags:P., actions:6 recirc_id(0),in_port(3),eth(src=ce:4e:c3:f2:d6:59,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8100),vlan(vid=2101),encap(eth_type(0x0806),arp(s ip=20.20.20.101,tip=20.20.20.101,op=1/0xff)), packets:3920, bytes:250880, used:1.705s, actions:2 recirc_id(0),tunnel(tun_id=0x1e001000,src=192.168.31.21,dst=192.168.31.231,ttl=64,flags(df+csum+key)),in_port(8),skb_mark(0),eth_type(0x0800),ipv4(proto=17,frag=no),udp(dst=3784), packets:88175, bytes:5819550, used:0.289s, actions:userspace(pid=4294963061,slow_path(bfd)) recirc_id(0),in_port(6),eth(src=00:50:56:6d:fa:8e,dst=b6:cf:d2:e5:ac:8c),eth_type(0x0800),ipv4(frag=no), packets:88452, bytes:12277876, used:0.789s, flags:P., actions:drop <snip> Troubleshoot OVS from KVM 18 Why NSX Neutron plugin? Day2 operations (operations / troubleshooting) • NSX makes Neutron manageable – Troubleshooting with NSX 19 Troubleshoot OVS from NSX Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways OpenStack Barcelona 2016 Summit: Done with Mirantis: https://goo.gl/zbpio0 Demo of OpenStack + NSX OpenStack Boston 2017 Summit: Doing with RedHat OS 10 this time • Demo – User1 creation of 2 Tier-App with NAT – User2 creation of 2 Tier-App without NAT – User2 complains MySQL access not working Physical Router Routes learned: . SNAT Router-User1 + FloatingIP-User1Web1 . Subnet User2-Web + User2-DB BGP NSX Tier0 Router External 30.30.30.0/24 SNAT-Router-User1 Floating-IP for User1Web1 .1 No-NAT .1 .1 NAT_db 10.21.2.0/24 NAT_web 10.21.1.0/24 .1 NAT_db 10.22.2.0/24 NAT_web 10.22.1.0/24 MySQL NOT working!!! .3 .3 User1 .3 .3 User2 21 Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways The Container Networking Challenges Encap Header • No fine grained visibility into container networks • Missing Network Policy definition and enforcement • Missing Network Automation Data Kubernetes NSX Topology Kubernetes NSX Topology • Namespaces: We are dynamically building a separate • • NSX/ K8s topology • Namespace: bar Namespace: foo • 10.24.0.0/24 10.24.1.0/24 10.24.3.0/24 network topology per K8s namespace, every K8s namespace gets one or mode logical switches and one Tier-1 router Nodes: Are not doing IP routing, every Pod has its own logical port on a NSX logical switch. Every Node can have Pods from different Namespaces and with this from different IP Subnets / Topologies Firewall: Every Pod has DFW rules applied on its Interface Routing: High performant East/West and North/South routing using NSX’s routing infrastructure, including dynamic routing to physical network Visibility and troubleshooting: Every Pod has a logical port on the logical switch with: • Counters • SPAN / Remote mirroring • IPFIX export • Traceflow / Port-Connection tool • Spoofguard • IPAM: NSX is used to provide IP Address Management by supplying Subnets from IP Block to Namespaces, and Individual IPs and MAC to Pods K8s / NSX Components Network Container Plugin (NCP) Network Container Plugin (NCP) NSX Container Plugin K8s / OS Adapter K8s master CloudFoundry Adapter APIServer Libnetwork Adapter Scheduler More… etcd NSX Manager NSX/ K8s topology NS: foo NCM Infra NSX Manager API Client • NSX Container Plugin: NCP is a software component provided by VMware in form of a container image, e.g. to be run as a K8s Pod • Adapter layer: NCP is build in a modular way, so that individual adapters can be added for different CaaS and PaaS systems • NSX Infra layer: Implements the logic that creates topologies, attaches logical ports, etc. based on triggers from the Adapter layer • NSX API Client: Implements a standardized NS: bar interface to the NSX API CNI – Container Network Interface CNI interface spec • Network Driver Interface: Used by Kubernetes, OpenShift, Cloud Foundry and Mesos • Implementation: Uses a simple local executable call and environment variable injection as the API between the container runtime / orchestration and the network plugin • Relation to Docker Networking: The CNI spec is different to Dockers Libnetwork Container Network Model (CNM), that uses a HTTP REST API for the plugins and is more targeted towards the ‘Docker use-case’ [0] [0] http://blog.kubernetes.io/2016/01/why-Kubernetes-doesnt-use-libnetwork.html NSX-T Container Interface (CIF) Container Interfaces in NSX-T cif Hypervisor (ESXi & KVM) cif mgmt network cif mgmt network DFW vlan 11 OVS eth2 vlan 10 vlan 11 Minion Mgmt. IP Stack Vlan 10 eth2 Node VM OVS NSX CNI Plugin to deploy K8s Nodes as VMs today cif DFW eth0 • K8s Node VMs: Most customers are looking eth0 Node VM Minion Mgmt. IP Stack • Nested Network-Virtualization: Instead of terminating the overlay tunnels in the Node VM, we are extending the Hypervisor vSwitch into the Node VM using VLAN tagging. The Node VM vSwitch (OVS) is ‘standalone’, and only gets programed by the NSX CNI Plugin • Benefits: • No double encapsulation Pods Pods NSX CNI Plugin • Enhanced security through strong isolation of the Node VM from the NSX Control-Plane • Less transport-nodes in NSX which equates to higher scale K8s / NSX Demo DEMO K8s / NSX - FAQ 1. Q: Why is the K8s / NSX solution presented here not using the Neutron API to create network objects? A: We are developing a solution for NSX that works for any compute environment, vSphere, Photon-Platform, KVM Virtualization without OpenStack, as well as public cloud. Therefore we need to be independent from Neutron. We fully support OpenStack Kuryr for Container Networking with Neutron and NSX if a tighter integration with Neutron is desired 2. Q: Are you supporting K8s Network-Policy? A: Yes, our integration fully supports K8s Network Policy 3. Q: Are your supporting the K8s cloud provider for OpenStack A: Yes, one can use the OpenStack Load-Balancing cloud provider, however we are more focused on testing solutions that use K8s Ingress instead of the OpenStack Load-Balancing cloud provider 4. Q: <INSERT YOUR QUESTION HERE> Agenda • Why Neutron is most challenging OpenStack project? • Why NSX plugin for your Neutron? • Demo of OpenStack + NSX • What about Kubernetes in NSX? • Key Takeaways Key Takeaways – NSX for Neutron Neutron offers Networks & Security services. Neutron is made by geeks and for geeks. If you're looking for a production grade Neutron solution, Vendors plugin are required Neutron + NSX plugin makes Neutron production grade thanks to: • Multi-Hypervisor support (it's not only ESXi!!!) • Stability + High performance • Support and support at scale • Management / Operation / Troubleshooting tools Neutron + NSX can be installed within any OpenStack distro Neutron + NSX supports Kubernetes and offers now security to Containers 31 Questions Thank you © 2017 VMware Inc. All rights reserved.
© Copyright 2026 Paperzz