SlideShare a Scribd company logo
SDN Quick Start
with OpenFlow and Ryu
Who am I ?
• Tseng Yi(a.k.a Takeshi)
• NCTU W2CN Lab
• Hierarchical SDN Controller
• Python, Java, C, Dessert
• COSCUP 2012~2015
Why SDN?
OpenFlow
Ryu
–http://osrg.github.io/ryu/
「Ryu is a component-based software defined
networking Framework」
OpenFlow Message
Ryu
Ryu Event
OpenFlow Message
Ryu
Message Object
http://blog.takeshi.tw
Controller
App App…
HW
SDN Protocol
OpenFlow Outline
• Packet In
• Packet Out
• Flow Entry Modify
Environment
Environment
• Network simulator : http://mininet.org/
• python 2/3
• https://github.com/sdnds-tw/ryuInstallHelper
Mininet
• sudo mn --controller=remote,ip=x.x.x.x,port=x
• sudo mn --topo tree,depth=2,fanout=3
• sudo mn —controller=remote,ip=x.x.x.x,port=x
• ryu-manager
Packet In
Code
Packet Out
Code
Flow Entry
Flow Entry
• Match Fields
• Priority
• Counters
• Instructions
• Timeouts
• Cookie
• Flags
Code
Q & A
sdnds.tw
blog.takeshi.tw

More Related Content

What's hot

OpenStack Neutron 201 1hr
OpenStack Neutron 201 1hr OpenStack Neutron 201 1hr
OpenStack Neutron 201 1hr
David Lenwell
 
Software defined networking(sdn) pro acrtive routing path update research pro...
Software defined networking(sdn) pro acrtive routing path update research pro...Software defined networking(sdn) pro acrtive routing path update research pro...
Software defined networking(sdn) pro acrtive routing path update research pro...
MD SHIBLI
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllersIsaku Yamahata
 
OpenStack Astara
OpenStack AstaraOpenStack Astara
OpenStack Astara
Kiran Murari
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
Isaku Yamahata
 
Introduction to NBL
Introduction to NBLIntroduction to NBL
Introduction to NBL
Fei Ji Siao
 
Wireshark
WiresharkWireshark
Wireshark
Alanoud Alqoufi
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with NeutronKwonSun Bae
 
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)
Bangladesh Network Operators Group
 
OpenStack Networking and Automation
OpenStack Networking and AutomationOpenStack Networking and Automation
OpenStack Networking and Automation
Adam Johnson
 
Software defined network-- SDN
Software defined network-- SDNSoftware defined network-- SDN
Software defined network-- SDN
Aadarsh Sharma
 
Ravi Namboori Software Defined Network Presentation
Ravi Namboori Software Defined Network PresentationRavi Namboori Software Defined Network Presentation
Ravi Namboori Software Defined Network Presentation
ravi namboori
 
2nd sdn interest group session2 (121218)
2nd sdn interest group   session2 (121218)2nd sdn interest group   session2 (121218)
2nd sdn interest group session2 (121218)
NAIM Networks, Inc.
 
Openstack Neutron Insights
Openstack Neutron InsightsOpenstack Neutron Insights
Openstack Neutron Insights
Atul Pandey
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, Taiwan
Fei Ji Siao
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9ONOS Project
 
OpenStack networking (Neutron)
OpenStack networking (Neutron) OpenStack networking (Neutron)
OpenStack networking (Neutron)
CREATE-NET
 
Operating System fo IoT
Operating System fo IoTOperating System fo IoT
Operating System fo IoT
Pradeep Kumar TS
 
Software defined networking
Software defined networkingSoftware defined networking
Software defined networking
Google
 

What's hot (20)

OpenStack Neutron 201 1hr
OpenStack Neutron 201 1hr OpenStack Neutron 201 1hr
OpenStack Neutron 201 1hr
 
Software defined networking(sdn) pro acrtive routing path update research pro...
Software defined networking(sdn) pro acrtive routing path update research pro...Software defined networking(sdn) pro acrtive routing path update research pro...
Software defined networking(sdn) pro acrtive routing path update research pro...
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllers
 
