RU2777809C1 - Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN - Google Patents

Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN Download PDF

Info

Publication number
RU2777809C1
RU2777809C1 RU2021130944A RU2021130944A RU2777809C1 RU 2777809 C1 RU2777809 C1 RU 2777809C1 RU 2021130944 A RU2021130944 A RU 2021130944A RU 2021130944 A RU2021130944 A RU 2021130944A RU 2777809 C1 RU2777809 C1 RU 2777809C1
Authority
RU
Russia
Prior art keywords
network
list
networks
cdn
node
Prior art date
Application number
RU2021130944A
Other languages
English (en)
Inventor
Александр Владимирович Зырянов
Сергей Владимирович Ивленков
Original Assignee
Общество с ограниченной ответственностью "СДН-видео"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "СДН-видео" filed Critical Общество с ограниченной ответственностью "СДН-видео"
Application granted granted Critical
Publication of RU2777809C1 publication Critical patent/RU2777809C1/ru

Links

Images

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации количества добавляемых префиксов. Способ разделения географически распределённых IP-сетей на подсети характеризуется тем, что с узлов сети CDN измеряют сетевые задержки для IP-адресов, входящих в предполагаемые для разделения сетевые префиксы; строят временный список сетей T; для каждой сети из списка T запоминают метрику; создают пустой список R; каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, а метрику копируют; две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел; когда замена двух IP-сетей невозможна, рассматриваемую IP-сеть либо пару IP-сетей удаляют из списка T и добавляют в список R; процесс продолжают до тех пор, пока список T не опустеет либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины, которые переносят в список R; IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN. 5 з.п. ф-лы, 5 ил.

Description

