Checking-in on Network Functions by Zeeshan Lakhani and Heather - - PowerPoint PPT Presentation

checking in on network functions
SMART_READER_LITE
LIVE PREVIEW

Checking-in on Network Functions by Zeeshan Lakhani and Heather - - PowerPoint PPT Presentation

Checking-in on Network Functions by Zeeshan Lakhani and Heather Miller @ The rise of network functions? Lakhani/Miller Checking-in on Network Functions 2 The rise of network functions? LB Firewall IDS Lakhani/Miller Checking-in on


slide-1
SLIDE 1

Checking-in on Network Functions

by Zeeshan Lakhani and Heather Miller

@

slide-2
SLIDE 2

The rise of network functions?

Checking-in on Network Functions 2 Lakhani/Miller

slide-3
SLIDE 3

The rise of network functions?

Checking-in on Network Functions 2 Lakhani/Miller

∨ Firewall IDS LB

slide-4
SLIDE 4

The rise of network functions?

Checking-in on Network Functions 2 Lakhani/Miller

∨ Firewall IDS LB

slide-5
SLIDE 5

The rise of network functions?

Checking-in on Network Functions 2 Lakhani/Miller

∨ Firewall IDS LB

slide-6
SLIDE 6

The rise of network functions?

Checking-in on Network Functions 2 Lakhani/Miller

writing and modeling

Pyretic Slick NetKat

slide-7
SLIDE 7

The rise of network functions?

Checking-in on Network Functions 3 Lakhani/Miller

writing and modeling

Writing network functions is not “composed of nothing more than algorithms and small programs”[1] complex routing and load balancing policies traffic monitoring experimental/new specifications, protocols, and headers computation and aggregation (e.g. In-Network Computation is a Dumb Idea Whose Time Has Come)

[1] Cultures of programming: Understanding the history of programming through controversies and technical artifacts by Tomas Petricek, University of Kent, UK, 2019

slide-8
SLIDE 8

Motivation

4 Checking-in on Network Functions Lakhani/Miller

slide-9
SLIDE 9

Motivation

4

If I program in React, can I program a network function?

Checking-in on Network Functions Lakhani/Miller

slide-10
SLIDE 10

Motivation

4

If I program in React, can I program a network function?

Checking-in on Network Functions Lakhani/Miller

How do we know what we’re doing is right?

slide-11
SLIDE 11

Motivation

4

If I program in React, can I program a network function?

Checking-in on Network Functions Lakhani/Miller

How do we know what we’re doing is right? How can we iterate?

slide-12
SLIDE 12

Motivation

4 Checking-in on Network Functions Lakhani/Miller

Limits of Correctness e.g. reliance on OpenFlow protocol

slide-13
SLIDE 13

Motivation

4 Checking-in on Network Functions Lakhani/Miller

Limits of Correctness e.g. reliance on OpenFlow protocol Arbitrary (ad-hoc) Logic & Variable-length Data, e.g. Ipv6 Extensions, ndp options packet length failure and reconfiguration

slide-14
SLIDE 14

Motivation

5 Checking-in on Network Functions Lakhani/Miller

[2]

[2] The Click Modular Router by Eddie Kohler, et. al., Laboratory for Computer Science, MIT, 1999

slide-15
SLIDE 15

Two examples

6 Checking-in on Network Functions Lakhani/Miller

MTU: Send Too Big

swap ethernet addresses swap src/dst change protocol set mtu info calculate checksum

Ipv6 Extension Headers: SRH

slide-16
SLIDE 16

Two examples

6 Checking-in on Network Functions Lakhani/Miller

MTU: Send Too Big

swap ethernet addresses swap src/dst change protocol set mtu info calculate checksum

Ipv6 Extension Headers: SRH

slide-17
SLIDE 17

Kinds of Contracts

7 Checking-in on Network Functions Lakhani/Miller

slide-18
SLIDE 18

Kinds of Contracts

7 Checking-in on Network Functions Lakhani/Miller

focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can “sit back, and just watch their contracts be violated” erased on release binaries Design by Contract

slide-19
SLIDE 19

Kinds of Contracts

7 Checking-in on Network Functions Lakhani/Miller

focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can “sit back, and just watch their contracts be violated” erased on release binaries Design by Contract Static Assertions compile-time assertions for consts, statics remain in release binaries

slide-20
SLIDE 20

Kinds of Contracts

7 Checking-in on Network Functions Lakhani/Miller

focused on how runtime contracts can be turned on for monitoring and testing situations so that developers can “sit back, and just watch their contracts be violated” erased on release binaries Design by Contract Static Assertions compile-time assertions for consts, statics remain in release binaries

Static Order- Preserving Headers

slide-21
SLIDE 21

Kinds of Contracts: Design by Contract

