68
Evaluating Viability of Network Functions on Lambda Architecture By Arjun Singhvi, Anshul Purohit and Shruthi Racha

Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Evaluating Viability of Network Functions

on Lambda Architecture

By Arjun Singhvi, Anshul Purohit and Shruthi Racha

Page 2: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

❖ Examine and modify packets and flows in sophisticated ways

❖ Ensure security, improve performance, and providing other novel network functionality

❖ Examples of Network Functions : Firewall, Network Address Translators, Intrusion Detection Systems

Network Functions (NFs)

Page 3: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

❖ Lie in the Critical Path between source and destination

❖ Should be capable of➢ Handling packet bursts➢ Failures

Network Functions (NFs)

Page 4: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Lambda Architecture - Working

Upload your code to Lambda

Setup your code to trigger from other cloud services, HTTP endpoints or in-app

activity

Lambda runs your code only when triggered, using only

the compute resources needed

Pay just for the compute time used

Page 5: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Lambda Frameworks

❖ Lambda Frameworks are popular

❖ Public cloud lambda offerings➢ AWS Lambda➢ Azure Functions➢ Google Cloud Functions

Page 6: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Lambda Frameworks - Advantages

❖ Elimination of server management❖ Continuous Scaling on demand❖ High-availability❖ Pay-as-you-go model❖ Developer just writes event-handling logic

Page 7: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Problem Statement

Does it make sense to implement network functions on lambda architectures?

Page 8: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Our Focus

❖ Investigate the performance of standalone NFs on Lambda architectures

❖ Implement and evaluate a locality-aware, event-based NF chaining system - LENS

Page 9: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Key Takeaways

❖ Naively implementing NFs on Lambda architecture leads to scalability at the cost of➢ High end-to-end latency➢ High overhead

❖ Porting standalone NFs onto Lambda architecture is not a viable option

❖ Lambda architectures are too restrictive - users cannot control the placement of lambda functions

Page 10: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Outline

❖ Standalone NFs Implementation❖ Standalone NFs Evaluation Results❖ LENS Design❖ LENS Implementation Choices❖ LENS Evaluation Results❖ Summary❖ Conclusion

Page 11: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Standalone Network Functions

❖ Firewall

❖ NAT (Network address translation)

❖ PRADS (Passive Real-time Asset Detection System)

Page 12: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Standalone Network Functions - Firewall

❖ Monitors and controls the incoming and outgoing network traffic based on predetermined security rules

❖ Control Flow -i. Switch triggers Firewall ii. Fetch security rulesiii. Block malicious packets

Firewall

SWITCH

1

Redis

22

3

Page 13: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Standalone Network Functions - NAT

❖ Remaps IP addresses across private and public IP address space

❖ Control Flow -i. Switch triggers NATii. Extract IP address from packetiii. Lookup for IP from external storeiv. Modify the IP address in packet

NAT

SWITCH

1

Redis

22

3

Page 14: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Standalone Network Functions - PRADS ❖ Gathers information on hosts/services

❖ Control Flow -i. Switch triggers PRADSii. Extract relevant packet fieldsiii. Store to external store

PRADS

SWITCH

1

Redis

22

3

Page 15: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Experimental Setup❖ Experiments run on Cloudlab

❖ Synthetic Benchmarks -➢ Sequential Packet Benchmark

■ Analyse latency breakdown➢ Concurrent Packet Benchmark

■ Analyze latency with scale

❖ Lambda Region➢ AWS: us-east-1 region

Page 16: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Sequential Packet Benchmark Results - NATSequential Packet Benchmark: End to End Latency

Packets

Tim

e (s

)

Page 17: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Sequential Packet Benchmark Results - NATTotal Latency = Lambda Execution Time + Network Latency + AWS Overhead

Sequential Packet Benchmark

Tim

e (s

)

Packet Number

Page 18: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Sequential Packet Benchmark Results - NATLambda Execution Time = External Store Access Time + Pure Lambda Execution Time

Sequential Lambda Time Breakdown

Tim

e (m

s)

Packet Number

Page 19: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Concurrent Packet Benchmark Results - NATNetwork Functions Scale on Lambda Frameworks

Number of concurrent packets

Effect of Scale on Packet Processing Latency on a single

machine

Ave

