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.
1
Nowdays
2
enormous installedequipment and protocols
barrier to entry for new ideas
Complexity that leads to stasis
Inconsistent policies
Inability to scale
Vendor dependence
Software Defined Networking (SDN)
Vertically integratedClosed, proprietary
Slow innovation
AppAppAppAppAppAppAppAppAppAppApp
HorizontalOpen interfacesRapid innovation
ControlPlane
ControlPlane
ControlPlane or or
Open Interface
SpecializedControlPlane
SpecializedHardware
SpecializedFeatures
MerchantSwitching Chips
Open Interface
Nick McKeown, “How SDN will shape networking”, Standford Univ.
3
Software Defined Networking (SDN)
Control Program Control Program
Network OS
1. Open interface to packet forwarding
2. At least one Network OSprobably many.
Open- and closed-source
PacketForwarding
PacketForwarding
PacketForwarding
PacketForwarding
PacketForwarding
Global Network View
Nick McKeown, “How SDN will shape networking”, Standford Univ.
4
Software Defined Networking (SDN)
Counters for each rule - #bytes, #packets
Pattern Action
Priority
Route: IP/fwd
B
A1
2
3
2:match(dstip=A)[fwd(2)]1:match(* )[fwd(1)]2:match(dstip=B)[fwd(3)]
OpenFlowProgram
dstip=A
dstip=B
dstip!=Adstip!=B
Open Network Foundation, “OpenFlow Switch Specification”, 2013; Chris Monsanto*, Joshua Reich*, Nate Foster^, Jen Rexford*, David Walker*, “Composing Software-Defined Networks”,USENIX, 2013
8
Benefit SDNCentralized 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
9
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.
10
SDN Programinstall_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)])
14
Frenetic
N. Foster, R. Harrison, M. J. Freedman, C. Monsanto, J. Rexford, A. Story, and D. WalkerFoster, “Frenetic: A Network Programming Language”, ACM, 2013.
15
Policy Syntac Semantics Examplesmatch match(f=v) Returns set containing packet if
packet's field f matches value v, empty set otherwise
match(dstmac=EthAddr('00:00:00:00:00:01'))
drop drop Returns empy set drop
modify modify(f=v) Returns set containing copy of packet where field f is set to value v
modify(srcmac=EthAddr('00:00:00:00:00:01'))
forward fwd(a) Returns set containing copy of packet where outport field is set to a
fwd(1)
parallel composition
A + B Returns the union of A's output and B's output
fwd(1) + fwd(2)
sequential composition
A >> B Returns B's output where A's output is B's input
modify(dstip=IPAddr('10.0.0.2'))>>fwd(2) match(switch=1) >> flood()
Pyretic Basic Policies
Pyretic Website, http://frenetic-lang.org/pyretic/
16
Syntax Summary
packets( limit=n, group_by=[f1,f2,...])
callback on every packet received for up to n packets identical on fields f1,f2,...
count_packets( interval=t,group_by=[f1,f2,...]
count every packet received callback every t secondsproviding count for each group
count_bytes( interval=t, group_by=[f1,f2,...])
count every byte received callback every t seconds providing count for each group
Query Policies Pyretic
Pyretic Website, http://frenetic-lang.org/pyretic/
17