Мосты позволяют объединить однотипные и разнотипные локальные сети в единую сеть.


КАК РАБОТАЕТ МОСТ
ПРОЗРАЧНЫЕ МОСТЫ
АЛГОРИТМ SPANNING TREE
МОСТЫ ДЛЯ TOKEN RING
СРАВНИТЕЛЬНЫЕ ДОСТОИНСТВА
НАВЕДЕНИЕ МОСТОВ

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

КАК РАБОТАЕТ МОСТ

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

Схематически работа моста выглядит следующим образом. Пусть хост А из локальной сети Ethernet хочет передать пакет сетевого уровня хосту Б в локальной сети Token Ring (см. Рисунок 1). Пакет передается подуровню LLC, а после добавления LLC-заголовка спускается на подуровень MAC, где получает заголовок и концевик. Получившийся блок данных передается по кабелю и в конце концов достигает моста. MAC-заголовок удаляется, и пакет (LLC-заголовок не трогается) передается MAC-подуровнем LLC-подуровню моста. После этого пакет проделывает путь в обратном порядке по сети Token Ring. Если бы пакет предназначался той же сети, что и хост А, то он был бы просто проигнорирован мостом.

Picture 1

Рисунок 1.
Функционирование моста между локальными сетями Ethernet и Token Ring.

Однако все далеко не так просто, как кажется поначалу. Проблемы существуют как при организации моста между двумя разными, так и между двумя одинаковыми локальными сетями. Что касается разнотипных локальных сетей, то это, например, несовпадение форматов кадров (именно так называется блок данных канального уровня) неоднотипных локальных сетей, различия в пропускной способности (например, Ethernet - 10 Мбит/с, а Token Ring - 4 или 16 Мбит/с) и максимальном размере кадров, и т.д. Конечно, в случае однотипных локальных сетей проблем меньше, но совсем без проблем не обойтись и здесь. Например, два сегмента Ethernet могут иметь разную загруженность, в этом случае буфер для пересылаемых в перегруженный сегмент кадров может переполниться, и мост будет вынужден отказываться от вновь поступающих пакетов.

ПРОЗРАЧНЫЕ МОСТЫ

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

Прозрачный мост работает в режиме приема всех пакетов (promiscuous mode). В качестве примера мы рассмотрим конфигурацию, изображенную на Рисунке 2. Мост М1 подсоединен к сетям 1 и 2, а мост М2 подсоединен к сетям 2, 3, 4 (мост не обязательно соединяет лишь две локальные сети - многопортовый мост, каковым, например, является коммутатор Ethernet, может соединять 8, 16 и более сетей). Если кадр, полученный мостом М1 из сети 1, предназначен хосту А, то он тут же отбрасывается. Если же кадр предназначен C или G, то он пересылается в другую сеть.

Picture 2

Рисунок 2.
Прозрачные мосты передают в другую сеть только пакеты, адресат которых находится за пределами сети, из которой пакет получен.

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

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

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

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

Таким образом, то, как мост поступает с кадром, зависит от того, из какой сети кадр получен и кому он адресуется:

1. Если отправитель и получатель находятся в одной сети, то кадр отбрасывается.

2. Если отправитель и получатель находятся в разных сетях, то кадр пересылается в сеть, через которую он может достигнуть получателя.

3. Если получатель неизвестен, то кадр рассылается во все сопредельные сети.

АЛГОРИТМ SPANNING TREE

При определенных условиях кадры могут зацикливаться. Проиллюстрируем это на простом примере. Пусть две сети 1 и 2 соединены с помощью двух параллельных мостов М1 и М2 (например, для обеспечения избыточности). Если компьютер из сети 1 передает кадр неизвестному адресату, то сначала, например, М1, а затем М2 передают этот кадр в сеть 2 в соответствии с алгоритмом веерной рассылки. Вскоре М2 получает пересланную М1, а М1 - пересланную М2 в сеть 2 копию исходного кадра, адрес получателя которого неизвестен, и передают их поэтому обратно в сеть 1, и так до бесконечности.

Решение данной проблемы - в создании древовидной топологии (Spanning Tree), когда некоторые соединения между локальными сетями по существу игнорируются, причем из одной сети можно попасть в другую только одним путем.

