Маршрутизаторы

Довольно часто в компьютерной литературе дается следующее обобщенное определение маршрутизатора: “маршрутизатор – это устройство сетевого уровня эталонной модели OSI, использующее одну или более метрик для определения оптимального пути передачи сетевого трафика на основании информации сетевого уровня”. Из этого определения вытекает, что маршрутизатор, прежде всего, необходим для определения дальнейшего пути данных, посланных в большую и сложную сеть. Пользователь такой сети отправляет свои данные в сеть и указывает адрес своего абонента. И все. Данные проходят по сети и в точках с разветвлением маршрутов поступают на маршрутизаторы, которые как раз и устанавливаются в таких точках. Маршрутизатор выбирает дальнейший наилучший путь. То, какой путь лучше, определяется количественными показателями, которые называются метриками. Лучший путь – это путь с наименьшей метрикой. В метрике может учитываться несколько показателей, например, длина пути, время прохождения и т.д.

Маршрутизаторы реализуются по разному. Маршрутизаторы делят на устройства верхнего, среднего и нижнего классов.

Высокопроизводительные маршрутизаторы верхнего класса служат для объединения сетей предприятия. Они поддерживают множество протоколов и интерфейсов, причем не только стандартных, но, подчас, и весьма экзотических. Устройства данного типа могут иметь до 50 портов локальных или глобальных сетей.

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

Маршрутизаторы нижнего класса предназначаются для локальных сетей подразделений; они связывают небольшие офисы с сетью предприятия. Типичная конфигурация: один порт локальной сети (Ethernet или Token Ring) и два порта глобальной сети, рассчитанные на низкоскоростные выделенные линии или коммутируемые соединения. Тем не менее, подобные маршрутизаторы пользуются большим спросом у администраторов, которым необходимо расширить имеющиеся межсетевые объединения.

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

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

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

По определению, основное назначение маршрутизаторов – это маршрутизация трафика сети. Процесс маршрутизации можно разделить на два иерархически связанных уровня:

Определение маршрута передачи данных происходит программно. Соответствующие программные средства носят названия протоколов маршрутизации. Логика их работы основана на алгоритмах маршрутизации. Алгоритмы маршрутизации вычисляют стоимость доставки и выбирают путь с меньшей стоимостью. Простейшие алгоритмы маршрутизации определяют маршрут на основании наименьшего числа промежуточных (транзитных) узлов на пути к адресату. Более сложные алгоритмы в понятие “стоимость” закладывают несколько показателей, например, задержку при передаче пакетов, пропускную способность каналов связи или денежную стоимость связи. Основным результатом работы алгоритма маршрутизации является создание и поддержка таблицы маршрутизации, в которую записывается вся маршрутная информация. Содержание таблицы маршрутизации зависит от используемого протокола маршрутизации. В общем случае таблица маршрутизации содержит следующую информацию:

Основными требованиями, предъявляемыми к алгоритму маршрутизации являются:

Оптимальность выбора маршрута является основным параметром алгоритма, что не требует пояснений.

Алгоритмы маршрутизации должны быть просты в реализации и использовать как можно меньше ресурсов

Алгоритмы должны быть устойчивыми к отказам оборудования на первоначально выбранном маршруте, высоким нагрузкам и ошибкам в построении сети.

Сходимость – это процесс согласования между маршрутизаторами информации о топологии сети. Если определенное событие в сети приводит к тому, что некоторые маршруты становятся недоступны или возникают новые маршруты, маршрутизаторы рассылают сообщения об этом друг другу по всей сети. После получения этих сообщений маршрутизаторы производят переназначение оптимальных маршрутов, сто в свою очередь может породить новый поток сообщений. Этот процесс должен завершиться, причем достаточно быстро, иначе в сетевой топологии могут появиться петли, или сеть вообще может перестать функционировать. Алгоритмы маршрутизации должны быстро и правильно учитывать изменения в состоянии сети (например, отказ узла или сегмента сети).

Достоинства гибкой реализации не требуют комментариев.

Алгоритмы маршрутизации могут быть:

Для статических (неадаптивных) алгоритмов маршруты выбираются заранее и заносятся вручную в таблицу маршрутизации, где хранится информация о том, на какой порт отправить пакет с соответствующим адресом. Протоколы, разработанные на базе статических алгоритмов, называют немаршрутизируемыми. Примерами немаршрутизируемых протоколов могут служить LAT (Local AreaTransport, транспортный протокол для канальных областей) фирмы DEC, протокол подключения терминала и NetBIOS. Обычно с этими протоколами работают мосты, так как они не различают протоколы сетевого уровня.

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

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

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

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

Некоторые алгоритмы маршрутизации действуют только в пределах своих доменов (внутридоменная маршрутизация), а другие – как в пределах своих доменов, так и в смежных с ними (междоменная маршрутизация). В данном случае домен означает область маршрутизации, в которой работает один или несколько протоколов. В разных доменах работают разные протоколы. Если необходима связь доменов, используется междоменная маршрутизация.

