SlideShare uma empresa Scribd logo
1 de 27
www.inatel.br
Estudo e Implementação de um
Comutador KeyFlow 10Gbps para Redes
Definidas por Software
Gustavo Silva Borges, Luciano do Vale Ribeiro, Matheus da Costa de Souza, Natan
Elias Dionisio de Oliveira
Antônio Marcos Alberti
www.inatel.br
Agenda____________________________________________________________________________
• Introdução
• SDN – Redes Definidas por Software
• OpenFlow
• KeyFlow
• Implementação
• Testes em Laboratório
• Conclusões
SDN
www.inatel.br
Introdução
• Redes de Computadores
• Infraestrutura atual
• Equipamentos proprietários
____________________________________________________________________________
www.inatel.br
SDN – Software Defined Networking
• Necessidade de abertura da camada de software
• SDN – Software Defined Networking
• Separação entre plano de controle e plano de dados
____________________________________________________________________________
www.inatel.br
• Descrição do OpenFlow
• Desenvolvido pela Universidade de Stanford em 2008
• Objetivo de atender novas arquiteturas (fluxo de dados)
• Criação de novas regras no controlador
____________________________________________________________________________
OpenFlow
www.inatel.br
OpenFlow
____________________________________________________________________________
• Regras definidas em tabela do comutador
• Controlador responsável pela tomada decisão
www.inatel.br
• Desvantagem ou problema com OpenFlow
• Ocorre aumento da latência em torno de um milhão de
vezes, comparando a regra no começo da tabela com a
que está no final.
OpenFlow
____________________________________________________________________________
www.inatel.br
• Problemas de escalabilidade e perda de desempenho
OpenFlow
____________________________________________________________________________
www.inatel.br
• Descrição do KeyFlow
• Criação
• Diferenças para o OpenFlow
• Vantagens e Desvantagens
• Método de Encaminhamento
• Teorema Chinês dos Restos
____________________________________________________________________________
KeyFlow
www.inatel.br
____________________________________________________________________________
KeyFlow
• Foi proposto por pesquisadores da UFES em 2012
• Baseado no KIS – Key Information System
www.inatel.br
• Diferenças para o OpenFlow
KeyFlow
____________________________________________________________________________
www.inatel.br
Aplicação da Rede KeyFlow____________________________________________________________________________
www.inatel.br
Teorema Chinês do Resto
• Algoritmo utilizado pelo controlador para mapear os caminhos
em um rótulo R.
• Caminho = Chaves locais dos comutadores J = [J1, J2, ..., JN]
e suas portas de saída K = [K1, K2, ... , KN].
____________________________________________________________________________
www.inatel.br
Teorema Chinês do Resto
• Dado o rótulo R e o vetor J, é possível recuperar o vetor K, por
meio da seguinte operação:
𝐾𝑖 = 𝑅 𝑚𝑜𝑑 𝐽𝑖
____________________________________________________________________________
www.inatel.br
Cálculo do Rótulo
____________________________________________________________________________
www.inatel.br
Implementação____________________________________________________________________________
NetFPGA-10G:
• Xilinx Virtex-5.
• 4 transeivers 10Gbps.
• X8 PCI Express Gen 2.
• 4 RLDRAM’s
• 2 FLASH’s 256Mb.
• Interfaces de expansão.
• CPLD Xilinx.
• HW e SW open source.
www.inatel.br
____________________________________________________________________________
Implementação
Escopo:
• Descrição em Verilog.
• Ferramenta:
Xilinx ISE Design Suite
(SDK, ISim, XPS, ...).
• Fluxo: Descrição,
simulação, síntese e teste.
www.inatel.br
____________________________________________________________________________
Implementação
KeyFlow 10Gbps
Referências:
• Implementação 1Gbps
(NERDS - UFES).
• OpenFlow 10Gbps por
Tatsuya Yabe.
OpenFlow 10Gbps
www.inatel.br
Implementação____________________________________________________________________________
NF10_10g_interface:
• Conversão entre os
barramentos XAUI e
XGMII.
• Executar a lógica da
subcamada MAC do padrão
Ethernet 10Gbps (IEEE
802.3-2012).
Pkt_preprocessor:
• Alterado do OpenFlow
10Gbps.
• Extrair o KeyFlow ID dos
pacotes.
www.inatel.br
Implementação____________________________________________________________________________
Interface AXI
(Advanced eXtensible Interface):
• Padrão de interconexão SoC
definido pela ARM.
• Projetos desenvolvidos para
NetFPGA-10G utilizam uma
versão refinada pela Xilinx para
manter a interoperabilidade e o
reuso dos IPCores.
www.inatel.br
Implementação____________________________________________________________________________
KeyFlow_processor:
• Cálculo do resto da divisão
entre chave local e rótulo do
pacote (KeyFlow ID).
• Alteração dos metadados do
pacote para determinar a
porta de saída.
www.inatel.br
Implementação____________________________________________________________________________
Input_arbiter + outport_queues:
• Direciona os pacotes para as
portas de saída determinada no
Tuser.
• Possui filas de entrada e saída.
www.inatel.br
Testes em laboratório
____________________________________________________________________________
• Descrição do ambiente de testes
• Taxas elevadas na casa dos Gbps
• Placa utilizada: hardware NT20E2-PTP – Napatech,
Possui 2 portas 10Gbps e permite captura e réplica de
pacotes.
• Características do Computador
Sistema Operacional Fedora 20, Kernel 3.19.8.
CPU 8x Intel Core i7-4770 @ 3.40GHz
Memória RAM 16 GB
HD 250 GB
www.inatel.br
Testes em laboratório
____________________________________________________________________________
• Placa NT20EP-PTP
• Os pacotes foram gerados no formado pcap, a partir de
um script em Python
• Foram gerados 1000 pacotes com mesmos endereços
MAC de origem e destino, mudando apenas o campo
KeyFlow ID.
www.inatel.br
Testes em laboratório
____________________________________________________________________________
• Conexão da placa NT20EP-PTP com comutador KeyFlow
• Os pacotes são transmitidos e recebidos pela aceleradora
passando pelo comutador (loop)
www.inatel.br
Testes em laboratório
____________________________________________________________________________
• Pacotes recebidos pela placa aceleradora
• KeyFlow ID no campo Vlan ID do cabeçalho
• Conclusão: teste bem sucedido
www.inatel.br
Conclusões____________________________________________________________________________
• Estudo e implementação em hardware do primeiro
comutador KeyFlow 10 Gbps.
• Material de referência para futuras implementações (está
sendo utilizado na Universidade de Bristol).
• Sugestão de trabalhos futuros:
- Ensaios com o comutador.
- Otimização do hardware.
- Testes para a comparação com uma rede puramente
OpenFlow.