8 Checking-in on Network Functions Lakhani/Miller

slide-22
SLIDE 22

Kinds of Contracts: Design by Contract

8 Checking-in on Network Functions Lakhani/Miller

slide-23
SLIDE 23

Kinds of Contracts: Design by Contract

8 Checking-in on Network Functions Lakhani/Miller

slide-24
SLIDE 24

Kinds of Contracts: Static Assertions

9 Checking-in on Network Functions Lakhani/Miller

slide-25
SLIDE 25

Kinds of Contracts: Static Assertions

9 Checking-in on Network Functions Lakhani/Miller

slide-26
SLIDE 26

Kinds of Contracts: Static Assertions

9 Checking-in on Network Functions Lakhani/Miller

slide-27
SLIDE 27

Kinds of Contracts: Static Order-Persevering Headers

10 Checking-in on Network Functions Lakhani/Miller

slide-28
SLIDE 28

Kinds of Contracts: Static Order-Persevering Headers

10 Checking-in on Network Functions Lakhani/Miller

slide-29
SLIDE 29

Implementation

11 Checking-in on Network Functions Lakhani/Miller

slide-30
SLIDE 30

Implementation

11 Checking-in on Network Functions Lakhani/Miller

prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016)

slide-31
SLIDE 31

Implementation

11 Checking-in on Network Functions Lakhani/Miller

prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016)

Focused on Zero-Copy Sofu Isolation

slide-32
SLIDE 32

Implementation

11 Checking-in on Network Functions Lakhani/Miller

prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) implemented as a small rust library to easily write specifications, which generates code for validations and assertions at compile-time

Focused on Zero-Copy Sofu Isolation

slide-33
SLIDE 33

Implementation

11 Checking-in on Network Functions Lakhani/Miller

prototyped as a gradual extension to NetBricks (i.e. NetBricks: Taking the V out of NFV, OSDI 2016) implemented as a small rust library to easily write specifications, which generates code for validations and assertions at compile-time

Focused on Zero-Copy Sofu Isolation macros turn checks into static and dynamic contracts

slide-34
SLIDE 34

Implementation

12 Checking-in on Network Functions Lakhani/Miller

slide-35
SLIDE 35

In Action

13 Checking-in on Network Functions Lakhani/Miller

slide-36
SLIDE 36

In Action

13 Checking-in on Network Functions Lakhani/Miller

  • rder is checked

statically via a trace of packet contents

slide-37
SLIDE 37

In Action

13 Checking-in on Network Functions Lakhani/Miller

  • rder is checked

statically via a trace of packet contents pre-checks validate incoming contents and store contents @ runtime

slide-38
SLIDE 38

In Action

13 Checking-in on Network Functions Lakhani/Miller

  • rder is checked

statically via a trace of packet contents pre-checks validate incoming contents and store contents @ runtime post-checks validate transformed contents against pre-check contents

slide-39
SLIDE 39

Evaluation

14 Checking-in on Network Functions Lakhani/Miller

slide-40
SLIDE 40

Evaluation

14 Checking-in on Network Functions Lakhani/Miller

Design Phase

slide-41
SLIDE 41

Evaluation: Syntax Added

15 Checking-in on Network Functions Lakhani/Miller

slide-42
SLIDE 42

Evaluation: Compilation Time

16 Checking-in on Network Functions Lakhani/Miller

slide-43
SLIDE 43

Evaluation: Runtime Cost

17 Checking-in on Network Functions Lakhani/Miller

Due to: mirroring and tracing packet contents runtime checks storage overhead

slide-44
SLIDE 44

Evaluation: Runtime Cost

17 Checking-in on Network Functions Lakhani/Miller

Due to: mirroring and tracing packet contents runtime checks storage overhead

Design Phase

slide-45
SLIDE 45

Future Work

18 Checking-in on Network Functions Lakhani/Miller

deployment models / running contracts in simulation / CI e.g. via Mininet / Containernet (further) leverage static analysis of input programs interactive feedback (many examples in UI tooling and langs like Elm and Rust) program slicing refinement via domain-specific heuristics and constraint solving

slide-46
SLIDE 46

In Practice

19 Checking-in on Network Functions Lakhani/Miller

Scoped Side Effects cascade packet length checksum etc… Typed Packets

Header : TCP Envelope : T < T : IpPacket >

λ → λ

slide-47
SLIDE 47

Takeaways

20 Checking-in on Network Functions Lakhani/Miller

we need betuer approaches to VERIFY and INTERACT with network functions and packet processing program properties here, we provide a HYBRID-APPROACH and implementation for GRADUALLY checking and validating the arbitrary logic and side effects by COMBINING design by contract, static assertions and type-checking, and code generation via macros all without PENALIZING programmers at development time