OpenStack Astara
OpenStack AstaraOpenStack Astara
OpenStack Astara
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
 
Introduction to NBL
Introduction to NBLIntroduction to NBL
Introduction to NBL
 
Wireshark
WiresharkWireshark
Wireshark
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
 
Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)Introduction to Software Defined Networking (SDN)
Introduction to Software Defined Networking (SDN)
 
OpenStack Networking and Automation
OpenStack Networking and AutomationOpenStack Networking and Automation
OpenStack Networking and Automation
 
Software defined network-- SDN
Software defined network-- SDNSoftware defined network-- SDN
Software defined network-- SDN
 
Ravi Namboori Software Defined Network Presentation
Ravi Namboori Software Defined Network PresentationRavi Namboori Software Defined Network Presentation
Ravi Namboori Software Defined Network Presentation
 
2nd sdn interest group session2 (121218)
2nd sdn interest group   session2 (121218)2nd sdn interest group   session2 (121218)
2nd sdn interest group session2 (121218)
 
OWF12/Open Standards for Cloud - Cs owf
OWF12/Open Standards for Cloud - Cs owfOWF12/Open Standards for Cloud - Cs owf
OWF12/Open Standards for Cloud - Cs owf
 
Openstack Neutron Insights
Openstack Neutron InsightsOpenstack Neutron Insights
Openstack Neutron Insights
 
Global SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, TaiwanGlobal SDN-IP Deployment at NCTU, Taiwan
Global SDN-IP Deployment at NCTU, Taiwan
 
Onos summit roadmap dec 9
Onos summit  roadmap dec 9Onos summit  roadmap dec 9
Onos summit roadmap dec 9
 
OpenStack networking (Neutron)
OpenStack networking (Neutron) OpenStack networking (Neutron)
OpenStack networking (Neutron)
 
Operating System fo IoT
Operating System fo IoTOperating System fo IoT
Operating System fo IoT
 
Software defined networking
Software defined networkingSoftware defined networking
Software defined networking
 

Viewers also liked

Ryu SDN-IP
Ryu SDN-IPRyu SDN-IP
Ryu SDN-IP
Yi Tseng
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loader
Yi Tseng
 
20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup
Yi Tseng
 
JS introduction
JS introductionJS introduction
JS introduction
Yi Tseng
 
NSCTF
NSCTFNSCTF
NSCTF
Yi Tseng
 
RYU Introduction
RYU IntroductionRYU Introduction
RYU Introduction
NCTU
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
Yi Tseng
 
SDNDS.TW Mininet
SDNDS.TW MininetSDNDS.TW Mininet
SDNDS.TW Mininet
NCTU
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
APNIC
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
呈 李
 
SDN ryu 專題安裝
SDN ryu 專題安裝SDN ryu 專題安裝
SDN ryu 專題安裝
承樺 董
 
Ryu Learning Guide
Ryu Learning GuideRyu Learning Guide
Ryu Learning Guide
呈 李
 

Viewers also liked (12)

Ryu SDN-IP
Ryu SDN-IPRyu SDN-IP
Ryu SDN-IP
 
Ryu dynamic loader
Ryu dynamic loaderRyu dynamic loader
Ryu dynamic loader
 
20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup20161119 SDNDS-TW Meetup
20161119 SDNDS-TW Meetup
 
JS introduction
JS introductionJS introduction
JS introduction
 
NSCTF
NSCTFNSCTF
NSCTF
 
RYU Introduction
RYU IntroductionRYU Introduction
RYU Introduction
 
2016 NCTU P4 Workshop
2016 NCTU P4 Workshop2016 NCTU P4 Workshop
2016 NCTU P4 Workshop
 
SDNDS.TW Mininet
SDNDS.TW MininetSDNDS.TW Mininet
SDNDS.TW Mininet
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
 
SDN ryu 專題安裝
SDN ryu 專題安裝SDN ryu 專題安裝
SDN ryu 專題安裝
 
