Pular para o conteúdo principal

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).



Comentários

Postagens mais visitadas deste blog

Utilizando o padrão de referências da ABNT no Word

Uma importante funcionalidade do Microsoft Word é o seu Gerenciador de Fontes Bibliográficas. Para aqueles que estão escrevendo algum trabalho acadêmico ou científico, é possível cadastrar todas as referências do trabalho e no final gerar a listagem já enumerada dos documentos que foram consultados na pesquisa. Essa postagem traz os arquivos necessários e as instruções para facilitar essa etapa da elaboração.

Como elaborar um TCC em Sistemas de Informação

Alguns meses atrás estive na tão conhecida saga de elaboração do Trabalho de Conclusão de Curso, o TCC, e somente comprovei aquilo que eu via em forma de desabafo nas redes sociais e que tantos outros colegas de faculdade me falavam. Uma das definições mais aceitas por mim sobre o que é um TCC é a citada pela minha orientadora: "é uma gestação". E realmente, apesar de ter feito o meu em cerca de 1 mês (não recomendo isso para ninguém, mas era minha única saída para não ficar desempregado e sem a possibilidade de cursar meu mestrado, mas essa é outra história), um TCC bem feito deve ter seu cronograma definido para 6 meses, no mínimo, e isso deveria ser uma recomendação do Ministério da Saúde para que os graduandos não percam sua saúde mental.

Mininet: Uma Rede Virtual Instantânea no Seu PC

Baseado no texto de introdução presente no site oficial do Mininet (www.mininet.org) apresento esta ferramenta que possibilita a desenvolvedores e pesquisadores a criação de uma rede virtual realista, executando um kernel real, switch e código de aplicação, em uma única máquina (VM, cloud ou nativa), em segundos, com comandos simples.

A rede virtual criada pelo Mininet é escalável, uma rede definida por software em um único PC utilizando processos do Linux. Isso possibilita um meio inteligente de realizar testes e simulações de uma rede antes de implementá-la em meio físico, caso esse seja o objetivo.