Организация множественного доступа в Интернет

Крис Льюис, Тхен Нгуен

Network Computing

Сегодня доступ в Интернет стал жизненно важным для многих компаний. Чтобы обеспечить устойчивую работу в Сети, они стремятся устанавливать несколько соединений с Интернет. Однако в большинстве случаев организации не способны управлять распределением нагрузки между своими серверами и не могут достичь такой устойчивости к сбоям, какая возможна в интрасети.

Традиционные протоколы маршрутизации, например RIP (Routing Information Protocol) и OSPF (Open Shortest Path First), изначально не предназначались для распределения нагрузки между сетевыми соединениями. Устойчивость соединений они обеспечивают, но не способны динамически определить наилучший вариант использования полосы пропускания. Одно из возможных решений этой проблемы - применение протокола BGP (Border Gateway Protocol), который был разработан для передачи информации о маршрутах между автономными системами (AS). Посредством этого протокола осуществляется также множественный доступ в Интернет (multihoming).

Представляем протокол BGP

Сеть Интернет представляет собой множество доменов маршрутизации, каждый из которых имеет собственную схему адресации и управляется различными административными группами, а чаще всего поставщиками услуг Интернет. Сетевые устройства идентифицируют маршруты внутри каждого домена в соответствии с принадлежащим ему AS-адресу. Обмен маршрутной информацией между доменами происходит согласно заранее определенным форматам передаваемых данных.

Для обработки маршрутной информации внутри автономной системы используются такие протоколы, как IGRP (Interior Gateway Routing Protocol) и OSPF, предназначенные для свободного обмена информацией со всеми устройствами, выполняющими аналогичную обработку. Идея заключается в том, чтобы все маршрутизаторы, принадлежащие одной автономной системе, находились под общим управлением и поддерживали "доверительный" информационный обмен. Однако при передаче маршрутной информации в другую автономную систему достижение такого взаимного доверия невозможно. На практике в таких случаях применяют особый процесс, с помощью которого можно более жестко контролировать обмен данными между двумя и более автономными системами.

Внутренние протоколы IGRP и OSPF обеспечивают обмен информацией о маршрутах внутри автономной системы, а внешние протоколы, в частности BGP и IDRP (Interdomain Routing Protocol), передают только определенную информацию между заранее выбранными маршрутизаторами. Согласно стандарту RFC 1771-4, в Интернет в качестве внешнего протокола используется четвертая версия протокола BGP.

Как работает BGP

Известно, что в сообщении об обновлении маршрута внутреннего протокола содержатся адрес сети назначения, метрика маршрута и адрес следующего маршрутизатора, а в соответствующем сообщении протокола BGP - адрес сети или маршруты к автономным системам. В строке, определяющей такой маршрут, представлена цепочка адресов автономных систем, через которые можно попасть в определенную сеть. Протокол BGP предоставляет информацию о маршрутах, содержащихся в сообщениях об обновлениях, полученных от маршрутизаторов разных автономных систем, о внутренних (или статических) маршрутах и о специально предназначенных для распространения сетевых адресах. Отметим, что распространение информации о статических маршрутах предпочтительнее распространения сообщений о маршрутах, объявляемых внутренними протоколами, поскольку статические маршруты меняются значительно реже.

Зачастую протокол BGP используется в качестве как внутреннего (IBGP), так и внешнего (ЕBGP). Между ними не существует функциональных различий, за исключением одного: обычно протокол IBGP применяют для обмена информацией между маршрутизаторами одной автономной системы (рис. 1).

Рис. 1. Внутренний и внешний протокол BGP

Рис. 1. Внутренний и внешний протокол BGP

Когда между двумя маршрутизаторами одного ранга устанавливается первое соединение, происходит полный обмен таблицами маршрутизации. В дальнейшем, каждый раз, когда эти таблицы меняются, маршрутизаторы обмениваются только их обновленными элементами. Для ввода в таблицу маршрутизации конкретного маршрута протокол BGP использует заранее определенный набор критериев. Упрощенное описание критериев выбора маршрута по протоколу BGP может быть представлено в следующем виде:

  • выбрать маршрут с наибольшим весовым коэффициентом, присвоенным администратором;
  • при равенстве весовых коэффициентов предпочтение отдать маршруту с наивысшим локальным приоритетом;
  • при равенстве локальных приоритетов предпочесть маршрут, инициированный данным маршрутизатором;
  • если данный маршрутизатор не инициировал ни один из маршрутов, лучшим признать маршрут, проходящий через наименьшее число различных автономных систем.