rage

Tim

e pe

r pac

ket (

ms)

Concurrent Benchmark Average Latency

Tim

e (s

)

Concurrent Clients

Page 20: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Concurrent Packet Benchmark Results - NAT

Tim

e of

Lam

bda

(ms)

Concurrent Clients

Average Time on Local vs Lambda

Tim

e of

Loc

al (m

s)

Page 21: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

DynamoDB vs RedisUse of in-memory redis state operations provides much lower latencies

NAT Dynamo Lambda Breakdown

Store TypeTi

me

(ms)

NAT Redis Lambda Breakdown

Store Type

Tim

e (m

s)

Page 22: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

NATFirewall PRADS

2

1

3 54

6

SWITCH

Middlebox Chaining Solution (Naive Approach)

Page 23: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENSLocality-aware, Event-based NF Chaining System

Page 24: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Implementation Choice 1 - All In One

SWITCH

Firewall

NAT

1

PRADS2

❖ Functionality of 3 middleboxes in single function

❖ Pros➢ Locality Aware

❖ Cons ➢ One hot middlebox leads to

unnecessary relaunch of all 3 middleboxes.

➢ One middlebox corruption renders other middleboxes on same lambda instance unusable

Page 25: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Implementation Choice 2 -Step Functions

SWITCH

Default

NAT

Blocked

Firewall

Choice State

PRADS

End

Start

1

2

❖ Interpose each middlebox lambda onto a node in step function

❖ Pros➢ Easy to model complex

workflows❖ Cons

➢ Overhead in Lambda States and Transitions

➢ Can not enforce locality

Page 26: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Implementation Choice 3 - Simple Notification Service❖ Simple Notification Service (SNS)

➢ Fast ➢ Flexible➢ Push Notification Service➢ Send individual messages➢ Fan - out messages➢ Publisher - Subscriber Model

❖ Pros➢ Simplifies Event based handling

❖ Cons➢ Locality unaware

Page 27: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Implementation Choice 3 - Simple Notification Service (SNS)

Firewall NAT PRADS

SWITCH

SNS Topic 1 SNS Topic 2

publish subscribepublish

subscribe

1

23

4 5

6

Page 28: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Evaluation ResultsMiddlebox Chaining : End to End Latency Results

Cha

inin

g M

etho

d

Time (s)

Page 29: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Evaluation Results - Analysing Step FunctionsTotal Latency = Network Latency + Lambda Execution Time + AWS Step Function Overhead

❖ ~100ms to execute ❖ ~3ms for Lambda

Execution❖ High setup cost❖ AWS Step Function

Overhead represents➢ State Transitions➢ Non-Task State time

Step Functions - Latency Breakdown

Step Functions LatencyTi

me

(s)

Page 30: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

LENS Evaluation Results - Analysing SNS Execution

❖ SNS➢ 92% overhead

❖ Overhead includes➢ Pub-Sub delay➢ Lambda Setup

costs

Tim

e (s

)

SNS Latency Breakdown

SNS Latency

Page 31: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Summary❖ Implementing standalone NFs/middleboxes on Lambda is not a viable option

➢ High latency and overhead

❖ Chaining middleboxes hides the high latency

❖ After exploring various chaining methods➢ Services provided by AWS lambda are

■ Very restrictive■ Have high overhead

➢ Chaining is most beneficial in the All-In-One case■ Provides locality■ High memory footprint■ Only suitable when all NFs scale equally

Page 32: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Questions?

Page 33: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph Slides

Page 34: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 1Effect of Scale on Packet Processing

Latency on a single machine

Ave

rage

Tim

e pe

r pac

ket (

ms)

❖ Plot illustrating average NAT response time with concurrent clients

❖ Highlights the problem of scaling on a single machine

❖ Motivation for investigating a an implementation in a distributed setting

Number of concurrent packets

Page 35: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 2❖ NAT implementation on

AWS lambda scales well

❖ AWS lambda: maximum parallel executions set to 100

❖ Latency is mostly unaffected

❖ High end to end latencies

Concurrent Benchmark Average Latency

Tim

e (s

)Concurrent Clients

Page 36: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 3❖ Comparison between

lambda and local NAT

❖ Very higher rate of change of local latency

❖ Lambda is unaffected