Изобретение относится к области компьютерных сетей, более конкретно – к сетям доставки контента (сети CDN), и может быть использовано для разделения сетевых префиксов на подпрефиксы.
Здесь и далее под сетевым префиксом понимается комбинация IP-адреса и маски сети, то есть запись вида x.x.x.x/y, где x.x.x.x – IP-адрес сети, y – маска сети, записанная в виде десятичного числа.
Из уровня техники известен традиционный способ балансирования нагрузки в сетях CDN, в котором для каждого сетевого префикса выбирается оптимальный с точки зрения той или иной метрики сервер сети CDN. Данный способ хорошо работает для IP-сетей, адреса которых назначены географически расположенным близко друг к другу устройствам и, соответственно, имеют один и тот же оптимальный сервер. Вместе с тем для IP-сетей, адреса которых назначены устройствам, находящимся в различных географических областях, выбор единого оптимального сервера может быть невозможен, что приведёт к ухудшению качества обслуживания для части пользователей. В тех случаях, когда балансирование нагрузки в сети CDN осуществляется на основе IP-адреса DNS-сервера, и когда IP-адрес DNS-сервера принадлежит подобной географически распределённой IP-сети, снижение качества обслуживания может наблюдаться у значительной доли пользователей.
Одним из способов повышения качества обслуживания пользователей является разделение подобных IP-сетей на несколько подсетей с выбором оптимального сервера для каждой из них. Этот способ эффективен, так как разделение можно произвести таким образом, чтобы для каждой подсети для всех входящих в неё адресов оптимальным являлся один и тот же сервер.
В соответствие с этим наиболее близким аналогом заявленного изобретения является система и способ повышения степени детализации управления префиксами в компьютерной сети (US 8625420 B2, 09.05.2005), в котором сетевой префикс разделяется на один или более подпрефиксов на основе тех или иных критериев, включая время отклика, с последующим добавлением в таблицу маршрутизации вместо оригинального префикса.
Недостатком указанного способа является недостаточная оптимизация количества добавляемых префиксов, что может привести к повышенной нагрузке на систему балансирования нагрузки сети CDN. Также указанный способ может приводить к некорректному результату, если префикс или его часть недоступна для измерений с части узлов сети.
Задачей изобретения является создание способа разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN, лишённого указанных выше недостатков уровня техники.
Технический результат заключается в оптимизации количества добавляемых префиксов.
Также результат заключается в повышении точности разделения сетей на подсети в том случае, если сетевая задержка части адресов не доступна для измерения.
Вышеуказанные результаты достигаются за счёт того, что способ разделения географически распределённых IP-сетей на подсети включает в себя этапы, на которых получают список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов сети CDN L, генерируют список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, далее список A передают на все узлы сети CDN из списка L для осуществления измерения сетевых задержек.
После получения результатов измерений сетевых задержек от узлов из списка L определяют минимальную сетевую задержку и строят временный список сетей T, состоящий из IP-сетей минимального размера и содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N.
Также для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, запоминают метрику, состоящую из списка узлов сети CDN C(i, m) и значением разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети, при этом если сетевая задержка не была успешно измерена с узла e, либо если значение разницы d(e, i, m) превышает заданную величину, узел e и его значение d(e, i, m) не включают в метрику.
Кроме того создают пустой список R, элементами которого являются тройки (e, i, m), далее каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, при этом метрику копируют.
Также две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской сети заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел, при этом метрика новой сети состоит из узлов, присутствующих в каждой из заменяемых сетей, со значением d(e, i, m) равным максимальному из значений d(e, i, m) заменяемых сетей.
В случае, когда замена двух IP-сетей по указанному критерию невозможна, либо когда IP-сеть с на единицу меньшей маской сети будет совпадать с не предполагаемым для разделения сетевым префиксом, либо содержать не предполагаемый для разделения сетевой префикс в качестве подсети, рассматриваемую IP-сеть, либо пару IP-сетей удаляют из списка T и добавляют в список R, при этом для каждой добавляемой в список R сети также запоминают узел из её метрики с минимальным значением d(e, i, m).
Этот процесс продолжают до тех пор, пока список T не опустеет, либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины и в этом случае оставшиеся в списке T сети также переносят в список R. Полученные IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN.
В соответствии с частным случаем выполнения, при объединении двух IP-сетей из списка T значение d(e, i, m) новой сети вычисляют как сумму значений d(e, i, m) заменяемых сетей, а при замене IP-сети из списка T на IP-сеть с на единицу меньшей маской сети значение разницы d(e, i, m) удваивают.
В соответствии с частным случаем выполнения, в случае невозможности объединения двух IP-сетей, одну из них удаляют из списка T и добавляют в список R, а другую – заменяют в списке T на IP-сеть с на единицу меньшей маской сети.
В соответствии с частным случаем выполнения, если узел сети CDN не смог измерить сетевые задержки для IP-адреса, однако такие измерения были успешны ранее, используют результаты последнего успешного измерения.
В соответствии с частным случаем выполнения, измерение сетевых задержек производят только для части входящих в предполагаемый для разделения сетевой префикс IP-адресов.
В соответствии с частным случаем выполнения, если несколько узлов сети CDN обладают схожими сетевыми характеристиками, измерения производят только с одного из этих узлов, а при добавлении IP-сетей в систему балансирования нагрузки сети CDN оптимальный узел заменяют на узел со схожими сетевыми характеристиками.
Оптимизация количества добавляемых префиксов достигается за счёт того, что предложенный способ объединяет префиксы, расположенные на значительном географическом расстоянии друг от друга в том случае, если оптимальным для них является один и тот же сервер сети CDN. На это влияет то, что в качестве разницы d(e, i, m) берётся не значение сетевой задержки, а разница между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN.
Повышение точности разделения сетей на подсети достигается за счёт того, что данный способ генерирует не те подпрефиксы, которые удалось измерить и только их, а более крупные содержащие их префиксы. Поскольку соседние IP-адреса как правило расположены географически близко друг к другу, такой подход позволяет повысить точность и для тех IP-адресов, время отклика которых не удалось измерить.
Изобретение иллюстрируется чертежами.
На фиг. 1 показана схема системы.
На фиг. 2-5 показаны примеры объединения сетей в дополнительном варианте осуществления.
Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN включает в себя подсистему оптимизации префиксов 1, подсистему балансирования нагрузки сети CDN 2 и узлы сети CDN 3. Подсистема оптимизации префиксов связана с подсистемой балансирования нагрузки сети CDN через канал обмена данных 4 и с узлами сети CDN через канал обмена данных 5. Направление стрелок соответствует направлению передачи данных. Также подсистема балансирования нагрузки сети CDN перенаправляет запросы клиентов на узлы сети CDN, что обозначено стрелкой 6 (фиг.1).
Подсистема оптимизации префиксов 1 предусматривает программный модуль, выполняемый на одном или нескольких либо выделенных серверах, либо серверах сети CDN, либо их комбинации. Данный модуль получает от подсистемы балансирования нагрузки 2 сети CDN список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов 3 сети CDN L. Подсистема оптимизации префиксов 1 генерирует список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S. Список A передаётся на все узлы 3 сети CDN из списка L для осуществления измерения сетевых задержек.
В дополнительном варианте осуществления список IP-адресов A включает только часть адресов, входящих в префиксы из списка S. Эту часть отбирают по тому или иному критерию. В качестве критериев выбора может использоваться определённое значение некоторого количества последних битов IP-адреса (то есть выборка с шагом 2^x), выбор определённого количества адресов для каждого префикса случайным образом, либо иной критерий выбора.
После того, как подсистема оптимизации префиксов 1 получит результаты измерений сетевых задержек от всех узлов 3 сети CDN из списка L, подсистема строит временный список сетей T, состоящий из IP-сетей минимального размера – с маской /32 для IPv4 и /128 для IPv6, содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N.
Для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, также запоминается метрика, состоящая из списка узлов сети CDN C(i, m) и значением разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети.
При этом если сетевая задержка не была успешно измерена с узла e, либо если разница d(e, i, m) превышает заданную величину, которая задаётся административной политикой, узел e и его значение разницы d(e, i, m) не включаются в метрику. Также создаётся пустой список R, элементами которого являются тройки (e, i, m).
Далее выполняется цикл по m со стартовым значением h равным 32 для IPv4 и 128 для IPv6, конечным значением z, которое задаётся административной политикой, и шагом –1, в котором для всех (i, m) из списка T выполняются следующие действия:
1. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит ни в список T, ни в список N и сеть (i, m–1) не входит в список N, то (i, m) удаляется из T, а (i, m–1) добавляется в T, причём C(i, m–1) = C(i, m), и d(e, i, m–1) = d(e, i, m) для каждого узла e из C(i, m). Здесь и далее под операциями +, – и ^ понимается сложение, вычитание и возведение в степень при записи IP-адреса и сетевой маски в виде десятичного целого.
2. Если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит ни в список T, ни в список N и сеть (i–2^(h–m), m–1) не входит в список N, то (i, m) удаляется из T, а (i–2^(h–m), m–1) добавляется в T, причём C(i–2^(h–m), m–1) = C(i, m), и d(e, i–2^(h–m), m–1) = d(e, i, m) для каждого узла e из C(i, m).
3. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют непустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, а (i, m–1) добавляется в T, причём C(i, m–1) равен пересечению C(i, m) и C(i+2^(h–m), m), а d(e, i, m–1) равен максимуму d(e, i, m) и d(e, i+2^(h–m), m) для всех e из C(i, m–1).
4. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит в список T, но сеть (i+2^(h–m), m) и/или сеть (i, m–1) входит в список N, то (i, m) удаляется из T, а (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m).
5. Если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит в список T, но сеть (i–2^(h–m), m) и/или сеть (i–2^(h–m), m–1) входит в список N, то (i, m) удаляется из T, а (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m).
6. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, но сеть (i, m–1) входит в список N и/или множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют пустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, а (e1, i, m) и (e2, i+2^(h–m), m) добавляются в список R, где e1 – узел из C(i, m) с минимальным d(e1, i, m), а e2 – узел из C(i+2^(h–m), m) с минимальным d(e2, i+2^(h–m), m).
После завершения цикла, если список T не пуст, для каждой сети (i, m) из списка T производится добавление (e, i, m) в список R, где e – узел из C(i, m) с минимальным d(e, i, m). Затем список R передаётся подсистеме балансирования нагрузки 2 сети CDN.
В дополнительном варианте осуществления в цикле по m для всех (i, m) из списка T если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют непустое пересечение, то d(e, i, m–1) = d(e, i, m) + d(e, i+2^(h–m), m) для всех e из C(i, m–1). Также если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит ни в список T, ни в список N и сеть (i, m–1) не входит в список N, то d(e, i, m–1) = 2*d(e, i, m) для всех e из C(i, m–1). Также если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит ни в список T, ни в список N и сеть (i–2^(h–m), m–1) не входит в список N, то d(e, i–2^(h–m), m–1) = 2*d(e, i, m) для всех e из C(i–2^(h–m), m–1). Замена максимума на сумму и удвоение может производиться в тех случаях, когда предпочтительна минимизация средней сетевой задержки минимизации наихудшей сетевой задержки.
В дополнительном варианте осуществления в цикле по m для всех (i, m) из списка T если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют пустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, (i, m–1) добавляется в T, и либо C(i, m–1) = C(i, m), d(e, i, m–1) = d(e, i, m) и (e, i+2^(h–m), m) добавляется в список R, где e – узел из C(i+2^(h–m), m) с минимальным d(e, i+2^(h–m), m), либо C(i, m–1) = C(i+2^(h–m), m), d(e, i, m–1) = d(e, i+2^(h–m), m) и (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m). Иными словами, одна из сетей заменяется сетью с на единицу меньшей маской, а другая переносится в список R. Выбор сети, которая будет заменена на сеть с на единицу меньшей маской, осуществляется таким образом, чтобы обеспечить объединение с другими сетями из списка T на как можно большем количестве последующих итераций цикла в пределах заданной глубины поиска. В том случае, если в пределах заданной глубины поиска количество объединений совпадает, выбор осуществляется так, чтобы минимизировать наименьшее значение d(e, i, m) после этих объединений, а в случае совпадения значений d(e, i, m) – случайным образом. Например, если нам необходимо осуществить выбор между сетью (i1, m) с C(i1, m) = {e1, e2} и сетью (i2, m) с C(i2, m) = {e3, e4}, при этом на следующем шаге предстоит объединение с сетью (i3, m–1) с C(i3, m–1) = {e1, e3, e4}, а через шаг после этого с сетью (i4, m–2) с C(i4, m–2) = {e1, e5} (фиг. 2), то для сохранения в списке T будет выбрана сеть (i1, m), т.к. хотя обе рассматриваемые сети могут участвовать в объединении на следующем шаге, через один шаг объединение возможно только в случае выбора сети (i1, m) (фиг. 3). В том случае, когда возможны различные варианты списка C на следующем шаге, рассматриваются все возможные комбинации. Например, если нам необходимо заменить на (i1, m–1) либо сеть (i1, m) с C(i1, m) = {e1, e2}, либо сеть (i2, m) с C(i2, m) = {e3, e4}, а также заменить на (i3, m–1) либо сеть (i3, m) с C(i3, m) = {e2, e5}, либо сеть (i4, m) с C(i4, m) = {e6, e7}, причём на следующем шаге предстоит объединение сетей (i1, m–1) и (i3, m–1) (фиг. 4), то будут выбраны сети (i1, m) и (i3, m), т.к. эта единственная пара, которая может объединиться на следующем шаге (на основе узла e2) (фиг. 5).
Подсистема балансирования нагрузки 2 сети CDN осуществляет выбор оптимального узла сети CDN на основе IP-адреса пользователя. При выявлении префиксов, которые могут нуждаться в разделении, подсистема передаёт их список S, а также список всех прочих префиксов N и список узлов 3 сети CDN L подсистеме 1 оптимизации префиксов. Выявление предполагаемых к разделению префиксов может осуществляться на основе статистических данных, результатов измерений, административной конфигурации, либо иным образом.
При получении списка R от подсистемы 1 оптимизации префиксов подсистема балансирования нагрузки 2 сети CDN удаляет все предполагавшиеся для разделения сетевые префиксы (список S), и добавляет префиксы (i, m) с оптимальным узлом e, где (e, i, m) – элемент списка R.
В дополнительном варианте осуществления если несколько узлов сети CDN обладают схожими сетевыми характеристиками – расположены в географической близости, подключены к одинаковому набору операторов связи и прочее, то при формировании списка L в него может быть включён только один узел из каждой группы подобных узлов. В качестве критерия выбора может выступать текущая нагрузка на узел, аппаратно-технические характеристики узла, административная конфигурация, или иной критерий. При этом при получении списка R оптимальный узел e может быть заменён на другой узел со схожими сетевыми характеристиками, причём замена может осуществляться случайным образом, путём поочерёдного выбора узлов из группы, или иным образом.
Узлы 3 сети CDN предоставляют данные в ответ на запросы клиентов сети CDN. При получении списка A от подсистемы 1 оптимизации префиксов производится попытка измерения сетевых задержек для каждого IP-адреса из списка путём отправки ICMP Echo запросов, попытки установки TCP-соединения, или иным образом. Результаты измерений, состоящие из списка адресов, для которых удалось измерить сетевую задержку, и величины задержки для каждого из них, передаются подсистеме оптимизации префиксов.
В дополнительном варианте осуществления если узел 3 сети CDN не смог измерить сетевую задержку для IP-адреса, однако ранее сетевая задержка для данного адреса была успешно измерена, данный адрес и результат его последнего успешного измерения могут быть переданы подсистеме оптимизации префиксов 1.
Ниже приведён пример осуществления предложенного способа.
Пусть сеть CDN состоит из узлов L = {node1, node2, node3}
Пусть список предполагаемых для разделения сетевых префиксов S = {10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24}
Пусть список всех прочих префиксов N = {10.0.0.0/23, 10.0.2.18/32, 10.0.3.0/24}
Тогда список A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, будет содержать все IP-адреса в диапазоне 10.0.0.0-10.0.2.255 (768 адресов).
Пусть среди этих 768 адресов были успешно измерены следующие задержки:
• На node1 - 10.0.0.1 (25мс), 10.0.0.2 (25мс), 10.0.0.10 (30мс), 10.0.2.17 (10мс).
• На node2 - 10.0.0.1 (30мс), 10.0.0.10 (10мс), 10.0.2.16 (10мс).
• На node3 - 10.0.0.2 (20мс), 10.0.0.10 (15мс), 10.0.2.18 (10мс).
Пусть максимально допустимая разница задержек составляет 5мс.
Тогда список T будет содержать IP-адреса {10.0.0.1/32, 10.0.0.2/32, 10.0.0.10/32, 10.0.2.16/32, 10.0.2.17/32}, причём:
• С(10.0.0.1, 32) = {node1, node2}, d(node1, 10.0.0.1, 32) = 0, d(node2, 10.0.0.1, 32) = 5
• С(10.0.0.2, 32) = {node1, node3}, d(node1, 10.0.0.2, 32) = 5, d(node3, 10.0.0.2, 32) = 0
• С(10.0.0.10, 32) = {node2, node3}, d(node2, 10.0.0.10, 32) = 0, d(node3, 10.0.0.10, 32) = 5
• С(10.0.2.16, 32) = {node2}, d(node2, 10.0.2.16, 32) = 0
• С(10.0.2.17, 32) = {node1}, d(node1, 10.0.2.17, 32) = 0
В список T не входит адрес 10.0.2.18/32, т.к. он входит в список N. С(10.0.0.10, 32) не включает node1, т.к. время отклика с этого узла отличается от наилучшего больше чем на 5мс.
В этот момент список R пуст.
Далее выполняется цикл по маске m:
• m = 32:
• Для 10.0.0.1/32. Сеть 10.0.0.0/32 не входит ни в список T, ни в список N и сеть 10.0.0.0/31 не входит в список N, поэтому 10.0.0.1/32 заменяется на 10.0.0.0/31
• Для 10.0.0.2/32. Сеть 10.0.0.3/32 не входит ни в список T, ни в список N и сеть 10.0.0.2/31 не входит в список N, поэтому 10.0.0.2/32 заменяется на 10.0.0.2/31
• Для 10.0.0.10/32. Сеть 10.0.0.11/32 не входит ни в список T, ни в список N и сеть 10.0.0.10/31 не входит в список N, поэтому 10.0.0.10/32 заменяется на 10.0.0.10/31
• Для 10.0.2.16/32. Сеть 10.0.2.17/32 входит в список T, но С(10.0.2.16, 32) и С(10.0.2.17, 32) имеют пустое пересечение, поэтому 10.0.2.16/32 и 10.0.2.17/32 удаляются из списка T и добавляются в список R.
• Итог шага: T = {10.0.0.0/31, 10.0.0.2/31, 10.0.0.10/31} С(10.0.0.0, 31) = {node1, node2}, d(node1, 10.0.0.0, 31) = 0, d(node2, 10.0.0.0, 31) = 5
С(10.0.0.2, 31) = {node1, node3}, d(node1, 10.0.0.2, 31) = 5, d(node3, 10.0.0.2, 31) = 0
С(10.0.0.10, 31) = {node2, node3}, d(node2, 10.0.0.10, 31) = 0, d(node3, 10.0.0.10, 31) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}
• m = 31:
• Для 10.0.0.0/31. Сеть 10.0.0.2/31 входит ни в список T, не входи в список N и С(10.0.0.0, 31) и С(10.0.0.2, 31) имеют непустое пересечение, поэтому 10.0.0.0/31 и 10.0.0.2/31 заменяется на 10.0.0.0/30, С(10.0.0.0, 30) = {node1}, а d(node1, 10.0.0.0, 31) = 5.
• Для 10.0.0.10/31. Сеть 10.0.0.8/31 не входит ни в список T, ни в список N и сеть 10.0.0.8/30 не входит в список N, поэтому 10.0.0.10/31 заменяется на 10.0.0.8/30
• Итог шага: T = {10.0.0.0/30, 10.0.0.8/30} С(10.0.0.0, 30) = {node1}, d(node1, 10.0.0.0, 30) = 5
С(10.0.0.8, 30) = {node2, node3}, d(node2, 10.0.0.8, 30) = 0, d(node3, 10.0.0.8, 30) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}
• m = 30:
• Для 10.0.0.0/30. Сеть 10.0.0.4/30 не входит ни в список T, ни в список N и сеть 10.0.0.0/29 не входит в список N, поэтому 10.0.0.0/30 заменяется на 10.0.0.0/29
• Для 10.0.0.8/30. Сеть 10.0.0.12/30 не входит ни в список T, ни в список N и сеть 10.0.0.8/29 не входит в список N, поэтому 10.0.0.8/30 заменяется на 10.0.0.8/29
• Итог шага: T = {10.0.0.0/29, 10.0.0.8/29} С(10.0.0.0, 29) = {node1}, d(node1, 10.0.0.0, 29) = 5
С(10.0.0.8, 29) = {node2, node3}, d(node2, 10.0.0.8, 29) = 0, d(node3, 10.0.0.8, 29) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}
• m = 29:
• Для 10.0.0.0/29. Сеть 10.0.0.4/30 не входит ни в список T, ни в список N и сеть 10.0.0.0/29 не входит в список N, поэтому 10.0.0.0/30 заменяется на 10.0.0.0/29
• Для 10.0.0.8/30. Сеть 10.0.0.12/30 не входит ни в список T, ни в список N и сеть 10.0.0.8/29 не входит в список N, поэтому 10.0.0.8/30 заменяется на 10.0.0.8/29
• Итог шага: T = {10.0.0.0/29, 10.0.0.8/29} С(10.0.0.0, 29) = {node1}, d(node1, 10.0.0.0, 29) = 5
С(10.0.0.8, 29) = {node2, node3}, d(node2, 10.0.0.8, 29) = 0, d(node3, 10.0.0.8, 29) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}
• m = 28:
• Для 10.0.0.0/29. Сеть 10.0.0.8/29 входит в список T, но С(10.0.0.0, 29) и С(10.0.0.8, 29) имеют пустое пересечение, поэтому 10.0.0.0/29 и 10.0.0.8/29 удаляются из списка T и добавляются в список R.
• Итог шага: T = {}
R = {(node1, 10.0.0.0, 29), (node2, 10.0.0.8, 29), (node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}
Список T опустел, поэтому цикл завершён.
Сети 10.0.0.0/24, 10.0.1.0/24 и 10.0.2.0/24 были успешно разделены на 10.0.0.0/29, 10.0.0.8/29, 10.0.2.16/32 и 10.0.2.17/32.
Итоговая таблица балансировки будет следующей:
• 10.0.0.0/23 => some_node
• 10.0.0.0/29 => node1
• 10.0.0.8/29 => node2
• 10.0.2.16/32 => node2
• 10.0.2.17/32 => node1
• 10.0.2.18/32 => some_node
• 10.0.3.0/24 => some_node
Из изложенного выше специалисту будет понятно, что заявленное изобретение оптимизирует количество добавляемых префиксов и повышает точность разделения сетей на подсети в том случае, если сетевая задержка части адресов сети не доступна для измерения.
Хотя выше был описан предпочтительный вариант осуществления настоящего изобретения, специалисту будет понятно, что настоящее изобретение не ограничено этим предпочтительным вариантом осуществления. Более того, различные изменения и модификации могут быть выполнены в пределах сущности и объёма настоящего изобретения, как определено в следующей ниже формуле изобретения.

Claims (17)

1. Способ разделения географически распределённых IP-сетей на подсети, характеризующийся тем, что
получают список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов сети CDN L,
затем генерируют список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, далее список A передают на все узлы сети CDN из списка L для осуществления измерения сетевых задержек,
после получения результатов измерений сетевых задержек от узлов из списка L определяют минимальную сетевую задержку и строят временный список сетей T, состоящий из IP-сетей минимального размера и содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N,
также для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, запоминают метрику, состоящую из списка узлов сети CDN C(i, m) и значения разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети,
при этом если сетевая задержка не была успешно измерена с узла e либо если значение разницы d(e, i, m) превышает заданную величину, узел e и его d(e, i, m) не включают в метрику,
также создают пустой список R, элементами которого являются тройки (e, i, m),
далее каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, при этом метрику копируют,
также две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской сети, заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел, при этом метрика новой сети состоит из узлов, присутствующих в каждой из заменяемых сетей, со значением d(e, i, m), равным максимальному из значений d(e, i, m) заменяемых сетей,
в случае, когда замена двух IP-сетей по указанному критерию невозможна либо когда IP-сеть с на единицу меньшей маской сети будет совпадать с не предполагаемым для разделения сетевым префиксом либо содержать не предполагаемый для разделения сетевой префикс в качестве подсети, рассматриваемую IP-сеть либо пару IP-сетей удаляют из списка T и добавляют в список R, при этом для каждой добавляемой в список R сети также запоминают узел из её метрики с минимальным значением d(e, i, m),
этот процесс продолжают до тех пор, пока список T не опустеет либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины, и в этом случае оставшиеся в списке T сети также переносят в список R,
полученные IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN.
2. Способ по п.1, в котором при объединении двух IP-сетей из списка T значение d(e, i, m) новой сети вычисляют как сумму значений d(e, i, m) заменяемых сетей, а при замене IP-сети из списка T на IP-сеть с на единицу меньшей маской сети значение разницы d(e, i, m) удваивают.
3. Способ по п.1, в котором в случае невозможности объединения двух IP-сетей, одну из них удаляют из списка T и добавляют в список R, а другую – заменяют в списке T на IP-сеть с на единицу меньшей маской сети.
4. Способ по п.1, в котором если узел сети CDN не смог измерить сетевые задержки для IP-адреса, однако такие измерения были успешны ранее, используют результаты последнего успешного измерения.
5. Способ по п.1, в котором измерение сетевых задержек производят только для части входящих в предполагаемый для разделения сетевой префикс IP-адресов.
6. Способ по п.1, в котором если несколько узлов сети CDN обладают схожими сетевыми характеристиками, измерения производят только с одного из этих узлов, а при добавлении IP-сетей в систему балансирования нагрузки сети CDN оптимальный узел заменяют на узел со схожими сетевыми характеристиками.
RU2021130944A 2021-10-22 Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN RU2777809C1 (ru)

Publications (1)

Publication Number Publication Date
RU2777809C1 true RU2777809C1 (ru) 2022-08-10

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262988B1 (en) * 1998-03-11 2001-07-17 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
RU2476996C2 (ru) * 2007-12-18 2013-02-27 Таль Аления Спейс Италия С.П.А. Способ синхронизации узлов сети, система и устройство для его осуществления
US8625420B2 (en) * 2005-05-09 2014-01-07 Cisco Technology, Inc. System and method for increasing granularity of prefix control in a computer network
US9456053B2 (en) * 2011-12-14 2016-09-27 Level 3 Communications, Llc Content delivery network
US9621660B2 (en) * 2008-03-31 2017-04-11 Amazon Technologies, Inc. Locality based content distribution

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6262988B1 (en) * 1998-03-11 2001-07-17 Cisco Technology, Inc. Method and system for subnetting in a switched IP network
US8625420B2 (en) * 2005-05-09 2014-01-07 Cisco Technology, Inc. System and method for increasing granularity of prefix control in a computer network
RU2476996C2 (ru) * 2007-12-18 2013-02-27 Таль Аления Спейс Италия С.П.А. Способ синхронизации узлов сети, система и устройство для его осуществления
US9621660B2 (en) * 2008-03-31 2017-04-11 Amazon Technologies, Inc. Locality based content distribution
US9456053B2 (en) * 2011-12-14 2016-09-27 Level 3 Communications, Llc Content delivery network

Similar Documents

Publication Publication Date Title
US10200402B2 (en) Mitigating network attacks
US6850984B1 (en) System for isolating other clients that experience different connection performance than the client and directing the other clients to another different mirrored server
US9794281B1 (en) Identifying sources of network attacks
US9742795B1 (en) Mitigating network attacks
Wang et al. Defense against spoofed IP traffic using hop-count filtering
CN1491507B (zh) 用于多个主机任意播放路由选择的方法和系统
Krishnamurthy et al. On network-aware clustering of web clients
EP3780552B1 (en) Message processing method in distributed device and distributed device
US7020698B2 (en) System and method for locating a closest server in response to a client domain name request
Poese et al. Enabling content-aware traffic engineering
US7751331B1 (en) Technique for policy conflict resolution using priority with variance
US6249801B1 (en) Load balancing
KR20050018950A (ko) 분산된 서비스 거부 공격에 대한 컨텐츠 분산 네트워크의회복력을 향상시키는 방법 및 장치
US20030195984A1 (en) Load balancing
WO2002017110A1 (en) Method and system for optimizing routing through multiple available internet route providers
US20060239196A1 (en) System and method for performing load balancing across a plurality of servers
US11153265B1 (en) Decoupling of IP address bindings and use in a distributed cloud computing network
Wang An elastic and resiliency defense against DDoS attacks on the critical DNS authoritative infrastructure
Aubry et al. Traffic duplication through segmentable disjoint paths
RU2777809C1 (ru) Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN
Schomp et al. Partitioning the internet using anycast catchments
JP5648560B2 (ja) トラフィックエンジニアリング装置、トラフィックエンジニアリング方法およびプログラム
EP1327195A1 (en) Method and apparatus for dynamic determination of optimum connection of a client to content servers
CN114827015B (zh) 一种数据转发方法和虚拟化云网络架构
JP5283271B2 (ja) ネットワークにおけるサーバ選択方法,選択システム及びプログラム