Ryu Learning Guide
Ryu Learning GuideRyu Learning Guide
Ryu Learning Guide
 

Similar to 2015 COSCUP SDN Workshop -- SDN Quick Start

SDN Presentation
SDN PresentationSDN Presentation
SDN Presentation
Abderrahmane TEKFI
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1
Joel W. King
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters
 
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...AgileNCR2013
 
How we use Twisted in Launchpad
How we use Twisted in LaunchpadHow we use Twisted in Launchpad
How we use Twisted in Launchpad
Michael Hudson-Doyle
 
A Byte of Software Deployment
A Byte of Software DeploymentA Byte of Software Deployment
A Byte of Software Deployment
Gong Haibing
 
IoT Fire Starter
IoT Fire StarterIoT Fire Starter
IoT Fire Starter
Doug Seven
 
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National PoliceiSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
Bert Jan Schrijver
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
Bert Jan Schrijver
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Codemotion
 
Web development with Python
Web development with PythonWeb development with Python
Web development with Python
Raman Balyan
 
JavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National PoliceJavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National Police
Bert Jan Schrijver
 
Microservices in action at the Dutch National Police
Microservices in action at the Dutch National PoliceMicroservices in action at the Dutch National Police
Microservices in action at the Dutch National Police
Bert Jan Schrijver
 
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
Bert Jan Schrijver
 
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUGMicroservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Marcin Grzejszczak
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for Pentesting
Mike Felch
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?
Maciej Lasyk
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Bert Jan Schrijver
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Bert Jan Schrijver
 
OWASP 2013 APPSEC USA Talk - OWASP ZAP
OWASP 2013 APPSEC USA Talk - OWASP ZAPOWASP 2013 APPSEC USA Talk - OWASP ZAP
OWASP 2013 APPSEC USA Talk - OWASP ZAP
Simon Bennetts
 

Similar to 2015 COSCUP SDN Workshop -- SDN Quick Start (20)

SDN Presentation
SDN PresentationSDN Presentation
SDN Presentation
 
Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1Security defined routing_cybergamut_v1_1
Security defined routing_cybergamut_v1_1
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
 
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...
Agile NCR 2013- Shekhar Gulati - Open shift platform-for-rapid-and-agile-deve...
 
How we use Twisted in Launchpad
How we use Twisted in LaunchpadHow we use Twisted in Launchpad
How we use Twisted in Launchpad
 
A Byte of Software Deployment
A Byte of Software DeploymentA Byte of Software Deployment
A Byte of Software Deployment
 
IoT Fire Starter
IoT Fire StarterIoT Fire Starter
IoT Fire Starter
 
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National PoliceiSense Java Summit 2017 - Microservices in action at the Dutch National Police
iSense Java Summit 2017 - Microservices in action at the Dutch National Police
 
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National PoliceCodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
CodeMotion Amsterdam 2018 - Microservices in action at the Dutch National Police
 
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
Microservices in action at the Dutch National Police - Bert Jan Schrijver - C...
 
Web development with Python
Web development with PythonWeb development with Python
Web development with Python
 
JavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National PoliceJavaZone 2017 - Microservices in action at the Dutch National Police
JavaZone 2017 - Microservices in action at the Dutch National Police
 
Microservices in action at the Dutch National Police
Microservices in action at the Dutch National PoliceMicroservices in action at the Dutch National Police
Microservices in action at the Dutch National Police
 
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...OpenValue meetup October 2017 - Microservices in action at the Dutch National...
OpenValue meetup October 2017 - Microservices in action at the Dutch National...
 
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUGMicroservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
Microservices Tracing With Spring Cloud and Zipkin @Szczecin JUG
 
Offensive Python for Pentesting
Offensive Python for PentestingOffensive Python for Pentesting
Offensive Python for Pentesting
 
Shall we play a game?
Shall we play a game?Shall we play a game?
Shall we play a game?
 
Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...Get There meetup March 2018 - Microservices in action at the Dutch National P...
Get There meetup March 2018 - Microservices in action at the Dutch National P...
 
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National PoliceDublin JUG February 2018 - Microservices in action at the Dutch National Police
Dublin JUG February 2018 - Microservices in action at the Dutch National Police
 
