Главная Главная по Компьютерным сетям

http://seticom-video.narod.ru
ВИДЕО-ФОТО-съёмка

Предыдущая | Оглавление | Следующая

Глава 7. Мост

В этой главе приведены общий обзор мостов и описание способов их работы, включая маршрутизацию от источника с функциями моста или «прозрачного» устройства (transparent and source route bridging). Достаточно подробно описан алгоритм «охвата деревьев» (spanning tree algorithm), используемый мостами для автоматического создания таблиц маршрутизации, списка возможных маршрутов данных и обновления этих таблиц при каждом изменении топологии сети.

Определение мостов

Мосты (bridges), областью действия которых является канальный уровень, объединяют две локальные сети и передают кадры в соответствии с присвоенными МАС-адресами (см. рис. 7.1). Если вы хорошо усвоили принципы действия маршрутизаторов, можете считать мосты своего рода «низкоуровневыми маршрутизаторами» (надеюсь, вы не забыли, что маршрутизаторы функционируют на сетевом уровне и передают кадры в соответствии с IP-адресами).

Если удаленный мост по относительно медленному каналу (например, телефонной линии) устанавливает соединение между двумя локальными сетями (мосты 1 и 2 на рисунке 7.2), локальный мост устанавливает соединение между двумя смежными локальными сетями (мост 3 на рисунке 7.2). При выборе локального моста основное внимание следует уделить производительности, в то время как для удаленного моста критической характеристикой является возможность передачи данных по линии значительной длины.

Сравнительный анализ мостов и маршрутизаторов

Мосты не имеют ни малейшего понятия о протоколах более высоких уровней, инкапсулированных в передаваемые кадры. Следовательно, мосты будут абсолютно одинаково (и одновременно) обрабатывать протоколы IP, IPX, как и любые другие. Кроме того, мосты позволяют сегментировать сети, которые используют не поддерживающие маршрутизацию протоколы, например, NetBEUI.

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

РИСУНОК 7.1. Соответствие устройств уровням модели OSI.

РИСУНОК 7.2. Приблизительная архитектура сети, использующей локальные и удаленные мосты.

Довольно часто управление мостами оказывается намного сложнее управления маршрутизаторами. Протоколам типа IP свойственны «изощренные» протоколы маршрутизации, позволяющие сетевому администратору пристально следить за процессом маршрутизации. Протоколы семейства IP предоставляют некоторую дополнительную информацию, упрощающую задачу логической сегментации (такую информацию можно найти даже в самих адресах). Мосты по своей природе сложнее поддаются управлению - в этом нет ничего удивительного, поскольку они оперируют исключительно с МАС-адресами и физической топологией сети. Именно поэтому рекомендуется использовать мосты в небольших простейших сетях.

Существует два типа мостов:

n    Прозрачные (Transparent) мосты: как правило, используются для установления соединения между сегментами Ethernet.

n    Мосты с маршрутизацией от источника (Source route): как правило, используются для установления соединения между сегментами Token Ring.

Ниже эти типы устройств будут рассмотрены подробнее.

Прозрачные мосты

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

В качестве устройств сопряжения с сетью мост использует два и более порта.

Простейший режим работы прозрачного моста

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

Мост не зря называется прозрачным, поскольку он невидим для всех хостов сети. С точки зрения сетевого уровня (например, протокола IP) все сети, соединение между которыми установлено с помощью мостов, можно считать физически соединенными.

Каким образом поддерживается эта «прозрачность»? Основной функцией моста является передача полученных кадров. Единственным исключением является ситуация, когда полученный кадр предназначен устройству, хост которого подключен к тому же порту, что и хост отправителя (например, полученный первым портом кадр необходимо отослать через этот же порт). Определяя подобную ситуацию, мост в состоянии в значительной степени сократить количество ретрансляций.

Для каждого порта моста составляется список МАС-адресов устройств, подключенных к данному порту. Мост будет знать, что хост G подключен к третьему порту, если третий порт получит кадры от хоста G. На случай если хост изменит свое расположение в сети, каждая запись списка обновляется через определенное время (TTL - time to live). Каждый раз после получения кадра с известного МАС-адреса соответствующий счетчик TTL запускается заново.

В простейшем случае мост соединяет две подсети. На рисунке 7.3 мост должен передавать кадры от хоста А к хосту С, но ни в коем случае не от хоста А к хосту В.

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

n    Таблицы моста: Порт 1 - <неизвестно>; Порт 2 - <неизвестно>

n    Хост А пересылает кадр хосту В. Мост получает кадр на первом порту, но не знает, где расположен хост В, поэтому передает кадр на второй порт. В таблицу первого порта мост добавляет запись о хосте А.

