Redes Definidas por Software (Software Defined Networks) SDN

On 20 de agosto de 2015 by Theo Lins

Introdução ao SDN

Redes Definidas por Software (Software Defined Networks) SDN é uma nova abordagem para redes de computadores com uma proposta mais dinâmica, gerenciável, adaptável  e com um bom custo benefício. O que  faz do SDN ideal para alta largura de banda e para a natureza dinâmica dos aplicativos atuais, pois tornam as redes de computadores mais flexíveis e eficientes.
As principais características da abordagem SDN são:

  • Programável: o controle da rede é programável diretamente pelos administradores, permitindo configurar, gerenciar, proteger e otimizar os recursos de rede muito rapidamente através de dinâmicas e programas SDN automatizados.
  • Agilidade: permite os administradores ajustar dinamicamente o fluxo de tráfego em toda a rede para atender as demandas de mudança.
  • Gerenciamento central: toda inteligência da rede é logicamente centralizada nos controladores baseados em software que possuem um visão global da rede.
  • Abertura: implementado por meio de padrões abertos, SDN simplifica o projeto e operação de rede porque as instruções são fornecidas pelos controladores de SDN em vez de dispositivos específicos de fornecedores e protocolos.

Motivação
As mídias sociais, dispositivos móveis e computação em nuvem estão empurrando as redes convencionais para os seus limites. Processamento e armazenamento têm beneficiado de inovações incríveis em virtualização e automação, mas esses benefícios são limitados pela rede. Os administradores podem executar novas instâncias de processamento e armazenamento em minutos, mas podem travar durante semanas com operações rígidas e muitas vezes manuais da rede.
Abaixo os principais motivos para  a utilização do SDN:

  • Mudança dos padrões de tráfego: Os aplicativos que acessam bancos de dados e servidores comumente distribuídos geograficamente através das nuvens públicas e privadas requerem gestão do tráfego extremamente flexível e acesso a largura de banda sob demanda.
  • Serviços em nuvens: atualmente é um recurso muito utilizado e que cresce cada vez mais, onde os usuários esperam ter acesso on-demand para aplicações, infraestrutura e vários recursos.
  • Largura de banda: estamos na era do “Big Data” que requer processamento paralelo massivo e uma demanda constante de conexão.
  • Complexidade: dispositivos móveis e outros diversos tipos dispositivos, tornaram a criação de políticas e gerenciamento mais complexos, demorados e manuais.
  • Falta de escalabilidade: a escalabilidade se tornou ineficaz com esses novos padrões de tráfego que são mais dinâmicos e virtualizados.
  • Dependência de fornecedor: a tecnologia atual é dependente do fabricante, existe uma falta de padrão e interfaces limitadas a capacidade dos administradores com o seu ambiente de acesso.

Rede convencional vs SDN
No SDN o plano de dados é separado do plano de controle diferentemente da rede de computadores convencional como pode ser visto na figura 1, enquanto que nas redes convencionais cada dispositivo possui o plano de dados e o plano de controle, no SDN o plano de controle é centralizado e plano de dados fica no dispositivo.

O plano de controle é o responsável pelo aprendizado do encaminhamento dos pacotes, ou seja por qual rota seguir, pela montagem da tabela de encaminhamento, já o
plano de dados é o responsável pelo encaminhamento de pacotes com base em regras simples, que associada a cada entrada da tabela de encaminhamento do dispositivo. Entre essas regras podemos citar:

  • encaminhar o pacote para uma porta especifica do dispositivo.
  • alterar parte do cabeçalho dos pacotes.
  • descartar.
  • encaminhar para inspenção de um controlador de rede.
plane

Figura 1 – Plano de dados e plano de controle

 

 

 

A Arquitetura SDN e seus componentes

Em uma arquitetura SDN as decisões de encaminhamento de pacotes deixaram de ser decididas pelos dispositivos da rede e passaram a ser decididas por um dispositivo especial chamado de controlador SDN. O protocolo mais utilizado para a comunicação com o controlador é o OpenFlow[1]. O OpenFlow possui uma interface simples de programação, permitindo o controle da tabela de encaminhamento que será utilizada pelos dispositivos da rede.

fig1

Figura 2 – Arquitetura SDN[2]

OpenFlow
O OpenFlow[1] foi proposto pela Universidade de Stanford, seu objetivo inicial era atender à demanda de validação de novas propostas de arquitetura e protocolos de rede sobre equipamentos comerciais. Dessa forma é possível implementar uma tecnologia capaz de promover a inovação no núcleo da rede, por meio da execução de redes de teste em paralelo com as redes de produção. A proposta do OpenFlow promove a criação de redes SDN, usando elementos comuns de rede, tais como switches, roteadores, pontos de acesso ou, até mesmo, computadores pessoais[1].

Controladores SDN
O principal componente de uma Rede Definida por Software, é o controlador SDN, também chamado de sistema operacional de rede. O controlador é o que define a natureza do paradigma SDN. É o componente responsável por concentrar a comunicação com todos os elementos programáveis da rede, oferecendo uma visão unificada da rede. Existem diversos controladores para o paradigma SDN.

