OpenStack Networking » History » Version 24
Thiago Paiva, 21 Jan 2014 17:25
| 1 | 12 | Raphael Cóbe | h1. OpenStack Networking - Netron |
|---|---|---|---|
| 2 | 1 | Thiago Paiva | |
| 3 | 21 | Thiago Paiva | XLCloud-Networking_Needs_Quantum.pdf: continuar da página 9 |
| 4 | 21 | Thiago Paiva | |
| 5 | 22 | Thiago Paiva | h2. Neutron |
| 6 | 1 | Thiago Paiva | |
| 7 | 22 | Thiago Paiva | * Oferece uma API para definir a conexão de rede entre dispositivos de outros serviços OpenStack (e.g.: vNICs de máquinas virtuais com Nova) |
| 8 | 22 | Thiago Paiva | * Periféricos tem dois modos: controle e operação |
| 9 | 22 | Thiago Paiva | * Rede, portas e periféricos |
| 10 | 22 | Thiago Paiva | ** Modo de operação: |
| 11 | 22 | Thiago Paiva | *** Rede: List, get, add, update, remove |
| 12 | 22 | Thiago Paiva | *** Porta: List, get, add, update, remove |
| 13 | 22 | Thiago Paiva | *** Periférico: Get, plug, unplug |
| 14 | 21 | Thiago Paiva | |
| 15 | 21 | Thiago Paiva | |
| 16 | 24 | Thiago Paiva | h3. Neutron Manager |
| 17 | 21 | Thiago Paiva | |
| 18 | 21 | Thiago Paiva | * Gerenciador do Nova para o Neutron. Redireciona requisições relacionadas. |
| 19 | 1 | Thiago Paiva | * Oferece outros serviços de rede (gerenciamento de IP, DHCP, NAT, ...) |
| 20 | 21 | Thiago Paiva | |
| 21 | 21 | Thiago Paiva | |
| 22 | 24 | Thiago Paiva | h2. Plugin Neutron |
| 23 | 21 | Thiago Paiva | |
| 24 | 1 | Thiago Paiva | * Implementa todas as operações inclusas na "Network API v2.0". |
| 25 | 1 | Thiago Paiva | * Traduz as operações da "Network API v2.0" em chamadas de reconfiguração de switches reais e virtuais. |
| 26 | 1 | Thiago Paiva | * Pode ser compatível com mais de um tipo de switch. |
| 27 | 1 | Thiago Paiva | * Define se as mensagens devem ser síncronas ou assíncronas |
| 28 | 1 | Thiago Paiva | * implementa ou faz interface com qualquer tipo de SDN (OpenFlow, Orchestration, Tunneling, Network Interface, virtualization, ‘legacy’, ...) |
| 29 | 1 | Thiago Paiva | |
| 30 | 21 | Thiago Paiva | |
| 31 | 24 | Thiago Paiva | h2. Neutron e SDN |
| 32 | 21 | Thiago Paiva | |
| 33 | 24 | Thiago Paiva | * Camadas: |
| 34 | 24 | Thiago Paiva | *# presentation: configuration managers, operational APIs, ... |
| 35 | 24 | Thiago Paiva | *# virtual network application: L2 switch, firewall, load balancer, router, ... |
| 36 | 24 | Thiago Paiva | *# controller: floodlight, cisco overdrive, nicira OVP, ... |
| 37 | 24 | Thiago Paiva | *# management: VxLan, STT, OpenFlow, SNMP, nvGRE, GRE, VLANs, NetConf, ... |
| 38 | 24 | Thiago Paiva | *# devices: Nexus 5k, UCS, Open vSwitch, OF-enabled switches, Linux Bridge, ... |
| 39 | 21 | Thiago Paiva | |
| 40 | 24 | Thiago Paiva | * Neutron: |
| 41 | 21 | Thiago Paiva | |
| 42 | 21 | Thiago Paiva | i presentation: operational APIs |
| 43 | 21 | Thiago Paiva | |
| 44 | 21 | Thiago Paiva | ii virtual network application: L2 switch |
| 45 | 21 | Thiago Paiva | |
| 46 | 21 | Thiago Paiva | iii controller; | |
| 47 | 21 | Thiago Paiva | | Neutron pode implementar ou fazer interface |
| 48 | 21 | Thiago Paiva | iv management: | |
| 49 | 21 | Thiago Paiva | | com qualquer uma dessas camadas. |
| 50 | 21 | Thiago Paiva | v devices: | |
| 51 | 21 | Thiago Paiva | |
| 52 | 21 | Thiago Paiva | Observações |
| 53 | 21 | Thiago Paiva | =========== |
| 54 | 21 | Thiago Paiva | |
| 55 | 21 | Thiago Paiva | * Neutron é apenas uma camada de abstração que unifica as chamadas de configuração. Quem realmente faz o trabalho é o Neutron Plugin. |
| 56 | 21 | Thiago Paiva | |
| 57 | 21 | Thiago Paiva | * Neutron controla a virtualização de rede (network services) da mesma forma que Nova controla a virtualização de servidores e instâncias. |
| 58 | 21 | Thiago Paiva | |
| 59 | 21 | Thiago Paiva | * Neutron fornece uma API para gerenciamento de rede pelos projetos (tenants) |
| 60 | 21 | Thiago Paiva | |
| 61 | 21 | Thiago Paiva | * Neutron pode definir topologias de rede complexas |
| 62 | 21 | Thiago Paiva | |
| 63 | 21 | Thiago Paiva | * Neutron consegue lidar com diferentes tecnologias de virtualização de rede. |
| 64 | 21 | Thiago Paiva | |
| 65 | 21 | Thiago Paiva | |
| 66 | 21 | Thiago Paiva | |
| 67 | 21 | Thiago Paiva | Esquemas |
| 68 | 21 | Thiago Paiva | ======== |
| 69 | 21 | Thiago Paiva | |
| 70 | 21 | Thiago Paiva | |
| 71 | 21 | Thiago Paiva | Definições |
| 72 | 21 | Thiago Paiva | ---------- |
| 73 | 21 | Thiago Paiva | |
| 74 | 21 | Thiago Paiva | * Neutron Plugin: centralized control and data model |
| 75 | 21 | Thiago Paiva | |
| 76 | 21 | Thiago Paiva | * AuthN: authentication |
| 77 | 21 | Thiago Paiva | |
| 78 | 21 | Thiago Paiva | * AuthZ: authorization |
| 79 | 21 | Thiago Paiva | |
| 80 | 21 | Thiago Paiva | * Backend: plugin interface |
| 81 | 21 | Thiago Paiva | |
| 82 | 21 | Thiago Paiva | * Quantum API core: conjunto mínimo de operações |
| 83 | 21 | Thiago Paiva | |
| 84 | 21 | Thiago Paiva | |
| 85 | 21 | Thiago Paiva | Relações |
| 86 | 21 | Thiago Paiva | -------- |
| 87 | 21 | Thiago Paiva | |
| 88 | 21 | Thiago Paiva | * nova-compute <> VIF driver <> AMPQ <> nova-network <> Neutron manager <> API client <> Neutron API <> Neutron plugin |
| 89 | 21 | Thiago Paiva | |
| 90 | 21 | Thiago Paiva | * Neutron common: |
| 91 | 21 | Thiago Paiva | |
| 92 | 21 | Thiago Paiva | i API e API Extension |
| 93 | 21 | Thiago Paiva | |
| 94 | 21 | Thiago Paiva | ii AuthN e AuthZ |
| 95 | 21 | Thiago Paiva | |
| 96 | 21 | Thiago Paiva | iii Backend |
| 97 | 21 | Thiago Paiva | |
| 98 | 21 | Thiago Paiva | * Hypervisor(n) |
| 99 | 21 | Thiago Paiva | |
| 100 | 21 | Thiago Paiva | * VM(n) + eth(n) <-> hypervisor's Network stack |
| 101 | 21 | Thiago Paiva | |
| 102 | 21 | Thiago Paiva | * Quantum plugin agent <-> hypervisor's Network stack |
| 103 | 21 | Thiago Paiva | |
| 104 | 21 | Thiago Paiva | * Neutron Plugin <-> Neutron common |
| 105 | 21 | Thiago Paiva | |
| 106 | 21 | Thiago Paiva | * Neutron Plugin <-> Hypervisor(n) (quantum plugin agent) |
| 107 | 21 | Thiago Paiva | |
| 108 | 21 | Thiago Paiva | * Neutron Plugin <-> Network switch (quantum plugin agent) |
| 109 | 21 | Thiago Paiva | |
| 110 | 21 | Thiago Paiva | |
| 111 | 21 | Thiago Paiva | Quantum Plugin BaseClass |
| 112 | 21 | Thiago Paiva | ======================== |
| 113 | 21 | Thiago Paiva | |
| 114 | 21 | Thiago Paiva | * get_all_networks(self, tenant_id, **kwargs): returns a dictionary containing all <network_uuid, network_name> for the specified tenant. |
| 115 | 21 | Thiago Paiva | |
| 116 | 21 | Thiago Paiva | * create_network(self, tenant_id, net_name, **kwargs): creates a new Virtual Network, and assigns it a symbolic name. |
| 117 | 21 | Thiago Paiva | |
| 118 | 21 | Thiago Paiva | * delete_network(self, tenant_id, net_id): deletes the network with the specified network identifier belonging to the specified tenant. |
| 119 | 21 | Thiago Paiva | |
| 120 | 21 | Thiago Paiva | * get_network_details(self, tenant_id, net_id): retrieves a list of all the remote vifs that are attached to the network. |
| 121 | 21 | Thiago Paiva | |
| 122 | 21 | Thiago Paiva | * update_network(self, tenant_id, net_id, **kwargs): updates the attributes of a particular Virtual Network. |
| 123 | 21 | Thiago Paiva | |
| 124 | 21 | Thiago Paiva | * get_all_ports(self, tenant_id, net_id, **kwargs): retrieves all port identifiers belonging to the specified Virtual Network. |
| 125 | 21 | Thiago Paiva | |
| 126 | 21 | Thiago Paiva | * create_port(self, tenant_id, net_id, port_state=None, **kwargs): creates a port on the specified Virtual Network. |
| 127 | 21 | Thiago Paiva | |
| 128 | 21 | Thiago Paiva | * update_port(self, tenant_id, net_id, port_id, **kwargs): updates the attributes of a specific port on the specified Virtual Network. |
| 129 | 21 | Thiago Paiva | |
| 130 | 21 | Thiago Paiva | * delete_port(self, tenant_id, net_id, port_id): deletes a port on a specified Virtual Network, if the port contains a remote interface attachment, the remote interface is first un-plugged and then the port is deleted |
| 131 | 21 | Thiago Paiva | |
| 132 | 21 | Thiago Paiva | * get_port_details(self, tenant_id, net_id, port_id): this method allows the user to retrieve a remote interface that is attached to this particular port |
| 133 | 21 | Thiago Paiva | |
| 134 | 21 | Thiago Paiva | * plug_interface(self, tenant_id, net_id, port_id, remote_interface_id): attaches a remote interface to the specified port on the specified |
| 135 | 21 | Thiago Paiva | Virtual Network. |
| 136 | 21 | Thiago Paiva | |
| 137 | 21 | Thiago Paiva | * unplug_interface(self, tenant_id, net_id, port_id): detaches a remote interface from the specified port on the specified Virtual Network. |
| 138 | 21 | Thiago Paiva | |
| 139 | 21 | Thiago Paiva | * __subclasshook__(cls, klass): the __subclasshook__ method is a class method that will be called (Already Implemented) everytime a class is tested using issubclass(klass, Plugin). In that case, it will check that every method marked with the abstractmethod decorator is provided by the plugin class |
| 140 | 21 | Thiago Paiva | |
| 141 | 21 | Thiago Paiva | |
| 142 | 21 | Thiago Paiva | |
| 143 | 21 | Thiago Paiva | Perguntas |
| 144 | 21 | Thiago Paiva | ========= |
| 145 | 21 | Thiago Paiva | |
| 146 | 21 | Thiago Paiva | * O que é e o que faz o Neutron Backend? |
| 147 | 21 | Thiago Paiva | |
| 148 | 21 | Thiago Paiva | * Como é feita a autenticação? |
| 149 | 21 | Thiago Paiva | |
| 150 | 21 | Thiago Paiva | * Quais são as funções da API? |
| 151 | 21 | Thiago Paiva | |
| 152 | 21 | Thiago Paiva | * Como definir quais máquinas físicas fazem parte da núvem? |
| 153 | 21 | Thiago Paiva | |
| 154 | 21 | Thiago Paiva | |
| 155 | 21 | Thiago Paiva | Citações |
| 156 | 21 | Thiago Paiva | ======== |
| 157 | 21 | Thiago Paiva | |
| 158 | 21 | Thiago Paiva | "Because each plug-in implements all the operations included in Networking API v2.0, do not be concerned about which plug-in is used." |
| 159 | 21 | Thiago Paiva | |
| 160 | 21 | Thiago Paiva | "Neutron exposes a logical API to define network connectivity between devices from other OpenStack services (e.g., vNICs from Nova VMs). The logical connectivity described using the API must be translated into actually configuration on virtual and/or physical switches. This is where a Neutron plugin comes in. The Neutron plugin is able to talk to one or more types of switches and dynamically reconfigures the switches based on API calls." |
| 161 | 21 | Thiago Paiva | |
| 162 | 21 | Thiago Paiva | |
| 163 | 21 | Thiago Paiva | Páginas |
| 164 | 21 | Thiago Paiva | ======= |
| 165 | 21 | Thiago Paiva | |
| 166 | 21 | Thiago Paiva | http://docs.openstack.org/api/openstack-network/2.0/ |
| 167 | 21 | Thiago Paiva | |
| 168 | 21 | Thiago Paiva | http://www.slideshare.net/danwent/openstack-quantum-intro-os-meetup-32612 |
| 169 | 21 | Thiago Paiva | |
| 170 | 21 | Thiago Paiva | https://www.youtube.com/watch?v=_I1SrO2QBpg |
| 171 | 21 | Thiago Paiva | |
| 172 | 21 | Thiago Paiva | https://wiki.openstack.org/wiki/NeutronDevelopment |
| 173 | 21 | Thiago Paiva | |
| 174 | 21 | Thiago Paiva | http://docs.openstack.org/havana/config-reference/content/ |
| 175 | 21 | Thiago Paiva | |
| 176 | 21 | Thiago Paiva | ---- |
| 177 | 21 | Thiago Paiva | |
| 178 | 21 | Thiago Paiva | http://www.ovirt.org/images/b/b3/Quantum_Ovirt_discussion-20111103.pdf |
| 179 | 21 | Thiago Paiva | |
| 180 | 21 | Thiago Paiva | http://events.csdn.net/OpenStack/Takashi Torii-OpenStack and OpenFlowSDN.pdf |
| 181 | 21 | Thiago Paiva | |
| 182 | 21 | Thiago Paiva | http://www.openstack.org/assets/presentation-media/HK-Openstack-Namespaces1-.pdf |
| 183 | 21 | Thiago Paiva | |
| 184 | 21 | Thiago Paiva | http://www.iaas.uni-stuttgart.de/lehre/vorlesung/aktuell/vorlesungen/smcc/materialien/SoftwareDefinedNetwork_20131024_v04.pdf |
| 185 | 21 | Thiago Paiva | |
| 186 | 21 | Thiago Paiva | http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps11541/data_sheet_c78-727737.pdf |
| 187 | 21 | Thiago Paiva | |
| 188 | 21 | Thiago Paiva | http://www.linux-kvm.org/wiki/images/7/7b/Kvm-forum-2013-openstack.pdf |
| 189 | 21 | Thiago Paiva | |
| 190 | 21 | Thiago Paiva | |
| 191 | 21 | Thiago Paiva | |
| 192 | 21 | Thiago Paiva | |
| 193 | 21 | Thiago Paiva | |
| 194 | 21 | Thiago Paiva | |
| 195 | 21 | Thiago Paiva | |
| 196 | 1 | Thiago Paiva | |
| 197 | 20 | Thiago Paiva | |
| 198 | 20 | Thiago Paiva | |
| 199 | 20 | Thiago Paiva | |
| 200 | 20 | Thiago Paiva | |
| 201 | 20 | Thiago Paiva | |
| 202 | 20 | Thiago Paiva | |
| 203 | 20 | Thiago Paiva | |
| 204 | 20 | Thiago Paiva | |
| 205 | 20 | Thiago Paiva | |
| 206 | 20 | Thiago Paiva | |
| 207 | 20 | Thiago Paiva | |
| 208 | 20 | Thiago Paiva | |
| 209 | 20 | Thiago Paiva | |
| 210 | 20 | Thiago Paiva | |
| 211 | 20 | Thiago Paiva | |
| 212 | 20 | Thiago Paiva | |
| 213 | 20 | Thiago Paiva | |
| 214 | 20 | Thiago Paiva | |
| 215 | 20 | Thiago Paiva | |
| 216 | 20 | Thiago Paiva | |
| 217 | 20 | Thiago Paiva | |
| 218 | 20 | Thiago Paiva | |
| 219 | 20 | Thiago Paiva | |
| 220 | 20 | Thiago Paiva | |
| 221 | 20 | Thiago Paiva | |
| 222 | 20 | Thiago Paiva | |
| 223 | 20 | Thiago Paiva | |
| 224 | 20 | Thiago Paiva | |
| 225 | 20 | Thiago Paiva | |
| 226 | 20 | Thiago Paiva | |
| 227 | 13 | Raphael Cóbe | h2. Netron Standard Architecture |
| 228 | 13 | Raphael Cóbe | |
| 229 | 14 | Raphael Cóbe | |
| 230 | 14 | Raphael Cóbe | !http://docs.openstack.org/trunk/openstack-network/admin/content/figures/1/figures/Quantum-PhysNet-Diagram.png! |
| 231 | 14 | Raphael Cóbe | Imagem retirada da Documentação Openstack Network Admin: http://docs.openstack.org/trunk/openstack-network/admin/ |
| 232 | 14 | Raphael Cóbe | |
| 233 | 13 | Raphael Cóbe | * cloud controller host (Cloud Controller Node): quantum-server, nova-api, nova-scheduler, keystone, RabbitMQ, MySQL. |
| 234 | 13 | Raphael Cóbe | * network gateway host (Network Node): quantum-metadata-agent, quantum-dhcp-agent, quantum-l3-agent, quantum-*-plugin-agent |
| 235 | 13 | Raphael Cóbe | * conjunto de hypervisors para rodar VMs. Compute node: nova-compute, quantum-*-plugin-agent |
| 236 | 13 | Raphael Cóbe | |
| 237 | 13 | Raphael Cóbe | > 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. |
| 238 | 13 | Raphael Cóbe | |
| 239 | 13 | Raphael Cóbe | * DataNetwork: comunicação de dados dentro da implementação de nuvem. |
| 240 | 13 | Raphael Cóbe | * Management Network: comunicações entre componentes OS. |
| 241 | 13 | Raphael Cóbe | * External Network: oferece acesso à internet à implementação OS. |
| 242 | 13 | Raphael Cóbe | * API Network: expõe todas as APIs do OS, incluindo a Netron API para os tenants. Pode ser a própria rede externa utilizando o recurso de subredes para separação. |
| 243 | 13 | Raphael Cóbe | |
| 244 | 13 | Raphael Cóbe | |
| 245 | 13 | Raphael Cóbe | |
| 246 | 13 | Raphael Cóbe | |
| 247 | 13 | Raphael Cóbe | |
| 248 | 12 | Raphael Cóbe | h2. Neutron Server |
| 249 | 1 | Thiago Paiva | |
| 250 | 12 | Raphael Cóbe | quantum-server: processo principal do Netron. Expõe Netron API e encaminha as requisições de usuário para o plugin. |
| 251 | 1 | Thiago Paiva | |
| 252 | 1 | Thiago Paiva | |
| 253 | 12 | Raphael Cóbe | h2. Agentes |
| 254 | 1 | Thiago Paiva | |
| 255 | 12 | Raphael Cóbe | Agentes enviam mensagens para o Quantum-Server via RPC (rabbitmq ou qpid) ou Netron API padrão (REST). |
| 256 | 1 | Thiago Paiva | |
| 257 | 7 | Thiago Paiva | * plugin agent (quantum-*-agent): roda em cada hypervisor para realizar configuração local do vswitch. Dependente do plugin escolhido. |
| 258 | 7 | Thiago Paiva | * dhcp agent (quantum-dhcp-agent). serviço de DHCP para redes dos tentents. Usado quando as VMs devem receber IP de forma automatizada. Endereços via DHCP. Requer no mínimo dnsmasq 2.59. Configurado especificamente para o plugin utilizado. |
| 259 | 7 | Thiago Paiva | * L3 agent (quantum-l3-agent). Encaminhamento L3/NAT para oferecer acessos as redes externas. Roteador que conecta as redes L2. Fica no Network Node. Usa: Linux IP Stack e IP tables. |
| 260 | 11 | Raphael Cóbe | ** Deve-se garantir que existam rotas entre o serviço de metadata do host e cada rede privada. |
| 261 | 11 | Raphael Cóbe | ** Nós que rodem quantum-l3-agent não devem ter endereços IP especificados manualmente para a NIC conectada a rede externa e sim uma faixa de IPs que poderá ser usada para roteamento. |
| 262 | 11 | Raphael Cóbe | |
| 263 | 10 | Raphael Cóbe | <pre> |
| 264 | 10 | Raphael Cóbe | $ sudo ovs-vsctrl add-br br-ext |
| 265 | 10 | Raphael Cóbe | $ sudo ovs-vsctrl add-port br-ext eth1 |
| 266 | 10 | Raphael Cóbe | </pre> |
| 267 | 1 | Thiago Paiva | |
| 268 | 7 | Thiago Paiva | * não é possível executar ping para IPs fixos. Ao invés disso, usar: router network namespace (qrouter-<UUID>) |
| 269 | 10 | Raphael Cóbe | <pre> $ ip netns exec qrouter-<UUID> ping <fixed ip> </pre> |
| 270 | 1 | Thiago Paiva | |
| 271 | 1 | Thiago Paiva | |
| 272 | 12 | Raphael Cóbe | h2. Netron API |
| 273 | 1 | Thiago Paiva | |
| 274 | 1 | Thiago Paiva | Serviço de redes virtual. Define conexões e endereços para os outros serviços. |
| 275 | 1 | Thiago Paiva | |
| 276 | 2 | Thiago Paiva | * Network: segmento L2 isolado (análogo a uma VLAN). |
| 277 | 7 | Thiago Paiva | * Subnet: bloco de endereços de IP (V4 ou V6) e estados de configuração associados. |
| 278 | 1 | Thiago Paiva | * Port: ponto para conexção de dispositivos. |
| 279 | 1 | Thiago Paiva | <pre> |
| 280 | 1 | Thiago Paiva | network <-- port |
| 281 | 3 | Thiago Paiva | | | |
| 282 | 3 | Thiago Paiva | -------------- subnet |
| 283 | 1 | Thiago Paiva | </pre> |
| 284 | 1 | Thiago Paiva | |
| 285 | 1 | Thiago Paiva | > fixed_ips é atributo do port |
| 286 | 1 | Thiago Paiva | > port.fixed_ips = {<IP1>:<subnet1>, <IP2>:<subnet2>, ...} |
| 287 | 1 | Thiago Paiva | |
| 288 | 1 | Thiago Paiva | |
| 289 | 1 | Thiago Paiva | h2. Netron Plugins |
| 290 | 12 | Raphael Cóbe | |
| 291 | 1 | Thiago Paiva | 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 |
| 292 | 7 | Thiago Paiva | 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 |
| 293 | 7 | Thiago Paiva | pacotes de dados. |
| 294 | 1 | Thiago Paiva | |
| 295 | 1 | Thiago Paiva | Os plugins devem processar chamadas de API e gerenciar vSwitches. |
| 296 | 8 | Thiago Paiva | |
| 297 | 1 | Thiago Paiva | OpenVSwitch: open vswitch, quantum-plugin-openvswitch-agent |
| 298 | 1 | Thiago Paiva | |
| 299 | 15 | Raphael Cóbe | <pre> |
| 300 | 1 | Thiago Paiva | $ sudo ovs-vsctrl add-br br-int |
| 301 | 15 | Raphael Cóbe | </pre> |
| 302 | 1 | Thiago Paiva | |
| 303 | 12 | Raphael Cóbe | * br-int: integration bridge, nome padrão e fixo. |
| 304 | 1 | Thiago Paiva | |
| 305 | 1 | Thiago Paiva | |
| 306 | 12 | Raphael Cóbe | h2. Netron Command Line Application |
| 307 | 1 | Thiago Paiva | |
| 308 | 1 | Thiago Paiva | Requer: python-pyparsing, python-cliff, python-quantumclient |
| 309 | 1 | Thiago Paiva | |
| 310 | 1 | Thiago Paiva | |
| 311 | 15 | Raphael Cóbe | h2. OpenStack Compute |
| 312 | 1 | Thiago Paiva | |
| 313 | 12 | Raphael Cóbe | Interagem com Netron através da API. Comunica com Netron API para connectar cada vNIC da VM em uma rede em particular. |
| 314 | 1 | Thiago Paiva | |
| 315 | 1 | Thiago Paiva | h2. Neutron Client |
| 316 | 1 | Thiago Paiva | |
| 317 | 1 | Thiago Paiva | agent-* |
| 318 | 1 | Thiago Paiva | |
| 319 | 1 | Thiago Paiva | dhcp-agent-* |
| 320 | 1 | Thiago Paiva | |
| 321 | 1 | Thiago Paiva | ext-* (extensões) |
| 322 | 1 | Thiago Paiva | |
| 323 | 1 | Thiago Paiva | floatingip-* |
| 324 | 1 | Thiago Paiva | |
| 325 | 1 | Thiago Paiva | l3-agent-* |
| 326 | 1 | Thiago Paiva | |
| 327 | 1 | Thiago Paiva | lb-* (loading balance) |
| 328 | 1 | Thiago Paiva | lb-pool-* |
| 329 | 1 | Thiago Paiva | lb-healthmonitor-* |
| 330 | 1 | Thiago Paiva | lb-member-* |
| 331 | 1 | Thiago Paiva | lb-vip-* |
| 332 | 1 | Thiago Paiva | |
| 333 | 1 | Thiago Paiva | net-* |
| 334 | 1 | Thiago Paiva | |
| 335 | 1 | Thiago Paiva | queue-* |
| 336 | 1 | Thiago Paiva | |
| 337 | 1 | Thiago Paiva | router-* |
| 338 | 1 | Thiago Paiva | |
| 339 | 1 | Thiago Paiva | security-* |
| 340 | 1 | Thiago Paiva | |
| 341 | 1 | Thiago Paiva | subnet-* |
| 342 | 1 | Thiago Paiva | |
| 343 | 1 | Thiago Paiva | quota-* |
| 344 | 1 | Thiago Paiva | |
| 345 | 1 | Thiago Paiva | security-group-* |
| 346 | 1 | Thiago Paiva | |
| 347 | 12 | Raphael Cóbe | h2. Exemplos - Netron API |
| 348 | 16 | Raphael Cóbe | |
| 349 | 15 | Raphael Cóbe | <pre> |
| 350 | 1 | Thiago Paiva | $ quantum net-create net1 |
| 351 | 1 | Thiago Paiva | $ quantum net-create net2 --provider:network_type local |
| 352 | 1 | Thiago Paiva | $ quantum net-create --tenant-id=<id> net1 |
| 353 | 1 | Thiago Paiva | |
| 354 | 1 | Thiago Paiva | $ quantum subnet-create net1 192.168.0.2/22 --name subnet1 |
| 355 | 1 | Thiago Paiva | |
| 356 | 1 | Thiago Paiva | $ quantum port-create net1 --fixed-ip ip_addr=192.168.2.40 |
| 357 | 1 | Thiago Paiva | $ quantum port-create net1 |
| 358 | 1 | Thiago Paiva | $ quantum port-list --fixed-ips |
| 359 | 1 | Thiago Paiva | $ quantum port-list --tenant-id=<tenant id> |
| 360 | 1 | Thiago Paiva | $ quantum port-list --device-id=<vm id> |
| 361 | 1 | Thiago Paiva | |
| 362 | 15 | Raphael Cóbe | </pre> |
| 363 | 15 | Raphael Cóbe | |
| 364 | 1 | Thiago Paiva | * as redes já devem estar criadas para serem adicionadas na instanciação das VMs |
| 365 | 15 | Raphael Cóbe | <pre> |
| 366 | 1 | Thiago Paiva | $ nova boot --image=<img id> --flavor=<fl id> --nic net_id=<net id> <vm name> |
| 367 | 15 | Raphael Cóbe | </pre> |
| 368 | 1 | Thiago Paiva | * para ip fixo (port deve ser criado antes da instanciação) |
| 369 | 15 | Raphael Cóbe | <pre> |
| 370 | 1 | Thiago Paiva | $ nova boot --image=<img id> --flavor=<fl id> --nic port_id=<net id> <vm name> |
| 371 | 15 | Raphael Cóbe | </pre> |
| 372 | 1 | Thiago Paiva | |
| 373 | 12 | Raphael Cóbe | h2. Físico -> Virtual |
| 374 | 1 | Thiago Paiva | |
| 375 | 1 | Thiago Paiva | 1) eth0 (VM) |
| 376 | 1 | Thiago Paiva | 2) TAP VNET0 (hypervisor network interface card, VIF, vNIC) |
| 377 | 7 | Thiago Paiva | 3) LINUX BRIDGE qbrXXX (hub, multi NIC, virtual ou físico) |
| 378 | 1 | Thiago Paiva | 4) veth pair {qcbXXX, qvoXXX} (entra de um lado e sai do outro) |
| 379 | 1 | Thiago Paiva | 5) open switch bridge br-int (virtual switch, integration bridge,todos as VM estão conectadas a ele) |
| 380 | 1 | Thiago Paiva | 6) veth pair (int-br-eth1, phy-br-eth1) |
| 381 | 1 | Thiago Paiva | 7) physical network interface card eth1 |
| 382 | 1 | Thiago Paiva | |
| 383 | 12 | Raphael Cóbe | h2. Ryu |
| 384 | 16 | Raphael Cóbe | |
| 385 | 15 | Raphael Cóbe | <pre> |
| 386 | 1 | Thiago Paiva | $ sudo pip install ryu |
| 387 | 7 | Thiago Paiva | $ sudo apt-get install quantum-plugin-ryu-agent openvswitch-switch python-openvswitch openvswitch-datapath-dkms |
| 388 | 15 | Raphael Cóbe | </pre> |
| 389 | 19 | Raphael Cóbe | |
| 390 | 7 | Thiago Paiva | * ovs_ryu_plugin.ini e quantum.conf devem ser copiados em cada nó que tenha agente ryu |
| 391 | 1 | Thiago Paiva | |
| 392 | 1 | Thiago Paiva | |
| 393 | 17 | Raphael Cóbe | h2. Floodlight |
| 394 | 19 | Raphael Cóbe | |
| 395 | 17 | Raphael Cóbe | |
| 396 | 17 | Raphael Cóbe | 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. |
| 397 | 17 | Raphael Cóbe | |
| 398 | 17 | Raphael Cóbe | Conexão entre FloodLight e Neutron em dois passos: |
| 399 | 17 | Raphael Cóbe | |
| 400 | 17 | Raphael Cóbe | # Rodar o REST Proxy Plug-in no neutron-server. Esse plugin foi projetado para rodar como parte do Neutro service. |
| 401 | 17 | Raphael Cóbe | # 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. |
| 402 | 17 | Raphael Cóbe | |
| 403 | 17 | Raphael Cóbe | |
| 404 | 12 | Raphael Cóbe | h2. Not to do |
| 405 | 1 | Thiago Paiva | |
| 406 | 7 | Thiago Paiva | * Proxies ainda não implementados então não se deve executar: |
| 407 | 1 | Thiago Paiva | ** nova-manage |
| 408 | 1 | Thiago Paiva | ** nova para administrar recursos de rede |