OWASP 2013 APPSEC USA Talk - OWASP ZAP
OWASP 2013 APPSEC USA Talk - OWASP ZAPOWASP 2013 APPSEC USA Talk - OWASP ZAP
OWASP 2013 APPSEC USA Talk - OWASP ZAP
 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

2015 COSCUP SDN Workshop -- SDN Quick Start

Editor's Notes

  1. 剛剛李博士跟 John 都有提到一些有關 SDN 相關的介紹(?),也提到了一些相關的應用,原則上 SDN 能夠更有彈性的去佈建一個網路,且 SDN 能夠比傳統網路更容易去自定網路的行為,舉例來說 Service Channing …..等等 不過 SDN 也不是沒有缺點,由於他把整套網路邏輯都集中管理了,所以如果控制層掛掉的話,SDN 網路就有可能會無法運作,不過有關這一方面已經有許多研究有提出解決方法,例如多控制器,我們先排除硬體問題,其實要解決這類型的問題並不困難,因為大部分的控制都已經挪到了軟體上面,所以只要邏輯正確的話,要解決這些問題都不難。 另一個比較常見的問題就是效能,傳統網路的邏輯都是分散在各個裝置上面,各項裝置在一個封包近來之後,都會自行去判斷要如何處理該封包,在一般情況下都不需要去跟其他的裝置溝通,而 SDN 的話,如果再 SDN Switch 中沒有先設定好規則,則會將這一個封包的資訊送給 Controller,並交由 Controller 判斷要如何處理這一個封包。
  2. 接下來我們來講一下為什麼會用 OpenFlow 跟 Ryu 這兩個來做為我 Quick start 的主要協定跟控制器。 剛剛他們也有提到(?)有關整個 SDN 的概略的架構,所以我這邊只會稍微提一下而已 我會選用 OpenFlow 主要是因為目前市面上大多數的控制器都有支援這一套協定,不過這一套協定也不是絕對的,目前市面上也是有許多其他的 Protocol 可以使用。
  3. Ryu 的話,其實一半是我個人在推,因為我主要在用的是 Ryu 這一套 Controller,另一點是它的架構以及開發方式非常簡單,我個人認為它很適合做為入門教材以及 prototype 它相對於其他的 Controller 它其實不全是 Controller,在官方網站是這樣寫的:
  4. Ryu is……… framework 我這邊刻意把 Framework 標紅明顯,不是要虛它 XD 堤外話,它要唸作 Ryu,不是阿歪ㄩ,就像 ONOS 要念 ONOS,ikea 要念 ikea 一樣 XD 回到正題,這一套 Framework 其實包含了可以處理 OpenFlow 等 SDN protocol 的功能,它其實核心的概念就是將
  5. OpenFlow Message 送上來,並且轉換成內部的 Event,傳送給註冊好的 Application
  6. 或是把特定的 Message Object 序列化之後,轉換成 OpenFlow Message 傳送給 SDN Switch
  7. 有關 Ryu 的部份我不多補充,畢竟這不是我們這一次的重點,想要知道更詳細的內容歡迎參考我的部落格
  8. 回到正題,我在這邊再講一下 SDN 的架構,最基本的架構會有三個層面,Hardware 這一層基本上就是 SDN Switch,中間會透過一般的 TCP 或是 SSL 與 Controller 連線,而 Controller 上面會有多個應用程式,例如 Routing 等 我們可以把這一整個架構看做成一台機器,有些人會稱 Controller 為 Network OS,如同一般的作業系統,上面會執行許多應用程式,這些應用程式能夠透過 OS 去對硬體存取。
  9. 接下來是我要講的一些有關於 SDN 一些大家可能會需要知道的東西,知道這些之後,再去用自己的邏輯去寫一些 SDN 應用程式會更容易上手。
  10. 再那之前,我們需要有一個開發環境
  11. 我們需要一個網路模擬器,再這邊我們使用 mininet,要注意 mininet 目前只有給 linux 使用,相信在這邊的朋友們大多都有用 linux,如果不是的話可以使用我之前所提供的 VM image Ryu 使用 python 撰寫,所以需要有 python 的環境,一般來說大多數的 linux 以及 mac 之類的應該都會預先裝好 如果要不使用 VM image 的話,可以將這兩個裝好,ryu 的話可以使用 SDNDS 提供的 ryu install helper 來安裝。
  12. 接下來我們來透過 mininet 建立一個 SDN 網路拓樸,醉雞本的話就是直接 sudo mn,但是如果後方不指定一個 controller 的話,則 mininet 會自行指定,我們可以指定一個 Controller 給他,如果是自己電腦裡面跑 Ryu 的話,就直接用 127.0.0.1 就好了,port 的話,目前 ryu 還是使用 6633,但是如果是其他的話就有可能是 6653,如果不指定 port 的話,則 mininet 目前會使用 6633 第二的指令可以產生一個深度為 2,fanout 為 3 的樹狀拓樸,後方我把 Controller 省略掉了,因為太長不方便看
  13. 我把 mininet 的指令放在上方方便大家觀看,接下來就是執行 ryu 了,一般來說 Ryu 預設並不會執行任何的功能,只會處理一些基本的 OpenFlow 訊息,啟動 Ryu 的指令很簡單,只需要輸入 ryu-manager 即可 啟動成功之後就可以開始來講一些基本的東西了
  14. Packet In 訊息在 SDN 中相當的重要,Switch 送給 Controller Packet In 訊息有三種可能性 它不知道封包要怎麼處理,沒有任何規則 match 到那個封包 Switch 有一種動作是把 Packet 送到 Controller 有問題的 TTL field 所以會使用 Packet In 傳送訊息給 Controller,而 Controller 在經過分析之後再告訴 Switch 這一個封包應該要怎麼去處理。 我個人認為 Packet in 以及 Controller 下指令給 Switch 這一來一回也是 SDN 的其中一個瓶頸,舉例來說,當 Switch 與 Controller 之間通訊有問題,導致 delay 變得很大,這樣就會影響到封包在傳遞上的速度。 接者我將會透過撰寫 Ryu 程式來讓大家了解一下 Switch 送出的 Packet in 中包含了哪些東西。
  15. OK, 我們可以透過這一段程式來取得以下資料 buffer_id:有些 Switch 只會將 packet header 送到 controller 以節省頻寬,而原始的 packet 會放在 buffer 中,並傳給controller buffer id,如果 switch 沒有支援 buffer 的話,則會把封包所有的內容都傳給 Controller,buffer id 則會是一個代表 No buffer 的值。 total_len:表示該封包的長度 in_port:這一個封包從哪一個 port 進來 reason:剛剛講的三個原因其中一個 data:packet header 或是整個 packet 的內容
  16. 剛剛提到了 Packet in,現在我們換一個方向,相對於 Packet In,另一個就是 Out 了,Packet Out 主要是讓 Controller 通知 Switch 將某一個封包發送出去,接下來的程式示範結合 Packet In 以及 Packet Out 這兩個東西去實作一個簡單的 Hub,也就是收到一個封包之後,將封包 Broadcast 出去。
  17. 這一個程式就稍微複雜了一點,在這邊我會一行行的解釋,首先我們會有一個名為 Packet In 的 Event,並從這一個 Event 之中取得 Message,接下來是 datapath,剛剛沒有說明 datapath,其實可以把 datapath 就視為 switch 即可,在 ryu 裡面基本上都會使用 datapath 物件來跟實體 switch 進行溝通,而每一個 datapath 都會有一個 dpid,每一個 dpid 都必須不一樣才可以,如果有重複的 dpid 則 Controller 不保證可以正常運作 另一個是 ofproto 以及 ofproto_parser,這兩個東西都代表了該 datapath 所用的 OpenFlow protocol 版本以及該版本所用的 parser,通常 parser 主要是用來產生 message 的,而 ofproto 裡面則會有那一個版本所包含的一些常數等等,例如OFPP_FLOOD 就表示了 Flood port,當 output port 被指定成這個 port 時,則會把封包送至所有可以送出的 port,有一些比較特殊或是設定過的 port 不會送出。 actions 這一個 list 表示了 PacketOut 時要執行的動作,不一定只有 Action out ,如果想要再 packet out 時修改 packet header,例如更改 ip destination 或是更改 VLAN ID 等等,都可以在 action list 中撰寫 再來就是剛剛提到的 buffer,這邊判斷了他有沒有在 switch 中建立 buffer 去儲存 packet 中的資料,如果有的話,就要把它放入到 packet out 訊息中並一起送出 最後是將所有的東西都包裝成一個 Packet Out Message 的物件,並交由 datapath 送出,送出的原理其實就只是把這些東西序列化後用 socket 送出而已。
  18. 最後一個是 Flow Entry 的部份,每一個 FlowEntry 都會包含了一些特定的欄位
  19. 今天主要要講的幾個是 Match 以及 actions,這邊這個列表找不到 actions 是因為他在 比較新的版被納入成為了其中一種 instruction,不過我們這邊因為只是一個簡單的教學,所以我這邊都採用 1.0 版的說法,而 Flow Entry其實可以把它理解成,他會依照條件,例如從哪個 port 來,或是哪一個目標 IP 位址,取採取特定的動作,例如修改 IP Header、送往某個 Port 等等 也因為有這一個東西,所以我們可以很自由的去決定說一個特定類型的封包該怎麼去控制他,這邊的控制除了 Routing 以外,還可以做到修改或是丟棄等等動作。
  20. 最後一個範例主要是透過 Ryu 所提供的 API 去實作 Routing,並且將 Packet In 的資訊顯示在 console 中,這一個程式是基於 ryu 中所提供的程式去修改而成,預期的成果就是他能夠在 Host 進入時顯示並記錄一個 Host 所在的位置以及該 Host 的相關資訊,在一個 Host 發送給其他 Host 時,如果 Switch 沒有任何的 FlowEntry 可以 Match 到他,則他就會去詢問 Controller,這時 Controller 就會去找目標 host,如果目標 host 也不在 ryu 的紀錄當中的話,就會使用 flooding 的作法把封包送出,這邊之所以會說「不在 ryu 的紀錄當中」,是因為當我們把一個 host 接上 switch 之後,如果 host 沒有發出任何封包,則 Controller 不會知道那邊接上了什麼東西,一直到他有送出東西才會知道。 另外,這一個範例也使用了名為 networkx 的第三方函式庫,他主要是用於計算一些 graph 的問題,例如使用各種演算法去計算 shortest path 等等,clone 下來在安裝就可以了。 (Live Demo…..) (預期效果) 好的,我們可以看到在 ping 時,會看到第一個封包時間比較長,但是第二個之後就快了許多,這是因為一開始 switch 還沒有任何的 flow,需要讓 Controller 去判斷以及下命令,所以才造成時間比較長,其他的我們也可以透過 pingall 去讓他們互 ping,在畫面上演可以顯示每一個 packet in 的資訊以及路徑演算的結果。 OK, 那原則上我們這一堂 workshop 基本上就上到這邊
  21. 由於時間的關係,我也希望能夠講多一點,畢竟我沒有辦法在 40 分鐘內講這麼多東西,且 OpenFlow 在後續的版本也有新增很多東西,讓我們可以從網路設備獲得夠多資料,以及能夠寫出更加複雜的邏輯等等 我希望剛剛的一些說明能夠讓大家能夠更快速的進入 SDN 這一個領域,體會 SDN 這一個能夠自由玩網路的技術,不知道對於這一堂 Workshop 各位是否有任何問題?或是我剛剛講太快希望我能夠在說明的?
  22. OK,如果沒有任何問題,這邊是我的部落格,目前我也慢慢的在把一些東西放上去,目標是能夠每週更新約兩篇文章 另外也歡迎大家加入 SDNDS 社團 我是 Takeshi,謝謝大家