ovn for network functions with k8s

32
OVN4NFV SFC By: Kuralamudhan Ramakrishnan([email protected] ) | October 8 th , 2020 Acknowledgement: Srinivasa Addepalli, Ritu Sood

Upload: others

Post on 03-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OVN for Network functions with K8s

OVN4NFV – SFC By:

Kuralamudhan Ramakrishnan([email protected]) | October 8th, 2020

Acknowledgement:

Srinivasa Addepalli, Ritu Sood

Page 2: OVN for Network functions with K8s

Agenda

• Why network functions in Edge & K8s clusters?

• Edge-computing scenario to describe the K8s networking requirements

• Networking requirements

• OVN4NFV –SFC

• SDEWAN Use case

Page 3: OVN for Network functions with K8s

Application Transformation(AR/VR apps, Gaming, Analytics and Even traditional applications due to sovereignty and context)

mS4 mS4

mS3

mS2

mS1 mS1

WAN

Public/Private cloud

An App consisting of four Micro-services ms1 talks to ms2, ms2 to ms3 and ms3 to ms4ms1” is user facing service

“ms1”, “ms2” are expected to be there together“ms2” is stateful and hence need to talk to each other

• Proximity• Data sovereignty• Economics• Context

mS2

mS1 mS1

Network (LAN/WAN)

Edge Platform

Edge 1

mS2

mS1 mS1

Edge N

WAN

WAN

mS4

mS3

mS4

Public/Private cloud

Centralized computing to Geo distributed computing

Edge Platform

Cloud platform

Cloud Platform

External System

Page 4: OVN for Network functions with K8s

Current/In-progress Edge computing deployments : Multi-Cloud and Multi-Edge

ingress

Compute cluster (Edge computing)

HW

SW Platform

POD POD

App1

POD POD

App2

SDWAN & Security

HW

SW Platform

ingress

ingress

SDWAN

SDWAN

WAF

WAF

SLB

SLB

Edge/private-cloud/VPC

WAN

Internal machines

Compute Cluster (Edge computing)

HW

SW Platform

Edge/private-cloud/VPC

Internal machines

SDWAN & Security

HW

SW Platform

SDWAN

SDWAN

WAF

WAF

SLB

SLB

ingress

ingress

ingress

POD POD

App1

POD POD

App2

SDWAN Controller

WAF Controller

ADC Controller

VNF Orchestrator

App Orchestrator –Simple (git based)

Appx ManagerAppx Manager

Page 5: OVN for Network functions with K8s

Challenge : Under utilization of resources

Compute nodes are divided for VNFs and Applications -

Challenges in allocations and under utilization of

resources

Page 6: OVN for Network functions with K8s

Challenge: Multiple Site level orchestrators leading to wasting of resources

Multiple site level orchestrators (Openstack for VNFs and

Kubernetes for applications)

Wasting resources and higher maintenance

Page 7: OVN for Network functions with K8s

Ask : All in One

ingress

Compute cluster (Edge computing)

HW

SW Platform

POD PODApp1

App2

ingress

ingress

Edge/private-cloud/VPC

Internal machines

Compute Cluster (Edge computing)

HW

SW Platform

Edge/private-cloud/VPC

Internal machines

ingress

ingress

ingress

App1

App2SLB

SLB

SDWAN

SDWAN

SDWAN

SDWAN

SLB

SLB

EMCO

SC SC

POD POD

SC SC

POD POD

SC SC

POD POD

SC SC

WAN

App1 Manager

Secure WAN controller

NGFW

NGFW

NGFW

NGFW

Page 8: OVN for Network functions with K8s

How does NFV based deployment with Cloud-native applications look like (Taking SDWAN with security NFs as an example)

Internet

Hardware (Multiple Nodes)

K8S Cluster

K8S Master

EXTRouterSDWAN

CNF

Provider Network 2

(OVN)

Virtual Network2 (OVN with

LB)

SLB

Virtual Network1 (OVN

with LB)

Default Virtual network (OVN)

resident 1 Applications (Micro-Services)

