| Linha 83: | Linha 83: | ||
<br> | <br> | ||
'''''SDN Controller''''' | |||
Uma arquitetura SDN pode ser descrita como uma composição de diferentes camadas, como mostra Figura 1 (b). Cada camada tem suas próprias funções específicas. Embora alguns deles estejam sempre presentes em uma implantação SDN, como a ''south API'', NOS, ''north API'' e aplicativos de rede, outros podem estar presentes apenas em implantações específicas, como ''hypervisors'' ou virtualização baseada em linguagens [3]. Esta pesquisa é focada em ''SDN Controller'' ou NOS, e, portanto, será feito uma descrição detalhada apenas da camada referente a este tema. | |||
''''' Camada 4: Network Operating Systems (NOS) / Controlador ''''' | |||
A SDN promete facilitar o gerenciamento da rede e aliviar o ônus da solução de problemas de rede por meio do controle logicamente centralizado oferecido pela ''network operating system'' (NOS). Como nos sistemas operacionais tradicionais, o objetivo do NOS é fornecer abstrações, serviços essenciais e interfaces de programação de aplicativos (APIs) para desenvolvedores. Além disso, o NOS também pode fornecer funcionalidades genéricas como: estado da rede e informações de topologia de rede; descoberta de dispositivos; e a distribuição da configuração de rede. Com os NOSs, para definir políticas de rede, um desenvolvedor não precisa mais se preocupar com os detalhes de baixo nível da distribuição de dados entre os elementos de roteamento, por exemplo. É possível que esses sistemas criem um novo ambiente capaz de promover a inovação em um ritmo mais rápido, reduzindo a complexidade inerente à criação de novos protocolos e aplicativos de rede [3]. | |||
Um NOS (ou controlador) é um elemento crítico em uma arquitetura SDN, pois é a peça principal de suporte para a lógica de controle (aplicativos) para gerar a configuração de rede com base nas políticas definidas pelo operador de rede. Semelhante a um sistema operacional tradicional, a plataforma de controle abstrai os detalhes de níveis inferiores de conexão e interação com dispositivos de encaminhamento (i.e., de materializar as políticas de rede) [3]. | |||
'''''Arquitetura e design''''' | |||
Do ponto de vista da arquitetura, um dos pontos mais relevantes é se a plataforma do ''SDN Controller'' é centralizada ou distribuída. Esse é um dos principais eixos de design das plataformas de controle SDN, assim, este aspecto será discutido a seguir. | |||
'''Centralizado vs. Distribuído''' | |||
Um controlador centralizado é uma entidade única que gerencia todos os dispositivos de encaminhamento da rede. Naturalmente, representa um único ponto de falha e pode ter limitações de escala. Um único controlador pode não ser suficiente para gerenciar uma rede com um grande número de elementos do plano de dados. Esses controladores são baseados em projetos com ''multithreaded'' para explorar o paralelismo das arquiteturas de computadores com vários núcleos. Como exemplo, o ''Beacon'' pode lidar com mais de 12 milhões de fluxos por segundo usando nós de computação grandes de provedores de nuvem, como a ''Amazon'' [3]. | |||
Ao contrário do design centralizado, um sistema operacional de rede distribuído pode ser ampliado, potencialmente, para atender aos requisitos de qualquer ambiente, de pequenas a grandes redes. Um controlador distribuído pode ser um ''cluster'' centralizado de nós ou um conjunto de elementos fisicamente distribuídos. Embora a primeira alternativa possa oferecer alta taxa de transferência para ''data centers'' muito densos, a última pode ser mais resistente a diferentes tipos de falhas lógicas e físicas. Um provedor de nuvem que abranja vários ''data centers'' interconectados por uma rede de área ampla pode exigir uma abordagem híbrida, com agrupamentos de controladores dentro de cada ''data center'' e nós de controlador distribuído entre os diferentes ''sites'' [3]. | |||
A maioria dos controladores distribuídos oferece semântica de consistência fraca, o que significa que as atualizações de dados em nós distintos acabarão sendo atualizadas em todos os nós do controlador. Isso implica que existe um período de tempo em que nós distintos podem ler valores diferentes (valor antigo ou novo valor) para uma mesma propriedade. A consistência forte, por outro lado, garante que todos os nós do controlador leiam o valor da propriedade mais atualizado após uma operação de gravação. Apesar de seu impacto no desempenho do sistema, uma forte consistência oferece uma interface mais simples para os desenvolvedores de aplicativos. Até o momento, apenas Onix, ONOS e SMaRtLight fornecem esse modelo de consistência de dados [3]. | |||
Outra propriedade comum dos controladores distribuídos é a tolerância a falhas. Quando um nó falha, outro nó vizinho deve assumir as funções e os dispositivos do nó com falha. Até o momento, apesar de alguns controladores tolerarem falhas de travamento, eles não toleram falhas arbitrárias, o que significa que qualquer nó com um comportamento anormal não será substituído por um potencialmente bem comportado [3]. | |||
'''''Dissecando as plataformas de SDN Controller''''' | |||
Para fornecer uma melhor visão geral da arquitetura e entender o design de um sistema operacional de rede, a Tabela I resume algumas das propriedades de arquitetura e design mais relevantes dos controladores SDN e plataformas de controle. A tabela foca nos elementos, serviços e interfaces de uma seleção de controladores e plataformas de controle que se encontram bem documentados. Cada linha da tabela representa um componente considerado importante em uma plataforma de controle modular e escalável [3]. | |||
COLOCAR TABELA I | |||
Referências: | Referências: | ||
Edição das 14h11min de 10 de setembro de 2019
Fase I - Estudo
Título da Idéia
Software Defined Network Controller - OpenDaylight
Objetivos
Pretende-se, com a realização desta pesquisa, um maior aprofundamento e entendimento do funcionamento e da implementação de um controlador SDN. Neste caso, pretende-se focar no estudo da plataforma OpenDaylight. O intuíto do projeto é integrar o controlador SDN OpenDaylight com o orquestrador e gerenciador de NFV chamado OSM (Open Source MANO).
Conceito
Existem várias novas tecnologias que atualmente sustentam o desenvolvimento das indústrias de telecomunicações, muitas dos quais são reunidos sob as redes móveis 5G. No centro desses desenvolvimento está a Network Functions Virtualisation (NFV), que permite uma mudança significativa na flexibilidade das redes móveis e sua capacidade de oferecer suporte a uma variedade muito maior de serviços, como dispositivos Internet of Things (IoT), bem como nos novos aplicações emergentes na indústria automotiva [1].
O poder do NFV é que ele permite a automação total de muitos processos que eram anteriormente manuais e lentos. Em contraste com processos manuais atuais, a implantação de funcionalidades específicas de serviço para onde quer que seja adequado na rede pode ser muito mais barato e rápido usando a automação total através do NFV. O NFV é, portanto, o componente chave da tecnologia que prevê uma explosão nos serviços com 5G. Claro, o NFV não se restringe ao acesso móvel e essa automação de processos terá um impacto semelhante sobre toda a rede [1].
De acordo com a arquitetura do framework MANO, o NFV pode ser dividido em três partes:
1. O NFVI e VIMs / WIMs. A primeira parte é a infraestrutura do NFV (NFVI), que hospeda máquinas virtual e/ou contêineres e os conecta com links virtuais (VLs). O "Virtualized Infrastructure Manager" (VIM) é responsável por controlar e gerenciar os recursos virtualizados de computação, armazenamento e rede do NFVI-PoP, enquanto o "WAN Infrastructure Manager" (WIM) é usado para estabelecer conectividade entre os NFVI-PoP. O VIM é geralmente implementado usando um controlador de nuvem baseado no OpenStack. Ele faz interface com as implementações de referência NFVO / VNFM usando a API OpenStack. O OpenStack permite segregar os recursos em zonas de disponibilidade para diferentes locatários e instanciar a criação / migração / exclusão de VMs e CTs (serviço de computação), armazenamento de imagens de disco (serviço de imagem) e o gerenciamento das interfaces de rede da VM / CT e conectividade de rede (serviço de rede). O WIM pode ser executado por controladores SDN de transporte dedicados (por exemplo, OpenDaylight, ONOS, Ryu), encarregados de gerenciar o pacote e as tecnologias ópticas. No entanto, a principal limitação dessa abordagem é que atualmente a interface entre o NFVO e o WIM não é amplamente implementada e ainda carece de maturidade [2].
2. VNFs, NSs e fatias de rede. A segunda parte é a coleção dos próprios VNFs, incluindo composição de VNFs em serviços de rede (NSs), e a composição e compartilhamento de NSs para formar o "network slicing". Os VNFs são composições interconectadas de VMs específicas e/ou contêineres hospedados no NFVI [1].
3. Gerenciamento e Orquestração (MANO). A terceira parte é a gestão e orquestração do sistema que controla o ciclo de vida dos VNFs, NSs e network slicing, controla e mantém suas configurações e monitora sua saúde e seu desempenho [1].
Nos casos em que o VIM não suporta nativamente o gerenciamento de underlay networking, O OSM é capaz de fornecer a funcionalidade de manipulação da conectividade com a ajuda de um controlador SDN, que gerencia uma malha na qual os nós de computação do VIM estão conectados. Esta funcionalidade exclusiva do OSM, chamada SDN Assist, permite que o OSM[1]:
1. Forneça a conectividade do plano de dados que o VIM não pode gerenciar.
2. Trate o conjunto VIM + SDN Assist como um único VIM "aprimorado", para que, a partir de perspectiva do usuário, eles se comportarão como uma função regular de gerencia única de uma determinada plataforma de de infraestrutura virtual.
Para funcionar corretamente, é um pré-requisito ter um delineamento claro entre o conhecimento e responsabilidade do VIM e do controlador SDN:
O VIM ficará encarregado de implantar as VMs e as overlay networks, além de fornecer a OSM as informações sobre os nós e interfaces atribuídos às VMs [1].
O controlador SDN será responsável por criar a underlay network, tomando como condição limite os switches e as portas a serem conectados à mesma rede. A topologia de comutação interna do datacenter será conhecida pelo controlador SDN, alimentado como parte do provisionamento de atividades (ou seja, antes de qualquer processo de instanciação) [1].
O Open Source MANO é uma solução para essa terceira parte do NFV e isso dá ao OSM seu escopo geral. OSM visa apoiar a maior variedade de NFVI, VIMs, WIMs, bem como a maior variedade possível de VNFs, NSs e "network slicing". Além de cobrir a maior variedade possível de NFVI e funções hospedadas e serviços, o OSM é um sistema de orquestração e gerenciamento que gerencia o ciclo de vida, aspectos de configuração e vida útil das funções hospedadas.
Entretando, este estudo será focado na ferramenta de SDN, o controlador OpenDaylight. Como supracitado, o OpenDaylight é o controlador que irá interagir com o OSM para gerenciar e controlar os pacotes e tecnologias da rede óptica.
Software Defined Network (SDN)
A rede definida por software (SDN), é um paradigma de rede emergente que dá esperança de mudar os limites das infraestruturas das redes atuais. Primeiro, o SDN quebra a integração vertical, separando o controle da rede lógica (o plano de controle) dos roteadores e comutadores que encaminham o tráfego (o plano de dados). Segundo, com a separação dos planos de controle e dados, os switches da rede tornam-se dispositivos de encaminhamento simples e o controle é implementada em um controlador logicamente centralizado (ou sistema operacional de rede), simplificando a aplicação de políticas, (re)configuração e evolução de redes. Um visão simplificada dessa arquitetura é mostrada na Figura 1. É importante enfatizar que um modelo programático logicamente centralizado não implica em um sistema fisicamente centralizado. De fato, a necessidade de garantir níveis adequados de desempenho, escalabilidade e confiabilidade impediriam tal solução. Ao invés disso, redes SDN recorrem à sistemas de plano de controle fisicamente distribuídos [3].
A separação do plano de controle e do plano de dados pode ser realizado por meio de uma programação bem definidade uma interface entre os switches da rede e o controlador SDN. O controlador exerce controle direto sobre o estado nos elementos do plano de dados através do uso de uma application programming interface (API), como mostrado na Figura 2. O exemplo mais notável de uma API é o OpenFlow. Um switch OpenFlow possui uma ou mais tabelas de regras de manipulação de pacotes (flow table). Cada regra corresponde a um subconjunto do tráfego e executa certas ações (descartar, encaminhar, modificar etc.) nos pacotes em transito. Dependendo das regras instaladas pela aplicação de um controlador, um switch OpenFlow pode - instruído pelo controlador - comportar-se como um roteador, switch, firewall ou desempenhar outras funções (por exemplo, balanceador de carga, modelador de tráfego e, em geral, os de uma caixa intermediária).
De acordo com Diego et al. (2014), o SDN pode ser definido como uma arquitetura de redes apoiada nos quatros pilares a seguir [3]:
1) Os planos de controle e dados são dissociados. A funcionalidade de controle é removida dos dispositivos de rede que se tornarão simples elementos de encaminhamento (pacote);
2) As decisões de encaminhamento são baseadas no fluxo de dados, e não no seu destino. Um fluxo é amplamente definido por um conjunto de valores de campos de um pacote que age como um critério de correspondência (filtro) e um conjunto de ações (instruções). No contexto SDN / OpenFlow, um fluxo é uma sequência de pacotes entre uma origem e um destino. Todos os pacotes de um fluxo recebem políticas de serviço idênticas nos dispositivos de encaminhamento. A abstração de fluxo permite unificar o comportamento de diferentes tipos de dispositivos de rede, incluindo roteadores, switchs, firewalls e middleboxes. A programação do fluxo permite flexibilidade sem precedentes, limitada apenas aos recursos das tabelas de fluxo implementadas;
3) A lógica de controle é movida para uma entidade externa, o chamado SDN Controller ou Network Operating System (NOS). O NOS é uma plataforma de software que roda em servidores com a utilização de virtualização e fornece os recursos e abstrações essenciais para facilitar a programação dos dispositivos de encaminhamento com base em uma visão de rede abstrata e logicamente centralizada. Portanto, seu objetivo é semelhante ao de um sistema operacional tradicional;
4) A rede é programável através da utilização de aplicações de software que ficam em execução no NOS e interagem com os dispositivos do plano de dados. Isso é uma característica fundamental do SDN, considerada como seu principal valor proposição.
Características
Informe sobre as particularidades, aspectos e atributos desta idéia.
Estudo Dirigido
SDN Controller
Uma arquitetura SDN pode ser descrita como uma composição de diferentes camadas, como mostra Figura 1 (b). Cada camada tem suas próprias funções específicas. Embora alguns deles estejam sempre presentes em uma implantação SDN, como a south API, NOS, north API e aplicativos de rede, outros podem estar presentes apenas em implantações específicas, como hypervisors ou virtualização baseada em linguagens [3]. Esta pesquisa é focada em SDN Controller ou NOS, e, portanto, será feito uma descrição detalhada apenas da camada referente a este tema.
Camada 4: Network Operating Systems (NOS) / Controlador
A SDN promete facilitar o gerenciamento da rede e aliviar o ônus da solução de problemas de rede por meio do controle logicamente centralizado oferecido pela network operating system (NOS). Como nos sistemas operacionais tradicionais, o objetivo do NOS é fornecer abstrações, serviços essenciais e interfaces de programação de aplicativos (APIs) para desenvolvedores. Além disso, o NOS também pode fornecer funcionalidades genéricas como: estado da rede e informações de topologia de rede; descoberta de dispositivos; e a distribuição da configuração de rede. Com os NOSs, para definir políticas de rede, um desenvolvedor não precisa mais se preocupar com os detalhes de baixo nível da distribuição de dados entre os elementos de roteamento, por exemplo. É possível que esses sistemas criem um novo ambiente capaz de promover a inovação em um ritmo mais rápido, reduzindo a complexidade inerente à criação de novos protocolos e aplicativos de rede [3].
Um NOS (ou controlador) é um elemento crítico em uma arquitetura SDN, pois é a peça principal de suporte para a lógica de controle (aplicativos) para gerar a configuração de rede com base nas políticas definidas pelo operador de rede. Semelhante a um sistema operacional tradicional, a plataforma de controle abstrai os detalhes de níveis inferiores de conexão e interação com dispositivos de encaminhamento (i.e., de materializar as políticas de rede) [3].
Arquitetura e design
Do ponto de vista da arquitetura, um dos pontos mais relevantes é se a plataforma do SDN Controller é centralizada ou distribuída. Esse é um dos principais eixos de design das plataformas de controle SDN, assim, este aspecto será discutido a seguir.
Centralizado vs. Distribuído
Um controlador centralizado é uma entidade única que gerencia todos os dispositivos de encaminhamento da rede. Naturalmente, representa um único ponto de falha e pode ter limitações de escala. Um único controlador pode não ser suficiente para gerenciar uma rede com um grande número de elementos do plano de dados. Esses controladores são baseados em projetos com multithreaded para explorar o paralelismo das arquiteturas de computadores com vários núcleos. Como exemplo, o Beacon pode lidar com mais de 12 milhões de fluxos por segundo usando nós de computação grandes de provedores de nuvem, como a Amazon [3].
Ao contrário do design centralizado, um sistema operacional de rede distribuído pode ser ampliado, potencialmente, para atender aos requisitos de qualquer ambiente, de pequenas a grandes redes. Um controlador distribuído pode ser um cluster centralizado de nós ou um conjunto de elementos fisicamente distribuídos. Embora a primeira alternativa possa oferecer alta taxa de transferência para data centers muito densos, a última pode ser mais resistente a diferentes tipos de falhas lógicas e físicas. Um provedor de nuvem que abranja vários data centers interconectados por uma rede de área ampla pode exigir uma abordagem híbrida, com agrupamentos de controladores dentro de cada data center e nós de controlador distribuído entre os diferentes sites [3].
A maioria dos controladores distribuídos oferece semântica de consistência fraca, o que significa que as atualizações de dados em nós distintos acabarão sendo atualizadas em todos os nós do controlador. Isso implica que existe um período de tempo em que nós distintos podem ler valores diferentes (valor antigo ou novo valor) para uma mesma propriedade. A consistência forte, por outro lado, garante que todos os nós do controlador leiam o valor da propriedade mais atualizado após uma operação de gravação. Apesar de seu impacto no desempenho do sistema, uma forte consistência oferece uma interface mais simples para os desenvolvedores de aplicativos. Até o momento, apenas Onix, ONOS e SMaRtLight fornecem esse modelo de consistência de dados [3].
Outra propriedade comum dos controladores distribuídos é a tolerância a falhas. Quando um nó falha, outro nó vizinho deve assumir as funções e os dispositivos do nó com falha. Até o momento, apesar de alguns controladores tolerarem falhas de travamento, eles não toleram falhas arbitrárias, o que significa que qualquer nó com um comportamento anormal não será substituído por um potencialmente bem comportado [3].
Dissecando as plataformas de SDN Controller
Para fornecer uma melhor visão geral da arquitetura e entender o design de um sistema operacional de rede, a Tabela I resume algumas das propriedades de arquitetura e design mais relevantes dos controladores SDN e plataformas de controle. A tabela foca nos elementos, serviços e interfaces de uma seleção de controladores e plataformas de controle que se encontram bem documentados. Cada linha da tabela representa um componente considerado importante em uma plataforma de controle modular e escalável [3].
COLOCAR TABELA I
Referências:
[1] OSM scope, functionality, operation and integration guidelines. 2019.
[2] Disponível em <https://futurenetworks.ieee.org/tech-focus/may-2018/converged-fixed-mobile-access>. Acessado dia 09/09/2019.
[3] Software-Defined Networking: A Comprehensive Survey.
[4] OpenDaylight: Towards a Model-Driven SDN Controller Architecture
Fase II - Ensino
Conteúdo
Desenvolva um conteúdo que possa transmitir o conhecimento adquirido para outros Crie um material (Wiki, PDF, PPT, ...) que possa ser armazenado e facilmente atualizável
Apresentação
Apresente ao grupo (reunião, EAD, Blog, ...) Publique aqui
Metodologia
Descrevas as metodologias usadas. Alguns exemplos:
Estratégia de Job Rotation Estudos básicos para conhecimento do potencial Estudos básicos para entendimento sobre o problema Estudos para dar base aos pesquisadores Benchmarking com empresas estrangeiras Aceleradoras de empresas Adoção de novas tecnologias Utilização da proposta de soluções Open-source Priorização no desenvolvimento interno Foco na não dependência de fornecedores Prática de formação dos talentos necessários
Fase III - Exemplo de Caso de Negócio
Benefícios para quem for oferecer esta solução
Descrever em tópicos os benefícios que uma pessoa ou uma empresa podem obter: ganhos, receitas, novos negócios, novos produtos, novas parcerias
Benefícios para o usuário
Descrever em tópicos os benefícios para os usuários desta solução.
Pode se inspirar no Canvas.
Direcionadores chave para esta iniciativa
Descrever em tópicos o que esta iniciativa pode proporcionar
Possíveis modelos de negócios
Descrever em tópicos os possíveis modelos de negócios
Business Case
Descrever um exemplo de negócio que permita avaliar a solução comercialmente
Alinhamento com Lei do Bem
- Projeto possui algum elemento tecnologicamente novo ou inovador?
Elemento tecnologicamente novo ou inovador pode ser entendimento como o avanço tecnológico pretendido pelo projeto, ou a hipótese que está sendo testada
- Projeto possui barreira ou desafio tecnológico superável?
Barreira ou desafio tecnológico superável pode ser entendido como aquilo que dificulta o atingimento do avanço tecnológico pretendido, ou dificulta a comprovação da hipótese
- Projeto utiliza metodologia/método para superação da barreira ou desafio tecnológico?
Metodologia/método para superação da barreira ou desafio tecnológico pode ser entendido como aqueles atividades que foram realizadas para superação da barreira ou do desafio tecnológico existente no projeto
- Projeto é desenvolvido em parceira com alguma instituição acadêmica, ICT ou startup?
Se sim, o desenvolvimento tecnológico é executado por associado ou por alguma empresa terceira? qual o nome da empresa? Anexar cópia do contrato
Fase IV - Protótipo orientado ao Negócio
Escopo
Explique o escopo deste protótipo
Product Backlog
Descreva os requisitos deste projeto
Limitações
Informe sobre as limitações técnicas, comerciais, operacionais, recursos, etc.
PoC
Desenvolva um PoC (Proof of Concept)
Detalhamento Técnico
Descreva especificamente os aspectos técnicos desta pesquisa
Cronograma Macro
Histórico