Одноадресные алгоритмы маршрутизации предназначены для передачи конкретной информации (по одному или нескольким маршрутам) только одному получателю. Многоадресные (или групповые) алгоритмы способны передавать информацию многим получателям одновременно.

Когда маршрутизатор получает пакет, он считывает адрес назначения и определяет, по какому маршруту отправить пакет. Обычно маршрутизаторы хранят данные о нескольких возможных маршрутах. Выбор маршрута зависит от нескольких факторов, в том числе:

На уровне маршрутизации существуют три основные группы протоколов маршрутизации (деление на группы определяется типом реализуемого алгоритма определения оптимального маршрута):

Протоколы вектора расстояния – самые простые и самые распространенные. Протоколы данной группы включают RIP IP, RIP IPX, AppleTalk и Cisco IGRP. Свое название этот тип протокола получил от способа обмена информацией. Маршрутизатор с определенной периодичностью извлекает адреса получателей информации и метрику из своей таблицы маршрутизации и помещает эти данные в рассылаемые соседям сообщения об обновлении. Соседние маршрутизаторы сверяют полученные данные со своими собственными таблицами маршрутизации и вносят необходимые изменения. После этого они сами рассылают сообщения об обновлении. Таким образом каждый маршрутизатор получает информацию о маршрутах всей сети. При очевидной простоте алгоритма говорить о его полной надежности нельзя. Он может работать эффективно только в небольших сетях. Это связано с тем, что в крупных сетях поток сообщений между маршрутизаторами резко возрастает. При этом большинство из них являются избыточными (так как изменения сетевой топологии происходят довольно редко). Как следствие – действительно необходимая информация подчас долго гуляет по сети, и маршрутизаторы обновляют свои таблицы с большой задержкой. Так, более несуществующий маршрут может довольно долго оставаться в таблицах маршрутизации. Трафик, направленный по такому маршруту, не достигнет своего адресата.

Протоколы состояния канала были впервые предложены в 1970 году Эдсгером Дейкстрой. Эти протоколы значительно сложнее, чем протоколы вектора расстояния. Вместо рассылки соседям содержимого своих таблиц маршрутизации, каждый маршрутизатор осуществляет широковещательную рассылку списка маршрутизаторов, с которыми он имеет непосредственную связь, и списка напрямую подключенных к нему локальных сетей. Эта информация является частью информации о состоянии канала. Она рассылается в специальных сообщениях. Кроме того маршрутизатор рассылает сообщения о состоянии канала только в случае его изменения или по истечении заданного интервала времени. Протоколы состояния канала трудны в реализации и нуждаются в значительном объеме памяти для хранения информации о состоянии каналов. Примерами этих протоколов служат OSPF, IS–IS, Nowell NLSP и Cisco EIGRP.

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

К третьей группе протоколов относятся протоколы политики (правил) маршрутизации. Эти протоколы наиболее эффективно решают задачу доставки получателю информации. Эта категория протоколов используется при маршрутизации в Internet и позволяет операторам получать информацию о маршрутизации от соседних операторов на основании специальных критериев. То есть в процессе обмена вырабатывается список разрешенных маршрутов (путей). Алгоритмы политики маршрутизации опираются на алгоритмы вектора расстояния, но информация о маршрутах базируется на списке операторов сети Internet. Примерами протоколов данной категории могут служить BGP и EGP.

Все вышесказанное относилось к уровню маршрутизации. Уровень передачи пакетов реализуется на алгоритмах коммутации и, как правило, одинаков для большинства протоколов маршрутизации. Промежуточный маршрутизатор, имея адрес следующего маршрутизатора, посылает ему пакет, адресованный специально на физический адрес (МАС-уровня) этого маршрутизатора, но с адресом (сетевого уровня) получателя. По адресу получателя маршрутизатор определяет, знает ли он, как передать пакет следующему маршрутизатору в пути. Если знает, то пакет отсылается следующему маршрутизатору путем замены физического адреса получателя на физический адрес следующего маршрутизатора. Если маршрутизатор не знает, то пакет игнорируется. На следующем маршрутизаторе все повторяется. По мере прохождения пакета через сеть, его физический адрес меняется, но адрес сетевого уровня остается неизменным. Этот процесс проиллюстрирован на рисунке (рис. 5).

Основная задача уровня передачи пакетов – это коммутация пакетов от разных пользователей. Общая схема передачи пакетов такова: выбирается один из возможных транзитных узлов (эта информация поступает с уровня маршрутизации, на котором она вычисляется по адресу получателя), формируется выходной заголовок канального уровня и осуществляется посылка пакета. Кроме того, на этом этапе может производиться фрагментация пакетов, проверка контрольной суммы и т.д.

Маршрутизаторы (точнее – уровень маршрутизации) работают на сетевом уровне эталонной модели OSI. Уровень продвижения пакетов функционирует на канальном уровне.

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

Производители при создании маршрутизаторов используют три основных типа архитектуры:

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

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

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

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

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

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

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

Hosted by uCoz