& SDN Components • Introducing OpenFlow Protocol • How they work together? ✤ SDN Applications • Introducing OpenFlow Controller - Ryu • Write your first Ryu application • Configure and connect to virtual switch ✤ SDN Implementations • LAB1 Developing a hub application
Statistics Packets/Byte counters 1. Forward packet to port(s) 2. Encapsulate and forward to controller 3. Drop packet 4. Modify field and send to processing pipeline in_port VLAN ID MAC Src MAC Dst Eth type IP Src IP Dst IP ToS sport dport
MAC Src MAC Dst Eth type IP Src IP Dst IP ToS sport dport action in_port VLAN ID MAC Src MAC Dst Eth type IP Src IP Dst IP ToS sport dport action * * 70:56:x * * * * * * * port4 port5 2 70:56:x 20:66:x 0800 8.8.8.8 8.8.4.4 0 5566 80 port8 Switching Flow Switching
MAC Src MAC Dst Eth type IP Src IP Dst IP ToS sport dport action in_port VLAN ID MAC Src MAC Dst Eth type IP Src IP Dst IP ToS sport dport action * * * * * * * * * 23 drop * * * * * * 8.8.4.4 * * * port8 Firewall Routing
✤ TLS recommended since OpenFlow 1.3 OpenFlow is a standardised protocol for communication between a SDN Controller and separate forwarding hardware. ✤ OpenFlow 1.0: Dec 2009: IPv4 only, limited features ✤ OpenFlow 1.1: Dec 2011: Multiple flow tables, Group table, Suport MPLS ✤ OpenFlow 1.3: Jun 2012: IPv4 and IPv6, Per flow meter support, Flexible table miss ✤ OpenFlow 1.4: Oct 2013
& SDN Components • Introducing OpenFlow Protocol • How they work together? ✤ SDN Applications • Introducing OpenFlow Controller - Ryu • Development Environment • Write your first Ryu application • Configure and connect to virtual switch ✤ SDN Implementations • LAB1 Developing a hub application
framework ✤ Fully written in Python. Easy to use and prototyping ✤ Originally a project of NTT Communications (Japan) ✤ Ryu supports various protocols for managing network devices • OpenFlow 1.0, 1.2, 1.3, 1.4, Netconf, OF-config, SNMP etc. ✤ OpenSource Licence: Apache 2.0 ✤ http://osrg.github.io/ryu/
OpenFlow compatible switch • Physical openflow switches or Virtual switches ✤ Two or more hosts to generate traffic ✤ Way to see OpenFlow messages • Wireshark
class (subclass of ryu.base.app_manager.RyuApp) • event driven (important!) • ryu-manager can run multiple applications at once • one light weight thread per app • apps can pass messages to each other, to cooperate
四台測試筆電 2. 實驗分配 • 2~3 ⼈人為⼀一組 • 每組分別分配⼀一台交換機,台 筆電 3. SDN tutorial VM • Install VirtualBox • Import SDN tutorial VM to Virtualbox 4. Download Utils tool • Putty or Mobaxterm for SSH
& SDN Components • Introducing OpenFlow Protocol • How they work together? ✤ SDN Applications • Introducing OpenFlow Controller - Ryu • Write your first Ryu application • Configure and connect to virtual switch ✤ SDN Implementations • LAB1 Developing a hub application
✤ ⼀一台ping 8.8.8.8 ✤ 利⽤用另⼀一台host,開啟wireshark,觀察到有收到其封包 ✤ How does it work ? h1 ping 8.8.8.8 1.packet 2. OF:packet-in 3. OF:packet-out 4.packet 4.packet Internet Legacy Switch
or IRC #sdnds-tw on Freenode ✤ 索取Slack頻道邀請函: https://sdnds-tw.herokuapp.com/ ✤ Google group: http://group.sdnds.tw/ ✤ Hackpad: https://sdnds-tw.hackpad.com/