АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 11: Перспективные сетевые технологии ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв Л.Н., Ассистент Волканов Д.Ю.
План лекции Проблемы современных сетей Программно-кофигурируемые сети Протокол OpenFlow Троичная ассоциативная память (TCAM) Сетевая операционная система Перспективы использования ПК
ПРОБЛЕМЫ СОВРЕМЕННЫХ СЕТЕЙ 3
Устаревшая архитектура Первые сети разрабатывались в х Закон Мура: мощность микрочипов удваивается каждый 18 месяцев Закон Гилдера: общая пропускная способность каналов передачи данных удваивается каждые 6 месяцев Изменился уровень развития науки и техники 4
Устаревшая архитектура Изменилась социальная роль и значимость компьютерных сетей в обществе [VoIP, потоковое видео, социальные сети] Меняется парадигма организации вычислений [на смену клиент-серверной архитектуре пришли облачные вычисления и центры обработки данных] Изменилась структура сети [число wireless пользователей превышает число wired пользователей] Изменились требования к сети 5
Распределение траффика по типам Изначальная архитектура сети не предполагала тех сценариев использования, которые актуальны на данный момент 6
World Wide Web 7
Меняется парадигма организации вычислений На смену клиент-сервисной архитектуре пришли Cloud Computing и концепция Software as a Service Fog Computing 8
Мобильная революция На каждого человека приходится по несколько мобильных устройств Появились сервисы, ориентированные на мобильные устройства 9
Повсеместная интеграция радиопередающих элементов Intel встроила модуль WIFI в свой новый процессор 10
Постоянно появляются новые wireless технологии Быстрее, дальше, дешевле! [3G – сегодняшний день] 11
Мощность wireless-устройств растёт Выпущена версия Ubuntu для замены рабочей станции Появляются 2х и 4х ядерные мобильные платформы 12
Для wireless устройств не хватает свободных частот Зона покрытия сети Мегафон 13
При увеличении числа пользователей пропускная способность разделяется Решение – увеличение количества передающих станций Слишком дорого! [Почему нельзя мультиплексировать передачу данных через разные каналы?!] 14
Сети мобильных устройств [Serval Project] Увеличивает зону покрытия Идея – связать мобильные устройства с базовыми станциями транзитивно Не может увеличить пропускную способность 15
Сложность администрирования Необходимость индивидуальной настройки каждого сетевого устройства Администратору приходится работать на уровне интерфейсов коммутационного оборудования Сложность программного и аппаратного обеспечения требует высокой квалификации администратора Возрастают требования к персоналу 16
Невозможность гибко управлять маршрутизацией внутри сети Администратор вынужден работать в терминах сетевых адресов и пакетов Протоколы динамической маршрутизации сложны и не всегда оптимальны Использование большого числа протоколов порождает множество неявных зависимостей 17
Существующая модель стека протоколов несовершенна 18
Существующая модель стека протоколов несовершенна 19
Протоколы множатся 20
нужны высококвалифицированные специалисты 21
Сети закрыты для инноваций Расширение области применения сети [оплата проезда с мобильного телефона] Повышение безопасности работы в сети [борьба с DDOS, поиск и устранение уязвимостей] Повышение эффективности работы сети [green switching] Расширение функциональности сети [Обеспечение необходимого качества сервиса] Сложность проведения экспериментов Существует множество идей по улучшению существующих сетей 22
Миллионы строк закрытого проприетарного кода RFC документов Миллиарды транзисторов Сети закрыты для инноваций Сложность внедрения новых идей Специализированное Программное Обеспечение Специализированное устройство передачи данных 23
ПРОГРАММНО- КОНФИГУРИРУЕМЫЕ СЕТИ [SOFTWARE-DEFINED NETWORKING] 24
Коммутация пакетов H1 H2 S1 Dest-MACPort R2 R1 LAN P1P1 25
Коммутация пакетов H1 H2 S1 Network Por t Next Hop Metrics R2 R1 LAN P1P1 Dest-MACPort 26
Коммутация меток H1 H2 S1 Network Por t Next Hop Metrics R2 R1 LAN P1P1 Dest-MACPort LabelAction Виртуальный канал 27
Меткой маршрутизации служит множество заголовков пакета различных уровней стека [бинарные данные или множество полей] Каждой метке соответствует набор действий [запрос, передача, сброс, изменение] Быстрый поиск соответствия с помощью быстрой ассоциативной памяти TCAM [объём: Мб, скорость: нс] Агрегация хранимых сигнатур потоков [поиск сигнатуры по шаблону] Программно-Конфигурируемые сети [коммутация потоков] 28
Примеры Обычная коммутация * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * 00:1f:.. *******port6 Коммутация потока port3 Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action 00:20..00:1f..0800vlan port6 Коммутация внутри VLAN * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ** vlan1 ***** 00:1f.. port6, port7 29
Примеры Маршрутизация * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ***** ***port6 Firewall * Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action ********22drop 30
Управление / Control Программно-Конфигурируемые сети [разделение передачи и управления] Передача / Forwarding Существует фиксированный набор простых инструкций обработки пакетов Концепция совместима с различными протоколами Работает с разноуровневым оборудованием 31
Передача / Forwarding Операционная система Приложени е Программно-Конфигурируемые сети [разделение передачи и управления] Существует фиксированный набор простых инструкций обработки пакетов Концепция совместима с различными протоколами Работает с разноуровневым оборудованием 32
Программно-Конфигурируемые сети Передача ОС App Передача ОС App Передача ОС App Сетевая ОС App [централизация управления] 33
Программно-Конфигурируемые сети Коммутатор Контроллер App [централизация управления] Протокол OpenFlow Сервисы ОС Удобный интерфейс для приложений 34
Программно-Конфигурируемые сети Коммутатор [виртуализация сети] Слой виртуализации Контроллер App Контроллер App 35
Сегмент ПКС H1 H2 S1 R2 R1 TCP или SSL P1P1 Контроллер 36 OpenFlow
Сегмент ПКС H1 H2 S1 R2 R1 Контроллер 37 TCP или SSL OpenFlow
Сегмент ПКС H1 H2 S1 R2 R1 Контроллер PatternActionPatternAction PatternAction 38 TCP или SSL OpenFlow
Протокол OpenFlow 39
Развитие OpenFlow протокола OpenFlow v1.0 (03/2010): Наиболее широко используемая версия, MAC, IPv4, единственная openflow таблица. OpenFlow v1.1 (02/2011): MPLS тэги, множество таблиц, счетчики. OpenFlow v1.2 (12/2011) OpenFlow v1.3 (04/2012) OpenFlow v1.4 (08/2012) 40
Технология OpenFlow Разделение уровней управления и передачи данных Управление данными с помощью контроллера 41
OpenFlow коммутатор (v1.0) Таблица потоков – определяет, как коммутатор будет обрабатывать каждый поток Защищенный канал – соединяет коммутатор с удаленным контроллером OpenFlow protocol – стандарт для взаимодействия коммутатора с контроллером 42
Secure Channel Отправка сообщение в соответствии с OpenFlow протоколом Позволяет контроллеру конфигурировать, управлять и контролировать состояние коммутатора TLS сессия устанавливается по инициативе коммутатора, аутентификация осуществляется посредством сертификатов 43
OpenFlow коммутатор (OpenFlow Switch spec. v1.1) Продвижение пакета только вперёд Переход: модификация пакета, обновление набора действий, обновление метаданных 44
Запись в OpenFlow таблице Просматриваемые поля: входной порт, заголовок пакета, метаданные Инструкции: Изменение пакета Продвижением пакета по конвейеру Добавление новых действий в Набор действий (Action Set) Счётчики: количество байтов и пакетов, время соединения 45
Обработка пакетов в OpenFlow-коммутаторе 46
OpenFlow протокол Поддерживает три типа сообщений: Сообщения контроллер-коммутатор –Конфигурирование коммутатора –Управление и контроль состояния –Управление таблицами (flow tables) Симметричные сообщения –Отправка в обоих направлениях –Обнаружение проблем соединения контроллера с коммутатором Асинхронные сообщения –Отправка от коммутатора к контроллеру –Объявляют об изменении состояния сети, состояния коммутаторов. 47
Троичная ассоциативная память (TCAM) 48
Устройство OpenFlow коммутатора Таблица потоков (Flow Table) MAC src MAC dst IP Src IP Dst TCP sport TCP dport Действие OpenFlow клиент ** ***port 1 port 4port 3 port 2 port 1 Таблица потоков содержит шаблоны заголовков и ассоциированные действия Заголовки имеют фиксированную длину Количество записей в таблице – единицы тысяч Пакеты анализируются и обрабатываются с канальной скоростью 49
Троичная ассоциативная память (TCAM) Множество нумерованных слотов Три возможных значения каждого бита: 0, 1 и ? Ширина TCAM (длина слота) – настраиваемый параметр На вход подается битовая строка TCAM выдает номер первого слота с успешным сопоставлением Фиксированное время каждого такта работы TCAM 50
Можно ли использовать TCAM для поиска произвольных шаблонов? Шаблоны относительно сложного вида Поиск шаблонов в телах пакетов Обработка трафика на гигабитном канале Область применения: DPI для средств IDS Примеры шаблонов в сигнатурах IDS SNORT 51
Постановка задачи поиска образцов в пакете Дано k образцов {P1,P2,…,Pk} и входная строка длины n Требуется для каждого образца определить, входит ли он в строку Виды образцов: Простые – байтовая строка длины m Детерминированные (единственное значение каждого байта) Недетерминированные (возможны wildcard и case insensitive) Составные Связанные P = P1*P2, где * - произвольная строка ограниченной длины Отрицание !P Gigabit Rate Packet Pattern-Matching Using TCAM 52
Поиск простых детерминированных образцов Дано k простых детерминированных образцов длины меньше или равной w (ширине TCAM) В такой ситуации, все образцы можно сразу разместить в слотах TCAM Короткие образцы дополнить справа символами ? Порядок размещения образцов важен! Скорость обработки трафика полностью определяется скоростью работы TCAM! 53
Методы поиска образцов (шаблонов) Программные Алгоритмы Кнута-Морриса-Пратта и Бойера-Мура Рассчитаны на поиск одного образца Сложность O(n+m) Сложность для k образцов O(k*(n+m)) Алгоритмы Ахо-Карасик и Комменц-Вальтера Одновременный поиск множества образцов Сложность O(n) и не зависит от числа образцов Экспоненциальный рост потребляемой памяти Аппаратно-ускоренные ПЛИСы Сложность O(n) Высокие затраты памяти (квадратичные от длины образца) Плохо масштабируются для множества образцов 54
Зависимость потребления памяти TCAM и оперативной памяти от ширины w TCAM Набор образцов взят из базы сигнатур ClamAV образцов Длины: от 6 до 2189 байт Средняя длина: 55 байт 55
Размер списка частичных совпадений для синтетического трафика 56
Зависимость времени обработки пакетов от соотношения скоростей работы RAM и TCAM Коэффициент скоростей сканирования – отношение общего времени обработки пакета ко времени обработки на TCAM Коэффициент скоростей работы памяти – отношение затрат времени на одно обращение к оперативной памяти к длительности такта TCAM Образцы взяты из базы сигнатур IDS SNORT 57
Сетевая операционная система 58
Особенности сетевой ОС API сетевой ОС предоставляет возможность создавать приложения на основе централизованной модели программирования API сетевой ОС позволяет создавать приложения в терминах высокоуровневых абстракций, а не низкоуровневых параметров конфигурации. [имя хоста вместо MAC-адреса] 59
Управление сетью 60
Существующие сетевые ОС NOX (Nicira Networks) Beacon (Stanford) Trema (NEC) Maestro (Rice University) SNAC (группа разработчиков) – на основе Beacon Helios (NEC) – закрытый проект BigSwitch (BigSwitch) – закрытый проект, на основе Beacon. FloodLight (открытая группа разработчиков) – на основе Beaсon. 61
Сетевая ОС NOX Разработчики – Nicira Networks OpenSource проект (лицензия GPLv2) Linux Ядро системы реализовано на C++ (около строк) Написание приложений возможно на C++ & Python Поддержка многопоточности 62
NOX (2) Компоненты сети с сетевой ОС NOX 63
NOX (3) Событийное управление Приложения являются генераторами событий –Приложения уровня ядра системы –Встроенные приложения: Discovery Topology Authenticator Routing –Пользовательские приложения 64
GUI NOX 65
Beacon (1) Разработчик - Stanford Beacon – множество пакетов работающих вместе. Возможность запускать/останавливать/обновлять/устанавлив ать во время работы контроллера, не прерывая выполнения других независимых пакетов. OpenSource проект Java Windows, Mac, Linux, Android Поддержка многопоточности 66
Beacon (2) Многопоточный конвейер по обработке пакетов 67
Trema (1) Trema – это платформа для разработки OpenFlow контроллеров на языках C/Ruby Разработчик-основатель – NEC. OpenSource проект (лицензия GPLv2) Включает в себя интегрированную среду тестирования и отладки приложений. Включает в себя встроенный эмулятор сети. Модульная архитектура. Поддержка многопоточности. 68
Trema (2) 69
Сравнение производительности контроллеров 70
Платформа управления 71 Распределенная система, функционирующая на одном или нескольких серверах в сети Функции: Сбор информации от коммутаторов. Распространение управляющих команд. Координация согласованности состояний серверов платформы управления. Программный интерфейс для создания сетевых приложений управления.
Платформа управления сетью Onix 72 Распределенная управляющая платформа, работающая на кластере физических серверов, на каждом из которых может быть запущено несколько экземпляров Onix Более общий API для управления распределенными состояниями сети по сравнению с другими контроллерами Обеспечивает гибкие (распределенные) примитивы Масштабируемость Надежность строк кода на C++
Основные компоненты SDN- сети под управлением Onix 73 Физическая инфраструктура Инфраструктура подключения Платформа Onix Логика управления сетью
ПЕРСПЕКТИВЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНО- КОНФИГУРИРУЕМЫХ СЕТЕЙ 74
Перспективы использования Универсализация сетевого оборудования Удаление функций управления из коммутационного оборудования Комбинирование оборудования и программного обеспечения разных производителей Обновление программного обеспечения [удешевление оборудования] 75
Перспективы использования Централизованное управление оборудованием сегмента Управление сегментом сети по аналогии с управление домашним маршрутизатором Автоматическая настройка оборудования Гранулярный контроль траффика [упрощение администрирования] 76
Перспективы использования Упрощение приложений с помощью стандартного интерфейса контроллера Расширяемая функциональность сети Динамическое взаимодействие пользовательских приложений и сети передачи данных Изоляция функциональности [концепция приложений] 77
Перспективы использования Упрощение разработки новых протоколов из-за централизации сети Простота установки и конфигурирования необходимых программ Проведение экспериментов на реальной инфраструктуре сети Простота сбора статистики [исследование сети] 78
Примеры перспективных направлений для исследований Разработка алгебры пространства потоков [разрешение противоречий между правилами] Доработка контроллера [масштабируемость, надёжность, безопасность] Создание средств администрирования [язык описания сети, его транслятор] Расширение области применения [беспроводные сети, центры обработки данных] 79
Текущее состояние разработок На начало декабря 2011 года реализовано уже 5 различных OpenFlow контроллеров В мае 2011 были представлены OpenFlow коммутаторы от 14 различных производителей Разработаны средства моделирования программно-конфигурируемых сетей Реализована виртуализация сети 80
Спасибо за внимание!