Mais conteúdo relacionado

Semelhante a Implementação de um Comutador KeyFlow 10Gbps para Redes Definidas por Software

Controladores Lógicos Programáveis parte-1
Controladores Lógicos Programáveis parte-1Controladores Lógicos Programáveis parte-1
Controladores Lógicos Programáveis parte-1andydurdem
 
Prova informatica sistemas
Prova informatica sistemasProva informatica sistemas
Prova informatica sistemasmichelegn
 
Prototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLPrototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLBrito Filho
 
Exercício prático redes 8 julho 2013
Exercício prático redes 8 julho 2013Exercício prático redes 8 julho 2013
Exercício prático redes 8 julho 2013Kundan Narendra
 
Memorial marina flavia_caroline
Memorial marina flavia_caroline Memorial marina flavia_caroline
Memorial marina flavia_caroline Marina Krummenauer
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesFernando Ike
 
Apostila de vb.net
Apostila de vb.netApostila de vb.net
Apostila de vb.netHugo Silva
 
Apostilade vb.net
Apostilade vb.netApostilade vb.net
Apostilade vb.netRafael Ora
 
Apostila de vb.net
Apostila de vb.netApostila de vb.net
Apostila de vb.netlricx
 
Iniciando com Linux
Iniciando com LinuxIniciando com Linux
Iniciando com Linuxdiogobohm
 
Arduino para Programadores .NET
Arduino para Programadores .NETArduino para Programadores .NET
Arduino para Programadores .NETIgor Kondrasovas
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...Alex Casañas
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...Alex Casañas
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 

Semelhante a Implementação de um Comutador KeyFlow 10Gbps para Redes Definidas por Software (20)

Projectofinal
ProjectofinalProjectofinal
Projectofinal
 
Controladores Lógicos Programáveis parte-1
Controladores Lógicos Programáveis parte-1Controladores Lógicos Programáveis parte-1
Controladores Lógicos Programáveis parte-1
 
Prova informatica sistemas
Prova informatica sistemasProva informatica sistemas
Prova informatica sistemas
 
Prototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDLPrototipagem de Sistemas Digitais - Introdução a VHDL
Prototipagem de Sistemas Digitais - Introdução a VHDL
 
Exercício prático redes 8 julho 2013
Exercício prático redes 8 julho 2013Exercício prático redes 8 julho 2013
Exercício prático redes 8 julho 2013
 
Memorial marina flavia_caroline
Memorial marina flavia_caroline Memorial marina flavia_caroline
Memorial marina flavia_caroline
 
PostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicaçõesPostgreSQL: Conceitos e aplicações
PostgreSQL: Conceitos e aplicações
 
Apostila de vb.net
Apostila de vb.netApostila de vb.net
Apostila de vb.net
 
Apostilade vb.net
Apostilade vb.netApostilade vb.net
Apostilade vb.net
 
Apostila de vb.net
Apostila de vb.netApostila de vb.net
Apostila de vb.net
 
Microprocessadores
MicroprocessadoresMicroprocessadores
Microprocessadores
 
Iniciando com Linux
Iniciando com LinuxIniciando com Linux
Iniciando com Linux
 
Projeto rede local
Projeto rede localProjeto rede local
Projeto rede local
 
Relatorio 2
Relatorio 2Relatorio 2
Relatorio 2
 
Arduino para Programadores .NET
Arduino para Programadores .NETArduino para Programadores .NET
Arduino para Programadores .NET
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
 
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...Unidade 05   introdução a computação - redes de computadores - 15-03-03 - 47 ...
Unidade 05 introdução a computação - redes de computadores - 15-03-03 - 47 ...
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Projecto final de AC
Projecto final de ACProjecto final de AC
Projecto final de AC
 

Implementação de um Comutador KeyFlow 10Gbps para Redes Definidas por Software