Tópicos Especiais em Redes de Telecomunicações SDN e NFV Prof. Rodrigo de Souza Couto
PARTE 2 NETWORK FUNCTION VIRTUALIZATION (NFV) 2
Bibliografia Esta aula é baseada nos seguintes trabalhos: Dissertação de Mestrado de Gabriel Fontes Carvalho de Queiroz http://www.pel.uerj.br/bancodissertacoes/dissertacao_ga briel_queiroz.pdf Dissertação de Mestrado de Rodrigo Silva Vilela Eiras http://www.pel.uerj.br/bancodissertacoes/dissertacao_ro drigo_eiras.pdf 3
Middleboxes Equipamentos dedicados, de alto desempenho Exemplos: Tradução de Endereços de Rede (NAT), proxy etc. Custo, arquitetura, coexistência entre fabricantes Gerenciamento difícil Interfaces de Programação de Aplicação (APIs) diferentes Funções de rede (NFs) atreladas ao hardware Alta relação entre hardware e software Funções diferentes não podem compartilhar hardware 3
Redes tradicionais Dependência de middleboxes Infraestrutura engessada e baixa escalabilidade Expansão, manutenção e instalação prejudicadas Desperdício de recursos Como garantir flexibilidade e reduzir custos capitais e operacionais? 4
Virtualização de Funções de Rede Equipamentos genéricos, desacoplamento entre hardware e software Flexibilidade no gerenciamento e na orquestração de NFs Compartilhamento de hardware por NFs diferentes Melhor utilização, menos desperdício de recursos Redução de desempenho esperada Alternativa: algoritmos mais robustos, coleta de informações etc. 5
Funções de Rede em NFV Funções de rede instanciadas em máquinas virtuais (VMs) Tanto em servidores locais quanto remotos Melhora na elasticidade da rede Alocação dinâmica e ajuste de capacidade Criação de diferentes serviços a partir da ligação de VNFs 6
Encadeamento de Funções de Serviço Serviços como sequências de VNFs ordenadas Mudar a ordem, a capacidade ou a função muda o serviço Proxy Firewall NAT Posicionamento de SFCs na infraestrutura de rede 7
Arquitetura ETSI da NFV Funções Virtuais de Rede (VNFs) VNF VNF VNF VNF VNF Infraestrutura NFV (NFVI) Computação Recursos Virtuais Rede Armazenamento Gerenciamento e Orquestração (MANO) Camada de Virtualização Recursos Físicos Computação Rede Armazenamento 9
Infraestrutura NFV Camada mais básica da arquitetura Computação Recursos das VMs e dos enlaces virtuais Infraestrutura NFV (NFVI) Recursos Virtuais Rede Armazenamento Cria abstrações e desacopla as VNFs dos equipamentos físicos Computação Camada de Virtualização Recursos Físicos Rede Armazenamento Recursos dos servidores e enlaces físicos 10
Funções Virtuais de Rede Funções Virtuais de Rede (VNFs) VNF VNF VNF VNF VNF Funcionam sobre a NFVI e estão no topo da arquitetura Módulo de software que oferece os serviços dos middleboxes em servidores genéricos Pode ser composta por vários componentes internos e implementada em uma ou mais VMs 11
Formação dos serviços VNF VNF VNF VNF VNF Representações em alto nível das VNFs ligadas em SFC Depende da ordem, tipos de VNF, capacidade requisitada etc. Capacidade: banda, armazenamento em disco, memória etc. Existe SFC fora de NFV Mais laborioso Software atrelado ao hardware Interligar os dispositivos físicos na infraestrutura Mais propenso a erro, gerenciamento e provisionamento difíceis Uma vantagem Gerenciamento em um nível: serviço middlebox 12
Exemplos de SFCs Firewall Proxy NAT DPI (0,1) (1,2) Banda = 175 Capacidade = 500 NAT (1,3) Firewall Proxy NAT (0,1) (1,2) Banda = 100 Capacidade = 225 (0,1) (1,2) Balanceamento de Carga DPI IDS Firewall NAT (1,0) (0,2) NAT Proxy Firewall (0,1) (1,2) (0,2) 13
Gerenciamento e Orquestração Gestão dos recursos físicos e de software que suportam a virtualização da infraestrutura Gerencia o ciclo de vida das VNFs Gerenciamento e Orquestração (MANO) Destina-se a todas as tarefas de gerenciamento da infraestrutura Interage tanto com a NFVI quanto com as VNFs 15
Componentes do MANO Gerenciamento e Orquestração (MANO) Orquestrador NFV (NFVO) Repositório de dados VNFs Recursos Virtuais Recursos Físicos Gerenciador de VNFs (VNFM) Gerenciador de Infraestrutura Virtual (VIM) 16
Arquitetura da NFV Define o acesso dos serviços à NFVI e o compartilhamento de recursos entre VNFs Alocação, remoção e migração de VNFs Cria serviços fim a fim e gerencia a topologia de VNFs Orquestrador NFV (NFVO) Reúne informações que são acessadas por outros blocos Repositório de dados Catálogos de instâncias, serviços, recursos e capacidades Controle e gerenciamento da interação entre VNFs e recursos da NFVI Gerenciador de VNFs (VNFM) Gerenciador de Infraestrutura Virtual (VIM) Virtualização dos recursos físicos Coleta de informações, planejamento de capacidade e monitoramento
NFV vs SDN Principais diferenças A SDN promove a flexibilidade ao desacoplar planos de dados e de controle A NFV desacopla função de rede do equipamento no qual é implementada Em SDN, a rede é programada remotamente através do controlador Em NFV, as VNFs e as VMs são gerenciadas remotamente A NFV está mais associada às funções de rede e aos serviços e está um patamar acima da SDN A SDN está mais associada ao processo de decisão e encaminhamento de pacotes
Virtualização de Máquina Possibilita que diversas máquinas virtuais executem em uma mesma máquina física Naturalmente, reduz desempenho se comparado com utilização apenas de máquinas físicas Grande desafio na área de NFV Tipos de virtualização Virtualização Tradicional Completa Para-virtualização Virtualização Leve 18
Virtualização Tradicional Consiste em isolar completamente as máquinas virtuais (VMs) hospedadas em uma mesma máquina física Máquinas virtuais possuem sistemas operacionais independentes e que podem diferir entre si Utiliza um hypervisor, que traduz as instruções das VMs para a máquina física Camada de software entre as VMs e o hardware 19
Virtualização Completa 20
Exemplo:KVM 21
Exemplo:KVM KVM trata da alocação de recursos, como memória e CPU, e Qemu trata da emulação de dispositivos, como o disco. 22
Exemplo:KVM VMs são processos comuns no Linux 23
Algumas vantagens e desvantagens Vantagem Permite que sistemas operacionais das VMs sejam agnósticos em relação à virtualização Desvantagem Tradução de mensagens pelo hypervisor provoca queda de desempenho 24
Para-virtualização VMs estão cientes da virtualização Algumas instruções são executadas diretamente no hardware (ou não precisam de tradução pelo hypervisor) 25
Para-virtualização 26
Exemplo: Xen
Exemplo: Xen Pacotes podem ser encaminhados às VMs com bridge de software, roteador de software ou por acesso direto à placa de rede
Exemplo: KVM com VirtIO 29
Algumas vantagens e desvantagens Vantagem Melhor desempenho em relação à virtualização completa Desvantagem Necessidade de modificar o sistema operacional da VM 30
Virtualização Leve Baseada em contêineres ao invés de VMs Contêineres compartilham o mesmo sistema operacional Não há hypervisor Ou seja, não há tradução de mensagens Isolamento é realizado por mecanismos como cgroups e namespaces Cgroups: Limita recursos como memória e CPU Namespaces: Isola parâmetros de cada contêiner, como usuários criados, Ids de processos, diretórios, etc. Recursos são confinados em um contêiner Grupos de contêineres podem compartilhar mesmo namespace ou mesmos recursos limitados no cgroup 31
Virtualização Leve Contêiner pode ser criado de acordo com as necessidades de suas aplicações P.ex., não é necessário alocar certas variáveis do sistema operacional para um contêiner que executará apenas uma aplicação muito específica 32
Virtualização Leve 33
Exemplo: Docker 34
Algumas informações sobre o Docker Tem se tornado muito popular recentemente Crescimento de 40% no uso entre 2015 e 2016 É baseado no tradicional LXC (Linux Containers) 35
Algumas vantagens e desvantagens Vantagens Melhor desempenho se comparado à virtualização tradicional Inicialização mais rápida Capacidade de criar uma grande quantidade de contêineres dentro de uma mesma máquina física Desvantagens Menor isolamento se comparado à virtualização tradicional Contêineres possuem o mesmo sistema operacional 36
Comparativo entre VMs e contêineres 37
Alguns resultados comparativos entre KVM e Docker Dissertação de Mestrado de Rodrigo Eiras Veja mais detalhes e resultados em http://www.pel.uerj.br/bancodissertacoes/dissertacao_rodri go_eiras.pdf Utilização de um Proxy HTTP como VNF Comparação entre KVM e Docker Resultado preliminar Tempo médio de instanciação de uma VNF Docker: 4 ± 0,5 segundos KVM: 52 ± 12,5 segundos 38
Cenário de Testes 39
Resultado Tempo médio de processamento de uma requisição 40
Conclusão dos Resultados No cenário utilizado, Docker apresentou um desempenho superior ao KVM, próximo do Linux Nativo Apesar do melhor desempenho do Docker, aplicações que necessitam de isolamento podem ser prejudicadas Para-virtualização pode ser uma opção 41