SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Software Defined
Networking
Lukáš Rypl
Twitter: @LukasRypl

2. - 3. 11. 2013
Klasický model
logika v boxu
virtualizace serverů X síť nestíhá
nepřímé ovlivňování funkcí

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

2 / 11
Klasický model
logika v boxu
virtualizace serverů X síť nestíhá
nepřímé ovlivňování funkcí
Historie
telco - cca 1980 AT&T Network Control Point
cca 1990 - Active Networks - kód v paketu
(scriptlety)
2004 - Routing Control Protocol - počítá
směrovací tabulky pro celou síť
2008 - OpenFlow
Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

2 / 11
OpenFlow

Nick Feamster: Software Defined Networking. Coursera 2013

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

3 / 11
Jak to funguje

data plane: match + action
control plane
northbound interface (NBI)

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

4 / 11
Co přináší SDN
Dobré věci:
centrální správa toku dat sítí
rychlejší deploy síťových služeb díky API
nezávislost na výrobci HW

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

5 / 11
Co přináší SDN
Dobré věci:
centrální správa toku dat sítí
rychlejší deploy síťových služeb díky API
nezávislost na výrobci HW
Horší věci:
Single point of failure = controller
NBI je zatím nepřenosné
network admin se stává vývojářem

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

5 / 11
Přehled controllerů
NOX - C++
POX - Python (jen OF 1.0)
Ryu - Python (+OpenStack)
FloodLight - Java (+REST API)
Open DayLight - Java (+REST, OSGi, Service
Abstraction Layer)
...

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

6 / 11
POX

def handle ConnectionUp(event):
msg = of.ofp_flow_mod()
msg.actions.append(of.ofp_action_output(port=of.OFPP_FLOOD))
event.connection.send(msg)
def launch():
core.openflow.addListenerByName("ConnectionUp",_handle_ConnectionUp)

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

7 / 11
SDN programovací jazyky
Frenetic
Select(packets) * GroupBy([srcmac]) * SplitWhen([inport])

Pyretic - skládání a registrace zpracování
>> sekvenční zpracování
+ paralelní kompozice
(match(dstip=10.1.1.1) >> fwd(1)) + (match(dstip=10.1.1.2) >> fwd(2))
self.query = packets(1,[’srcmac’, ’switch’])
self.query.register_callback(learn_new_MAC)

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

8 / 11
SDN další NBI
Chybí standard

Open Network Foundation https://www.opennetworking.org/images/stories/downloads/working-groups/charter-nbi.pdf
Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

9 / 11
Testbed
Mininet
net = Mininet( controller=Controller )
net.addController( ’c0’ )
h1 = net.addHost( ’h1’, ip=’10.0.0.1’ )
h2 = net.addHost( ’h2’, ip=’10.0.0.2’ )
s3 = net.addSwitch( ’s3’ )
net.addLink( h1, s3 )
net.addLink( h2, s3 )
net.start()
CLI( net )

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

10 / 11
Pro zájemce doporučuji

Nick Feamster - Georgia Institute of Technology
https://www.coursera.org/course/sdn
May 2014

Lukáš Rypl (jOpenSpace2013)

Software Defined Networking

2. - 3. 11. 2013

11 / 11

Mais conteúdo relacionado

Semelhante a Software Defined Networking intro

Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceVladimír Smitka
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Martin Cerveny
 
Implementace Openstacku v LMC – představy vs. realita
Implementace Openstacku v LMC – představy vs. realita Implementace Openstacku v LMC – představy vs. realita
Implementace Openstacku v LMC – představy vs. realita Jaroslav Jacjuk
 
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesČtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesCtvrtkoncz
 
Nízkoúrovňové programování
Nízkoúrovňové programováníNízkoúrovňové programování
Nízkoúrovňové programováníMartin Děcký
 
Python v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátoraPython v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátoraMichal Špaček
 
NoSQL databáze, MongoDB
NoSQL databáze, MongoDBNoSQL databáze, MongoDB
NoSQL databáze, MongoDBLukáš Korous
 