n    Таблицы моста: Порт 1 - <А>; Порт 2 - <неизвестно>

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

n    Таблицы моста: Порт 1 - <А, В>; Порт 2 - <неизвестно>

n    Хост А посылает кадру хосту В. Мост получает кадр на первом порту, но на этот раз уже располагает информацией о том, где расположен хост В (также на первом порту), поэтому кадр не транслируется во второй порт. Счетчик TTL для записи хоста А будет перезапущен.

n    Таблицы моста: Порт 1 - <А, В>; Порт 2 - <неизвестно>

РИСУНОК 7.3. Простейшая конфигурация сети, использующей мосты.

РИСУНОК 7.4. Сеть, состоящая из двух мостов, образующих кольцо.

Алгоритм охвата деревьев IEEE 802.1d

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

Теперь представим следующую ситуацию; таблицы всех мостов незаполнены, а хост А посылает кадр хосту В (направление 1 на рисунке).

n    Таблицы моста J: Порт 1 - <неизвестно>; Порт 2 - <неизвестно>

n    Таблицы моста К: Порт 3 - <неизвестно>; Порт 4 - <неизвестно>

n    Мост J обнаруживает входящие кадры на первом порту (направление 1 на рисунке) - не зная расположения хоста В, мост транслирует кадр во второй порт (направление 2 на рисунке). Запись о хосте А добавляется в таблицу порта 1. Мост K также обнаруживает входящие кадры на третьем порту (направление 1) - не зная расположения хоста В, мост транслирует кадр в четвертый порт (направление 3 на рисунке). Запись о хосте А добавляется в таблицу порта 3.

n    Таблицы моста J: Порт 1 - <А>; Порт 2 - <неизвестно>

n    Таблицы моста K: Порт 3 - <А>; Порт 4 - <неизвестно>

n    Мост J обнаруживает кадры на втором порту (направление 3 на рисунке) - не зная о расположении хоста В, мост транслирует кадр в первый порт (направление 4 на рисунке). Поскольку на втором порту обнаружены кадры от хоста А, следует обновить таблицу. Мост К обнаруживает кадры на четвертом порту (направление 2 на рисунке) - не зная о расположении хоста В, мост транслирует кадр в третий порт (направление 5 на рисунке). Поскольку на четвертом порту обнаружены кадры от хоста А, следует обновить таблицу.

n    Таблицы моста J: Порт 1 - <неизвестно>; Порт 2 - <А>

n    Таблицы моста K: Порт 3 - <неизвестно>; Порт 4 - <А>

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

Причиной всех этих неприятностей является наличие двух мостов, поддерживающих трафик между одними и теми же подсетями, с чем нельзя мириться. Предпочтительнее всего решить эту проблему с помощью алгоритма «охвата деревьев» (Spanning Tree Algorithm), определенного стандартом IEEE 802.1d.

Охватывающие деревья

На рисунке 7.5 показана сложная сеть с несколькими мостами - сети представлены в виде облачков, а мосты в виде стрелок.

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

РИСУНОК 7.5. Сложная сеть с несколькими кольцами, иллюстрирующая алгоритм охвата деревьев.

РИСУНОК 7.6. Сложная сеть, иллюстрирующая возможность построения альтернативного охватывающего дерева.

Охватывающее дерево в большинстве случаев можно построить несколькими способами. Сеть «эластичной» архитектуры позволяет построить охватывающее дерево даже в случае разрыва любой связи. Военные ведомства часто размещают заказы на создание сетей, в которых охватывающее дерево можно построить даже в случае разрыва двух связей (и даже более!). На рисунке 7.6 показано альтернативное охватывающее дерево.

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

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

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

Реализация алгоритма охвата деревьев

Если работа мостов строится на предпосылках о существовании набора соединений, который позволит сети функционировать без колец (охватывающее дерево), каким же образом из всех возможных деревьев выбирается единственное?

Мосты обмениваются информацией с помощью сообщений так называемых модулей данных протокола (Bridges Protocol Data Units - ВРDU). Прежде чем мосты сети смогут придти к консенсусу относительно способа конфигурации, каждый мост и каждый порт должен располагать следующими сведениями:

n    Мост: Уникальный идентификатор (Идентификатор моста)

n    Порт: Уникальный идентификатор (Идентификатор порта)

n    Порт: Относительный приоритет порта

n    Порт: Стоимость каждого порта (чем выше пропускная способность, тем ниже стоимость)

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

