OpenStack Networking - Netron

XLCloud-Networking_Needs_Quantum.pdf: continuar da página 9

Guias de Integração com Openflow:

Floodlight

Trema

Ryu

RestProxy Plugin

OpenVSwitch

Neutron

Serviço OpenStack que lida com rede (OpenStack Networking)

Implementação de referência

Networking API

Abstrações que descrevem os recursos:

Agentes

Agentes são softwares que devem rodar em cada nó que lida com pacotes de dados.

Neutron Manager

Camadas:

  1. presentation: configuration managers, operational APIs, ...
  2. virtual network application: L2 switch, firewall, load balancer, router, ...
  3. controller: floodlight, cisco overdrive, nicira OVP, ...
  4. management: VxLan, STT, OpenFlow, SNMP, nvGRE, GRE, VLANs, NetConf, ...
  5. devices: Nexus 5k, UCS, Open vSwitch, OF-enabled switches, Linux Bridge, ...

Neutron Plugin

Neutron Plugin são pedaços de código que implementam chamadas da API Neutron.

Componentes:

Um plugin geralmente é formado por códigos para:

Plugins disponíveis:

Observações

Esquemas e relações

Quantum Plugin BaseClass

Dúvidas ou perguntas para orientação

Definições

Referências

Visitadas

  1. http://docs.openstack.org/api/openstack-network/2.0/
  2. http://www.slideshare.net/danwent/openstack-quantum-intro-os-meetup-32612
  3. OpenStack Quantum Networking update
  4. https://wiki.openstack.org/wiki/NeutronDevelopment
  5. http://docs.openstack.org/havana/config-reference/content/
  6. Networking plug-ins
  7. OpenStack Admin Guide - Networking

Não visitadas

  1. http://www.ovirt.org/images/b/b3/Quantum_Ovirt_discussion-20111103.pdf
  2. http://events.csdn.net/OpenStack/Takashi Torii-OpenStack and OpenFlowSDN.pdf
  3. http://www.openstack.org/assets/presentation-media/HK-Openstack-Namespaces1-.pdf
  4. http://www.iaas.uni-stuttgart.de/lehre/vorlesung/aktuell/vorlesungen/smcc/materialien/SoftwareDefinedNetwork_20131024_v04.pdf
  5. http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps11541/data_sheet_c78-727737.pdf
  6. http://www.linux-kvm.org/wiki/images/7/7b/Kvm-forum-2013-openstack.pdf

Neutron e SDN (Em esboço ainda)

Netron Standard Architecture


Imagem retirada da Documentação Openstack Network Admin: http://docs.openstack.org/trunk/openstack-network/admin/

cloud controller host e network gateway host podem ser combinados em uma máquina, porém é recomendado que exista um network gateway host separado para evitar restrições de CPU entre os encaminhamentos realizados pelo quantum-l3-agent e outros serviços OS.

Neutron Server

quantum-server: processo principal do Netron. Expõe Netron API e encaminha as requisições de usuário para o plugin.

Agentes

Agentes enviam mensagens para o Quantum-Server via RPC (rabbitmq ou qpid) ou Netron API padrão (REST).

$ sudo ovs-vsctrl add-br br-ext
$ sudo ovs-vsctrl add-port br-ext eth1

Netron API

Serviço de redes virtual. Define conexões e endereços para os outros serviços.

fixed_ips é atributo do port
port.fixed_ips = {<IP1>:<subnet1>, <IP2>:<subnet2>, ...}

Netron Plugins

Projeto original assume um modelo muito básico para realizar isolamento através de Linux VLANs e tabelas IP. Netron introduz o conceito de plugin, que é a
implementação de requisições lógicas de API em forma de um back-end acoplável. Padrão: Open vSwitch e Linux Bridge. Plugin deve estar em cada nó que usa
pacotes de dados.

Os plugins devem processar chamadas de API e gerenciar vSwitches.

OpenVSwitch: open vswitch, quantum-plugin-openvswitch-agent

$ sudo ovs-vsctrl add-br br-int

Netron Command Line Application

Requer: python-pyparsing, python-cliff, python-quantumclient

OpenStack Compute

Interagem com Netron através da API. Comunica com Netron API para connectar cada vNIC da VM em uma rede em particular.

Neutron Client

agent-*

dhcp-agent-*

ext-* (extensões)

floatingip-*

l3-agent-*

lb-* (loading balance)
lb-pool-*
lb-healthmonitor-*
lb-member-*
lb-vip-*

net-*

queue-*

router-*

security-*

subnet-*

quota-*

security-group-*

Exemplos - Netron API

$ quantum net-create net1
$ quantum net-create net2 --provider:network_type local
$ quantum net-create --tenant-id=<id> net1

$ quantum subnet-create net1 192.168.0.2/22 --name subnet1

$ quantum port-create net1 --fixed-ip ip_addr=192.168.2.40
$ quantum port-create net1
$ quantum port-list --fixed-ips
$ quantum port-list --tenant-id=<tenant id>
$ quantum port-list --device-id=<vm id>

Físico -> Virtual

1) eth0 (VM)
2) TAP VNET0 (hypervisor network interface card, VIF, vNIC)
3) LINUX BRIDGE qbrXXX (hub, multi NIC, virtual ou físico)
4) veth pair {qcbXXX, qvoXXX} (entra de um lado e sai do outro)
5) open switch bridge br-int (virtual switch, integration bridge,todos as VM estão conectadas a ele)
6) veth pair (int-br-eth1, phy-br-eth1)
7) physical network interface card eth1

Ryu

$ sudo pip install ryu
$ sudo apt-get install quantum-plugin-ryu-agent openvswitch-switch python-openvswitch openvswitch-datapath-dkms

Floodlight

Floodlight pode ser utilizado como o backend para o OpenStack Network utilizando um Plug-in para Neutron. O Neutron expõe um modelo de networking-as-a-service via API REST implementada no Floodlight. Dois componentes principais são utilizados para essa integração: um aplicativo Virtual Switch do Floodlight que implementa a Neutron API e o o RestProxy plugin que conecta o Neutron com o Floodlight.

Conexão entre FloodLight e Neutron em dois passos:

  1. Rodar o REST Proxy Plug-in no neutron-server. Esse plugin foi projetado para rodar como parte do Neutro service.
  2. Habilitar o Virtual Switch no Floodlight (antigo Virtual Network Filter). Esse é o módulo que implementa um isolamento de nível 2 (baseado em MAC) em redes openflow. Esse módulo vem com o Floodlight por padrão e não depende do Neutron ou do Openstack para ser executado.

Not to do