• Nenhum resultado encontrado

Módulo 01 Visão Geral sobre SDN/OpenFlow e o tesbed FIBRE

N/A
N/A
Protected

Academic year: 2021

Share "Módulo 01 Visão Geral sobre SDN/OpenFlow e o tesbed FIBRE"

Copied!
64
0
0

Texto

(1)

Módulo 01 – Visão Geral sobre

SDN/OpenFlow e o tesbed FIBRE

Curso de Extensão Sistema de Prevenção de Intrusão baseado em SDN/OpenFlow

Universidade Federal da Bahia

Adriana V. Ribeiro, Italo Valcy, Leobino N. Sampaio {adrianavr,italovalcy,leobino}@ufba.br

(2)

Licença de uso e atribuição

Todo o material aqui disponível pode, posteriormente, ser utilizado sob os termos da:

Creative Commons License:

Atribuição - Uso não comercial - Permanência da Licença

(3)

3

A rede atual

Specialized Packet Forwarding Hardware Operating System Feature Feature

Roteamento, gerencia, mobilidade, controle de acesso, VPN, …

Verticalização

Fechado, proprietário Inovação lenta

(4)

A rede atual

Specialized Packet Forwarding Hardware Feature Feature Specialized Packet Forwarding Hardware Specialized Packet Forwarding Hardware Specialized Packet Forwarding Hardware Operating System Operating System Operating System Operating System Operating System Feature Feature Feature Feature Feature Feature Specialized Packet Forwarding Hardware Feature Feature Caixas pretas fechadas

(5)

5

A rede atual

 Dificuldades com o modelo atual:

◦ Múltiplas sintaxes de CLI;

◦ Funcionalidades dependentes de fabricante –

tempo de implantação;

◦ Licenciamento por funcionalidade;

◦ Impossibilidade de testar novas funcionalidades

de rede (protocolos);

◦ Customizações são restritas aos parâmetros de

configuração;

(6)

Feature Feature Network OS

A “Rede definida por software”

Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding

(7)

7

Feature Feature Network OS

1. Interface aberta para acesso ao hardware (e.g. Openflow)

3. API aberta bem definida 2. Pelo menos um SO de rede (provavelmente muitos)

Open- and closed-source

A “Rede definida por software”

OpenFlow Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding

(8)

Openflow

Openflow é uma interface aberta para

controlar remotamente a tabela de encaminhamento de equipamentos de rede

como switches, roteadores e access points.

 A partir dessa primitiva de baixo nível,

pesquisadores podem construir redes com novas propriedades de alto nível.

(9)

9

Ethernet Switch/Router

(10)

Data Path (Hardware)

Data Path (Hardware)

Control Path (Software)

Control Path (Software)

(11)

11

Data Path (Hardware)

Data Path (Hardware)

Control Path

Control Path

OpenFlow

OpenFlow

OpenFlow Controller

OpenFlow Controller

OpenFlow Protocol (SSL)

(12)
(13)

13

(14)

OpenFlow é um protocolo, SDN é uma arquitetura

 Redes Definidas por Software (SDN) refatoram o relacionamento entre os dispositivos de rede e o software que os controla

 OpenFlow é uma interface aberta que permite um controle mais

