Коммутация (переключение) на уровне 2 реализована аппаратно, т.е. для сетевой фильтрации используется МАС-адрес адаптера хоста. В переключателях установлены микросхемы ASIC (Application-Specific Integrated Circuits — специализированные интегральные микросхемы), которые формируют и обслуживают таблицы фильтрации. Допустимо считать переключатели уровня 2 многопортовыми мостами. Переключатели уровня 2 работают очень быстро, поскольку не пользуются информацией из заголовков сетевого уровня, а анализируют аппаратные адреса в кадре для решения о перенаправлении или об отбросе пакета.
Особенности коммутации на уровне 2:
• Аппаратная реализация мостов (MAC) • Высокая скорость на линии • Низкое запаздывание • Низкая стоимость
Эффективность переключения на уровне 2 связана с тем, что нет изменений в пакетах данных, а все модификации связаны только с инкапсулирующими пакеты кадрами, следовательно, процесс коммутации выполняется быстрее и менее подвержен ошибкам, чем маршрутизация. Переключение на уровне 2 используется в связях между рабочими группами и в сегментации сети (деление на домены конфликтов). Этот процесс позволяет создавать понятные сетевые проекты с гораздо большим количеством сегментов, чем в традиционных сетях 10BaseT. Коммутация на уровне 2 увеличивает полосу пропускания для каждого пользователя, поскольку каждая связь (интерфейс) с переключателем образует собственный домен конфликтов, поэтому расширяются возможности подключения устройств к такому интерфейсу.
Недостатки коммутации на уровне 2
Мы считаем коммутацию на уровне 2 аналогичной сети с мостами, поэтому должны столкнуться с теми же проблемами. Мосты эффективны только при правильном проектировании сети, т.е. при правильном делении на домены конфликтов. Правильным будет такой проект сети с мостами, где пользователи проводят не менее 80 % своего рабочего времени внутри собственных локальных сегментов. Мосты делят сеть на домены конфликтов, но вся сеть остается одним большим доменом широковещательных рассылок. Переключатели уровня 2 (мосты) не способны разделить домен широковещательных рассылок, поскольку возникнут проблемы с производительностью и проявятся ограничения на размер сети. Широковещательные и многоадресные рассылки совместно с низким временем конвергенции алгоритма покрывающего дерева могут привести к серьезным проблемам при расширении размера сети. Учитывая эти проблемы, нельзя считать, что переключатели уровня 2 способны заменить маршрутизаторы (устройства уровня 3) в объединенной сети.
Сравнение применения мостов с коммутацией в локальной сети
Переключатели уровня 2 реально являются мостами с большим числом портов. Однако между ними есть несколько важных отличий:
• Мосты реализованы программно, а переключатели — аппаратно, поскольку переключатели могут использовать микросхемы ASIC во время принятия решений о фильтрации данных. • Мосты способны обслужить только один экземпляр покрывающего дерева на устройство, а переключатели — несколько покрывающих деревьев (см. ниже). • Мосты содержат не более 16 портов, а переключатели могут иметь сотни портов.
Три функции коммутации уровня 2
Во время переключения на уровне 2 выполняются три основные функции коммутации:
Изучение адресов Переключатели уровня 2 и мосты запоминают аппаратный адрес источника из каждого полученного интерфейсом кадра и хранят эту информацию в своей базе данных МАС-адресов.
Решение о пересылке или фильтрации Когда интерфейс получает кадр, переключатель анализирует аппаратный адрес назначения и ищет в своей базе данных МАС-адресов нужный интерфейс.
Исключение зацикливания Если между переключателями для избыточности создано несколько путей, то могут появиться зацикленные пути передачи информации. Протокол STP (Spanning-Tree Protocol — протокол покрывающего дерева) позволяет исключить зацикливание пакетов в сети при сохранении избыточности.
Функции изучения адресов, решение о пересылке или фильтрации, а также исключение зацикливания подробно рассмотрены ниже.
Изучение адресов
После включения питания коммутатора его таблица фильтрации МАС-адресов пуста. Когда устройство передает, а интерфейс получает кадр, коммутатор помещает адрес источника в таблицу фильтрации
МАС-адресов вместе с интерфейсом устройства. Коммутатор (переключатель) не делает самостоятельных решений о перенаправлении кадров, поскольку не знает о местонахождении устройства назначения. Если устройство отвечает и посылает кадр обратно, то переключатель извлекает адрес источника из возвращенного кадра и помещает МАС-адрес в свою базу данных, причем связывает этот адрес с интерфейсом, получившим кадр. Теперь переключатель имеет в таблице фильтрации два МАС-адреса и может установить соединение "точка-точка", а кадры будут перемещаться только между двумя известными переключателю устройствами. Именно поэтому переключатель на уровне 2 работает эффективнее концентратора. В сетях с концентраторами кадры перенаправляются во все выходные порты устройства. Рис. 2.1 показывает процедуру построения базы данных МАС - адресов. На рисунке показаны четыре подключенные к переключателю хоста. После включения питания переключателя, его таблица МАС-адресов пуста.
1. Хост 1 посылает кадр хосту 3. МАС-адрес первого хоста равен 0000.8c01.llll, а МАС-адрес третьего хоста равен 0000.8c01.2222. 2. Переключатель принимает кадр в интерфейсе ЕО/1 и помещает в таблицу МАС-адресов адрес источника. 3. В базе данных МАС-адресов еще нет адреса назначения, поэтому кадр передается во все интерфейсы. 4. Хост 3 получает кадр и откликается на вызов хоста 1. Переключатель принимает этот ответный кадр в интерфейсе Е2 и помещает аппаратный адрес источника второго кадра в базу данных МАС - адресов. 5. Хосты 1 и 3 могут установить соединение "точка-точка", причем кадры будут пересылаться только между этими двумя устройствами. Хосты 2 и 4 не будут "видеть" подобные кадры. Если в течение определенного времени два устройства не будут откликаться во время передачи кадров через переключатель, то переключатель очистит соответствующие записи в своей базе данных, чтобы поддержать корректность таблицы адресов.
Решение о пересылке и фильтрации
Когда кадр попадает в интерфейс коммутатора, аппаратный адрес назначения сравнивается с базой данных перенаправления/фильтрации МАС-адресов. Если аппаратный адрес назначения известен и присутствует в базе данных, то кадр направляется только в один выходной интерфейс, предписанный в таблице базы данных. Переключатель не транслирует кадр во все остальные интерфейсы, за исключением интерфейса, ведущего к точке назначения. Это сохраняет полосу пропускания в других сетевых сегментах, а сам процесс называется фшътрацией кадров (frame filtering).
Если же аппаратный адрес назначения не указан в базе данных МАС-адресов, то кадр отсылается в широковещательной рассылке по всем активным интерфейсам, за исключением интерфейса, в котором этот кадр был получен. Если одно из устройств откликается на широковещательную рассылку, происходит обновление базы данных МАС - адресов за счет добавления местоположения устройства (интерфейса).
Исключение зацикливания
Для связи между переключателями полезны избыточные соединения, которые помогают предотвратить отказ сети при выходе из строя отдельной связи. Несмотря на полезность избыточных соединений, они создают гораздо больше проблем, чем решают. Поскольку кадры одновременно передаются в широковещательных рассылках по всем дублирующим соединениям, могут возникать зацикливания, а также другие проблемы. Наиболее серьезные негативные последствия перечислены в списке:
1. Если не реализована схема исключения зацикливания, переключатель переполнит бесконечными широковещательными рассылками объединенную сеть. Это называется штормом широковещательных рассылок (broadcast storm). Рис. 2.2 показывает распространение в сети такого шторма. Заметим, что согласно рисунку кадры будут бесконечно пересылаться в широковещательных рассылках на физическом уровне объединенной сети.
2. Устройство может получить несколько копий одного кадра, поскольку кадры одновременно поступают из разных сегментов. Рис. 2.3 показывает одновременное поступление нескольких кадров из разных сегментов.
3. Таблица фильтрации МАС - адресов не может быть заполнена корректно, поскольку переключатель получает ответы от одного устройства по нескольким связям. Вполне возможно, что переключатель не сможет переслать кадр, поскольку будет постоянно обновлять таблицу фильтрации МАС - адресов на основе постоянно меняющихся сведений о местоположении аппаратного адреса источника. Этот процесс называется "хлопаньем" (thrashing) МАС - таблицы.
4. Наиболее опасной проблемой является генерация нескольких зацикленных путей в объединенной сети. Зацикливание одного пути порождает зацикливание в других путях по сети, а шторм широковещательных рассылок будет усиливаться до такой степени, что произойдет полная остановка в работе сети. Избежать проблем с зацикливанием помогает протокол (алгоритм) покрывающего дерева Spanning-Tree Protocol (см. ниже).
Протокол STP Spanning-Tree Protocol
Протокол покрывающего дерева Spanning-Tree Protocol (STP) был разработан компанией Digital Equipment Corporation (DEC), которая позже была приобретена и вошла в состав компании Compaq. Институт IEEE создал собственную версию протокола STP, названную 802.Id. Все переключатели Cisco работают по протоколу IEEE 802.Id алгоритма STP, который не совместим с исходной версией компании DEC. Основная задача протокола STP состоит в исключении зацикливания в сетях на уровне 2 (мосты и переключатели). Протокол STP предполагает постоянный мониторинг сети для нахождения всех связей и устранения зацикливания за счет отключения избыточных связей.
Действие алгоритма покрывающего дерева
Протокол STP позволяет найти все связи в сети и выделить среди них избыточные, чтобы отключить избыточные связи и тем самым устранить любые зацикливания в сети. Для этого производится выбор корневого моста (root bridge), который будет следить за сетевой топологией. В любой сети может быть только один корневой мост. Порты такого моста называются назначенными (designated port), поскольку работают в режиме состояния пересылки (forwarding-state). Порты пересылки состояния принимают и отправляют трафик.
Другие переключатели в сети называются некорневыми мостами (nonroot bridge) — см. рис. 2.4. Однако порты с небольшой стоимостью (которая определяется полосой пропускания связи) к корневому мосту называются корневыми портами (root port) и способны принимать и отправлять трафик.
Назначенными называются также порты, ведущие к корневому мосту и имеющие наименьшую стоимость. Другие порты моста являются не назначенными (nondesignated) и не способны принимать и отправлять трафик — этот режим называется блокировкой (blocking mode).
Выбор корневого моста
Исполняющие протокол STP переключатели и мосты обмениваются информацией о элементах данных протокола моста BPDU (Bridge Protocol Data Unit). Элементы BPDU передают сообщения о конфигурации в кадрах широковещательных рассылках. С помощью BPDU остальным устройствами пересылается идентификатор каждого моста. Идентификатор моста служит для выявления в сети корневого моста и назначенных корневых портов. Идентификатор имеет длину 8 байтов и содержит сведения о приоритете и МАС - адресе устройства. Приоритет всех устройств, исполняющих протокол STP по версии IEEE, равен 32 768. Чтобы определить корневой мост, анализируются идентификатор и МАС - адрес моста. Если два переключателя или моста имеют одинаковое значение приоритета, то МАС - адрес служит для выявления устройства с наименьшим идентификатором. Например, если два переключателя с именами А и В имеют приоритет по умолчанию 32 768, то используются МАС - адреса. Если МАС - адрес переключателя А равен 0000.0с00.1111.1111, а МАС - адрес переключателя В - 0000.0с00.2222.2222, то корневым мостом станет переключатель А.
В показанном ниже листинге сетевого анализатора видна пересылка элементов BPDU от переключателя серии 1900. По умолчанию элементы BPDU отсылаются каждые две секунды. Может показаться, что это сильно нагружает сеть, но мы имеем дело только с кадрами уровня 2, а не с пакетами на уровне 3. Можно заключить, что в листинге показаны кадры 802.2, поскольку только кадры формата 802.3 имеют поля DSAP и SSAP в заголовке LLC.
Flags: 0x80 802.3 Status: 0 x 00 Packet Length: 64 Timestamp: 19:33:18.726314 02/28/2000 802.3 Header Destination: 01:80:c2:00:00:00 Source: 00:b0:64:75:6b:c3 LLC Length: 38 802.2 Logical Link Control (LLC) Header Dest. SAP: 0x42 802.1 Bridge Spanning Tree Source SAP: 0x42 802.1 Bridge Spanning Tree Command: 0x03 Unnumbered Information 802.1 - Bridge Spanning Tree (покрывающее дерево моста по спецификации 802.1) Protocol Identifier: 0 Protocol Version ID: 0 Message Type: 0 Configuration Message Flags: %00000000 Root Priority/ID: 0x8000 / 00:b0:64:75:6b:c0 Cost Of Path To Root: 0x00000000 (0) Bridge Priority/ID: 0x8000 / 00:b0:64:75:6b:c0 Port Priority/ID: 0x80 / 0x03 Message Age: 0/256 seconds ( точно О с ) Maximum Age: 5120/256 seconds ( точно 20 с ) Hello Time: 512/256 seconds ( точно 2 с ) Forward Delay: 3840/256 seconds ( точно 15 с ) Extra bytes (Padding): ...... ... 0000000000000000 Frame Check Sequence : 0 x 2 e 006400
Получив реальные данные BPDU, можно узнать стоимость пути к корню. В листинге это значение равно нулю, поскольку переключатель является корневым мостом. Стоимость пути мы рассмотрим ниже.
Выбор назначенных портов
Чтобы выявить порт или порты, используемые для коммуникаций с корневым мостом, нужно сначала определить стоимость пути (path cost). Стоимость в протоколе STP подсчитывается на основе суммы стоимостей участков, которые определяются полосой пропускания связи. В таблице 2.2 показаны типичные стоимости для разных сетей Ethernet.
Спецификация IEEE 802.Id была пересмотрена для согласования с появившимися высокоскоростными связями. Переключатель серии 1900 использует исходную спецификацию IEEE 802. Id.
Состояния портов в алгоритме покрывающего дерева
Порты моста или переключателя, исполняющего протокол STP, могут находиться в одном из четырех состояний:
Blocking (блокировка) Кадры не передаются, но принимаются элементы BPDU. После подачи напряжения на переключатель все его порты по умолчанию переходят в состояние блокировки.
Listening (слушание) Прием элементов BPDU для исключения появления в сети зацикливания, еще до начала передачи кадров данных.
Learning (изучение) Обнаружение МАС-адресов и построение таблицы фильтрации, но без пересылки кадров.
Forwarding (перенаправление) Прием и передача всех данных на порту, исполняющем функции моста.
Обычно порты переключателя находятся в состоянии блокирования или перенаправления. Перенаправляющий порт выбран так, что имеет наименьшую стоимость пути к корневому мосту, однако если изменяется топология сети (например, вследствие отказа одной из связей или ввода администратором нового переключателя), то порты переключателя переходят в состояние слушания или изучения. Блокированные порты предотвращают зацикливание в сети. Когда переключатель выбрал наилучший путь к корневому мосту, все остальные порты переводятся в блокированное состояние, в котором эти порты способны принимать элементы BPDU. Если переключатель выявит, что блокированный порт должен стать назначенным, то этот порт переводится в состояние слушания. Порт будет прослушивать все элементы BPDU, чтобы не сформировать зацикленных путей после перехода в состояние перенаправления.
Конвергенция
Конвергенция (согласование) проявляется при переходе мостов и переключателей в состояние перенаправления или блокирования. Во время периода конвергенции не происходит перенаправление данных. Конвергенция необходима для согласования баз данных во всех устройствах. Перед началом перенаправления данных все устройства должны обновить свои базы данных. Проблема в том, что для конвергенции нужно некоторое время, в течение которого происходит обновление информации в устройствах. Обычно требуется 50 секунд для перехода из состояния блокирования в состояние перенаправления. Не рекомендуется изменять установленные по умолчанию значения таймеров STP, но при необходимости эти таймеры допускают настройку. Задержка перенаправления — это время перехода порта из состояния слушания или изучения в состояние перенаправления.
Пример использования алгоритма покрывающего дерева
Важно понять действие алгоритма покрывающего дерева в объединенной сети, чтобы предвидеть изменения в реальной сетевой среде. На рис. 2.5 показаны три переключателя с одинаковым приоритетом 32 768. Однако каждый переключатель имеет индивидуальный МАС - адрес, Анализируя приоритет и МАС - адрес каждого переключателя, можно выявить корневой мост. Поскольку устройство 1900А имеет наименьший МАС - адрес и все три переключателя сохраняют приоритет по умолчанию, устройство 1900А станет корневым мостом.
Для определения корневых портов в переключателях 1900В и 1900С нужно выяснить стоимость связей подключения к корневому переключателю. Поскольку оба переключателя подключены к корневому переключателю из портов 0 по связи 100 Мбит/с (что является наилучшей стоимостью для данного случая), корневыми в обоих переключателях станут порты 0.
Для выявления назначенных портов переключателей используется идентификатор моста. Все порты корневого моста назначены. Однако оба устройства 1900В и 1900С имеют одинаковую стоимость пути к корневому мосту, поэтому назначенным станет порт переключателя 1900В, поскольку это устройство имеет наименьший идентификатор моста. Учитывая, что назначенным выбран порт устройства 1900В, переключатель 1900С переведет свой порт 1 в блокированное состояние и предохранит сеть от появления зацикливания.
Типы переключателей локальных сетей
Задержка коммутации пакетов в переключателе зависит от выбранного режима работы. Существуют три режима работы переключателей:
Store and forward (сохранить и передать) В буфер переключателя записывается весь кадр данных, проверяется CRC, а затем в таблице фильтрации МАС - адресов выбирается адрес назначения для полученного кадра.
Cut-through (сквозной) Переключатель только ожидает получения аппаратного адреса назначения, а затем производит по нему поиск в таблице фильтрации МАС - адресов.
FragmentFree (без фрагментации) Режим по умолчанию для переключателя Catalyst 1900, который иногда называют модифицированным сквозным режимом ( modified cut - through ). Производится проверка первых 64 байтов кадра для фрагментации (из-за возможных конфликтов в сегменте) перед перенаправлением кадра.
Рис. 2.6 показывает различные части кадра, связанные с режимами переключения. Все режимы переключателей подробно рассматриваются ниже.
Режим 'сохранить и передать'
Переключатель в режиме "сохранить и передать" является одним из трех основных типов переключателей локальных сетей. В таком режиме переключатель локальной сети полностью копирует кадр в собственный встроенный буфер и проверяет контрольную сумму CRC. Поскольку копируется весь кадр, задержка коммутации переключателя зависит от длины кадра. При ошибке CRC кадр отбрасывается, а также отбрасываются слишком короткие (менее 64 байтов, включая CRC) или слишком длинные (более 1518 байтов, включая CRC) кадры. Если в кадре не обнаружено ошибок, переключатель локальной сети выполняет поиск по аппаратному адресу назначения в своей таблице коммутации или перенаправления и выявляет выходной интерфейс для кадра. Затем кадр отправляется через выбранный интерфейс в точку назначения. Этот режим используется в переключателях серии Catalyst 5000 и не может быть изменен в устройстве.
Сквозной режим (реальное время)
Еще одним основным типом переключателей в локальных сетях являются устройства, работающие в сквозном режиме. В этом режиме переключатель копирует в собственный встроенный буфер только адрес назначения (первые шесть байтов после преамбулы). Затем ищется аппаратный адрес назначения в МАС - таблице переключателя, чтобы определить выходной интерфейс и направить в него кадр. Сквозные переключатели обеспечивают низкую задержку, поскольку начинают пересылку кадра сразу после чтения адреса назначения и выявления выходного интерфейса. Некоторые переключатели могут настраиваться на сквозной режим для каждого отдельного порта. Причем этот режим действует до превышения установленной пользователем границы ошибок. Затем устройство автоматически переходит в режим "сохранить и передать", чтобы предотвратить дальнейшее распространение ошибок. Если же уровень ошибок для порта возвращается в установленные пределы, переключатель автоматически возвращается в сквозной режим.
Бесфрагментный режим
Режим FragmentFree является модифицированной версией сквозного режима, причем переключатель Ожидает заполнения окна конфликтов (64 байта) до выполнения перенаправления. Если обнаруживается ошибка в принятом пакете, то она всегда проявляется в первых 64 байтах. Бесфрагментный режим обеспечивает лучшую проверку на ошибки по сравнению со сквозным режимом (в частности, за счет того, что не происходит увеличения задержки на длинных кадрах). Этот режим установлен по умолчанию для переключателей серии 1900.