Программно-конфигурируемые сети (1187415)
Текст из файла
Министерство образования и науки Российской ФедерацииМосковский физико-технический институт(государственный университет)ФАКУЛЬТЕТ УПРАВЛЕНИЯ И ПРИКЛАДНОЙ МАТЕМАТИКИКАФЕДРА ИНФОРМАТИКИПрограммно-конфигурируемые сетиВыпускная квалификационная работастудента 4 курса 073а группыГончарова Федора ОлеговичаНаучный руководитель:к. ф.-м. н. Емельянов Павел ВладимировичДолгопрудный,2014г.–2–Содержание1 Введение32 Обзор.43 Требования к OpenFlow Switch.53.1Обзор.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53.2Порт OpenFlow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63.3OpenFlow таблица. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73.4Конвейер обработки пакетов. . . . . . .
. . . . . . . . . . . . . . . . . . .84 Open vSwitch104.1Структура Open vSwitch. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.2Настройка QoS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.3Зеркалирование трафика. . . . . . . . . . . . . . . . . . . . . . . . .
. . . 134.4Настройка GRE туннелирования. . . . . . . . . . . . . . . . . . . . . . . 135 OpenFlow-контроллер.145.1POX-контроллер.5.2Floodlight-контроллер. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.3Opendaylight-контроллер. . . . . . . . . . . . . . . .
. . . . . . . . . . . . 175.4Итоги сравнения.6 Постановки задач.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19206.1Ограничение рассылки широковещательных ARP запросов в VPN . . . 206.2Реализация распределенной версии POX-контролллера. . . . .
. . . . . 226.36.2.1Алгоритм работы. . . . . . . . . . . . . . . . . . . . . . . . . . . . 226.2.2Особенности реализации. Тестирование. . . . . . . . . . . . . . . 23Сравнение производительности Open vSwitch и библиотеки brctl. . . . . 247 Заключение.268 Приложения.288.1Структура MAC адреса . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28–3–1ВведениеТермин программно-конфигурируемые сети[9] относительно не новый, первыеработы и исследования по данной тематике начали появляться примерно с 1995года[1].
Это связано с увеличением потребностей в использовании сетевых технологий для различных бизнес-задач, распределенных вычислений, появлении крупныхдата-центров и началом виртуализации интернета[2].Правильная настройка сети в крупном дата-центре и её поддержка - весьма сложный и дорогостоящий процесс. В задачу системного администратора входит настройка маршрутизаторов, балансировщиков нагрузки(load balancers), системы обнаружений вторжений(IDS) и.т.д.Обычно администратор настраивает каждый сетевой элемент отдельно, причемзачастую у сетевого оборудования нет какого-либо унифицированного интерфейсадля настройки.
Сразу же можно сказать о проблемах возникающих в данном подходе: если необходимо настроить например не 10 или 20 маршрутизаторов, а например20 000 или более(такие задачи весьма актуальны в облачных технологиях) - без автоматизации это сделать почти невозможно; вторая проблема заключается в зависимости интерфейса настройки от производителя сетевого оборудования(вендора),иногда интерфейс зависит даже от модели у одного и того же вендора – следовательно специалист в области сетевых технологий должен уметь работать с большимколичеством протоколов, кол-во которых только возрастает.Выше были перечислены лишь две наиболее очевидные проблемы в отрасли сетевых технологий, но все они являются следствием того, что софт, операционныесистемы, языки программирования быстрее следуют различным инновациям и современным требованиям, чем компьютерные технологии.Программно-конфигурируемые сети(Software Developed Networks) – изменяют подход к дизайну и поддержке сети, как раз при помощи достижений в области ПО иоперационных систем.Программно-конфигурируемые сети(ПКС, SDN) – имеют две отличительные особенности:• Разделение управления и передачей данных(data and control plane separation)• Консолидация управления - т.е.
управление множеством элементов уровня передачи данных при помощи специального приложения–4–Уровень управления передачей данных(control plane) – определяет по каким правилам будет пересылаться трафик в сети.Уровень передачи данных(data plane) – непосредственно пересылает данные в соответствии с настройкой control plane.Стоит отметить, что большинство современных маршрутизаторов обладают собственной операционной системой и локально решают задачу о направлении пересылки трафика. Маршрутизаторы, поддерживающие технологию ПКС (например OpenvSwitch[5]) как правило, на практике не имеют собственной операционной системы исодержат лишь таблицу правил пересылки пакетов(data plane), которая в свою очередь настраивается при помощи специального приложения-контроллера.В целом можно сказать, что ПКС – это технология, которая предоставляет способ программного управления(API) уровнем передачи данных роутеров, маршрутизаторов и другого сетевого оборудования.
Один из ярких примеров такого API –OpenFlow [3][4] протокол настройки таблиц маршрутизации(более подробно он будетрассмотрен в данной работе).Цель данной работы, обзор основных современных элементов ПКС, решение простейших задач конфигурирования, анализ уже существующих программных решенийконтроллеров.2Обзор.В данной работе последовательно рассматриваются основные элементы data-planeи control-plane ПКС :• OpenFlow Switch – требования предъявляемые протоколом OpenFlow к маршрутизаторам• Open vSwitch – виртуальный маршрутизатор, поддерживающий протокол OpenFlow (вописанной выше модели является примером элемента уровня data-plane)• набор современных приложений-контроллеров (POX-controller [6], Floodlight Project[7],OpenDaylight Project[8]) - с помощью которых выполняется настройка сетевогоустройства(пример элемента уровня control-plane).Понимание основных принципов работы протокола OpenFlow облегчает понимание всей структуры ПКС ; в спецификации указаны требования к сетевому оборудо-–5–ванию, которое поддерживает данный протокол, именно поэтому изложение начинается с этой темы.Далее идет обзор Open vSwitch – как станет видно, виртуальный маршрутизаторсоответсвует спецификации OpenFlow с некоторыми расширениями и дополнениями(в данной работе эти дополнения не будут рассмотрены), поэтому подробно мына нем останавливаться не будем.
Будут лишь рассмотрены некоторые классическиезадачи конфигурирования, такие как: зеркалирование трафика, настройка QoS, настройка GRE туннелирования. Данные простейшие задачи входили в цикл задач наручное конфигурирование Open vSwitch.Обзор control-plane представляет собой анализ и сравнение наиболее известныхреализаций контроллеров.Раздел Постановки задач и Сравнение производительности содержат графикитестов на пропускную способность и частоту транзакций и решение задачи о безопасной рассылке ARP запросов, реализованного в рамках данной работы.3Требования к OpenFlow Switch.3.1Обзор.ControllerOpenFlow protocolSecurechannel(SSL)FlowTableGroupTable...FlowTableOpenFlow SwitchРис. 1: Структура OpenFlow маршрутизатора(www.opennetworking.org)OpenFlow маршрутизатор состоит из одной или нескольких flow-таблиц(flowtable), групповой таблицы(group-table) и OpenFlow канала(OpenFlow channel ) к удаленному контроллеру(controller ).
Маршртизатор обменивается сообщениями с контроллером при помощи протокола OpenFlow.–6–Используя данный протокол, контроллер может добавлять, обновлять и удалятьflow-записи(flow-entries) во flow-таблицах, как реактивно(reactive)(ответы на входящие пакеты), так и проактивно(proactive). Каждая flow-таблица содержит наборflow-записей; каждая запись определяется полями сравнения(matching fields), счетчиками(counters) и набором инструкций(instructions), которые применяются к пакету с совпавшими полями.Сравнение начинается с первой flow-таблицы и может продолжаться в другихтаблицах.
Поля сравнений flow-записей сравниваются с заголовком пакета в порядкеприоритета(priority – одно из полей сравнения). Если найдена совпадающая flowзапись, к пакету применяются инструкции(instructions) ассоциированные с даннойзаписью. Если не найдено ни одной записи, результат зависит от конфигурациимаршрутизатора(пакет может быть сброшен(dropped) либо передан контроллеру поOpenFlow каналу для анализа и принятия решения).Инструкции в соответствующих записях содержат либо действия(actions), которые применяются к пакету и определяют непосредственно сами правила пересылки,либо определяют дальнейшую обработку пакета, в последующих flow-таблицах(конвейернаяобработка, (pipeline processing)).
Конвейерная обработка позволяет передавать анализ пакета из одной таблиц в другую, дополнительно пересылая спецаильные метаданные(например числовые переменные, связанные с предыдущей обработкой). Такой подход позволяет создавать “ветвление” в обработке трафика. Обработка заканчивается, когда соответствующие инструкции не содержат команд по пересылки вследующую таблицу; в этот момент выполняется модификация пакета, выполнение“накопленных” действий(actions).3.2Порт OpenFlow.Порт – сетевой интерфейс, для передачи пакетов между OpenFlow обработкойи остальной частью сети.
OpenFlow маршрутизатор должен поддерживать три типа OpenFlow портов: физический порт(physical port), логический порт(logical port),зарезервированный порт(reserved port).• Физический порт – порт который соответствует аппаратному сетевому интерфейсу(hardware).• Логический порт – порт, который не обязательно соответствуют физическо-–7–му интерфейсу. Логический порт представляет собой более высокую абстракцию и может быть определен без использования OpenFlow(например: туннели, loopback интерфейсы).
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.