Способ выбора маршрутов, получаемых по протоколу DHCP, в сети с коммутацией пакетов
METHOD FOR SELECTING ROUTES RECEIVED FROM DHCP PROTOCOL IN PACKET-SWITCHED NETWORK

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к цифровым сетям передачи данных с коммутацией пакетов (IP) и, в частности, к способам выбора маршрутов, получаемых по протоколу DHCP (dynamic host configuration protocol).
Уровень техники
В современных цифровых сетях передачи данных, имеющих тысячи узлов, сложную топологию и отдельные участки (подсети), которые содержат клиентские компьютеры (клиентские сети), большое значение имеет рациональная маршрутизация потоков данных (трафика), обеспечивающая минимальный физический путь и время прохождения потоков.
Маршрутизация (англ. routing) - это процесс определения маршрута следования информации в сетях передачи данных. Маршруты могут задаваться административно (статические маршруты) либо вычисляться с помощью алгоритмов маршрутизации, базируясь на информации о топологии и состоянии сети, полученной с помощью протоколов маршрутизации (динамические маршруты).
Известны способы (протоколы) динамической маршрутизации (RIP, OSPF, BGP и др.), позволяющие управлять потоками данных (трафика) в цифровых сетях передачи данных.
Протокол DHCP используется для обеспечения автоматического получения IP-адреса и других параметров (в том числе маршрутов в удаленные сети), необходимых для работы в сетях передачи данных с коммутацией пакетов (IP). При этом маршруты, получаемые через DHCP, являются, по существу, динамическими - они формируются и удаляются без прямого указания пользователя, их нельзя настроить локально. Представляется целесообразным считать автоматическое получение маршрутов в клиентские сети псевдо-протоколом динамической маршрутизации и обращаться с маршрутами, полученными таким образом, аналогично маршрутам, полученным с помощью «настоящих» протоколов динамической маршрутизации.
Так, известен способ перенаправления DHCP трафика [1], содержащий следующие этапы:
• получение промежуточным DHCP ретранслятором, соединенным по сети со множеством удаленных DHCP ретрансляторов и множеством DHCP серверов, DHCP сообщения (запроса) от одного из упомянутого множества удаленных DHCP ретрансляторов для связи с этим упомянутым промежуточным DHCP ретранслятором через упомянутую сеть, причем:
DHCP сообщение включает запрос, по крайней мере, для одного из множества DHCP серверов предоставить информацию о конфигурации клиента; и
DHCP сообщение также включает информацию, которая содержит, по крайней мере, идентификатор одного из упомянутого множества удаленных DHCP ретрансляторов и, по крайней мере, один элемент конфигурационных данных;
• обеспечение доступа, с помощью указанного промежуточного DHCP ретранслятора БД сопоставления адресов, к конфигурационным данным, относящимся к упомянутому множеству DHCP серверов, логически полученному упомянутым промежуточным DHCP ретранслятором, причем:
упомянутые записи БД сопоставления адресов дают возможность каждому из множества удаленных DHCP ретрансляторов быть связанным с одним из множества DHCP серверов; и
упомянутые конфигурационные данные получены, по крайней мере, частично, от множества DHCP серверов и объединены в упомянутой БД сопоставления адресов;
• перенаправление DHCP-сообщения на соответствующий DHCP сервер из множества DHCP серверов, основываясь на информации DHCP сообщения и конфигурационных данных, относительно множества DHCP серверов; и
• обновление БД сопоставления адресов с помощью сервера накопления, когда сервер накопления получает обновленный конфигурационный файл, по крайней мере, от одного из множества DHCP серверов.
Известный способ может быть реализован в цифровой сети передачи данных, содержащей связанные между собой DHCP ретрансляторы, DHCP серверы, и промежуточный DHCP ретранслятор, через который осуществляется перенаправление DHCP трафика для всех остальных DHCP ретрансляторов и DHCP серверов.
Для обеспечения процесса перенаправления промежуточный DHCP ретранслятор, представляющий собой компьютер (отдельный сервер), содержит БД сопоставления адресов и сервер накопления, который получает обновленные конфигурационные файлы от множества DHCP серверов. Промежуточный DHCP ретранслятор содержит несколько сетевых интерфейсов и работает под управлением операционной системы (ОС) и прикладного программного обеспечения (ПО).
Известный способ принят за прототип.
Известный способ может объединять только маршруты в разные клиентские сети от разных DHCP серверов. Также он позволяет осуществлять передачу только DHCP маршрутов, что является его недостатком.
В известном способе также не обеспечивается возможность объединения маршрутов в одну определенную клиентскую сеть от разных серверов и использования DHCP маршрутов совместно с маршрутами, полученными от других протоколов динамической маршрутизации (RIP, OSPF, BGP и т.д.).
Раскрытие изобретения
Техническим результатом является обеспечение возможности получения маршрутов по протоколу DHCP совместно с другими протоколами динамической маршрутизации, а также обеспечение возможности объединения всех маршрутов, полученных от различных DHCP серверов, в том числе маршрутов в одни и те же клиентские сети.
Заявленный результат достигается за счет применения способа выбора маршрутов, получаемых по протоколу DHCP в сети с коммутацией пакетов, включающей
• по крайней мере, один основной сервер,
• клиентские компьютеры, расположенные в клиентских сетях,
• удаленные DHCP серверы, имеющие данные о клиентских сетях, причем основной сервер работает под управлением операционной системы и содержит
• совокупность средств первичной обработки протоколов динамической маршрутизации,
• средство первичной обработки протокола DHCP,
• средство выбора наилучших маршрутов;
при этом средство первичной обработки протокола DHCP выполнено с возможностью
• получать таблицы маршрутов от удаленных DHCP серверов по протоколу DHCP;
• формировать первичную таблицу маршрутов из полученных таблиц маршрутов;
• выбирать наилучшие маршруты из первичной таблицы маршрутов с учетом первичной метрики;
• передавать выбранные наилучшие маршруты в средство выбора наилучших маршрутов;
при этом средство выбора наилучших маршрутов выполнено с возможностью
• получать таблицы выбранных маршрутов от средств первичной обработки;
• формировать вторичную таблицу маршрутов из полученных таблиц маршрутов;
• выбирать наилучшие маршруты из вторичной таблицы маршрутов с учетом вторичной метрики;
• передавать финальную таблицу маршрутов в операционную систему основного сервера;
способ заключается в том, что
• запрашивают и получают сетевые адреса и сетевые маршруты от удаленных DHCP серверов по протоколу DHCP;
• обрабатывают полученные таблицы маршрутов в средстве первичной обработки протокола DHCP, выполняя следующие действия:
назначают каждому маршруту первичную метрику;
записывают маршруты в первичную таблицу маршрутов;
выявляют маршруты с одинаковым адресом клиентской сети;
для каждого существующего в первичной таблице маршрутов адреса клиентской сети выбирают наилучший маршрут в данную клиентскую сеть с учетом первичных метрик;
передают наилучшие маршруты для каждой клиентской сети в средство выбора наилучших маршрутов;
• обрабатывают наилучшие маршруты, полученные от средств первичной обработки протоколов динамической маршрутизации, включая DHCP, в средстве выбора наилучших маршрутов, выполняя следующие действия:
сопоставляют вторичную метрику для каждого из используемых протоколов динамической маршрутизации, включая DHCP;
сопоставляют вторичные метрики маршрутов, исходя из протокола, с помощью которого маршрут был передан в средство выбора наилучших маршрутов;
сохраняют таблицу наилучших маршрутов со вторичными метриками;
выявляют наилучшие маршруты с одинаковым адресом клиентской сети;
выбирают наилучшие маршруты в каждую клиентскую сеть из таблицы наилучших маршрутов, с учетом вторичных метрик;
формируют финальную таблицу маршрутов;
• передают финальную таблицу маршрутов в операционную систему основного сервера.
В реальной сети, например корпоративной, компьютеры отдельных пользователей (клиентов) или клиентские компьютеры расположены в сегментах сети, имеющих выход во внешнюю сеть, например Интернет, через отдельный сервер (маршрутизатор). Данный сервер (маршрутизатор) может быть подключен к сети Интернет по нескольким (например, трем) каналам от разных провайдеров услуг сети Интернет. При этом он может являться DHCP клиентом в двух сетях провайдеров (и получает от них адреса и маршруты по DHCP) и иметь статический адрес (и возможность использовать протоколы динамической маршрутизации, например OSPF) у третьего провайдера. Одновременно он является DHCP сервером для клиентских компьютеров, расположенных в сегментах своей сети (выдает им адреса и маршруты для доступа в Интернет).
Таким образом, маршруты, получаемые по DHCP и другим протоколам динамической маршрутизации (например, OSPF), добавляются в таблицу маршрутизации сервера (маршрутизатора) и далее передаются на клиентские компьютеры.
Сервер (маршрутизатор), например, представляет собой программно-аппаратный комплекс (ПАК) на базе ОС (Linux) и содержит совокупность средств первичной обработки протоколов динамической маршрутизации (RIP, OSPF, BGP и др.). Обычно такие средства являются программными средствами.
Для реализации предложенного способа в состав средств первичной обработки протоколов динамической маршрутизации включается средство первичной обработки протокола DHCP, которое также является программным средством.
Маршруты, получаемые по DHCP (а так же РРР), автоматически добавляют в таблицу маршрутизации, когда DHCP (или РРР)-клиент получает эти маршруты от удаленного сервера, и удаляют оттуда, когда маршруты становятся неактуальными (например, сетевой интерфейс выключается, переводится в режим статической конфигурации, происходит перезагрузка, и т.п.), т.е. маршруты, получаемые через DHCP или РРР, ведут себя и анализируются аналогично маршрутам, получаемым через протоколы динамической маршрутизации.
Средство первичной обработки протокола DHCP (который выступает в этом случае как протокол динамической маршрутизации), запущено постоянно и держит соединение со средством выбора наилучших маршрутов, передавая в него маршруты DHCP/PPP и удаляя их по мере необходимости. Сами маршруты в средство первичной обработки протокола DHCP поступают из текстового файла, в котором их, в свою очередь, сохраняют скрипты, запускаемые из DHCP- или РРР-клиента (этот файл будем в дальнейшем называть файлом таблиц маршрутов). Файл таблиц маршрутов периодически считывается средством первичной обработки протокола DHCP, его содержимое сравнивается с ранее считанным, и если есть изменения, то производится добавление или удаление маршрутов средством выбора наилучших маршрутов.
Каждому DHCP-маршруту при его записи в файл таблиц маршрутов присваивается метрика, с помощью которой средство первичной обработки протокола DHCP выбирает наилучшие маршруты, и которая позволяет пользователю настраивать предпочтения по маршрутизации через тот или иной интерфейс, где используется DHCP. Метрика является характеристикой сетевого интерфейса, и все маршруты, полученные DHCP-клиентом на данном сетевом интерфейсе, получают метрику, заданную для этого интерфейса. Каждая метрика задается целым положительным числом в определенном диапазоне, например от 1 до 255. По умолчанию для всех интерфейсов установлено одинаковое значение первичной метрики 70. Это значение может изменяться администратором системы для установки предпочтения (чем меньше метрика, тем предпочтительнее) маршрутов с тех или иных интерфейсов.
Предпочтения могут быть вызваны, например, следующими факторами:
1) более дешевым по стоимости трафиком через определенный интерфейс, подключенный к сети выбранного провайдера,
2) большая средняя скорость передачи данных через определенный интерфейс,
3) больший уровень защищенности канала передачи данных через определенный интерфейс и др.
Средство первичной обработки протокола DHCP устанавливает для каждого маршрута, при передаче маршрутов в средство выбора наилучших маршрутов, вторичную метрику (число от 1 до 255), заданную в настройках этого средства (по умолчанию для маршрутов, полученных по протоколу DHCP, назначается, например, вторичная метрика, равная 70, для маршрутов, полученных по другим протоколам, могут устанавливаться другие значения метрики, например, с учетом известных рекомендаций [2]). Это значение может изменяться администратором системы для установки предпочтения (чем меньше метрика, тем предпочтительнее) маршрутов, полученных по протоколам того или иного типа.
Вторичная метрика используется в дальнейшем средством выбора наилучших маршрутов для выбора наилучшего маршрута (с наименьшей метрикой) среди всех доступных (включая маршруты других протоколов и статические).
В заключении, финальная таблица маршрутов передается в ОС основного сервера (маршрутизатора) и может быть передана на клиентские компьютеры своей сети.
В результате, обеспечивается возможность получения маршрутов по протоколу DHCP совместно с другими протоколами динамической маршрутизации.
Таким образом, отличительными особенностями предложенного способа являются следующие.
Во-первых, сведение воедино таблиц маршрутов, полученных от нескольких DHCP-серверов через различные сетевые интерфейсы.
Во-вторых, автоматический выбор наилучшего маршрута в каждую клиентскую сеть среди всего множества маршрутов, полученных от DHCP-серверов, с учетом первичной метрики.
В-третьих, автоматический финальный выбор наилучшего маршрута среди маршрутов, полученных через различные протоколы динамической маршрутизации, включая протокол DHCP, с учетом вторичной метрики.
Осуществление изобретения
Рассмотрим осуществление предложенного способа в сети с коммутацией пакетов. Это может быть корпоративная сеть, имеющая выход в сеть Интернет через один основной сервер (маршрутизатор).
Помимо основного сервера, в рассматриваемую сетевую конфигурацию входят
• клиентские компьютеры, расположенные в клиентских сетях,
• удаленные DHCP-серверы провайдеров сети Интернет, имеющие данные о клиентских сетях,
• клиентские компьютеры, расположенные в своей сети.
Количество клиентских компьютеров и клиентских сетей может быть значительным, например несколько сотен клиентских сетей, в каждой из которых несколько сотен клиентских компьютеров. Количество удаленных DHCP-серверов, провайдеров сети Интернет, измеряется единицами (количество каналов доступа к сети Интернет).
В качестве основного сервера (маршрутизатора) используется высокопроизводительный ПАК HW1000Q6 на базе Intel Core i3-4360 с тактовой частотой 3,7 ГГЦ, объемом оперативной памяти 2 ГБ, объемом жесткого диска 500 Мб, с установленной ОС Linux Debian 7 (ядро 3.10.92) и специализированным ПО, в состав которого входят модули, отвечающие за маршрутизацию и выбор наилучших маршрутов [3]. ПАК HW1000Q6 содержит несколько сетевых интерфейсов (4 проводных Ethernet и 2 оптических SFP+).
В качестве основы для доработки был взят пакет свободно распространяемого прикладного ПО Quagga [4], поддерживающий протоколы динамической маршрутизации:
• Routing Information Protocol (RIP): v1, v2, v3;
• Open Shortest Path First (OSPF): v2, v3;
• Border Gateway Protocol (BGP): v4;
• Intermediate System to Intermediate System (IS-IS);
• Protocol Independent Multicast (только PIM-SSM).
После доработки, основной сервер ПАК HW1000Q6, включающий доработанный пакет ПО Quagga, должным образом настроенный, становится способен использовать протокол DHCP наравне с перечисленными выше протоколами динамической маршрутизации и позволяет обеспечить выбор наилучшего маршрута, учитывая все протоколы динамической маршрутизации и маршруты, полученные по протоколу DHCP.
Несмотря на то, что в предложенном способе используется комплекс ПАК HW1000Q6, доработанный пакет Quagga может быть установлен на любую Linux-подобную ОС.
Доработку ПО может выполнить специалист по программированию (программист) на языке программирования С, зная выполняемые ПО функции:
• получать таблицы маршрутов от удаленных DHCP серверов по протоколу DHCP;
• формировать первичную таблицу маршрутов из полученных таблиц маршрутов;
• выбирать наилучшие маршруты из первичной таблицы маршрутов с учетом первичной метрики;
• передавать выбранные наилучшие маршруты в средство выбора наилучших маршрутов.
Перед реализацией предложенного способа необходимо также сформировать средство выбора наилучших маршрутов, обеспечивающее возможность
• получать таблицы выбранных маршрутов от средств первичной обработки;
• формировать вторичную таблицу маршрутов из полученных таблиц маршрутов;
• выбирать наилучшие маршруты из вторичной таблицы маршрутов с учетом вторичной метрики;
• передавать финальную таблицу маршрутов в операционную систему основного сервера.
Формирование программного средства выбора наилучших маршрутов также может выполнить специалист по программированию (программист) на языке программирования С, зная выполняемые ПО функции.
После проведенной предварительной подготовки можно непосредственно реализовать предложенный способ.
Для этого основной сервер запускается в рабочем режиме.
Через сетевые интерфейсы в средство первичной обработки протокола DHCP и средства первичной обработки протоколов динамической маршрутизации основного сервера получают таблицы маршрутов от удаленных DHCP серверов по протоколу DHCP и от других серверов (маршрутизаторов) по другим протоколам динамической маршрутизации.
Затем все средства первичной обработки протоколов
• формируют первичную таблицу маршрутов из полученных таблиц маршрутов;
• выбирают наилучшие маршруты из первичной таблицы маршрутов с учетом первичной метрики;
• передают выбранные наилучшие маршруты в средство выбора наилучших маршрутов.
После этого в средстве выбора наилучших маршрутов обрабатывают наилучшие маршруты, полученные от средств первичной обработки протоколов динамической маршрутизации, включая DHCP, выполняя следующие действия:
• сопоставляют вторичную метрику для каждого из используемых протоколов динамической маршрутизации, включая DHCP;
• сопоставляют вторичные метрики маршрутов, исходя из протокола, с помощью которого маршрут был передан в средство выбора наилучших маршрутов;
• сохраняют таблицу наилучших маршрутов со вторичными метриками;
• выявляют наилучшие маршруты с одинаковым адресом клиентской сети;
• выбирают наилучшие маршруты в каждую клиентскую сеть из таблицы наилучших маршрутов, с учетом вторичных метрик;
• формируют финальную таблицу маршрутов.
Финальную таблицу маршрутов передают из средства выбора наилучших маршрутов в ОС основного сервера.
В результате, обеспечивается возможность получения маршрутов по протоколу DHCP совместно с другими протоколами динамической маршрутизации.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанного выше и зависящие от личных предпочтений при программировании отдельных действий и функций.
Источники информации
1. Патент США №9300627, приоритет от 14.03.2013 г.
2. What Is Administrative Distance? - статья по адресу:
http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/15986-admin-distance.html
3. ViPNet Coordinator HW1000 v2 - статья по адресу:
http://www.infotecs.ru/products/catalog.php?SECTION_ID=&ELEMENT_ID=190
4. Quagga Routing Software Suite - статья по адресу:
http://www.nongnu.org/quagga/