Network Abstractions at Different Layers of the Stack

28
Network Abstractions at Different Layers of the Stack Mohammad Banikazemi November 2013 IBM Research

description

Network Abstractions at Different Layers of the Stack. Mohammad Banikazemi November 2013. Outline. IBM Research. Network Abstractions at Different Layers Neutron: The OpenStack Networking Application-centric Abstractions for Neutron : Policy Extension Framework - PowerPoint PPT Presentation

Transcript of Network Abstractions at Different Layers of the Stack

Page 1: Network Abstractions at Different Layers of the Stack

Network Abstractions at Different Layers of the Stack

Mohammad BanikazemiNovember 2013

IBM Research

Page 2: Network Abstractions at Different Layers of the Stack

Outline Network Abstractions at Different

Layers Neutron: The OpenStack Networking Application-centric Abstractions for

Neutron: Policy Extension Framework Application-centric Network Policies Conclusion

IBM Research

Page 3: Network Abstractions at Different Layers of the Stack

Different Layers Neutron is the

OpenStack networking Higher layers consume

networking resources through the Neutron API

Lower layers realize these networking resources through a pluggable architecture

Neutron

App App App App

Network Controller

NovaHeat

Cloud Orchestrator

IBM Research

Page 4: Network Abstractions at Different Layers of the Stack

Abstractions at Higher Layers Simple and application centric Non-network centric: Interested in the

needed network functions and not how they are realized

Q

IBM Research

Tier 1

Tier 2

Tier 3

Firewall Load Balancer QoS

External NetworkInternet

Page 5: Network Abstractions at Different Layers of the Stack

Abstractions in Lower Layers

Network centric Device oriented

(switches/routers) Topology aware Packet forwarding/routing, Path

computation No standard northbound API

IBM Research

* M. Banikazemi, D. Olshefski, A. Shaikh, J. Tracey, and G. Wang, Meridian: An SDN Platform for Cloud Network Services, IEEE Communications Magazine, Feb 2013

Page 6: Network Abstractions at Different Layers of the Stack

Neutron: A Quantum Approach

Defines a minimal set of interfaces required for setting up networks for users

Extendable

IBM Research

Port

Network

Subnet

• network: isolated layer-2 broadcast domain; private/shared

• Subnet: CIDR IP address block associated with a network; optionally associated gateway, DNS/DHCP servers

• port: virtual switch port on a network; has MAC and IP address properties

Page 7: Network Abstractions at Different Layers of the Stack

Neutron Expansion through Extensions

Physical networks Layer 3 networking Layers 4-7 services

IBM Research

Port

Network

Subnet

RouterNAT, Floating IP

Security Group

LBaaS, FWaaS

VPNaaS,

Provider Network

Port Binding

Multi-Provider Network

Page 8: Network Abstractions at Different Layers of the Stack

Neutron: The 3-tier App Example

Q

Network/subnet

Network/subnet

Network/subnet

Router

External Network

Port

Q

IBM Research

One possible implementation using a single router

Page 9: Network Abstractions at Different Layers of the Stack

Realizing the ApplicationIBM Research

GROUP:Inet GROUP:WEB Consider part of the 3-tier app:(Not including calls for creation of Security Groups, FW and LB)neutron net-create inet --router:external=Trueneutron subnet-create inet 172.16.1.0/24 --disable-dhcp –name inetneutron net-create web

neutron subnet-create web 10.0.0.0/24 web –name web

neutron router-create router1neutron router-interface-add router1 webneutron router-gateway-set router1 inetneutron floatingip-create --port_id <internal VM port-id> inet

FW LB

Page 10: Network Abstractions at Different Layers of the Stack

The Problem Neutron abstractions are closer to

physical devices Not easily understood and consumed

by higher layers and users The Policy Extension Framework

adds application centric abstractions to Neutron

IBM Research

Page 11: Network Abstractions at Different Layers of the Stack

Neutron: Policy Extension Framework

Basic abstractions we need: Connectivity Groups: Grouping of

endpoints Policy: Specifying the network functions

governing connectivity of these groups Extending the current Neutron object

model Using the existing Neutron resources

IBM Research

* Icehouse Design Summit Session (IBM and Cisco joint proposal) : ” Group-based Policy Abstractions” aka “Connectivity Group Extension API” or “Policy Extension Framework”

Page 12: Network Abstractions at Different Layers of the Stack

Policy Extension Framework Simple, application-oriented network model

grouplogical grouping of VMs• traditional: MAC, IP, port• abstract/cloud: virtual network, application group

policy• between pairs of groups• establish communication• attach properties to the communication• e.g., ACLs, middleboxes, QoS, reliability, etc.

IBM Research

Page 13: Network Abstractions at Different Layers of the Stack

Policy Rules and Policy Sets Policy: made of Policy Rules Policy Rule: applies actions to selected

net traffic Policy Set: An aggregation of policies;

Can represent an application pattern

PolicyruleTraffic: Http Action: Allow

