Microsoft, Facebook e o switch de rede
Autor: Fabio Montoro | Publicado: 2016-03-13T12:46:00-07:00


Não resta
dúvidas quanto à importância do "switch de dados" em uma rede interna,
já que ele é o concentrador dos fluxos de dados vindos dos diversos
dispositivos ligados em rede. Seu "QI", se é que&nbsp; posso utilizar esse termo, ou seja, sua
capacidade de identificar os pacotes de dados que recebe, entender suas
prioridades e necessidades (grau de importância e urgência sobre outros tipos
de pacotes, taxa máxima admitida para perda dos pacotes, largura de banda
necessária, tempo máximo de latência, etc.), atender aos requisitos e encaminhar
os pacotes aos respectivos destinos, é parte integrante do QI da infraestrutura
de rede. 


 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 







&nbsp;A idéia
deste blog não é atuar na arena do futurismo, mas esse movimento, com a participação
do Facebook e agora recebendo adesões de peso, não poderia deixar de ser
comentado.

Em Junho de
2014 publiquei o artigo "Switch Facebook", quando comentei sobre o projeto OCP - Open Compute Project, lançado em 2012 pelo Facebook.

Então, não
poderia deixar de comentar sobre o anúncio, divulgado esta semana, de que a
Microsoft decidiu se juntar ao Facebook no projeto OCP e abrir o&nbsp; código fonte de seu pacote de software denominado
SONiC<!--[if !supportFootnotes]-->[1]<!--[endif]-->
- &nbsp;Software for Open Networking in the Cloude, desenvolvido em conjunto com as
empresas Arista, Broadcom, Dell e Mellanox.

O projeto
OCP ganhou força.

O switch
foi picado e recebeu o vírus do Linux. Seu DNA está sujeito a mutações
importantes.

Essa
decisão é uma ameaça aos planos dos fabricantes tradicionais de switch,
principalmente a Cisco, o maior deles. A expectativa dos engenheiros de rede é que
eles repensem sobre a questão da produção de equipamentos com inteligência
proprietária versus a plataforma aberta do projeto OCP, sob pena de perderem
mercado.

As
operações em nuvem (Cloude Computing)
vem ganhando espaço nas infraestruturas de rede das corporações, o que exige taxas
de transmissão cada vez mais altas, mais segurança e requisitos de padronização
das plataformas do software de controle das comunicações.

Correndo em
paralelo, as operações Big Data e as redes das coisas (IoT - Internet of Things) estão, juntamente com os fluxos de vídeo (video streams), cada vez mais, gerando volumes
de informações que devem circular pelas redes internas, pelas redes externas e,
parte disto, com destino a data centers.

Esses
aspectos, além de nos fazerem pensar mais à frente, pois temos projetos em
nossa mãos, pedem uma infraestrutura de rede que seja flexível e de rápida
adequação a novos requisitos a fim de reduzir os riscos (baixo desempenho,
perda de investimento).

A adesão da
Microsoft ao OCP visa facilitar a entrada e a implantação de seus produtos para
computação em nuvem em ambientes com diversas plataformas de infraestrutura de
rede e switches de fabricantes diversos.

A
padronização sempre foi uma questão fundamental no avanço das redes. Hoje mais
do que nunca. Os fabricantes passaram a considerar estratégico participar de
associações de elaboração de normas, bem como formar grupos de colaboração para
definir normas que eliminem problemas de interconexão.

A dianteira
tecnológica obtida por um fabricante está cada vez menor e mais volátil.
Portanto, mais do que nunca é preciso estar na frente, como naquela história em
que dois amigos, na mata, ouviram o rugido de um leão. Um deles, ao ver que o
amigo resolveu calçar o tênis, perguntou se ele pretendia correr mais do que o
leão. A resposta foi que ele só pretendia correr um pouco mais do que o amigo.

SDN - Software Defined Networking, ou "operação em rede definida por software",
é um conceito recente, cujo objetivo é estabelecer equipamentos de rede (principalmente
switches e roteadores) cujas características possam ser definidas por software,
de forma padronizada, permitindo assim a rápida adequação do hardware às
demandas de tráfego e, consequentemente, uma infraestrutura de rede mais
flexível e eficiente. O conceito, portanto, se aplica a redes locais e de longa
distância.

