LBSDN-Widhi's Presentations(0721)

advertisement
Software Defined Networking
By:
Widhi Yahya
Introduction
1
Mininet
 Mininet is a simulation tool that can create a virtual network,
running real kernels, switches and application code, on a single
machine.
 Mininet provides a ready way to get the SDN network
behaviors and performance for different experimental network
topologies.
 Mininet also enable us to use client server programs such as
ping, iperf, netperf, wget, and other packet generator
programs.
2
Nowdays
Complexity that leads to
stasis
Inconsistent policies
Inability to scale
Vendor dependence
enormous installed
equipment and protocols
barrier to entry for new ideas
Software Defined Networking
(SDN)
3
AppAppAppAppAppAppAppAppAppAppApp
Specialized
Features
Specialized
Control
Plane
Specialized
Hardware
Vertically integrated
Closed, proprietary
Slow innovation
Open Interface
Control
Plane
or
Control
Plane
or
Open Interface
Merchant
Switching Chips
Horizontal
Open interfaces
Rapid innovation
Nick McKeown, “How SDN will shape networking”, Standford Univ.
Control
Plane
Software Defined Networking
(SDN)
Control Program
Control Program
2. At least one Network OS
probably many.
Open- and closed-source
Global Network View
Network OS
1. Open interface to packet forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
Packet
Forwarding
4
Packet
Forwarding
Nick McKeown, “How SDN will shape networking”, Standford Univ.
Software Defined Networking
(SDN)
Open Network Foundation, “OpenFlow Switch Specification”, 2013.
5
Software Defined Networking
(SDN)
[ONF12]-Software-Defined Networking-newnorm
6
Software Defined Networking
(SDN)
Open Network Foundation, “OpenFlow Switch Specification”, 2013.
7
Motorola
Openflow Switches
Openflow Controller
Software Defined Networking
(SDN)
8
2:match(dstip=A)[fwd(2)]
1:match(*
)[fwd(1)]
2:match(dstip=B)[fwd(3)]
OpenFlow
Priority
Program
Counters for each rule
Route:
IP/fwd
- #bytes,
#packets
1
dstip!=A
dstip!=B
Pattern
Action
dstip=A
A
2
3
dstip=B
B
Open Network Foundation, “OpenFlow Switch Specification”, 2013; Chris Monsanto*,
Joshua Reich*, Nate Foster^, Jen Rexford*, David Walker*, “Composing Software-Defined
9
Benefit SDN
 Centralized control of multi-vendor environments.
 Reduced complexity through automation.
 Higher rate of innovation
 Increased network reliability and security
 More granular network control
 Better user experience
10
SDN Review
 Software Defined Networking (SDN) is a concept to
decouple the control plane and data plane of network
devices.
 The emergence of the SDN technology brings many new
network applications realized by programming the SDN
controller.
11
Problems
Naive Algorithm (Round Robin)
12
Problems example
Naive Algorithm (Randomized)
13
Global Topology
14
SDN Program
install_flowmod(5,srcip=X & dstip=P,[mod(dstip=A), fwd(2)])
install_flowmod(4,srcip=0* & dstip=P,[mod(dstip=A), fwd(2)])
install_flowmod(4,srcip=1* & dstip=P,[mod(dstip=B), fwd(3)])
install_flowmod(4,srcip=X & dstip=A ,[fwd(2)])
install_flowmod(4,srcip=X & dstip=B,[fwd(3)])
install_flowmod(3,dstip=A,[fwd(2)])
install_flowmod(3,dstip=B,[fwd(3)])
install_flowmod(2,srcip=X ,[fwd(1)])
install_flowmod(1,*,[fwd(3)])
15
Frenetic
N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D.
WalkerFoster, “Frenetic: A Network Programming Language”, ACM, 2013.
Pyretic Basic Policies
16
Policy
Syntac
Semantics
Examples
match
match(f=v)
Returns set containing packet if match(dstmac=EthAddr('00:00:00:
packet's field f matches value v, 00:00:01'))
empty set otherwise
drop
drop
Returns empy set
drop
modify
modify(f=v)
Returns set containing copy of modify(srcmac=EthAddr('00:00:00
packet where field f is set to value v :00:00:01'))
forward
fwd(a)
Returns set containing copy of fwd(1)
packet where outport field is set to
a
parallel
A+B
composition
sequential
composition
Returns the union of A's output and fwd(1) + fwd(2)
B's output
A >> B
Returns B's output where A's modify(dstip=IPAddr('10.0.0.2'))>>
output is B's input
fwd(2) match(switch=1) >> flood()
Pyretic Website, http://frenetic-lang.org/pyretic/
Query Policies Pyretic
Syntax
17
Summary
packets(
limit=n, callback on every packet received for up to n
group_by=[f1,f2,...])
packets identical on fields f1,f2,...
count_packets(
count every packet received callback every t
interval=t,group_by=[f1,f2,...]
seconds
providing count for each group
count_bytes(
group_by=[f1,f2,...])
interval=t, count every byte received callback every t seconds
providing count for each group
Pyretic Website, http://frenetic-lang.org/pyretic/
Q&A
Thank you
Download