Software Defined Networks
Introdução
Introdução às SDN
A necessidade da criação das SDN..
● Mudanças de hábitos dos utilizadores
○ Aumento do consumo em equipamentos móveis
■ Rede não desenha para o efeito
○ Necessidade de garantias e não apenas de velocidade
■ Menor delay possível, evitar perdas de pacotes, baixar o jitter...
● Aumento da complexidade das redes
● Dependências de fabricantes
Introdução às SDN
A necessidade da criação das SDN..
● Mudanças de hábitos dos utilizadores
● Aumento da complexidade das redes
○ Crescente número de protocolos
■ Difícil configuração dos equipamentos
■ Requer equipamentos mais poderosos ($$$)
● Dependências de fabricantes
Introdução às SDN
A necessidade da criação das SDN..
● Mudanças de hábitos dos utilizadores
● Aumento da complexidade das redes
● Dependências de fabricantes
○ Protocolos exclusivos de certos fabricantes
○ Configurações dependentes dos equipamentos
■ Mais grave em redes de grandes dimensões
Introdução às SDN
Para combater as dificuldades...
● Produção de equipamentos mais poderosos
○ Equipamentos mais caros para lidar com a maior necessidade do processamento
● Estagnação do desenvolvimento das redes
○ Complexidade torna a inovação difícil
● Diminuição da privacidade dos utilizadores para dar garantias
○ Analisando o tráfego do utilizador para saber a prioridade a dar
■ São as operadoras que escolhem as prioridades (Traffic shapping)
Introdução às SDN - Breve história
● Começou a ser falada no final dos anos 90
○ Primeiro impulso por engenheiros da AT&T (Geoplex)
● Fundação da WebSprocket
● Primeiro teste SDN em 2001 pela Ericsson e WebSprocket
● Perdeu força no final 2001 com a crise
○ Mas continuou a ser trabalhado em universidades...
● Ganhou notoriedade em 2011 com a criação da Open Networking
Foundation
○ Fundada por grandes empresas na área das telecomunicações (Google, Verizon,
Microsoft...)
Introdução às SDN
O SDN é uma arquitetura de rede onde a camada de controlo é separada da
camada de dados e é diretamente programável.
Introdução às SDN
O “cérebro” da rede passa a estar no controlador programável.
Comunicação controlador/switch através de uma nova interface
● OpenFlow
OpenFlow
● Standard de comunicação entre o controlador e o dispositivo de rede
(switch/router) definindo:
○ Conjunto de mensagens que pode ser trocada entre estes
○ Características dos switches
● Abstrai-se do modelo das redes tradicionais TCP/IP baseados em
camadas para criar um modelo onde as camadas de transporte e internet
são agrupadas criando o conceito de layerless.
OpenFlow - Conceitos básicos
Novos conceitos:
● Flow - Sequência de pacotes de uma origem para um destino
○ Identificação mais comum: 5-tuple (IP dest/orig, porta dest/orig e protocolo de transporte)
Flow entry
Flow table
Match
OpenFlow - Funcionamento
Registo de uma nova entrada
OpenFlow - Mensagens básicas
Recebe todas as mensagens enviadas pelo switch
● Iniciar sessão switch/controlador (Hello)
● Novo pacote (Packet-in)
● Remoção de flow-entry (Flow-removed)
Envia mensagens para o switch
● Enviar pacote e nova flow-entry (Packet-out)
● Modificar o estado de um flow (Modify-state)
● Ver estado atual (Read-state)
OpenFlow - Controlador
Qualquer dispositivo com uma porta compatível com o OpenFlow (ex.: RJ-45) e
com um software SDN compatível instalado.
Exemplo de controlador
OpenFlow - Controlador
● Adicionar novo flow:
ArrayList<OFAction> actions = new ArrayList<OFAction();
actions.add(myFactory.actions().buildOutput()
.setPort(OFPort.of(1))
.build());
OFFlowAdd flow = myFactory.buildFlowAdd()
.setMatch(myfactory.buildMatch()
.setExact(MatchField.IN_PORT, OFPort.of(1))
.setExact(MatchField.ETH_TYPE, EthType.IPv4))
.build())
.setActions(actions)
.build();
sw.write(flow);
Exemplo de aplicação - Controlo e admissão de tráfego
Construir uma lógica de controlador SDN com o objetivo de:
● Diminuir a complexidade da rede
○ Reduzir o número de protocolos
○ Simplificar o processamento
● Atribuição de garantias sem deep packet inspection (DPI)
○ Evitar problemas de privacidade
● Eficiente na gestão de recursos
○ Reduzir o custo dos equipamentos
Gestão de recursos
○ Distribuição irregular de largura de
banda
■ Elevado número de flows no
núcleo
■ Baixo número de flows na
periferia
Construção de duas
lógicas de controlo
Gestão de recursos
Lógica de ingresso
Baixo número de flows -> Baixo processamento
Lógica central
Elevado número de flows -> Elevado processamento
Gestão de recursos - Criação de 2 lógicas
Lógica de ingresso
Baixo número de flows -> Baixo processamento
Lógica central
Elevado número de flows -> Elevado processamento
Simplificar processamento
Gestão de recursos - Criação de 2 lógicas
Lógica de ingresso
Processamento e análise dos flows
● Recolher informação do estado da rede
● Encaminhamento do tráfego conforme o
estado da rede
○ Controlo de flows
● Rotular o tráfego
○ Verificação do tipo de tráfego
○ Adicionar cabeçalho identificador
Lógica central
Encaminhamento dos flows
● Informar o seu estado aos controladores de
ingresso quando requisitado
● Encaminhar o tráfego rotulado
● Não se preocupa com os outros switches na
zona central
Gestão de recursos - Criação de 2 lógicas
Comunicação entre controladores:
● Criadas diferentes tipos de mensagens:
○ Informação de estado
■ Informa qual o estado atual do switch (total de largura de banda ocupada)
○ Nova reserva
■ Pede uma nova reserva de largura de banda
Gestão de recursos - Características do tráfego
● Comportamento on-off
○ Variação da largura de banda utilizada
Gestão de recursos - Características do tráfego
● Overprovisioning
Overprovisioning
Gestão de recursos - Conhecimento do tráfego
● Tráfego de curto duração
○ 70% dos flows são extintos passados 5 segundos
■ Ineficiência de mecanismos de reserva
Diminuição da complexidade
● Classificar apenas flows de longa duração
○ Diminui o processamento necessário e tráfego gerado/
● Utilização do OpenFlow
○ Um único protocolo existente na rede
○ Independente do switch (qualquer modelo/marca que suporte OpenFlow)
○ Facilmente adaptável e reconfigurável
● Metodologia first-come, first served
○ Não requer técnicas de identificação de tráfego avançadas
○ Não é existe discriminação de tráfego
○ Diminui o processamento necessário
Qualidade de serviço
● Metodologia first-come, first served
○ Não requer técnicas de identificação de tráfego avançadas
○ Não existe diferenciação de tráfego*
● Definição de diferentes classes com diferentes garantias
○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core
○ Classe 2 - Qualidade de serviço garantida após análise dos requisitos
○ Classe 3 - Classe best-effort
○ Classe 4 - Classe de sondagem (probing)
Qualidade de serviço
● Definição de diferentes classes com diferentes garantias
○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core
■ Garante baixa latência
■ Garante delay
Único tráfego diferenciado devido a maiores necessidades a nível de delay
e latência, no entanto requer largura de banda muito baixa.
Qualidade de serviço
● Definição de diferentes classes com diferentes garantias
○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core
○ Classe 2 - Qualidade de serviço após análise de requisitos
○ Classe 3 - Classe best-effort
○ Classe 4 - Classe de sondagem (probing)
■ Classe transitória onde são analisadas as características do flow
Qualidade de serviço
● Definição de diferentes classes com diferentes garantias
○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core
○ Classe 2 - Qualidade de serviço após análise de requisitos
■ Atribuída largura de banda necessária durante a sua existência
■ Acesso limitado à capacidade da ligação
Qualidade de serviço
● Definição de diferentes classes com diferentes garantias
○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core
○ Classe 2 - Qualidade de serviço após análise de requisitos
○ Classe 3 - Classe best-effort
■ Tráfego sem garantias
Qualidade de serviço
● Identificação das classes
○ Através de um cabeçalho adicionado ao pacote
■ Adicionado na zona de ingresso
Qualidade de serviço - Lifecycle flow
Determinação da classe de um flow
Recolher dados
● Recolhidos dados através dos controladores
○ Coletivos (por classe/porta)
■ Número de bits transmitidos por porta
■ Número de bits transmitidos por classe
■ Número de flows ativos
■ Instante de medição
○ Individuais (por flow)
■ Jitter e delay
■ Número de pacotes perdidos
■ Número de bits transmitidos
Cenário de simulação
● Tráfego simulado
○ Utilizado o iperf
○ Tempos de inicio e duração aleatórios através de distribuições aleatórias
exponenciais e aleatórias tendo em conta os pesos reais
Cenário de simulação
● Dois momentos distintos
○ Rede com pouca carga
○ Rede em sobrecarga
● Capacidade da rede
○ Garantias - 50mb
○ Ligação - 80mb
Resultados - Carga no troço
● Valores acima da capacidade
○ Limitação por software com
limitações na precisão em picos
○ Intervalo de leitura
Resultados - Chamada de voz
● Jitter
○ Valores abaixo do máximo recomendado - 2 milissegundos
Resultados - Chamada de voz
● Delay
○ Valores abaixo do máximo recomendado - 150 milissegundos
Resultados - Outras classes
● Jitter
○ Valores bastante superiores sem
garantias
● Pacotes perdidos
○ Valores mais elevados sem
garantias
Resultados - Eficiência
Taxa de ocupação de banda
largura com garantias
58,14% vs 44,15%
Overprovisioning On Overprovisioning
Off
Resultados - Eficiência
● Tempo de classificação máximo
○ Com overprovisioning
■ 14 segundos
○ Sem overprovisioning
■ 6 segundos
Resultados - Eficiência
● Overhead gerado (tráfego de controlo gerado na rede)
○ Cerca de 3% do tráfego total da rede
○ Pouca variação com o aumento do tráfego na rede
○ Picos em alturas de criação de flows
Resultados - Modificação do probing
● Número de flows
○ Variar a largura de banda da
classe de probing
Condição inicial:
❏ Link - 80mb
❏ Classe 2 - 50mb
❏ Restantes - ilimitadas
Resultados - Modificação do probing
● Largura de banda dos flows
○ Variar a largura de banda da
classe de probing
Condição inicial:
❏ Link - 80mb
❏ Classe 2 - 50mb
❏ Restantes - ilimitadas
Conclusão
● Sistema escalável
○ Utilização da rede mantem-se estável mesmo durante picos de utilização
● Qualidade de serviço garantida a certos flows
○ Mesmo durante picos de utilização, flows com garantias não viram a sua ligação
piorar e mantiveram-se dentro dos níveis estipulados
● Diminuição da complexidade
○ Simplificação do núcleo da rede através de identificação dos pacotes
○ Redução do número de protocolos em utilização
Conclusão SDN
● Controlo centralizado da infraestrutura
● Compatibilidade entre equipamentos de diferentes fabricantes
● Aumento da capacidade de inovação
● Aumento da robustez das redes
○ Processamento centralizado diminui a probabilidade de ocorrerem problemas
○ Caso ocorram, mais fácil resolver
● Diminuição da complexidade da rede