O SONiC é
um pacote de software baseado em Linux, originalmente preparado para rodar sob
a distribuição Debian, aderente ao conceito SDN, com funcionalidades de camada
3 (Layer 3, roteamento), que permite
utilizar a mesma pilha de firmware (software de controle de hardware) em
switches de vários fabricantes, em conjunto com a SAI (Switch Abstraction Interface)<!--[if !supportFootnotes]-->[2]<!--[endif]-->, um API definido em
linguagem C para comando de circuitos integrados de comutação (ASICs), utilizados
pelos switches.

Os switches
passaram por algumas mudanças de paradigma ao longo dos anos, desde sua
concepção, quando ainda eram chamados de "bridge". Uma delas foi o
rompimento da barreira da camada 2 (Layer 2), incorporando funcionalidades da
camada 3. Agora, acho que podemos considerar que está em curso mais uma mudança
de paradigma: o hardware padronizado e aberto, com suporte a um sistema de
gerenciamento global. O sinal é a padronização que está sendo patrocinada pelo
projeto OCP, reforçado pela adesão do SONiC.

A figura 1
é uma tentativa de ilustrar a evolução da padronização na comunicação de dados,
dividindo-a em três eras.

A primeira
era é a dos mainframes, dos grandes fabricantes, como IBM e Fujitsu, com todos os
elementos proprietários. Tem como características principais, além do domínio
absoluto de um fabricante sobre a solução, a dificuldade em interconectar sistemas&nbsp; de fabricantes diferentes e a "lenta"
evolução tecnológica.



Fig. 1: Evolução da padronização na comunicação
de dados


 

  
Era

  
Hardware

  
Sistema Operacional

  
Protocolo

camadas

1 e 2

  
Protocolo camada

3

  
Protocolo

de

Roteamento

  
Protocolo de gerência

 

  
1

  
proprietário

  
proprietário

  
proprietário

  
proprietário

  
proprietário

  
proprietário

 

  
2

  
proprietário

  
proprietário

  
Ethernet

  
IP

  
OSPF

  
proprietário

 

  
3

  
proprietário

  
proprietário

  
Ethernet

  
qualquer

  
qualquer

  
OpenFlow

 

  
aberto

  
aberto

  
Ethernet

  
qualquer

  
qualquer

  
OpenFlow

 



Na segunda
era, a força dos protocolos Ethernet e IP (suite completa) facilitaram bastante
a interconexão das redes, porém, além&nbsp; do
hardware e do software, os protocolos de gerenciamento continuaram
proprietários, persistindo a grande dificuldade em configurar a rede toda de
forma holística.

Apesar de
haver protocolos de roteamento, abertos e disponíveis, como o OSPF, estes não
possuem capacidade de atuar nas tabelas de roteamento dos roteadores e switches
de forma adequada a partir de uma visão geral da rede, sendo impraticável o
combate eficaz aos congestionamentos em determinados nós da rede, uma vez que a
distribuição do tráfego é aleatória e foi agravada recentemente pela
proliferação dos dispositivos móveis e sistemas em nuvem.

Outra
dificuldade existente é o projeto da rede e o teste de validação de sua
configuração que muitas vezes, por exigir um esforço enorme de laboratório e
ajuste de configurações se torna praticamente inviável levando a implantação a
se arrastar mais do que seria desejável.

Uma das ideias
intrínsecas do SDN é que os equipamentos switches e roteadores possuam uma
camada de software de gerenciamento que opere como um driver para o software de
gestão da rede, que permita receber informações de roteamento, obviamente
colhidas com visão holística, envie informações de tráfego e troque requisitos
de rede&nbsp; com o sistema de gerenciamento.

Outro
aspecto desejável par o SDN é que ele consiga reservar partições da sua
capacidade de transmissão (banda disponível em bits por segundo) para rodar um sistema
em rede de forma&nbsp; independente do que
está em produção e sem interferir nele. Similar a uma VLAN. Assim, outros
protocolos podem ser testados ao vivo (on
the fly) como alternativas ao OSPF ou até mesmo ao IP, por exemplo. Este
aspecto deve acelerar sobremaneira o desenvolvimento de novas soluções de
roteamento em rede.



Baixar a versão em PDF


<!--[if !supportFootnotes]-->

<!--[endif]-->




<!--[if !supportFootnotes]-->[1]<!--[endif]--> O código fonte do SONiC está
disponível em&nbsp;GitHub



<!--[if !supportFootnotes]-->[2]<!--[endif]--> Switch Abstraction Interface