Доклад в рамках Международной конференции «Управление сетями электросвязи. Программно-конфигурируемые сети и виртуализация сетевых функций – SDN&NFV Russia 2016».
2. Решения в области SDN и NFV
НИОКР для индустрии
Центр Тестирования решений
в области SDN&NFV
Образовательные программы
Первый Центр Компетенций в области SDN в РФ (с 2012 года)
«Точка роста» для SDN-исследований в РФ
Поддержка трансфера SDN-технологий в РФ
Подготовка квалифицированных кадров для SDN-
исследований и разработок
Создание передовых решений в области SDN и NFV
3. Основные принципы
• Физическое разделение уровня передачи данных от уровня управления
сетевых устройств.
• Логически централизованное управление.
• Программируемость.
• Открытый единый интерфейс управления.
Преимущества
• Упрощение управления сетью
(OPEX)
• Удешевление оборудования
(CAPEX)
• Разработка ранее недоступных
сервисов
Внедрения
...
“SDN means thinking differently about networking”
4. A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы
+ сразу и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
A
B
A -> B
5. A
B
• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).
• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшей
стоимостью и удовлетворяющий политикам маршрутизации).
• Соответствующие правила OpenFlow устанавливаются на коммутаторы
+ сразу и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).
• Динамическая переконфигурация в случае ошибки сети.
A
B
6. •Производительность
Пропускная способность
• events per second
Задержка
• us
•Надежность и безопасность
• 24/7
•Программируемость
• Функциональность: приложения и сервисы
• Интерфейс программирования
• ЦОД требует обработку
>10M событий в
секунду
• Реактивные
контроллеры более
“чувствительные”
7. • На языке контроллера [быстро]
• На любом языке через REST интерфейс
[медленно]
• Специальные языки программирования с
другой абстракцией (например, Pyretic,
Maple)
8. • NorthBound API – интерфейс между контроллером и приложениями
• Программирование с OpenFlow не простая задача!
Сложно выполнять независимый задачи (routing, access control)
Низкоуровневая абстракция
Нужно помнить о правилах на коммутаторах
Порядок установки правил на коммутаторах неизвестен
• Переносимость приложений между контроллерами
Controller Platform
Monitor Route FW LB
9.
10.
11. OpenFlow
SPANForwarding
Example of the problem with running several apps independently:
• Forwarding and Span apps. First app sends a flow over port 1, while second ones
sends the same flow over port 5. Rules intersect with each other.
• Final rules order in the flow table is unknown.
• Packets will go using only the first rule. Thus, only one app will work. Conflict!
• We may to resolve such conflicts and some others. Just ip_src:10.0.0.1 -> output:1,5!
ip_dst:10.0.0.1
Rule 1
Rule 2
Flow table
Rule 1: ip_src:10.0.0.1 -> output:1
Rule 2: ip_src:10.0.0.1 -> output:5
New
packet
never used
12. 12Доп.главы Компьютерных сетей Шалимов А.В.
Специализированная
аппаратура
Специализированная
операционная система
Специализированные
программы
Медленно развивающаяся,
закрытая, дорогая система.
Малый рынок сбыта
Быстрое внедрение инноваций
Открытые интерфейсы
Большой рынок сбыта
Микропроцессоры
Открытый интерфейс
Операционные системы
Открытый интерфейс
Приложения
13. Система управления сетью первый российский SDN-контроллер RUNOS
RUssian Network Operation System
Есть разные варианты контроллера с единой базой и
различным набором сервисов и приложений
• Открытая версия на Github http://arccn.github.io/runos/
Своя база на C++11/14, а не Java
цель: упростить разработку сетевых приложений и не
забывать о производительности
приложения: топология, маршрут, перестроение в случае
обрыва, REST, WebUI, проактивная загрузка правил,
резервирование Active-Passive
• Внутренняя ядерная версия
Супер-производительность 30 млн событий в секунду
Разработка приложений под заказчика
• Внутренняя версия с приложениями под оператора
связи
База такая же, как и на Github. Заказчики сами могут
разрабатывать приложения. Учиться по доступным
материалам
Сервисы B2C, B2B (p2p, mp2mp, multicast, и т.п.)
Active-Standby режим
14. • Алгоритмические политики (генерация правил)
• Распределение приоритетов, комбинация правил
• LOAD, MATCH, READ абстракции
• На основе MAPLE
• Дружественный API на основе EDSL грамматики
(низкоуровневые детали скрыты в системе
выполнения – overloading, templates)
• “pkt[eth src] == eth addr”
• “if (ethsrc == A || ethdst == B) doA else doB”
• “test((eth_src & “ff0…..0”) == “….”)”
• “modify(ip_dst >> “10.0.0.1”)”
• decision are “unicast()”, “broadcast()”, “drop()”
• Композиция приложений (параллельная и
последовательная композация)
• dpi + (lb >> forwarding)
Приложения
Сервисы
OpenFlow User
space
Kernel
space
Features:
- Algorithmic policies
(rule generation)
- Client-friendly API using
EDSL grammar (low
level details are hidden
inside the runtime –
overloading, templates)
- Modules composition
(parallel and sequential
composition)
15. Ключевые слова: C++11/14, QT, Boost (asio, proto, graph)
Основные сторонние компоненты:
• libfluid project (_base, _msg)
• для взаимодействия со свитчами и разбор OpenFlow 1.3 сообщений
• libtins
• разбор пакетов внутри OpenFlow сообщений
• glog (google log)
• логирование, многопоточное
• tcmalloc (google performance tools)
• альтернативная более быстрая реализация malloc/free
• json11
• разбор конфигурационного файла
• boost graph
• Хранение топологии, поиск маршрута
16.
17. Сейчас версия 0.5
• ядро контроллера
• построение топологии
• построение маршрута через всю сеть
• первая версия системы генерации правил
• Rest API (совместимый с Floodlight)
• WebUI (мониторинг загрузки, просмотр таблиц,
удаление и добавление правил)
• Проактивная загрузка правил
• Холодное резервирование
• ARP кеширование
18. Версия 0.6 - следующий большой релиз (апрель)
• Полное обновление структуры ядра контроллера. Нет
привязка к конкретной версии протокола OpenFlow. Своя
модель, расширяемая под любые новые поля, в том числе
и специфические для оборудования.
• Пакетная грамматика для сетевых приложений. Упрощает
разработку новых приложений.
• Обновление системы генерации правил — повышена
скорость работы и улучшена генерация правил (по
количетсву правил и числу приоритетов).
• Возможность статического связывания модулей.
• Система тестов.
19. • Исходный код http://arccn.github.io/runos/
• Apache, version 2.0
• Tutorial (Readme.md)
• Как установить, запустить,
написать свое первое приложение
• Виртуальная машина
• Уже собранный контроллер
• Средства для работы с OpenFlow
• Список рассылки
• Google group runos-ofc
21. Сервисы:
1. B2C, P2P, MP
2. Multicast
3. Storm Control
4. LAG/LACP
5. InBand
Резервирование сервисов:
1. Active-Standby Controller
2. Fast failover резервирование
3. Активное резервирование
Качество доступа (QoS):
1. Priority Queuing, WRR
2. Rate-Policy, Ingress QoS,
metering
3. очереди на интерфейсах
22. Система управления сетью первый российский SDN-контроллер RUNOS
И набор приложений для управлению сетью
23. • Сервера Intel с большим
числом сетевых
интерфейсов
• OC Linux, Ubuntu 14.04, REHL
• Программный коммутатор –
на подобии Open vSwitch
• Сетевой стек на базе Intel
DPDK
• Количество портов:
• до 24x 1Gbps портов
• до 12x 10Gbps портов
• 80Gbps на устройство
• Поддерживаемые
протоколы:
• OpenFlow1.3, lacp, vlan, bfd,
stp, QoS, ipv6, gre, vxlan
Программный коммутатор:
+: полная поддержка
OpenFlow 1.3 (поиск по всем
полям, метеринг, qos)
+: неограниченное кол-во
таблиц и записей
+: можно легко изменять под
заказчика
+: масштабирование
производительности
-: цена и размер
24. Распределение трафика – DR решение на NP5 от ЦПИКС
Сетевой процессор производительностью до 240 Гб/с, 500 миллионов пакетов в секунду
5-уровневая иерархическая система очередизации. Поддержка WFQ c приоритетной очередью
Поддержка WRED, Shaping (CIR, PIR), Per flow metering, marking, policing для миллионов потоков
L2-4 switching/routing. Сбор статистики по потокам, программируемые пороги. 512М счетчиков
Модуль управления:
• 4x10/1Гб/с
• 1х1Гб/с
• 1 RS-232 console
Сетевые интерфейсы:
• 44x10Гб/с
или
• 11x40Гб/с QSFP+
или
• 4х100ГБ/с
Высота 1.5U
Монтаж в стойку 19”
26. Switching Farm
Tier 1
Tier 1
Tier 1
IIXP
Tier-2Tier-2
Tier-2 Tier-2
Tier-2
local
local local
local
local
Tier 3
local local
local
Private peering
Point-to-point
27. AS
3549
AS
0519
AS
1289 Route Server
Default =>LoadBalancing (1,2)
Dst port == 80 && proto == TCP => input(1)
Default => input(2)
from AS 1289 accept any
from AS 3549 accept any
to AS 1289 announce AS 9834
from AS 3589 action pref 125 accept AS 9834
Проблемы RS
Входящий трафик
Потоки в BGP!
IXP-L2 домен
Изоляция приложений (Sandbox)
28. •SDN/OpenFlow позволяет значительно
упростить управление сетью.
•Проект RUNOS находится в открытом доступе
• OpenFlow контроллер arccn.github.io/runos
• Система управления корпоративной сетью EasyWay.
• Набор коммерческих приложений под нужды Телеком
операторов.
•RUNOS уже используется в университетах и в
промышленности (сервис провайдеры, телеком
операторы, ЦОД).
•Приходите на Демо!
29.
30. Сеть абонента «С»
Конечные абоненты могут использовать универсальные устройства
«вечные», управляемые оркестратором провайдера
31. Сеть абонента «В»
B2B абоненты могут использовать решения
SDN Enterprise
и интегрировать их с NFV
32. Сеть абонента
B2B абоненты могут использовать решения SDN Enterprise
и интегрировать их с NFV (простой вариант)
Перечень приложений для контроллера, работающего в сети
предприятия:
• Приложение для сегментации сети и ограничения трафика +
Поддержка QoS
• Приложение “Edge”: VPN + функции Firewall+NAT и маршрутизация
с филиалами, провайдерами и партнерами, туннелирование трафика.
• Приложение ААА- работа с пользователями
• Приложение Mirror для зеркалирования трафика
• Приложение IPS для санации трафика на предмет зловредностей
• Приложение AntiDDoS для динамической блокировки бот-сетей
• Модуль интеграции с WiFi контроллерами
GUI+Средство визуализации = EasyWay
B2B абоненты могут использовать решения SDN Enterprise
и интегрировать их с NFV (сложный вариант)
Что делать, если у вас:
- трафик 10Gb/s требует шифрации и NAT,
- имеются 18 FullView BGP соседей,
- требуется DPI гигабитного трафика на предмет 200 сигнатур последнего вируса
- и при этом вы испытываете DDoS атаку ?
Два пути:
1. Купить самые мощные middlebox вашего вендора и приготовится делать это раз
в два года,
2. Купить обычный сервер (DPDK, SPDK, Netmap,QEMU, OpenVSwitch….)
Пример:
Про-активное правило «весь трафик следующий на адреса партнера
Х.Х.Х.Х должен сначала пройти шифрацию на NFV сервере»
Реактивное правило «В случае если приложение IDS на контроллере
подозревает аномалию в трафике пользователя Y весь его трафик
перенаправить на систему IPS NFV»
Мы встраиваем мощный сервер NFV в инфраструктуру сети, управляемой
SDN контроллером. Это позволяет управлять цепочками сервисов не только
про-активно, но и реактивно, динамически.
33. Сеть оператора
Смелянский Р.Л.,
Сколково КНС
2015
Калининград
DR
1
DR
2
AR AR
BRAS BRAS
Распределение трафика – DR
• Возможна реализация на серверах Intel (до 400Гбс)
6x 10Gb сетевые карты
8x 1Gb сетевые карты
+: итоговая цена дешевле, чем аналогичные по производительности
аппаратные DR
• Вместе с SDN/OpenFlow коммутаторами можно сильно упростить организацию
DR. Например, Bridge Domain (BD)
• Реализация BD на DR
3 таблицы по ~1M записей + групповая + метеринг таблица
Не используются возможности SDN
DR становится “обычным” и дорогим
• Реализация BD на AR
Логика смещается в сторону AR
Упрощение и удешевление DR