Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998...
Transcript of Software-Defined Networks e Openflow: conceitos e ... · Exemplo: IPv6 RFC 2460: dez/1998...
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
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/
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
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
Como funciona o Openflow?
14 / 31
Ethernet Switch/Router
Fonte: Nick McKeown (Stanford), SDN CIO Summit 2010
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
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
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◦ ...
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
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
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
22 / 31
Tabela de fluxos
Fonte: OpenFlow Brazil Tutorial, SBRC 2010
23 / 31
Tabela de fluxos - Exemplos
Fonte: OpenFlow Brazil Tutorial, SBRC 2010
24 / 31
Cenários com Openflow Controle Centralizado vs Distribuído
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)
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
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) (...)
28 / 31
SDN Stack
Fonte: Christian Esteve (CPqD), 13o WRNP
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.
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/
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
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
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.