Policy Rules

advertisement
Network Abstractions at
Different Layers of the
Stack
Mohammad Banikazemi
November 2013
IBM Research
Outline
IBM Research
Network Abstractions at Different Layers
 Neutron: The OpenStack Networking
 Application-centric Abstractions for Neutron:
Policy Extension Framework
 Application-centric Network Policies
 Conclusion

Different Layers
IBM Research



Neutron is the OpenStack
networking
Higher layers consume
networking resources
through the Neutron API
Lower layers realize these
networking resources
through a pluggable
architecture
App
App
App
App
Cloud
Orchestrator
Heat
Nova
Neutron
Network Controller
Abstractions at Higher Layers
IBM Research


Simple and application centric
Non-network centric: Interested in the needed
network functions and not how they are realized
Tier 2
Tier 1
Tier 3
External Network
Internet
Firewall
Load
Balancer
QoS
Abstractions in Lower Layers
IBM Research
Network centric
 Device oriented (switches/routers)
 Topology aware
 Packet forwarding/routing, Path
computation
 No standard northbound API

* M. Banikazemi, D. Olshefski, A. Shaikh, J. Tracey, and G. Wang,
Meridian: An SDN Platform for Cloud Network Services, IEEE Communications Magazine, Feb 2013
Neutron: A Quantum Approach
IBM Research

Defines a minimal set of interfaces required for
setting up networks for users
Network
• network: isolated layer-2 broadcast
domain; private/shared
Subnet
• 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
Port

Extendable
Neutron Expansion through Extensions
IBM Research



Physical networks
Layer 3 networking
Layers 4-7 services
Router
NAT, Floating IP
Port Binding
Network
Provider
Network
Multi-Provider
Network
Subnet
LBaaS, FWaaS
VPNaaS,
Port
Security Group
Neutron: The 3-tier App Example
IBM Research

One possible implementation using a single router
External Network
Router
Network/subnet
Network/subnet
Network/subnet
Port
Realizing the Application
IBM Research
 Consider part of the 3-tier app:
GROUP:WEB
GROUP:Inet
FW
LB
(Not including calls for creation of
Security Groups, FW and LB)
neutron net-create inet --router:external=True
neutron subnet-create inet 172.16.1.0/24 --disable-dhcp –name inet
neutron net-create web
neutron subnet-create web 10.0.0.0/24 web –name web
neutron router-create router1
neutron router-interface-add router1 web
neutron router-gateway-set router1 inet
neutron floatingip-create --port_id <internal VM port-id> inet
The Problem
IBM Research
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

Neutron: Policy Extension Framework
IBM Research

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

* Icehouse
Design Summit Session (IBM and Cisco joint proposal) : ” Group-based Policy
Abstractions” aka “Connectivity Group Extension API” or “Policy Extension Framework”
Policy Extension Framework
IBM Research

Simple, application-oriented network model
group
logical 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.
Policy Rules and Policy Sets
IBM Research



Policy: made of Policy Rules
Policy Rule: applies actions to selected net traffic
Policy Set: An aggregation of policies; Can
represent an application pattern
Policyrule
Traffic: Http Action: Allow
Policyset
Policies: [policy_web, policy_db]
Policy: The Hierarchy
IBM Research
Policy
Policy Set
Connectivity Groups
Policy
Policy
Policy
(Source & Destination)
Policy Rule
Traffic
Classifier
Action
Policy Rules
Policy Rules
Policy Rules
Policy Rule
Policy Rule: Action Types
IBM Research



Basic connectivity
ACL
Service chaining (Middleboxes)
 List
of services
 Neutron services (*aaS) and/or other services
 Service configuration


QoS and Monitoring
Logical middleboxes
Proposed Neutron CLI
IBM Research
GROUP:WEB
Policy:Web
GROUP:Inet
FW1
LB1
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
The 3-tier App Example: Revisited
IBM Research
GROUP:LOGIC
GROUP:Web
Policy:Web
Policy:DB
GROUP:DB
GROUP:Inet
Heat Template Sketch for 3-tier App
IBM Research
Policy_web_ingress:
cg_inet:
Type: OS::Neutron::policy
Type: OS::Neutron::connectivity_group
Properties:
Properties:
connectivity_groups: {“cg_inet”, “cg_web”}
endpoints: {“inet”}
Policy_rules: [“policy_rule_web”]
configuration: “external”
Policy_rule_web:
cg_web:
Type: OS::Neutron::policy_rule
Type: OS::Neutron::connetivity_group
Properties:
Properties:
traffic_spec:
ports: 80,443
endpoints: { “webserver1”, “webserver2”,
webserver3”}
protocol: “tcp”
action_type:
service_chain: {FW1, LB1}
service_conf: {}

Endpoints:


Current Neutron resources
Neutron resource creation can be explicit or implicit; Can be
automated at higher layers
Extending Heat
IBM Research

Expanding the role of Heat

Open Specifications: TOSCA
Software
Orchestration
Infrastructure
Orchestration
Heat
Nova
Cinder
Neutron
Application-centric Network Services
IBM Research
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

Dynamic Updates
IBM Research

Updating the Connectivity Group will also notify
components of the associated policy
Logical Middlebox: Monitoring
IBM Research




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
Closed-loop Processing
IBM Research

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
Topology Based Policies
IBM Research


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
 Separate
 Network
routes
routes on each direction
hop-count limit
Beyond Single Tenant Policies
IBM Research
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

Conclusion
IBM Research




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
Acknowledgement
IBM Research



Anees Shaikh
David Olshefski and John Tracey
Marcio Silva
Thank You
IBM Research
* Photo credit: wikiHow
Download