Top Banner
Александр Шалимов ЦПИКС, МГУ Создание и развитие отечественной платформы с открытым программным кодом для управления SDN – RUNOS
33

Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Apr 14, 2017

Download

ARCCN
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Александр ШалимовЦПИКС, МГУ

Создание и развитие отечественной платформы

с открытым программным кодом для управления SDN – RUNOS

Page 2: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

ЦПИКС Центр прикладных исследований компьютерных сетей

Решения в области SDN и NFV

НИОКР для индустрии

Центр Тестирования решений в области SDN&NFV

Образовательные программы

Первый Центр Компетенций в области SDN в РФ (с 2012 года)

«Точка роста» для SDN-исследований в РФ

Поддержка трансфера SDN-технологий в РФ

Подготовка квалифицированных кадров для SDN-исследований и разработок

Создание передовых решений в области SDN и NFV

Page 3: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Что такое SDN/OpenFlow?SDN = Software Defined Networking Основные принципы• Физическое разделение уровня передачи данных от

уровня управления сетевых устройств.• Логически централизованное управление.• Программируемость.• Открытый единый интерфейс управления.

Преимущества• Упрощение управления

сетью (OPEX)• Удешевление

оборудования (CAPEX)• Разработка ранее

недоступных сервисов

Внедрения

. . .

“SDN means thinking differently about networking”

Page 4: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Маршрутизация с SDN/OpenFlow

A

B

• Неизвестный пакет отправляется на контроллер(OF_PACKET_IN).• ( Контроллер вычисляет лучший маршрут через всю сеть с наименьшей стоимостью и удовлетворяющий политикам).маршрутизации• Соответствующие правила OpenFlow устанавливаются на + коммутаторы сразу и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).

A

B

A -> B

Page 5: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Маршрутизация с SDN/OpenFlow

A

B

• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).• ( Контроллер вычисляет лучший маршрут через всю сеть с наименьшей стоимостью и удовлетворяющий политикам).маршрутизации• Соответствующие правила OpenFlow устанавливаются на + коммутаторы сразу и обратный маршрут (OF_PACKET_OUT/FLOW_MOD).• .Динамическая переконфигурация в случае ошибки сети

A

B

Page 6: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Требования к контроллеру ПКС

•Производительность Пропускная способность

• events per second Задержка

• us• Надежность и безопасность

• 24/7•Программируемость

• : Функциональность приложения и сервисы• Интерфейс программирования

• ЦОД требуетобработку >10M событий в секунду

• Реактивные контроллеры более“чувствительные”

Page 7: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Программируемость

• На языке контроллера [быстро]• На любом языке через REST интерфейс [медленно]• Специальные языки программирования с другой ( , абстракцией например Pyretic, Maple)

Page 8: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Проблематика NorthBound API• NorthBound API – интерфейс между контроллером и

приложениями• Программирование с OpenFlow !не простая задача

(Сложно выполнять независимый задачи routing, access control) Низкоуровневая абстракция Нужно помнить о правилах на коммутаторах Порядок установки правил на коммутаторах неизвестен

• Переносимость приложений между контроллерами

Controller Platform

Monitor Route FW LB

Page 9: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Низкоуровневые детали OpenFlow

Page 10: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Низкоуровневые детали OpenFlow

Page 11: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

OpenFlow

SPANForwarding

Possible problems in OpenFlow controllersExample 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:1Rule 2: ip_src:10.0.0.1 -> output:5

New packet

never used

Page 12: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Доп.главы Компьютерных сетей Шалимов А.В.

12

Специализированнаяаппаратура

Специализированнаяоперационная система

Специализированныепрограммы

Медленно развивающаяся, закрытая, дорогая система.

Малый рынок сбыта

Быстрое внедрение инновацийОткрытые интерфейсыБольшой рынок сбыта

Микропроцессоры

Открытый интерфейс

Операционные системы

Открытый интерфейс

Приложения

Аналог – абстрации в IT и ЯП

Page 13: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сетевая операционная система Runos Система управления сетью первый российский SDN- контроллерRUNOSRUssian 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 режим

Page 14: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

RUNOS: особенности• Алгоритмические политики (генерация правил)

• Распределение приоритетов, комбинация правил• 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 spaceKernel spaceFeatures:- 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)

Page 15: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Реализация Ключевые слова: 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

• , Хранение топологии поиск маршрута

Page 16: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Пример графического интерфейса EasyWay

Page 17: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Описания релизов Сейчас версия 0.5

• ядро контроллера• построение топологии• построение маршрута через всю сеть• первая версия системы генерации правил• Rest API ( совместимый с Floodlight)• WebUI ( , , мониторинг загрузки просмотр таблиц )удаление и добавление правил• Проактивная загрузка правил• Холодное резервирование• ARP кеширование

