Способ и устройство для отправки сетевого маршрута
METHOD AND DEVICE FOR SEINDING A NETWORK ROUTE

Область изобретения
Настоящее изобретение относится к области передачи данных и, в частности, к способу и устройству для отправки сетевого маршрута.
Предшествующий уровень техники
Сегодня способ реализации отправки маршрута в L3VPN (виртуальная частная сеть третьего уровня) это пограничная маршрутизация с поддержкой различных протоколов с распределенной архитектурой MP-BGP (многопротокольный пограничный протокол шлюза) в области маршрутизаторов. Путем настройки связи между соседними узлами РЕ (на стороне поставщика услуг) каждый РЕ узел может получить информацию из IGP (протокол внутреннего шлюза), или статически конфигурированный локальный маршрут может быть опубликован в других узлах РЕ. Так как топология связей соседних станций делится между узлами L3VPN, чтобы проконтролировать публикацию маршрута каждым узлом L3VPN между парой соседних узлов, в настройки конфигурации L3VPN вводят методику RT (Route Target). Только когда два соседних узла в L3VPN имеют одинаковое значение RT, они могут отправлять маршруты друг другу. Этот механизм отправки имеет многолетний опыт отработанного применения в маршрутизаторах; однако настройка конфигурации сложна и трудно локализовать проблемы, модель протокола застыла в развитии и обновление схемы и цикл развертывания долгий. Такой механизм отправки несовместим с существующей плоскостью централизованного управления SDN (программно-определяемая сеть), и у механизма должна быть поддержка с помощью технологии рефлектора маршрутов. Это особенно актуально для сложных топологий и когда в целом схема более сложная.
Сущность изобретения
Ниже приводится краткое изложение формулы, которая далее описана более подробно. Такое краткое изложение не ставит своей целью ограничить объем правовой охраны формулы изобретения.
Предложены способ и устройство для отправки статического сетевого маршрута, которые решают проблему отправки маршрута на основе архитектуры распределенной сети. Проблема состоит в его сложности и длительности цикла обновление схемы и развертывания.
В соответствии с одним из вариантов реализации настоящего изобретения служит способ отправки сетевого маршрута. Способ содержит:
обход предварительно собранной топологии сети, начиная с вводного узла локального маршрута в сети, в соответствии с максимальным числом переходов так, чтобы получить список результата обхода, содержащий обойденные слушающие узлы и узлы-рефлекторы; и
в соответствии со списком результатов обхода создание маршрута на стороне сети и отправку созданного маршрута на стороне сети к соответствующим узлам в сети.
В соответствии с одним из вариантов осуществления настоящего изобретения предложено устройство для отправки сетевого маршрута. Устройство содержит:
модуль обхода для обхода предварительно собранной топологии сети, начиная с вводного узла локального маршрута в сети, в соответствии с максимальным числом переходов так, чтобы получить список результата обхода, содержащий обойденные слушающие узлы и узлы рефлектора; и
модуль отправки маршрута, сконфигурированный для создания маршрута на стороне сети в соответствии со списком результатов обхода и отправки созданного маршрута на стороне сети в соответствующие узлы в сети.
В соответствии с одним из вариантов реализации настоящего изобретения предложен машиночитаемый носитель для хранения исполняемых компьютером команд, которые при выполнении их процессором реализуют описанный выше способ отправки сетевого маршрута.
После прочтения и осмысливания рисунков и подробного описания могут быть поняты другие аспекты.
Краткое описание чертежей
Фиг. 1 это блок-схема способа отправки сетевого маршрута согласно одному из вариантов реализации настоящего изобретения;
Фиг. 2 это схема устройства для отправки сетевого маршрута согласно одному из вариантов реализации настоящего изобретения;
Фиг. 3 показывает общую архитектуру отправки статического сетевого маршрута, предложенную одним из вариантов реализации настоящего изобретения;
Фиг. 4 это схема сети для первого примера отправки статического сетевого маршрута, предложенного одним из вариантов реализации настоящего изобретения; и
Фиг. 5 это схема сети для второго примера отправки статического сетевого маршрута, предложенного одним из вариантов реализации настоящего изобретения.
Подробное описание вариантов осуществления
Примеры реализации настоящего изобретения подробно описаны ниже со ссылкой на прилагаемые рисунки. Следует понимать, что примеры реализации настоящего изобретения, описываемые ниже, служат только для иллюстрации и объяснения настоящего изобретения, и не ограничивают настоящее изобретение.
Фиг. 1 - это блок-схема способа отправки сетевого маршрута согласно одному из вариантов реализации настоящего изобретения. На Фиг. 1 показано, что способ содержит шаг S101 и шаг S102.
На шаге S101 предварительно собранная топология сети обходится начиная с вводного узла локального маршрута в сети в соответствии с максимальным числом переходов так, чтобы получить список результата обхода, содержащий обойденные слушающие узлы и узлы-рефлекторы.
На шаге S102 в соответствии со списком результата обхода создается маршрут на стороне сети, и созданный маршрут на стороне сети отправляется в соответствующие узлы в сети.
Топология сети содержит несколько узлов, в их числе базовые узлы и граничные узлы.
Максимальное число переходов конфигурируется за счет использования метаданных уровня обслуживания, слушающие узлы конфигурируются для каждого базового узла и для каждого граничного узла за счет использования метаданных уровня узла и узлы-рефлекторы конфигурируются для каждого базового узла за счет использования метаданных уровня узла.
Обход предварительно собранной топологии сети, начиная с вводного узла локального маршрута в сети и в соответствии с максимальным числом переходов так, чтобы получить список результата обхода, содержащий обойденные слушающие узлы и узлы рефлектора содержит: последовательный обход каждой ветви топологии сети переход за переходом, начиная с вводного узла локального маршрута; при обходе каждой ветви топологии сети, если определено, что обходимый узел является слушающим узлом вводного узла локального маршрута, то обходимый узел записывают в результирующий список обхода. Обход заканчивают исходя из того, является ли слушающий узел узлом рефлектора и достигнут ли максимум числа переходов. При обходе каждой из ветвей сети, если определено, что обойденный узел не является слушающим узлом вводного узла локального маршрута, то обход прекращают.
Завершение обхода исходя из того, является ли слушающий узел узлом-рефлектором и достигнут ли максимум числа переходов содержит: определение является ли слушающий узел узлом-рефлектором. Если определено, что слушающий узел является узлом-рефлектором, то обход продолжают, начиная с узла-рефлектора и производят запись обойденных слушающих узлов узла-рефлектора в список результатов обхода до достижения максимального числа переходов. Если определено, что слушающий узел не является узлом-рефлектором, то обход прекращают.
Отправка созданного сетевого маршрута в соответствующие узлы в сети содержит: если вводный узел локального маршрута является граничным узлом, то отправляется созданный сетевой маршрут во все базовые узлы в сети; и если вводный узел локального маршрута является базовым узлом, то отправляются созданный сетевой маршрут во все базовые узлы в сети кроме базового узла, служащего вводным узлом и к граничному узлу, непосредственно соседствующему с базовым узлом, который служит вводным узлом.
Фиг. 2 это схема устройства для отправки сетевого маршрута, предложенного одним из вариантов реализации настоящего изобретения. Как показано на Фиг. 2 устройство содержит модуль обхода 201 и модуль отправки маршрута 202. Модуль обхода 201 обходит предварительно собранную топологию сети, начиная с вводного узла локального маршрута в сети и в соответствии с максимальным числом переходов так, чтобы получить список результата обхода, содержащий обойденные слушающие узлы и узлы-рефлекторы. Модуль отправки маршрута 202 сконфигурирован для создания маршрута на стороне сети в соответствии со списком результата обхода и публикует созданный маршрут на стороне сети в соответствующие узлы в сети.
Топология сети содержит несколько узлов, в их числе базовые узлы и граничные узлы.
Максимальное число переходов конфигурируется за счет использования метаданных уровня обслуживания, слушающие узлы конфигурируются для каждого базового узла и для каждого граничного узла за счет использования метаданных уровня узла и узлы-рефлекторы конфигурируются для каждого базового узла за счет использования метаданных уровня узла.
Модуль обхода 201 имеет узел обхода, узел обхода обходит каждую ветвь топологии сети последовательно переход за переходом, начиная с вводного узла локального маршрута в сети; записывает обойденный узел в результирующий список обхода, если определено, что обойденный узел является слушающим узлом вводного узла локального маршрута при обходе каждой из ветвей топологии сети и завершает обход исходя из того, является ли слушающий узел узлом-рефлектором и достигнут ли максимум числа переходов; и прекращает обход, если определено, что обойденный узел не является слушающим узлом вводного узла локального маршрута при обходе каждой из ветвей топологии сети.
Фиг. 3 это общая архитектура отправки статического сетевого маршрута, предложенная одним из вариантов реализации настоящего изобретения. Как показано на Фиг. 3 общая архитектура функционально содержит две части: метаданные и механизм отправки.
Метаданные разделены на две части: метаданные уровня узла и метаданные уровня сервиса. Метаданные уровня узла находятся в точном соответствии с базовым узлом или граничным узлом и метаданные уровня узла конфигурируются для каждого базового узла или каждого граничного узла для описания политики управления узлом во время процесса отправки маршрута. Только один фрагмент метаданных уровня сервиса конфигурируется для всей L3VPN для описания политики отправки всего сервиса. Например, метаданные уровня узла содержат информацию является ли он узлом-рефлектором или нет, список узлов в восходящем направлении, список слушающих узлов и сетевых коммутаторов IP FRR (быстрая перемаршрутизация IP). Метаданные уровня сервиса преимущественно содержат максимальное количество переходов для отправки маршрута.
Механизм отправки является основной частью для реализации целиком устройства для отправки маршрута. Существует фиксированный алгоритм отправки и в ходе исполнения алгоритма отправки механизм отправки считывает информацию метаданных и подстраивает процесс отправки в соответствии с политиками, записанными в информации метаданных так, чтобы адаптироваться к различным сценариям применения. При изменении сценария применения механизм отправки не обновляется, а лишь изменяется конфигурация метаданных для завершения разворачивания нового процесса отправки.
Механизм отправки ограничен метаданными выше во время процесса отправки маршрута следующим образом.
1) Во-первых, топология сети построена на узлах РЕ L3VPN, которые являются вершинами, и на одноранговых узлах, являющихся граничными узлами.
2) Во-вторых, обход по уровням выполняют начиная с вводного узла локального маршрута и на основании топологии. Во время обхода подсчитывается количество переходов, и в каждый момент времени определяется достигнуто ли максимальное количество переходов, установленное метаданными уровня сервиса. При достижении максимума количества переходов, «обход текущей ветви останавливают и обход других ветвей продолжают в соответствии с принципом обхода по уровням. Если все ветви обойдены, то алгоритм останавливают».
3) Каждый раз по достижении узла во время обхода перед принятием решения продолжать ли обход, определяют является ли узел слушающим узлом начального узла; если нет, то узел не отражают в результате обхода, «обход текущей ветви останавливают и обход других ветвей продолжают в соответствии с принципом обхода по уровням; если все ветви обойдены, то алгоритм останавливают».
4). Каждый раз по достижении узла при обходе перед принятием решения, продолжать ли обход, определяют является ли этот узел рефлектором. Если узел не является рефлектором, «обход текущей ветви останавливают и обход других ветвей продолжают в соответствии с принципом обхода по уровням. Если все ветви обойдены, то алгоритм останавливают». Если узел является рефлектором, то определяют, является ли предыдущий узел узлом в восходящем направлении от этого рефлектора. Если предыдущий узел это не узел в восходящем направлении от этого рефлектора, «обход текущей ветви останавливают и обход других ветвей продолжают в соответствии с принципом обхода по уровням. Если все ветви обойдены, то алгоритм останавливают». Если предыдущий узел это узел в восходящем направлении рефлектора, то обход продолжают. Примечание: начальный узел не обязательно должен быть рефлектором.
5) Когда соседний узел обходят вдоль рефлектора во время обхода, то также определяют является ли такой соседний узел узлом в нисходящем направлении от рефлектора. Если да, то этот узел обходят; в противном случае узел не обходят и продолжают пробовать другие узлы. (Примечание: если список узлов в восходящем направлении в метаданных пуст, то это означает, что все соседние узлы могут быть узлами в восходящем направлении от узла-рефлектора; то же верно для узлов в нисходящем направлении.)
6) Во время обхода каждый раз при обходе узла один узел в восходящем направлении записывают и повторно те же узлы в восходящем направлении не должны быть записаны. Кроме того, записывают количество переходов от начального узла к этому узлу. Когда те же узлы в восходящем направлении объединяют, то количество переходов принимает меньшее значение.
7) В случае где местный маршрут вводят из двух узлов, то процесс выше повторяют дважды с каждым из таких двух узлов в качестве начального узла.
8) Результат обхода является под-топологией исходной топологии. Каждый узел в под-топологии является узлом-кандидатом, где должен быть создан маршрут на стороне сети. Начальные узлы являются особенными. Если существует два начальных узла и коммутаторы IP FRR в них включены, то маршруты на стороне сети также создают на начальных узлах; в противном случае, новый маршрут не создают на начальных узлах за исключением локального маршрута, введенного алгоритмом.
9) Маршруты на стороне сети создают на других узлах в соответствии с количеством записанных узлов в восходящем направлении.
10) Для режима активного резервирования активный маршрут на стороне сети и резервный маршрут на стороне сети создают на двух выбранных узлах в восходящем направлении с наименьшим числом переходов, соответственно. Активный или резервный маршрут определяют в соответствии с некоторым принципом (алгоритм хеширования) или внесенным извне ролевым списком активного резервирования.
Вышеприведенное решение по реализации настоящего изобретения расширяют до отправки IP-маршрутов публичной сети без L3VPN. Структура всего устройства по-прежнему содержит метаданные и механизм отправки, отличающийся тем, что метаданные уровня обслуживания заменяют на метаданные уровня обслуживания и только один блок метаданных уровня обслуживания сконфигурирован для всей сети. Механизм отправки не может создавать топологию сети на основе туннельных связей одноранговых узлов; вместо этого механизм отправки может создавать топологию сети на основе одноранговой конфигурации между сетевыми узлами или других конфигураций, показывающих соединения между узлами. Все это можно внедрить в область применения вариантов реализации настоящего изобретения.
Фиг. 4 это первый пример схемы сети при отправке статического сетевого маршрута, предложенного одним из вариантов реализации настоящего изобретения. Как показано на Фиг. 4 считают, что требования к отправки заключаются в следующем.
Узлы 3, 4, 5, 6, 7 и 8 определены как базовые узлы и узлы 1, 2, 9 определены как граничные узлы. Локальный маршрут, вводимый из граничного узла должен быть отправлен во все базовые узлы, но не в другие граничные узлы. Локальный маршрут, вводимый из базового узла должен быть отправлен во все базовые узлы и граничный узел, соседний названному базовому узлу, но не граничным узлам, не являющимся непосредственно соседними для названного базового узла.
На основании требований выше применение настоящего изобретения следующее.
Конфигурации метаданных уровня узла:
Слушающие узлы каждого из узлов 3 и 4 сконфигурированы как узлы 1, 2, 5, 6, 7 и 8;
Слушающие узлы каждого из узлов 5 и 6 сконфигурированы как узлы а, 3, 4, 7 и 8;
Слушающие узлы каждого из узлов 7 и 8 сконфигурированы как узлы 9, 3, 4, 5 и 6;
Слушающие узлы каждого из узлов 1, 2, 9 и а сконфигурированы как 3, 4, 5, 6, 7 и 8;
Узлы 3, 4, 5, 6, 7 и 8 все сконфигурированы рефлекторами;
IP FRR сетевые коммутаторы всех узлов выключены;
Узлы в восходящем направлении из числа всех узлов не сконфигурированы; и узлы в нисходящем направлении из числа всех узлов не сконфигурированы.
Конфигурация метаданных уровня обслуживания: максимальное число переходов: 2
Приведен пример, в котором локальный маршрут введен из узлов 1 и 2. Как показано на Фиг. 4, процесс отправки заключается в следующем.
На шаге 11) топология сети сначала построена на узлах РЕ L3VPN, которые являются вершинами, и из одноранговых узлов, которые являются граничными узлами, как показано на Фиг. 4.
На шаге 12) обход по уровням сначала выполняют начиная с узла 1 и на основании топологии. Узлы 3 и 4 обходят для первого перехода. Определено, что узлы 3 и 4 - это слушающие узлы узла 1 и узлы 3 и 4 вносят в список результатов обхода. Определено, что узлы 3 и 4 это рефлекторы, обще количество переходов не достигло максимума количества переходов 2 и обход продолжают.
На шаге 13) обходят узлы 4, 5, 6, 7 и 8, начиная с узла 3. В силу того, что 4, 5, 6, 7 и 8 - это все слушающие узлы узла 1 и каждый из узлов 4, 5, 6, 7, 8 и узел 3 - это узлы в всходящем и нисходящем направлении один относительно другого (узлы в восходящем и нисходящем направлении из числа всех узлов не сконфигурированы), то узлы 4, 5, 6, 7 и 8 вносят в список результатов обхода. В силу того, что общее число переходов достигло максимального числа переходов 2 обход останавливают.
На шаге 14) повторяют шаг 13), начиная с узла 4.
На шаге 15) повторяют шаги 12) -14), начиная с узла 2.
На шаге 16) процесс обхода заканчивается и маршруты на стороне сети создают в соответствии с результатом обхода следующим образом.
Узел 3 имеет три узла в восходящем направлении: 1, 2 и 4. Из узлов 1, 2 и 4 выбирают два с меньшим числом переходов, и создают два маршрута на стороне сети. Следующий переход направляют к узлам 1 и 2. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Узел 4 имеет три узла в восходящем направлении: 1, 2 и 3. Из узлов 1, 2 и 3 выбирают два с меньшим числом переходов, и создают два маршрута сетевой стороны. Следующий переход направляют к узлам 1 и 2. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Каждый из узлов 5, 6, 7 и 8 имеет два узла в восходящем направлении: 3 и 4, и поэтому на каждом из узлов 5, 6, 1 и 8 создают маршруты на стороне сети. Следующий переход направляют к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Приводят пример, в котором локальный маршрут введен из узлов 3 и 4. Как показано на Фиг. 5, процесс отправки заключается в следующем.
На шаге 21) обход выполняют на основании той же топологии что и обход, выполненный начиная с узлов 1 и 2, и такую топологию не нужно создавать повторно.
На шаге 22) обход по уровням сначала выполняют начиная с узла 3 и на основании топологии. Узлы 1, 2, 4, 5, 6, 7 и 8 обходят для первого перехода. Узел 4 удален по причине того, что он не слушающий узел узла 3, и остальные узлы 1, 2, 5, 6, 7 и 8 вносят в список результатов обхода.
На шаге 23) из-за того, что узлы 1 и 2 не являются узлами-рефлекторами, необходимость продолжать обход отсутствует.
На шаге 24) из-за того, что узел 5 является узлом-рефлектором, обход продолжают и обходят узлы 4, 6, 7, 8 и а. Узел а удален по причине того, что он не является слушающим узлом узла 3, и остальные узлы 4, 6, 7 и 8 вносят в список результатов обхода.
На шаге 25) повторяют шаг 24) для узлов 6, 7 и 8.
На шаге 26) число переходов достигло максимума и обход заканчивают.
На шаге 27) повторяют шаги 22) -26), начиная с узла 4.
На шаге 28) весь процесс обхода заканчивают и маршруты на стороне сети создают в соответствии с результатом обхода следующим образом.
Каждый из узлов 1 и 2 имеет два узла в восходящем направлении: 3 и 4. Созданы два маршрута сетевой стороны и следующий переход направлен к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Узлы 3 и 4 это начальные узлы и сетевые коммутаторы IP FRR в них не включены. Поэтому маршруты на стороне сети не созданы.
Узел 5 имеет пять узлов в восходящем направлении: 3, 4, 6, 7 и 8. Из узлов 3, 4, 6, 7 и 8 выбирают два с наименьшим числом переходов, а именно, выбраны узлы 3 и 4, и создают два маршрута на стороне сети. Следующий переход направляют к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Узел 6 имеет пять узлов в восходящем направлении: 3, 4, 5, 7 и 8. Из узлов 3, 4, 5, 7 и 8 выбирают два с наименьшим числом переходов, а именно, выбраны узлы 3 и 4, и создают два маршрута на стороне сети. Следующий переход направляют к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Узел 7 имеет пять узлов в восходящем направлении: 3, 4, 6, 5 и 8. Из узлов 3, 4, 6, 5 и 8 выбирают два с наименьшим числом переходов, а именно, выбраны узлы 3 и 4, и создают два маршрута на стороне сети. Следующий переход направляют к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
Узел 8 имеет пять узлов в восходящем направлении: 3, 4, 6, 7 и 5. Из узлов 3, 4, 6, 7 и 5 выбирают два с наименьшим числом переходов, а именно, выбраны узлы 3 и 4, и создают два маршрута на стороне сети. Следующий переход направляют к узлам 3 и 4. Роли активного резервирования определяют на основании алгоритма хеширования, либо на основании поступающих внешних запросов.
В соответствии с одним из вариантов реализации настоящего изобретения предложен машиночитаемый носитель для хранения исполняемых компьютером команд, которые, будучи исполнены, процессором, реализуют описанный выше способ отправки сетевого маршрута.
Решение согласно этого варианта реализации настоящего изобретения имеет следующие преимущества: 1) диапазоном отправки и правилами отправки можно точно управлять и данное решение применимо для различных сценариев, включая сложные сетевые сценарии; 2) алгоритм программного обеспечения для механизма отправки унифицирован, что не требует адаптированного целевого сценария. Адаптация сценария присутствует только в конфигурировании метаданных. При поддержке новых сценариев нужно менять только конфигурацию метаданных, и обновлять программное обеспечение механизма нет необходимости. То есть, конфигурируя метаданные адаптируют правила отправки для более гибкой и быстрой адаптации к алгоритму отправки маршрута L3VPN в различных сценариях сети.
Специалисты понимают, что все или некоторые шаги, системы и функциональные модули/узлы в предложенном выше способе можно реализовать как программу, программное обеспечение, аппаратное обеспечение и их комбинацию. Как вариант аппаратной реализации деление функциональных модулей/узлов в описании выше не обязательно соответствует физическому разделению компонентов. Например, физический компонент может иметь несколько функций, либо некоторая функция или шаг может быть исполнен в совместной работе нескольких физических компонентов. Некоторые или все компоненты могут быть реализованы как программа, исполняемая процессором, например, цифровым сигнальным или микропроцессором, могут быть реализованы аппаратно или как специальная интегральная схема для приложения. Такую программу можно распространять на машиночитаемом носителе, что может быть компьютерным носителем (или носителем для долговременного хранения информации) и коммуникационной средой (или промежуточным носителем). Как известно специалистам термин «компьютерная среда хранения данных» включает в себя энергозависимый и энергонезависимый носитель информации, а также съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, например, для машиночитаемых команд, структур данных, программных модулей и другой информации. Компьютерная среда хранения данных содержит, но не исчерпывается перечнем ниже, RAM, ROM, EEPROM, флэш-память и другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) и другие накопители на оптических дисках, магнитные кассеты, магнитную ленту, накопители на магнитных дисках и другие магнитные запоминающие устройства и любой другой носитель, который можно использовать для хранения нужной информации и к которому может иметь доступ компьютер. Кроме того, специалистам хорошо известно, что коммуникационная среда обычно содержит машиночитаемые команды, структуры данных, программные модули и другую информацию в модулированном информационном сигнале, как то несущем сигнале и другом транспортном механизме и любые средства доставки информации.
Хотя настоящее изобретение описано подробно выше, оно этим не ограничено и специалисты способны сделать различные модификации в соответствии с первоосновой настоящего изобретения. Поэтому следует понимать, что все модификации, сделанные в соответствии с принципом настоящего изобретения, находятся в объеме правовой защиты настоящего изобретения.