SDN Introdução Baseado em:

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Redes de computadores I
2.10) Os elementos básicos de uma Rede
Redes de computadores I
Redes de computadores I
Bruno Rafael de Oliveira Rodrigues
Roteamento IP.
Administração e Projeto de Redes
Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores
Roteamento Parte #1 Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores.
MODELO DE REFERÊNCIA OSI
Interação Cliente Servidor
Introdução Redes LAN - abrangência: edifícios e campos.
DNS Introdução.
QoS para Realidade Virtual
ESTRUTURA DE COMUNICAÇÃO DE DADOS
3 – Projeto Lógico da Rede
Visão Geral de Equipamentos de Rede
Software de Rede Willamys Araújo.
Modelo de referência OSI
Introdução ao roteamento e encaminhamento de pacotes
Kraemer CCNA 1 – Roteamento e Sub-redes. Kraemer Roteamento e Sub-redes Introdução Protocolo roteado Visão geral de roteamento Endereçamento de sub-redes.
Roteamento Disciplina de Redes de Computadores II
Rodrigo de Souza Couto Redes de Computadores II
Sistemas Distribuídos
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Redes de Computadores Equipamentos de Redes.
REDES DE COMPUTADORES Prof. Deivson
Equipamentos de Redes Aula 3
O Modelo OSI Guilherme Guimarães.
CCNA 1 – Modelos OSI e TCP/IP
Universidade Federal de São Carlos – Campus Sorocaba
Sistemas Distribuídos
Roteadores Roteadores são pontes que operam na camada de Rede do modelo OSI. Tomando como base o protocolo mais usado hoje em dia, o TCP/IP, o protocolo.
Sistemas Distribuídos
Visão Geral de Equipamentos de Rede
Anderson Guarnier da Silva e Robson Stenico Leopoldino Universidade Metodista de Piracicaba – UNIMEP Faculdade de Ciências Exatas e da Natureza - FACEN.
Introdução aos Protocolos de Roteamento Dinâmico
Equipamentos de Redes Aula 4
FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04 Prof. André Lucio.
Processos.
SDN Introdução Baseado em:
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Módulo 3 Implantação do IPv6.
REDES DE COMPUTADORES CONCEITOS E TÓPICOS RELACIONADOS A REDES DE COMPUTADORES ________________________________________________ Redes – Prof. Roni Márcio.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 RIP versão 1 Protocolos e Conceitos de Roteamento – Capítulo 5.
Gestão SNMP. Planeamento Montagem e Manutenção de Redes e Equipamentos Informáticos 2 SNMP- Simple Network Management Protocol Nos primeiros dias da Arpanet,
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Introdução ao Roteamento e ao Encaminhamento de Pacotes Protocolos.
Redes de computadores.
Redes Avançadas Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
1 Programação Distribuída em Java Aula Na aula de hoje veremos: Introdução Conceito de Rede Protocolos Modelo ISO/OSI Modelo TCP/IP Modelo Cliente/Servidor.
TCP/IP.
Trabalho elaborado por: -Daniel Nº26 -André Nº3. * A camada de rede do modelo OSI é responsável por controlar a operação da rede de um modo geral. As.
Microsoft Students to Business
Transmissão de Dados O Modelo de Referência TCP/IP A Camada de Rede
Frame Relay.
REDES DE COMPUTADORES II
Arquitetura de computadores
Gerência da Informação Na era da INFORMAÇÃO EXTREMA Cerutti – gerência aula 4.
Prof. Arthur Projeto Lógico de ComputadoresArquiteturas Avançadas Projeto Lógico de Computadores Prof. Arthur Arquiteturas Avançadas.
Flexible Traffic Management in Broadband Access Networks using Software Defined Networking Gerenciamento flexível de tráfego em redes de acesso a banda.
Aula: Arquiteturas de redes: modelo de referência OSI 04/12/2010.
Projeto de Rede de Computador Prof.: Rostan Piccoli Salesiano – Fev/2015.
INOVAÇÃO PARA SUPORTAR AS REDES CONVERGENTES Msc Eng ADRIANO FAVARO REDES DEFINIDAS POR SOFTWARE.
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
SDN Introdução às Práticas
SDN Introdução às Práticas
Transcrição da apresentação:

SDN Introdução Baseado em: SDN: Software Defined Networks by Thomas D. Nadeau and Ken Gray Material de treinamento do Prof. Cesar Marcondes (UFSCAR) Nível Aplicação

Motivação - 1 Conceitos motivacionais: Estamos entrando na era da computação elástica: A flexibilidade na operação da computação, armazenamento e recursos de rede . Com a virtualização de SOs, é possível mover ou expandir servidores para data centers em qualquer localização com uma simples operação. As empresas programam o crescimento e adquirem recursos previamente para atender as demandas, todavia, parte do recurso fica em desuso se não houver flexibilização. Nível Aplicação 2

Motivação - 2 Máquinas Virtuais devem ter endereços IPs dedicados aos respectivos SOs, válidos e roteáveis e a flexibilização implica em gerir estes endereços. A utilização de protocolos específicos com a flexibilização também requer que os mesmos protocolos estejam disponíveis em todos os ambientes. Gerência de flexibilização enquanto no interno de apenas um data-center não é crítico, mas quando cresce... Ao mesmo tempo que cresce a computação elástica, o custo da potência computacional estava diminuindo ao ponto de ter milhares de processadores à disposição. Então: Temos hoje mais potência e queremos mais flexibilidade. Nível Aplicação

Motivação - 3 Do ponto de vista da rede: Um dispositivo de rede é constituído por um plano de dados que liga as várias portas de rede e um plano de controle que é o cérebro de um dispositivo (implementa um protocolo). Como foram concebidos os equipamentos de rede, exigem que determinada função seja implementada de forma distribuída: o controle está em cada um dos equipamentos. Roteadores e switches são muito caros principalmente devido aos componentes de controle; Nível Aplicação

Control and Data planes: not a new concept Qualquer roteador ou switch moderno multislot tem seu plano de controle rodando em processador dedicado e o plano de dados executando independente em uma ou mais linhas, cada uma com um processador dedicado. O processador do roteador e as linhas estão conectados sobre uma rede pequena interna de alta velocidade. Nível Aplicação

SDN – Software Defined Networks ou Redes Definidas por Software Motivação - 4 Ideia: A potência de processamento pode ser aproveitada para executar um plano de controle logicamente centralizado e usar hardware de comutação barato: SDN – Software Defined Networks ou Redes Definidas por Software Os propositores de SDN perceberam que os fornecedores de equipamentos de rede não atendiam suas necessidades, particularmente quanto a inovação e desenvolvimento. Se alguém quisesse experimentar um novo protocolo , como o firmware não suportava, fazia-se uma requisição ao fabricante e esperava-se todas as etapas do desenvolvimento (meses, anos…). Nível Aplicação 6

Motivação - 5 ONF – Open Network Foundation – suporta comercialmente os esforços de SDN e é a autoridade de padronização (Criada em 2011). Previsões de crescimento de SDN ao redor do mundo: 1) Instituto IHS: 2) http://www.researchandmarkets.com/research/vk7xrn/software_defined: The total Software Defined Data Center (SDDC) market is expected to grow from $21.78 billion in 2015 to $77.18 billion by 2020, at an estimated Compound Annual Growth Rate (CAGR) of 28.8% from 2015 to 2020. Em quem acreditar? Nível Aplicação 7

Motivação - 6 Alguns engenheiros de Stanford criaram um protocolo – Openflow – que implementou esta ideia. Baseado nesta arquitetura básica, imagina-se o quão rápido e fácil seria projetar um novo protocolo apenas implementando no data center usando hardware em preço de commodities. Ainda melhor, é possível implementar isto em um ambiente de computação elástica em uma máquina virtual. A motivação para SDN e OpenFlow foi a flexibilidade de como programar o dispositivo de rede e não onde está a programação. Nível Aplicação 8

Projeto OpenFlow OpenFlow foi arquitetado para ter diversos dispositivos contendo apenas planos de dados que respondem a comandos enviados para eles de um controlador centralizado que hospeda um único plano de controle para aquela rede; A função de data-path ainda reside no switch, enquanto que as decisões de roteamento de alto nível são movidas para um Controlador, normalmente localizado em um servidor. Os Switches e o Controlador se comunicam através do protocolo OF. Um Controlador adiciona e ou remove entradas da tabela de fluxos em nome da aplicação. Nível Aplicação 9