POD POD PODIngress(L7 LB)

resident 2 Applications (Micro-Services)

POD POD POD

Ingress

(L7 LB)Ingress(L7 LB)

Provider network 1 (OVN using L2 breakout, OVN LB on L2 Switch)

Corp networks

M1

M2

M3

Mx Desktop/laptop/servers

SLB NGFW

View in Slide show

Page 9: OVN for Network functions with K8s

Networking Requirements

Internet

Hardware (Multiple Nodes)

K8S Cluster

K8S Master

EXTRouterSDWAN

CNF

Provider Network 2

(OVN)

Virtual Network2 (OVN with

LB)

SLB

Virtual Network1 (OVN

with LB)

Default Virtual network (OVN)

resident 1 Applications (Micro-Services)

POD POD PODIngress(L7 LB)

resident 2 Applications (Micro-Services)

POD POD POD

Ingress

(L7 LB)Ingress(L7 LB)

Provider network 1 (OVN using L2 breakout, OVN LB on L2 Switch)

Corp networks

M1

M2

M3 SLB NGFW

Dynamic virtual Networks

Network function chainingNetwork function load

balancing

No changes to NFsNo changes to

AppsConfiguration via

operatorsFinite network

SRIOV Overlay networkingSmart NIC friendly & AF_XDP

for packet processing NFs

Provider networks Multiple interfacesFeatureReqmts

Considerations

Page 10: OVN for Network functions with K8s

Why did we choose OVN in for Edge Networking?

One of the best programmable controller

Hides OVS complexity

L2 CNI – Support for unicast, multicast, broadcast applications

One site level IPAM – No IP address restriction with number of nodes

Possible to implement critical features with table based pipeline(Firewall, Routing, Switching, Load balancing)

SmartNIC friendly

Broader eco-system

Page 11: OVN for Network functions with K8s

OVN for K8S and NFV Architecture blocks

Master

Virtual NW manager

Direct Provider Manager

sfc Manager

POD Watcher

Synchronizer (gRPC)

NFN grpc agentVLAN configurator

Route configurator

Linux KernelK

8s clu

ster

CNI Server

NFN Operator:• Exposes virtual, provider, chaining CRDs to

external world.• Programs OVN to create L2 switches.• Watches for PODs being coming up

• Assigns IP addresses for every network of the deployment.

• Looks for replicas and auto create routes for chaining to work.

• Create LBs for distributing the load across CNF replicas.

NFN agent:• Performs CNI operations.• Configures VLAN and Routes in Linux kernel (in

case of routes, it could do it in both root and network namespaces)

• Communicates with OVSDB to inform of provider interfaces. (creates ovs bridge and creates external-ids:ovn-bridge-mappings)

Direct configurator

sfc configurator

CNI shim

VLAN Provider manager

Kubelet

svc:

ovn

-nb

-tcp

:66

41

svc:ovn-sb-tcp:6642

nfn-operator

nfn-agent

OVN Controller

OVSDB

OVS-vswitchd

ovn-controller

OVN North DB

OVN NorthD

OVN South DB

ovn-control-plane

Min

ion

-01

Min

ion

-02

Min

ion

-n

Page 12: OVN for Network functions with K8s

Network traffic between pods

Master

Minion-01 Minion-02

eth0eth0

br-int

veth-p11 veth-p12

ovn4nfv-node1 genev_sys_6081

br-int

veth-p22 veth-p21

genev_sys_6081 ovn4nfv-node2

pod11

eth0

pod12

eth0

pod22

eth0

pod21

eth0

eth0

ovn4nfv-node0 ovn4nfv-node1 ovn4nfv-node2

ovn4nfvk8s-default-nw

Geneve

kube_pod_subnet:10.244.64.0/18

10.233.64.7

10.233.64.6

10.233.64.8

10.233.64.2

10.233.64.7 10.233.64.8

10.233.64.310.233.64.410.233.64.5

192.168.121.2

192.168.121.18

192.168.121.28

SNAT

External traffic

Inter traffic

Intra traffic