❖ Lambda addresses the scaling problem➢ At the cost of very

high end-to-end latency

➢ Further analysisTi

me

of L

ambd

a (m

s)Concurrent Clients

Average Time on Local vs Lambda

Tim

e of

Loc

al (m

s)

Page 37: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 4❖ Distribution of NAT

latencies for 100 sequential packets.

❖ Need to breakdown the latency into known components➢ Network Latency➢ Lambda Execution➢ AWS overhead

Sequential Packet Benchmark: End to End Latency

Packets

Tim

e (s

)

Page 38: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 5

❖ Distribution with the Lambda, Network and AWS overhead components

❖ High cost for launching lambda instances

Sequential Packet Benchmark

Tim

e (s

)

Packet Number

Page 39: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 6

❖ Breakdown of Lambda Execution Time

❖ State operations take higher fraction of time

❖ DynamoDB Update operations are costly➢ Provides High

Consistency

Sequential Lambda Time Breakdown

Tim

e (m

s)

Packet Number

Page 40: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 7

❖ Illustrating the scaling property provided by the lambda architecture

❖ Similar trend observed for Firewall and PRADS middleboxes

❖ Average latency remains mostly unaffected

Concurrent Benchmark Average Latency

Tim

e (s

)

Concurrent Clients

Page 41: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 8❖ Use of in-memory redis state operations provides much lower latencies❖ The state mapping will not be persistent

➢ Backup state in the DynamoDB➢ Replication in Redis

NAT Dynamo Lambda Breakdown

Store Type

Tim

e (m

s)

NAT Redis Lambda Breakdown

Store Type

Tim

e (m

s)

Page 42: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 9❖ Running the benchmarks from an

EC2 instance

❖ Avoids the Wide Area Network Latency by calling an internal API and Lambda trigger➢ Lower Network Latency➢ Lower AWS Overhead

❖ Latency characteristics are comparable among the middleboxes

Latency Trends

Tim

e (s

)

Page 43: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 10❖ AWS chaining constructs have

very high latency

❖ All-In-One illustrates low overhead➢ 1 Lambda instance

❖ Naive launches 3 lambdas

Middlebox Chaining : End to End Latency Results

Cha

inin

g M

etho

dTime (s)

Page 44: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 11❖ States executing lambdas

➢ ~100ms to execute ➢ ~3ms for Lambda execution➢ High setup cost

❖ Overhead represents➢ State Transitions➢ Non-Task State time

Step Functions - Latency Breakdown

Step Functions LatencyTi

me

(s)

Page 45: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Graph 12❖ SNS

➢ 92% overhead

❖ Overhead includes➢ Pub-Sub delay➢ Lambda Setup costs

Tim

e (s

)

SNS Latency Breakdown

SNS Latency

Page 46: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Backup Slides

Page 47: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

● The term middlebox was coined in “1999” alsonow known as network functions.

● Systems that examine and modify packets andflows

● Ensure security & improve performance inenterprise and service provider networks.

● Recent Trend: Network FunctionsVirtualization (NFV)○ Replace dedicated hardware appliances

with software-based network functionsrunning on generic compute resources.

Middleboxes

Figure 1: Various Middleboxes

Page 48: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Lambda Architecture?● Architecture for real-time & serverless computing

○ Execution of stateless functions

● Public cloud lambda offerings○ AWS Lambda○ Azure Functions○ Google Cloud Functions

● Generic Advantages○ Elimination of server management○ Continuous Scaling on demand○ High-availability ○ Event-based triggering mechanism○ Developer just writes event-handling logic

Page 49: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Lambda Architecture● How it works ?

Upload your code to Lambda

Setup your code to trigger from other cloud services, HTTP endpoints or in-app

activity

Lambda runs your code only when triggered, using only

the compute resources needed

Pay just for the compute time used

Page 50: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Problem Statement and Motivation● Evaluate the viability of implementing Network Middleboxes on the Lambda architecture based on

○ Scale○ Performance○ Consistency○ State Maintenance

● Implementing Middleboxes on a single machine does not scale well.

● Use the benefits of scaling and high availability provided by Lambda Architecture

● Obtain better performance characteristics for Middleboxes at scale

Page 51: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

MotivationEffect of Scale on Packet Processing

Latency on a single machine

