Сетевой компонент Openstack
Neutron
linkmeup
Марат Сибгатулин
eucariot@linkmeup.ru
19.05.2017
• Виртуализация vs Облачные вычисления
• История Openstack
• Архитектура Openstack
• Сетевой компонент Neutron
• Жизнь акета
• Коммутация
• Маршрутизация
linkmeup Openstack. Neutron. 2
Содержание
От виртуализации к облачным вычислениям
Виртуализация
Облачные вычисления Виртуализация
- Разделение ПО и аппаратной платформы.
- Позволяет запускать различные ОС и
приложении на одной физической инфраструктуре
- ПО управляет аппаратным обеспечением.
Облачные вычисления
Услуги, которые рождаются из виртуализации
- Гибкость
- Скорость
- Масштабируемость
- Автоматизированное управление
- Возможность самообслуживания
linkmeup Openstack. Neutron. 3
Ресурсы можно добавлять и уменьшать по мере
необходимости
20 VMs 70 VMs 20 VMs
Гибкость
http://www.tadviser.ru/
Отказоустойчивость
и
масштабируемость
От
отказоустойчивой
инфраструктуры
К
отказоустойчивым
приложениям
linkmeup Openstack. Neutron. 4
Тренды облачных вычислений
32000 пользователей
600+ компаний-участников
20 M строк кода
Сообщество Openstack
linkmeup Openstack. Neutron. 5
Сценарии использования Openstack
• IaaS
• Серверная виртуализация
• Software Defined Network
• Software Defined Storage
• CI, CD
• Big Data computing
• Storage as a Service
• Network as a Service
Firewall, Load Balancing, VPN
• Data Base as a Service
• Data Center as a Service
Software Defined Everything
Everything as a Service
linkmeup Openstack. Neutron. 6
• Swift — облачное файловое хранилище;
• Cinder — служба работы с блочными
устройствами хранения данных
• Keystone — сервис идентификации;
• Horizon — графический интерфейс
администрирования.
• Heat — оркестратор
• AMQP – менеджер очередей
Openstack components
linkmeup Openstack. Neutron. 7
https://fuga.io/fuga-documentation/
• Nova — контроллер вычислительных ресурсов;
• Neutron — сервис NaaS между интерфейсами устройств (vNIC), которые
управляются другими сервисами OpenStack.
• Glance — библиотека образов виртуальных машин;
Quantum. Folsom. Сентябрь 2012.
Neutron. Havana. Октябрь 2013.
Функции:
Базовая коммутация и маршрутизация
LBaaS
FWaaS
VPNaaS
linkmeup Openstack. Neutron. 8
Openstack Neutron
Коммутация
Раньше
linkmeup Openstack. Neutron. 9
Compute Node 1 Compute Node 3Compute Node 2
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge
linkmeup Openstack. Neutron. 10
Коммутация
Одна сеть
Один узел
linkmeup Openstack. Neutron. 11
Kyle 10.1.1.12
BR-INT
QBR
10.2.2.10
Bender
Stan
10.1.1.11
VLAN1
VLAN2
taptap
tap
qvb
qvb
qvb
eth0 eth0
eth0
qvoqvo
qvo
Linux Bridge Security groups via iptables
OpenVSwitch
Коммутация по MAC-адресам
Сегментация сетей посредством VLAN
Linux Bridge Security groups via iptables
qvb + qvo = veth pair
qvb + qvo = veth pair
Compute Node 1
OpenVSwitch
Linux Bridge
QBR
Linux Bridge
QBR
Linux Bridge
linkmeup Openstack. Neutron. 12
Коммутация
Одна сеть
Разные узлы
linkmeup Openstack. Neutron. 13
10.2.2.10
Bender
BR-INT
QBR
VLAN2
tap
eth0
Compute Node 1
BR-INT
Compute Node 2
QBR
VLAN4
OpenVSwitch OpenVSwitch
BR-TUN BR-TUN
OpenVSwitchOpenVSwitch
VNI 7
Физическая сеть
10.2.2.14
Leela
patch-tun
patch-int
patch-tun
patch-int
VXLAN-Tunnel VXLAN-Tunnel
linkmeup Openstack. Neutron. 14
Маршрутизация
Раньше
linkmeup Openstack. Neutron. 15
Compute Node 1
Compute Node 3
Compute Node 2
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge
Network Node
QROUTE
R
QROUTE
R
InstanceInstance
InstanceInstance
InstanceInstance
linkmeup Openstack. Neutron. 16
Маршрутизация
Сейчас - DVR
linkmeup Openstack. Neutron. 17
QROUTE
R
QROUTE
R
Compute Node 1
Compute Node 3
Compute Node 2
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge
InstanceInstance
Linux Bridge Network Node
QROUTE
R
linkmeup Openstack. Neutron. 18
Маршрутизация
Разные сети
Один узел
linkmeup Openstack. Neutron. 19
BR-INT
QBR
BMW-1
QBR
VLAN1
VLAN2
Compute Node 1
QROUTE
RNetwork
Namespaces
Stan
10.1.1.11
10.2.2.10
Bender
10.1.1.1
10.2.2.1
linkmeup Openstack. Neutron. 20
Маршрутизация
Разные сети
Разные узлы
linkmeup Openstack. Neutron. 21
BR-INT
Linux
Bridge
VLAN2
Compute Node 1
BR-INT
Compute Node 2
Linux
Bridge
VLAN4
BR-
TUN
BR-TUN
VNI 7
Физическая сеть
10.2.2.14
Leela
10.1.1.13
Eric
QROUTE
R
QROUTE
R
VLAN1
VNI 17
VLAN2
10.1.1.1 10.2.2.1 10.1.1.1 10.2.2.1
linkmeup Openstack. Neutron. 22
BR-INT
Linux
Bridge
VLAN2
Compute Node 1
BR-INT
Compute Node 2
Linux
Bridge
VLAN4
BR-
TUN
BR-TUN
VNI 7
Физическая сеть
10.2.2.14
Leela
10.1.1.13
Eric
QROUTE
R
QROUTE
R
VLAN1
VNI 17
VLAN2
10.1.1.1 10.2.2.1 10.1.1.1 10.2.2.1
linkmeup Openstack. Neutron. 23
Маршрутизация
Внешние сети
Floating IP
linkmeup Openstack. Neutron. 24
BR-INT
BMW-1
QBR
VLAN1
VLAN3
Compute Node 1
QROUTE
RNetwork
Namespaces
Stan
10.1.1.11
FIPNetwork
Namespaces
BR-EX
10.1.1.1
198.51.100.5
Интернет
198.51.100.1
OpenVSwitch
linkmeup Openstack. Neutron. 25
Маршрутизация
Внешние сети
Без Floating IP
linkmeup Openstack. Neutron. 26
BR-INT
BMW-1
QBR
Compute Node 1
QROUTE
R
Stan
10.1.1.11
10.1.1.1
Интернет
BR-
TUN
SNAT
BR-
TUN
BR-INT
BR-EX
VNI 17
Network
Namespaces
OpenVSwitch
VLAN1
VLAN1
10.1.1.2
VLAN1
198.51.100.2
198.51.100.1
Network Node
linkmeup Openstack. Neutron. 27
BR-INT
BMW-1
QBR
Compute Node 1
QROUTE
R
Stan
10.1.1.11
10.1.1.1
Интернет
BR-
TUN
SNAT
BR-
TUN
BR-INT
BR-EX
VNI 17
Network
Namespaces
OpenVSwitch
VLAN1
VLAN1
10.1.1.2
VLAN1
198.51.100.2
198.51.100.1
Network Node
linkmeup Openstack. Neutron. 28
Типы устройств
linkmeup Openstack. Neutron. 29
Network Node
BR-INT
BMW-1
QBR
Compute Node 1
QROUTE
R
Stan
10.1.1.11
10.1.1.1
Интернет
BR-
TUN
SNAT
BR-
TUN
BR-INT
BR-EX
VNI
OpenVSwitch
198.51.100.1
OpenVSwitch OpenVSwitch OpenVSwitch
OpenVSwitch
Linux Bridge
Network Namespace
Network Namespace
Virtual Instance
linkmeup Openstack. Neutron. 30
Спасибо
linkmeup
Марат Сибгатулин
eucariot@linkmeup.ru
type driver / mech
driver
Flat VLAN VXLAN GRE
Open vSwitch yes yes yes yes
Linux bridge yes yes yes yes
SRIOV yes yes no no
MacVTap yes yes no no
L2 population no no yes yes
• Framework, позволяющий Openstack
одновременно использовать различные
сетевые технологии второго уровня.
• Нет необходимости писать новый плагин
с нуля.
• Отсутствие избыточного кода.
• Лёгкость добавления новых L2
технологий.
linkmeup Openstack. Neutron. 8
Neutron. The Modular Layer 2

Openstack essentials and Networking component