Baixe o app para aproveitar ainda mais
Prévia do material em texto
Redes De�nidas por Software Aula 03: Introdução a Redes De�nidas por Software (SDN) e Arquitetura SDN Apresentação Nesta aula, veremos uma Rede De�nida por Software, também referenciada como SDN (Sofwtare De�ned Network), além de seus componentes e, em principal, o paradigma SDN que está relacionado ao plano de controle e plano de dados. Objetivos Distinguir encaminhamento e roteamento; Identi�car as vantagens de se ter um plano de controle separado de um plano de dados; Ilustrar como funciona o encaminhamento em SDNs. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Fonte: Shutterstock Premissa Na Aula 1, apresentamos o paradigma de Redes De�nidas por Software. Aqui, explicaremos o funcionamento de uma SDN. Antes, porém, devemos diferenciar bem alguns termos e conceitos para facilitar o entendimento. Assim sendo, faremos uma breve revisão para reforçar aspectos contidos na Camada de Rede (do modelo de camadas OSI – Open Systems Interconnection). Paradigma SDN A Camada de Rede, segundo o modelo OSI, é responsável pela comunicação entre hospedeiros (host-to-host), sendo uma das camadas mais complexas da pilha de protocolos. Ela pode ser decomposta em duas partes integrantes: o plano de dados e o plano de controle (ou plano de gerenciamento). O grande paradigma (e a diferença primordial) de uma Rede De�nida por Software é justamente onde estão alocados esses planos. Na SDN o plano de dados é separado do plano de controle, diferentemente do que ocorre na Rede de Computadores tradicional, em que cada dispositivo (equipamento de rede) possui, dentro de si, tais planos. Esse tipo de quebra entre os planos é chamado de quebra da integração vertical. Plano de dados e plano de controle. Fonte: Baseada em Lins (2015). Na SDN, o plano de controle é centralizado (e realizado pelo controlador), ao passo que o plano de dados permanece nos dispositivos. Como ressalva, podemos ter também um plano de controle descentralizado, ou seja, mais de um controlador realizando as ações de controle. No entanto, o que desejamos enfatizar agora é que na SDN os planos de dados e os de controle estão em dispositivos diferentes, não importando a quantidade de elementos que desempenham a atividade. Como podemos ver na �gura acima, as funções de plano de controle e plano de dados estão sendo realizadas pelo switch, enquanto na arquitetura SDN (à direita) a função de controle foi deslocada dos switches para outro elemento centralizador. Este, embora não esteja indicado na �gura, é o controlador da rede SDN, ou seja, uma espécie de “cérebro” da rede e elemento principal da arquitetura. Perceba a diferença entre as arquiteturas e onde estão ou atuam o plano de controle e o plano de dados. Mas o que signi�ca termos o plano de controle separado do plano de dados? Qual é a vantagem disso para a rede ou o desenvolvedor de aplicativos? Uma das vantagens dessa separação é que diferentes equipamentos, de diferentes fabricantes, podem operar sob um mesmo controle, como pode ser visto na �gura ao lado. Diferentes fabricantes sob o mesmo controlador. Fonte: Couto (2018). Essa quebra de integração vertical possibilita que diferentes equipamentos de fabricantes distintos operem sob o mesmo controlador. E o que é necessário para que o controlador acesse os dispositivos? Ele precisa de uma API (Applications Programming Interface) para o controlador se comunicar com os dispositivos. Essa API deve ser aberta, para que possa ser implementada por diferentes fabricantes. A Southbound API mais comum, em SDN, é o OpenFlow, que será mais bem-apresentado em outra aula. Diferentes Fabricantes API. Fonte: Couto (2018). Southbound, APIs e OpenFlow Clique no botão acima. Southbound, APIs e OpenFlow Antes de prosseguirmos, é preciso esclarecer o que são Southbound, APIs e OpenFlow. Southbound (em uma tradução literal, “em direção ao sul”, em analogia a Northbound, “em direção ao norte”) é algo que atua no sentido para o sul, do controlador para a infraestrutura, do controlador para os dispositivos. Ou seja, Southbound e Northboud são as partes da arquitetura que tratam da comunicação entre controlador e infraestrutura e controlador e aplicações, respectivamente. Na forma de atuação, temos o signi�cado de API (do inglês, Application Programming Interface; em português, Interface de Programação de Aplicações). Podemos ver a API como uma forma de “ponte” capaz de conectar sistemas diferentes, possibilitando benefícios na facilidade de troca de informações. As APIs proporcionam a integração entre sistemas que podem possuir linguagem de programação totalmente distinta, de maneira ágil e segura. Por exemplo, Google Maps e uma página de hotéis em que a localização aparece no mapa. O Google Maps possui uma API que facilita a integração do seu serviço com algum aplicativo. Para isso, basta seguir as orientações de como a API recebe e devolve solicitações, a �m de que seu funcionamento seja implementado corretamente na aplicação desenvolvida. Podemos também dizer Southbond API ou Nortbound API, especi�cando diretamente a API em questão. A Southbound API facilita o controle e�ciente da rede e permite que o controlador SDN faça dinamicamente alterações, em tempo real, de acordo com as demandas e necessidades. O OpenFlow, desenvolvido pela Open Networking Foundation (ONF), foi a primeira e provavelmente mais conhecida southbound interface (HU et al., 2014). Além do OpenFlow, o Cisco OpFlex (a resposta da empresa ao OpenFlow) também é uma southbound API bem-conhecida (HU et al., 2014). Da mesma forma que temos a Southboubd API, temos a Northbound API, que está relacionada à interação entre controlador e aplicações, conforme ilustra a �gura abaixo: Southbound API e Northbound API. Fonte: Couto (2018). Assim, as aplicações de rede programam a rede por meio de chamadas ao controlador, utilizando as Northbound APIs. Por exemplo, funções de controle da rede podem ser alteradas simplesmente escrevendo novas aplicações de rede (COUTO, 2018). Como observação, o software do controlador é também chamado de Sistema Operacional de Rede (NOS; do inglês, Network Operating System). 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. Existem vários controladores disponíveis, como POX, NOX, Beacon e Floodlight, cada um com suas particularidades (LINS, 2015). Em resumo, a Northbound é a interface entre as aplicações e os controladores, a qual oferece visão abstrata da rede e recebe diretamente desta as informações de comportamento e requisitos. A Northbound é implementada de forma aberta, independente de fornecedor e com interoperabilidade. A Southbound é a interface de�nida entre um controlador e a infraestrutura, ou seja, um dispositivo SDN. Por meio de uma linguagem como o Open�ow, a API fornece o controle programático de todas as operações, capacidade de noti�cação, estatísticas de relatórios (LINS, 2015). Assim como a Northbound, a Southbound é implementada de forma aberta, independente de fornecedor e com interoperabilidade. Além disso, redes tradicionais são mais complexas e difíceis de se gerenciarem, pois, devido à sua arquitetura convencional, elas necessitam que os operadores con�gurem separadamente cada dispositivo de rede. No entanto, essa tarefa torna-se difícil e suscetível a erros, porque os comandos de con�gurações nos equipamentos são de baixo nível e especí�cos para cada fabricante. Por exemplo, não é possível con�gurar da mesma forma um equipamento Cisco e um equipamento Juniper. Outra característica é que con�gurações realizadas nos equipamentos não se adaptam conforme as condições da rede. Redes tradicionais não se adaptam facilmente a mudanças de carga e falhas na rede. Isso acontece devido à di�culdade de realizar engenharia de tráfego, no �uxo de mensagens recebido.Além disso, mudanças no plano de controle são difíceis de se implementarem, pois, como as redes são integradas verticalmente, acaba sendo necessário mudar o software de cada dispositivo de rede. Caso se deseje implementar ou incluir, por exemplo, um novo protocolo de roteamento diferente, devido ao sistema operacional do dispositivo em questão, essa tarefa acaba sendo di�cultada. Ideias Básicas da SDN Em resumo, seguem as ideias básicas de termos uma SDN, conforme Couto (2018): Quebra da integração vertical Separação do plano de dados e de controle Diferentes equipamentos de diferentes fabricantes podem operar sob um mesmo controle Como característica geral, nas redes tradicionais temos muitos tipos de dispositivos de rede que coexistem: Diferentes dispositivos e serviços. Fonte: Couto (2018). Na arquitetura tradicional, novos serviços são adicionados por meio de middleboxes. Um middlebox é um dispositivo de rede que transforma, inspeciona, �ltra ou manipula o tráfego para outros �ns que não o encaminhamento de pacotes. Exemplos comuns de middleboxes incluem �rewalls, que �ltram tráfego indesejado ou mal-intencionado, e tradutores de endereço de rede, que modi�cam os endereços de origem e destino dos pacotes. Middleboxes como balanceadores de carga são elementos fundamentais nos atuais sistemas de grande escala na Internet. Tal como o nome indica, os middleboxes são componentes intermédios, que tipicamente fazem a ligação entre a Internet e um serviço que é prestado. A disponibilidade desses serviços depende diretamente da disponibilidade e da con�abilidade dos middleboxes que processam o tráfego (CAMPOS, 2013). No caso de SDN, temos uma uni�cação de dispositivos de rede. Dessa forma, os dispositivos podem ser idênticos, mas seus comportamentos podem ser de�nidos pela aplicação. Uma nova aplicação na rede não necessita de mudança no dispositivo. Com base nas aplicações, o controlador instala regras de �uxo nos dispositivos de encaminhamento, de forma que determinada função seja realizada. Aplicações de rede. Fonte: Couto (2018). Como vantagens da SDN, Couto (2018) cita: Logo, Facilidade de configuração da rede Plano de controle central pode ser con�gurado de acordo com determinada condição da rede; Ex.: a con�guração se adapta à carga da rede; Linguagem de mais alto nível para con�guração; Con�guração menos suscetível a erros; Todas as aplicações podem utilizar a mesma informação provida pelo plano de controle; Integração de diferentes aplicações pode ser mais fácil. Ex.: balanceamento de carga e roteamento. Incentivo à inovação Facilidade de reprogramar o plano de controle; O Controlador possui uma visão global da rede; Facilidade no desenvolvimento de aplicações; Ex.: a aplicação conhece toda a topologia da rede e a manipula com interfaces de alto nível. Plano de Controle e Plano de Dados Anteriormente, vimos as vantagens de se ter o plano de dados e controle separados. Agora voltaremos nossa atenção a cada plano em particular. Para explicarmos o funcionamento do que cada plano faz, e o impacto causado por eles estarem separados, devemos voltar um pouco e relembrar uma distinção importante entre as funções de repasse (ou encaminhamento) e roteamento da Camada de Rede. Segundo a de�nição de Kurose: "Repasse envolve a transferência de um pacote de um enlace de entrada para um enlace de saída dentro de um único roteador. Roteamento envolve todos os roteadores de uma rede, cujas interações coletivas por meio do protocolo de roteamento determinam os caminhos que os pacotes percorrem em suas viagens do nó de origem ao de destino." - KUROSE, 2017. Clique nos botões para ver as informações. Quando um pacote (um dado) chega a uma porta de um roteador, o roteador deve movê-lo para uma porta de saída apropriada. Por exemplo, na �gura abaixo, ao chegar um pacote (mensagem), o dispositivo extrai a informação relacionada ao endereço de destino, no caso (0111), consulta a tabela de encaminhamento e, a partir disso, veri�ca que para esse destino a porta de saída deve ser a 2. O encaminhamento é uma função implementada no plano de dados. Encaminhamento Relação entre roteamento e encaminhamento. Fonte: Eisencraft. A camada de Rede deve determinar a rota ou o caminho que será tomado pelos pacotes ao �uírem de um emissor para um receptor. Os algoritmos que calculam este caminho são chamados de algoritmos de roteamento. O roteamento é implementado no plano de controle da Camada de Rede. Roteamento Roteamento e Encaminhamento Clique no botão acima. Roteamento e Encaminhamento Os termos roteamento e encaminhamento muitas vezes são tratados por diversos autores como similares. No entanto, apesar de serem próximos, devemos ter em mente sua diferença. Para deixarmos mais clara essa distinção, podemos recorrer à seguinte analogia apresentada por Kurose (2017): consideramos um motorista que está preparando uma viagem entre duas cidades, digamos cidade A e cidade B, na qual entre ambas temos diversas ruas e cruzamentos. Podemos imaginar que encaminhamento é o processo de, ao estar em um cruzamento, o motorista do carro deve determinar por qual rua ele deve deixar este cruzamento, enquanto roteamento é o procedimento de planejamento da viagem desde A até B. O roteamento pode ser análogo a uma consulta prévia do motorista a um mapa, e a seleção de uma rota dentre as muitas possíveis, antes de iniciar a viagem. Claramente o encaminhamento depende do roteamento, pois, de acordo com a rota estabelecida, ou seja, o roteamento, o motorista seleciona a rua (direita, esquerda ou em frente) apropriada ao deixar um cruzamento. Nessa analogia, as ruas podem ser vistas como possíveis portas do roteador, e o encaminhamento deve estar de acordo com o caminho já estipulado (rota). O elemento-chave é como o roteador sabe a qual porta ele deve encaminhar um pacote quando este chega ao equipamento. Para isso, o roteador consulta a tabela de encaminhamento. Mais especi�camente o roteador examina um dos campos do cabeçalho do pacote – nesse caso, o endereço de destino desse pacote, e esse valor é um índice na tabela de encaminhamento. Por exemplo, examinamos o pacote e temos o campo do cabeçalho para endereço de destino o valor 0111. Esse campo terá uma linha equivalente na tabela de encaminhamento relacionando este endereço a uma porta de saída do equipamento. Outra diferença que temos entre roteamento e encaminhamento é a escala de tempo em que cada uma ocorre. O roteamento leva muito mais tempo, na ordem de segundos, sendo frequentemente implementado via software. Já o encaminhamento é bem mais rápido que o roteamento, na ordem de nanossegundos, sendo tipicamente implementado em hardware. Uma questão crucial é como que as tabelas de encaminhamento de um roteador são con�guradas; isso expõe uma importante interação entre o encaminhamento (no plano de dados) e o roteamento (no plano de controle). Conforme a �gura a seguir, o algoritmo de roteamento determina o conteúdo das tabelas de encaminhamento dos roteadores. Nesse exemplo, um algoritmo de roteamento é executado em cada roteador, e as funções de encaminhamento e roteamento estão contidas em um roteador. O algoritmo de roteamento de um roteador se comunica com o algoritmo de roteamento de outro roteador para computar os valores de sua tabela de encaminhamento. As formas com que essa comunicação ocorre, ou qual o conteúdo das mensagens trocadas entre os roteadores, depende do tipo de algoritmo de roteamento utilizado. A abordagem para implementar a funcionalidade de roteamento com cada roteador tendo um componente de roteamento que se comunica com o componente de roteamento de outros roteadores, tem sido a abordagem tradicional adotada pelos fabricantes em seus produtos, pelo menos até recentemente. A �gura a seguir, mostra uma abordagem alternativa na qual um controlador remoto �sicamente separado dos roteadores calcula e distribui as tabelas de encaminhamentoa serem usadas por cada um dos roteadores. Observe que os componentes do plano de dados em ambas as �guras são idênticos. Algoritmo de roteamento e valores na tabela de encaminhamento. Fonte: Kurose (2017). Na �gura acima, no entanto, a funcionalidade de roteamento do plano de controle é separada �sicamente do roteador. O dispositivo de roteamento realiza somente o encaminhamento, enquanto o controlador (que é remoto) calcula e distribui as tabelas de encaminhamento. O controlador pode ser implementado em um data center remoto com alta con�abilidade e redundância, podendo ser gerenciado pelo ISP ou por terceiros, em que ISP (Internet Server Provider) é uma empresa de telecomunicações responsável por prover acesso à Internet a seus clientes. Controlador determina e distribui valores na tabela de encaminhamento. Fonte: Kurose (2017). Como os roteadores e o controlador remoto podem comunicar-se? Trocando mensagens com tabelas de encaminhamento e outras informações de roteamento? A abordagem de plano de controle está no centro da Rede De�nida por Software, em que a rede é "de�nida por software" porque o controlador é quem calcula as tabelas de encaminhamento e interage com os roteadores, sendo implementado em software. Logo, em SDN o plano de dados é separado do plano de controle, diferentemente da arquitetura de redes tradicional, em que cada dispositivo possui o plano de dados e o plano de controle. Na SDN o plano de controle é remoto, e o plano de dados permanece no dispositivo. O plano de controle é o responsável pelo roteamento dos pacotes, ou seja, por qual rota os pacotes irão seguir, pela montagem da tabela de encaminhamento; já o plano de dados é o responsável pelo encaminhamento de pacotes com base em regras simples, associadas a cada entrada da tabela de encaminhamento do dispositivo. Alguns exemplos de regras serão apresentados a seguir na seção Regras de casamento. Couto (2018) assim resume os principais pontos: Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online O plano de controle e o plano de dados são separados. Dispositivos de rede se tornam meros encaminhadores de pacotes. A lógica de controle é movida do dispositivo de rede para uma entidade externa. Denominada “Controlador SDN” ou “Sistema Operacional A rede é programável através de softwares que executam sobre um NOS. O NOS interage com o plano de dados pela Southbound API. de Rede (NOS – Network Operating System)”. Plataforma de software que executa em servidores comuns e fornece abstrações e recursos para programa a rede, semelhante a um Sistema Operacional de computadores. Principal motivador da SDN. Regras de Casamento Um dos pontos principais do funcionamento de SDNs é sua �exibilidade, a qual está relacionada à forma como suas decisões de encaminhamento operam. Sabemos que a decisão de encaminhamento de um roteador de Internet tem sido tradicionalmente baseada apenas no endereço de destino de um pacote, conforme exempli�cado na Figura 3.7. O roteador consulta o cabeçalho do pacote de destino e, a partir dele, extrai a informação de qual porta deve ser encaminhado o pacote para este prosseguir na rota calculada. Em SDN, as decisões de encaminhamento são baseadas em �uxos, em vez de simplesmente o endereço de destino do pacote. Fluxo é um conjunto de campos de um pacote atuando como critério de classi�cação e um conjunto de ações a ele associadas. Esquema Básico de dispositivo. Fonte: Baseada em Couto (2018). Na infraestrutura de rede SDN, o conjunto de equipamentos de rede são simples elementos de encaminhamento, os quais não tomam decisões autônomas. Suas decisões são programadas pelo controlador e realizadas por meio de tabelas de �uxos (�owtables), que especi�cam o comportamento para cada �uxo. A de�nição de �uxo depende dos campos do pacote. Cada roteador contém uma tabela de �uxo que é computada e distribuída por um controlador de roteamento logicamente centralizado. Encaminhamento SDN. Fonte: Eisencraft. Conforme falamos, �uxo é de�nido pelos campos do cabeçalho, ou seja, é o conjunto de campos de um pacote (que agem como critério de classi�cação) e o conjunto de ações associadas. Regras e ações OpenFlow. Fonte: Eisencraft. Ao receber um �uxo de mensagem, seus campos são analisados, e veri�ca-se a existência de alguma regra de casamento.�uxo de mensagem Por exemplo, bloquear todos os pacotes endereçados à porta 81. Exemplo de regra de Firewall. Fonte: Eisencraft. Este assunto será mais bem-aprofundado em unidades posteriores. Fonte: Shutterstock Conclusão Nesta aula, apresentamos a de�nição de SDN em mais detalhes e revisamos conceitos da Camada de Redes, como roteamento e encaminhamento. Apresentamos as diferenças entre plano de controle e plano de dados, bem como as vantagens de estarem separados na arquitetura SDN. Além disso, exempli�camos como o encaminhamento de �uxos ocorre em SDNs. Atenção! Aqui existe uma videoaula, acesso pelo conteúdo online Atividade 1. O que é a quebra da integração vertical? a) É a separação do plano de dados do plano de controle. b) É a quebra das mensagens, devido aos cabeçalhos, na abstração de camadas. c) É outra denominação da passagem de mensagens pelas camadas. d) É um procedimento interno do OpenFlow. e) Nenhuma das respostas anteriores. 2. Sobre encaminhamento e roteamento, podemos dizer: a) São sinônimos e podem ser usados livremente sem distinção. b) Roteamento é a determinação de rotas a seguir, enquanto encaminhamento é receber um pacote a qual interface de saída este deve seguir. c) Encaminhamento não possui relação com o protocolo de roteamento. d) Encaminhamento determina a rota dos pacotes e influencia no roteamento. e) Nenhuma das respostas anteriores. 3. Como vantagens de termos o plano de controle separado do de dados, podemos citar: a) Equipamentos mais simples, pois há menos funções. b) Menor gasto de tempo, devido a haver menos funções. c) Facilidade de configuração e reprogramação. d) Menor gasto de energia do equipamento. e) Nenhuma das respostas anteriores. 4. Onde a Southbound e Northbound atuam? a) Ambas atuam internamente no controlador. b) A Northbound atua do controlador para os dispositivos de rede, enquanto a Southbound atua do controlador para as aplicações. c) A Southbound atua do controlador para os dispositivos de rede, enquanto a Northbound atua do controlador para as aplicações. d) Quando temos dois controladores, cada uma atua separadamente em um. e) Nenhuma das anteriores. 5. O que são �uxos de mensagens? a) O conjunto de mensagens que chegam somente ao switch. b) Conjunto de campos do cabeçalho do pacote. c) O conjunto de mensagens que chega somente ao controlador. d) O conjunto de mensagens que chega separada dos pacotes. e) Nenhuma das respostas anteriores. 6. Explique como ocorre o encaminhamento de pacotes no OpenFlow. a) Funciona exclusivamente por ordens da aplicação. b) Funciona por ordens exclusivas dos dispositivos. c) Funciona exclusivamente pela análise do endereço de destino. d) Funciona a partir a da análise dos fluxos. e) Nenhuma das respostas anteriores. Notas Referências CAMPOS, R. F. C. de. Balanceador de carga tolerante a faltas bizantinas. 2013. Dissertação (Mestrado em Segurança Informática), Universidade de Lisboa. Faculdade de Ciências. COUTO, R. S. Tópicos Especiais em Redes de Telecomunicações. Notas de aula. Disponível em: //www.lee.uerj.br/~rodrigo/sdnpel. Acesso em: abril 2019. EISENCRAFT, Marcio. Redes de Comunicação: aula 20. Notas de aula. Disponível em: https://edisciplinas.usp.br/plugin�le.php/3509205/mod_resource/content/0/PTC3450 – 201701- Aula20.pdf. Acesso em: abril 2019. HU, F. et al. Network Innovation through OpenFlow and SDN: principles and design. CRC Press, 2014. KREUTZ, D.; RAMOS, F. M. V.; VERÍSSIMO, P.; ROTHENBERG, C. E.; AZODOLMOLKY, S.; UHLIG, S. Software-De�ned Networking: a comprehensive survey. Proceedings of the IEEE, 2015.KUROSE, J.; ROSS, K. Computer Networking: a top down approach. 7th. ed. 2017. LINS, T. Redes De�nidas por Software (Software De�ned Networks) SDN. [Online]. Disponível em: //www.decom.ufop.br/imobilis/redes-de�nidas-por-software-software-de�ned-networks-sdn/. Laboratório Imobilis Computação Móvel. Acesso em: março, 2019. à javascript:void(0); javascript:void(0); javascript:void(0); PINHÃO, G. L. L.; GAMA, L. V.; COSTA, R.E.S. Trabalho da disciplina de Redes de Computadores I – UFRJ (2018.1). [Online]. Disponível em: https://www.gta.ufrj.br/ensino/eel878/redes1-2018-1/trabalhos-vf/sdn/. Acesso em: abril, 2019. WIKIPEDIA – Middleboxes. Disponível em: https://en.wikipedia.org/wiki/Middlebox. Acesso em: abril 2019. Próxima aula Alguns dos controladores utilizados em SDN. Explore mais Assista ao vídeo: SDN basics <https://www.youtube.com/watch?v=28PTAS3HMJo> . OBS.: O vídeo está em língua inglesa. Para facilitar o entendimento, ative a legenda ao acessá-lo. javascript:void(0); javascript:void(0); https://www.youtube.com/watch?v=28PTAS3HMJo
Compartilhar