1.96M
Category: internetinternet

Архитектура Neutron. Модели Neutron. Взаимодействия компонентов Neutron

1.

OpenStack networking –
Neutron (quantum)
Университет ИТМО
Олег Лазо
[email protected]

2.

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron
Программа

3.

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron
Программа

4.

OpenStack: основные компоненты, которые
(Nova)
формируют комплексное решение IaaS Compute
Создание и
управление VM
Dashboard (Horizon)
Портал
самообслуживания
Identity (Keystone)
Система
аутентификации и
авторизации
Network(Neutron)
обеспечивает «сеть
как сервис» (NaaS)
Image (Glance)
Управление имиджами
Block Storage
(CInder)
Object Storage (Swift)
петабайты
безопасного,
надежного хранения
4

5.

Neutron-NaaS
*-as-a-Service Capability
Compute
OpenStack Service
Nova
Swift (Objects)
Storage
Cinder (Block)
Glance (Images)
identity
Keystone
Network
Neutron

6.

Архитектура OpenStack

7.

Типовая загрузка VM

8.

Neutron и виртуализация сети
1.hypervisor
2.nova-scheduler
3.nova-computes
1.neutron-server
2.plugin
3.agents
8

9.

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron
Программа

10.

Общая схема Neutron

11.

Типовая модель Neutron
from http://docs.openstack.org/trunk/openstack-network/admin/content/connectivity.html
Management network.
Используется для
внутреннего
взаимодействия межу
компонентами OpenStack.
IP адреса этой сети
должны быть доступны
только внутри Data
центра.
Data network.
Предназначена для
передачи данных VM в
рамках развертывания
облаков. Требования к
IP-адресации в этой сети
зависят от используемого
плагина Neutron.
External network.
Используется для
обеспечения доступа VMs
в Интернет. IP-адреса в
этой сети должны быть
аннонсированы в сети
Интернет.
API network.
Предоставляет все
интерфейсы API
OpenStack, в том числе
API Neutron. IP-адреса в
этой сети должны быть
аннонсированы в сети
Интернет. Это может быть
и та же сеть, что и
External Network. Здесь
может быть и подсеть
Neutron, использующей
часть диапазона IPадресов, под свои нужды.

12.

DHCP
L3
Еще одна модель Neutron

13.

С несколькими агентами

14.

DHCP агент
обслуживает
только
локальные
VMs
L3 агент
обслуживает
локальные
VMs и
плавающие
IPs
Мульти-хостовая модель

15.

Компоненты Neutron (для ovs, qemu и linux bridge plugin)
metadata-agent
l3-agent
Neutron
server & plugin
Plugin
agent



DHCP agent
DB
Queue
Note: база данных (DB) и диспечер
очередей сообщений (Queue) могут
быть использованы другими службами
OpenStack
15
Neutron сервер
Осуществляет API и их расширения
Применяет сетевую модель
• Сети, подсети и порты
IP адресация для каждого порта
Plugin агент
Запущен на каждой compute node
Соединяет instances с сетевым портом
DHCP агент
В multi-host режиме, запущен на
каждой compute node (отложенный)
Старт/атоп DHCP сервер
Поддерживает DHCP конфигурацию
L3-агент
Для реализации floating IPs и другие
функции L3, такие как NAT
Один на сеть
Metadata-агент
Работает между Neutron L3-агентом и
Openstack nova metadata API
сервером

16.

Уровни Neutron сервера
Neutron API and extensions
Common service
(Validation, Authn, Authz)
Neutron Core
Plugin API
Plugin
DB
16
device
Поставщик специальных plug-in или
open source plug-in:
linux bridge plugin
openvswitch plugin
nicira plugin

17.

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron
Программа

18.

Основные модели Neutron

19.

port
HealthMonitor
Vip
*
Pool
*
*
Member
subnet
Neutron LbaaS модель

20.

Сеть и физические связи
Сеть
Физическая сеть
(Identified by name :)
Модель виртуальной
сети в Neutron
Сетевые подключения
provider network
Tenant network
GRE и локальные
подключения не имеют
физической сети
VLAN
Flat
GRE
local
Локальные подключения
для devstack одного поля
Linux bridge plug-in не
поддерживает GRE
Понимание различий Neutron provider сети и сети tenant

21.

Другой путь рассмотрения сети
internal
Только fixed IPs
выделяются
здесь
Private internal networks
Shared internal networks
Private external networks
Shared external networks
external
Здесь можно
выделять
floating IPs и
маршрутизатор
должен иметь
доступ к сети
общего
пользования
private
Только владелец
tenant может
создавать порты
здесь.
shared
Другие tenants,
кроме владельца
tenat также могут
создавать порты.

22.

Пример сети с fixed IPs (ovs plug-in)
Host A
network A
local Vlan ID 1
network C
local Vlan ID 3
int-br-eth1
br-int
patch-tun
patch-port
veth
int-br-eth2
network B
local Vlan ID 2
phy-br-eth1
patch-int
phy-br-eth2
Physnet1 vSwitch
br-eth1
Physnet2 vSwith
br-eth2
br-tun
GRE
eth1
VM ports
eth2
physical net2
Flat
Physical net1
vlan ID 1000
DHCP ports
GRE network
GRE
host C
host B
local vlan id <-> tunnel id done by br-tun flow
local vlan id <-> physical net vlan id done by physical net and br-int vSwitch

23.

Пример сети с fixed IPs (linux bridge plugin)
Host A
Network A (vlan 1)
Network B (vlan 2)
Network c
Brq<net_id>
Brq<net_id>
Brq<net_id>
eth1.1
eth1.2
tun
veth
veth
Dhcp namespace
(qdhcp-<net_id>)
Dhcp namespace
(qdhcp-<net_id>)
Dhcp namespace
(qdhcp-<net_id>)
eth1
eth2
VM ports
DHCP ports
Physical net1
vlan ID 1
physical net2
Vlan ID 2
host C
physical net3
Flat

24.

FloatingIP и маршрутизатор
Vm
10.0.1.5/24
gw: 10.0.1.1/24
FloatingIP порт
Floating IP,
фиксированный
порт на
фиксированной
IP сети
Порт,
подключеный к
интерфейсу
маршрутизатора,
должен иметь
адрес из сети
шлюза
Router interface
10.0.1.1/24
gw_port
10.0.7.2/24
Floating ip:
10.0.7.4/24
External network
router
external network
vswitch br-ex
internal nework
Vm
10.0.20.5/24
gw: 10.0.20.1/24
eth0
l3_agent
Для VM маршрутизатор используется для доступа снаружи и
позволяет VM на разных подсетях или сетях получать
доступ друг к другу с плавающим IP. Также используется
для доступа VM во вне.

25.

маршрутизатором
(ovs plugin)
Host B
L3-agent
ovs-neutron-agent
dhcp-agent
network A
local Vlan ID 3
Host A ovs-neutron-agent
network A
local Vlan ID 1
network C
local Vlan ID 2
br-int
Physnet1 vSwitch
br-eth1
br-ex
br-int
network B
local Vlan ID 1
external
network D
binding: local
Physnet2 vSwith
br-eth2
network B
local Vlan ID 2
br-tun
GRE
eth0
eth1
eth2
Physnet1 vSwitch
br-eth1
Physnet2 vSwith
br-eth2
eth1
VM ports
public net
DHCP ports
Router interface
ports
Router gateway
and flaoting ip
ports
network C
local Vlan ID 3
Physical net1
vlan ID 1000
physical net2
Flat
br-tun
GRE
eth2

26.

OpenStack и Neutron
Архитектура Neutron
Модели Neutron
Взаимодействия компонентов Neutron
Программа

27.

Использование частей AMQP
компонентами Neutron
Dhcp agent
neutron-server
get_active_networks
get_network_info
get_dhcp_port
release_dhcp_port
release_port_fixed_ip
update_lease_expiration
Plugin agent
Neutron Rest API
(resource CRUD)
get_device_details
update_device_down
tunnel_sync
network_delete
Neutron
topic
Exchange:
tunnel_update
port_update
q-agent-notifiernetwork-delete_fanout
fanout
q-agent-notifiertunnel-update_fanout
fanout
q-agent-notifierport-update_fanout
fanout
q-agent-notifiernetwork-delete_fanout
_{uuid4}
q-agent-notifiertunnel-update_fanout
_{uuid4}
q-agent-notifierport-update_fanout
_{uuid4}
dhcp
Queue:
Comsumer:
q-plugin
neutron-server
<host.>dhcp
Dhcp agent
Plugin agent

28.

Последовательность загрузки VM с
использованием Neutron компонент

29.

Доступ к Metadata
Compute node
Data network
VM
Network node
Control node
L3 agent namespace
qrouter-<xy>
Or DHCP agent namespace
qdhcp-<xxx>
nova-api-metadata
neutron-ns-metadata-proxy
unix socket
neutron-metadata-agent
Management network

30.

Mulitihost
Data network
Compute node
Compute node
nova-compute
nova-compute
neutron-dhcp-agent
neutron-dhcp-agent
neutron-l3-agent
neutron-l3-agent
neutron-<l2>-agent
neutron-<l2>-agent
VM
VM
VM
external network
VM
DHCP qdhcp-xx namespace
neutron-ns-metadata-proxy
DHCP qdhcp-xx namespace
neutron-ns-metadata-proxy
unix socket
VM
Control node
unix socket
neutron-metadata-agent
neutron-metadata-agent
Management network
VM

31.

LbaaS компоненты
neutron.conf:
service_plugins = neutron.services.loadbalancer.plugin.LoadBalancerPlugin
lbaas_agent.ini:
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
device_driver =
neutron.services.loadbalancer.drivers.haproxy.namespace_driver.HaproxyN
SDriver
Management network
Network node
neutron-lbaas-agent
Control node
neutron-<l2>-agent
Neutron-server
Pool namespace xx
haproxy
Data network

32.

У меня все.
Вопросы и пожелания?
English     Русский Rules