O que é SDN (Software Defined Network)?

O que é SDN (Software Defined Network)?

Recentemente escrevi um pouco sobre Software Defined Storage e Hiperconvergência e algumas pessoas mais próximas, me pediram para escrever algo sobre Software Defined Network (outra tecnologia que está na moda e que tenho estudado muito ultimamente). Mas afinal o que é SDN? Openflow? OpenDaylight? Overlay?

Para começarmos, temos a seguinte pergunta: O que mudou no mercado de redes nos últimos anos? Bem se observarmos cuidadosamente, após a adoção maciça dos switches nos ambientes empresariais no final da década de 90, não tivemos algo realmente novo, principalmente quando falamos de provisionamento, gerenciamento e visibilidade de redes.

Se considerarmos uma rede pequena, com poucos nós e poucos servidores, provisionar alguns poucos ativos de rede com poucas VLAN’s não é um grande problema. Todavia com a ascensão da virtualização nos datacenters e a adoção de ambientes de nuvem privada e/ou híbrida, a complexidade aumentou consideravelmente junto com novos requerimentos de segurança e performance. Outro grande ponto de atenção é o custo, principalmente para ambientes muito grandes, por exemplo, o do Google, onde o modelo de redes tradicionais tinha um custo diretamente proporcional ao tamanho da rede, ou seja, não havia ganhos de escala. Estes são apenas alguns pontos, existem várias outras limitações no modelo tradicional de redes, que podemos resumir em:

Custo: Sem economias de escala. Muito esforço manual para instalar, configurar e manter. Selecionar um determinado fabricante implica em submissão à política de preços deste fabricante. Selecionar várias marcas buscando o melhor preço implica em várias curvas de aprendizado (sintaxe e recursos de cada equipamento);

Provisionamento: Configuração via CLI (Console), pouca ou nenhuma API e/ou possibilidade de integração com outras soluções ou automação;

Gerenciamento: Sem visibilidade, gerenciar caixas ao invés de um sistema. Impossibilidade de realizar o gerenciamento baseado em políticas;

Segurança: Limitada a ACL’s, VLAN’s e a segurança de borda (firewall).

Considerando as limitações acima, a virtualização de redes ou SDN – Software Defined Network (a terminologia vária de alguns fabricantes e o entendimento de alguns profissionais) parece o caminho mais adequado. O que é SDN? A resposta mais ampla é: Depende. Essa resposta se deve ao fato de que cada fabricante tem uma definição diferente, então de forma ampla, SDN é: Automação, possibilidade de programar a rede como se fosse um software (Network Programability), gerenciamento centralizado ou o uso de “bare metal” devices e até mesmo a combinação destes componentes.

Particularmente uso a definição de SDN encontrada na página da Open Networking Foundation ou simplesmente ONF que diz: SDN é a separação física da camada de controle (network control plane) da camada de encaminhamento (fowarding plane), onde a camada de controle é centralizada.

Para facilitar o entendimento da definição acima, no modelo tradicional, cada equipamento possui as duas camadas na mesma caixa. Por esta união no mesmo equipamento temos que gerenciar caixas isoladas ao invés de um sistema.

Com a adoção do modelo sugerido na definição da ONF, vários equipamentos de rede são gerenciados à partir de um único controlador (que pode ser redundante). Inclusive um dos controladores mais populares é o OpenDaylight. Este controlador se comunica verticalmente através de duas interfaces, uma denominada NorthBound Interface que se comunica com as aplicações usualmente através de API’s (Rest/Restconf) e a SouthBound Interface que se comunica diretamente com os equipamentos físicos e o protocolo mais comum para esta comunicação é o OpenFlow. Para facilitar, tomei emprestada a figura disponível na página da ONF e incluí algumas anotações como pode ser visto abaixo:

 

Diagrama de uma SDN.
Diagrama de uma SDN.

Como disse anteriormente, o OpenDayLight é o controlador mais popular, mas existem outros como: HP VAN, ONOS, OpenContrail, Ryu, etc. Da mesma maneira, OpenFlow é o protocolo de comunicação entre controlador e dispositivos físicos mais popular, mas esta comunicação pode ser realizada através de outros protocolos como OvsDB, SNMP, NetConf, etc.

Se você chegou até aqui, ainda deve estar interessado em outros termos como Bare Metal e Overlay. Então na ordem, vamos começar com Bare Metal.

Alguns fabricantes como a Big Switch Networks, Cumulus Networks, IP Infusion e Pica8, são fornecedores apenas de Network Operating Systems, neste caso pode-se adquirir, por exemplo, um Switch sem sistema operacional e utilizar uma destas soluções, desta forma podemos ter switches de várias marcas e fabricantes mas com a mesma interface e funcionalidades reduzindo a dependência de um fornecedor de hardware específico, em alguns casos podemos ter uma redução de custos neste modelo na casa de 40% (custo de aquisição).  Mas aonde vou adquirir um switch sem sistema operacional? Temos fabricantes como EdgeCore, Agema Systems, Penguin Computing e Supermicro. Exemplificando de uma maneira simples, podemos adquirir 5 switches EdgeCore e 5 switches Penguin Computing e nestes utilizar o PicOS da Pica8, todos os 10 equipamentos utilizando um sistema operacional comum e comunicando via OpenFlow com um controlador OpenDaylight.

Finalmente, o que é Overlay? Basicamente como o nome sugere, é uma camada de abstração e o exemplo de solução Overlay mais popular é o Vmware NSX, onde toda a virtualização da rede é realizada via software, desta forma pode-se manter a rede física praticamente inalterada, o NSX cria uma camada virtual (Layer) sobreposta (Over) à rede física. Veja que esta é uma definição bastante simplificada com objetivos meramente didáticos. A vantagem neste modelo é que a implementação é relativamente rápida e nesta camada virtual (falando especificamente do NSX) temos serviços como VPN, Roteamento, Switching, Load Balance e Firewall (inclusive com granularidade ao ponto de termos um firewall para cada máquina virtual).

Peço desculpas pelo texto longo, mas não queria quebrar o assunto em várias partes para facilitar o entendimento.

Consultor veterano na área de Tecnologia da Informação, com passagem em grandes empresas, graduado em Ciência da Computação com especialização em microeletrônica e gestão de projetos, detentor de diversas certificações de mercado (Microsoft, Cisco, Brocade, Vmware, etc.).

2 thoughts on “O que é SDN (Software Defined Network)?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *