software-defined networks e openflow: conceitos e...
Post on 23-Sep-2018
220 Views
Preview:
TRANSCRIPT
Software-Defined Networks e Openflow: conceitos e tecnologias
emergentes
Semana de Computação – UFBA (SEMCOMP 2012)Universidade Federal da Bahia
Italo Valcy <italo@dcc.ufba.br>
05 de outubro de 2012
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/
O conteúdo desta apresentação foi baseado no material disponibilizadopela comunidade Openflow.org, em especial no Tutorial Brasileiro, disponível em <http://www.openflow.org/wk/index.php/Brazil_tutorial>
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)
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?
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...
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?
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
8 / 31
Agenda
Arquitetura SDN Openflow: funcionamento e cenários Alguns detalhes técnicos Utilização do Openflow
TODO
9 / 31
A rede atual
Specialized Packet
Forwarding Hardware
OperatingSystem
Feature Feature
Roteamento, gerencia, mobilidade, controlede acesso, VPN, …
VerticalizaçãoFechado, proprietárioInovação lenta
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
11 / 31
Feature Feature
Network OS
A “Rede definida por software”
PacketForwarding
PacketForwarding
PacketForwarding
PacketForwarding
PacketForwarding
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
13 / 31
Openflow
Openflow é uma interface aberta para controlar remotamente a tabela de
encaminhamento de equipamentos de rede como switches, roteadores e access points.
A partir dessa primitiva de baixo nível, pesquisadores podem construir redes com novas propriedades de alto nível.
15 / 31
Data Path (Hardware)Data Path (Hardware)
Control Path (Software)Control Path (Software)
Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010
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
19 / 31
OpenFlow é um protocolo, SDN é uma arquitetura
Redes Definidas por Software (SDN) refatoram o relacionamento entre os dispositivos de rede e o software que os controla
OpenFlow é uma interface aberta que permite um controle mais flexível e previsível da rede, tornando fácil estender sua função. [HotSDN'12 CFP]
20 / 31
OpenFlow é um protocolo, SDN é uma arquitetura
Redes Definidas por Software (SDN) refatoram o relacionamento entre os dispositivos de rede e o software que os controla
OpenFlow é uma interface aberta que permite um controle mais flexível e previsível da rede, tornando fácil estender sua função. [HotSDN'12 CFP]
22 / 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
23 / 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◦ ...
24 / 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
25 / 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
26 / 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
30 / 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)
31 / 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
32 / 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) (...)
33 / 31
Protocolo Openflow
Versões: v1.0 (December 31, 2009)◦ 12 campos para matching de flows◦ Suporte à múltiplas filas por porta◦ Estatísticas por portas◦ …
v1.1 (February 28, 2011)◦ Múltiplas tabelas◦ Grupos (abstração para conjunto de portas)◦ Tags de VLAN e MPLS (QinQ, add/del/modify)◦ Tratamento na falha de conexão com o controller◦ Portas virtuais (útil para LAG, tunnels)◦ ...
34 / 31
Protocolo Openflow
Versões: v1.2 (December 5, 2011)◦ Suporte a matching de campos mais flexível◦ Simplificação de funcionalidades ◦ Suporte à IPv6◦ ...
v1.3 (June 25, 2012)◦ …..
35 / 31
Protocolo Openflow – Tipos de mensagem
O protocolo Openflow suporta três tipos de mensagem (cada um com outros sub-tipos):◦ Controller-to-switch: iniciadas pelo controller e
usadas para gerenciar ou inspecionar o estado do switch◦ Asynchronous: iniciadas pelo switch e usadas
para atualizar o controller dos eventos da rede e mudanças no switch◦ Symmetric: podem ser iniciadas pelo controller
ou pelo switch sem solicitação
36 / 31
Protocolo Openflow – Tipos de mensagem
Controller-to-switch (algumas):◦ Features: quais capabilities o switch suporta?◦ Modify-state: add/delete/modify flows na tabela
de flows do switch◦ Read-State: obter estatísticas da tabela de
flows, portas ou flows individuais◦ Send-Packet: usado pelo controller para enviar
pacotes para uma porta do switch
37 / 31
Protocolo Openflow – Tipos de mensagem
Asynchronous (algumas):◦ Packet-in: switch encaminha pacote (ou
cabeçalho) para o controller se não houver uma entrada correspondente previamente instalada na tabela de flows◦ Flow-removed: quando o timeout do flow
expirou e ele foi removido da tabela de flows◦ Port-Status: switch informa ao controller sobre
mudanças na configuração do estado das portas◦ Error: informa ao controller sobre erros diversos
38 / 31
Protocolo Openflow – Tipos de mensagem
Symmetric (algumas):◦ Hello: usados no estabelecimento da conexão do
switch com o controller◦ Echo: Echo request/reply usado para checar
latência, largura de banda e/ou conexões ativas
39 / 31
Protocolo Openflow – Ações
Na versão 1.0: Required:◦ Forward (ALL, CONTROLLER, IN_PORT)◦ Drop
Optional:◦ Enqueue◦ Forward (NORMAL)◦ Modify-field (set VLAN ID, strip VLAN header,
modify src/dst MAC, modify src/dst IPv4, modify src/dst transport port, etc.)
42 / 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.
43 / 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
44 / 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
45 / 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
46 / 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.
top related