




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
PORQUE UTILIZAR REDES BASEADAS EM SOFTWARE
Tipologia: Notas de estudo
1 / 106
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Orientador: Prof.º Gustavo Dias.
Rio de Janeiro 2013
Trabalho de conclusão de Curso Apresentado ao Centro Universitário Carioca, como requisito para conclusão dos cursos de Análise e Desenvolvimento de Sistemas e Ciência da Computação.
Aprovado em 2013
Banca Examinadora
Prof.º Gustavo Dias – Orientador Centro Universitário Carioca
Prof.ª Sueni Arouca– Coordenadora Centro Universitário Carioca
Prof.º Centro Universitário Carioca
Trabalho de conclusão de Curso Apresentado ao Centro Universitário Carioca, como requisito para conclusão dos cursos de Análise e Desenvolvimento de Sistemas e Ciência da Computação.
Dedicamos este trabalho ao nosso orientador Prof.º Gustavo Dias, cujo apoio, incentivo e dedicação tornou real a conclusão do mesmo.
Resumo Atualmente, as redes de computadores fazem parte da rotina frequente de bilhões de pessoas, devido à internet. Embora, todo o sucesso fez com que as redes de computadores se tornem a cada dia, mais inflexíveis e incapazes de atender as necessidades de novas tecnologias. Este problema trouxe um desafio para os pesquisadores da área, pois novas experiências não podem ser feitas em ambientes de redes reais, devido ao crescimento exponencial das redes, o que levaram aos pesquisadores realizarem testes em ambientes simulados, que assim levou a criação de um novo paradigma, as redes definidas por software (Software Defined Networks – SDN). As redes definidas por software e a arquitetura Openflow oferecem uma implementação de uma rede programável que pode ser desenvolvida de forma sucessiva, oferecendo assim a realização de testes sem interferir no funcionamento da rede. Este trabalho descreve os problemas existentes na arquitetura de redes atual e apresenta o paradigma do SDN, através da arquitetura Openflow que permite a criação de aplicações para redes SDN. Também apresenta de maneira prática a montagem do Mininet (ambiente virtual de redes SDN) e o desenvolvimento de componentes baseados no POX (controlador Openflow).
Palavras – chave: Internet, Redes Definidas por Software (SDN), Openflow, Mininet, POX.
Abstract Today, computer networks are part of the common routine of billions of people, due to the internet. Although, every success has made computer networks become increasingly more inflexible and unable to meet the needs of new technologies. This problem has brought a challenge for researchers because new experiences can not be made in real network environments due to the exponential growth of networks, which led the researchers to conduct tests in simulated environments, which thus led to the creation of a new paradigm, software defined networks (software Defined networks - SDN). The software-defined networking and Openflow architecture provide an implementation of a programmable network that can be developed successively, thus offering the tests without interfering with the operation of the network. This paper describes the problems in current network architecture and the paradigm of SDN, Openflow through architecture that allows the creation of applications for SDN networks. It also presents a practical way to mount Mininet (virtual environment network SDN) and the development of components based on POX (Openflow controller).
Keyword: Internet, Software-Defined Networking (SDN), Openflow Mininet, POX.
e OFP+ICMP Figura 29 - Mensagens no controlador POX no primeiro cenário Figura 30 - Comando pingall no CLI Mininet Com primeiro cenário Figura 31 - Mensagens capturadas pelo Wireshark ao comando pingall no primeiro cenário Figura 32 - Mensagens capturas pelo Wireshark ao comando iperf no primeiro cenário Figura 33 - Comando iperf no CLI Mininet no primeiro cenário Figura 34 - Parando a captura de pacotes no Wireshark Figura 35 - Iniciando a captura de pacotes no WireShark Figura 36 - Inicializando o Segundo cenário Mininet Figura 37 - Inicialização do Componente Switch no POX Figura 38 - Conexão dos Comutadores ao controlador Figura 39 - Janelas dos terminais X Figura 40 - Tabela de fluxo do Switch s3 no Xterm Figura 41 - Informações da tabela de fluxo no switch s Figura 42 - Mensagens de Log do segundo cenário no componente Switch Figura 43 - Captura de pacotes no Wireshark no segundo cenário
14
Há algum tempo observa-se o surgimento da necessidade de maior abertura e flexibilidade dos equipamentos de rede, especialmente com o propósito de pesquisa e inovação. Os roteadores atuais implementam uma arquitetura composta por uma camada de software fechada, que é executada em um hardware proprietário. Esse modelo resulta em soluções de alto custo, dificultando a inserção de novas funcionalidades e inviabilizando a experimentação de novas ideias. Com isso, diversos pesquisadores afirmam que a arquitetura de redes de computadores em geral e a rede mundial (a Internet) atingiram um nível de amadurecimento que as tornaram pouco flexíveis. Para tentar contornar esse problema, a comunidade de pesquisa em redes de computadores tem investido em iniciativas que levem à implantação de redes com maiores recursos de programação, de forma que novas tecnologias possam ser inseridas na rede de forma gradual. A iniciativa mais bem sucedida nesse sentido foi à definição da interface e do protocolo Openflow [McKeown et al. 2008], que consiste em um protocolo no qual permite controlar os fluxos, estabelecer rotas e definir qual o processamento que o pacote deve receber. Isto é possível, pois o Openflow controla remotamente as tabelas de encaminhamento dos switches de rede. Ele se difere dos roteadores e switches, ao invés de concentrar em um único dispositivo o encaminhamento e as rotas a serem definidas, ele divide estas duas tarefas. As funções de encaminhamento ficam no switch, enquanto as decisões de roteamento estão no controlador e ambas se comunicam através do protocolo Openflow. Essa estrutura permite que a rede seja controlada de forma extensível através de aplicações, expressas em software. A esse novo paradigma, deu-se o nome de Software Defined Networks (SDN) ou Redes Definidas por Software. Do ponto de vista histórico, SDNs têm sua origem na definição da arquitetura de redes Ethernet, que definia uma forma de se implementar políticas de controle de acesso de forma distribuída, a partir de um mecanismo de supervisão centralizado. Esse modelo foi posteriormente formalizado por alguns dos autores na forma da arquitetura Openflow.
15
As redes de computadores juntamente com seu crescimento gigantesco, ajudaram a mostrar o trabalho dos pesquisadores da área. Mas a chance de se tornar um sucesso total cada vez ficou mais distante devido às dificuldades encontradas com as limitações da arquitetura atual das redes. E uma possível mudança, não bem planejada, poderia ocasionar um grande problema, visto que, a dependência das conexões se tornou indispensável. O grande propósito do surgimento das redes definidas por software e o protocolo Openflow, surgiu para viabilizar os testes concorrentes de novas tecnologias de redes sem impactar as estruturas atuais. Resolvendo problemas de inflexibilidade, dando suporte a futuras aplicações e novas tecnologias que dependem muito da escalabilidade, gerenciamento, mobilidade e segurança através de uma estrutura de rede totalmente programável.
Sobre os objetivos gerais que serão apresentados neste trabalho, está: O paradigma SDN, suas características, capacidades e arquitetura; O protocolo de comunicação e controle Openflow, suas características, seu funcionamento dentro de um comutador e em um controlador; O controlador SDN POX baseado em Openflow, detalhes de sua estrutura, funcionamentos e flexibilidade para novas implementações; O Mininet, ambiente virtual de teste para redes SDN, suas características e grande parte de suas funcionalidades. Sobre os objetivos específicos, está: Apresentar as possibilidades que uma arquitetura de rede SDN com Openflow dispõe; Apresentar o controlador de rede SDN, o POX especificamente, evidenciando a flexibilidade de novas implementações e soluções para a área de redes com a possibilidade de ser testado em um ambiente virtualizado de rede, como o Mininet. Testar e desenvolver componentes baseado na estrutura do POX para exemplificar o uso da arquitetura e do conceito de SDN com Openflow.
17
percussores das memórias que hoje usamos nos computadores. A imagem abaixo mostra o código do programa COBOL em cartão perfurado.
Figura 1: Cartão Perfurado
Este tipo de transporte de informações era algo totalmente ineficiente, visto que estes cartões nada mais eram do que bits escritos em papel cartolina, e como a quantidade escrita neles era muito pequena (algo em torno de 80 caracteres por cartão) transportar uma grande quantidade de informações era algo muito difícil e demorado. No período entre 1969 a 1972 foi criada a ARPANET, pela agencia americana ARPA. Sua sigla significa Agencia de Pesquisas em Projetos Avançados. Seu principal objetivo era interligar as bases militares aos departamentos de pesquisa do governo americano. Inicialmente, foi possível interligar 4 nós que encontravam-se no Stanford Research Institute, na Universidade da Califórnia, na Universidade de Santa Barbara e na Universidade de Utah, nos EUA, a uma incrível velocidade de 50 kbps para aquela época. Foi criada então a primeira rede de computadores, mesmo que com o propósito de testes, com ela não era mais necessário os cartões perfurados, sendo possível a transmissão e troca de informações sem toda a limitação que era anteriormente imposta. A rede cresceu de forma tão rápida que em 1973 já haviam 30 instituições interligadas, dentre elas universidades, empresas e instituições militares. Neste modelo, cada nó era interligado a pelo menos dois outros nós, fazendo com que a rede fosse muito confiável, pois enquanto houvesse ao menos um caminho, os pacotes conseguiam chegar ao seu destino. A seguir, temos o diagrama da ARPANET em 1973.
18
Figura 2: Diagrama da ARPANET em 1973
Com o surgimento do protocolo TCP/IP em 1974, foi possível o trafego livre de informações e a possibilidade de ser desenvolvido o e-mail, o Telnet e o FTP (Protocolo de Transferência de Arquivos), o que tornou possível diversos usuários trocarem informações e poderem realizar acesso remoto e compartilhar arquivos. A imagem abaixo demonstra a distribuição da rede ARPANET em 1977.
Figura 3: Distribuição da Rede ARPANET em 1977
Em 1980, com o grande crescimento da rede, passou a ser utilizado nomes para os domínios na rede, surge então o conceito de DNS (Domain Name System), com ele foi possível manter e distribuir listas de todos os hosts conectados.
20
crescimento da Internet são as causas do seu engessamento e restrição do seu crescimento. Nesse sentido a estrutura das redes de computadores vem se modificando aos poucos para atender seus requisitos inicialmente propostos. O serviço de nome de domínios (DNS) é uma dessas modificações. O DNS é um sistema de gerenciamento de nomes hierárquico e distribuído operando para resolver nomes de domínios em endereços de rede IP. Outra dessas modificações foi a introdução do CIDR (Classless Inter-Domain Routing) que permite as organizações obterem uma faixa identificadora de rede de tamanho variável. Além dessas modificações podemos destacar a criação de sub-redes, de sistemas autônomos e modificações no protocolo TCP (Transmission Control Protocol). O protocolo IP também sofreu modificações, entre elas podemos destacar o IP multicasting, que permite que um host envie pacotes de dados para um grupo de hosts; o IPv6, que aumenta o número de endereços disponíveis, simplifica o cabeçalho antigo, permitir a identificação de fluxos entre outras coisas; O NAT (Networking Address Translation), que faz com que um conjunto de hosts passe a ser endereçado por um único endereço de IP; e muitas outras modificações. Todas essas modificações foram necessárias para atender as demandas que vinham crescendo para as redes de computadores. As “adaptações” na arquitetura atual da Internet demonstram que seu projeto inicial não atende mais aos requisitos atuais, e também não podemos ajustá-los para as necessidades futuras. Nesse sentido a arquitetura atual das redes de computadores apresenta inúmeros problemas ainda não solucionados tais como: o problema de endereçamento IP, a mobilidade da rede, a segurança, o gerenciamento, a escalabilidade, além da disponibilidade de serviço e sua qualidade.
Para facilitar a explicação e o entendimento do que são os Protocolos de Rede, podemos usar um exemplo clássico: pensemos num francês que não fala português e um brasileiro que não fala francês. Ambos podem se comunicar usando uma língua em comum, digamos o inglês, que seria algo como um protocolo. Mesmo que ambos não falassem nenhuma língua em comum poderiam usar gestos universais.
21
Nas redes de computadores, os protocolos são justamente estes sinais e línguas universais que permitem os dispositivos (Computadores, notebooks, etc.) se comunicarem através da rede, ou seja, é uma convenção que controla e possibilita uma conexão, comunicação e transferência de dados entre dois sistemas operacionais. Os protocolos podem ser implementados pelo hardware, software ou por uma combinação dos dois. Os protocolos são classificados mediante as camadas do Modelo OSI. Abaixo, segue uma Figura explicando a cada camada.
Figura 5: Camadas do Modelo OSI
Comutador ou Switch é um dispositivo utilizado em redes de computadores para reencaminhar quadros (frames) entre os diversos nós. Possuem portas, assim como os concentradores (hubs) a principal diferença é, o comutador segmenta a rede internamente, sendo que a cada porta corresponde um domínio de colisão diferente, isto é, não haverá colisões entre pacotes de segmentos diferentes. Outra importante diferença está ligada à gestão da rede, com um switch gerenciável podemos criar VLANS, deste modo a rede gerida será dividida em menores segmentos,