Page 18: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Описания релизов Версия 0.6 - ( )следующий большой релиз апрель

• Полное обновление структуры ядраконтроллера. Нет привязка к конкретной версии OpenFlow. , протокола Своя модель расширяемая , под любые новые поля в том числе и .специфические для оборудования

• Пакетная грамматика для сетевых приложений. . Упрощает разработку новых приложений• Обновление системы генерации правил — повышена скорость работы и улучшена ( генерация правил по количетсву правил и числу).приоритетов• . Возможность статического связывания модулей• .Система тестов

Page 19: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Проект с открытым исходным кодом

• Исходный код http://arccn.github.io/runos/• Apache, version 2.0

• Tutorial (Readme.md)• , , Как установить запустить написать свое первое приложение

• Виртуальная машина• Уже собранный контроллер• Средства для работы с OpenFlow

• Список рассылки• Google group runos-ofc

Page 20: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Общая схема сети оператора связи

BRAS, BPE, IPTV, FW, CGNAT

IX

DR1 DR2

AR2AR1 AR n…

ЦОД оператора связи

Транспортная сеть оператора связи

Абоненты (С/В)

GPON

AC

ЦОД

Page 21: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Создание сервисов сети операторов

Сервисы:1. B2C, P2P, MP2. Multicast3. Storm Control4. LAG/LACP5. InBand

Резервирование сервисов:6. Active-Standby Controller7. Fast failover резервирование8. Активное резервирование

Качество доступа (QoS):9. Priority Queuing, WRR10.Rate-Policy, Ingress QoS,

metering11.очереди на интерфейсах

Page 22: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Система управления сетью первый российский SDN- контроллер RUNOS И набор приложений для управлению сетью

QoS и мониторинг трафика

Page 23: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть оператора – Агрегация трафика AR ( аппаратный VS

программный)• Сервера Intel с большим числом сетевых интерфейсов

• OC Linux, Ubuntu 14.04, REHL• Программный – коммутатор на подобии Open vSwitch• Сетевой стек на базеIntel DPDK

• : Количество портов• 24до x 1Gbps портов• 12до x 10Gbps портов• 80Gbps на устройство

• Поддерживаемые: протоколы• OpenFlow1.3, lacp, vlan, bfd, stp, QoS, ipv6, gre, vxlan

Программныйкоммутатор:+: полная поддержкаOpenFlow 1.3 ( поиск по , , всем полям метерингqos)+: -неограниченное кол во таблиц и записей+: можно легко изменять под заказчика+: масштабированиепроизводительности-: цена и размер

Page 24: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть оператора – Распределение трафика 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.5Высота U 19Монтаж в стойку ”

Page 25: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть оператора. ЦОД - Виртуализация сервисов Self Organizing Cloud

Примерысетевых функций

Router

Firewall

Load Balancer

Web Server

Distribution Switch

FWVNF

LBVNF #1

LBVNF #2

Источник трафика

Клиент

? Что это меняет облачная платформа Сloud Conducter от ЦПИКС

Page 26: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть IX

Switching Farm

Tier 1

Tier 1

Tier 1

IIXP

Tier-2 Tier-2

Tier-2 Tier-2 Tier-2

local local

local

local

local Tier 3

local

local

local

Private peeringPoint-to-point

Page 27: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть Internet ExchangeSDX – как может выглядеть сетьExchanging Point, построенная наSDN/NFV

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)

Page 28: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Заключение•SDN/OpenFlow позволяет значительно .упростить управление сетью• Проект RUNOS находится в открытомдоступе

• OpenFlow контроллер arccn.github.io/runos• Система управления корпоративной сетью EasyWay.• Набор коммерческих приложений под нужды .Телеком операторов

•RUNOS уже используется в университетах и ( , в промышленности сервис провайдеры , ).телеком операторы ЦОД• Приходите на !Демо

Page 29: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Спасибо за внимание!

Page 30: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть абонента «С»

Конечные абоненты могут использовать универсальные устройства «вечные», управляемые оркестратором провайдера

Page 31: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть абонента «В»

B2B абоненты могут использовать решения SDN Enterprise

и интегрировать их с NFV

Page 32: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть абонента

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 контроллером. Это позволяет управлять цепочками сервисов не толькопро-активно, но и реактивно, динамически.

Page 33: Создание и развитие отечественной платформы с открытым программным кодом для управления SDN - RUNOS

Сеть оператора

Смелянский Р.Л., Сколково КНС 2015 Калининград

DR1 DR2

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