Policyset Policies: [policy_web, policy_db]

policy_web policy_db

IBM Research

Page 14: Network Abstractions at Different Layers of the Stack

Policy: The Hierarchy

Policy RulesConnectivity Groups (Source & Destination)

Policy

Policy RulesPolicy Rules

Policy Rule

TrafficClassifier

Policy Rule

Action

Policy Set

PolicyPolicyPolicy

IBM Research

Page 15: Network Abstractions at Different Layers of the Stack

Policy Rule: Action Types Basic connectivity ACL Service chaining (Middleboxes)

List of services Neutron services (*aaS) and/or other

services Service configuration

QoS and Monitoring Logical middleboxes

IBM Research

Page 16: Network Abstractions at Different Layers of the Stack

Proposed Neutron CLI

neutron connectivitygroup-create inet –external

neutron connectivitygroup-create web

neutron policy-rule-create policyrule-web  --protocol http,https --action fw1,lb1

neutron policy-create policy-web-ingress --policy-endpoints inet,web  --policy-rule   policyrule-web

IBM Research

GROUP:InetPolicy:Web

GROUP:WEB

FW1 LB1

Page 17: Network Abstractions at Different Layers of the Stack

The 3-tier App Example: Revisited

Q

IBM Research

Q

GROUP:Web

GROUP:DB

GROUP:LOGIC

Policy:Web Policy:DB

GROUP:Inet

Page 18: Network Abstractions at Different Layers of the Stack

Heat Template Sketch for 3-tier App

Endpoints: Current Neutron resources Neutron resource creation can be explicit or implicit; Can be

automated at higher layers

IBM Research

Policy_web_ingress: Type: OS::Neutron::policy Properties: connectivity_groups: {“cg_inet”, “cg_web”} Policy_rules: [“policy_rule_web”]

Policy_rule_web: Type: OS::Neutron::policy_rule Properties: traffic_spec: ports: 80,443 protocol: “tcp” action_type: service_chain: {FW1, LB1} service_conf: {}

cg_inet: Type: OS::Neutron::connectivity_group Properties: endpoints: {“inet”} configuration: “external”

cg_web: Type: OS::Neutron::connetivity_group Properties: endpoints: { “webserver1”, “webserver2”, webserver3”}

Page 19: Network Abstractions at Different Layers of the Stack

Extending Heat Expanding the role of

Heat

IBM Research

Nova Cinder Neutron

InfrastructureOrchestration

SoftwareOrchestration

Heat

Open Specifications: TOSCA

Page 20: Network Abstractions at Different Layers of the Stack

Application-centric Network Services

With the basic abstractions in place, we can build on how networking resources are used

Provide interesting application-centric functionalities

Let us look at a few example use cases

IBM Research

Page 21: Network Abstractions at Different Layers of the Stack

Dynamic Updates Updating the Connectivity Group will

also notify components of the associated policy

Q

IBM Research

Page 22: Network Abstractions at Different Layers of the Stack

Logical Middlebox: Monitoring

Monitoring defined as policy Collecting network specific statistics for

applications Aggregate based on flows, endpoint,

groups of endpoints, applications Feeds to the comprehensive closed-loop

processing

IBM Research

QM

Page 23: Network Abstractions at Different Layers of the Stack

Closed-loop Processing Standard MAPE (Monitor, Analyze, Plan, Execute)

model with application-centric network monitoring Application specifies the service level required Application publishes the service level it is

experiencing If service level is not met, application level

monitoring data is analyzed If the problem is deemed to be network related,

actions are taken by modifying the network policies Rerouting paths Bandwidth reservation and throttling

Updating network service if changes in compute resources is initiated

IBM Research

Page 24: Network Abstractions at Different Layers of the Stack

Topology Based Policies Network controllers provide a wide

selection of topology related information and features

Make those available at higher layers through policies Colocation/Anti-colocation for network

routes Non-overlapping routes

Asymmetric routes Separate routes on each direction

Network hop-count limit

IBM Research

Page 25: Network Abstractions at Different Layers of the Stack

Beyond Single Tenant Policies

The policy extension is defined for a given tenant

Can be extended such that network functions can be provided by a tenant to one or more tenants and/or external users

Require to setup the networks across tenants

Admin based vs. tenant centric

IBM Research

Page 26: Network Abstractions at Different Layers of the Stack

Conclusion Different abstractions are useful at

different layers OpenStack Networking needs to be able

to support and use these The framework for new application-centric

network abstractions being proposed

Let us discuss the details at the design session “Connectivity Group Extension” (“Group-based Policy Abstractions for Neutron”) on Friday Nov. 8th @ 3:10pm

IBM Research

Page 27: Network Abstractions at Different Layers of the Stack

Acknowledgement Anees Shaikh David Olshefski and John Tracey

Marcio Silva

IBM Research

Page 28: Network Abstractions at Different Layers of the Stack

* Photo credit: wikiHow

IBM Research

Thank You