Виртуальные локальные сети
Кроме своего основного назначения - повышения пропускной способности связей в сети - коммутатор позволяет локализовывать потоки информации в сети, а также контролировать эти потоки и управлять ими, опираясь на механизм пользовательских фильтров. Однако пользовательский фильтр может запретить передачи кадров только по конкретным адресам, а широковещательный трафик он передает всем сегментам сети. Так требует алгоритм работы моста, который реализован в коммутаторе, поэтому сети, созданные на основе мостов и коммутаторов, иногда называют плоскими - из-за отсутствия барьеров на пути широковещательного трафика.
Технология виртуальных локальных сетей (Virtual LAN, VLAN), которая появилась несколько лет тому назад в коммутаторах, позволяет преодолеть указанное ограничение. Виртуальной сетью называется группа узлов сети, трафик которой, в том числе и широковещательный, на канальном уровне полностью изолирован от других узлов сети (рис. 4.39). Это означает, что передача кадров между разными виртуальными сетями на основании адреса канального уровня невозможна, независимо от типа адреса - уникального, группового или широковещательного. В то же время внутри виртуальной сети кадры передаются по технологии коммутации, то есть только на тот порт, который связан с адресом назначения кадра. Виртуальные сети могут пересекаться, если один или несколько компьютеров входят в состав более чем одной виртуальной сети. На рис. 4.39 сервер электронной почты входит в состав 3 и 4 виртуальных сетей. Это значит, что его кадры передаются коммутаторами всем компьютерам, входящим в эти сети. Если же какой-то компьютер входит в состав только виртуальной сети 3, то его кадры до сети 4 доходить не будут, но он может взаимодействовать с компьютерами сети 4 через общий почтовый сервер. Такая схема не полностью защищает виртуальные сети друг от друга -так, широковещательный шторм, возникший на сервере электронной почты, захлестнет сеть 3 и сеть 4.
Рис. 4.39. Виртуальные сети
Говорят, что виртуальная сеть образует домен широковещательного трафика (broadcast domain), по аналогии с доменом коллизий, который образуется повторителями сетей Ethernet.
Назначение технологии виртуальных сетей состоит в облегчении процесса создания изолированных сетей, которые затем должны связываться с помощью маршрутизаторов, реализующих какой-либо протокол сетевого уровня, например IP. Такое построение сети создает гораздо более мощные барьеры на пути ошибочного трафика из одной сети в другую. Сегодня считается, что любая крупная сеть должна включать маршрутизаторы, иначе потоки ошибочных кадров, например широковещательных, будут периодически затапливать всю сеть через прозрачные для них коммутаторы, приводя ее в неработоспособное состояние.
Технология виртуальных сетей создает гибкую основу для построения крупной сети, соединенной маршрутизаторами, так как коммутаторы позволяют создавать полностью изолированные сегменты программным путем, не прибегая к физической коммутации.
До появления технологии VLAN для создания отдельной сети использовались либо физически изолированные сегменты коаксиального кабеля, либо несвязанные между собой сегменты, построенные на повторителях и мостах. Затем эти сети связывались маршрутизаторами в единую составную сеть (рис. 4.40).
Рис. 4.40. Интерсеть, состоящая из сетей, построенных на основе повторителей
Изменение состава сегментов (переход пользователя в другую сеть, дробление крупных сегментов) при таком подходе подразумевает физическую перекоммутацию разъемов на передних панелях повторителей или в кроссовых панелях, что не очень удобно в больших сетях - много физической работы, к тому же высока вероятность ошибки.
Поэтому для устранения необходимости физической перекоммутации узлов стали применять многосегментные концентраторы, рассмотренные в разделе 4.2.2. Возникла возможность программировать состав разделяемого сегмента без физической перекоммутации.
Однако решение задачи изменения состава сегментов с помощью концентраторов накладывает большие ограничения на структуру сети - количество сегментов такого повторителя обычно невелико, поэтому выделить каждому узлу свой сегмент, как это можно сделать с помощью коммутатора, нереально. Кроме того, при таком подходе вся работа по передаче данных между сегментами ложится на маршрутизаторы, а коммутаторы со своей высокой производительностью остаются не у дел. Поэтому сети, построенные на основе повторителей с конфигурационной коммутацией, по-прежнему основаны на разделении среды передачи данных между большим количеством узлов, и, следовательно, обладают гораздо меньшей производительностью по сравнению с сетями, построенными на основе коммутаторов.
При использовании технологии виртуальных сетей в коммутаторах одновременно решаются две задачи:
ñ повышение производительности в каждой из виртуальных сетей, так как коммутатор передает кадры в такой сети только узлу назначения;
ñ изоляция сетей друг от друга для управления правами доступа пользователей и создания защитных барьеров на пути широковещательных штормов.
Для связи виртуальных сетей в общую сеть требуется привлечение сетевого уровня. Он может быть реализован в отдельном маршрутизаторе, а может работать и в составе программного обеспечения коммутатора, который тогда становится комбинированным устройством - так называемым коммутатором 3-го уровня. Коммутаторы 3-го уровня рассматриваются в главе 5.
Технология образования и работы виртуальных сетей с помощью коммутаторов долгое время не стандартизировалась, хотя и была реализована в очень широком спектре моделей коммутаторов разных производителей. Такое положение изменилось после принятия в 1998 году стандарта IEEE 802.1Q, который определяет базовые правила построения виртуальных локальных сетей, не зависящие от протокола канального уровня, который поддерживает коммутатор.
В виду долгого отсутствия стандарта на VLAN каждый крупный производитель коммутаторов разработал свою технологию виртуальных сетей, которая, как правило, была несовместима с технологиями других производителей. Поэтому, несмотря на появление стандарта, можно не так уж редко встретиться с ситуацией, когда виртуальные сети, созданные на коммутаторах одного производителя, не распознаются и, соответственно, не поддерживаются коммутаторами другого производителя.
При создании виртуальных сетей на основе одного коммутатора обычно используется механизм группирования в сети портов коммутатора (рис. 4.41). При этом каждый порт приписывается той или иной виртуальной сети. Кадр, пришедший от порта, принадлежащего, например, виртуальной сети 1, никогда не будет передан порту, который не принадлежит этой виртуальной сети. Порт можно приписать нескольким виртуальным сетям, хотя на практике так делают редко - пропадает эффект полной изоляции сетей.
Рис. 4.41. Виртуальные сети, построенные на одном коммутаторе
Группировка портов для одного коммутатора - наиболее логичный способ образования VLAN, так как виртуальных сетей, построенных на основе одного коммутатора, не может быть больше, чем портов. Если к одному порту подключен сегмент, построенный на основе повторителя, то узлы такого сегмента не имеет смысла включать в разные виртуальные сети - все равно трафик этих узлов будет общим.
Создание виртуальных сетей на основе группирования портов не требует от администратора большого объема ручной работы - достаточно каждый порт приписать к одной из нескольких заранее поименованных виртуальных сетей. Обычно такая операция выполняется с помощью специальной программы, прилагаемой к коммутатору. Администратор создает виртуальные сети путем перетаскивания мышью графических символов портов на графические символы сетей.
Второй способ образования виртуальных сетей основан на группировании МАС - адресов. Каждый МАС - адрес, который изучен коммутатором, приписывается той или иной виртуальной сети. При существовании в сети множества узлов этот способ требует выполнения большого количества ручных операций от администратора. Однако он оказывается более гибким при построении виртуальных сетей на основе нескольких коммутаторов, чем способ группирования портов.
Рисунок 4.42 иллюстрирует проблему, возникающую при создании виртуальных сетей на основе нескольких коммутаторов, поддерживающих технику группирования портов. Если узлы какой-либо виртуальной сети подключены к разным коммутаторам, то для соединения коммутаторов каждой такой сети должна быть выделена своя пара портов. В противном случае, если коммутаторы будут связаны только одной парой портов, информация о принадлежности кадра той или иной виртуальной сети при передаче из коммутатора в коммутатор будет утеряна. Таким образом, коммутаторы с группировкой портов требуют для своего соединения столько портов, сколько виртуальных сетей они поддерживают. Порты и кабели используются при таком способе очень расточительно. Кроме того, при соединении виртуальных сетей через маршрутизатор для каждой виртуальной сети выделяется в этом случае отдельный кабель и отдельный порт маршрутизатора, что также приводит к большим накладным расходам.
Рис. 4.42. Построение виртуальных сетей на нескольких коммутаторах с группировкой портов
Группирование МАС - адресов в виртуальную сеть на каждом коммутаторе избавляет от необходимости их связи несколькими портами, так как в этом случае МАС - адрес является меткой виртуальной сети. Однако этот способ требует выполнения большого количества ручных операций по маркировке МАС - адресов на каждом коммутаторе сети.
Описанные два подхода основаны только на добавлении дополнительной информации к адресным таблицам моста, и в них отсутствует возможность встраивания информации о принадлежности кадра к виртуальной сети в передаваемый кадр. Остальные подходы используют имеющиеся или дополнительные поля кадра для сохранения информации и принадлежности кадра при его перемещениях между коммутаторами сети. При этом нет необходимости запоминать в каждом коммутаторе принадлежность всех МАС - адресов интерсети виртуальным сетям.
Дополнительное поле с пометкой о номере виртуальной сети используется только тогда, когда кадр передается от коммутатора к коммутатору, а при передаче кадра конечному узлу оно удаляется. При этом модифицируется протокол взаимодействия «коммутатор - коммутатор», а программное и аппаратное обеспечение конечных узлов остается неизменным. Примеров таких фирменных протоколов много, но общий недостаток у них один - они не поддерживаются другими производителями. Компания Cisco предложила в качестве стандартной добавки к кадрам любых протоколов локальных сетей заголовок протокола 802.10, предназначенного для поддержки функций безопасности вычислительных сетей. Сама компания использует этот метод в тех случаях, когда коммутаторы объединяются между собой по протоколу FDDI. Однако эта инициатива не была поддержана другими ведущими производителями коммутаторов.
Для хранения номера виртуальной сети в стандарте IEEE 802.1Q предусмотрен тот же дополнительный заголовок, что и стандарт 802.1р. Помимо 3-х бит для хранения приоритета кадра, описанных стандартом 802.1р, в этом заголовке 12 бит используются для хранения номера VLAN, к которой принадлежит кадр. Эта дополнительная информация позволяет коммутаторам разных производителей создавать до 4096 общих виртуальных сетей. Чтобы кадр Ethernet не увеличивался в объеме, при добавлении заголовка 802.1p/Q поле данных уменьшается на 2 байта.
Существуют два способа построения виртуальных сетей, которые используют уже имеющиеся поля для маркировки принадлежности кадра виртуальной сети, однако эти поля принадлежат не кадрам канальных протоколов, а пакетам сетевого уровня или ячейкам технологии АТМ.
В первом случае виртуальные сети образуются на основе сетевых адресов, например адресов IP, то есть той же информации, которая используется при построении интерсетей традиционным способом. Этот эффективный способ работает тогда, когда коммутаторы поддерживают не только протоколы канального уровня, но и протоколы сетевого уровня, то есть являются комбинированными коммутаторами - маршрутизаторами, что бывает далеко не всегда.
Во втором случае виртуальные сети организуются с помощью виртуальных путей в АТМ - сетях.