Documente Academic
Documente Profesional
Documente Cultură
Jos Fortes Center for Cloud and Autonomic Computing Advanced Computing and Information Systems Lab
Universitas Indonesia , Jakarta, June 3, 2013
Outline
Basic motivation Openflow basics Hands-on demo From SDN to virtual networking at large Introduction to ViNe Hands-on demo of ViNe on FutureGrid Conclusions
Resources
http://www.openflow.org/wk/index.php/Open Flow_Tutorial
Use tools pre-packaged in a VM (mininet) Modify a OpenFlow hub to a learning switch Many controller/platform options
http://trema-tutorial.heroku.com/
enables direct programmability of networks Internet Engineering Task Force: an approach that enables applications to converse with and manipulate the control software of network devices and resources Internet Draft, Sep. 2011 by T. Nadeau
OpenFlow
Large base of devices and protocols Networking experiments cannot compete with
production traffic No practical way to test new network protocols in realistic settings
Closed systems
Networking Planes
Data Plane
Control Plane
OpenFlow Architecture
Separate control plane and data plane
Run control plane software on general purpose hardware Programmable data plane
An OpenFlow Switch
Controller
OpenFlow Protocol
Secure Channel
Pipeline
OpenFlow
Every packet that comes through an OpenFlow port is processed through the flow pipeline Processing may incur multiple tables
Match field (e.g. Ethernet MAC src, IPv4 dest) Priority determines which match applies Instructions update action set (applied at output)
Advanced Computing and Information Systems laboratory
OpenFlow
Provides basic primitives for virtualization
Packets are intercepted High-throughput datapath: flow tables Packets not matched in flow table sent to controller
Slower control path Can use event to program flow table entries
Support layer-2 matching and actions
10
OpenFlow
Ctrl Ctrl Ctrl
VMM switch
Ctrl tag
Physical host
Physical switch
Physical host
Advanced Computing and Information Systems laboratory
11
1. Forward packet to port(s) 2. Encapsulate and forward to controller 3. Drop packet 4. Send to normal processing pipeline
Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport
Source: Nick McKeown, Why Can't I Innovate in My Wiring Closet?, MIT CSAIL Colloquium, April 2008
Advanced Computing and Information Systems laboratory
Examples
Switching
Flow Switching
Firewall
Routing
VLAN Switching
Hands-on example
Will use a simulator called mininet running on a Virtual Box virtual machine Will create a simple 3-hosts 1-switch topology Then will observe that no communication takes place when flows are not programmed into Openflow switch Then will program flows and observe communication take place as a result
Control Program
Protocols
Protocols
Abstract Network View Control Nypervisor Program Global Network View Network Operating System
Many Projects/Implementations
Software Switch
Open vSwitch
Network Operating Systems
FlowVisor
Routing
RouteFlow
Many others
Dynamic environment: resources (physical and virtual), users, and applications frequently come and go Large scale infrastructure Need efficient mechanisms to change how networks operate Rely on vendor-provided and in-house software to manage the network Manually generated or semi-automatically generated configurations Only cloud/network administrators can interact with network equipment Network programming instead of network configuration Potentially open to all users/applications
Without SDN
With SDN
ViNe Architecture
Dedicated resources in each broadcast domain (LAN) for VN processing ViNe Routers (VRs)
No VN software needed on nodes (platform independence) VNs can be managed by controlling/reconfiguring VRs VRs transparently address connectivity problems for nodes
23
Network virtualization processing only performed by VRs Firewall traversal only needed for inter-VR communication ViNe firewall traversal mechanism:
Queue VR
VRs with connectivity limitations (limited-VRs) initiate connection (TCP or UDP) with VRs without limitations (queue-VRs) Messages destined to limited-VRs are sent to corresponding queue-VRs Long-lived connection possible between limited-VR and queue-VR Generally applicable
Advanced Computing and Information Systems laboratory
24
ViNe Routing
Appli cation
packet processing in Java in user space Processing Time Linux Libnet Linux Netfilter Compute nodes need no additional software
12s/message
ViNe Routing
Local Network Description Table (LNDT)
Describes the VN membership of a node Describes the sub-networks that a VR is responsible for
Global Network Description Table (GNDT) Suppose that a VR with the following routing tables, received a packet from 172.16.0.10 destined to 172.16.10.90
GNDT ViNe ID 1 Network/Mask 172.16.0.0/24 LNDT Host 172.16.0.10 172.16.0.11 ViNe ID 1 2 GNDT ViNe ID 2 Network/Mask 172.16.0.0/24 172.16.20.0/24
Advanced Computing and Information Systems laboratory
172.16.10.0/24
ViNe Routing
Original, unmodified packet VH1VH2 is delivered VRB looks up its routing table. ViNe packet is encapsulated The table header indicates that the with an additional for packet should be forwarded to transmission in physical A space: BA:(VH1 VH2)
VH VH2 ViNe domain VRA VH4 ViNe domain VRC VRD ViNe domain Virtual Space VH ViNe domain VRB VH3 VR ViNe Router Host
Packet with header VH1VH2 is directed to VRB using L2 communication (MAC VH1 MAC VRB)
VH1
H
Physical Space
H H2 A N
Public network A
H
Private network B
H1 B
R
Internet
N F H
Private network C
Public network D
H3
R N F
Overlay routing tables, buffer size, encryption on/off Autonomic approaches possible Java reflection to map commands to method invocations
Requests ViNe Central Server Configuration actions Requests
Requests
VR
...
VR
Oversees global VN management Maintains ViNe-related information Authentication/authorization based on Public Key Infrastructure Remotely issue commands to reconfigure VR operation
Advanced Computing and Information Systems laboratory
28
vNIC
vNIC
vNIC
vNIC
vNIC
NIC
vNIC
NIC
Physical Network
Advanced Computing and Information Systems laboratory
promiscuous mode, use raw sockets, attack network (spoofing, proxy ARP, flooding, )
configured inside VMs, and NAT techniques are used (many intermediate nodes/hops in LAN communication)
ViNe Routing
Original, unmodified packet VH1VH2 is delivered Problem: packet injection is blocked Example: VH1 in clouds
sends a packet to VH2 VH2
VRB looks up its routing table. ViNe packet is encapsulated The table header indicates that the with an additional for packet should be forwarded to transmission in physical A space: BA:(VH1 VH2)
VH ViNe domain VRA Virtual Space VH
Packet with header VH1VH2 is directed to VRB using L2 communication (MAC VH1 MAC VRB) Problem: communication is blocked in clouds
ViNe domain
H
Physical Space
H H2 A N
Public network A
H
Private network B
H1 B
R
Internet
N F H
Private network C
Public network D
H3
R N F
Solution
Configure all nodes to work as VRs
No need for host-to-VR L2 communication TCP or UDP based VR-to-VR communication circumvents the source address check restriction Network virtualization software required in all nodes Network virtualization overhead in inter- and intra-site communication Complex configuration and operation No need to implement complex network processing leave it to specialized resources (i.e., full-VRs) Keep it simple, lightweight, tiny Use IP addresses as assigned by providers Make it easy for end users to deploy
But
TinyViNe
TinyViNe
TinyViNe software
TinyVR processing
VRs Transmit to a VR the intercepted packets through UDP tunnels Decapsulate incoming messages through UDP tunnels Deliver the packets
Multicloud/Intercloud/Sky Computing
Tiny ViNe
Tiny ViNe Intel Xeon Woodcrest, 2.33 GHz, 2.5 GB RAM, Linux 2.6.16
PU
AMD Opteron 248, 2.2 GHz, FutureGrid 3.5 GB RAM, Linux 2.6.32
1. ViNe-enable sites 2. Configure ViNe VRs 3. Instantiate BLAST VMs 4. Contextualize a.Retrieve VM information b.ViNe-enable VMs c.Configure Hadoop
UF
UF
ViNe offers:
Hotel
India
NID: Network
Impairment Device
NID: Network
Impairment Device
VR
VR
Sierra
Foxtrot
Private Network
Conclusions
SDN and virtual networking in general will play increasingly important roles in