Page 13: OVN for Network functions with K8s

Virtual Network CR

apiVersion: k8splugin.opnfv.org/v1alpha1kind: Networkmetadata:

name: ovn-priv-netspec:

cniType: Ovn4nfvipv4subnets:- subnet: 172.16.33.0/24

name: subnet1gateway: 172.16.33.1/24excludeIps: 172.16.33.2 172.16.33.5..172.16.33.10

Creates OVN Switch with this configuration

Page 14: OVN for Network functions with K8s

Dynamic Multiple Network Interfaces

Pod Annotation k8splugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [

{ "name": “ovn-priv-net”, "interfaceRequest": "eth1" },{ "name": “ovn-prot-net”, "interfaceRequest": "eth2" }

]}’

• Assumes primary/first interface provided by another CNI• Supports Static IP addresses

Page 15: OVN for Network functions with K8s

Provider Network CR

apiVersion: k8splugin.opnfv.org/v1alpha1kind: OvnProviderNetworkmetadata:

name: ovn-provider-netspec:

cniType: Ovn4nfvipv4subnets:- subnet: 172.16.33.0/24

name: subnet1gateway: 172.16.33.1/24excludeIps: 172.16.33.2 172.16.33.5..172.16.33.10

providerNetworkType: vlanvlan:

vlanId: 100providerInterfaceName: eth0Node: node1,node2logicalInterfaceName: eth0.100

Create OVN Switch and configures nodes

Page 16: OVN for Network functions with K8s

Provider Network Functionality

• CR creates OVN Switch• Per Node (can be list of nodes, “all” nodes or “any” node)

• Creates VLAN interfaces• Creates OVS Bridge and attaches VLAN interface• Configure ovs external-ids:ovn-bridge-mappings

• Pod annotation for attaching Provider network to a Podk8splugin.opnfv.org/nfn-network: '{ "type": "ovn4nfv", "interface": [

