software-defined networks e openflow: conceitos e ... · exemplo: ipv6 rfc 2460: dez/1998...

34
Software-Defined Networks e Openflow: conceitos e tecnologias emergentes III Workshop de Tecnologia de Redes do PoP-BA Ponto de Presença da RNP na Bahia Italo Valcy <[email protected]> 27 e 28 de setembro de 2012

Upload: ngonhi

Post on 09-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

Software-Defined Networks e Openflow: conceitos e tecnologias

emergentes

III Workshop de Tecnologia de Redes do PoP-BAPonto de Presença da RNP na Bahia

Italo Valcy <[email protected]>

27 e 28 de setembro de 2012

Page 2: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

2 / 31

Licença de uso e atribuição

Todo o material aqui disponível pode, posteriormente, ser utilizado sob os termos da:

Creative Commons License: Atribuição - Uso não comercial - Permanência da Licença

http://creativecommons.org/licenses/by-nc-sa/3.0/

Page 3: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

3 / 31

Rede “ossificada” Infraestrutura de redes atual: equipamentos

proprietários, fechados e de alto custo; circuitos dedicados (ASIC); camada de software de controle◦ Necessário: especialização da lógica de controle para cada tipo

e objetivo de rede

Padronização dos protocolos (RFCs, ISOs, padrões IEEE)◦ Problema: As funcionalidades são engessadas (ossificadas)

pelos protocolos existentes (BGP, OSPF, IEEE802.1, IEEE802.3, QinQ, Vlan, Vlan Translation, MPLS/VPLS, etc.)

Mudança, especialização ou inserção na lógica de controle está sujeita ao clico de desenvolvimento e

testes restritos ao fabricante! (HAMILTON, 2009)

Page 4: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

4 / 31

Rede “ossificada” No âmbito da pesquisa, essas exigências são

ainda maiores:◦ Experimentação de novos protocolos e

funcionalidades da rede em condições reais◦ Idealmente experimentar em ambientes

“espelhados” da rede em operação◦ Como criar uma rede de experimentação sem

interferir na rede de produção?

Page 5: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

5 / 31

Rede “ossificada”

Redes de produção mais complexas precisam de soluções específicas: Proprietárias -> Pre-stantard -> draft -> RFC Exemplo: TRILL (Transparent Interconnection

of Lots of Links)◦ Paper Radia Joy Perlman (2004)◦ RFC 6325 (2011)

Exemplo: IPv6◦ RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995)

Todo esse processo leva tempo...

Page 6: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

6 / 31

Solução em “software”

Algumas redes complexas poderiam ter soluções mais fáceis de administrar se baseadas em software: “E se usarmos um Linux?” (network

namespaces, netfilter, quagga, etc.)◦ Como fazer isso sem perder a velocidade das

implementações em hardware dos switches/routers?

Page 7: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

7 / 31

Solução centralizada

Trocar um critério de decisão local (router) por um controle centralizado global!!!!

Com replicação para tolerância a falhas e desempenho

Page 8: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

8 / 31

Agenda

Arquitetura SDN Openflow: funcionamento e cenários Alguns detalhes técnicos Utilização do Openflow

Page 9: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

9 / 31

A rede atual

Specialized Packet

Forwarding Hardware

OperatingSystem

Feature Feature

Roteamento, gerencia, mobilidade, controlede acesso, VPN, …

VerticalizaçãoFechado, proprietárioInovação lenta

Page 10: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

10 / 31

A rede atual

Specialized Packet

Forwarding Hardware

Feature

Feature

Specialized Packet

Forwarding Hardware

Specialized Packet

Forwarding Hardware

Specialized Packet

Forwarding Hardware

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

Feature

Feature

Feature

Feature

Feature

Feature

Specialized Packet

Forwarding Hardware

Feature

Feature

Caixas pretasfechadas

Page 11: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

11 / 31

Feature Feature

Network OS

A “Rede definida por software”

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

Page 12: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

12 / 31

Feature Feature

Network OS

1. Interface aberta para acesso ao hardware (e.g. Openflow)

3. API aberta bem definida2. Pelo menos um SO de rede

(provavelmente muitos)Open- and closed-source

A “Rede definida por software”

OpenFlow

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

PacketForwarding

Page 13: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

13 / 31

Como funciona o Openflow?

Page 14: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

14 / 31

Ethernet Switch/Router

Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010

Page 15: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

15 / 31

Data Path (Hardware)Data Path (Hardware)

Control Path (Software)Control Path (Software)

Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010

Page 16: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

16 / 31

Data Path (Hardware)Data Path (Hardware)

Control PathControl Path OpenFlowOpenFlow

OpenFlow ControllerOpenFlow Controller

OpenFlow Protocol (SSL)

Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010

Page 17: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

17 / 31

“If header = x, send to port 4”“If header = y, overwrite header with z, send to ports 5,6”“If header = ?, send to me”

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

FlowTable

Network OS

Como Openflow funciona

OpenFlow/SSL/TCP

Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010

Page 18: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

18 / 31

Como Openflow funciona Definição: fluxo ◦ É uma sequência unidirecional de pacotes na qual

todos os pacotes compartilham um conjunto de valores de cabeçalho comum

Exemplos:◦ Fluxo 1: pacotes com destino 192.168.0.0/24◦ Fluxo 2: pacotes com interface de entrada 2 e VLAN

ID 10◦ Fluxo 3: pacotes com MAC de origem X, MAC de

destino Y, e porta TCP de destino 80◦ ...

