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 resetar completamente uma instalação do Apache no Ubuntu

Quando eu estava experimentando o módulo python do Apache (mod_python), eu 'de alguma maneira' estraguei minha instalação do Apache. Os arquivos de configuração ficaram em um estado estranho, então eu excluí a pasta /etc/apache2, removi o Apache (através do dpkg) e o reinstalei. Mas o resultado não foi como esperado, a pasta /etc/apache2 não foi recriada na instalação.

Como interpretar e utilizar gráficos

A quantidade de uma única postagem nos últimos 5 anos de blog mostra o quanto estive focado em outras coisas e sem tempo para escrever aqui. Porém, no meio de uma pandemia e com a finalização do meu doutorado, acabei ficando com mais tempo e colocando como meta a volta das publicações aqui no blog.
Nunca antes na história desse país a população, de uma maneira geral, se preocupou tanto com gráficos, curvas, média e outras questões básicas da estatística. Assim, em tempos de coronavírus, essa postagem tem o objetivo de auxiliar que mais e mais pessoas consigam interpretar gráficos, fazer comparações e, inclusive, saber o melhor tipo de gráfico para usar em determinados casos.