Совместимость виртуальных сетей от разных производителей
Технология образования и работы виртуальных сетей с помощью коммутаторов пока не стандартизована, хотя и реализуется в очень широком спектре моделей коммутаторов разных производителей. Положение может скоро измениться, если будет принят стандарт 802.1q, разработанный в рамках института IEEE. Задержка с его окончательным принятием связана с сопротивлением компаний, уже имеющих похожие, но все же отличающиеся в деталях собственные схемы. Технология одного производителя, как правило, не совместима с технологией других производителей. Поэтому виртуальные сети можно создавать пока на оборудовании одного производителя. Исключение составляют только виртуальные сети, построенные на основе спецификации LANE (LANEmulation), предназначенной для обеспечения взаимодействия АТМ-коммутаторов с традиционным оборудованием локальных сетей.
Все способы построения виртуальных сетей можно разбить на несколько основных схем:
- группировка портов;
- группировка МАС-адресов;
- добавление к кадрам меток номеров виртуальных сетей;
- использование стандарта LANE для образования виртуальных сетей в сетях, построенных на коммутаторах АТМ;
- использование сетевого уровня.
Все способы за исключением последнего решают проблему создания виртуальных сетей на канальном уровне и поэтому не зависят от протоколов, работающих в сети на верхних уровнях. Последний способ требует, чтобы во всех узлах сети работал какой-либо протокол сетевого уровня - IP, IPX, AppleTalk и т.п. В этом случае концепция виртуальной сети совпадает с пониманием этого термина на сетевом уровне, то есть виртуальная сеть IP является подсетью IP, а виртуальная сеть IPX является сетью IPX.
Группировка портов - самый простой способ образования виртуальной сети, плохо работает в сетях, построенных на нескольких коммутаторах. Это объясняется тем, что при переходе кадра от одного коммутатора информация о его принадлежности виртуальной сети теряется, если только коммутаторы не связаны между собой столькими портами, сколько всего имеется виртуальных сетей.
Группировка МАС адресов свободна от этого недостатка, но обладает другим - нужно помечать номерами виртуальных сетей все МАС-адреса, имеющиеся в таблицах каждого коммутатора.
Последние три способа объединяет то, что они используют специальное поле для хранения номера виртуальной сети в самом кадре.
В третьем способе к обычному кадру локальной сети формата Ethernet, TokenRing или FDDI добавляется специальное поле для хранения номера виртуальной сети. Оно используется только тогда, когда кадр передается от коммутатора к коммутатору, а при передаче кадра конечному узлу оно удаляется. При этом модифицируется протокол взаимодействия "коммутатор-коммутатор", а программное и аппаратное обеспечение конечных узлов остается неизменным. Примеров таких фирменных протоколов много, но общий недостаток у них один - они не поддерживаются другими производителями. Компания Cisco предложила использовать в качестве стандартной добавки к кадрам любых протоколов локальных сетей заголовок протокола 802.10, предназначенного для поддержки функций безопасности вычислительных сетей. Сама компания использует этот метод в тех случаях. когда коммутаторы объединяются между собой по протоколу FDDI. Однако, эта инициатива не была поддержана другими ведущими производителями коммутаторов, поэтому до принятия стандарта 802.1q фирменные протоколы маркировки виртуальных сетей будут преобладать. Стандарт 802.1q просто узаконивает один из форматов этого поля.
Существует два способа построения виртуальных сетей, которые использует уже имеющиеся поля для маркировки принадлежности кадра виртуальной сети, однако эти поля принадлежат не кадрам канальных протоколов, а пакетам сетевого уровня или ячейкам технологии АТМ.
В случае работы через АТМ номер виртуальной сети отождествляется с номером виртуального пути VPI/VCI, используемого для передачи трафика этой виртуальной локальной сети через коммутаторы АТМ. Способ стандартизован в протоколе LANE, разработанном АТМ Forum, и поддерживается всеми производителями коммутаторов АТМ для локальных сетей.
При использовании последнего подхода коммутаторы должны для образования виртуальной сети понимать какой-либо сетевой протокол. Поэтому такие коммутаторы называют коммутаторами 3-го уровня.
Коммутаторы 3-го уровня
Коммутатор 3-го уровня - это устройство, которое совмещает функции коммутатора и маршрутизатора. Однако, производители коммутаторов обычно избегают произносить слово "маршрутизация" по маркетинговым соображениям, им хочется, чтобы все думали, что они выпускают нечто такое, чего до недавнего времени в природе не существовало.
У коммутатора третьего уровня имеется несколько особенностей, которые отличают их от традиционных маршрутизаторов и традиционных коммутаторов, работающих только на 2-ом уровне:
- поддержка интерфейсов и протоколов только локальных сетей;
- усеченные функции маршрутизации;
- реализация функций маршрутизации "в силиконе", то есть не в виде программного обес- печения, работающего на универсальном процессоре типа Intel или Motorola, а в специализированной интегральной схеме, ASIC;
- поддержка механизма виртуальных сетей;
- тесная интеграции функций коммутации и маршрутизации, наличие удобных для администратора операций по заданию маршрутизации между виртуальными сетями.
Усеченные функции маршрутизации выражаются у разных производителей по разному. Часто коммутаторы не поддерживают функции автоматического построения таблиц маршрутизации, которые поддерживаются протоколами маршрутизации, такими как RIP или OSPF. Такие коммутаторы должны работать в паре с маршрутизатором и получать от него готовые таблицы маршрутизации. По такой схеме взаимодействует коммутатор Catalist 5000 компании Cisco с маршрутизаторами этой же компании.
Если же коммутатор третьего уровня поддерживает протоколы RIP и OSPF (последний в силу своей сложности реализуется в коммутаторах третьего уровня реже), то его ограниченность часто проявляется в поддержке только протокола IP, или же IP и IPX.
Тесная интеграция коммутации и маршрутизации удобна для администратора и часто повышает производительность.
Во первых потому, что можно определить сначала виртуальные сети на основании информации только второго уровня, например, с помощью группировки портов, а затем, при необходимости объявить эти виртуальные сети подсетями IP и организовать в этом же устройстве их связь за счет маршрутизации (рис.2.15).
Рис. 2.15. Объединение виртуальных сетей с помощью коммутатора 3-го уровня
Если же коммутатор не поддерживает функций сетевого уровня, то его виртуальные сети могут быть объединены только с помощью внешнего маршрутизатора. Некоторые компании выпускают специальные маршрутизаторы для применения совместно с коммутаторами. Примером такого маршрутизатора служит маршрутизатор Vgate компании RND, изображенный на рисунке 2.16.
Этот маршрутизатор имеет один физический порт для связи с портом коммутатора, но этот порт может поддерживать до 64 МАС-адресов, что позволяет маршрутизатору объединять до 64 виртуальных сетей.
Интеграция функций коммутатора и маршрутизатора проявилась в последнее время еще в одном новшестве - динамическом переходе от маршрутизации к коммутации для долговременных потоков данных. Впервые такую технологию применила в начале 1996 года компания Ipsilon для коммутаторов АТМ. В связи с тем, что Ipsilon реализовала свою идею только для сетевого протокола IP, то более детально ее технология рассматривается в разделе, посвященном влиянию Internet и стека TCP/IP на корпоративные сети.
Затем эту идею подхватили все ведущие производители коммуникационного оборудования - 3Com, Digital, IBM, Cisco и т.д. Каждый из них реализовал ее по своему и общего стандарта пока нет, хотя Ipsilon и Cisco подали свои предложения для начла процедуры превращения технологию в стандарт Internet.
Рис. 2.16. Маршрутизатор Vgate, разработанный специально для объединения виртуальных сетей
Общая идея этого подхода иллюстрирует рисунок 2.17. Предполагается, что магистраль сети состоит из коммутаторов 3-го уровня. которые могут работать как обычные маршрутизаторы и как коммутаторы второго уровня.
Первый коммутатор магистрали - пограничный - занимается анализом поступающего на него трафика с целью выявления устойчивых долговременных потоков данных. Такие потоки образуются, например, при передаче файлов большой длины, компонент Web-страниц и т.п. В сети также существуют кратковременные потоки - например, запросы к DNS, ARP-запросы, обращения к справочной службе сети типа NDS. Пакеты кратковременных пакетов, требующих маршрутизации (например, идущие от одной виртуальной сети к другой) пограничный коммутатор и все последующие обрабатывают как обычные маршрутизаторы, то есть путем просмотра заголовка третьего уровня, просмотра таблицы маршрутизации и перенаправления пакета следующему коммутатору-маршрутизатору. Пакеты же долговременных потоков обрабатываются по другому. Пограничный маршрутизатор должен распознавать пакеты, принадлежащие потоку и заменять в нем адресную информацию второго уровня так, чтобы последующие коммутаторы 3-го уровня обрабатывали бы этот пакет как кадр второго уровня, то есть при получении кадра не отправляли бы его к модулю маршрутизации, а переправляли на выходной порт по MAC-адресу, действуя как коммутаторы второго уровня, то есть очень быстро.
Например, если пограничный коммутатор распознает, что пришедший кадр направлен ему для маршрутизации из одной виртуальной сети в другую, то он заменяет MAC-адрес в пришедшем кадре со своего MAC-адреса на МАС-адрес сетевого адаптера узла назначения (он его узнает из IP-адреса в пришедшем пакете). Далее коммутаторы магистрали передают образованный пакет друг другу на основании этого МАС-адреса как обычные коммутаторы второго уровня, не задерживая пакет в каждом коммутаторе для выполнения функции маршрутизации. Процедура присваивания МАС-адреса на основании сетевого адреса называется отображением (mapping) адреса.
Рис. 2.17. Ускоренная передача долговременных потоков пакетов через сеть коммутаторов 3-го уровня
Пограничный маршрутизатор обычно идентифицирует принадлежность пакета потоку по сетевым адресам источника и получателя, а также по адресам приложений (портам TCP или UDP).
Дополнительная работа по отображению сетевого адреса на адрес второго уровня компенсируется многократным выигрышем от ускоренной обработки большого количества пакетов в потоке. Для кратковременных потоков нет смысла применять эту схему, так как число пакетов в потоке невелико и выигрыша во времени обработки может и не быть.
Эта очень упрощенная общая схема реализована (или реализуется) в конкретных схемах различных производителей:
- Cisco - NetFlow и TagSwitching;
- 3Com - FastIP;
- Cabletron - SecureFastVirtualNetworking;
- Cascade - IPNavigator;
- DEC - IPpacketswitching;
- FrameRelayTechnologies - FramenetVirtualWANSwitching;
- IBM - ARIS (AggregateRoute-basedIPSwitching);
- Ipsilon - IPSwitching;
- Toshiba -CellSwitchRouter.
Этот подход применяется не только для локальных сетей, но и для глобальных, так как технологии famerelay и ATM - это технологии канального уровня.
В частных реализациях описанная схема может значительно усложняться. Например, компания Cisco в своей технологии TagSwitching отображает в пограничном коммутаторе-маршрутизаторе сетевой адрес не на МАС-адрес, а на специальный короткий номер - tag, на основании которого все последующие маршрутизаторы продвигают пакет. Это требует изменения программного обеспечения стандартной маршрутизации.
Реализация ускоренных методов других производителей также часто требует изменения существующего программного обеспечения в элементах сети, например, подход 3Сom требует изменения в драйверах сетевых адаптеров, подход Ipsilon требует изменения программного обеспечения коммутаторов АТМ и т.п.
Из лидеров только компания BayNetworks заявила, что не собирается ничего изменять в стандартных алгоритмах коммутации и маршрутизации, а просто будет выпускать очень быстрые маршрутизаторы и коммутаторы 3-го уровня с обычным программным обеспечением маршрутизации. Ник Липпис назвал коммутаторы третьего уровня, работающие по стандартным алгоритмам маршрутизации, коммутаторами "пакет-за-пакетом", подчеркивая тот факт, что они маршрутизируют каждый пакет, независимо от того, принадлежит ли он потоку или нет.