Кроме того, протокол BGP имеет несколько атрибутов, каждый из которых тоже можно рассматривать как критерий для принятия решения. Примером может быть маршрут, созданный маршрутизатором с наименьшим значением IP-адреса.

Обычно сетевой администратор задает весовые коэффициенты вручную и использует их для изменения степени приоритета. Эти коэффициенты задаются на основании самых различных соображений, и, что важно подчеркнуть, для маршрутизатора они являются локальными, так как не рассылаются в сообщениях об обновлении маршрутов протоколом BGP. Весовой коэффициент может быть выражен любым числом от 0 до 65 535. Маршруты, инициируемые самим маршрутизатором, по умолчанию имеют значение весового коэффициента 32 768, а остальные маршруты по умолчанию - 0.

Если вы хотите пропустить большую часть трафика через определенные узлы маршрутизации, то всем маршрутам, информация о которых поступила от них, можно назначить определенный весовой коэффициент. Задавать эти коэффициенты или приоритеты вручную лучше сразу для всех маршрутов, полученных от этих узлов, а не для каждого из них отдельно, поскольку процесс поддержки этих параметров может стать обременительным.

Локальный приоритет по умолчанию равен 100. В отличие от весового коэффициента он рассылается через сообщения об изменении маршрутов протоколом BGP внутри одной автономной системы. Локальный приоритет также устанавливается сетевым администратором во время конфигурирования маршрутизатора.

Сообщения об обновлении маршрутов, рассылаемые внутренними протоколами, такими, как RIP или IGRP, являются широковещательными. В качестве транспортного они используют протокол UDP (User Datagram Protocol). Поскольку взаимодействия по протоколу BGP происходят только между одноранговыми маршрутизаторами, для обеспечения надежности доставки обновляемой информации как транспортный используется протокол TCP.

Что дает использование протокола BGP?

В основном существуют два варианта множественного доступа к Интернет: с помощью протокола BFP и статических маршрутов. Предположим, необходимо разделить трафик Интернет от одного маршрутизатора и направить его по двум различным каналам, ведущим к разным поставщикам услуг Интернет. К решению этой задачи можно подойти двояко: разделяя либо исходящий, либо входящий Интернет-трафик.

Рис. 2. Пример конфигурации сети с использованием протокола BGP

Рис. 2. Пример конфигурации сети с использованием протокола BGP

Исходящим трафиком управлять проще, поэтому данный подход мы рассмотрим в первую очередь. Наиболее простой способ разделения исходящего трафика между двумя каналами - вообще не использовать протокол BGP, а на маршрутизаторе, связывающем нужный узел с Интернет, определить два эквивалентных маршрута. На рис. 2 первый из маршрутов, заданный как маршрут по умолчанию, ведет к поставщику услуг Интернет, который обозначен как ISP A, а второй - к ISP B. Независимо от пункта назначения маршрутизатор будет распределять исходящий Интернет-трафик между двумя каналами.

Преимуществами такого решения являются простота конфигурации, одинаковое использование полосы пропускания в каждом из каналов, возможность автоматического переключения на другой в случае отказа одного из каналов. Кроме того, для этого маршрутизатора не требуются дорогостоящие процессор, программное обеспечение и большой объем памяти.

Недостатком подхода является отсутствие управляемости. Так, если конечный пункт назначения в Интернет расположен ближе к одному из ISP, то какой-либо контроль за тем, по какому из каналов передается исходящий трафик, невозможен. И тогда протокол TCP должен будет обрабатывать пакеты, доставленные не в надлежащей последовательности, а неполадки в сети одного поставщика услуг Интернет (если таковые возникнут) будут влиять на весь трафик внутренней сети пользователя.

Вариант реализации множественного доступа в Интернет, связанный с использованием протокола BGP, требует большого объема памяти маршрутизатора, так как в его таблице должна быть отражена информация о десятках тысяч маршрутов к сетевым устройствам.

Не перегружен ли ваш маршрутизатор?

При использовании протокола BGP возможность выбора необходимого количества обновляемой маршрутной информации, рассылаемой поставщиком услуг Интернет, и ее характера весьма ограниченны. Решившись применить его, будьте готовы к заполнению подробного опросного листа. В нем можно указать два варианта рассылки поставщиком услуг Интернет информации по протоколу BGP: только об оговоренных или обо всех известных ему маршрутах. Второй вариант называется полной BGP-маршрутизацией.

