9.1 - Programming SDNs Flashcards

1
Q

SDN Programming: Three Steps

A
1. Read/monitor State
   Includes:
     -Failures
     - topology changes
     - security events
  1. Compute policy based on the state that the controller sees from the network.
  2. Write policy back to the switches by installing the appropriate flow table state into the switches.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What if more packets arrive before a rule is installed?

A

Solution:

  1. Programmer specifies “Limit(1)”, indicates that the application should only see the first packet of the flow
  2. Runtime system hides extra events
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Solutions in order to help guarantee consistency when reading state

A
  • predicates
  • unfolding
  • suppresion
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Reasons a controller might want to write policy to change the state and the network switches

A
  • Maintenance
  • Unexpected failure
  • Traffic engineering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ensuring forwarding remains correct and consistent

A
  • No forwarding loops
  • No “black holes”
  • No security violations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What problems can arise from inconsistent “writes” of network state?

A
  • Forwarding loops

- Security policy violations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are some ways of coping with inconsistency?

A

Keeping the old and new state on the routers/switches

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is network virtualization

A

Abstraction of physical network
-> multiple logical networks on shared physical substrate

Nodes: VMs
Links: Tunnels

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Why Virtual Networking?

A

“Ossification” of Internet architecture

-> Network virtualization enables evolution by letting multiple architectures exist in parallel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Motivation for virtual networking?

A
  • Facilitating research/evolution by allowing coexistence

- Adjusting resources to demand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Promise of Network Virtualization

A
  1. Rapid innovation (software speed)
  2. New forms of network control
  3. (Potentially) simpler programming

SDN vs Network Virtualization

SDN: Separate data and control
Network Virtualization: separate logical and physical

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Characteristics of network virtualization

A
  • Allowing multiple tenants to share underlying physical infrastructure
  • Separating logical and physical networks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Various Design Goals of Virtual Networks

A
  • Flexible
  • Manageable
  • Scalable
  • Secure
  • Programmable
  • Able to support different technologies
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Two Components of Virtual Networks

A

Nodes: VMs (or virtual environments)
examples: Xen, VMWare, Vservers

Edges: Tunnels

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Programming OpenFlow not easy. Why?

A
  • Low level of abstraction
  • controller only sees events that switches do not know how to handle
  • race conditions if switch-level rules not installed properly
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Solution to programming OpenFlow?

A

Solution: “Northbound” API

A programming interface that allows applications and other kinds of orchestration systems to program the network

Need a higher level programming interface that allows these applications to talk to the controller so the application isn’t writing low-level OpenFlow rules, but rather is expressing what it wants to have happen in terms of higher-level behaviors.

17
Q

Frenetic Language

A

SQL-Like Query Language

Example:
select (bytes)
where (in:2 & srcport :80)
groupBy(dstMAC)
every(60)
18
Q

Parallel (Policy Composition)

A

Perform both operations simultaneously

eg., counting + fowarding

19
Q

Sequential (Policy Composition)

A

Perform one operation, then the next

e.g., firewall, then switch

20
Q

Example of Sequential Composition

A

Load Balance

A policy might take some traffic coming from half of the source IP addresses and rewrite that to one

21
Q

Pyretic

A

SDN Language and Runtime

Language: express policies
Runtime: compiling these policies to OpenFlow rules

Key abstraction: “located” packets

22
Q

Pyretic Features

A
  • Network policy as function
  • Boolean predicates (not possible in OpenFlow)
  • Virtual packet header fields
  • Composition

OpenFlow: bit patterns
Pyretic: functions
packets -> other packets

identity -> original packet
none -> o (drop)
match(f=v)
mod(f=v)
fwd(a) -> mod (outport=a)
flood()