Сетевые технологии в современных
частных облаках. История развития
сетей, используемые технологии,
проблемы и их решение
Пономарев Вадим
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Соединение нескольких дата-центров
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Гибридные сети
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Switching
1. Forwarding database (FDB)
2. VLAN-фильтр
3. Learning / Flooding
4. STP
+ скрипты с iproute / iptables
Linux Bridge
1. все возможности LinuxBridge
Open vSwitch
1. все возможности LinuxBridge
2. LACP-агрегация каналов
3. поддержка туннелей GRE, VXLAN, STT + IPSec
4. OpenFlow
5. multi-table forwarding
6. удаленное управление (OVSDB)
7. поддержка DPDK
8. conntrack, QoS, BFD, 802.1ag, NetFlow/sFlow/SPAN, ….
+ список всех возможностей: http://www.openvswitch.org/support/dist-docs-2.5/WHY-OVS.md.html
Open vSwitch
Приватные сети
Изолирование трафика
Изолирование трафика
# ovs-vsctl show
Port "tap1"
tag: 1
Interface "tap1"
type: internal
Port "tap2"
tag: 1
Interface "tap2"
type: internal
Изолирование трафика
# ovs-ofctl dump-flows br-int
in_port=1,dl_dst=fa:16:3e:9a:ea:09 actions=output:2
in_port=2,dl_dst=fa:16:3e:d3:ac:4a actions=output:1
in_port=1 actions=drop
in_port=2 actions=drop
# ebtables-save
ebtables -A FORWARD --logical-in br-int -s fa:16:3e:9a:ea:09 -d fa:16:3e:d3:ac:4a -j ACCEPT
ebtables -A FORWARD --logical-in br-int -s fa:16:3e:d3:ac:4a -d fa:16:3e:9a:ea:09 -j ACCEPT
ebtables -A FORWARD --logical-in br-int -j DROP
Изолирование трафика
dl_vlan=2,dl_dst=fa:16:3e:9a:ea:09
actions=strip_vlan,load:0x66->NXM_NX_TUN_ID[],output:10
Управление свичем
Управление свичем
Управление свичем
Openstack Neutron-ovs-agent
Туннельные протоколы
VXLAN GENEVE GRE (OVS) NVGRE STT
Based protocol UDP UDP GRE GRE TCP
Tunnel ID field
size (bit)
24 24 32 24 + 8 64
Encapsulation
overhead
(bytes)
50 54 42 42 76
NIC offload checksum / UFO checksum / UFO checksum checksum checksum / TSO
Bare-metal
support
yes no yes no no
Производительность
VXLAN GREFlamegraph ksoftirq/0 (10sec)
● https://media.neliti.com/media/publications/177711-EN-performance-analysis-of-vxlan-and-nvgre.pdf
● https://blog.russellbryant.net/2017/05/30/ovn-geneve-vs-vxlan-does-it-matter/
Маршрутизация
Маршрутизация
Маршрутизация
Маршрутизация
# ip netns
qrouter-4fe89159-41ee-4380-9a11-cdf5cb9e2644
# ip netns exec qrouter-4fe89159-41ee-4380-9a11-cdf5cb9e2644 ip a
71: qr-87b8abb8-96: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether fa:16:3e:87:41:15 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.1/24 brd 192.168.0.255 scope global qr-87b8abb8-96
valid_lft forever preferred_lft forever
75: qg-7ec7a054-81: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
link/ether fa:16:3e:c2:22:5c brd ff:ff:ff:ff:ff:ff
inet 95.213.101.38/32 brd 95.213.101.38 scope global qg-7ec7a054-81
valid_lft forever preferred_lft forever
Маршрутизация в OpenStack
Failover active-standby
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Несколько дата-центров
Несколько дата-центров
Несколько дата-центров
Несколько дата-центров
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Гибридная сеть
1. bare-metal сервер не управляется
2. нет VXLAN на bare-metal
3. VLAN нельзя использовать
4. автоматизация
Гибридная сеть
Cloud controller должен уметь управлять
VTEP-свичем *
* VTEP - VXLAN Tunnel End Point
Проблемы публичных сетей
1. опять “растягиваем” L2
2. адреса “прибиты” к
региону / роутеру
Динамические публичные сети
1. избавляемся от L2
2. BGP signaling
3. миграция VM между
дата-центрами с IP-адресом
Проблемы облачных сетей
1. Большие L2-сегменты
2. Большое количество MAC-адресов
3. Ограниченность VLAN
4. Соединение нескольких дата-центров
5. Гибридные сети
6. Защита трафика
Итоги
Итоги
Итоги
Итоги
Проблемы производительности
1. стек Linux TCP/IP
2. NAT
3. tap-интерфейсы
4. сетевой драйвер в гостевой системе
Базовый тюнинг работает
DPDK
DPDK
DPDK внутри VM
DPDK + namespace
DPDK + namespace
DPDK + namespace
Физическая сеть L2
Физическая сеть L2 – отказ leaf
Физическая сеть L2 – отказ spine
Физическая сеть L2 – super spine
Физическая сеть L3
Развитие
1. SDN -> стабильность, интеграция с bare-metal
2. Network Functions Virtualization, NFV -> vendor-image
3. Cloud networks -> BGP EVPN, шифрование
4. Linux networking stack -> оптимизация, XDP eBPF
5. Open vSwitch -> OVN
6. NIC -> производительность с NFV
7. Physical network -> переход на 100Gb, IP-Fabric
Развитие – IP-фабрики
Вадим Пономарев
mail: velizarx@gmail.com
telegram: velizarx

Networking technology in modern Virtual Private Clouds (RUS, RootConf++ 2018)