A maneira de como desenvolver aplicações SDN depende muito da linguagem de programação em que o controlador foi desenvolvido bem como sua arquitetura e complexidade. Como pode ser visto na figura 2, existem vários controladores disponíveis como POX, NOX, Beacon, Floodlight, cada um com sua particularidade.

Aplicações
Com SDN as aplicações passam a ser ativas nas redes, ao contrário das redes convencionais, pois a rede está ciente da aplicação que está sendo executada. Enquanto nas redes convencionais as aplicações devem indiretamente descrever seus requisitos para um bom funcionamento, o que geralmente envolve várias etapas e processamentos para negociar recursos suficientes e uma política de controle para suportar o aplicativo.

Usando o SDN, as aplicações podem monitorar o estado da rede e adaptar em conformidade. O plano de controle é de forma lógica e centralizada, o controlador SDN resume o estado de rede para aplicativos e traduz os requisitos das aplicações.

Northbound e Southbound API
A Northbound é a interface entre as aplicações e os controladores, ela oferece visão abstrata da rede e recebe as informações direta do comportamento e requisitos da rede. A Northbound é implementada de forma aberta, independente de fornecedor e com interoperabilidade.

A Southbound é a interface definida entre um controlador e a infraestrutura ou seja um dispositivo SDN. Através de uma linguagem como o Openflow, a API fornece o controle programático de todas as operações, capacidade de notificação, estatísticas de relatórios. Assim como a Northbound, a Southbound é implementada de forma aberta, independente de fornecedor e com interoperabilidade.

Dispositivos prográmaveis SDN
Esses são os dispositivos(normalmente switchs e roteadores) que recebem a informação do controlador através da Southbound para montar seu plano de dados. Após o recebimento das informações do controlador, as decisões do que será feito com os pacotes já pode ser tomada.

Muitos dispositivos comerciais já suportam o padrão OpenFlow, com exemplos os HPs 5400zl e 8200zl, o NEC IP880 e os Pronto 3290 e 3780. A idéia é que com a evolução do SDN, mais fabricantes adote o padrão.

 

Desafios de pesquisa
O SDN promete flexibilidade, controle centralizado, e interfaces abertas entre nós, permitindo uma rede eficiente e adaptativa. A fim de alcançar estes objetivos, existe um número de desafios em circulação a ser resolvido. Abaixo é abordado 4 temas onde estão alguns dos principais desafios[2].

Desempenho vs Flexibilidade
Um desafio fundamental da SDN é como lidar com a alta flexibilidade, alta segurança e alto desempenho de maneira eficiente com o processamento de fluxo de pacotes.
Há dois elementos a considerar: desempenho e capacidade de programação/flexibilidade.
O desempenho refere-se especificamente para a velocidade de processamento do nó de rede considerando tanto o rendimento quanto a latência. Programação significa a capacidade de alterar e/ou aceitar um novo conjunto de instruções, a fim de modificar o comportamento funcional. A flexibilidade é a capacidade de adaptação dos sistemas para suportar características novas e não previstas (por exemplo, aplicações, protocolos, medidas de segurança)[2].

Escalabilidade
O problema de escalabilidade normalmente ocorre no controlador, no qual são identificados três desafios específicos. A primeira é a latência introduzida através da troca de informação entre vários nós de rede e um controlador único. O segundo é a forma como os controladores de SDN se comunicam com outros controladores. O terceiro desafio é o tamanho e o funcionamento da base de dados do controlador.
Considerando que o primeiro desafio pode ser resolvido com uma infraestrutura de controlador peer-to-peer ou distribuída, por partilhar a carga de comunicação do controlador. No entanto, está abordagem não elimina o segundo desafio das interações entre os controladores, para o qual é necessária uma visão global da rede.

Redes tradicionais de pacotes se prestam a soluções escaláveis, porque eles não precisam repassar o seu estado entre as unidades do sistema. Cada nó da rede é autônomo, requerendo apenas conhecimento limitado de seus vizinhos. Os protocolos de roteamento foram concebidos para controlar o tráfego com isso em mente. A fim de criar redes resilientes, caminhos alternativos e equipamentos secundários são obrigatórios. Nesse caso, pode ser necessário para manter um estado entre os sistemas para garantir que se ocorrer uma falha, existe pouca ou nenhuma interrupção do serviço. Os sistemas típicos que exigem essa funcionalidade incluem elementos de rede, tais como balanceadores de carga e firewalls.
Dentro de um ambiente SDN puro, um único controlador ou grupo de controladores iriam fornecer serviços de plano de controle de encaminhamento de dados para um maior número de nós, permitindo assim uma visão de todo o sistema de recursos de rede. Outras abordagens que correspondem aos objetivos da SDN com protocolos de encaminhamento existentes, envolvem a adição de uma camada de gerenciamento. Com uma API os elementos de aplicação podem solicitar o desempenho desejado da camada de transporte[2].

