Evaluating Viability of Network Functions on Lambda...

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

Transcript of Evaluating Viability of Network Functions on Lambda...

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