1 SDN Software Defined Networks IntroduçãoBaseado em: SDN: Software Defined Networks by Thomas D. Nadeau and Ken Gray Material de treinamento do Prof. Cesar Marcondes (UFSCAR) Coursera – Dr. Nick Feamster
2 Porque estudar SDN ? O mercado de redes está sendo transformado por um novo paradigma que transformou um mercado de 30 anos de switches e roteadores. Vejam o que estão ganhando aqui e agora! Exemplo de curso (US500) para preparar cientistas de computação e engenheiros para a próxima geração de switches de rede: (Universidade do Texas) https://ezpay.utdallas.edu/C20239_ustores/web/product_detail.jsp?PRODUCTID=1431
3 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. 3
4 Motivação - 2 Caso Amazon: dobrava a cada seis meses, investia para ter recursos à altura, que não eram eficientemente utilizados: comercializar recursos não utilizados até atingir aproximadamente 100% de uso - arrumar inquilinos e atribuir recursos à demanda. (Alguns chamam esta flexibilização de hyper virtualization). Isto era virtualização da Computação. 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. Deseja-se virtualização da Rede. Gerência de flexibilização enquanto no interno de apenas um data-center não é crítico, mas quando cresce...
5 Motivação - 3 ONF – Open Network Foundation – suporta comercialmente os esforços de SDN e é a autoridade de padronização (Criada em 2011). Previsão de crescimento de SDN ao redor do mundo, divulgada pela ONF em Abril/2013. ( em $Millions ) Nível Aplicação 5
6 Motivação - 3 https://www.arbornetworks.com/images/documents/WISR2016_EN_Web.pdf Nível Aplicação 6
7 Motivação - 4 December, 2015: “SNS Research estimates that service provider SDN and NFV investments will grow at a CAGR (Compound Annual Growth Rate) of 54% between 2015 and As service providers seek to reduce costs and virtualise their networks, these investments will eventually account for over $20 billion in revenue by the end of 2020.” Este relatório custa US$2500. Relatórios com análises mais profundas são comprados (encontrei um relatório com custo de US4500!) 7
8 Conceito – SDN (1) Como é hoje: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 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; 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.
9 SDN – Software Defined Networks ou Redes Definidas por SoftwareConceito – SDN (2) 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…). 9
10 Definição SDN (1) 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)
11 Definição SDN CiscoONE-TDM pdf
12 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. 12
13 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. Pode ser construida a partir de protocolo de roteamento dinâmico ou não. Forwarding Information Base (FIB) : tabela com entradas dos encaminhamentos . A FIB é programada uma vez que a RIB for considerada consistente e estável. Em roteadores de grande porte pode estar armazenada em TCAM.
14 Cultura: TCAM CAM - Content-Addressable Memory - To retrieve data on RAM, the operating system must provide the memory address where the data is stored. Data stored on CAM can be accessed by performing a query for the content itself, and the memory retrieves the addresses where that data can be found. Due to its parallel nature, CAM is much faster than RAM. TCAM – Ternary Content-Addressable Memory - The term “ternary” refers to the memory's ability to store and query data using three different inputs: 0, 1 and X. The “X” input, which is often referred to as a “don’t care” or “wildcard” state, enables TCAM to perform broader searches based on pattern matching, as opposed to binary CAM, which performs exact-match searches using only 0s and 1s.
15 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.
16 Controle e Dados em Rede típicaSituação no interno de um switch: Chegou um pacote no plano de dados (1) – é 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). Nível Aplicação
17 Control and Data planes: not a new conceptRoteador moderno multislot tem: plano de controle rodando em processador dedicado e o plano de dados independente tendo cada linha um processador dedicado. O processador do roteador e as linhas conectados sobre uma rede pequena interna de alta velocidade. Nível Aplicação
18 Benefícios da SeparaçãoFatores 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
19 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
20 Analogia – Hypervisor x Controlador
21 Virtualize, optimize and automate within domainsToday: Multiple Heterogeneous Platforms Individual platforms managed by individual tools Client actions to address needs Virtualize compute Transform bare-metal deployments to VMs Optimize workload configurations within VMs Consolidate workloads and define groups/teams/pools Implement workload mobility for resource optimization and HA Virtualize storage Virtualize networking Integrate management of physical and virtualized resources SDC SDS SDN 21
22 Projeto OpenFlow - 1 Alguns engenheiros de Stanford criaram um protocolo – Openflow (OF) que implementou esta ideia. 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. 22
23 Projeto OpenFlow – 2 Arquitetura OpenFlow: 1) diversos dispositivos apenas com planos de dados 2) controlador centralizado hospedando um único plano de controle para aquela rede Decisões de roteamento de alto nível são movidas para o Controlador, normalmente localizado em um servidor. O Controlador adiciona e ou remove entradas da tabela de fluxos em nome da aplicação. Nível Aplicação 23
24 Arquitetura Openflow Alguns aplicativos de controle estão no topo do controlador SDN emulando o comportamento dos aplicativos de controle tradicionais. EX: OSPF ou RSTP (Rapid Spanning Tree) Nível Aplicação
25 OF - Operation Nível Aplicação
26 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. Nível Aplicação
27 Orquestrador de Rede OpenStack - software de código aberto, capaz de gerenciar os componentes de múltiplas infraestruturas virtualizadas; chamado de Sistema Operacional da Nuvem, por cumprir o mesmo papel em maior escala. Plataforma de software que fornece APIs que em conjunto são capazes de controlar todos os recursos disponíveis na oferta dessa infraestrutura: máquinas virtuais, rede, armazenadores, balanceadores de carga, até mesmo um painel de controle web, a maior parte escrita em Python. O OpenStack é um conjunto de projetos de software de código aberto usados para configurar e operar infraestrutura de computação e armazenamento em nuvem Nível Aplicação
28 OpenStack and OpenDaylight“OpenStack can be considered to be not one project but several, consisting of compute, storage and networking. All three platform components are managed by a dashboard Web application. Combined, they can provide a complete cloud network operating system. Conversely, OpenDaylight is an SDN controller but with a number of northbound APIs that allow interaction with network application and orchestration services, such as OpenStack Neutron, and southbound APIs, such as OpenFlow, NETCONF and BGP. One goal of the project is to extend the services available and provide a de facto set of service APIs. The projects are compatible, and OpenDaylight can be integrated with OpenStack using an OpenStack via Neutron plugin.” Nível Aplicação
29 Um exemplo de tendênciaLin, Thomas, et al. "Enabling SDN Applications on Software-Defined Infrastructure. " IEEE IFIP Network Operations and Management Symposium (NOMS 2014)
30 Arquitetura Ideal (2.1) Planes (b) 8 Layers (c) System Design Architecture Network Infrastructure: dispositivos sem “inteligência” que falam um protocolo tipo OF e manipulam tabelas de fluxos; (2) Southbound Interface: Padrão para comunicação dos planos (OF)
31 Arquitetura Ideal (2.2) (3) Network Hypervisor: Infraestrutura de rede deve suportar virtualização (topologias e esquemas de endereçamento flexíveis para,por ex, facilmente migrar VMs). Ex: Flowvisor – proxy que intercepta msgs ao ctl, permitindo por ex, a gerencia por múltiplos ctls.
32 Virtualização com FlowVisor (1)https://openflow.stanford.edu/display/DOCS/Flowvisor: “FlowVisor is a special purpose OpenFlow controller that acts as a transparent proxy between OpenFlow switches and multiple OpenFlow controllers. FlowVisor creates rich ''slices'' of network resources and delegates control of each slice to a different controller Slices can be defined by any combination of switch ports (layer 1), src/dst ethernet address or type (layer 2), src/dst IP address or type (layer 3), and src/dst TCP/UDP port or ICMP code/type (layer 4). FlowVisor enforces isolation between each slice, i.e., one slice cannot control another's traffic” Nível Aplicação
33 Virtualização com FlowVisor (2)A rede física pode ser separada entre os 3 controladores oferecendo uma parte do controle para cada um, de acordo com a política. Nível Aplicação
34 Arquitetura Ideal (2.3) (4) Network Operating Systems / Controladorescomo SOs, fornece abstração para acessar dispositivos
35 Arquitetura Ideal (2.4) (5) Northbound Interface: Abstração para que as aplicações não dependam de uma implementação específica. Em discussão, no momento cada ctl tem a sua API. (6) Language-Based Virtualization – Ter abstrações para simplificar o desenvolvimento de aplicações complexas. Ex: ter visões diferentes da mesma infraestrutura física – um “Big switch” que é a combinação de vários (ao invés de regras de encaminhamento individuais). (7) Programming Languages – migra-se de linguagens de baixo nível como OF para linguagens de alto nível, facilitando reuso de software, minimizando condições de corrida, inconsistências entre regras, etc. Ex: Pyretic, Frenetic
36 Arquitetura Ideal (2.5) (8) Management Applications: O “Cérebro da Rede”. Ache a sua área:
37 Arquitetura Ideal (2.6) (8) Management Applications: continuação :