Redes programables v1.0

42
1 e Meetup de Programabilidad de redes Ciudad de México Miércoles 29 de Abril del 2015 Redes programables Javier Liendo jaliendo(-arroba-)cisco.com

Transcript of Redes programables v1.0

1e Meetup de Programabilidad de redesCiudad de México

Miércoles 29 de Abril del 2015

Redes programables

Javier Liendojaliendo(-arroba-)cisco.com

Quién soy?

• Arquitecto de Soluciones Tecnológicas para Cisco @jliendo

Objetivos de la sesión

• Definir qué es programabilidad de redes. Ver/sentir cómo es “programar una red”

• Evangelizar sobre lo que promete la programabilidad de redes

– Inovación, Inovación, Inovación

• Programar un hub, un switch y un firewall-switchen semi-vivo, en python y utilizando vi!!!

Pero antes de programar...

• ...tenemos que hablar de...

– openvswitch

– mininet y de virtualización ligera

• en particular de Linux namespaces

– Ryu

Mi agenda personal / escondida

• ~2 horas “de comida para el pensamiento”

– La programabilidad de redes va directo al corazón de lo que nosotros ingenieros de redes hacemos

• Tratar de convencerte de que estamos en un punto de inflección en nuestro oficio y que estamos a punto de vivir una explosion en la inovación

• Hacer que te intereses en la programabilidad de redes

Temas logísticos

• Preguntas

• Láminas de referencia

• Acceso a la presentación

– http://www.slideshare.net/

• Acceso al código

– https://github.com/jliendo/sdn_apps

Cómo comunicarse?

Planos en un dispositivo de red

• Abstracción de un dispositivo de red

Plano de datos

Plano de Control

Plano de Administración

(Breve detour)

Plano de datos

Plano de Control

Plano de Administración OVSDBNetconf/YangSNMPExpect...

BGPOSPFOpenflow...

Modelo de plano de control distribuido

• Sincronización de estado

1011001

1011001

ARP

OSPF

SPT

BGP

ARP

OSPF

BGP

SPT

Modelo de plano de control centralizado

• Sincronización de estado

Plano de control

Plano de datosPlano de datos

Plano de datos

Modelo de plano de control centralizado

OF Match OF Match OF Match OF Match

Protocolo “X”

Controlador

1011001 1011001

Openflow

Modelo generalizado de un switch openflow

Ref: OpenFlow Switch Specification 1.3.0, sección 1

Openflow pipeline

Ref: OpenFlow Switch Specification 1.3.0, sección 5.1

Ref: OpenFlow Switch Specification 1.3.0, sección 5.1

Openflow

in_port = 1, smac = 00:00:ca:fe:ba:be, sip=10.0.0.1?

in_port = 1, sip=10.0.0.1, dport = 80?

ethertype = 0x0806?

1011001

out_port = 6

Switch openflow-habilitado

patealo!

Controladortíralo!

Openflow

Openflow 1.0

Openflow 1.3.1

Openflow – Negociación de la sesión

Switch Controlador

Conexión TLS

MAIN_DISPATCHER

CONFIG_DISPATCHER

HANDSHAKE_DISPATCHER

deconexión TLSDEAD_DISPATCHER

Ryu fases de negociación

Openflow – Máquina de estados

ref: Flowgrammable, http://flowgrammable.org/sdn/openflow/state-machine/

Controlador Switch

Openflow - Mensajes

ref: http://flowgrammable.org/sdn/openflow/message-layer/

ref: http://ryu.readthedocs.org/en/latest/ofproto_v1_3_ref.html

Algunos son síncronos

Algunos son asíncronos

ref: http://flowgrammable.org/sdn/openflow/message-layer/

Openflow – Acciones e Instrucciones

Instrucción Descripción

Apply Aplica la acción inmediatamente, no hace caso al action-set del paquete

Clear Borra el action-set

Write Action Aplica la lista de acciones al action-set

Write Metadata Actualizata la metadata

Goto Continua el proceso en la tablaindicada

Meter Aplica un rate-limiter

Experimenter Extensión de instrucciones

http://flowgrammable.org/sdn/openflow/actions/#tab_ofp_1_3

Instrucciones

Acciones

Por qué es importante?

Data plane

Control Plane

Network Operating System

BGP FW STP

???

Por qué es importante?

OF Match OF Match OF Match OF Match

Network Operating System

Apps Apps Apps !!! Desarrollado por la comunidad

???

Desarrollado por un fabricante

Por qué es importante?

Apps

S.O.

HardwareOCPPica8Alpha NetworksFabricantes “estándares”

OpendaylightRyu, POXOpen Network LinuxOpen dataplaneFabricantes “estándares”

Las apps que ustedesdesarrollen

Herramientas del oficio

• Openvswitch

• Mininet

• Ryu

Openvswitch

Ref: http://networkheresy.com/2011/06/06/an-extremely-brief-conceptual-introduction-to-open-vswitch/

Openvswitch

Ref: ???

Mininet

ref: Bob Lantz, Open Network Laboratory http://conferences.sigcomm.org/sigcomm/2014/doc/slides/mininet-intro.pdf

Mininet

ref: Bob Lantz, Open Network Laboratory http://conferences.sigcomm.org/sigcomm/2014/doc/slides/mininet-intro.pdf

Mininet

ref: Bob Lantz, Open Network Laboratory http://conferences.sigcomm.org/sigcomm/2014/doc/slides/mininet-intro.pdf

Mininet

Mininet

ref: Bob Lantz, Open Network Laboratory http://conferences.sigcomm.org/sigcomm/2014/doc/slides/mininet-intro.pdf

Ryu – Controlador de SDN

Ref: Kei Ohmura, NTThttp://osrg.github.io/ryu/slides/LinuxConJapan2013.pdf

Demo time!!!

La obsolecencia de L2/L3..o cuando ARP es el único protocolo que necesitarás jamás...

• L2 y L3 van a estar démodé

– Las fronteras entre L2 y L3 pueden ser re-definidas programáticamente

• Basadas en el contexto (i.e. el ambiente externo)

• Basado en requerimientos de negocio

• ARP va a ser el único protocolo que va a ser necesario...o quizás no...

La nube de ARP

Global Mac Address Table(pre-loaded?)

10.0.0.128

10.0.0.1/16

192.168.1.73/28

172.16.19.14/24

192.168.254.128/24

who-has 192.168.254.128(XXX 128’s def gw)

1is-at 00:00:ca:fe:ba:be

2

3

who-has 10.0.0.128(XXX 128’s def gw)

4

is-at 00:00:ca:fe:ba:be

5

6

La nube de ARP...o la Matrix de los dispositivos finales

Resumen

• Estamos en un punto de inflección en donde la inovación en nuestro campo está por explotar

• La programabilidad de redes va directo al corazón de lo que nosotros ingenieros de redes, hacemos

Cómo empezar?

• Mininet– http://mininet.org/

• Openvswitch– http://openvswitch.org/

• Ryu– http://osrg.github.io/ryu/

• Openflow Specs– https://www.opennetworking.org/sdn-

resources/technical-library#tech-spec

How to Start…Tools of the Trade

• An attempt to motivate and clarify Software-Defined Networking (SDN)

– http://www.youtube.com/watch?v=WVs7Pc99S7w