Introdução a Software-defined Networks

  • 1.
  • 2.
    Introdução às SDN Anecessidade da criação das SDN.. ● Mudanças de hábitos dos utilizadores ○ Aumento do consumo em equipamentos móveis ■ Rede não desenha para o efeito ○ Necessidade de garantias e não apenas de velocidade ■ Menor delay possível, evitar perdas de pacotes, baixar o jitter... ● Aumento da complexidade das redes ● Dependências de fabricantes
  • 3.
    Introdução às SDN Anecessidade da criação das SDN.. ● Mudanças de hábitos dos utilizadores ● Aumento da complexidade das redes ○ Crescente número de protocolos ■ Difícil configuração dos equipamentos ■ Requer equipamentos mais poderosos ($$$) ● Dependências de fabricantes
  • 4.
    Introdução às SDN Anecessidade da criação das SDN.. ● Mudanças de hábitos dos utilizadores ● Aumento da complexidade das redes ● Dependências de fabricantes ○ Protocolos exclusivos de certos fabricantes ○ Configurações dependentes dos equipamentos ■ Mais grave em redes de grandes dimensões
  • 5.
    Introdução às SDN Paracombater as dificuldades... ● Produção de equipamentos mais poderosos ○ Equipamentos mais caros para lidar com a maior necessidade do processamento ● Estagnação do desenvolvimento das redes ○ Complexidade torna a inovação difícil ● Diminuição da privacidade dos utilizadores para dar garantias ○ Analisando o tráfego do utilizador para saber a prioridade a dar ■ São as operadoras que escolhem as prioridades (Traffic shapping)
  • 6.
    Introdução às SDN- Breve história ● Começou a ser falada no final dos anos 90 ○ Primeiro impulso por engenheiros da AT&T (Geoplex) ● Fundação da WebSprocket ● Primeiro teste SDN em 2001 pela Ericsson e WebSprocket ● Perdeu força no final 2001 com a crise ○ Mas continuou a ser trabalhado em universidades... ● Ganhou notoriedade em 2011 com a criação da Open Networking Foundation ○ Fundada por grandes empresas na área das telecomunicações (Google, Verizon, Microsoft...)
  • 7.
    Introdução às SDN OSDN é uma arquitetura de rede onde a camada de controlo é separada da camada de dados e é diretamente programável.
  • 8.
    Introdução às SDN O“cérebro” da rede passa a estar no controlador programável. Comunicação controlador/switch através de uma nova interface ● OpenFlow
  • 9.
    OpenFlow ● Standard decomunicação entre o controlador e o dispositivo de rede (switch/router) definindo: ○ Conjunto de mensagens que pode ser trocada entre estes ○ Características dos switches ● Abstrai-se do modelo das redes tradicionais TCP/IP baseados em camadas para criar um modelo onde as camadas de transporte e internet são agrupadas criando o conceito de layerless.
  • 10.
    OpenFlow - Conceitosbásicos Novos conceitos: ● Flow - Sequência de pacotes de uma origem para um destino ○ Identificação mais comum: 5-tuple (IP dest/orig, porta dest/orig e protocolo de transporte) Flow entry Flow table Match
  • 11.
  • 12.
    OpenFlow - Mensagensbásicas Recebe todas as mensagens enviadas pelo switch ● Iniciar sessão switch/controlador (Hello) ● Novo pacote (Packet-in) ● Remoção de flow-entry (Flow-removed) Envia mensagens para o switch ● Enviar pacote e nova flow-entry (Packet-out) ● Modificar o estado de um flow (Modify-state) ● Ver estado atual (Read-state)
  • 13.
    OpenFlow - Controlador Qualquerdispositivo com uma porta compatível com o OpenFlow (ex.: RJ-45) e com um software SDN compatível instalado. Exemplo de controlador
  • 14.
    OpenFlow - Controlador ●Adicionar novo flow: ArrayList<OFAction> actions = new ArrayList<OFAction(); actions.add(myFactory.actions().buildOutput() .setPort(OFPort.of(1)) .build()); OFFlowAdd flow = myFactory.buildFlowAdd() .setMatch(myfactory.buildMatch() .setExact(MatchField.IN_PORT, OFPort.of(1)) .setExact(MatchField.ETH_TYPE, EthType.IPv4)) .build()) .setActions(actions) .build(); sw.write(flow);
  • 15.
    Exemplo de aplicação- Controlo e admissão de tráfego Construir uma lógica de controlador SDN com o objetivo de: ● Diminuir a complexidade da rede ○ Reduzir o número de protocolos ○ Simplificar o processamento ● Atribuição de garantias sem deep packet inspection (DPI) ○ Evitar problemas de privacidade ● Eficiente na gestão de recursos ○ Reduzir o custo dos equipamentos
  • 16.
    Gestão de recursos ○Distribuição irregular de largura de banda ■ Elevado número de flows no núcleo ■ Baixo número de flows na periferia Construção de duas lógicas de controlo
  • 17.
    Gestão de recursos Lógicade ingresso Baixo número de flows -> Baixo processamento Lógica central Elevado número de flows -> Elevado processamento
  • 18.
    Gestão de recursos- Criação de 2 lógicas Lógica de ingresso Baixo número de flows -> Baixo processamento Lógica central Elevado número de flows -> Elevado processamento Simplificar processamento
  • 19.
    Gestão de recursos- Criação de 2 lógicas Lógica de ingresso Processamento e análise dos flows ● Recolher informação do estado da rede ● Encaminhamento do tráfego conforme o estado da rede ○ Controlo de flows ● Rotular o tráfego ○ Verificação do tipo de tráfego ○ Adicionar cabeçalho identificador Lógica central Encaminhamento dos flows ● Informar o seu estado aos controladores de ingresso quando requisitado ● Encaminhar o tráfego rotulado ● Não se preocupa com os outros switches na zona central
  • 20.
    Gestão de recursos- Criação de 2 lógicas Comunicação entre controladores: ● Criadas diferentes tipos de mensagens: ○ Informação de estado ■ Informa qual o estado atual do switch (total de largura de banda ocupada) ○ Nova reserva ■ Pede uma nova reserva de largura de banda
  • 21.
    Gestão de recursos- Características do tráfego ● Comportamento on-off ○ Variação da largura de banda utilizada
  • 22.
    Gestão de recursos- Características do tráfego ● Overprovisioning Overprovisioning
  • 23.
    Gestão de recursos- Conhecimento do tráfego ● Tráfego de curto duração ○ 70% dos flows são extintos passados 5 segundos ■ Ineficiência de mecanismos de reserva
  • 24.
    Diminuição da complexidade ●Classificar apenas flows de longa duração ○ Diminui o processamento necessário e tráfego gerado/ ● Utilização do OpenFlow ○ Um único protocolo existente na rede ○ Independente do switch (qualquer modelo/marca que suporte OpenFlow) ○ Facilmente adaptável e reconfigurável ● Metodologia first-come, first served ○ Não requer técnicas de identificação de tráfego avançadas ○ Não é existe discriminação de tráfego ○ Diminui o processamento necessário
  • 25.
    Qualidade de serviço ●Metodologia first-come, first served ○ Não requer técnicas de identificação de tráfego avançadas ○ Não existe diferenciação de tráfego* ● Definição de diferentes classes com diferentes garantias ○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core ○ Classe 2 - Qualidade de serviço garantida após análise dos requisitos ○ Classe 3 - Classe best-effort ○ Classe 4 - Classe de sondagem (probing)
  • 26.
    Qualidade de serviço ●Definição de diferentes classes com diferentes garantias ○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core ■ Garante baixa latência ■ Garante delay Único tráfego diferenciado devido a maiores necessidades a nível de delay e latência, no entanto requer largura de banda muito baixa.
  • 27.
    Qualidade de serviço ●Definição de diferentes classes com diferentes garantias ○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core ○ Classe 2 - Qualidade de serviço após análise de requisitos ○ Classe 3 - Classe best-effort ○ Classe 4 - Classe de sondagem (probing) ■ Classe transitória onde são analisadas as características do flow
  • 28.
    Qualidade de serviço ●Definição de diferentes classes com diferentes garantias ○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core ○ Classe 2 - Qualidade de serviço após análise de requisitos ■ Atribuída largura de banda necessária durante a sua existência ■ Acesso limitado à capacidade da ligação
  • 29.
    Qualidade de serviço ●Definição de diferentes classes com diferentes garantias ○ Classe 1 - Qualidade de serviço garantida para tráfego VoIP e tráfego core ○ Classe 2 - Qualidade de serviço após análise de requisitos ○ Classe 3 - Classe best-effort ■ Tráfego sem garantias
  • 30.
    Qualidade de serviço ●Identificação das classes ○ Através de um cabeçalho adicionado ao pacote ■ Adicionado na zona de ingresso
  • 31.
    Qualidade de serviço- Lifecycle flow Determinação da classe de um flow
  • 32.
    Recolher dados ● Recolhidosdados através dos controladores ○ Coletivos (por classe/porta) ■ Número de bits transmitidos por porta ■ Número de bits transmitidos por classe ■ Número de flows ativos ■ Instante de medição ○ Individuais (por flow) ■ Jitter e delay ■ Número de pacotes perdidos ■ Número de bits transmitidos
  • 33.
    Cenário de simulação ●Tráfego simulado ○ Utilizado o iperf ○ Tempos de inicio e duração aleatórios através de distribuições aleatórias exponenciais e aleatórias tendo em conta os pesos reais
  • 34.
    Cenário de simulação ●Dois momentos distintos ○ Rede com pouca carga ○ Rede em sobrecarga ● Capacidade da rede ○ Garantias - 50mb ○ Ligação - 80mb
  • 35.
    Resultados - Cargano troço ● Valores acima da capacidade ○ Limitação por software com limitações na precisão em picos ○ Intervalo de leitura
  • 36.
    Resultados - Chamadade voz ● Jitter ○ Valores abaixo do máximo recomendado - 2 milissegundos
  • 37.
    Resultados - Chamadade voz ● Delay ○ Valores abaixo do máximo recomendado - 150 milissegundos
  • 38.
    Resultados - Outrasclasses ● Jitter ○ Valores bastante superiores sem garantias ● Pacotes perdidos ○ Valores mais elevados sem garantias
  • 39.
    Resultados - Eficiência Taxade ocupação de banda largura com garantias 58,14% vs 44,15% Overprovisioning On Overprovisioning Off
  • 40.
    Resultados - Eficiência ●Tempo de classificação máximo ○ Com overprovisioning ■ 14 segundos ○ Sem overprovisioning ■ 6 segundos
  • 41.
    Resultados - Eficiência ●Overhead gerado (tráfego de controlo gerado na rede) ○ Cerca de 3% do tráfego total da rede ○ Pouca variação com o aumento do tráfego na rede ○ Picos em alturas de criação de flows
  • 42.
    Resultados - Modificaçãodo probing ● Número de flows ○ Variar a largura de banda da classe de probing Condição inicial: ❏ Link - 80mb ❏ Classe 2 - 50mb ❏ Restantes - ilimitadas
  • 43.
    Resultados - Modificaçãodo probing ● Largura de banda dos flows ○ Variar a largura de banda da classe de probing Condição inicial: ❏ Link - 80mb ❏ Classe 2 - 50mb ❏ Restantes - ilimitadas
  • 44.
    Conclusão ● Sistema escalável ○Utilização da rede mantem-se estável mesmo durante picos de utilização ● Qualidade de serviço garantida a certos flows ○ Mesmo durante picos de utilização, flows com garantias não viram a sua ligação piorar e mantiveram-se dentro dos níveis estipulados ● Diminuição da complexidade ○ Simplificação do núcleo da rede através de identificação dos pacotes ○ Redução do número de protocolos em utilização
  • 45.
    Conclusão SDN ● Controlocentralizado da infraestrutura ● Compatibilidade entre equipamentos de diferentes fabricantes ● Aumento da capacidade de inovação ● Aumento da robustez das redes ○ Processamento centralizado diminui a probabilidade de ocorrerem problemas ○ Caso ocorram, mais fácil resolver ● Diminuição da complexidade da rede