Леонид Юрьев, "Петер-Сервис"
description
Transcript of Леонид Юрьев, "Петер-Сервис"
TopGunархитектура терабитнойплатформы DPI
Леонид ЮрьевПетер-Сервис R&D
Леонид Юрьев• 20 лет программирую
• изобретаю, иногда не велосипеды
Петер-Сервис– HighLoad c 1992 года– принципы: взялись → дожимаем, качество, модульность
• решения для крупных операторов связи – BSS, Telco, BigData, High Availability & High Load
• полный цикл – разработка, внедрение и обслуживание
• более 100 миллионов абонентов – при участии наших систем
• 900 сотрудников из них 400 разработка, 250 внедрение и саппорт
• 450 фич/год
•Что такое и зачем DPI?
• TopGun – почему?
•Основные плюшки 3+1
•Круто!
•Будет Event…
•Вопросы
Agenda
25СЛАЙДОВ
Что такое DPI?
– Технология анализа полного содержимого трафика выше L2 по OSIhttp://ru.wikipedia.org/wiki/Deep_packet_inspection
• устанавливается у оператора
• работает с «сырыми» пакетами
• включение «в разрыв» – может вмешиваться в трафик
• подключение «на копию» – просто наблюдает
FLOW – примерно/грубо соответствует соединению TCP/UDP
DPIСеть Интернет
Кому и зачем нужен DPI?– Государству и Бизнесу, Usecases очень много…
Защита• Блокировка вторжений (IDS, IPS)
• Отсечение DoS-атак
Качество обслуживания,Гибкие тарифы
• QoS и шейпинг с управлением потоком (торренты не мешают)
• Subscriber Management
Фильтрация• Родительский контроль, Антивирус
• РОСКОМНАДЗОР
Информативность• Customer Experience Management
• Данные для таргетирования рекламы
• Статистика и оперативный Мониторинг сети
Требования законодательстваи регулирование
• В мире: СОРМ и PRISM
• В России: 114-ФЗ, 139-ФЗ, ПП-538
• Предотвращение утечек (DLP)
+100500…
Насколько законно и этично?– Зависит от usecase, а они очень разные…
Законно, если…• Госорганы – в соответствии с
законами:114-ФЗ, 139-ФЗ, ПП-538
• Бизнес – в соответствии с договором с пользователем
• Бизнес – в соответствии с договором с работником (DLP)
• Если заказана соответствующая услуга
Этично, когда…• Открыто, не подпольно
• Анализирует машина, не человек
• Важно как используется результат
• Обеспечить корректное использование – задача государства и общества
Сложность задачи– Какие проблемы, Captain?
1. Wire Speed• 14.8 × 2 миллионов пакетов в секунду на каждые 10Gb
2. Отказоустойчивость• иначе «интернет не работает» и потеря денег
3. Много N×10 GbE• требуется масштабирование и балансировка• миллионы flow, сотни тысяч каждую секунду• защита от DDoS, родительский контроль,
тарифы «торренты в фоне»
4. Готовность к разным задачам• иначе переделывать или отказываться
– Аaaа… but the Challenge!
Зачем нужен 101-й DPI?– у конкурентов есть проблемы
1. Зависимость от оборудования• hardware vendor lock-in
– выгодно вендору, но не оператору• не-тиражная электроника
– стоимость, риски незаменимости и уникальности• нет маневра от закладок
– выше риски их обнаружить (shit happens)
2. Нет готовности к «разным задачам»• сложно/невозможно доработать систему под новые задачи
– как пример, добавить распаковку gzip к акселератору regex• нет эластичности вычислительной сложности обработки
– дальше поясню
• «просто так» никто не сознается
• аппаратный DPI– это ерунда из 90х
Нет эластичности вычислительной сложности– де-факто имеем два варианта «софтверной архитектуры»
А ТЕПЕРЬ PPS• работаем с DMA-RING или рядом
• считаем такты, рекордный PPS
• hardcode, трудно и неудобно
• подходит для задач где,мало вычислений
• иначе – экономия на спичках
≈ 50`000`000 попугаев в секунду
OLD SCHOOL• generic interface & large i/o overhead
• от наших 5 копеек ничего не зависит
• делаем гибко и удобно, это навсегда
• подходит для задач где,много вычислений
• иначе – 90% в накладных расходах
≈ 500`000попугаев в секунду
– выбрать один из вариантови не посягать на задачи другого
Наши цели, что хотим сделать?– JFK: Американец, Первым, на Луне, Вернуться, Живой
Свободно• без привязки к конкретному
«железу»
• на оборудовании максимально широкого спектра
Эластично• чтобы просто «добавлять
серверы», без революций в коде
• масштабируемо, без неустранимых внутренних ограничений
Эффективно• с потерей на универсальности
порядка 10%
Конкурентно• с отказоустойчивостью
• с низкой стоимостью владения
Платформа• для DPI-приложений широкого
спектра
Что сделано, каков продукт?– запилили прототип и решили поделиться мыслями
Скромничаем…• 90% зависит от usecase/FL
• раскрывать детали не готовы
• приходите, расскажем подробнее
• простые метрики – для простых задач
А если померяться?• ширина канала ≈ сколько потребуется
• пакетов в секунду ≈ wire speed
• задержка ≈ 100 μs
• на ядро ≈ 90% от рекордов:
– платим 10% за совершенство архитектуры– в сравнении с Intel DPDK– без prefetch, спрашивайте почему…
TopGun– I feel the need... The need for speed!
Scope платформы
FUSE
TOPGUNВнешние системы
Управлениеи
мониторинг
Платформа = TopGun
Не входит:• Переключатель (bypass)• Управление и мониторинг• Внешние подсистемы
Основные слагаемые: 3+1=4– плюшек больше, некоторые успеем распробовать
Распределение трафика• mac rewrite и раздаем коммутаторами• управляется роем
Рой обработчиков• оцениваем здоровье и связанность• ведем перепись
Табло• контексты как наборы key-value• контролируем объем трафика и размер реплик
Транспорт событий• замысел и что внутри
Анатомия скелета– что-куда подключено
Схеме около 50 лет…1. Переключатель
2. Распределение трафика
3. Data Plane (Switch)
4. Обрабатывающие серверы
5. Control Plane (Switch)
6. Супервизор
7. Перешеек для репликациимежду копиями – наш addition
ЗЕРКАЛИРОВАНИЕ требуется ТОЛЬКОдля failover «СОВСЕМ БЕЗ ПОТЕРЬ»
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE
CONTROL PLANE
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE
CONTROL PLANE
SUPERVISOR
ПЕРЕКЛЮЧАТЕЛЬ
ГОРЯЧИЙ РЕЗЕРВВКЛЮЧЕНО
1
2
3
4
5
6
7
Что есть «Балансировка»?
РАСПРЕДЕЛЕНИЕБАЛАНСИРОВКА УПРАВЛЕНИЕ
Распределение трафика– MAC rewrite + коммутаторы
Замысел• лучше раздавать коммутаторами,
они быстрые и…
• ассоциативная таблица MAC → ПОРТ отлично управляется
Магия1. посчитаем HASH от IP и запишем два
байта в MAC, получаем 65536 сегментов трафика
2. распределим сегменты по обработчикам
3. пусть обработчики пингуют DATA PLANEот имени MAC нужных им сегментов
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BLADE BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE(Коммутатор)
dst-MAC[0,1,2,3] = 0x77
dst-MAC[4,5] = Hash(IP)
SEG #
MAC → PORT#
Распределение трафика– MAC rewrite + коммутаторы
Плюсы• молниеносная управляемость
при статической конфигурации
• мгновенный failover– при сбое broadcast и активация
• простое расширение– достаточно подключить оборудование
• на нас работает весь Ethernet:– Pause Frame, Spanning Tree, LAG…
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BLADE BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE(Коммутатор)
dst-MAC[0,1,2,3] = 0x77
dst-MAC[4,5] = Hash(IP)
SEG #
MAC → PORT#
MAC rewrite– есть подводные камни
OpenFlow• Таблица вместо Hash и не везде есть SetField
• Требуются ACL и TCAM
• Вместо 65K получаем порядка 1000
Arista 7124FX и всяческие FPGA• Да, но не удобно и vendor lock-in
POF – серебряная пуля?• Предложения по расширению OpenFlow
• Позволяет посчитать CRC и записать в MAC
• Protocol-Oblivious Forwarding, http://www.poforwarding.org/
Продержаться можно, ожидаем
подкрепление
Swarm Arrives!
Цель общая, действия локальны• все получают одну инструкцию, но действуют
самостоятельно• избавляемся от микро-менеджмента
Каждый знает о каждом• информация для согласованных решений• пример – поезда и смена расписания• можем балансировать децентрализовано
Один ничто, рой все• потеря единицы не должна влиять на результат• не храним ценного внутри, реплицируем• идеальный failover
Роевой Интеллект – эффект коллективного поведения децентрализованной самоорганизующейся системы
Балансировка – управляем роем
Оцениваем обработчики• производим перекрестную оценку каждого
• оцениваем здоровье и связанность с роем
• проверяем Data Plane и Control Plane
Ведем перепись• у каждого обработчика свой список роя
• используем NTP и timestamps
• много деталей и know how
Балансирует каждый !• по своему списку «выбирает» себе Сегменты
• hash ring не используем – мало Сегментов
• балансируем по ядрам, не по серверам
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BLADE
BL
AD
E
BL
AD
E
LIST
CONTROL PLANE(Коммутатор)
SEG#
LIST
SEG#
LIST
SEG#
LIST
SEG#
LIST
SEG#
РАСПРЕДЕЛЕНИЕ
MAC → PORT#DATA PLANEMAC → PORT#
Балансировка – управляем роем
Плюсы
• Самодиагностика– постоянная и встроенная
• Отказоустойчиво– децентрализовано– нет единой точки отказа
• Легко мониторить и интегрировать,– просто слушаем Control Plane
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BLADE
BL
AD
E
BL
AD
E
LIST
CONTROL PLANE(Коммутатор)
SEG#
LIST
SEG#
LIST
SEG#
LIST
SEG#
LIST
SEG#
РАСПРЕДЕЛЕНИЕ
MAC → PORT#DATA PLANEMAC → PORT#
Табло для роя– оперативное общедоступное хранилище
Табло• простое key-value хранилище
• как-то все записи версионированы
• заточено под zerocopy & DMA
• unordered map + shared memory + lockfree
Реплицируем• реплика на каждом сервере
• при локальном измененииотправляется уведомление в Control Plane
• получаемые обновления вливаютсяс учетом версионности
• нет единого формата версии, зависит от данных и задачи
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE
CONTROL PLANE
ОБРАБОТЧИК
репликаТАБЛО
WRITEBACKFIFO
BL
AD
E
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE
CONTROL PLANE
ОБРАБОТЧИК
репликаТАБЛО
WRITEBACKFIFO
BL
AD
E
Обработка роем– это и есть самое главное
Трансформируем задачи• сводим к виртуальной микро-машине
• состояние представляем как набор key-value
Версионируем состояние• пакеты – события,
обработка которых меняет состояние
• находим способ версионировать
Обработчики – Stateless• хранят состояние на Табло
• не хранят ценного внутри, только кэшируют
• работают в цикле– receive event, get state, handle, put state
Flow=TCPfrom=10.0.0.1:4629to=199.32.42.3:80,Node={A.5, Green},Inbound=200Outbound=6346
Рой – обработка и «Табло»
Tradeoff• Уменьшаем трафик по Control Plane
отправляя оповещения реже
• Уменьшаем объем реплик,храня только свое или 1-ю линию failover
Тонкости• TCP Window – носим «чемодан с
батарейками»
• TCP Sequences – дуплексный маркер направления потока данных
• у обработчика локальный writebackcache, запись в реплику через отдельную очередь
ПЕРЕКЛЮЧАТЕЛЬ
BL
AD
E
BL
AD
E
BL
AD
E
BL
AD
E
РАСПРЕДЕЛЕНИЕ
DATA PLANE
CONTROL PLANE
ОБРАБОТЧИК
репликаТАБЛО
WRITEBACKFIFO
BL
AD
E
Flow=TCPfrom=10.0.0.1:4629to=199.32.42.3:80,Node={A.5, Green},Inbound=200Outbound=6346
Свой «Транспорт»
Неплохо бы…• единообразно: in-process, in-server,
over-network, плюс со-процессоры
• мега-эффективный обмен сообщениями
• автоматические запятые – копировать нельзя шарить DMA
Дизайн• zerocopy + shared memory + lockfee + PI
• разные «транспорты» под один фасад
• операции со «строками» и итераторы
• ensure & asserts, safemode…
• сложности – в отдельный процесс
POD PAIR LIST STREAMING MQ
КАКАЯ-ТО МАГИЯ
C/C++ Java Erlang Go D
zerocopy
lockfree
priorityinheritance
DMA
safemode
…
NETWORK
DATA PLANECONTROL PLANE IPC
SHARED RAMDPDK MPI ØMQ netmap
Свой «Транспорт»
Внутри• концепт буфера как куска памяти и
offset_ptr (для сопроцессоров…)
• чистый lockfree (CAS & retry-on-fail),либо checked busyloop с выходом на PI-futex
• действительно эффективные итераторы и операции с цепочками
• очередь сообщений и диспетчер с пулом потоков
• providers: Intel DPDK, netmap, 0mq, MPI...
Планы• LGPL ≈ 1Hippeus, this is SPARTA!
• Думаем о Erlang, Go, D, Java, Xeon Phi, CUDA, Tilera…
MESSAGE = a list of chunks
INPLACE
WEA
K
DATA
chunk chunk chunk
externaldata
FIFO
SHARED RAMDPDK MPI ØMQ netmap
C/C++ Java Erlang Go D
PROVIDER INTERFACE
to be continued…
HighLoad++2014
POD PAIR LIST STREAMING MQ
NETWORK
DATA PLANECONTROL PLANE IPC
У нас получается, круто!
Масштабируемость• распределение коммутаторами
• MAC rewrite – OpenFlow & Arista,на подходе POF
• децентрализованное управлениераспределением трафика
Надежность / Стоимость• нет единой точки отказа
• прореживаем репликации Табло –уменьшаем трафик Control Plane
• храним в репликах Табло меньше чужих данных – уменьшаем требования RAM
• нужна полная гарантия «без потерь» –ставим зеркало
Эластичность и эффективность• «транспорт» дает гибкость за 10%
• при нехватке CPU/RAM можем просто подключить еще
• доступен safemode или непосредственно shared memory
Платформа• распределенное Табло для данных
• микро-машины с версионируемымсостоянием
• обмен сообщениямивне зависимости от среды передачи
Много нераскрытых тем,будет семинар 03.12.2013
• Законность и этика, конфиденциальность, сетевой нейтралитет
• Технология как стратегическое преимущество
• Больше usecases и Бизнеса
• Что уже сделано, пилотные проекты и внедрения
• Больше технических подробностей
• http://www.billing.ru/events/560
Checkpoint: Подведем итоги
DPI нужен – как Бизнесу, так и Государству
TopGun – интересная и сложная задача• Масштабируемо с роевым интеллектом
• Эластично и независимо от «железа»
• Стоимость/надежность – можно балансировать
• Легко развивать, терабит, задержка 100 μs
Организуем семинар 03.12.2013 http://www.billing.ru/events/560
TopGun: Вопросы?
Сейчас – HighLoad
• Предпосылки и цели TopGun
• MAC rewrite и распределение трафика
• Рой – управление балансировкой
• Рой – обработчики
• Рой – поддержка Табло
• Транспорт, zerocopy, lockfree, PI, диспетчеризация
На семинаре в Петер-Сервис
• Usecases и Бизнес
• Когда релиз?
• Законность и этика
• Свобода и конфиденциальность, компромисс с реальностью
• Технология как стратегическое преимущество
• Поддерживаемые протоколы
• Пилотные проекты и внедрения