{ "name": “ovn-provider-net”, "interfaceRequest": “net0" }]}’

Page 17: OVN for Network functions with K8s

Network Chaining CR

apiVersion: k8splugin.opnfv.org/v1alpha1kind: NetworkChainingmetadata:name: chain1namespace: vFW

spec:type: RoutingroutingSpec:

leftNetwork:- networkName: ovn-provider1

gatewayIP: 10.1.5.1subnet: 10.1.5.0/24

rightNetwork:- networkName: ovn-provider1

gatewayIP: 10.1.10.1subnet: default

networkChain: app=slb, ovn-net1, app=ngfw, ovn-net2, app=sdwancnf

Inserts routes in Container Namespaces

Page 18: OVN for Network functions with K8s

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 1

WAN

SD-EWAN

CNF

EWAN

Config

EMCO

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 2

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 3

SD-EWAN

CNF

EWAN

Config

APPX Manager

SD-EWAN

CNFEWAN Config

MgrEWAN Config

Agent

VisualizationIP Addr Mgr

Secure WAN Hub

Cluster MgrCluster

Group Mgr

App

Connectivity Mgr

WAN

SD-EWAN

• Open WRT based SE-DWAN CNFS• Cloud Native based SD-EWAN controller and

IPSec controller• Zero touch automation• Solution to all Edge Challenges identified• Centralization controller for configuration• Traffic Hub for sanitization

Advantages• No changes to application Micro services and

configuring Edges• Supporting both green field and brownfield

requirements• Work with third party SD-WAN VNFs (future

roadmap)

ReferRepo: https://gerrit.akraino.org/r/admin/repos/icn/sdwan

View in Slide show

Software Defined Edge WAN (SDEWAN)

Page 19: OVN for Network functions with K8s

Software Defined Edge WAN (SDEWAN)

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 1

WAN

SD-EWAN

CNF

EWAN

Config

EMCO

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 2

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 3

SD-EWAN

CNF

EWAN

Config

APPX Manager

SD-EWAN

CNFEWAN Config

MgrEWAN Config

Agent

VisualizationIP Addr Mgr

Secure WAN Hub

Cluster MgrCluster

Group Mgr

App

Connectivity Mgr

WAN

SD-EWAN

• Open WRT based SE-DWAN CNFS• Cloud Native based SD-EWAN controller and

IPSec controller• Zero touch automation• Solution to all Edge Challenges identified• Centralization controller for configuration• Traffic Hub for sanitization

Advantages• No changes to application Micro services and

configuring Edges• Supporting both green field and brownfield

requirements• Work with third party SD-WAN VNFs (future

roadmap)

ReferRepo: https://gerrit.akraino.org/r/admin/repos/icn/sdwan

View in Slide show

Page 20: OVN for Network functions with K8s

Software Defined Edge WAN (SDEWAN)

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 1

WAN

SD-EWAN

CNF

EWAN

Config

EMCO

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 2

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 3

SD-EWAN

CNF

EWAN

Config

APPX Manager

SD-EWAN

CNFEWAN Config

MgrEWAN Config

Agent

VisualizationIP Addr Mgr

Secure WAN Hub

Cluster MgrCluster

Group Mgr

App

Connectivity Mgr

WAN

SD-EWAN

• Open WRT based SE-DWAN CNFS• Cloud Native based SD-EWAN controller and

IPSec controller• Zero touch automation• Solution to all Edge Challenges identified• Centralization controller for configuration• Traffic Hub for sanitization

Advantages• No changes to application Micro services and

configuring Edges• Supporting both green field and brownfield

requirements• Work with third party SD-WAN VNFs (future

roadmap)

ReferRepo: https://gerrit.akraino.org/r/admin/repos/icn/sdwan

View in Slide show

Page 21: OVN for Network functions with K8s

Software Defined Edge WAN (SDEWAN)

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 1

WAN

SD-EWAN

CNF

EWAN

Config

EMCO

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 2

SD-EWAN

CNF

Edge Platform

Application Micro services

EWAN

ConfigEdge 3

SD-EWAN

CNF

EWAN

Config

APPX Manager

SD-EWAN

CNFEWAN Config

MgrEWAN Config

Agent

VisualizationIP Addr Mgr

Secure WAN Hub

Cluster MgrCluster

Group Mgr

App

Connectivity Mgr

WAN

SD-EWAN

• Open WRT based SE-DWAN CNFS• Cloud Native based SD-EWAN controller and

IPSec controller• Zero touch automation• Solution to all Edge Challenges identified• Centralization controller for configuration• Traffic Hub for sanitization

Advantages• No changes to application Micro services and

configuring Edges• Supporting both green field and brownfield

requirements• Work with third party SD-WAN VNFs (future

roadmap)

ReferRepo: https://gerrit.akraino.org/r/admin/repos/icn/sdwan

View in Slide show

Page 22: OVN for Network functions with K8s

Test scenario – to comprehend multiple deployment

variations

TM1

TM2 (External

Router)

Internet

MS2 (Dynamic

IP)

MS1(Dynamic

IP)

SLBNGFW

SDEWAN CNF

172.30.10.0/24 (Left -Provider network)

172.30.20.0/24(Right - Provider network)

DHCP Server

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

172.30.33.2

172.30.33.3 172.30.44.2

172.30.44.3 172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.10.101

Page 23: OVN for Network functions with K8s

Traffic from external entities with sfc

TM1

TM2 (External

Router)

Internet

MS2 (Dynamic

IP)

MS1(Dynamic

IP)

SLBNGFW

SDEWAN CNF

172.30.10.0/24 (Left -Provider network)

172.30.20.0/24(Right - Provider network)

DHCP Server

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

172.30.33.2

172.30.33.3 172.30.44.2

172.30.44.3 172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.10.101

Page 24: OVN for Network functions with K8s

Traffic from pod within the cluster with sfc

TM1

TM2 (External

Router)

Internet

MS2 (Dynamic

IP)

MS1(Dynamic

IP)

SLBNGFW

SDEWAN CNF

172.30.10.0/24 (Left -Provider network)

172.30.20.0/24(Right - Provider network)

DHCP Server

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

172.30.33.2

172.30.33.3 172.30.44.2

172.30.44.3 172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.10.101

Page 25: OVN for Network functions with K8s

Traffic from external entities – Firewall icmp reject

TM1

TM2 (External

Router)

Internet

MS2 (Dynamic

IP)

MS1(Dynamic

IP)

SLBNGFW

SDEWAN CNF

172.30.10.0/24 (Left -Provider network)

172.30.20.0/24(Right - Provider network)

DHCP Server

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

172.30.33.2

172.30.33.3 172.30.44.2

172.30.44.3 172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.10.101

Page 26: OVN for Network functions with K8s

Traffic from pod within the cluster – Firewall icmp reject

TM1

TM2 (External

Router)

Internet

MS2 (Dynamic

IP)

MS1(Dynamic

IP)

SLBNGFW

SDEWAN CNF

172.30.10.0/24 (Left -Provider network)

172.30.20.0/24(Right - Provider network)

DHCP Server

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

172.30.33.2

172.30.33.3 172.30.44.2

172.30.44.3 172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.10.101

Page 27: OVN for Network functions with K8s

OVN4NFV Status

Current• Dynamic Network Creation • VLAN Provider Network Support – Controller and Agent• Direct Provider Network Support – Controller and Agent• SFC feature – Controller and Agent • Kubespray default primary network plugin• Tested with sdewan CNFs and SDEWAN Controller• Tested with vDPA and OVS offloading as a PoC

Link to Repo:https://github.com/opnfv/ovn4nfv-k8s-pluginhttps://github.com/kubernetes-sigs/kubespray/blob/master/docs/ovn4nfv.md

Page 28: OVN for Network functions with K8s

Upcoming features in OVN4NFV

Work In Progress• Kubespray Centos CI/CD, SFC advance testing• Using OVN Load balancer for Kubernetes service(without kube-proxy)• SRIOV NIC as primary network interfaces• SFC support with OVN load balancer support for NF Elasticity• Network policy with OVS• Proxy less service mesh with OVN & Ipsec in network namespace• IPv6 support• Traffic interception method with 5G UPF

Page 29: OVN for Network functions with K8s

OVN4NFV – SFC By:

Kuralamudhan Ramakrishnan([email protected]) | August 11th, 2020

Acknowledgement:

Srinivasa Addepalli, Ritu Sood

Page 30: OVN for Network functions with K8s

Test scenario – to comprehend multiple deployment

variations

foo

TM2 (External

Router)

Internet

TM2

TM1

SLB

NGFW

SDEWAN CNF

172.30.20.0/24(Right - Provider network)

LBingress

External existing entities VNF/CNFsDefault route: 172.30.10.3

172.30.10.3

172.30.33.2172.30.33.3 172.30.44.2

172.30.44.3172.30.20.3

Routes:Default via WANIP172.30.10.0/24 via 172.30.20.3

172.30.33.0/24 via 172.30.20.3

172.30.44.0/24 via 172.30.20.3

Default route: 172.30.20.2

Routes:Default via 172.30.20.2172.30.10.0/24 via 172.30.44.2172.30.33.0/24 via 172.30.44.2

Routes:Default via 172.30.44.3

172.30.10.0/24 via 172.30.33.2

Routes:Default via 172.30.33.3172.30.44.0/24via 172.30.33.3

172.30.10.0/24 via 172.30.10.2

172.30.20.0/24(Right - Provider network)

kube subnet: 10.233.64.0/18

bar

client

curl –kL http://<loadbalancer>/foo

curl –kL http://<loadbalancer>/bar

172.30.33.0/24(Dynamic network)

dync-net1

172.30.44.0/24(Dynamic network)

dync-net2

Page 31: OVN for Network functions with K8s

NFN Operator and Agent Communication

Page 32: OVN for Network functions with K8s

OVN4NFV – SFC By:

Kuralamudhan Ramakrishnan([email protected]) | August 11th, 2020

Acknowledgement:

Srinivasa Addepalli, Ritu Sood