Redes Programáveis, o que significa isso?

Fonte: Cariden.com
Quando comecei a elaborar meu projeto de pesquisa para o mestrado envolvendo Computação em Nuvem e Redes Definidas por Software (do inglês Software-Defined Networking, ou simplesmente SDN), me deparei com o artigo "OpenFlow: enabling innovation in campus networks", de 2008, escrito por Nick McKeown dentre outros, com a Universidade de Stanford como uma das principais envolvidas. Neste artigo, um dos principais itens de toda a conversa sobre SDN é apresentado, conforme o próprio título menciona, o protocolo OpenFlow. Já neste artigo, ocorre uma menção à programabilidade da rede por meio de funcionalidades que o protocolo permite ao adotar uma nova arquitetura para as redes. Mas o que significa programar a rede?

Quase cinco anos depois da publicação do artigo que citei, várias são as definições para o que vem a ser SDN. Para fins de simplificação e uso nesta publicação do blog, um dos caminhos para definir o termo, cunhado pela Open Networking Foundation (ONF), é o seguinte: "[SDN] é uma arquitetura emergente, dinâmica, gerenciável, custo-efetiva e adaptável, tornando-se ideal para as altas larguras de banda e a natureza dinâmica das aplicações atuais. Esta arquitetura faz a separação entre o controle da rede e as funções de encaminhamento, permitindo que o controle da rede seja diretamente programável, e a infraestrutura subjacente possa ser abstraída para aplicações e serviços de rede".

Além de estar presente na definição de SDN, o termo programável também aparece entre algumas das características da arquitetura SDN, ainda segundo definição da ONF:
  • Diretamente programável: O controle da rede é diretamente programável devido a sua separação das funções de encaminhamento.
  • Programaticamente configurada: Com SDN, administradores de rede podem configurar, gerenciar, dar segurança e otimizar recursos de rede muito rapidamente através de programas SDN automatizados e dinâmicos, que os próprios administradores podem escrever, devido a estes programas não dependerem de software proprietário.

Para que explicar onde a programação se encaixa na rede e em seus componentes vou utilizar os cenários a seguir.

Programando a Rede

  • Se o nome do servidor corresponde a χ, então usar este caminho de encaminhamento.
  • Para o tráfego tipo α,  limite tráfego de rede para β ao longo do caminho inteiro.
  • Para o tráfego tipo α,  limite tráfego de rede para β.
  • Para todo tráfego α, usar este caminho com a largura de banda > 95 por cento para 10 minutos, em seguida, selecionar o tráfego β para usar o caminho alternativo.
  • Para o tráfego de α correspondente, usar este caminho de baixo custo entre 0800GMT E 1800GMT.

Programando os Dispositivos

  • Se "o tráfego encontrar o endereço IP de destino", então "enviar tráfego ao longo deste caminho, alterando o endereço IP no próximo salto".
  • Se "o tráfego encontrar os endereços IP de origem e destino", então "enviar tráfego ao longo deste caminho, alterando o caminho de fluxo".
  • Se "o tráfego for recebido nesta interface", então "adicionar tag MPLS e enviar por esta interface".
  • Se "o tráfego corresponde", então "conte os pacotes".
  • Enquanto "o tempo entre A - B", então "formar tráfego neste perfil" senão, "formar o tráfego em outro perfil".
  • Enquanto "a tag MPLS é igual a X", então "adicionar tag MPLS", depois "adicionar tag vlan".

Programando uma Cloud Networking

  • Se um servidor chamado xxx está no local yyy, então, usar TrafficProfile1.
  • Todos os servidores começando com "1002" usam o "TrafficProfile1002" e serão localizados na "NetworkZone1002".

Programando a Rede para Aplicações

  • Se a aplicação α está na categoria ♦ e cliente = "Goldclass", então enviar através do Path B ≡ "Classe Rede Diamante" com a MPLS Tag ε.
  • Se β aplicação está na categoria ♣ e cliente = "pão-duro", então enviar utilizando o "Path A" ≡ "Melhor Rede de esforço", acrescentando MPLS Tag η.
Hoje, não é possível entregar este tipo de controle sobre a rede. Protocolos do Plano de Controle como MPLS, BGP e OSPF, que selecionam os caminhos disponíveis, simplesmente não têm essa capacidade. Estes protocolos são amplamente autônomos, capazes de selecionar um único melhor caminho com base só no endereço IP de destino. O MPLS fornece algumas formas disponíveis de controle, mas em última análise, é um protocolo baseado em destino também.

A "ferramenta de programação" deve considerar a origem, bem como o destino para ser útil. A "Rede programável" aqui descrita é o que querem (ou pelo menos acham que querem) os usuários (leia aqui provedores de serviços), mas é quase impossível de implementar.

É por isso que o OpenFlow é atualmente a melhor opção para o plano de dados, além de ser a base para SDN - porque ele pode lidar com esse requisito, programar a rede. E os controladores podem fazer o que os switches autônomos não podem fazer hoje (mas, talvez, possam no futuro).



Felipe Alencar

Felipe Alencar é doutorando em Ciência da Computação na UFPE, professor, desenvolvedor e acredita que só não virou jogador de futebol, surfista ou músico profissional por falta de tempo e talento.

Nenhum comentário:

Postar um comentário