networking in openstack - suse linux in openstack. 24 neutron neutron is an openstack project to...

36
Networking in OpenStack Neutron, SDN, NFV, Containers Rossella Sblendido Team Lead Networking [email protected]

Upload: truongthien

Post on 17-May-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

Networking in OpenStackNeutron, SDN, NFV, Containers

Rossella Sblendido

Team Lead Networking

[email protected]

Page 2: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

2

Traditional networking

Page 3: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

3

Limitations of Traditional Networking

Page 4: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

4

It's hardware centric!

Page 5: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

5

Closed system

● Vendor specific software● Costly● Hard to inter-operate

Page 6: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

6

Not scalable!

Page 7: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

7

No abstractions

● Hard to maintain● Hard to innovate● Hard to experiment

Page 8: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

8

Server virtualization

VLANs are not flexible enough (e.g. server is moved)

Traffic differs from the classic server-client model

Page 9: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

9

Connect a new machine

1. Reach the place

Page 10: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

10

Connect a new machine

1. Reach the place

2. Plug the cable

Page 11: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

11

Connect a new machine

1. Reach the place

2. Plug the cable

3. Configure

Page 12: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

12

OpenFlow

Page 13: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

13

OpenFlow

● Open standard● Separation of control plane and data plane

● OF switch has flow tables● OF controller programs the flow entries

● Flow = match + action

Page 14: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

14

OpenFlow switch

Page 15: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

15

SDN

Page 16: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

16

What's SDN?

● Separate control plane from data plane● Centralization of control● Program a network vs configure network

Page 17: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

17

Overlay network

● Encapsulation decouples a network service from the underlying infrastructure

● Per-service state is restricted at the edge of the network

Image from ipcraft.net

Page 18: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

18

Connect a new machine in the virtual world

Page 19: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

19

NFV

Page 20: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

20

What's NFV?

Page 21: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

21

NFV benefits

● Agility● Reduced costs● Faster time to market● Interoperability

Page 22: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

22

OPNFV

● Open Source platform for deploying NFV solutions

Page 23: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

23

Networking in OpenStack

Page 24: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

24

Neutron

● Neutron is an OpenStack project to provide “networking as a service” between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova)

● provides a powerful API to define the network connectivity

Page 25: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

25

Neutron abstractions

● Network: L2 broadcast domain● Subnet: a block of v4 or v6 IP addresses and associated

configuration state.● Port: a connection point for attaching a single device, such

as the NIC of a virtual server, to a virtual network. Also describes the associated network configuration, such as the MAC and IP addresses to be used on that port.

● Router: interconnects networks

Page 26: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

26

Modular architecture

● Plugin: custom back-end implementation of the Networking API

● Neutron-server: exposes the API

Page 27: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

27

Neutron agents

● L2 agent● DHCP agent● L3 agent● Metadata agent

Page 28: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

28

Neutron advanced services: LBaaS

● Pools● Virtual IPs● Listeners● Health monitors

Page 29: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

29

Neutron advanced services: VPNaaS

● IPSec● OpenSwan

Page 30: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

30

Neutron advanced services: FWaaS

● Enhanced router

Page 31: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

31

Containers

Page 32: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

32

Containers are cool but...

● Containers need to be reachable● Containers need to be connected together

Image from patgt.net

Page 33: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

33

Kuryr

● Neutron Stadium● Map container networking abstraction to the Neutron API● Bring containers and VMs together under one API

Page 34: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

34

Kuryr: how it works

● Maps libnetwork API into Neutron API● Leverages the networking services provided by Neutron

Page 35: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS

35

Thanks!Questions?

Page 36: Networking in OpenStack - SUSE Linux in OpenStack. 24 Neutron Neutron is an OpenStack project to provide “networking as a ... Neutron advanced services: LBaaS