Алгоритм работы прозрачного моста
Прозрачные мосты незаметны для сетевых адаптеров конечных
узлов, так как они самостоятельно строят специальную адресную таблицу, на
основании которой можно решить, нужно передавать пришедший кадр в какой-либо
другой сегмент или нет. Сетевые адаптеры при использовании прозрачных мостов
работают точно так же, как и в случае их отсутствия, то есть не предпринимают
никаких дополнительных действий, чтобы кадр прошел через мост. Алгоритм
прозрачного моста не зависит от технологии локальной сети, в которой
устанавливается мост, поэтому прозрачные мосты Ethernet работают точно так же,
как прозрачные мосты FDDI.
Прозрачный мост строит свою адресную таблицу на основании
пассивного наблюдения за трафиком, циркулирующим в подключенных к его портам
сегментах. При этом мост учитывает адреса источников кадров данных, поступающих
на порты моста. По адресу источника кадра мост делает вывод о принадлежности
этого узла тому или иному сегменту сети.
Рассмотрим процесс автоматического создания адресной таблицы
моста и ее использования на примере простой сети, представленной на рис. 4.18.
Рис. 4.18. Принцип работы
прозрачного моста
Мост соединяет два логических сегмента. Сегмент 1 составляют
компьютеры, подключенные с помощью одного отрезка коаксиального кабеля к порту
1 моста, а сегмент 2 — компьютеры, подключенные с помощью другого отрезка
коаксиального кабеля к порту 2 моста.
Каждый порт моста работает как конечный узел своего сегмента
за одним исключением — порт моста не имеет собственного МАС-адреса. Порт моста
работает в так называемом неразборчивом (promisquous) режиме захвата пакетов,
когда все поступающие на порт пакеты запоминаются в буферной памяти. С помощью
такого режима мост следит за всем трафиком, передаваемым в присоединенных к
нему сегментах, и использует проходящие через него пакеты для изучения состава
сети. Так как в буфер записываются все пакеты, то адрес порта мосту не нужен.
В исходном состоянии мост ничего не знает о том, компьютеры
с какими МАС-адресами подключены к каждому из его портов. Поэтому в этом случае
мост просто передает любой захваченный и буферизованный кадр на все свои порты
за исключением того, от которого этот кадр получен. В нашем примере у моста
только два порта, поэтому он передает кадры с порта 1 на порт 2, и наоборот.
Отличие работы моста в этом режиме от повторителя в том, что он передает кадр
не побит-но, а с буферизацией. Буферизация разрывает логику работы всех
сегментов как единой разделяемой среды. Когда мост собирается передать кадр с
сегмента на сегмент, например с сегмента 1 на сегмент 2, он заново пытается
получить доступ к сегменту 2 как конечный узел по правилам алгоритма доступа, в
данном примере — по правилам алгоритма CSMA/CD.
Одновременно с передачей кадра на все порты мост изучает
адрес источника кадра и делает новую запись о его принадлежности в своей
адресной таблице, которую также называют таблицей фильтрации или маршрутизации.
Например, получив на свой порт 1 кадр от компьютера 1, мост делает первую
запись в своей адресной таблице: МАС-адрес 1 — порт 1. Если все четыре
компьютера данной сети проявляют активность и посылают друг другу кадры, то
скоро мост построит полную адресную таблицу сети, состоящую из 4 записей — по
одной записи на узел.
После того как мост прошел этап обучения, он может работать
более рационально. При получении кадра, направленного, например, от компьютера
1 компьютеру 3, он просматривает адресную таблицу на предмет совпадения ее
адресов с адресом назначения 3. Поскольку такая запись есть, то мост выполняет
второй этап анализа таблицы — проверяет, находятся ли компьютеры с адресами
источника (в нашем случае — это адрес 1) и адресом назначения (адрес 3) в одном
сегменте. Так как в нашем примере они находятся в разных сегментах, то мост
выполняет операцию продвижения (forwarding) кадра — передает кадр на другой
порт, предварительно получив доступ к другому сегменту.
Если бы оказалось, что компьютеры принадлежат одному сегменту,
то кадр просто был бы удален из буфера и работа с ним на этом бы закончилась.
Такая операция называется фильтрацией (filtering).
Если же адрес назначения неизвестен, то мост передает кадр
на все свои порты, кроме порта — источника кадра, как и на начальной стадии
процесса обучения.
На самом деле мы несколько упростили алгоритм работы моста.
Его процесс обучения никогда не заканчивается. Мост постоянно следит за
адресами источника буферизуемых кадров, чтобы быть в состоянии автоматически
приспосабливаться к изменениям, происходящим в сети, — перемещениям компьютеров
из одного сегмента сети в другой, появлению новых компьютеров. С другой
стороны, мост не ждет, когда адресная таблица заполнится полностью (да это и
невозможно, поскольку заранее не известно, сколько компьютеров и адресов будут
находиться в сегментах моста). Как только в таблице появляется первый адрес,
мост пытается его использовать, проверяя совпадение с ним адресов назначения
всех поступающих пакетов.
Входы адресной таблицы могут быть динамическими,
создаваемыми в процессе самообучения моста, и статическими, создаваемыми
вручную администратором сети. Динамические входы имеют срок жизни — при
создании или обновлении записи в адресной таблице с ней связывается отметка
времени. По истечении определенного тайм-аута запись помечается как
недействительная, если за это время мост не принял ни одного кадра с данным
адресом в поле адреса источника. Это дает возможность автоматически реагировать
на перемещения компьютера из сегмента в сегмент — при его отключении от старого
сегмента запись о его принадлежности к нему со временем вычеркивается из
адресной таблицы. После включения этого компьютера в работу в другом сегменте
его кадры начнут попадать в буфер моста через другой порт, и в адресной таблице
появится новая запись, соответствующая текущему состоянию сети.
Статические записи не имеют срока жизни, что дает
администратору возможность подправлять работу моста, если это необходимо.
Кадры с широковещательными МАС-адресами передаются мостом на
все его порты, как и кадры с неизвестным адресом назначения. Такой режим
распространения кадров называется затоплением сети (flood). Наличие мостов в
сети не препятствует распространению широковещательных кадров по всем сегментам
сети, сохраняя ее прозрачность. Однако это является достоинством только в том
случае, когда широковещательный адрес выработан корректно работающим узлом.
Однако часто случается так, что в результате каких-либо программных или
аппаратных сбоев протокол верхнего уровня или сам сетевой адаптер начинают
работать некорректно и постоянно с высокой интенсивностью генерировать кадры с
широковещательным адресом в течение длительного промежутка времени. Мост в этом
случае передает эти кадры во все сегменты, затапливая сеть ошибочным трафиком.
Такая ситуация называется широковещательным штормом (broadcast storm).
К сожалению, мосты не защищают сети от широковещательного
шторма, во всяком случае, по умолчанию, как это делают маршрутизаторы.
Максимум, что может сделать администратор с помощью моста для борьбы с
широковещательным штормом — установить для каждого узла предельно допустимую
интенсивность генерации кадров с широковещательным адресом. Но при этом нужно
точно знать, какая интенсивность является нормальной, а какая — ошибочной. При
смене протоколов ситуация в сети может измениться, и то, что вчера считалось
ошибочным, сегодня может оказаться нормой. Таким образом, мосты располагают
весьма грубыми средствами борьбы с широковещательным штормом.
На рис. 4.19 показана типичная структура моста. Функции
доступа к среде при приеме и передаче кадров выполняют микросхемы MAC, которые
идентичны микросхемам сетевого адаптера.
На рис. 4.20 показана копия экрана терминала с адресной
таблицей модуля локального моста концентратора System 3000 компании SynOptics
(сам концентратор уже не выпускается, но в свое время он сыграл роль пионера в
становлении многосегментных концентраторов Ethernet на витой паре, причем
концентратор имел модуль моста, который мог соединять внутренние сегменты без
привлечения внешнего моста). Терминал подключен к консольному порту, и
информация на его экране высвечена модулем управления моста.
Из помещенной на экране адресной таблицы (Forwarding Table)
видно, что сеть состоит из двух сегментов — LAN А и LAN В. В сегменте LAN А
имеются, по крайней мере, 3 станции, а в сегменте LAN В — 2 станции. Четыре
адреса, помеченные звездочками, являются статическими, то есть назначенными
администратором вручную. Адрес, помеченный знаком «+», является динамическим
адресом с истекшим сроком жизни.
Рис. 4.19. Структура моста
Таблица имеет столбец «Dispn» — «Распоряжение», которое
говорит мосту, какую операцию нужно проделать с кадром, имеющим данный адрес
назначения. Обычно при автоматическом составлении таблицы в этом поле ставится
условное обозначение порта назначения, но при ручном задании адреса в это поле
можно внести нестандартную операцию обработки кадра. Например, операция «Flood»
— «Затопление» заставляет мост распространять кадр в широковещательном режиме,
несмотря на то что его адрес назначения не является широковещательным. Операция
«Discard» — «Отбросить» говорит мосту, что кадр с таким адресом не нужно
передавать на порт назначения.
Рис. 4.20. Адресная таблица моста
System 3000 Local Bridge
Собственно операции, задаваемые в поле «Dispn», являются
особыми условиями фильтрации кадров, дополняющими стандартные условия
распространения кадров. Такие условия обычно называют пользовательскими
фильтрами.