OpenFlow Rodrigo de Souza Couto Redes de Computadores II
Introdução • Sucesso das Redes de Computadores • Infraestrutura crítica das instituições • Utilização em massa da Internet • Experimentos de novas propostas • Necessidade de ambientes de redes reais • Boa parte das propostas são apenas simuladas • Dificuldade de experimentos • Necessidade de um grande número de nós • Muitos necessitam de modificações nos nós da rede • Experimentos não devem influenciar tráfego de produção
Plataformas de Experimentação • Redes Virtualizadas Programáveis • GENI (Global Environment for Network Innovations) • Experimentação de protocolos em larga escala • Criação de redes próximas da realidade • Implementação custosa e demorada • OpenFlow • Experimentação em redes reais • Separação do tráfego experimental do tráfego de produção • Menor Escala • Redes locais de universidades
OpenFlow • Mecanismo de separação do tráfego • Utilizado nos comutadores da rede • Experimentos não influenciam no tráfego de produção • Possibilidade de reprogramar os comutadores • Adequação da rede para os experimentos • Excução de novos protocolos • Requisitos • Baixo custo e alto desempenho • Desejável para a aceitação dos administradores da rede • Suporte a uma ampla gama de experimentos • Isolamento entre tráfego experimental e de produção • Fabricantes não necessitam expor seus projetos
Funcionamento • Funções de manipulação de tabelas de fluxo • Presente na maioria dos comutadores comerciais • Protocolo aberto de configuração das tabelas • Cada fluxo é tratado de forma diferente
Comutador Openflow • Tabela de Fluxos • Uma ação para cada fluxo • Canal Seguro • Conexão entre Comutador e Controlador • Protocolo OpenFlow • Configuração remota das Tabelas de Fluxos
Definição de Fluxo • Verificação do cabeçalho dos pacotes • Comutadores “tipo0” • Primeira geração de comutadores • Outras gerações • Campos do cabeçalho escolhidos arbitrariamente • Maior flexibilidade • Novas formas de endereçamento
Ações Básicas da Tabela de Fluxos • Encaminhar os pacotes do fluxo para uma (ou várias) porta(s) específicas • Comutação de pacotes • Encapsular os pacotes e encaminhá-los para o Controlador • Inicialização dos Fluxos • Descartar os pacotes • Aplicações de Segurança
Tipos de Comutadores • Comutador OpenFlow dedicado • Apenas executa as ações da Tabela de Fluxos • Não suporta encaminhamento Nível 2 e 3 • Comutador com OpenFlow habilitado • Equipamentos que realizam encaminhamento Nível 2 e 3 • Adição do OpenFlow como funcionalidade • Tráfego de produção encaminhado normalmente • Adição de uma nova ação: encaminhar os pacotes para o pipeline normal do comutador • Separação do tráfego por VLANs
NOX • Sistema Operacional de Rede • Facilidade de gerenciamento da rede • Gerenciamento por interface de alto nível • Nomes ao invés de MAC e IP • Plataforma para aplicações de gerenciamento • Baseado em redes OpenFlow • Analogia com Sistema Operacional de Computadores • Interface de alto nível para programação • Genérica para diversas arquiteturas • Facilita o desenvolvimento e a portabilidade de aplicações
NOX - Componentes • Controlador • NOX • Aplicações • Visão da Rede • Localizaçao dos nós • Serviços
NOX - Funcionamento
NOX - Funcionamento Envio de Pacotes por um Cliente – Fluxo Desconhecido B A C
NOX - Funcionamento Encapsulamento e envio para o Controlador B A C
NOX - Funcionamento Controlador configura a Tabela de Fluxos do Comutador A B A C
NOX - Funcionamento Todos os pacotes do fluxo que chegam em A irão para B B A C
NOX - Funcionamento Após definido o fluxo, o pacote irá para B B A C
NOX - Funcionamento Pacote encapsulado para o Controlador B A C
NOX - Funcionamento Controlador configura comutador B com o fluxo B A C
NOX - Funcionamento Fluxo configurado no Comutador B B A C
NOX - Funcionamento Após procedimento semelhante, C é configurado B A C
NOX - Funcionamento Pacotes do Fluxo são encaminhados sem a utilização do Controlador
FlowVisor • Virtualização de rede OpenFlow • Divisão da rede OpenFlow em fatias • Cada fatia possui seu Controlador • Recursos Divididos • Banda Passante • Tráfego • CPU dos elementos da rede • Tabela de encaminhamento dos comutadores
FlowVisor - Implementação • Proxy entre os Controladores e Comutadores • Interceptação de mensagens • Transparência aos elementos da rede • Decisão a partir de políticas
FlowVisor - Funcionamento
FlowVisor - Funcionamento
FlowVisor - Funcionamento
FlowVisor - Funcionamento
FlowVisor - Funcionamento
FlowVisor - Funcionamento
FlowVisor - Funcionamento
Conclusão • OpenFlow • Possibilita a experimentação em redes reais • Melhora a validação de propostas • Muitas utilizam apenas simulação • Outras funcionalidades para o OpenFlow • NOX • Sistema Operacional de redes • Gerenciamento centralizado • Parâmetros de alto nível • FlowVisor • Virtualização de redes OpenFlow • Divisão dos recursos da rede
Perguntas • 1)Por que é difícil realizar experimentos de novas propostas em redes de produção, como as existentes em empresas e universidades?
Perguntas • 1)Por que é difícil realizar experimentos de novas propostas em redes de produção, como as existentes em empresas e universidades? • Muitos experimentos de novas propostas requerem a modificação de todos os equipamentos de uma rede. Assim, como as redes fazem parte da infraestrutura crítica de diversas instituições essas modificações podem ser inviáveis pois poderiam atrapalhar o tráfego de produção.
Perguntas • 2)Qual o principal objetivo da proposta do OpenFlow?
Perguntas • 2)Qual o principal objetivo da proposta do OpenFlow? • Possibilitar o uso de redes reais para a realização de experimentos de forma que o tráfego experimental não interfira no tráfego de produção.
Perguntas • 3)Diga quais são os principais componentes de um Comutador OpenFlow, explicitando a função de cada um. • Tabela de Fluxos:Possui a definição de cada fluxo que passa pelo comutador, bem como as ações que devem ser tomadas para cada um.Canal Seguro: Conecta o Comutador ao Controlador da rede.Protocolo OpenFlow: Possibilita a configuração do Comutador pelo Controlador.
Perguntas • 4)Qual a principal função do NOX?
Perguntas • 4)Qual a principal função do NOX? • Fornecer uma interface de alto nível para o desenvolvimento de aplicações de gerenciamento de rede.
Perguntas • 5)Qual a principal função do FlowVisor?
Perguntas • 5)Qual a principal função do FlowVisor? • Dividir a rede OpenFlow em fatias de forma que sejam isoladas entre si. Assim, cada fatia poderá possuir seus controladores, e esses não irão interferir nos controladores de outras fatias.