Segurança
Potenciais vulnerabilidades de segurança existem em toda a plataforma SDN. Além disso, com a introdução no SDN com interfaces abertas e protocolos conhecidos para simplificar a programação de rede por qualquer provedor de aplicação, a porta fica escancarada para os atacantes. Com o conhecimento total de como controlar a rede, com acesso para o controlador, o funcionamento da rede pode rapidamente e facilmente ser aproveitado para o benefício do atacante. Mesmo em um nível inferior, nós individuais da rede, hosts ou os usuários podem ser direcionados, minando o desempenho da rede desejada. Tais questões devem receber a devida atenção no design da plataforma SDN.

No entanto, a segurança do SDN só será tão boa como a política de segurança definida. Implementação de mecanismos de autenticação e autorização existentes podem resolver alguns aspectos do desafio de segurança. Enquanto isso, técnicas de detecção e proteção contra ameaças continuarão a evoluir. A chave, porém, é para organizações individuais, que de forma eficaz e abrangente devem definir suas políticas de segurança, a fim de explorar toda a extensão disponível de proteção da rede[2].

Interoperabilidade
Considerar a interoperabilidade e a padronização é necessário para apoiar a transição do modelo de rede tradicional para SDN, para simplificar a implantação de novas infra-estrutura baseada na tecnologia SDN. Por isso, todos os elementos e dispositivos na rede seria SDN-ativado. No entanto, há uma vasta base instalada de redes de apoio a sistemas vitais nas empresas de hoje. Para simplesmente “trocar” essas redes para novas infra-estruturas ainda não é possível, no entanto é bem adequado para ambientes fechados, tais como centros de dados e redes de campus[2].

 

Arquitetura SDN para Internet das Coisas(Internet of Things) IoT

Com o crescimento do interesse em IoT, e com as limitações da redes convencionais, já é esperado estudos que envolvam IoT e SDN. Mas recentemente ainda existem poucos estudos que apresentam arquiteturas SDN para IoT. O SDN possui algumas particularidades que podem ajudar em diversos aspectos do IoT como gerência de energia, gerência da rede e controle de acesso.

No estudo[3] apresenta uma arquitetura de midleware para redes sem fio heterogêneas com um controlador SDN em camadas, eles realizam o experimento em um cenário IoT com a integração de veículos elétricos, locais de recargas, infra-estrutura de redes inteligentes e um conjunto de usuários.
Outro estudo[4] também apresenta uma arquitetura SDN para IoT, com segurança baseada em domínios como pode ser visto na figura 3.

SDN e IoT prometem trazer mudanças na maneira de como as redes são utilizadas e gerenciadas, e nos próximos anos mais pesquisas surgirão para uma melhor adaptação e aperfeiçoamento da tecnologia.

fig2

Arquitetura SDN com domínio[4]

 

Considerações finais

Por ser uma abordagem nova, e ainda pouco explorada o SDN abriu novas possibilidades para a pesquisa em redes de computadores, tanto quanto a nível de aplicações, quanto a nível de evolução, com a identificação e desenvolvimento de novos paradigmas nessa área. O pontapé inicial nessas pesquisas já foi dado, mostrando uma visão dos aspectos teóricos e práticos, além da apresentação de muitos elementos fundamentais para o SDN.

Referência Bibliográfica

[1]  Anderson T. Balakrishnan H. Parulkar G. Peterson L. Rexford J. Shenker S. McKeown, N. and J. Turner. Openflow: enabling innovation in campus networks. In SIGCOMM Comput. Commun., volume 38, page 69–74, 2008.

[2]  SandraScott-HaywardSakirSezer,BarbaraFraserPushpinderKaurChouhan,JimFinne- gan David Lake, Marc Miller Niel Viljoen, and Navneet Rao. Are we ready for sdn? implementation challenges for software-defined networks. IEEE Communications Magazine, 2013.

[3]  Carlo Giannelli Paolo Bellavista Nalini Venkatasubramanian Zhijing Qin, Grit Denker. A software defined networking architecture for the internet-of-things. Network Operations and Management Symposium (NOMS), IEEE, 2014.

[4]  Olivier FLAUZAC, Carlos GONZALEZ, Abdelhak HACHANI, and Florent NOLOT. Sdn based architecture for iot and improvement of the security. 29th International Conference on Advanced Information Networking and Applications Workshops, 2015.

Summary
Redes Definidas por Software (Software Defined Networks) SDN
Article Name
Redes Definidas por Software (Software Defined Networks) SDN
Description
SDN é uma nova abordagem para redes mais dinâmica, gerenciável, adaptável e com um bom custo benefício.
Author
Publisher Name
iMobilis
Publisher Logo

2 Responses to “Redes Definidas por Software (Software Defined Networks) SDN”

  • O artigo me permitiu ter um conhecimento melhor sobre a tecnologia, como um solução para o mercado.

  • Participe da pesquisa “SOFTWARE DEFINED NETWORKING (SDN) – PERCEPÇÕES SOBRE USO DE SDN NO BRASIL”.
    Estudo envolvendo estudantes e profissionais no mercado de trabalho com vistas à obtenção de dados para um diagnóstico sobre a situação atual da tecnologia SDN no mercado brasileiro.

    https://forms.gle/QcqsmaAwtbEze2yq9

Deixe um comentário

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