СПОСОБ ПЕРЕДАЧИ ФРЕЙМОВ ETHERNET ЧЕРЕЗ ПРОГРАММНО-КОНФИГУРИРУЕМЫЕ СЕТИ (SDN)
METHOD FOR ETHERNET FRAMES TRANSMISSION VIA SOFTWARE-CONFIGURABLE NETWORKS (SDN)

ОБЛАСТЬ ТЕХНИКИ
Техническое решение относится к технике передачи информации в программно-конфигурируемых сетях (SDN) пакетной коммутации, состоящих из коммутаторов с портами Ethernet и управляемых программными контроллерами.
УРОВЕНЬ ТЕХНИКИ
В настоящее время в сетях SDN коммутация пакетов в основном осуществляется на основе адресной информации MAC-уровня. При этом каждое устройство должно содержать таблицу правил коммутации для каждого MAC-адреса, взаимодействующего с сетью, либо переправлять пакет на контроллер для маршрутизации, что увеличивает задержку коммутации, снижает производительность сети. Эти обстоятельства являются ограничивающими факторами для масштабирования сети при большом количестве пользователей.
Известен способ управления потоком данных в домене с OpenFlow коммутаторами программно-конфигурируемых сетей (SDN) пакетной коммутации (см. US 2015043589 (А1) - 12.02.2015). В данном способе получают на входной порт входного коммутатора программно-конфигурируемой сети, по крайней мере, один фрейм, определяют выходной коммутатор сети и конечный выходной порт, рассчитывают наиболее предпочтительный путь до выходного порта, модифицируют фрейм путем вставки в его заголовок специально сконструированного адресного поля, содержащего информацию о рассчитанном наиболее предпочтительном пути до выходного порта.
Недостатками указанного способа является то, что он требует вставки специально сконструированного адресного поля в заголовок фрейма, операции над которым не включены в стандарт протокола OpenFlow. Это требует от программного обеспечения коммутатора и контроллера поддержки экспериментальных операций с нестандартными полями. Данный функционал может не поддерживаться OpenFlow-коммутатором и увеличивает нагрузку на систему управления коммутатором.
Также на данный момент известны способы управления SDN-сетями, состоящими из коммутаторов, использующими инкапсуляцию MPLS для передачи фреймов Ethernet (см. RFC 4448, US 2007/0286204 А1 - 13.12.2007). MPLS является масштабируемым и независимым от каких-либо протоколов механизмом передачи данных. В сети, основанной на MPLS, пакетам данных присваиваются метки. Решение о дальнейшей передаче пакета данных другому узлу сети осуществляется только на основании значения присвоенной метки без необходимости изучения самого пакета данных. За счет этого возможно создание сквозного виртуального канала, независимого от среды передачи и использующего любой протокол передачи данных. При этом для транспортировки Ethernet-фреймов в MPLS-сети применяется инкапсуляция Ethernet-фрейма в новый фрейм с установленными MPLS-метками, что увеличивает размер пакета не менее чем на 22 байта. При передаче результирующего фрейма от узла к узлу изменяется MAC-header, что создает дополнительную нагрузку на промежуточные узлы.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Задача, на решение которой направлено заявляемое техническое решение, заключается в устранении перечисленных выше недостатков.
Технический результат, получаемый от использования технического решения, заключается в повышении эффективности использования ресурсов сетевых коммутаторов за счет определения пути транспортировки фрейма по сети транспортными MPLS-метками, установленными контроллером сети, а также в снижении требований к функционалу программного обеспечения OpenFlow-коммутаторов и контроллеров за счет исключения требования поддержки обработки экспериментальных полей в составе фрейма, требующих дополнительных ресурсов системы управления коммутатора, и требования поддержки обработки только стандартных полей в составе фрейма.
Способ передачи фреймов Ethernet через программно-конфигурируемые сети (SDN) включает в себя операции, на которых:
получают на входной порт входного коммутатора программно-конфигурируемой сети, по крайней мере, один фрейм;
определяют выходной коммутатор сети и конечный выходной порт;
рассчитывают наиболее предпочтительный путь до выходного порта и кодируют его, по крайней мере, одной транспортной меткой MPLS;
Модифицируют вышеуказанный фрейм, при этом:
- сохраняют поле идентификатор вложенного протокола (ИВП);
- заменяют поле ИВП на предопределенную константу;
- добавляют метку MPLS Ethertype tag, содержащую сохраненный ИВП;
- добавляют, по крайней мере, одну транспортную метку MPLS, кодирующую наиболее предпочтительный путь;
- отправляют модифицированный фрейм на следующий коммутатор согласно маршруту наиболее предпочтительного пути.
Способ обработки фрейма включает в себя операции, на которых:
получают на входной порт коммутатора фрейм,
определяют значение поля идентификатор вложенного протокола (ИВП),
если значение поля удовлетворяет некоторому предустановленному условию, то считывают первую MPLS метку,
если это метка из диапазона выходного порта, то метка удаляется, считывается следующая метка, описывающая сохраненный ИВП, преобразуют фрейм к оригинальному формату и отправляют на выходной порт, указанный в первой MPLS метке
Иначе убирают или модифицируют первую (транспортную) MPLS метку из фрейма и отправляют модифицированный фрейм на следующий коммутатор согласно маршруту наиболее предпочтительного пути, преобразуют фрейм к оригинальному формату, при этом в значение поля идентификатор вложенного протокола записывают значение метки MPLS label Ethertype.
ПОДРОБНОЕ ОПИСАНИЕ
Программно-конфигурируемая сеть (SDN от англ. Software-defined Networking, также программно-определяемая сеть) - сеть передачи данных, в которой уровень управления сетью отделен от устройств передачи данных и реализуется программно, одна из форм виртуализации вычислительных ресурсов.
OpenFlow - протокол управления процессом обработки данных, передающихся по сети передачи данных маршрутизаторами и коммутаторами, реализующий технологию программно-конфигурируемой сети.
МАС-адрес (от англ. Media Access Control - управление доступом к среде) - уникальный идентификатор, присваиваемый каждой единице активного оборудования или некоторым их интерфейсам в компьютерных сетях Ethernet.
Порт (англ. port) - натуральное число, записываемое в заголовках протоколов транспортного уровня модели OSI (TCP, UDP, SCTP, DCCP). Используется для определения процесса - получателя пакета в пределах одного хоста.
Broadcast - широковещательная рассылка - один отправитель, получатели - все устройства в широковещательном сегменте. (Пример: ARP-запрос).
Multicast - многоадресная рассылка - один отправитель, много получателей. (Пример: IPTV).
IPv4 - четвертая версия протокола IP, определенного в IETF RFC 791.
IPv4 multicast - многоадресная рассылка с использованием протокола IPv4.
Ethernet - семейство стандартов, определяющих проводные соединения и электрические сигналы на физическом уровне, формат кадров и протоколы управления доступом к среде на канальном уровне модели OSI.
Кадр (фрейм) - пакет данных протокола канального уровня модели OSI, передаваемый по линии связи.
Коммутатор (англ. switch) - устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети на канальном (втором) уровне модели OSI.
MPLS (англ. multiprotocol label switching - многопротокольная коммутация по меткам) - механизм в высокопроизводительной телекоммуникационной сети, осуществляющий передачу данных от одного узла сети к другому с помощью меток.
MAC-learning - процесс заполнения таблицы МАС-адресов коммутатора, основанный на изучении МАС-адреса отправителя любого фрейма, входящего в коммутатор. Если МАС-адрес отправителя не присутствует в таблице, то он вносится в нее с привязкой к порту, в который вошел фрейм.
Программно-конфигурируемая сеть для применения описываемого метода должна состоять из, по меньшей мере, двух коммутаторов OpenFlow и, по меньшей мере, одного контроллера SDN. Коммутаторы OpenFlow должны находиться в режиме исключительного управления контроллером SDN (secure mode), т.е. не коммутировать фреймы в обход правил, установленных контроллером.
При инициализации сети контроллер SDN определяет топологию сети и кратчайшие пути между всеми возможными парами коммутаторов по алгоритму Дейсктры или Беллмана-Форда, используя присвоенные веса каналов между коммутаторами. По меньшей мере, один контроллер SDN кодирует каждый кратчайший путь цепочкой транспортных меток MPLS или стеком транспортных меток MPLS на каждом участке кратчайшего пути и устанавливает соответствующие OpenFlow-правила операций с транспортными метками MPLS на коммутаторах, порты которых терминируют указанные каналы. Установка правил производится следующим образом:
- на входном коммутаторе происходит вставка первой транспортной метки MPLS или стека транспортных меток MPLS из цепочки кратчайшего пути;
- на промежуточных коммутаторах происходит изменение транспортной метки MPLS или стека транспортных меток MPLS на следующую из цепочки кратчайшего пути;
- на выходном - снятие транспортной метки MPLS или стека транспортных меток MPLS и восстановление оригинального фрейма.
На входном коммутаторе из-за вставки транспортной метки MPLS или стека транспортных меток MPLS может происходить изменение оригинального идентификатора вложенного протокола (ИВП) фрейма Ethernet. Поэтому оригинальный ИВП сохраняется и записывается в дополнительную транспортную метку MPLS - Ethertype Tag, которая вставляется во фрейм первой. Для разных типов оригинальных фреймов сохраняемый ИВП находится в разных полях:
- для фреймов Ethernet II сохраняется в поле EtherType;
- для фреймов IEEE 802.3 LLC/SNAP - в поле PID заголовка SNAP;
- для фреймов IEEE 802.1Q и IEEE 802.lad - в поле TPID внешнего заголовка 802.1Q.
Выходной порт цепочки для входящего фрейма может определяться одним из следующих образов:
1) статически при конфигурировании сервиса (например, сервиса точка-точка);
2) динамически, при котором контроллер SDN осуществляет распознавание MAC адреса (MAC Address Learning) на внешних портах и запоминает порт, через который доступен тот или иной MAC адрес получателя (Destination MAC Address).
Пример сети и процесс прохождения фрейма на примере фрейма IEEE 802.1Q показан на Фиг. 1.
Коммутатор Swl получает на внешний входной порт фрейм IEEE 802.1Q, содержащий следующие поля:
- MAC-header, где DestinationMAC=Host2-MAC, SourceMAC=Host1-MAC
- 802.1Q tag, где VID=100, TPID=0×8100h, vlanPCP - не имеет значения
- Ethertype=0×0806h (ИВП протокола ARP)
- Payload=ARP packet
Коммутатор Swl вставляет во фрейм две транспортные метки MPLS:
- Ethertype tag с полями Label=0×00806h (копируется Ethertype в младшие биты), TC=vlanPCP (копируется с заголовка 802.1Q), BoS=1, TTL=0
- MPLS transport tag 2 с полями Label=2, TC=vlanPCP (копируется с заголовка 802.1Q), BoS=0, TTL=255
При этом в поле Ethertype устанавливается значение 0×8847h (ИВП протокола MPLS), однако MAC-header остается неизменным.
Затем фрейм отправляется по цепочке кратчайшего пути в порт канала к коммутатору Sw3.
Коммутатор Sw3 анализирует верхнюю транспортную метку MPLS transport tag 2, модифицирует ее, устанавливая MPLS transport tag 3 (Label=3), и отправляет к следующему в цепочке кратчайшего пути коммутатору Sw4, также оставляя MAC-header неизменным.
Коммутатор Sw4 получает фрейм, анализирует транспортную метку MPLS transport tag 3, определяет, что это конечный коммутатор и извлекает весь стек MPLS-меток. Затем младшие 4 байта поля Label из метки Ethertype tag копирует в поле Ethertype фрейма и отправляет на выходной порт.
Примеры процесса прохождения фреймов Ethernet II, IEEE 802.lad, IEEE 802.3 LLC/SNAP показаны соответственно на Фиг. 2, 3, 4.
Способ формирования фрейма включает следующие шаги:
Получают на входной порт входного коммутатора программно-конфигурируемой сети, по меньшей мере, один фрейм.
Полученный фрейм может быть фреймом Ethernet II, IEEE 802.3 LLC/SNAP, IEEE 802.1Q или IEEE 802.1ad.
Для полученного, по меньшей мере, одного фрейма определяют выходной коммутатор сети и конечный выходной порт (исходя из статической конфигурации или динамического MAC-learning в пределах портов сконфигурированного сервиса).
Рассчитывают наиболее предпочтительный путь до выходного порта по алгоритмам Дейкстры или Беллмана-Форда и кодируют его, по крайней мере, одной MPLS-меткой.
Модифицируют полученный фрейм, при этом:
- сохраняют поле идентификатор вложенного протокола (ИВП);
- заменяют поле ИВП на ИВП протокола MPLS (0×8847h), оставляя MAC-header неизменным;
- добавляют метку MPLS Ethertype tag, содержащую сохраненный ИВП;
- добавляют, по крайней мере, одну транспортную метку MPLS, кодирующую наиболее предпочтительный путь.
Отправляют модифицированный фрейм на следующий коммутатор согласно рассчитанному маршруту наиболее предпочтительного пути.
Заявляемый способ формирования и обработки фрейма является промышленно применимым, так как при его реализации используют известные и апробированные методы и компоненты.
Хотя данное техническое решение описано конкретным примером его реализации, это описание не является ограничивающим, но приведено лишь для иллюстрации и лучшего понимания существа технического решения, объем которого определяется прилагаемой формулой.