Конфигурация маршрутизатора при использовании протокола BGP

В своей тестовой сети мы использовали маршрутизатор фирмы Cisco Systems. Канал к поставщику услуг Интернет ISP В был определен как основной, а канал к ISP А - как резервный. Для принятия сообщений о маршрутах от ISP А применялся протокол BGP. В результате, с одной стороны, в таблице маршрутизации появились строки с нашими адресами, которые можно получить через ISP А, и, с другой - для остального Интернет-трафика был указан маршрут по умолчанию к ISP В. Также существовал маршрут по умолчанию к ISP А только для исходящего трафика в случае неисправности канала к ISP В.

Чтобы задействовать ISP А при сбое канала, соединяющего сеть с ISP В, в маршруте к ISP В по умолчанию назначается меньшее "расстояние", чем в маршруте к ISP А. В маршрутизаторах Cisco это "расстояние" назначается во всех маршрутах автоматически. Если протоколы OSPF (Open Shortest Path First), EIGRP (Enhanced Interior Gateway Routing Protocol) и статический маршрут укажут разные пути к одной и той же сети назначения, маршрутизатору потребуется некий метод для их сравнения и последующего выбора наилучшего из них для записи в свою таблицу маршрутизации. Поскольку метрики, используемые разными протоколами маршрутизации, различны, то их значения несравнимы, поэтому обычно и применяется параметр "расстояние".

Согласно ему, поставщики услуг Интернет пришлют вам свои полные таблицы маршрутизации. Внутренний маршрутизатор должен будет определить для каждого пункта назначения один из двух возможных маршрутов (полученных от разных ISP), чтобы поместить его в свою таблицу маршрутизации. Скорее всего, маршрутизатор выберет для каждой удаленной сети маршрут, требующий наименьших "затрат", что обеспечит контроль за использованием каналов при передаче исходящего трафика.

Однако при обработке входящего Интернет-трафика такой контроль невозможен. В этом случае оба ISP тем или иным способом должны сообщить адрес вашей внутренней сети остальному Интернет-сообществу (в нашем примере сетевой адрес равен 158.6.0.0, см. рис. 2). Это осуществляется путем пересылки BGP-сообщения или установлением в сети ISP статического маршрута, информация о котором будет распространена по Интернет. Помните, что при этом администратор внутренней сети лишен возможности проконтролировать, какой из каналов будет использоваться удаленным хостом для передачи трафика в его сеть. Следовательно, непосредственный контроль за использованием каналов для входящего Интернет-трафика отсутствует.

Если ваш Интернет-трафик является преимущественно почтовым или Web-трафиком, то в большинстве случаев внедрение протокола BGP не даст вам никаких преимуществ, поскольку в такой ситуации основной трафик будет входящим и какой-либо контроль за его прохождением невозможен. Однако с протоколом BGP вы рискуете превратить внутреннюю сеть в транзитную, случайно указав сетевой адрес, отличный от истинного внутреннего адреса сети. Тогда общий Интернет-трафик пройдет через ваши внутренние маршрутизаторы по вашим внутренним каналам. Это также может вызвать появление "черной дыры" в Интернет, ибо, будучи неверно направленным, трафик "уничтожится" внутренним маршрутизатором.

Как правило, поставщики услуг Интернет неохотно обмениваются информацией о маршрутах по протоколу BGP с другими организациями. Причина этого заключается в возможном значительном влиянии процесса распространения неверной BGP-информации на стабильность маршрутизации у ISP и всего Интернет-сообщества. Обычно для предоставления услуг поставщики требуют от пользователей дополнительной оплаты.

Внедрение протокола BGP - очень сложный и дорогостоящий процесс, связанный с большими затратами на программное обеспечение и наращивание объема памяти маршрутизатора. Поэтому нашу статью можно считать лишь введением к этой теме. Более подробную информацию о протоколе BGP можно найти по адресу www.cisco.com/univercd/data/doc/cintrnet/ics/icsbgp4.html и на Web-узле MCI в документе "Установка множественного доступа к нескольким ISP". Кроме того, материалы по данной теме имеются по адресу www.netaxs.com/~freedman/multi.html (в разделе "Часто задаваемые вопросы").