OpenStack Networking com Neutron Apresentação: Dualtec 25/07/2015 Inovação Dualtec Equipe DevOps William Novais DevOps e SysAdmin Email: [email protected] Neutron Visão Geral O que é o Neutron? Neutron é o serviço do OpenStack que prove "network como serviço". É o responsável por criar redes, roteadores e balanceadores de carga virtuais. Baseado em "plug-ins" (agents) Prove um framework para que terceiros criem drivers para conectar o neutron a equipamentos de rede. Neutron Estrutura de rede Gerência (Management) - Comunicação entre os serviços, onde os serviços como mysql e mensageria estão escutando. Dados (Data Network) - Onde as instâncias falam umas com as outras e com os serviços como dhcp. Pública (External Network) - Usada para expor as APIs do openstack para os clientes e para permitir que as instâncias sejam acessadas de fora do OpenStack através de ip flutuante. Neutron Estrutura de rede Neutron Iproute2 Network Namespace - Similar a jaulas “jails” - Cada namespace pode ter suas próprias interfaces de rede, tabelas de roteamento e regras de firewall. - Além disso é capaz de rodar processos de forma isolada. Virtual Ethernet (veth) - Funcionam em pares e são como tubos, o que entra em uma interface sai pela outra sem nenhum processamento. - Podem ser usadas para conectar bridges, por exemplo. Neutron Server/Agents Neutron-server - Expõe API neutron para usuários - Passa as chamadas para o plugin (agent) apropriado. Neutron Agents - Neutron-dhcp-agent - Neutron-l3-agent - Neutron-metadata-agent - Neutron-lbaas-agent Neutron Server/Agents Neutron-dhcp-agent - Lança e controla o serviço dhcp para cada rede. Neutron-l3-agent - Criação de roteadores virtuais para interconectar as redes e prover ips flutuantes para as máquinas Neutron-metadata-agent - Usado pelo serviço nova-compute - Fornece informações para as máquinas virtuais sobre elas mesmas. Inclui informações sobre hostname, chaves públicas (ssh) dentre outras. Neutron-lbaas-agent - Criação de balanceadores de carga virtuais usando HAProxy Neutron Layer 2 e OpenvSwitch Em ambientes de nuvem os hypervisors que rodam as máquinas virtuais estão distribuidos entre vários hosts. Máquinas virtuais pertencentes ao mesmo segmento de rede podem estar rodando em diferentes hosts. É responsabilidade do ambiente emular a rede para as VMs como se estivessem no mesmo segmento. No OpenStack a conectividade L2 é gerenciada por um um “mechanism driver” e como exatamente é feito depende do mecanismo utlizado. O mecanismo que usamos apresentação é o OpenvSwitch nesta Neutron Layer 2 e OpenvSwitch - Funciona como um switch virtual. - O serviço neutron-openvswitch-agent é o responsável por criar as interfaces e por extender o segmento L2 entre os hypervisors. - Interfaces de rede das instâncias são conectadas a uma bridge do OpenvSwitch chamada bridge de integração (br-int). - O que acontece nesta bridge depende do tipo de driver usado (vlan, vxlan, gre, entre outros). - Aqui abordaremos vlan. Neutron Layer 2 e OpenvSwitch Neutron Layer 3 e OpenvSwitch Neutron Namespace Obrigado