Page 19: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

19 / 31

Como Openflow funciona Quando o switch recebe um pacote ele deve

compará-lo com sua tabela de fluxo

Fonte: Leandro Bertholdo (PoP-RS), 13o WRNP

Page 20: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

20 / 31

Como Openflow funciona Se o cabeçalho não for compatível com

nenhum fluxo em sua tabela, o switch deve encaminhar o cabeçalho (ou pacote todo) para o controlador

Fonte: Leandro Bertholdo (PoP-RS), 13o WRNP

Page 21: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

21 / 31

Como Openflow funciona Ao receber o pacote, o controlador deve tomar

uma decisão e◦ Enviar uma requisição de mudança da tabela de

fluxos do switch◦ Devolver o pacote (ou o cabeçalho + buffer-id)◦ Indicar uma ação para o pacote◦ Ou.. descartar

Fonte: Leandro Bertholdo (PoP-RS), 13o WRNP

Page 22: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

22 / 31

Tabela de fluxos

Fonte: OpenFlow Brazil Tutorial, SBRC 2010

Page 23: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

23 / 31

Tabela de fluxos - Exemplos

Fonte: OpenFlow Brazil Tutorial, SBRC 2010

Page 24: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

24 / 31

Cenários com Openflow Controle Centralizado vs Distribuído

Page 25: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

25 / 31

Cenários com Openflow Encaminhamento de fluxos individual vs Agregado

Fluxos individuais Cada fluxo individual

é criado pelo controlador

Coincidência exata dos campos do fluxo (1:1)

Controle granular da rede (ex: redes de campus)

Fluxos agregados Uma entrada na

tabela cobre um grupo de fluxos

Entrada “coringa” de fluxo

Bom para controlar uma grande quantidade de fluxos (ex: backbone)

Page 26: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

26 / 31

Cenários com Openflow Tabela de fluxos dinâmica vs estática

Dinâmica O primeiro pacote dispara

uma inserção de fluxos pelo controlador

Delay adicional para configuração por fluxo

Adaptatividade da rede Se perder a comunicação com

o controller, o comutador tem utilidade limitada

Estática O controlador popula

previamente a tabela de fluxos

Requer regras essencialmente agregadas (coringas)

Rede com topologia fixa

Page 27: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

27 / 31

Exemplo (tiny-switch.py)def datapath_join_callback(dpid, stats): logger.info('Switch %x has joined the network' % dpid) if dpid == 1: inst.install_datapath_flow(dpid, { core.IN_PORT : 1 }, openflow.OFP_FLOW_PERMANENT, openflow.OFP_FLOW_PERMANENT, [[openflow.OFPAT_OUTPUT, [0, 3]]], priority=1) inst.install_datapath_flow(dpid, { core.IN_PORT : 3 }, openflow.OFP_FLOW_PERMANENT, openflow.OFP_FLOW_PERMANENT, [[openflow.OFPAT_OUTPUT, [0, 1]]], priority=1) (...)

Page 28: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

28 / 31

SDN Stack

Fonte: Christian Esteve (CPqD), 13o WRNP

Page 29: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

29 / 31

Utilização de Openflow … “Openflow auxiliou o Google a melhorar a performance

do seu backbone e a reduzir seu custo e complexidade” ...◦ Todd Underwood/Google (RIPE 64, Abr/2012)

Stanford University◦ Especificação / Eventos◦ Implantação na rede de campus◦ Trabalho com Slices da rede

No Brasil: estudos, utilização, desenvolvimento◦ Universidades e Centros de pesquisa, FIBRE, RNP,

CPqD, etc.

Page 30: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

30 / 31

Utilização de Openflow Grupo de Redes do DCC/UFBA em parceria com o PoP-

BA◦ Experimentação para algoritmos de roteamento em

redes mesh sem fio◦ Grupo de estudos e desenvolvimento

Minicurso sobre Openflow e SDN na Semana de Computação da UFBA (3-6 de Outubro/2012)◦ http://infojr.com.br/semcomp/

Page 31: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

31 / 31

Considerações finais SDN (Software-Defined Networking) é uma

arquitetura◦ Promete fomentar inovação aberta e competição◦ Evolução da rede mais fácil e rápida◦ Separação do plano de controle e

encaminhamento Openflow é um protocolo◦ A partir do openflow é possível definir, modificar,

testar e avaliar uma gama de protocolos e cenários de rede

Page 32: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

32 / 31

Considerações finais Cuidado!◦ Openflow não é uma tecnologia fim. Ele não

resolve os problemas, apenas pode ser usado como ferramenta para tal◦ Software sempre está sujeito a bugs!◦ É preciso definir com cuidado a arquitetura que

será usada, diminuindo ou eliminando os pontos de falha

Page 33: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

33 / 31

Referências McKeown N., Parulkar G. et al. (2010). Software

Defined Networks and Openflow, Stanford University. SDN CIO Summit 2010.

McKeown, N., Anderson, T., Balakrishnan, H., Parulkar, G., Peterson, L., Rexford, J., Shenker, S., and Turner, J. (2008). Openflow: enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev., 38:69–74.

Bertholdo L. (2012). Tecnologias, conceitos e serviços emergentes: Openflow. 13o WRNP

HAMILTON, J. Networking: The last bastion of mainframe computing. 2009.

Page 34: Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998 (obsoletes rfc1883, dez/1995) ... Encaminhamento de fluxos individual vs Agregado Fluxos

34 / 31

Obrigado!!!:-)

Italo [email protected]