Semelhante a Software Defined Networking intro (8)

Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11Slovak SanEd Training Day 2012 - New Networking in Solaris 11
Slovak SanEd Training Day 2012 - New Networking in Solaris 11
 
Implementace Openstacku v LMC – představy vs. realita
Implementace Openstacku v LMC – představy vs. realita Implementace Openstacku v LMC – představy vs. realita
Implementace Openstacku v LMC – představy vs. realita
 
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & MicrosevicesČtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
Čtvrtkon #71 - Jan Kaštánek - Java & Docker & Microsevices
 
Nízkoúrovňové programování
Nízkoúrovňové programováníNízkoúrovňové programování
Nízkoúrovňové programování
 
Python v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátoraPython v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátora
 
NoSQL databáze, MongoDB
NoSQL databáze, MongoDBNoSQL databáze, MongoDB
NoSQL databáze, MongoDB
 
2 prz
 2 prz 2 prz
2 prz
 

Software Defined Networking intro

  • 2. Klasický model logika v boxu virtualizace serverů X síť nestíhá nepřímé ovlivňování funkcí Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 2 / 11
  • 3. Klasický model logika v boxu virtualizace serverů X síť nestíhá nepřímé ovlivňování funkcí Historie telco - cca 1980 AT&T Network Control Point cca 1990 - Active Networks - kód v paketu (scriptlety) 2004 - Routing Control Protocol - počítá směrovací tabulky pro celou síť 2008 - OpenFlow Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 2 / 11
  • 4. OpenFlow Nick Feamster: Software Defined Networking. Coursera 2013 Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 3 / 11
  • 5. Jak to funguje data plane: match + action control plane northbound interface (NBI) Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 4 / 11
  • 6. Co přináší SDN Dobré věci: centrální správa toku dat sítí rychlejší deploy síťových služeb díky API nezávislost na výrobci HW Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 5 / 11
  • 7. Co přináší SDN Dobré věci: centrální správa toku dat sítí rychlejší deploy síťových služeb díky API nezávislost na výrobci HW Horší věci: Single point of failure = controller NBI je zatím nepřenosné network admin se stává vývojářem Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 5 / 11
  • 8. Přehled controllerů NOX - C++ POX - Python (jen OF 1.0) Ryu - Python (+OpenStack) FloodLight - Java (+REST API) Open DayLight - Java (+REST, OSGi, Service Abstraction Layer) ... Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 6 / 11
  • 9. POX def handle ConnectionUp(event): msg = of.ofp_flow_mod() msg.actions.append(of.ofp_action_output(port=of.OFPP_FLOOD)) event.connection.send(msg) def launch(): core.openflow.addListenerByName("ConnectionUp",_handle_ConnectionUp) Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 7 / 11
  • 10. SDN programovací jazyky Frenetic Select(packets) * GroupBy([srcmac]) * SplitWhen([inport]) Pyretic - skládání a registrace zpracování >> sekvenční zpracování + paralelní kompozice (match(dstip=10.1.1.1) >> fwd(1)) + (match(dstip=10.1.1.2) >> fwd(2)) self.query = packets(1,[’srcmac’, ’switch’]) self.query.register_callback(learn_new_MAC) Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 8 / 11
  • 11. SDN další NBI Chybí standard Open Network Foundation https://www.opennetworking.org/images/stories/downloads/working-groups/charter-nbi.pdf Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 9 / 11
  • 12. Testbed Mininet net = Mininet( controller=Controller ) net.addController( ’c0’ ) h1 = net.addHost( ’h1’, ip=’10.0.0.1’ ) h2 = net.addHost( ’h2’, ip=’10.0.0.2’ ) s3 = net.addSwitch( ’s3’ ) net.addLink( h1, s3 ) net.addLink( h2, s3 ) net.start() CLI( net ) Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 10 / 11
  • 13. Pro zájemce doporučuji Nick Feamster - Georgia Institute of Technology https://www.coursera.org/course/sdn May 2014 Lukáš Rypl (jOpenSpace2013) Software Defined Networking 2. - 3. 11. 2013 11 / 11