Лекция 1. Технологии SDN. OpenFlow (1185636)
Текст из файла
Технологии SDN/OpenFlowМатематический спецкурс“Программно Конфигурируемые Сети”к.ф.-м.н., м.н.с., Шалимов А.В.ashalimov@lvk.cs.msu.su@alex_shali@arccnnewsЧасть I: SDNПрограммно-Конфигурируемые СетиШалимов А.В.Уникальное время“Россия и SDN – это идеальный брак, который долженсостояться на небесах”Nick McKeownПрограммно-Конфигурируемые СетиШалимов А.В.SDN уже здесьGoogle перевел сеть между ЦОД на SDN в 2012году, сейчас анонсирована внутренняя облачнаяплатформа Andromeda.Microsoft перевел сеть между ЦОД на SDN в конце2013 года, на очереди публичное облако Azure.NTT перевел всю свою сетевуюинфраструктуру на SDN в 2013 году.В июне 2015 года AT&T объявило SDN своимосновным стратегическим направлением развития ипереориентацию на разработку ПО.Gartner: “Рынок SDN решений к 2018 году достигнетобъема $35 млрд”.Программно-Конфигурируемые СетиШалимов А.В.А что с SDN в России?• «Ростелеком» начал работу над внедрением перспективныхтехнологических направлений «Программно-конфигурируемых сетей»(SDN) и «виртуализации сетевых функций» (NFV).• «Ростелеком» и впредь намерен укреплять технологическое лидерство.Новые технологии позволят упростить сетевую инфраструктуру иснизить стоимость эксплуатации сети.– старший Вице-Президент по эксплуатации сетей связи «Ростелекома» АлександрЦейтлин• «Считаю, что технологии SDN и NFV позволят существенно сократитькапитальные затраты и ускорить ввод в строй новых сервисов»– исполнительный директор по технической стратегии и архитектуре «Ростелекома»Эдуард Василенко• «Ростелеком» разыскивает стартапы, которые занимаются разработкойтехнологий в области SDN и NFV– Руководитель направления Департамента управления венчурными активамикомпании Сергей ШлыковПрограммно-Конфигурируемые СетиШалимов А.В.Проблемы традиционных сетейФунция...ФунцияОперационнаясистемаСпециальноеустройство передачиданных• Зависимость от производителя• Ошибки в реализациях сетевых протоколов• Миллионы строк закрытого проприетарногокода (6000+ RFC)• Высокая стоимость оборудования• Высокая стоимость эксплуатации• Сложность управления большими сетями• Сложность отладки• “Закрытость” оборудования и программногообеспечения• Сложность внедрения новых идей• Неэффективность использования аппаратныхресурсов, энергоэффективностьПрограммно-Конфигурируемые СетиШалимов А.В.Постоянный рост сложностиПрограммно-Конфигурируемые СетиШалимов А.В.ВнедренияОсновные принципы•••Физическое разделение уровня передачи данных от уровня управлениясетевых устройств.Логически централизованное управление.Программируемость.•Открытый единый интерфейс управления.Преимущества•••...Упрощение управления сетью(OPEX)Удешевление оборудования(CAPEX)Разработка ранеенедоступных сервисов“SDN means thinking differently about networking”Переход к SDNAppAppAppControllerApp App AppApp App AppOSOSForwardingForwardingApp App AppOSForwardingПрограммно-Конфигурируемые СетиШалимов А.В.Архитектура SDNAppAppAppControllerControlProtocolUsable GUIOSServicesSwitchSwitchSwitchПрограммно-Конфигурируемые СетиШалимов А.В.Пример применения• Уменьшениеэнергопотребления в ЦОД– Отключениенеиспользуемыхкоммутаторов и каналов наоснове собраннойинформации о сети– ElasticTree (Stanford):сокращениеэнергопотребления до 60%– Применение в GoogleПрограммно-Конфигурируемые СетиШалимов А.В.Часть II: OpenFlowПрограммно-Конфигурируемые СетиШалимов А.В.OpenFlowOpenFlowSwitch/RouterкоммутаторSoftwareHardwareКонтроллерPCУправле OpenFlowControl(API)ниеТаблицапотоковПрограммно-Конфигурируемые СетиШалимов А.В.• Добавление/удалениепотоков• ИнкапсулированныепакетыOpenFlow протоколПоддерживается три типа сообщений:• Сообщения контроллер-коммутатор––––Конфигурирование коммутатораУправление и контроль состоянияУправление таблицами потоковFeatures, Configuration, Modify-State (flow-mod), Read-State(multipart request), Packet-out, Barrier, Role-Request• Симметричные сообщения– Отправка в обоих направлениях– Обнаружение проблем соединения контроллера с коммутатором– Hello, Echo• Ассиметричные сообщения– Отправка от коммутатора к контроллеру– Объявляют об изменении состояния сети, состояниякоммутаторов– Packet-in, flow-removed, port-status, errorПрограммно-Конфигурируемые СетиШалимов А.В.OpenFlow 1.0Flow TableRuleActionRuleAction СчетчикиStats пакетов и байтовRuleRuleRuleSwitchPortMACsrcStatsActionStats1.Пересылка пакетов на порт(ы) с перезаписьюзаголовкаActionStats2.Принудительная отправка пакета на контроллер3.Сброс пакетаActionStats4.Свои расширенияMACdstEthtypeVLANIDIPSrcIPDst+ маска по полямПрограммно-Конфигурируемые СетиШалимов А.В.IPProtTCPsportTCPdportПримеры правил OpenFlowSwitchingSwitch MACPort src*MAC Ethdsttype00:1f:..
**VLAN IPIDSrcIPDstIPProtTCPTCPActionsport dport****IPDstIPProtTCPTCPActionsport dport**port6Flow SwitchingSwitch MACPort srcMAC Ethdsttypeport3 00:20.. 00:1f.. 0800VLAN IPIDSrcvlan1 1.2.3.4 5.6.7.8417264 80port6FirewallSwitch MACPort src**MAC Ethdsttype**VLAN IPIDSrcIPDstIPProtTCPTCPActionsport dport*****Программно-Конфигурируемые СетиШалимов А.В.22dropЧем плохо одна таблица?Программно-Конфигурируемые СетиШалимов А.В.OpenFlow 1.1• Продвижение пакета только вперед• Переход: модификация пакета, обновлениенабора действий, обновление метаданныхПрограммно-Конфигурируемые СетиШалимов А.В.Групповые таблицы••Экономия места для одинаковых действийТакже для реализации сетевых механизмов:– Multicast– ECMP– Active/Standby маршрутыПрограммно-Конфигурируемые СетиШалимов А.В.Meter table• Для реализации QoS и ограниченияскорости– Для каждого потока или группы потоков– Следит за превышение значений счетчиков– Действия: drop или dscp remarkПрограммно-Конфигурируемые СетиШалимов А.В.Несколько контроллеров• Протокол OpenFlow 1.2:– Множество контроллеров– Механизм ролей– Роли: Master, Slave, Equal– По умолчанию:контроллер находится вроли Equal длякоммутаторов.– Смена роли:OFPT_ROLE_REQUEST– Распределение ролей:возложено наконтроллеры.Программно-Конфигурируемые СетиШалимов А.В.OpenFlow 1.0, 1.1OpenFlow 1.2 – 1.5OpenFlow контроллер• Программа, TCP/IP сервер, ожидающийподключения коммутаторов• Отвечает за обеспечение взаимодействиеприложения-коммутатор.• Предоставляет важные сервисы (например,построение топологии, мониторинг хостов)• API сетевой ОС или контроллер предоставляетвозможность создавать приложения на основецентрализованной моделипрограммирования.Программно-Конфигурируемые СетиШалимов А.В.Список OpenFlow контроллеров• Их действительно много– Nox, Pox, MUL, Ruy, Beacon, OpenDaylight,Floodlight, Maestro, McNettle, Flower, Runos– Different programming form Python to Haskell,Erlang• Для образования - Pox.• Два больших комьюнити– ONOS (Stanford)– OpenDayLight (Cisco)• В России – наш Runos– arccn.github.io/runosПрограммно-Конфигурируемые СетиШалимов А.В.Схема работы OpenFlowРеактивный режим работыOpenFlow agentFlow tableMACsrc12:34MACdst56:78port 11.1.1.1IPSrcIPDst1.1.1.15.5.5.5port 2TCPTCPsport dport47341port 380Actionport 4port 45.5.5.5Программно-Конфигурируемые СетиШалимов А.В.ControllerТолько дляпервого пакетаДля всех остальныхпакетовСхема работы OpenFlowПроактивный режим работыOpenFlow agentFlow tableMACsrcMACdstIPSrcIPDst***5.5.5.5port 11.1.1.1port 2TCPTCPsport dport*port 3*ActionControllerport 4port 45.5.5.5Программно-Конфигурируемые СетиШалимов А.В.Для каждого пакетаМаршрутизация с SDN/OpenFlowABA -> BAB• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшейстоимостью и удовлетворяющий политикам маршрутизации).• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразуи обратный маршрут (OF_PACKET_OUT/FLOW_MOD).Программно-Конфигурируемые СетиШалимов А.В.Маршрутизация с SDN/OpenFlowABAB• Неизвестный пакет отправляется на контроллер (OF_PACKET_IN).• Контроллер вычисляет лучший маршрут через всю сеть (с наименьшейстоимостью и удовлетворяющий политикам маршрутизации).• Соответствующие правила OpenFlow устанавливаются на коммутаторы + сразуи обратный маршрут (OF_PACKET_OUT/FLOW_MOD).• Динамическая переконфигурация в случае ошибки сети.Программно-Конфигурируемые СетиШалимов А.В.Построение топологии?Программно-Конфигурируемые СетиШалимов А.В.Требования к контроллеру ПКС• Производительность– Пропускная способность• events per second– Задержка• ЦОД требует обработку>10M событий в секунду• Реактивныеконтроллеры более“чувствительные”• us• Надежность и безопасность– 24/7• Программируемость– Функциональность: приложения и сервисы– Интерфейс программированияАрхитектура OpenFlow контроллераМаршрутизация, виртуалилазция, мониторинг,балансровка, фильтрация, аутентифкация, NAT,ARP, DNS, DHCP, BGPАлгоритмы на графах, распределенныесистемы и базы данных, webМногопоточные алгоритмыБыстрая обработка пакетовЧасть III: Runos OpenFlowконтроллерПрограммно-Конфигурируемые СетиШалимов А.В.Система управления сетью первый российский 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 режим• Алгоритмические политики (генерация правил)– Распределение приоритетов, комбинация правил– 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()”OpenFlowKernelspaceFeatures:-• Композиция приложений (параллельная ипоследовательная композация)– dpi + (lb >> forwarding)Userspace-Algorithmic policies(rule generation)Client-friendly API usingEDSL grammar (lowlevel details are hiddeninside the runtime –overloading, templates)Modules composition(parallel and sequentialcomposition)Ключевые слова: 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– Хранение топологии, поиск маршрутаСейчас версия 0.5• ядро контроллера• построение топологии• построение маршрута через всю сеть• первая версия системы генерации правил• Rest API (совместимый с Floodlight)• WebUI (мониторинг загрузки, просмотр таблиц,удаление и добавление правил)• Проактивная загрузка правил• Холодное резервирование• ARP кешированиеВерсия 0.6 - следующий большой релиз (апрель)• Полное обновление структуры ядра контроллера.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.