Ave

rage

Tim

e pe

r pac

ket (

ms)

● Performance degrades with the number of concurrent packets

● Natural way to handle scale is to launch more concurrent instances

● Network middleboxes are on the critical path

○ Handle low latency○ Handle concurrent

connections

● Each stage of processing in a middlebox chain must

○ Handle load ○ Handle hard/soft failures Number of concurrent packets

Page 52: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Solution Approach● Model middleboxes as event-based lambda functions

○ Stateful middleboxes■ Eg. NAT, Firewall■ Fetching and updating state on every packet■ Use external stores for maintaining state

● Trade-off between latency and consistency of the state■ Stateless operations performed in the lambda handler

○ Stateless middleboxes■ Fits the lambda framework naturally■ All the middlebox box handled in a function

● Investigate the idea of middlebox chaining○ Reduce communication time between middleboxes○ Current implementations lead to multiple hops on the network

Page 53: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Concise Result● We would be presenting some results based on our Lambda Middlebox applications

○ Preliminary investigation among public clouds○ Choice of storing the stateful information○ Baseline performance characteristics for the middleboxes

■ NAT■ Firewall■ PRADS

○ Breakdown and analysis of the total client observed end-to-end latency○ Overheads and effect of network latency○ Effect of chaining the middleboxes using various techniques

■ Naive ■ All in one lambda■ Use of a graph-based step functions topology■ Notification based triggering mechanism

Page 54: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (Middleboxes)

● Network Address Translation (NAT)○ Remaps IP addresses across private and

public IP address space○ Design a 2 way mapping to perform lookups○ Lambda functions would

■ Extract IP address from packet■ Lookup for IP to external store■ Modify the IP address in packet

○ Mapping is stored externally■ Database■ In-Memory Cache

Page 55: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (Middleboxes)

● Firewall○ Inspects the IP address/port ○ Mapping contains rules for filtering○ Lambda functions would

■ Extract IP/port fields■ Lookup for filtering rules■ Block malicious packets

● PRADS○ Gathers information on hosts/services○ Mapping stores relevant fields○ Lambda function would

■ Extract IP/port fields■ Store host fields

Generic workflow● Parse incoming packets● Update/Retrieve state information● Middlebox specific action

Page 56: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Baseline Latency ResultsWe pick AWS Lambda to implement the middleboxes discussed

Trends for NAT implementation on AWS-Dynamo and Azure-SQL

NAT End To End Latency Comparison

Tim

e (s

)

Public Cloud

Page 57: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Breakdown of the Latency and Lambda Execution ● Execution of lambda functions is a small fraction of the latency

Page 58: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Concurrent Benchmark Behaviour● The workload launched

concurrent clients

● AWS lambda has a limit of maximum 100 parallel executions

● Small variation in the average time taken for 10 and 100 clients

● Illustrates the scaling achieved by lambda.

○ Contrasts with the single machine trend

Page 59: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Effect of External Store and Network Latency ● Dynamo DB persists the

state to leading to higher overhead

● Storing state in memory leads to faster lookups and updates

● This is not persistent and is lost on redis-server crash

● Majority of the lambda execution time is spent in state lookups

Page 60: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Effect of Network Latency● Sending requests from the

EC2 datacenter avoids the link over Wide Area Network.

● Network latency is a major component of the remote request latency

Page 61: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design I (Lambda - Naive impln)

NATFirewall PRADS

2

1

3 54

6

SWITCH

Page 62: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (Lambda - All In One)

SWITCH

Firewall

NAT

1

PRADS

2

Page 63: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (Step Fns)

SWITCH

Default

NAT

Blocked

Firewall

Choice State

PRADS

End

Start

1

2

Page 64: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (SNS - Pub/Sub model)

Firewall NAT PRADS

SWITCH

SNS Topic 1 SNS Topic 2

publish subscribepublish

subscribe

1

23

4 5

6

Page 65: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Design (Lambda calling Lambda) - Future Work

Page 66: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Comparison between middlebox chaining

Page 67: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Summary

Page 68: Evaluating Viability of Network Functions on Lambda ...pages.cs.wisc.edu/~shruthir/Documents/Evaluating... · Evaluating Viability of Network Functions on Lambda Architecture By Arjun

Conclusion