В процессе определения охватывающего дерева можно выделить три основных этапа:

  1. Выбор главного моста.

    Мост с наименьшим значением идентификатора будет выбран в качестве главного (root). Обычно в качестве идентификаторов мостов используются уникальные значения, но если на роль главного моста будут претендовать два устройства с одинаковыми идентификаторами, предпочтение будет отдано мосту с меньшим значением МАС-адреса, На рисунке 7.7 в качестве главного выбран первый мост.

  2. Выбор главного порта на всех остальных мостах.

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

  3. Выбор моста и порта для каждого локального порта.

    Если к данной сети подключен только один мост, особо раздумывать при выборе моста не приходится (например, сеть Г на рисунке 7.7 предполагает использование третьего моста). Если же к сети подключен более чем один мост, будет выбран мост, позволяющий установить соединение с главным мостом с минимальными затратами (например, для сети Е будет выбран четвертый, а не третий мост). Затем следует выбрать порт, позволяющий устанавливать соединение с локальной сетью (из нескольких портов будет выбран порт с минимальным значением приоритета).

Имейте в виду, что порт должен иметь один (и только один) из перечисленных статусов:

n    Главный порт

n    Выделенный для локальной сети порт

n    Блокированный порт

Обратите внимание, что главный порт никогда не выделяется локальной сети (например, на рисунке 7.7 седьмой порт моста 3 не выделяется для локальной сети Г). Главный порт выделен для установления соединения с главным мостом, поэтому для локальной сети следует выбрать другой мост, расположенный как можно ближе к главному (в данном случае второй мост). Именно этот мост и его порт (шестой порт) будет выделен локальной сети.

Сразу после включения все мосты считают себя главными. После обмена данными конфигурации (configuration bridge protocol data unit - CBPDU) и присвоения идентификаторов выбирается действительно главный мост.

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

Если значение идентификатора данного моста выше, чем у известного главного моста, информация будет проигнорирована. Если кадр получен выделенным для приема портом, в ответ будет отослано значение идентификатора моста.

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

РИСУНОК 7.7. Выбор главных портов.

Маршрутизация от источника с функциями моста

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

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

Для пересылки кадра к рабочей станции удаленной сети необходимо определить, какие именно мосты пройдет кадр. Предположим (см. рис. 7.8), хост А собирается переслать кадр хосту D. В качестве возможного пути, который пройдут данные, можно задать одну из последовательностей:

А -> TR1 -> Мост 2 -> TR3 -> Мост 7 -> TR5 -> D

или

А -> TR1 -> Мост 9 -> TR4 -> Мост 8 -> TR5 -> D

или.

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

Насколько эффективно использовать в такой сети прозрачные мосты? Алгоритм охвата деревьев заблокирует некоторые порты мостов. Для создания охватывающего дерева достаточно использования мостов 1, 4, 5 и 8, в то время как все остальные мосты будут резервными (на случай отказа какого-то из основных). Однако чрезмерно возрастет нагрузка на центральную сеть (TR3). Используя алгоритм маршрутизации от источника с функциями моста, за счет передачи всех обязанностей по маршрутизации кадров на хосты можно создать гибкую схему маршрутизации.

РИСУНОК 7.8. Главные и выделенные порты.

Стандарт IEEE 802.5 для сетей Token Ring формулирует несколько условий, которым должны соответствовать заголовки кадров. Если кадр несет данные маршрутизации, взводятся первые I/G бит в начале адреса отправителя. Собственно путь данных определяется как список узлов, каждому из которых соответствует двухбайтное поле.

Поиск путей

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

Одновременный поиск всех возможных маршрутов

Передающий хост рассылает кадр поиска всех возможных маршрутов (All Routes Explorer - ARE) с незаполненным списком узлов. Каждый мост, получивший кадр, добавляет к списку свой идентификатор, а также идентификатор сети, после чего транслирует кадр во все порты (кроме того, через который был получен кадр).

Получающий хост получит по одному кадру ARE для всех возможных маршрутов. После этого в ответ на каждый полученный кадр в адрес хоста отправителя будет отослан кадр-подтверждение (SRF - specified route frame). Выбор маршрута передачи данных возложен на хост, отправляющий пакет данных.

Поиск всех возможных охватывающих деревьев

В кадре поиска всех возможных охватывающих деревьев (Spanning Tree Explorer - STE) уже отражены данные существующего дерева. Кадр STE с помощью мостов распространяется передающим хостом по охватывающему сеть дереву (см. предыдущие разделы). Это значит, что в каждую локальную сеть попадет строго одна копия кадра STE. Хост получателя также получит единственную копию кадра STE с информацией о пройденном маршруте и ответит на нее кадром ARE, адресованным хосту отправителя.

Прозрачные и маршрутизирующие мосты

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

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

Резюме

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

Предыдущая | Оглавление | Следующая


Главная Главная по Компьютерным сетям


Сайт создан в системе uCoz