СПОСОБ ГРУППОВОЙ ПЕРЕДАЧИ ПАКЕТОВ ЧЕРЕЗ ПРОГРАММНО-КОНФИГУРИРУЕМЫЕ СЕТИ
METHOD FOR GROUP TRANSMISSION OF PACKETS VIA SOFTWARE-CONFIGURABLE NETWORKS

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее техническое решение, в общем, относится к способам групповой передачи данных, а именно к способам передачи информации в программно-конфигурируемых сетях (SDN) пакетной коммутации, состоящих из коммутаторов с портами Ethernet и управляемых программными контроллерами.
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время в сетях SDN групповая коммутация пакетов в основном осуществляется путем их преобразования в broadcast широковещательные фреймы и распространения их во все административно доступные порты сети. Это приводит к излишней репликации трафика и является ограничивающими факторами для масштабирования сети при большом количестве пользователей.
[0003] В программно-конфигурируемых сетях уровни управления сетью и передачи данных разделяются за счет переноса функций управления (маршрутизаторами, коммутаторами и т.п.) в приложения, работающие на отдельном сервере (контроллере). Идея таких сетей была сформулирована специалистами университетов Стэнфорда и Беркли еще в 2006 году, а инициированные ими исследования нашли поддержку не только в академических кругах, но и были активно восприняты ведущими производителями сетевого оборудования, образовавшими в марте 2011 года консорциум Open Networking Foundation (ONF). Его учредителями выступили Google, Deutsche Telekom, Facebook, Microsoft, Verizon и Yahoo. Состав ONF быстро расширяется, в нее уже вошли такие компании, как Brocade, Citrix, Oracle, Dell, Ericsson, HP, IBM, Marvell, NEC и ряд других. Одной из первых практическую реализацию SDN предложила компания Nicira, вошедшая недавно в состав VMware.
[0004] Заинтересованность ИТ-компаний в SDN вызвана тем, что такие технологии позволяют повысить эффективность сетевого оборудования на 25-30%, снизить на 30% затраты на эксплуатацию сетей, превратить управление сетями из искусства в инженерию, повысить безопасность и предоставить пользователям возможность программно создавать новые сервисы и оперативно загружать их в сетевое оборудование.
[0005] Из уровня техники известна патентная заявка US 20130322443 A1 «SDN Facilitated Multicast in Data Center», патентообладатель: Futurewei Technologies, Inc., опубликовано: 05.12.2013.
[0006] Данный способ требует выделенного контроллера групповой передачи данных, причем он ориентирован для транспорта трафика виртуальным машинам, предназначен для использования в дата-центрах, что является существенными недостатками.
[0007] В настоящее время в сетях SDN многоадресная рассылка пакетов с использованием протокола IPv4 в основном осуществляется путем их преобразования в broadcast широковещательные фреймы и распространения их во все административно доступные порты сети. Это приводит к излишней репликации трафика и является ограничивающими факторами для масштабирования сети при большом количестве пользователей.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[0008] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям из известного уровня техники.
[0009] Техническим результатом является повышение эффективности использования сетевых ресурсов путем организации оптимального маршрута передачи пакетов какого-либо группового адреса запросившему абоненту от ближайшего источника без использования внутреннего протокола групповой маршрутизации.
[0010] Данное техническое решение устраняет необходимость широковещательной рассылки пакетов многоадресной рассылки, направляя трафик только в выходные порты, откуда получен запрос на группу рассылки, через построенное по кратчайшим маршрутам дерево распространения трафика.
[0011] Это позволяет достичь следующих результатов:
- уменьшает загрузку каналов сети и выходных портов;
- направляет трафик по кратчайшему маршруту;
- устраняет необходимость в протоколах защиты от петель трафика.
[0012] Указанный технический результат достигается благодаря способу групповой передачи пакетов через программно-конфигурируемые сети, в котором настраивают, по крайней мере, один входной порт для приема пакетов с, по крайней мере, одного внешнего источника трафика и, по крайней мере, два выходных порта для приема запросов с, по крайней мере, одного внешнего потребителя трафика, после чего принимают запрос на, по крайней мере, двух выходных портах на получение пакетов, по крайней мере, одной группы многоадресной рассылки от, по крайней мере, одного внешнего потребителя трафика, затем принимают на, по крайней мере, один входной порт, по крайней мере, один пакет, вышеуказанной группы многоадресной рассылки от внешнего источника трафика, далее формируют правила коммутации на узлах сети для передачи пакетов, по крайней мере, одной группы, указанной в предыдущем шаге, причем для внешнего потребителя трафика, первым запросившего группу многоадресной рассылки, формируется кратчайший путь от входного порта источника до выходного порта, подключенного к этому внешнему потребителю трафика, а для последующих внешних потребителей трафика, запросивших группу многоадресной рассылки, формируется кратчайший путь от ближайшего к выходному порту данного внешнего потребителя трафика узла сети, на котором установлены правила коммутации данной группы, и в итоге передают все пакеты, по крайней мере одной группы многоадресной рассылки, запрошенной в предыдущем шаге, по крайней мере, одним внешним потребителем трафика, от, по крайней мере, одного входного порта, до, по крайней мере, одного выходного порта согласно сформированным на предыдущем шаге правилам коммутации пакетов.
[0013] В некоторых вариантах реализации доступность источников трафика и диапазон групп контролируется контроллером программно-конфигурируемой сети путем периодического кратковременного контроля входящих пакетов.
[0014] В некоторых вариантах реализации при настраивании входного порта устанавливают диапазоны групповых адресов, генерируемых внешних источником и принимаемых сетью на входном порту.
[0015] В некоторых вариантах реализации запросы на получение пакетов группы многоадресной рассылки отправляются асинхронно.
[0016] В некоторых вариантах реализации пакеты групп многоадресной рассылки от внешнего источника трафика поступают на входной порт асинхронно.
[0017] В некоторых вариантах реализации при отправке пакетов с входного порта в протоколе управления групповой передачей данных используется алгоритм конечных автоматов.
[0018] В некоторых вариантах реализации формируют кратчайший путь по алгоритму Дейкстры или Беллмана - Форда или алгоритму поиска А*.
[0019] В некоторых вариантах реализации при определении кратчайшего пути определяют начальный, конечный и промежуточные коммутаторы сети по пути следования для коммутации фреймов.
[0020] В некоторых вариантах реализации на каждом коммутаторе, входящем в состав кратчайшего пути, конфигурируется один входящий порт для приема трафика со стороны источника и один исходящий групповой порт, включающий один или более физических портов и позволяющий реплицировать трафик из входящего порта на каждый физический порт в составе исходящего группового порта.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания технического решения и прилагаемых чертежей, на которых:
[0022] Фиг. 1 - результат обработки входного запроса принадлежности IGMP join к групповому адресу;
[0023] Фиг. 2 - результат обработки входного запроса IGMP join второго абонента к тому же групповому адресу;
[0024] Фиг. 3-результат обработки входного запроса IGMP leave от первого абонента к групповому адресу;
[0025] Фиг. 4 - результат обработки входного запроса IGMP leave от второго абонента к групповому адресу.
[0026] На Фиг. 5 - отображен пример реализации SDN-сети;
[0027] На Фиг. 6 - показан способ групповой передачи пакетов через программно-конфигурируемые сети.
ПОДРОБНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0028] Ниже представлено подробное описание чертежей и примеры реализации, которые помогают легче понять сущность заявляемого технического решения.
[0029] На Фиг. 1 показан результат обработки входного запроса IGMP join к групповому адресу IPgroup1. Коммутатор Sw3 пересылает входящий пакет с запросом на центральный контроллер, который, имея полную информацию о топологии сети, рассчитывает кратчайший путь от входного порта SW1 до до выходного порта SW3 по алгоритму Дейкстры и формирует правила коммутации для коммутаторов SW1,SW2,SW3 правилами, позволяющими коммутировать трафик с IP-адресом IPgroup1 от порта Sw1,p1 до Sw3,p2. Для этого прописываются следующие правила:
входной порт SW1
[0030] ЕСЛИ («входной порт»=р1 И «IP-адрес источника»=М1 И «IP-адрес адресата»=IPgroup1) ТО «Переслать на групповой порт, содержащий р2»
промежуточный коммутатор SW2
[0031] ЕСЛИ («входной порт»=р1 И «IP-адрес источника»=М1 И «IP-адрес адресата»=IPgroup1) ТО «Переслать на групповой порт, содержащий р2»
выходной порт SW3
[0032] ЕСЛИ («входной порт»=р1 И «IP-адрес источника»=М1 И «IP-адрес адресата»=IPgroup1) ТО «Переслать на групповой порт, содержащий р2»
[0033] На Фиг. 2 показан результат обработки входного запроса IGMP join второго абонента (внешнего потребителя трафика) к тому же групповому адресу IPgroup1. Коммутатор Sw4 пересылает входящий пакет с запросом на центральный контроллер, который, имея полную информацию о текущем состоянии дерева распространения трафика группы IPgroup1 от внешнего источника M1, определяет список всех коммутаторов, на которых присутствует группа IPgroup1. Затем контроллер, имея полную информацию о топологии сети, определяет из этого списка коммутатор с наименьшей длиной shortest path по алгоритму Дейкстры до коммутатора и выходного порта SW4 (в данном случае это SW2). Затем контроллер формирует правила коммутации для коммутаторов SW2, SW4 правилами, позволяющими коммутировать трафик с IP-адресом IPgroup1 от порта промежуточного порта Sw2,p3 до выходного порта Sw4,p2. Для этого прописываются следующие правила:
промежуточный коммутатор SW2
Модификация существующего правила
[0034] ЕСЛИ («входной порт»=р1 И «IP-адрес внешнего источника»=М1 И «IP-адрес адресата»=IPgroup1) ТО «Переслать на групповой порт, содержащий р2 и р3»
выходной порт SW4
[0035] ЕСЛИ («входной порт»=р1 И «IP-адрес внешнего источника»=М1 И «IP-адрес адресата»=IPgroup1) ТО «Переслать на групповой порт, содержащий р2»
[0036] На Фиг. 3 показан результат обработки входного запроса IGMP leave от первого абонента к групповому адресу IPgroup1. Коммутатор Sw3 пересылает входящий пакет с запросом на центральный контроллер, который выполняет следующую последовательность действий:
- удаляет порт 2 из группового выходного порта IPgroup1;
- проверяет оставшийся список портов для группового выходного порта IPgroup1;
- т.к. список пуст, то правило для IPgroup1 на выходном порту Sw3 удаляется полностью, предварительно сохранив значение входного порта p1;
- т.к. p1 подключен к промежуточному порту Sw2 р2, то на Sw2 удаляет порт 2 из группового выходного порта IPgroup1;
- проверяет оставшийся список портов для группового выходного порта IPgroup1;
- т.к. список содержит еще р3, то завершаем процесс.
[0037] На Фиг. 4 отображен результат обработки входного запроса IGMP leave от второго абонента к групповому адресу IPgroup1. Коммутатор и выходной порт Sw4 пересылает входящий пакет с запросом на центральный контроллер, который выполняет последовательность проверок группового выходного порта IPgroup1 и удаления правил распространения дерева последовательно на Sw4, Sw2, Sw1. В итоге дерево распространения трафика группы IPgroup1 вырождается в корневой порт M1, т.е. входящий в Sw1 p1 трафик группы сразу сбрасывается;
ПОДРОБНОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯ
[0038] Ниже будут описаны понятия и определения, необходимые для подробного раскрытия осуществляемого изобретения.
[0039] Программно-конфигурируемая сеть (SDN от англ. Software-defined Networking, также программно-определяемая сеть) - сеть передачи данных, в которой уровень управления сетью отделен от устройств передачи данных и реализуется программно, одна из форм виртуализации вычислительных ресурсов.
[0040] Контроллер программно-конфигурируемой сети (контроллер SDN) - центральный управляющий элемент программно-конфигурируемой сети, полностью определяющий правила коммутации трафика на всех узлах этой сети. Обычно реализуется как сетевое приложение.
[0041] Broadcast - широковещательная рассылка - один отправитель, получатели - все устройства в широковещательном сегменте. (Пример: ARP-запрос).
[0042] Multicast - многоадресная рассылка - один отправитель, много получателей. (Пример: IPTV).
[0043] IPv4 - четвертая версия протокола IP, определенного в IETF RFC 791.
[0044] IPv4 multicast - многоадресная рассылка с использованием протокола IPv4.
[0045] Ethernet - семейство стандартов, определяющих проводные соединения и электрические сигналы на физическом уровне, формат кадров и протоколы управления доступом к среде на канальном уровне модели OSI
[0046] Кадр (фрейм) - пакет данных протокола канального уровня модели OSI, передаваемый по линии связи.
[0047] Коммутатор (англ. switch) - устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного или нескольких сегментов сети на канальном (втором) уровне модели OSI.
[0048] IGMP (англ. Internet Group Management Protocol - протокол управления группами Интернета) - протокол управления групповой (multicast) передачей данных в сетях, основанных на протоколе IP. IGMP используется маршрутизаторами и IP-узлами для организации сетевых устройств в группы.
[0049] IGMP Membership Report Message (IGMP join) - пакет, в котором узел «рапортует» о том, что хочет получать трафик этой группы.
[0050] IGMP Leave Group Message (IGMP Leave) - пакет, в котором узел «рапортует» о том, что не хочет получать трафик этой группы.
[0051] Коммутатор в данном техническом решении - это сетевое устройство, снабженное несколькими портами, каждый из которых имеет входной и выходной буфер. Порты коммутатора соединены с портами других коммутаторов физическими каналами связи (каналами передачи данных). По этим каналам циркулируют пакеты. Каждый порт коммутатора имеет уникальный номер, который выступает в роли имени порта. Кроме того, один из портов коммутатора соединен каналом управления с контроллером. По этому каналу коммутатор пересылает контроллеру пакеты и статистические данные и принимает от контроллера сообщения.
[0052] Пакеты - это элементарные структуры данных, автономно циркулирующие в сети под воздействием операций коммутации и пересылки. Каждый пакет состоит из заголовка и нагрузки. При выполнении операций коммутации и пересылки, а также при обработке контроллером сообщения с вложенным пакетом, нагрузка пакета во внимание не принимается и не изменяется. Каждый заголовок пакета состоит из нескольких полей. В этих полях указываются физические и виртуальные адреса абонентов сети (как правило, адреса отправителя и получателя пакета), информация о сетевом протоколе, которым должен обрабатываться пакет, и пр. При пересылке пакета его заголовок не изменяется.
Важнейшим понятием в области групповой передачи данных является Source Tree дерево - дерево распространения трафика, которое строится по методу кратчайшего пути и результатом формирования такого дерева является кратчайший путь, благодаря которому трафик групповой передачи данных переходит от внешнего источника данных к внешнему абоненту. В таких деревьях источник трафика является как бы корнем с множеством ветвей, где вся крона представлена внешними абонентами сети.
[0053] Согласно способу групповой передачи пакетов через программно-конфигурируемые сети (Фиг. 6), данное техническое решение включает следующие шаги:
настраивают, по крайней мере, один входной порт для приема пакетов с, по крайней мере, одного внешнего источника трафика и, по крайней мере, два выходных порта для приема запросов с, по крайней мере, одного внешнего потребителя трафика 601 (Фиг. 6);
[0054] Входной порт служит для подключения источника многоадресной рассылки, который генерирует потоки IP-трафика по указанным при настройке диапазонам групповых адресов. При моделировании распространения трафика сети, входной порт является корнем дерева распространения трафика Source Tree каждого генерируемого источником группового адреса. Контроллер периодически проверяет информацию о получаемых потоках путем прослушивания входного порта либо съема статистики пакетов по IP-адресам получателей (скорость передачи пакетов по каждому групповому адресу). Период проверки устанавливается в зависимости от требуемой скорости переключения на резервный источник при отказе проверяемого источника. Также при настройке задается область обслуживания сети (перечень коммутаторов и входных портов на них). Также при настройке указываются выходные порты, с которых разрешены запросы на получение потоков с входных портов,
[0055] - принимают запрос на, по крайней мере, двух выходных портах на получение пакетов, по крайней мере, одной группы многоадресной рассылки от, по крайней мере, одного внешнего потребителя трафика 602 (Фиг. 6);
[0056] При получении первого запроса (внешний потребитель отправляет пакет IGMP join) с одного выходного порта (узла, который запрашивает трафик) на каком-либо входном (абонентском) порту контроллер SDN определяет ближайший порт из списка разрешенных источников многоадресной рассылки, с учетом возможных административных ограничений на разрешенную область сети (административно указанного перечня выходных портов) или атрибутов запроса (например, при использовании протокола IGMPv3, который позволяет абоненту явно указывать запрашиваемый источник). Роль протокола IGMP следующая: если абонентов нет - передавать трафик групповой передачи данных в сегмент не надо. Если появился запрос от внешнего потребителя трафика, контроллер уведомляет маршрутизаторы с помощью протокола IGMP о том, что внешний потребитель хочет получать трафик. Административные ограничения могут включать запрет какого-то множества выходных портов получать трафик с определенных источников. Атрибуты запроса, рассматриваемые на данном этапе - это запрашиваемый групповой адрес, запрашиваемый источник трафика (для запросов протокола IGMPv3),
[0057] - принимают на, по крайней мере, один входной порт, по крайней мере, один пакет, вышеуказанной группы многоадресной рассылки от внешнего источника трафика 603 (Фиг. 6);
[0058] Пакеты поступают с внешнего источника трафика M1 (Фиг. 5) на входной порт SW1 (Фиг. 5), который принимает их. Контроллер SDN организует на выходных портах обработку сообщений протокола IGMPv2/IGMPv3 согласно спецификации IETF RFC2236/RFC3376 с реализацией алгоритма конечных автоматов данных протоколов. Выходной (абонентский) порт - оконечная (подключенная к внешнему абоненту) ветвь дерева распространения трафика группового адреса, при моделировании распространения трафика на программном уровне,
[0059] формируют правила коммутации на узлах сети для передачи пакетов, по крайней мере, одной группы, указанной в предыдущем шаге, причем 604 (Фиг. 6).
[0060] Затем SDN-контроллер устанавливает правила коммутации трафика в начальном, конечном и промежуточных коммутаторах домена по пути следования трафика для передачи пакетов, используя IP-адрес многоадресной рассылки группы в качестве адресной информации. При этом в качестве выходного порта на каждом коммутаторе конфигурируется групповой порт, включающий один или несколько физических портов.
[0061] Для внешнего потребителя трафика, первым запросившего группу многоадресной рассылки, формируется кратчайший путь от входного порта источника до выходного порта, подключенного к этому внешнему потребителю трафика;
[0062] Правила коммутации в этом случае формируются следующим образом (Фиг. 1). Для входного порта: если входным портом является p1, ip-адрес источника это M1, а ip-адрес адресата IPgroup1, то пересылают пакеты на групповой порт, содержащий р2. (Фиг. 1).
[0063] Для промежуточного порта правила следующие (специалисту в данном уровне техники очевидно, что промежуточных портов может быть несколько, не ограничиваясь): если входным портом является p1, ip-адрес источника это M1, а ip-адрес адресата IPgroup1, то пересылают пакеты на групповой порт, содержащий р2.
[0064] Далее для выходного порта: если входным портом является p1, ip-адрес источника это M1, а ip-адрес адресата IPgroup1, то пересылают пакеты на групповой порт, содержащий р2.
[0065] Для последующих внешних потребителей трафика, запросивших группу многоадресной рассылки, формируется кратчайший путь от ближайшего к выходному порту данного внешнего потребителя трафика узла сети, на котором установлены правила коммутации данной группы.
[0066] Правила коммутации следующие (Фиг. 2): в данном случае происходит модификация существующего правила для промежуточного коммутатора, который является ближайшим к выходному порту данного потребителя трафика: если входным портом является p1, ip-адрес внешнего источника это M1, а ip-адрес адресата IPgroup1, то пересылают пакеты на групповой порт, содержащий р2 и р3.
[0067] Для выходного порта правила коммутации будут следующими: если входным портом является p1, ip-адрес источника это M1, а ip-адрес адресата IPgroup1, то пересылают пакеты на групповой порт, содержащий р2.
[0068] SDN-контроллер рассчитывает кратчайший путь, например, по алгоритму Дейкстры (shortest path), но не ограничиваясь, к каждому узлу многоадресной рассылки и устанавливает правила коммутации трафика в начальном, конечном и промежуточных коммутаторах домена по пути следования для передачи фреймов, используя IP-адрес группы многоадресной рассылки в качестве адресной информации. При этом в качестве выходного порта на каждом коммутаторе конфигурируется групповой порт, включающий один или несколько физических портов.
[0069] Если от найденного источника уже построено дерево распространения трафика искомой группы, то в поиск ближайшего порта источника группы включаются все узлы этого дерева. Контроллер SDN определяет ближайший коммутатор, имеющий выходной групповой порт для этой группы многоадресной рассылки. Затем SDN-контроллер расщепляет поток данной группы многоадресной рассылки путем вставки нового физического порта в список группового выходного порта, рассчитывает кратчайший путь до абонентского порта и устанавливает правила коммутации трафика в промежуточных коммутаторах домена по пути следования для коммутации пакетов.
[0070] Передают все пакеты, по крайней мере одной группы многоадресной рассылки, запрошенной в предыдущем шаге, по крайней мере, одним внешним потребителем трафика, от, по крайней мере, одного входного порта, до, по крайней мере, одного выходного порта согласно сформированным на предыдущем шаге правилам коммутации пакетов 605 (Фиг. 6).
[0071] Настоящее техническое решение может быть использовано в сетях операторов связи и других сетях с большим количеством подключенных пользователей (несколько десятков тысяч и более).
[0072] Настоящее подробное описание составлено с приведением различных не имеющих ограничительного и исчерпывающего характера вариантов осуществления. В то же время, специалистам, имеющим средний уровень компетентности в рассматриваемой области техники, очевидно, что различные замены, модификации или сочетания любых раскрытых здесь вариантов осуществления (в том числе частично) могут быть воспроизведены в пределах объема настоящего технического решения. Таким образом, подразумевается и понимается, что настоящее описание включает дополнительные варианты осуществления, суть которых не изложена здесь в явно выраженной форме. Такие варианты осуществления могут быть получены путем, например, сочетания, модификации или преобразования каких-либо действий, компонентов, элементов, свойств, аспектов, характеристик, ограничений и пр., относящихся к приведенным здесь и не имеющим ограничительного характера вариантам осуществления.