openflow

Nos últimos anos, houve um tremendo aumento no tráfego nas redes empresariais. Em grande parte, isso foi impulsionado por um crescimento explosivo no uso de aplicativos online e serviços em nuvem por uma variedade cada vez maior de dispositivos conectados.

Hoje, os departamentos de TI precisam lidar com uma vasta gama de formatos de dados, tipos de serviço e dispositivos online, e precisam fazê-lo ao mesmo tempo em que garantem disponibilidade, segurança e qualidade de serviço. Tudo sem aumentar os custos operacionais e de equipamentos.

No entanto, as arquiteturas de rede herdadas e suas ferramentas de gerenciamento não foram projetadas para lidar com essa demanda altamente elástica. Isso limita severamente a capacidade do operador de responder de maneira econômica aos requisitos de escala, desempenho e experiência do usuário dos ambientes dinâmicos de hoje, ou implementar serviços diferenciados.

A rede definida por software (SDN)

A rede definida por software (SDN) surgiu como a resposta do setor para enfrentar esses desafios. A SDN permite que as redes reajam dinamicamente a alterações nos padrões de uso e disponibilidade de recursos. As arquiteturas de rede podem ser ajustadas instantaneamente, responder a solicitações de aplicativos e usuários, e os serviços podem ser introduzidos com muito mais rapidez, facilidade e baixo custo.

A SDN fornece separação entre as funções do plano de controle (controlador) e do plano de dados (comutador) das redes usando um protocolo que modifica as tabelas de encaminhamento nos comutadores.

Isso possibilita otimizar redes em tempo real e responder rapidamente a alterações no uso sem a necessidade de reconfigurar manualmente a infraestrutura existente ou adquirir novo hardware. A SDN separa o controle dos dispositivos de rede dos dados que eles transportam e o software de comutação do hardware de rede real.

Ela também fornece uma entidade, o controlador, que possui uma visão abrangente de toda a rede e seu status, e com a qual comutadores (recursos de rede) e aplicativos (consumidores da rede) podem se comunicar em tempo real. O controlador possibilita que as redes interajam com os aplicativos e reconfigurem-se de acordo com diferentes protocolos de roteamento, permitindo a implementação de várias topologias de rede lógica em uma única malha de rede comum.

O protocolo de roteamento OpenFlow

Sob os olhares e cuidados de uma nova organização, a Open Flow Foundation, o protocolo de roteamento OpenFlow é capaz de dar aos administradores de rede um controle sem precedentes sobre a forma que as redes operam.

Openflow é o projeto Open Source, que foi criado e desenvolvido nos últimos seis anos por pesquisas realizadas pela Stanford University e University of California em Berkeley, e tem como base a ideia de se controlar como o tráfego flui dentro da rede.

A ideia é tirar o controle do tráfego dos ativos da rede, switches e routers e transferir esse controle para o administrador da rede, usuários ou até aplicações. Essa habilidade permitiria aos usuários definir políticas de tráfego com a melhor banda disponível, menor latência ou sem congestionamento.

O OpenFlow já tem várias empresas engajadas, dentre elas está Deutsche Telekom, Facebook, Google, Microsoft, Verizon, Yahoo, Cisco, Brocade, Juniper Networks, HP, Broadcom, Ciena, Riverbed Technology, Force10, Citrix, Dell, Ericsson, IBM, Marvell, NEC, Netgear, NTT e VMware.

Como o protocolo OpenFlow funciona

O conceito é relativamente simples, toda a informação do fluxo de dados fica num servidor centralizado cabendo aos switches e routers a função de enviar os pacotes. Como exemplo, os usuários podem programar os switches para conservar energia desabilitando links sem uso e desligar portas que não estão sendo usadas.

O protocolo OpenFlow define a interface entre um controlador OpenFlow e um comutador OpenFlow, conforme a Figura 1 abaixo. Ele permite que o controlador instrua o comutador sobre como lidar com pacotes de dados recebidos.

O comutador OpenFlow pode ser programado para:

  1. Identificar e categorizar pacotes de uma porta de entrada com base em vários campos de cabeçalho de pacote;
  2. Processar os pacotes de várias maneiras, incluindo a modificação do cabeçalho; e,
  3. Solte ou envie os pacotes para uma porta de saída específica ou para o controlador.

As instruções do OpenFlow transmitidas de um controlador para um comutador são estruturadas como “fluxos”. Cada fluxo individual contém campos de correspondência de pacotes, prioridade de fluxo, vários contadores, instruções de processamento de pacotes, tempos limite de fluxo e um cookie.

Os fluxos estão organizados em tabelas. Um pacote recebido pode ser processado por fluxos em várias tabelas em um funil, antes de sair em uma porta de saída. O padrão do protocolo OpenFlow está evoluindo rapidamente com a versão 1.4, como a revisão atual no momento da publicação deste artigo.

A arquitetura de rede OpenFlow consiste em três camadas:

  • Um ou mais comutadores virtuais e / ou físicos do OpenFlow;
  • Um ou dois controladores OpenFlow; e,
  • Um ou mais aplicativos OpenFlow.

O controlador OpenFlow mantém os canais de comunicação do protocolo com os comutadores OpenFlow, mantém um gráfico de estado local dos comutadores e expõe uma API aos aplicativos. A API pode ser exibida como uma abstração da rede e permite que os aplicativos OpenFlow leiam o estado da rede e a instruam a executar várias tarefas.

Uma rede compatível com OpenFlow no mundo real pode consistir apenas em switches OpenFlow ou em uma mistura com roteadores tradicionais. O último tipo de rede é chamado de rede de sobreposição. Alguns aplicativos OpenFlow exigirão apenas a implantação parcial dos comutadores OpenFlow, enquanto outros requerem uma rede que consiste apenas em comutadores OpenFlow.

Como a SDN é essencialmente um mercado emergente, a maioria das implementações será feita sobreposta nas redes existentes.

Se quiser saber mais sobre os benefícios que a SDN traz, veja nosso artigo sobre o assunto!