Como evoluir? Joga fora o que foi feito até hoje ? É mais provável uma abordagem híbrida: pelo qual uma parte das redes sejam operadas por um controlador logicamente centralizado; outras partes seria executadas pelo plano de controle distribuído mais tradicional. Isso implica que esses dois mundos devem interagir uns com os outros. Nível Aplicação 10

IETF no circuito IETF acompanha a discussão e os primeiros rascunhos do IETF estão surgindo. Há envolvimento de empresas (Juniper, Cisco, Level3…) direcionado para desenvolver programação de rede chamada Interface to the Routing System (I2RS). Ideia básica do I2RS: criar um protocolo e componentes para programar a base de informação de roteamento do dispositivo (routing information base - RIB) usando um protocolo rápido para permitir interação em tempo-real da RIB com o gerente que a controla. Enquanto OF centraliza as decisões de encaminhamento, a estratégia do IETF divide a tomada de decisão entre aplicações do usuário, gerência central e protocolos de roteamento tradicionais executados no hw de rede. Nível Aplicação

Definição SDN Software-defined networks (SDN) Uma abordagem arquitetônica que otimiza e simplifica as operações de redes ligando intimamente aplicações e serviços de rede reais ou virtuais. Para este objetivo emprega um ponto de controle central – o controlador SDN – que media e facilita a comunicação entre aplicações que pretendem interagir com os elementos de rede e os elementos de rede que querem transmitir informações a estas aplicações. O controlador expõe e abstrai funções de rede e operações via uma interface programável, bidirecional, moderna e application-friendly. (Derivada da ONF) Nível Aplicação

Plano de Controle No alto nível, o plano de controle estabelece os dados locais a serem utilizados para criar as tabelas de encaminhamento que serão utilizadas pelo plano de dados para encaminhar o tráfego entre portas de entrada e saída de um dispositivo. Routing Information Base (RIB): conjunto de dados utilizado para armazenar a topologia da rede Forwarding Information Base (FIB) : tabela com entradas dos encaminhamentos . A FIB é programada uma vez que a RIB for considerada consistente e estável. Nível Aplicação

Plano de Dados Um datagrama correto é processado no plano de dados realizando buscas na FIB que são programadas antecipadamente pelo plano de controle. A pesquisa de encaminhamento do plano de dados resulta em ações programadas, como por exemplo Encaminhar (ou replicar em casos como multicast), descartar ou contar. Algumas destas ações podem ser combinadas. Nível Aplicação

Controle e Dados em Rede típica Situação no interno de um switch: Chegou um pacote no plano de dados (1) que não se sabe o MAC – é passado para o plano de controle (4): aprende informação, atualiza RIB (C). Devolve ao plano de dados (2), eventualmente alterando a FIB, encaminha o pacote (3). OBS: Esquema semelhante para tratar questões do Nível 3. Nível Aplicação

Benefícios da Separação Fatores beneficiados com a separação: Escalabilidade e inovação: cada parte pode crescer e inovar independente da outra (com menos amarras); Custo: deve ser reavaliado – hardware mais barato pois menos especializado, software mais sofisticado. Evolução: possibilidade de desenvolver novas soluções independentes de fabricante. Estabilidade: código em expansão se torna “colcha de retalho”, sendo complexo e frágil; espera-se código menor e portanto mais estável. Complexidade: o número de “executores” de protocolo em um modelo consistente de controle distribuído pode criar complexidade de gerência e operações. ( quanto tempo vai levar para o plano de controle estabilizar a respeito de uma rede livre de loops? ) Nível Aplicação

Lógico x Literal A centralização literal traz as dificuldades: Escalabilidade: como um ponto central daria conta de sessões com cada equipamento gerenciado? Alta disponibilidade: se um único ponto falhar, a rede toda falhará; Distância geográfica: Manter um ponto próximo facilita operação e minimiza atrasos. Plano de controle centralizado logicamente faz mais sentido que centralizado literalmente: algum protocolo deve sincronizar os controladores fisicamente distribuídos. Nível Aplicação

Arquitetura Openflow Alguns aplicativos de controle estão no topo do controlador emulando o comportamento dos aplicativos de controle tradicionais. Nível Aplicação

OF - Operation Nível Aplicação