Для построения дерева мосты должны выбрать вначале корневой мост (он будет корнем дерева), что достигается путем рассылки широковещательных пакетов с серийным номером производителя (эти номера уникальны). Мост с наименьшим номером становится корневым. Далее, мосты определяют дерево с кратчайшими путями до корня. В случае выхода какого-либо моста из строя это дерево определяется заново (см. дополнительную информацию в статье "Построить сеть, посадить дерево..." М. Кульгина в LAN Magazine/Русское издание # 1 за 1997 год).

МОСТЫ ДЛЯ TOKEN RING

Прозрачные мосты имеют то преимущество, что они просты в установке. Однако такие мосты используют доступную пропускную способность не оптимальным образом, поскольку не все мосты задействованы в целях исключения возможных петель (вследствие применения алгоритма Spanning Tree). Мосты c определением пути по запросу источника (Source Routing) представляют альтернативу прозрачным мостам. Кроме того, прозрачные мосты предназначены для работы в сетях Ethernet и Token Bus, а стандарт на рассматриваемые в этом разделе мосты разрабатывался под Token Ring. По области применения мы будем называть их в данном разделе мостами Token Ring ввиду отсутствия адекватного перевода для словосочетания source routing.

Алгоритм Source Routing предполагает, что отправитель каждого кадра знает о том, что адресат находится (или не находится) в той же сети. При отправке кадра в другую сеть машина-отправитель задает старший бит адреса отправителя равным 1. Кроме того, она помещает в заголовок кадра весь путь, по которому кадр должен следовать.

Этот путь формируется следующим образом. Каждая локальная сеть имеет уникальный 12-битный номер, а каждый мост имеет 4-битный номер, по которому он может быть идентифицирован в контексте данной локальной сети. Таким образом, далеко отстоящие друг от друга мосты могут иметь один и тот же номер, например 13, но мосты между двумя локальными сетями должны иметь разные номера. Таким образом, путь представляет собой числовую последовательность номеров моста, сети, моста, сети и т.д.

Мост Token Ring отбирает только кадры со старшим битом адреса равным 1. В этом случае мост находит в поле пути номер локальной сети, из которой данный кадр получен, и, если за номером сети следует его собственный номер, передает кадр в сеть, номер которой следует за его собственным.

Неявно алгоритм Source Routing предполагает, что каждая машина в объединенной сети знает, или может найти, наилучший путь до получателя. Основная идея алгоритма определения пути по запросу источника состоит в том, что когда отправитель не знает путь к получателю, он посылает широковещательный кадр с запросом о его местонахождении. Этот поисковый кадр (discovery frame) передается каждым мостом в сети и в результате попадает во все сети. При возвращении ответа мосты записывают в него информацию о себе, на основе анализа которой отправитель может выбрать наилучший путь из всех возможных.

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

Picture 3

Рисунок 3.
В сетях с параллельными мостами Token Ring число посланных пакетов растет экспоненциальным образом.

СРАВНИТЕЛЬНЫЕ ДОСТОИНСТВА

Каждый из описанных видов мостов (Transparent и Source Routing) имеет свои преимущества и недостатки. Суть различия между двумя типами мостов лежит в том, что прозрачные мосты передают кадры независимо друг от друга, в то время как мосты Token Ring сначала определяют путь, а затем передают по нему кадры.

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

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

Теоретически одно из немногих преимуществ мостов Token Ring состоит в том, что они могут использовать оптимальный путь, тогда как путь пересылки кадров прозрачными мостами ограничен деревом. Кроме того, параллельные мосты Token Ring между двумя сетями могут использоваться для распределения нагрузки между ними. Насколько реальные мосты реализуют эти теоретические преимущества, сказать трудно.

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

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

Наконец, мосты Token Ring в отличие от прозрачных мостов возлагают значительную часть работы на хосты: те должны хранить пути, рассылать поисковые кадры и копировать информацию о пути в каждый кадр. Все это требует дополнительных затрат ресурсов памяти и ЦПУ. Ввиду того, что по сравнению с мостами хостов, как правило, на один-два порядка меньше, дополнительную стоимость и сложность лучше вложить в несколько мостов, чем во все хосты.

НАВЕДЕНИЕ МОСТОВ

К сожалению, комитет IEEE 802 не смог прийти к единому стандарту для мостов между локальными сетями - в результате мы имеем два несовместимых между собой стандарта. Позднее IEEE объединил оба метода организации моста в одном под названием Source Routing Transparent. Такой мост работает одновременно и как Source Route, и как Transparent.

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

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


Дмитрий Ганьжа - ответственный редактор LAN Magazine/Русское издание. С ним можно связаться через Internet по адресу: dganzha@osp.ru.