Professional Documents
Culture Documents
a Network
Advanced! Want to create virtual networks from slices of
physical network
Computer Networks
Each virtual network forwards traffic at line speed:
Sherwood, R., et al., ” Can the Production Network Be no extra overhead in packet forwarding (data
the Testbed?” Proc. of the 9th USENIX Symposium on plane), no extra overhead in the forwarding rule
OSDI, 2010 specifications (control plane)
Reference: Slicing isolates bandwidth, switch CPU, and flow
[C+07] Cascado et al., “Ethane: Taking Control of the table entries between virtual networks
Enterprise,” ACM SIGCOMM ‘07, 37(4):69-74, Oct. 2007
[C+07]
Flow Setup Process SDN Switches and OpenFlow
1. UserA tries to connect to UserB Switch forwarding controlled by NC
2. UserA-to-UserB “flow” isn’t in Switch 1’s flow table, so the • communicates with controller over a secure channel
packet is queued and the NC “notified” • OpenFlow is an open standard NC-switch communication
protocol
3. NC either approves or denies route
Assume simple, off-the-shelf switches
4. If approved, NC adds a new rule into Switch 1’s and Switch • minimal on-board logic
2’s flow tables to establish a flow from UserA to UserB • “flow” table lookup only
• only stores active flows
• no understanding of network topology
• no NAT knowledge
• OpenFlow standard specifies
lowest common denominator
hardware features exposed
to NC’s control
[C+07]
1. Forward packet to port(s) Each slice has its own control plane that defines how
2. Encapsulate and forward to controller packets are forwarded and rewritten in the slice, e.g.,
3. Drop packet
4. Send to normal processing pipeline Bob’s HTTP load-balancer slice specifies:
• topology: encompassing the web servers
Switch MAC MAC Eth VLAN IP IP IP TCP TCP • flowspace: comprising flows with port 80
port src dst type ID src dst prot sport dport
+ mask Slice set up is done manually in the prototype
Network Slice Implementation FlowSpace Definition
FlowVisor intercepts and rewrites OpenFlow Flowspace specified (manually) as an ordered list
messages between NC and switches to enforce that: of tuples similar to firewall rules, example:
• NC → switch: Bob’s HTTP load-balancer network:
• forwarding rules only apply to
the traffic and topology of the
Allow: tcp-port: 80 and ip=Doug’sIP
slice and observe resource quota Allow: tcp-port: 80 and ip=Eric’sIP
• rules may be rewritten, e.g.,
all traffic → port 80 Implications:
all ports → ports in slice
• switch → NC: • new HTTP flow notifications with Doug’s or Eric’s IPs
• only messages from switches (non-contiguous flowspace) are all sent to Bob’s NC
in the slice’s topology are
rules may be rewritten • any flow table entries Bob’s NC tries to add are modified
forwarded to its NC
to apply only to Bob’s to match only HTTP traffic with Doug’s or Eric’s IPs
• port-related messages are pruned or
traffic and topology
rewritten such that NC only sees relevant ports