INTRODUÇÃO ÀS REDES DEFINIDAS POR SOFTWARE - SOFTWARE DEFINED NETWORK: OPENFLOW E OPENDAYLIGHT Perito Criminal - POLITEC/RO
Arquitetura tradicional de rede: Configuração e topologias rígidas; Estruturas hierárquicas; Focado para o paradigma cliente-servidor; Serviço escalado na implementação; Não integrado com as aplicações; Banda pouco customizável e pré-definida; Redes disjuntas para uma mesma organização;
SOFTWARE DEFINED NETWORK Ser mítico?
Arquitetura tradicional de rede: Dados Voz Sensores REDE Vídeo Gerência
Arquitetura tradicional de rede: Dados Voz Vídeo 8% 7% 10% 35% REDE 11% 29% Sensores Gerência
Demandas contemporâneas: Mudanças no padrão de tráfego de rede; Acesso a serviços, aplicações e bases esparsas; Acesso de redes distintas e em movimento; Acesso em qualquer lugar, a qualquer hora; Incremento da complexidade na oferta das soluções empresariais (aplicações);
Demandas contemporâneas: Alta carga da demanda de rede, consumo de TI; Smartphones, tablets, wereables e acessórios; Internet das coisas; Crescente demanda por serviços em nuvem; Capacidade de armazenamento; Poder computacional; Análise de dados em amplitude, BigData; Alta demanda de banda e conexões; Virtualização de soluções;
Limitações atuais: Gerenciamento em nível de equipamento; Processos manuais; Protocolos concebidos isoladamente; Alta complexidade; Compatibilidade com ativos interdependentes; Acabam por se tornar redes estáticas; Alto contraste com as soluções de virtualização e QoS; Políticas inconsistentes; Crescimento limitado e dependente de fabricantes;
Definição segundo a Open Network Foundation: É uma arquitetura de rede emergente onde o controle da rede está desvinculada da simples comutação e é diretamente programável. A utilização dos comutadores de rede como dispositivos computacionais permite abstrair a infraestrutura para as aplicações, serviços e soluções da rede.
Arquitetura SDN Aplicação Aplicações da Empresa APIs Controle Controlador Serviços de Rede Openflow Infra-estrutura Dispositivos Dispositivos Dispositivos Dispositivos
Padrão aberto que permite a implementação de uma interface entre entidades controladoras e as demais camadas de comutação e encaminhamento da arquitetura SDN, permitindo a programação e controle do fluxo da rede através de seus protocolos.
Arquitetura SDN Controlador Openflow
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura tradicional Aplicação
Arquitetura SDN Aplicação Openflow
Arquitetura SDN Aplicação Openflow
Arquitetura SDN Controlador Aplicação Openflow
Arquitetura SDN Controlador Aplicação Openflow
Conjunto de instruções: Exemplo do conjunto de instruções do OpenFlow. Fonte: ONF Whitepaper.
Benefícios do OpenFlow: Centralização do controle de um ambiente com múltiplos fabricantes; Redução da complexidade e automação de processos para a convergência da rede; Mudança da Infra-estrutura em tempo real, dinamicamente; Aumento da confiabilidade e segurança da rede; Controle de rede mais granular; Melhor experiência para o usuário final;
Arquitetura SDN Aplicação Voz Vídeo Dados Controlador Openflow Vídeo Voz Sensores Gerência Dados Voz
Arquitetura SDN Controlador HP Cisco Openflow Ruckus Dell Aruba Mikrotik CheckPoint
Benefícios do OpenFlow: Centralização do controle de um ambiente com múltiplos fabricantes; Redução da complexidade e automação de processos para a convergência da rede; Mudança da Infra-estrutura em tempo real, dinamicamente; Aumento da confiabilidade e segurança da rede; Controle de rede mais granular; Melhor experiência para o usuário final;
Exemplo OpenFlow: h1 MININET h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: #sudo mn --mac --switch=ovsk h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: #sudo mn --mac --switch=ovsk mininet>dump mininet>net mininet>nodes mininet>pingall mininet>h1 ping h2 mininet>h1 ps -a h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Wireshark h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: #sudo ovs-controller ptcp:& h1 h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador 127.0.0.1:6633 h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: Controlador h1 Openflow h2 eth0 s1-eth1 s1-eth2 eth0
Exemplo OpenFlow: #sudo ovs-ofctl add-flow tcp:127.0.0.1:6634 idle_timeout=180,priority=33001,dl_type=0x800, nw_src=10.0.0.1,actions=output:2 h1 h2 eth0 s1-eth1 s1-eth2 eth0
Infraestrutura de controle de SDN; Modular, escalável e extensível; Suporta redes heterogêneas e multimarca; Patrocinado pelos fabricantes; Previsto para ser utilizado por 20 fabricantes; Permite que a criação de apps ajustáveis na rede; Focado para soluções virtualizada e na nuvem.
OpenDayLight: Lithium Release; Construído sobre Java VM; Framework OSGi; Conteiner Karaf; Segmentado em módulos; Carregamento sob demanda;
OpenDayLight: #./karaf opendaylight-user@root> >feature:list >feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core odl-mdsal-clustering odl-nsf-all odl-openflowplugin-all odl-adsal-northbound odl-base-all odl-aaa-authn odl-restconf odl-adsal-northbound odl-mdsal-apidocs odl-l2switch-switch odl-dlux-all
OpenDayLight: DLUX
OpenDayLight: Instalação de fluxos: - Através da interface gráfica; - YangUI; - Dlux; - Via método PUT
OpenDayLight: <?xml version="1.0" encoding="utf-8" standalone="no"?> <flow xmlns="urn:opendaylight:flow:inventory"> <strict>false</strict> <instructions> <instruction> <order>0</order> <apply-actions> <action> <order>0</order> <drop-action/> </action> </apply-actions> </instruction> </instructions> <table_id>0</table_id>
Obrigado! Dúvidas!? clayton.cova@gmail.com