flexível e previsível da rede, tornando fácil estender sua função. [HotSDN'12 CFP]

(15)

15

OpenFlow é um protocolo, SDN é uma arquitetura

 Redes Definidas por Software (SDN) refatoram o relacionamento

entre os dispositivos de rede e o software que os controla

 OpenFlow é uma interface aberta que permite um controle mais flexível e previsível da rede, tornando fácil estender sua função. [HotSDN'12 CFP]

(16)

Exercício de fixação 1

 Como SDN/OpenFlow trata as seguintes

questões?

◦ Múltiplas sintaxes de CLI;

◦ Funcionalidades dependentes de fabricante –

tempo de implantação;

◦ Licenciamento por funcionalidade;

◦ Impossibilidade de testar novas funcionalidades

de rede (protocolos);

◦ Customizações são restritas aos parâmetros de

configuração;

(17)

17

(18)

“If header = x, send to port 4”

“If header = y, overwrite header with z, send to ports 5,6”

“If header = ?, send to me”

OpenFlow

Switch OpenFlow Switch

OpenFlow Switch OpenFlow Switch Flow Table Flow Table Network OS

Como OpenFlow funciona

OpenFlow/SSL/TCP

(19)

19

Como OpenFlow funciona

 A principal abstração utilizada na

especificação do OpenFlow é o conceito de fluxo

 Um fluxo é constituído pela combinação de

campos do cabeçalho do pacote a ser processado pelo dispositivo.

(20)

Como OpenFlow funciona

 Definição: fluxo

É uma sequência unidirecional de pacotes na qual

todos os pacotes compartilham um conjunto de

valores de cabeçalho comum

 Exemplos:

◦ Fluxo 1: pacotes com destino 192.168.0.0/24

◦ Fluxo 2: pacotes com interface de entrada 2, VLAN ID 10 e MAC de destino X:X:X:X:X:X

◦ Fluxo 3: pacotes com IP de origem X.X.X.X, IP de destino Y.Y.Y.Y e porta TCP de destino 80

(21)

21

Como OpenFlow funciona

 Exemplos de campos para definição do

(22)

Como OpenFlow funciona

 Quando o switch recebe um pacote ele deve

(23)

23

Como OpenFlow funciona

 Se o cabeçalho não for compatível com

nenhum fluxo em sua tabela, o switch deve encaminhar o cabeçalho (ou pacote todo) para o controlador como Packet-In

(24)

Como OpenFlow funciona

 Ao receber o pacote, o controlador deve

tomar uma decisão e

Enviar uma requisição de mudança da tabela

de fluxos do switch (Flow-Mod)

◦ Devolver o pacote (ou o cabeçalho + buffer-id)

Indicar uma ação para o pacote (Packet-Out)

(25)

25

(26)
(27)

27

Exercício de fixação 2

 O que é um fluxo? O que é uma tabela de fluxos?

Qual equivalente da tabela de fluxos em switches convencionais?

 Em qual camada do modelo TCP/IP o protocolo

OpenFlow atua?

 Qual o papel do controlador?

 Qual a função das seguintes mensagens e como elas

são processas no controlador?

◦ Packet-In

(28)

Exemplo com OpenFlow

 Simulação de requisição HTTP em rede com

(29)

29

(30)
(31)

31

(32)
(33)

33

(34)
(35)

35

(36)
(37)

37

(38)
(39)

39

(40)
(41)

41

(42)

Controlador OpenFlow

 O controlador OpenFlow se comunica com

os switches através de um canal seguro

◦ Objetivo: atualização da tabela de fluxo

◦ A lógica é executada pelo controlador

Fornece API (Application Programming

Interface) para implementação de

aplicações.

 Canal de controle: tcp ou ssl; in-band ou

(43)

43

Exemplos de controladores

 NOX/POX  Ryu  Floodlight  Kytos  ONOS  OESS  OpenDayLight  RouteFlow

(44)

Pontos de atenção

 Linguagem de programação (possui ligação

direta com a performance do controlador);

 Curva de aprendizado;

 Quantidade de usuários e comunidade de

suporte;

 Bibliotecas e Aplicações de apoio  Versão do OF

 Foco: Southbound/Northbound API;

(45)

45

Objetos de estudo

 POX:

◦ Suporta apenas a versão 1.0 do OpenFlow

◦ Python

◦ Largamente utilizado e suportado, curva de aprendizagem suave

◦ Desvantagem: Baixa performance

 Ryu:

◦ Suporta OpenFlow 1.0, 1.1, 1.2, 1.3 e extensões da Nicira;

◦ É um Framework para desenvolvimento de aplicações

SDN, ao invés de um controlador monolítico

◦ Diversos componentes: openstack, snort, REST, Topology manager, HA

(46)
(47)

47

Executando o POX

 cd pox/

 python pox.py --verbose myfirstapp py \

log --no-default --file=/tmp/mylog.log

◦ --verbose → Exibe o modo debug do controlador

◦ openflow.of_01 --port=6634 → componente OF1.0

◦ log → componente de logging

◦ py → console python após iniciar o controlador

(48)

Exemplo com POX e Mininet

 Utilizar a aplicação “myfirstapp” para

instalar, via console, fluxos de

encaminhamento entre a porta 1 e 3 em uma topologia “single,4”

python pox.py --verbose myfirstapp py log --no-default --file=/tmp/mylog.log

sudo mn --topo single,4 --mac --arp --controller remote

(49)

49

Exemplo com POX e Mininet

POX> import pox.openflow.libopenflow_01 as of POX> from myfirstapp import myfirstapp

POX> POX> msg = of.ofp_flow_mod() POX> msg.match.in_port = 1 POX> msg.actions.append(of.ofp_action_output(port = 3)) POX> myfirstapp.switches[1].send(msg) POX> POX> msg = of.ofp_flow_mod() POX> msg.match.in_port = 3 POX> msg.actions.append(of.ofp_action_output(port = 1)) POX> myfirstapp.switches[1].send(msg)

(50)

Ryu

 Instalação de dependências:

# ver na doc da oficina

 Instalação do Ryu

◦ git clone git://github.com/osrg/ryu.git

(51)

51

(52)
(53)

53

Bibliotecas e Apps de apoio

 NetworkX

◦ Estrutura de dados para armazenamento de

informações da topologia de rede

 LLDP

◦ Aplicação de apoio para descoberta de enlaces

 REST

◦ Aplicação de apoio para Northbound API

 Topology Viewer

◦ Aplicação de apoio para visualização da rede

(54)
(55)

55

O que é um testbed

 Rede experimental cuja infraestrutura se

assemelha ao ambiente de produção na qual é possível implementar e avaliar diferentes soluções

◦ Protocolos

◦ Tecnologias

◦ Aplicações

 Formas de experimentação

 Permite a validação de experimentos:

◦ Escalabilidade

(56)

Exemplos de Testbeds

 FUTEBOL  Chão da Terra  GENI  OFELIA  FIBRE

(57)

57

FIBRE

Future Internet BRazilian Environmnent for

experimentation

 Testebed federado que conecta infraestruturas

de experimentação localizadas no território nacional

 Composto por diversas ilhas de

experimentação

 Em cada ilha existem diferentes recursos:

◦ OpenFlow

◦ Redes sem fio

(58)

FIBRE

 Gerenciamento através de um Framework

de Controle e Monitoramento

◦ Ofelia Control Framework

 Medição e monitoramento

 Gerenciamento de experimentos

 Alocação de recursos

 Configuração de topologia, VLAN e controlador Openflow

(59)

59

(60)
(61)

61

FIBRENet

Overlay sobre a Rede Ipê

 Integra as instituições através de circuitos

L2 e VPN

 Dividida em dois planos:

◦ Plano de Controle

(62)

Recursos disponíveis no FIBRE

 Conjunto de máquinas virtuais

 Switches OpenFlow

◦ NetFPGA

◦ Pronto/PICA8

◦ Permitem experimentos com OpenFlow 1.0

 FlowVisor: ◦ Multiplexação ◦ Isolamento  Topologias  Tabelas de fluxo  etc 

(63)

63

Tecnologias envolvidas

 MetroEthernet e-Line

 VLAN

 DatapathID (ID do switch)  Endereçamento IP

(64)

Prática 01

 Descrição: Nesta prática vamos apresentar os passos

necessários para obter acesso ao testbed FIBRE e realizar um experimento simples de setup de uma rede L2 baseada no padrão “e-Line” do Metro-ethernet Forum, cujo objetivo é prover uma conexão ponto-a-ponto entre duas UNIs (do inglês, User Network Interface).

Referências

Documentos relacionados

O presente trabalho tem os seguintes objetivos: caracterizar esse tipo de resíduo quanto a sua composição química e a sua periculosidade; avaliar a viabilidade de reci- clar placas

O irmão logo compreendeu que o arcebispo, assim como ele próprio , também não acreditava na conversa da mulher do bandido; nada percebeu entretanto o abade Hans, que agradeceu

We generate correction solutions based on combinations of refactoring operations, taking in consideration two objectives: (1) maximizing code quality by minimiz- ing the number

• Esta função está disponível para uso somente quando um microfone estiver conectado. • Se um microfone não estiver conectado, “INSERT MIC” será exibido

In UMB, two types of packet forwarding are defined: (i) directional broadcast which use RTB-CTB-DATA-ACK scheme and (ii) intersection broadcast in which

We design a forwarding protocol for SDN IP network which aim to create congestion free flow entry by making use of information gathered from Openflow switches MAC

A terceira se¸ca˜o deste cap´ıtulo traz uma an´alise das equa¸c˜oes de movimento de um sistema, para verificarmos seu comportamento em rela¸c˜ao a referenciais n˜ao

A figura 17, mostra o resultado obtido pelo filtro Modified trimmed mean filter com q=0.3 em uma imagem contaminada com o ruído speckle com variância de 0.04.. Resultados do filtro