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

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

  • Upload
    arccn

  • View
    574

  • Download
    5

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внедрения

. . .

“SDN means thinking differently about networking”

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

A

B

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

A

B

A -> B

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

A

B

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

A

B

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Controller Platform

Monitor Route FW LB

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

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

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

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

12

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

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

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

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

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

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

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

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

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

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

Приложения

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

Сетевая операционная система 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 режим

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BRAS, BPE, IPTV, FW, CGNAT

IX

DR1 DR2

AR2AR1 AR n…

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

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

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

GPON

AC

ЦОД

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

Сервисы: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.очереди на интерфейсах

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

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

Сеть оператора – Агрегация трафика 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)+: -неограниченное кол во таблиц и записей+: можно легко изменять под заказчика+: масштабированиепроизводительности-: цена и размер

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

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

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

Router

Firewall

Load Balancer

Web Server

Distribution Switch

FWVNF

LBVNF #1

LBVNF #2

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

Клиент

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

Сеть 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

Сеть 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)

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

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

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

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

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

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

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

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

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

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

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

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

Смелянский Р.Л., Сколково КНС 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