Controlador No mundo OF, o controlador é o rei! Um Controlador adiciona e ou remove entradas da tabela de fluxos em nome da aplicação: Controladores estáticos: estaticamente estabelecem fluxos que interliguem um cjto de comps de teste durante um experimento. Controladores dinâmicos: mais sofisticados adicionam / removem fluxos enquanto a experiência progride. Existem diversas maneiras para customizar o experimento OF: Fazer o Download, e configurar um controlador existente. Ler as Especificações do OpenFlow e fazer tudo do zero : Escrever o seu proprio controlador para manipular cerca de 20 mensagens do protocolo OpenFlow; Mais Recomendavel: extender um controlador existente. Ex. Escrever um Modulo para NOX : www.noxrepo.org Nível Aplicação

Ferramenta - Mininet (1) Grande ferramenta de testes e desenvolvimento, ideal para fase de prototipação. Google usa algo como mininet antes da implantação. Rede Virtual na Comodidade da sua Maquina (Espaço do usuário => leve) Topologias e Quantidades de Nós Arbitrárias mininet.org: “Mininet is distributed as a virtual machine (VM) image with all dependencies pre-installed, runnable on common virtual machine monitors such as VMware, Xen and VirtualBox. This provides a convenient container for distribution; once a prototype has been developed, the VM image may be distributed to others to run, examine and modify.” Nível Aplicação

Mininet (2) É possível escrever scripts para ativá-lo: A API de Mininet permite criar redes customizadas com algumas poucas linhas de Python: from mininet.net import Mininet from mininet.topolib import TreeTopo tree4 = TreeTopo(depth=2,fanout=2) net = Mininet(topo=tree4) net.start() h1, h4 = net.hosts[0], net.hosts[3] print h1.cmd('ping -c1 \%s' \% h4.IP()) net.stop() Cria uma pequena rede (4 hosts, 3 switches), e realiza pings de um host para o outro (por cerca de 4 segundos) Nível Aplicação

Mininet (3) Exemplo: ativando o Mininet para criar um switch com OF 1.3 1) No VirtualBox, ative a VM Mininet atual – interface texto. Login: mininet, Senha:mininet; 2) Peça IP para a interface host-only: sudo dhclient eth1; 3) Na hospedeira, ative um servidor de janelas do padrão X11. O programa é o Xming. 4) Faça um ssh da hospedeira para a hóspede (endereço fornecido pelo dhclient do passo 2) marcando que quer enviar a saída x11 para o servidor X11 da hospedeira: Programa putty, coloque o IP do host only e marque na opção X11 forwarding como Enable . Faça novamente o log como usuário mininet. 5) Nesta nova janela chame o emulador de terminal em background: xterm& Nível Aplicação

Mininet (4) 5) Ativar o programa mininet que veio na máquina virtual do mininet: $ sudo mn --topo single,3 --mac --controller remote --switch ovsk, protocols=OpenFlow13 6) Fazer o ovsk também usar o OF 1.3 $ sudo ovs-vsctl set bridge s1 protocols=OpenFlow13 7) Tente fazer com que um host pingue o outro. Há conectividade? Nem subiu o controlador... No mininet: > h1 ping h2 8) Iniciar o controlador Ryu com o script que cria um switch que aprende e emite algumas regras adequadas para este switch: $ ./ryu/bin/ryu-manager –verbose ./ryu/ryu/app/simple_switch_13.py Nível Aplicação

Mininet (4) 9) Em outra janela, liste os fluxos existentes até o momento (as regras pré-instaladas) $ sudo ovs-ofctl dump-flows s1 –O OpenFlow13 10) Tendo ativado o controlador , faça o ping novamente no mn > h1 ping h2 11) Veja agora como está a tabela de fluxos: Inspecione o script simple_switch_13.py Nível Aplicação

Hands On Escrever um script em python para que diferentes fluxos possam seguir simultaneamente por diferentes caminhos. Se existirem dois fluxos da mesma origem para o mesmo destino não necessariamente seguirão a mesma rota. Dois caminhos de igual custo tem que ter um critério para decisão entre eles. A decisão de rota deve basear-se no volume de dados em trânsito na rede atualmente.. Propor uma estratégia para que a banda seja melhor aproveitada na rede, ou seja, maximizar a banda total. Nível Aplicação