Tópicos Especiais em Redes de Telecomunicações Redes definidas por software e Computação em Nuvem Prof. Rodrigo de Souza Couto
PARTE 1 REDES DEFINIDAS POR SOFTWARE (SDN) 2
Bibliografia Esta aula é baseada nos seguintes trabalhos: [1] Diego Kreutz, Fernando M. V. Ramos, Paulo Verissimo, Christian Esteve Rothenberg, Siamak Azodolmolky, Steve Uhlig. Software-Defined Networking: A Comprehensive Survey. Proceedings of the IEEE, 2015. [2] Rob Sherwood, Glen Gibby, Kok-Kiong Yapy, Guido Appenzellery, Martin Casado, Nick McKeowny, Guru Parulkar. FlowVisor: A Network Virtualization Layer. OpenFlow Switch Consortium, Tech. Rep, 2009. [3] Victor Torres da Costa. Controle e Isolamento de Recursos em Ambientes de Redes Virtuais OpenFlow. Projeto de Final de Curso. GTA/DEL/Poli/UFRJ. Fevereiro, 2014. 3
Bibliografia Esta aula é baseada nos seguintes trabalhos (cont.): [4] N. M. Mosharaf Kabir Chowdhury and Raouf Boutaba. Network Virtualization: State of the Art and Research Challenges. IEEE Communications Magazine. 2009. 4
Visão Geral da Arquitetura SDN Figura adaptada de [1] 5
Visão Geral da Arquitetura SDN Hipervisor de Rede Figura adaptada de [1] 6
Virtualização Tecnologia já consolidada para PCs Virtualização de máquina Máquina virtual utiliza o hardware como se estivesse sozinha na infraestrutura Pode ser aplicada em redes de computadores Virtualização de redes Rede virtual funciona na infraestrutura como se estivesse sozinha 7
Virtualização de Máquina Compartilhamento de um servidor físico por diferentes máquinas virtuais (VMs Virtual Machines) Usuário da VM tem ilusão de estar utilizando um servidor físico dedicado a ele Implementada por um hipervisor Virtualização
Exemplo de Virtualização de Máquina: Xen Hipervisor gerencia o acesso das VMs ao hardware 9
Exemplo de Virtualização de Máquina: Xen Mais detalhas na parte Computação em Nuvem 10
Virtualização de Redes Diferentes redes operam sobre uma rede física de forma paralela Figura adaptada de [4] 11
Virtualização de Redes Redes virtuais podem executar planos de controle específicos para cada uma Figura adaptada de [4] 12
Virtualização de Redes Permite distinguir provedor de rede do provedor de infraestrutura Figura adaptada de [4] 13
Virtualização de Redes Requisito principal da virtualização de redes é o isolamento Figura adaptada de [4] 14
Algumas aplicações da virtualização de redes Realização de experimentos científicos Diferentes redes podem ser criadas em um testbed para diferentes experimentos Tráfego de produção pode coexistir com tráfego experimental Migração de aplicações para a nuvem Aplicação rodando em uma rede local, com todas suas configurações de rede específicas Migração para uma nuvem com rede virtual 15
Virtualização de redes: Contexto histórico VLAN (Virtual Local Area Network) Separação do comutador em diferentes redes virtuais de nível 2 Comutador é visto por cada rede com um roteador virtual 1 7 9 15 2 8 10 16 Rede 1 (VLAN ports 1-8) Rede 2 (VLAN ports 9-15) Adaptado das notas de aula do livro Jim Kurose e Keith Ross, Redes de Computadores e a Internet Uma abordagem Top-Down", 6ª Edição, Editora Pearson, 2013 16
Virtualização de redes: Contexto histórico VLAN (Virtual Local Area Network) Separação do comutador em diferentes redes virtuais de nível 2 Comutador é visto por cada rede com um roteador virtual 1 7 9 15 2 8 10 16 Electrical Engineering (VLAN ports 1-8) Computer Science (VLAN ports 9-16) Figura adaptada das notas de aula do livro Jim Kurose e Keith Ross, Redes de Computadores e a Internet Uma abordagem Top-Down", 6ª Edição, Editora Pearson, 2013 17
Virtualização de redes: Contexto histórico VLAN (Virtual Local Area Network) Aplicável a comutadores cascateados 1 7 9 15 1 3 5 7 2 8 10 16 2 4 6 8 Electrical Engineering (VLAN ports 1-8) Computer Science (VLAN ports 9-15) Ports 2,3,5 belong to EE VLAN Ports 4,6,7,8 belong to CS VLAN Figura adaptada das notas de aula do livro Jim Kurose e Keith Ross, Redes de Computadores e a Internet Uma abordagem Top-Down", 6ª Edição, Editora Pearson, 2013 18
Virtualização de redes: Contexto histórico VPN (Virtual Private Network) Criação de redes locais entre estações conectadas remotamente Podem ser implementadas através de túneis seguros 19
Virtualização de redes: Contexto histórico Redes Sobrepostas Redes lógicas construídas sobre a rede física Geralmente construídas a nível de aplicação Exemplo: Rede P2P NAT (Network Addres Translation) Virtualização do espaço de endereço IP Todas as máquinas na rede local aparecem com o mesmo IP público na Internet 20
Virtualização de redes: Contexto histórico Redes Sobrepostas Redes lógicas construídas sobre a rede física Geralmente construídas a nível de aplicação Exemplo: Rede P2P NAT (Network Addres Translation) Virtualização do espaço de endereço IP Todas as máquinas na rede local aparecem com o mesmo IP público na Internet 21
Hipervisor de Rede Camada de software entre as redes virtuais e a infraestrutura física Divide a rede em fatias (slices) A cada rede virtual atribui-se uma fatia Requisitos mínimos para cada fatia Topologia Espaço de endereçamento Topologia e espaço de endereçamento devem independentes para cada rede virtual P.ex.: Atribuição de um IP 192.168.0.1 a uma rede A não deve impedir a atribuição do mesmo endereço para a rede V 22
FlowVisor Virtualização de rede OpenFlow Divisão da rede OpenFlow em fatias Cada fatia é um conjunto de entradas nas tabelas de fluxo Cada fatia possui seu Controlador Recursos Divididos Banda Passante Volume de dados que a rede pode transmitiri em cada enlace Topologia Quais elementos de rede e quais portas (interfaces) serão usadas Cada rede virtual tem sua própria visão da rede
FlowVisor Recursos Divididos (cont.) Espaço de endereçamento Faixas de endereço IP ID de VLAN Entre outros Carga de processamento Quantidade de processamento utilizada nos comutadores Tabela de encaminhamento dos comutadores Número de entradas permitido para cada rede
FlowVisor Recursos Divididos (cont.) Espaço de endereçamento Faixas de endereço IP ID de VLAN Entre outros Carga de processamento Quantidade de processamento utilizada nos comutadores Tabela de encaminhamento dos comutadores Número de entradas permitido para cada rede Implementação padrão do OpenFlow virtualiza apenas topologia e espaço de endereçamento
FlowVisor - Implementação Proxy entre os Controladores e Comutadores Interceptação e reescrita de mensagens Transparência aos elementos da rede Decisão a partir de políticas Figura adaptada de [2]
FlowVisor - Funcionamento Controlador deseja adicionar um fluxo na rede. P.ex. Bob escreve uma aplicação que analisa todo tráfego HTTP da rede
FlowVisor - Funcionamento Flowvisor intercepta a mensagem
FlowVisor - Funcionamento Mensagem entra na etapa de Tradução para ser reescrita de acordo com a rede física
FlowVisor - Funcionamento Flowvisor consulta as políticas de Bob. Dessa forma aplicação irá atuar apenas no fluxo HTTP das máquinas da rede do Bob.
FlowVisor - Funcionamento Mensagem é reescrita de acordo com decisões do FlowVisor
FlowVisor - Funcionamento Mensagem é enviada ao comutador como se não tivesse modificada
FlowVisor - Funcionamento Flowvisor não necessita da modificação do Controlador!!!!
Exemplo da Tradução Mensagem enviada pelo Controlado do Bob Enviar para o Controlador todos pacotes com a porta 80 como destino, com qualquer IP de origem Mensagem traduzida pelo FlowVisor e enviada para os comutadores Enviar para o Controlador todos pacotes com a porta 80 como destino, com IPs de origem na rede 192.168.0.1/24
Visão geral da rede com FlowVisor Atenção! Essa rede não é uma SDN com múltiplos controladores! São várias SDNs virtuais. 35
Hierarquia no FlowVisor Funcionamento transparente permite virtualizar redes virtuais 36
Virtualização de máquinas e de redes SDN Figura adaptada de [2] 37
Passos futuros Mais informações sobre virtualização de rede serão vistas na parte de Computação em Nuvem do curso 38