EN-3610 Gerenciamento e Interoperabilidade de Redes Redes Definidas por Software
Black-Box Networking vs. Software Defined Networking AppAppAppAppAppAppAppAppAppAppApp Funcionalidades especializadas Plano de Controle Especializado Hardware Especializado Plano de Interface Aberta Plano de Controle Controle ou ou Interface Aberta Chip Comercial (commodity) Plano de Controle Verticalização Fechado, proprietário Inovação lenta Horizontalização Interfaces abertas Inovação rápida
Tendência Mainframe Computer Industry App App App Network Industry App App App Windows Windows Windows (OS) (OS) (OS) Linux Linux Linux Mac Mac Mac OS OS OS NOX Controller Controller 1 1 (Network OS) Controller Controller Network 22 OS Virtualization layer x86 (Computer) Virtualization or Slicing OpenFlow Oportunidade para que se crie uma nova indústria para software de (gerenciamento e controle) de rede.
Rede Ossificada Roteamento, gerenciamento, gerenciamento de mobilidade, controle de acesso, VPNs, Feature Operating System Feature Million of lines of source code 5400 RFCs! Specialized Packet Forwarding Hardware Muitas funções complexas na infraestrutura OSPF, BGP, multicast, serviços diferenciados, engenharia de tráfego, NAT, firewalls, MPLS, Indústria relutante a mudanças
Problema de Controle de Redes Configuração de cada dispositivo físico Ex, tabelas de encaminhamento, ACLs, Opera sem garantia de comunicação Opera dentro de determinado protocolo de rede Em conjunto, tarefas complexas!
Indústria: Rede vs. Equipamentos de Computadores
Gerenciamento de Redes Complexa Muitos erros Configurações de rede mudam constantemente Configuração distribuída é uma má ideia Mudanças resultam em erros Redes de um câmpus ou empresa podem ter Milhões de linhas de configuração Milhares de dispositivos Centenas de mudanças todos os anos
Redes de Computadores Tradicionais Plano de dados: Encaminhamento, filtragem, buffer, marcação, etc
Redes de Computadores Tradicionais Plano de controle: Algoritmos distribuídos Controlar mudanças de topologia, calcular rotas, etc
Redes de Computadores Tradicionais Plano de gerenciamento Coletar medidas e configurar equipamentos
Rumo ao Software-Defined Network (SDN) Redes Definidas por Software
Software Defined Networking (SDN) Controle logicamente centralizado Inteligente, + lento API para o plano de dados (e.g., OpenFlow) Switches Burro, rápido
A Rede Definida por Software 3. APIs bem definidas 2. Um sistema operacional, extensível, possivelmente open-source App App App Network Operating System 1. Interface aberta ao hardware ex, OpenFlow Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Source: N. McKeown et al. http://www.openflow.org
Software Defined Network (SDN) Control Programs ( ) f View f ( View ) Control Programs Abstract Network View Network Virtualization f ( View ) Control Programs Global Network View Network OS Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding
Software Defined Network (SDN) 1.<Match, Action> 2.<Match, Action> 3.<Match, Action> 4.<Match, Action> 5.<Match, Action> 6. 7. f View Control Programs ( ) Packet Forwarding firewall.c f View if( pkt->tcp->dport == 22) Control droppacket(pkt); Control Programs Programs Abstract Network View Network Virtualization Global Network View Packet Forwarding 7. Packet Forwarding ( ) Network 1.<Match, Action> OS 2.<Match, Action> 3.<Match, Action> 4.<Match, Action> 5.<Match, Action> 6. 7. 1.<Match, Action> 2.<Match, Action> 3.<Match, Action> 4.<Match, Action> 5.<Match, Action> 6. Packet Forwarding ( ) f View 1.<Match, Action> 2.<Match, Action> 3.<Match, Action> 4.<Match, Action> 5.<Match, Action> 6. 7. Packet Forwarding 1.<Match, Action> 2.<Match, Action> 3.<Match, Action> 4.<Match, Action> 5.<Match, Action> 6. 7.
Exemplos de uso Switch Switch por fluxo Controle de acesso a rede/firewall VLANs Novos protocolos de roteamento unicast, multicast, multipath Home network manager Processamento de pacotes IPvUser VM migration Balanceamento de carga Gerenciamento de mobilidade Gerenciamento de energia Monitoramento de redes e visualização Debugging de rede Fatiamento (slicing) de rede e muito mais!
Ex: Controle de Acesso Dinâmico Inspeciona primeiro pacote de uma conexão Consulta a política de controle de acesso Instala regras para boquear ou rotear o tráfego
Ex: Mobilidade/Migração Verifica host enviando tráfego em nova localidade Modifica regras para rotear o tráfego
Ex: Balanceamento de carga de servidores Política de balanceamento de carga préinstalada Separa tráfego baseado no IP fonte src=0* src=1* 20
Virtualização de Redes Controlador #1 Controlador #2 Controlador #3 Particiona a rede 21
Arquitetura SDN
OpenFlow Primeiro protocolo padronizado para gerenciamento de SDN Controla como pacotes são direcionados e manipulados Torna as redes programáveis Não apenas configurável (ex., via CLI) Independente de vendedor Torna inovação mais fácil Objetivo (pesquisa): Validar experimentos em hardware instalado com tráfego real Objetivo (indústria): Redução de custos (equipamentos) Customização e desesenvolvimento de novas características de rede (ex: protocolos).
Como Funciona o Open Flow?
Componentes OpenFlow Controlador Switch
Controlador Definição do próximo salto do pacote - Atualiza o plano de dados - Interface de programação Visão global da rede - Mais alto nível para os desenvolvedores - Aplicações mais sofisticadas - Vários elementos encaminhadores -> Um controlador - Melhor tomada de decisões
Separação de Planos
Ethernet Switch
Controlador OpenFlow Protocolo OpenFlow (SSL/TCP) Plano de Controle OpenFlow Plano de Dados (Hardware)
Exemplo OpenFlow Camada de Software Camada de Hardware Cliente OpenFlow MAC src MAC dst IP Src Flow Table IP Dst TCP sport TCP dport Ação * * * 5.6.7.8 * * port 1 PC Controller port 1 port 2 port 3 port 4 5.6.7.8 1.2.3.4
Básico OpenFlow Entradas das tabelas de fluxo Regra Ação Stats Packet + contadores bytes 1. Encaminhar pacotes para uma ou várias portas 2. Encapsular e encaminhar ao controlador 3. Modificar campos 4. Qualquer outra extensão necessária! Switch Port VLAN ID VLAN pcp MAC src MAC dst Eth type IP Src IP Dst IP ToS IP Prot L4 sport L4 dport + quais campos comparar
Exemplos Switching Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * 00:1f:.. * * * * * * * port6 Flow Switching Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action port3 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Firewall Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * * * * * * * * 22 drop
Exemplos Roteamento Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * * * * * 5.6.7.8 * * * port6 VLAN Switching Switch Port * MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport * 00:1f.. * vlan1 * * * * * TCP dport Action port6, port7, port9
Controle Centralizado vs Distribuído Controle Centralizado Controlador Controle Distribuído Controlador OpenFlow Switch OpenFlow Switch Controlador OpenFlow Switch OpenFlow Switch Controlador OpenFlow Switch OpenFlow Switch
Roteamento por Fluxo vs. Agregação Fluxo Cada fluxo é configurado individualmente pelo controlador Tabela de fluxo contém uma entrada fluxo Bom para controle fino, ex. campus networks Agregação Uma entrada de fluxo cobre vários grupos de fluxos Tabela de fluxo contém uma entrada por categoria de fluxo Bom para alto número de fluxos, e.g. backbone
Reativo vs. Pró-ativo Reativo Primeiro pacote do fluxo aciona o controlador para inserir entradas de fluxo Uso eficiente da tabela de fluxo Se há perda de conexão com o controlador, funcionalidade fica limitada Pró-ativo Controlador pré-configura tabela de fluxo no switch Tempo de configuração novos fluxos é zero adição Perda de controle de conexão não interrompe o tráfego
Implementações OpenFlow (Switch e Controlador)
OpenFlow/SDN Timeline Source: G. Appenzeller (BigSwitch)
OpenFlow oftrace oflops openseer Monitoring/ debugging tools ENVI (GUI) LAVI Stanford Provided n-casting Expedient Applications NOX Beacon Helios Maestro SNAC Controller FlowVisor Console Commercial Switches HP, NEC, Pronto, Juniper.. and many more Software Ref. Switch OpenWRT FlowVisor Stanford Provided NetFPGA PCEngine WiFi AP Broadcom Ref. Switch OpenVSwitch Slicing Software OpenFlow Switches 40
OpenFlow hardware Juniper MX-series NEC IP8800 UNIVERGE PF5240 WiMax (NEC) HP Procurve 5400 Netgear 7324 PC Engines Pronto 3240/3290 Ciena Coredirector
Growing Community Vendors and start-ups Providers and business-unit More... More...
SDN Modularidade permite inovação independente Reinvenção das redes Momento significativo Academia e indústria Inovação é a proposição da SDN SDN não permite fazer o impossível SDN apenas permite fazer o possível de maneira mais fácil
Referências Slides elaborados a partir de: Christian Rothenberg - OpenFlow e redes definidas por software, CPqD Jennifer Rexford Software Defined Networking. Dorgival Guedes, Luiz Filipe Menezes Vieira, Marcos Menezes Vieira, Henrique Rodrigues e Rogério Vinhal Nunes. Redes Definidas por Software: uma abordagem sistêmica para o desenvolvimento de pesquisas em Redes de Computadores. XXX Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos - SBRC 2012