Подключение к vlan. Native VLAN(нативный VLAN)

VLAN (от англ. Virtual Local Area Network) – логическая («виртуальная») локальная компьютерная сеть, имеющая те же свойства, что и физическая локальная сеть.

Проще говоря, VLAN – это логический канал внутри физического.

Данная технология позволяет выполнять две противоположные задачи :

1) группировать устройства на канальном уровне (т.е. устройства, находящиеся в одном VLAN’е), хотя физически при этом они могут быть подключены к разным сетевым коммутаторам (расположенным, к примеру, географически отдаленно);

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

Иначе говоря, VLAN ‘ы позволяют создавать отдельные широковещательные домены. Сеть любого крупного предприятия, а уж тем более провайдера, не может функционировать без применения VLAN’ов.

Применение данной технологии дает нам следующие преимущества:

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

Приведу простой пример : допустим, есть хосты, включенные в коммутатор, который, в свою очередь, подсоединен к маршрутизатору (рис. 1). Предположим, у нас есть две локальные сети, соединенные одним коммутатором и выходящие в интернет через один роутер. Если не разграничить сети по VLAN’ам, то, во-первых, сетевой шторм в одной сети будет оказывать влияние на вторую сеть, во-вторых, с каждой сети можно будет «вылавливать» трафик другой сети. Теперь же, разбив сеть на VLAN’ы, мы фактически получили две отдельные сети, связанные между собой роутером, то есть L3 (сетевым уровнем). Весь трафик проходит из одной сети в другую через роутер, а доступ теперь работает только на уровне L3, что значительно облегчает работу администратора.

Тегирование

Тегирование – процесс добавления метки VLAN’a (он же тег) к фреймам трафика.

Как правило, конечные хосты не тегируют трафик (например, компьютеры пользователей). Этим занимаются коммутаторы, стоящие в сети. Более того, конечные хосты и не подозревают о том, что они находятся в таком-то VLAN’е. Строго говоря, трафик в разных VLAN’ах чем-то особенным не отличается.

Если через порт коммутатора может прийти трафик разных VLAN’ов, то коммутатор должен его как-то различать. Для этого каждый кадр должен быть помечен какой-либо меткой.

Наибольшее распространение получила технология, описанная в спецификации IEEE 802.1Q. Также существую и другие проприетарные протоколы (спецификации).

802.1q

802.1q – это открытый стандарт, описывающий процедуру тегирования трафика.

Для этого в тело фрейма помещается тег (рис.2), содержащий информацию о принадлежности к VLAN’у. Т.к. тег помещается в тело, а не в заголовок фрейма, то устройства, не поддерживающие VLAN’ы, пропускают трафик прозрачно, то есть без учета его привязки к VLAN’у.

Размер метки (тега) всего 4 байта. Состоит из 4-х полей (рис.3):

  • Tag Protocol Identifier (TPID, идентификатор протокола тегирования). Размер поля - 16 бит. Указывает на то, какой протокол используется для тегирования. Для 802.1Q используется значение 0x8100.
  • Priority (приоритет). Размер поля - 3 бита. Используется стандартом IEEE 802.1p для задания приоритета передаваемого трафика.
  • Canonical Format Indicator (CFI, индикатор канонического формата). Размер поля - 1 бит. Указывает на формат MAC-адреса. 0 - канонический, 1 - не канонический. CFI используется для совместимости между сетями Ethernet и Token Ring.
  • VLAN Identifier (VID, идентификатор VLAN). Размер поля - 12 бит. Указывает на то, какому VLAN принадлежит фрейм. Диапазон возможных значений - от 0 до 4095.

Если трафик теггируется, или наоборот — метка убирается, то контрольная сумма фрейма пересчитывается(CRC).

Native VLAN(нативный VLAN)

Стандарт 802.1q также предусматривает обозначение VLAN’ом трафика, идущего без тега, т.е. не тегированного. Этот VLAN называется нативный VLAN, по умолчанию это VLAN 1. Это позволяет считать тегированным трафик, который в реальности тегированным не является.

802.1ad

802.1ad -это открытый стандарт (аналогично 802.1q), описывающий двойной тег (рис.4). Также известен как Q-in-Q , или Stacked VLANs . Основное отличие от предыдущего стандарта - это наличие двух VLAN’ов - внешнего и внутреннего, что позволяет разбивать сеть не на 4095 VLAN’ов, а на 4095х4095.

Так же наличие двух меток позволяет организовывать более гибкие и сложные сети оператора. Так же, бывают случаи, когда оператору нужно организовать L2 соединение для двух разных клиентов в двух разных городах, но трафик клиенты посылают трафик с одним и тем же тегом(рис.5).

Клиент-1 и клиент-2 имеют филиалы в городе А и Б, где имеется сеть одного провайдера. Обоим клиентам необходимо связать свои филиалы в двух разных городах. Кроме того, для своих нужд каждый клиент тегирует трафик 1051 VLAN’ом. Соответственно, если провайдер будет пропускать трафик обоих клиентов через себя в одном единственном VLAN’е, авария у одного клиента может отразиться на втором клиенте. Более того, трафик одного клиента сможет перехватить другой клиент. Для того, чтобы изолировать трафик клиентов, оператору проще всего использовать Q-in-Q. Добавив дополнительный тег к каждому отдельному клиенту (например, 3083 к клиенту-1 и 3082 к клиенту-2), оператор изолирует клиентов друг от друга, и клиентам не придется менять тег.

Состояние портов

Порты коммутатора, в зависимости от выполняемой операции с VLAN’ами, делятся на два вида:

  • тегированный (он же транковый порт , trunk , в терминалогии cisco) - порт, который пропускает трафик только с определенным тегом;
  • нетегированный (он же аксесный , access , в терминалогии cisco) - входя в данный порт, нетегированный трафик «обертывается» в тег.

По назначению порта в определённый VLAN существует два подхода:

  • Статическое назначение - когда принадлежность порта VLAN’у задаётся администратором;
  • Динамическое назначение - когда принадлежность порта VLAN’у определяется в ходе работы коммутатора с помощью процедур, описанных в специальных стандартах, таких, например, как 802.1X.

Таблица коммутации

Таблица коммутации при использовании VLAN’ов выглядит следующим образом (ниже приведена таблица коммутации коммутатора, не поддерживающего работу во VLAN’ах):

Порт MAC-адрес
1 A
2 B
3 C

Если же коммутатор поддерживает VLAN’ы, то таблица коммутации будет выглядеть следующим образом:

Порт VLAN MAC-адрес
1 345 A
2 879 B
3 default C

где default — native vlan.

Протоколы, работаю с VLAN

GVRP (его аналог у cisco — VTP) — протокол, работающий на канальном уровне, работа которого сводиться к обмену информации об имеющихся VLAN’ах.

MSTP (PVSTP, PVSTP++ у cisco) — протокол, модификация протокола STP, позволяющее строить «дерево» с учетом различных VLAN’ов.

LLDP (CDP, у cisco) — протокол, служащий для обмена описательной информацией о сети, в целом, кроме информации о VLAN’ах также распространяет информацию и о других настройках.

VLAN (Virtual Local Area Network) - виртуальная локальная вычислительная сеть , является частью большего LAN . Простейший механизм изоляции различных подсетей на Ethernet , WI-FI интерфейсах. Для того, чтобы организовывать VLAN, сетевой коммутатор (Switch (коммутатор)) должен поддерживать технологию VLAN и протокол 802.1q.

Преимущества VLAN:

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

    уменьшает усилия администраторов на создание подсетей;

    уменьшает количество оборудования, так как сети могут быть разделены логически, а не физически;

    улучшает управление различными типами трафика.

Термины:

    Термин untagged : только одна VLAN может получать все пакеты, не отнесённые ни к одной VLAN (в терминологии 3Com, Planet, Zyxel - untagged , в терминологии Cisco - native VLAN ). Свитч будет добавлять метки данной VLAN ко всем принятым кадрам не имеющих никаких меток.

    Транк VLAN - это физический канал, по которому передается несколько VLAN каналов, которые различаются тегами (метками, добавляемыми в пакеты). Транки обычно создаются между «тегированными портами» VLAN-устройств: свитч-свитч или свитч-маршрутизатор. (В документах Cisco термином «транк» также называют объединение нескольких физических каналов в один логический: Link Aggregation, Port Trunking). Маршрутизатор (свитч третьего уровня) выступает в роли магистрального ядра сети (backbone) для сетевого трафика разных VLAN.

    Сказать проще, vlan – это логический канал внутри физического канала (кабеля), а trunk это множество логических каналов (vlan`ов) внутри одного физического канала (кабеля) .

Сети VLAN могут быть определены по:

    Порту (наиболее частое использование). VLAN, базирующиеся на номере порта позволяют определить конкретный порт в VLAN. Порты могут быть определены индивидуально, по группам, по целым рядам и даже в разных коммутаторах через транковый протокол. Это наиболее простой и часто используемый метод определения VLAN. Это наиболее частое применение внедрения VLAN, построенной на портах, когда рабочие станции используют протокол Динамической Настройки TCP/IP (DHCP).

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

    Идентификатору пользователя User ID (очень редко)

VLAN Linux и D-Link DGS-1100-08P

Настройка DGS-1100-08P . Подключимся к нему в первый порт. Присвоим ему IP 10.90.91.2. Создадим 3 VLAN: vlan1 (порт 1 (tagged)) для служебного использования, то есть только для настройки коммутатора, vlan22(порт 1 (tagged); порты 2,3,4 (untagged)), vlan35(порт 1 (tagged); порты 5,6 (untagged)). Порты 7,8 не используются и выключены через меню Port Settings(Speed: Disabled). Укажем, что в дальнейшем управлять D-Link DGS-1100-08P (IP 10.90.91.2) можно управлять только через vlan1, то есть в нашем случае системный администратор должен подключиться в первый порт DGS-1100-08P(При подключении в иной порт - коммутатор не разрешит доступ к 10.90.91.2).

    Создать VLAN с именем vlan22 привязанный к порту сетевой карты eth4. Присвоим ему IP:192.168.122.254. ip link add link eth4 name vlan22 type vlan id 22 ip addr add 192.168.122.254/ 24 dev vlan22 ifconfig vlan22 up

    Служебный vlan только для настройки коммутатора:

    Ip link add link eth4 name vlan44 type vlan id 1 ip addr add 10.90.91.254/ 24 dev vlan44 ifconfig vlan44 up ip link add link eth4 name vlan35 type vlan id 35 ip addr add 192.168.35.254/ 24 dev vlan34 ifconfig vlan35 up

    Параметры созданных vlan смотрим в файлах ls -l / proc/ net/ vlan/ итого 0 -rw------- 1 root root 0 Авг 17 15:06 config -rw------- 1 root root 0 Авг 17 15:06 vlan1 -rw------- 1 root root 0 Авг 17 15:06 vlan22

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

Итак, помните, мы с вами говорили о таком понятии как ? Думаю помните. Так же мы с вами говорили о том, что адреса бывают нескольких видов: .

Исходя из этого сделаем еще одно вводное понятие. Широковещательный домен. Что он из себя представляет?

Если посылается фрейм/пакет, широковещательный (если это фрейм то поле Destination Address все биты равны единицы, или в 16-ом виде MAC адрес будет равен: FF FF FF FF FF FF), то этот фрейм будет переправлен во все порты коммутатора, исключая того, с которого был получен данный фрейм. Это произойдет в случае, когда например коммутатор у нас не управляемый, или если управляемый, но все находятся в одном VLAN (об этом позже).
Вот такой список устройств, который получает эти широковещательные фреймы и называются — широковещательным доменом.

Теперь определимся, а что же такое VLAN ?

VLAN — Virtual Local Area Network, т.е. некая виртуальная сеть. Для чего же она нужна?

VLAN позволяет разделить нам широковещательные домены в одном коммутаторе. Т.е. если у нас есть один коммутатор, мы одни порты отнесем к одному VLAN, другой к другому. И это у нас будут два разный broadcast domen. Конечно же этим не ограничиваются возможности. О них я буду рассказывать дальше, все постепенно.

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

Сразу оговорюсь, что VLAN работают на уровне OSI Layer 2.
Вспомним, когда рассматривали кадр , то никакого поля для VLAN там не было. Как же тогда определить, к какому VLAN относится тот или иной фрейм?

Существует несколько стандартов.

1. IEEE 802.1Q — этот стандарт является открытым. Этот стандарт помечает тот или иной фрейм, который «привязан» к какому-то VLAN тэгированием.
Тэгирование это функция коммутатора (или любого другого устройства, которое «понимает» VLAN), которая вставляет в фрейм ethernet некий тэг, состоящий из 4 байт. Процедура тэгирования не меняет данные заголовка, таким образом, оборудование, которое не поддерживает технологию VLAN, может без проблем передавать такой фрейм дальше по сети, сохраняя тэг.

Вот так будет выглядеть фрейм, после вставки тэга VLAN.

Исходя их рисунка, видим, что VLAN tag состоит из 4 полей, опишим их:

— 2 байта Tag Protocol Identifier (TPID) — это идентификатор протокола, в нашем случае это 802.1Q, в 16-ом виде это поле будет выглядеть как: 0x8100.

— Priority — поле для задания приоритета по стандарту 802.1p (о нем в следующих статьях). Размер этого поля составляет 3 бита (8 значений 0-7).

— Canonical Format Indicator (CFI). Индикатор канонического формата, размер этого поля составляет 1 бит. Это поле указывает на формат mac адреса (1 — кононический, 0 не канонический.)

— VLAN ID, собственно это то, ради чего мы сегодня собрались 🙂 Идентификатор VLAN. Размер поля 12 бит, может принимать значение от 0 до 4095.

При использовании VLAN (тэгирования) по стандарту 802.1Q вносятся изменения в фрейм, следовательно необходимо пересчитать FCS значение, что собственно и делается коммутатором.

В стандарте 802.1Q есть такое понятие как Native VLAN, по умолчанию Native VLAN ID равен единицы (можно менять), Native VLAN характеризуется тем, что этот VLAN не тэгируется.

2. Inter-switch-link (ISL). Протокол, разработанный компанией Cisco и может использоваться только на своем оборудовании.
Этот протокол был разработан еще до принятия 802.1Q.
В настоящее время ISL уже не поддерживается на новом оборудовании, но тем не менее, вы можете столкнуться с работой этого протокола, поэтому нам необходимо с ним ознакомиться.

В отличии от 802.1Q, где осуществлялось простое тэгирование кадра (вставка 4 байт внутрь фрейма), здесь используется технология инкапсуляции, тоесть добавляется некий заголовок, в котором содержится информация о VLAN. VLAN ISL, в отличии от 802.1Q поддерживает до 1000 VLAN.

Рассмотрим фрейм в графическом виде, как же выглядит эта инкапсуляция.

Здесь мы можем сразу увидеть первый и пожалуй самый основной недостаток ISL — это увеличение кадра на 30 байт (26 байт заголовок и 4 байта FCS).

Рассмотрим ISL Header более подробно, посмотрим, что же там хранится в стольки то байтах!

  • Destination Address (DA) — адрес получателя, здесь указывается специальный мультикаст адрес, который и говорит о том, что используется кадр инкапсулирован с помощью ISL. Мультикаст адрес может быть 0x01-00-0C-00-00 или 0x03-00-0c-00-00.
  • Type — длина поля 4 бита, указывает протокол, который инкапсулирован в фрейм. Может принимать несколько значений:

0000 — Ethernet
0001 — Token-Ring
0010 — FDDI
0011 — ATM

В нашем случае так как мы рассматриваем Ethernet , то это значение будет равен всем 0.

  • USER — некий такой «урезанный» аналог поля Priority в 802.1Q, служит для задания приоритета кадру. Хоть и поле занимает 4 бита, может принимать 4 значения (в 802.1Q — 8).
  • Source Address (SA) — адрес источника, на это место подставляется значение MAC адреса порта, с которого был отправлен данный инкапсулированный фрейм.
  • LEN — длина фрейма. Здесь не учитываются такие поля как: DA,TYPE,USER,SA,LEN,FCS. Таким образом получается что это значение равно инкапсулированному кадру — 18 байт.
  • AAAA03 (SNAP) — SNAP и LLC (данное поле содержит значение AAAA03).
  • HSA — High Bits of Source Address — 3 старшие байта MAC адреса (помним что в этих байтах содержится код производителя), для Cisco это 00-00-0C
  • VLAN — наконец-то добрались до самого главного поля. Здесь собственно указывается идентификатор VLAN. Поле имеет размер в 15 бит.
  • BPDU — Bridge Protocol Data Unit и Cisco Discovery Protocol. Поле для протоколов BPDU и CDP. Что это и для чего, мы познакомимся в следующих статьях.
  • INDX — Index, указывается индекс порта отправителя, используется в диагностических целях.
  • RES — Reserved for Token Ring and FDDI. Резервное поле для Token Ring и FDDI. Поле имеет 16 битный размер. Если используется протокол ethernet то в это поле помещаются все нули.
  • Encapsulated Frame — это обычный фрейм который был инкапсулирован. В данном фрейме есть сови собственные поля, такие как DA,SA, LEN, FCS и так далее.
  • FCS — собственный ISL FCS (так как кадр полностью меняется, нужна новая проверка фрейма, последние 4 байта для этого и предназначены).

Можно сделать некоторые выводы, в пользую 802.1Q.

  1. Тэгирование добавляет к кадру всего 4 байта, в отличие от ISL (30 байт).
  2. 802.1Q поддерживается на любом оборудовании, которое поддерживает VLAN, тогда как ISL работает только на устройствах Cisco, и далеко не всех.

В этой статье мы кратко ознакомились с понятием VLAN. Дальше будем разбираться в деталях.

Функциональные возможности современных коммутаторов позволяют организовывать виртуальные сети (VLAN-сетей) для создания гибкой сетевой инфраструктуры. В настоящее время VLAN-сети еще не получили широкого распространения, особенно в небольших корпоративных сетях. Во многом это связано с тем, что конфигурирование коммутаторов для организации VLAN-сетей весьма непростое дело, особенно если инфраструктура сети включает несколько коммутаторов. Кроме того, конфигурирование коммутаторов при создании VLAN-сетей, равно как и настройка других функциональных возможностей, может значительно отличаться у коммутаторов от различных фирм, вследствие чего известные производители сетевого оборудования, такие как Cisco, HP, 3Com, Allied Telesyn, Avaya, устраивают специальные курсы по работе с их оборудованием. Понятно, что упрощать конфигурирование своего оборудования, делать этот процесс интуитивно понятным и простым и уж тем более вырабатывать общие соглашения и единый интерфейс по настройке оборудования от разных производителей — явно не в интересах самих производителей, однако пользователи вполне способны самостоятельно разобраться во многих возможностях коммутаторов. Поэтому в данной статье мы рассмотрим возможности современных коммутаторов по организации виртуальных сетей и расскажем о базовых принципах их конфигурирования.

Назначение виртуальных сетей

иртуальной сетью VLAN (Virtual LAN) называют группу узлов сети, образующих домен широковещательного трафика (Broadcast Domain). Такое определение вполне корректно, но малоинформативно, так что попытаемся трактовать понятие виртуальной сети несколько иначе.

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

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

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

Типы виртуальных сетей

о появления общепризнанного стандарта по организации виртуальных сетей IEEE 802.1Q каждый производитель сетевого оборудования использовал собственную технологию организации VLAN. Такой подход имел существенный недостаток — технологии одного производителя были несовместимы с технологиями других фирм. Поэтому при построении виртуальных сетей на базе нескольких коммутаторов необходимо было использовать только оборудование от одного производителя. Принятие стандарта виртуальных сетей IEEE 802.1Q позволило преодолеть проблему несовместимости, однако до сих пор существуют коммутаторы, которые либо не поддерживают стандарт IEEE 802.1Q, либо, кроме возможности организации виртуальных сетей по стандарту IEEE 802.1Q, предусматривают и иные технологии.

Существует несколько способов построения виртуальных сетей, но сегодня в коммутаторах главным образом реализуется технология группировки портов или используется спецификация IEEE 802.1Q.

Виртуальные сети на основе группировки портов

иртуальные сети на основе группировки портов (Port-based) обычно реализуются в так называемых Smart-коммутаторах или в управляемых коммутаторах — как дополнение к возможности организации VLAN на базе стандарта IEEE 802.1Q.

Данный способ создания виртуальных сетей достаточно прост и, как правило, не вызывает проблем. Каждый порт коммутатора приписывается к той или иной виртуальной сети, то есть порты группируются в виртуальные сети. Решение о продвижении сетевого пакета в этой сети основывается на MAC-адресе получателя и ассоциированного с ним порта. Если к порту, которому назначена принадлежность к определенной виртуальной сети, например к VLAN#1, подключить ПК пользователя, то этот ПК автоматически будет принадлежать сети VLAN#1. Если же к данному порту подключается коммутатор, то все порты этого коммутатора также будут принадлежать VLAN#1 (рис. 1).

Рис. 1. Виртуальные сети, построенные с использованием технологии группировки портов на базе одного коммутатора

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

Рис. 2. Создание разделяемого ресурса между несколькими виртуальными сетями с использованием технологии группировки портов

Описываемая технология обладает рядом преимуществ в сравнении с использованием стандарта IEEE 802.1Q, но имеет и свои недостатки.

К достоинствам можно отнести простоту конфигурации виртуальных сетей. Кроме того, при этом не требуется, чтобы конечные узлы сети поддерживали стандарт IEEE 802.1Q, а поскольку большинство сетевых контроллеров Ethernet не поддерживают этот стандарт, то организация сети на основе группировки портов может оказаться проще. К тому же при подобной организации виртуальных сетей они могут пересекаться, что позволяет создавать разделяемые сетевые ресурсы.

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

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

Рис. 3. Реализация виртуальных сетей на основе группировки портов при использовании двух коммутаторов

Пусть необходимо, чтобы часть портов первого и второго коммутаторов относилась к VLAN#1, а другая часть — к VLAN#2. Для этого нужно, во-первых, чтобы оба коммутатора позволяли не только организовывать виртуальные сети на основе группировки портов, но и распространять такие сети на несколько коммутаторов (подобная функция реализована далеко не у всех коммутаторов), во-вторых, чтобы между коммутаторами было установлено столько физических соединений, сколько создано виртуальных сетей. Рассмотрим два шестипортовых коммутатора. Пусть в первом коммутаторе порты 1 и 2 относятся к VLAN#1, а порты 3 и 4 — к VLAN#2; во втором коммутаторе порты 1, 2 и 3 относятся к VLAN#1, а порт 4 — к VLAN#2. Чтобы пользователи VLAN#1 первого коммутатора могли общаться с пользователями VLAN#1 второго коммутатора, эти коммутаторы должны быть связаны между собой портами, относящимися к VLAN#1 (например, порт 5 первого и второго коммутаторов необходимо приписать к VLAN#1). Аналогично, для общения пользователей VLAN#2 первого коммутатора с пользователями VLAN#2 второго коммутатора следует связать эти коммутаторы через порты, приписанные к VLAN#2 (это могут быть порты 6 на обоих коммутаторах). Таким образом, проблема масштабируемости виртуальных сетей на основе технологии группировки портов решается (правда, не во всех случаях) за счет установления избыточных связей между коммутаторами.

Виртуальные сети на основе стандарта IEEE 802.1Q

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

К кадру Ethernet добавляется метка (Tag) длиной 4 байта — такие кадры называют кадрами с метками (Tagged frame). Дополнительные биты содержат информацию по принадлежности кадра Ethernet к виртуальной сети и о его приоритете (рис. 4).

Добавляемая метка кадра включает в себя двухбайтовое поле TPID (Tag Protocol Identifier) и двухбайтовое поле TCI (Tag Control Information). Поле TCI, в свою очередь, состоит из полей Priority, CFI и VID. Поле Priotity длиной 3 бита задает восемь возможных уровней приоритета кадра. Поле VID (VLAN ID) длиной 12 бит является идентификатором виртуальной сети. Эти 12 бит позволяют определить 4096 различных виртуальных сетей, однако идентификаторы 0 и 4095 зарезервированы для специального использования, поэтому всего в стандарте 802.1Q возможно определить 4094 виртуальные сети. Поле CFI (Canonical Format Indicator) длиной 1 бит зарезервировано для обозначения кадров сетей других типов (Token Ring, FDDI), передаваемых по магистрали Ethernet, и для кадров Ethernet всегда равно 0.

Изменение формата кадра Ethernet приводит к тому, что сетевые устройства, не поддерживающие стандарт IEEE 802.1Q (такие устройства называют Tag-unaware), не могут работать с кадрами, в которые вставлены метки, а сегодня подавляющее большинство сетевых устройств (в частности, сетевые Ethernet-контроллеры конечных узлов сети) не поддерживают этот стандарт. Поэтому для обеспечения совместимости c устройствами, поддерживающими стандарт IEEE 802.1Q (Tag-aware-устройства), коммутаторы стандарта IEEE 802.1Q должны поддерживать как традиционные Ethernet-кадры, то есть кадры без меток (Untagged), так и кадры с метками (Tagged).

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

Правила входящего порта (Ingress rules)

Рассмотрим более подробно процесс передачи кадра через коммутатор (рис. 5). По отношению к трафику каждый порт коммутатора может быть как входным, так и выходным. После того как кадр принят входным портом коммутатора, решение о его дальнейшей обработке принимается на основании предопределенных правил входного порта (Ingress rules). Поскольку принимаемый кадр может относиться как к типу Tagged, так и к типу Untagged, то правилами входного порта определяется, какие типы кадров должны приниматься портом, а какие отфильтровываться. Возможны следующие варианты: прием только кадров типа Tagged, прием только кадров типа Untagged, прием кадров обоих типов. По умолчанию для всех коммутаторов правилами входного порта устанавливается возможность приема кадров обоих типов.

Рис. 5. Процесс продвижения кадров в коммутаторе, совместимом со стандартом IEEE 802.1Q

Если правилами входного порта определено, что он может принимать кадр Tagged, в котором имеется информация о принадлежности к конкретной виртуальной сети (VID), то этот кадр передается без изменения. А если определена возможность работы с кадрами типа Untagged, в которых не содержится информации о принадлежности к виртуальной сети, то прежде всего такой кадр преобразуется входным портом коммутатора к типу Tagged (напомним, что внутри коммутатора все кадры должны иметь метки о принадлежности к виртуальной сети).

Чтобы такое преобразование стало возможным, каждому порту коммутатора присваивается уникальный PVID (Port VLAN Identifier), определяющий принадлежность порта к конкретной виртуальной сети внутри коммутатора (по умолчанию все порты коммутатора имеют одинаковый идентификатор PVID=1). Кадр типа Untagged преобразуется к типу Tagged, для чего дополняется меткой VID (рис. 6). Значение поля VID входящего Untagged-кадра устанавливается равным значению PVID входящего порта, то есть все входящие Untagged-кадры автоматически приписываются к той виртуальной сети внутри коммутатора, к которой принадлежит входящий порт.

Правила продвижения пакетов (Forwarding Process)

После того как все входящие кадры отфильтрованы, преобразованы или оставлены без изменения в соответствии в правилами входящего порта, решение об их передаче к выходному порту основывается на предопределенных правилах продвижения пакетов. Правило продвижения пакетов внутри коммутатора заключается в том, что пакеты могут передаваться только между портами, ассоциированными с одной виртуальной сетью. Как уже отмечалось, каждому порту присваивается идентификатор PVID, который используется для преобразования принимаемых Untagged-кадров, а также для определения принадлежности порта к виртуальной сети внутри коммутатора с идентификатором VID=PVID. Таким образом, порты с одинаковыми идентификаторами внутри одного коммутатора ассоциируются с одной виртуальной сетью. Если виртуальная сеть строится на базе одного коммутатора, то идентификатора порта PVID, определяющего его принадлежность к виртуальной сети, вполне достаточно. Правда, создаваемые таким образом сети не могут перекрываться, поскольку каждому порту коммутатора соответствует только один идентификатор. В этом смысле создаваемые виртуальные сети не обладали бы такой гибкостью, как виртуальные сети на основе портов. Однако стандарт IEEE 802.1Q с самого начала задумывался для построения масштабируемой инфраструктуры виртуальных сетей, включающей множество коммутаторов, и в этом состоит его главное преимущество по сравнению с технологией образования VLAN на основе портов. Но для того, чтобы расширить сеть за пределы одного коммутатора, одних идентификаторов портов недостаточно, поэтому каждый порт может быть ассоциирован с несколькими виртуальными сетями, имеющими различные идентификаторы VID.

Если адрес назначения пакета соответствует порту коммутатора, который принадлежит к той же виртуальной сети, что и сам пакет (могут совпадать VID пакета и VID порта или VID пакета и PVID порта), то такой пакет может быть передан. Если же передаваемый кадр принадлежит к виртуальной сети, с которой выходной порт никак не связан (VID пакета не соответствует PVID/VID порта), то кадр не может быть передан и отбрасывается.

Правила выходного порта (Egress rules)

После того как кадры внутри коммутатора переданы на выходной порт, их дальнейшее преобразование зависит от правил выходного порта. Как уже говорилось, трафик внутри коммутатора создается только пакетами типа Tagged, а входящий и исходящий трафики могут быть образованы пакетами обоих типов. Соответственно правилами выходного порта (правило контроля метки — Tag Control) определяется, следует ли преобразовывать кадры Tagged к формату Untagged.

Каждый порт коммутатора может быть сконфигурирован как Tagged или Untagged Port. Если выходной порт определен как Tagged Port, то исходящий трафик будет создаваться кадрами типа Tagged с информацией о принадлежности к виртуальной сети. Следовательно, выходной порт не меняет тип кадров, оставляя их такими же, какими они были внутри коммутатора. К указанному порту может быть подсоединено только устройство, совместимое со стандартом IEEE 802.1Q, например коммутатор или сервер с сетевой картой, поддерживающей работу с виртуальными сетями данного стандарта.

Если же выходной порт коммутатора определен как Untagged Port, то все исходящие кадры преобразуются к типу Untagged, то есть из них удаляется дополнительная информация о принадлежности к виртуальной сети. К такому порту можно подключать любое сетевое устройство, в том числе коммутатор, не совместимый со стандартом IEEE 802.1Q, или ПК конечных клиентов, сетевые карты которых не поддерживают работу с виртуальными сетями этого стандарта.

Конфигурирование виртуальных сетей стандарта IEEE 802.1Q

Рассмотрим конкретные примеры конфигурирования виртуальных сетей стандарта IEEE 802.1Q.

Чтобы сформировать VLAN-сеть в соответствии со стандартом IEEE 802.1Q, необходимо проделать следующие действия:

  • задать имя виртуальной сети (например, VLAN#1) и определить ее идентификатор (VID);
  • выбрать порты, которые будут относиться к данной виртуальной сети;
  • задать правила входных портов виртуальной сети (возможность работы с кадрами всех типов, только с кадрами Untagged или только с кадрами Tagged);
  • установить одинаковые идентификаторы PVID портов, входящих в виртуальную сеть;
  • задать для каждого порта виртуальной сети правила выходного порта, сконфигурировав их как Tagged Port или Untagged Port.

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

Таблица 1. Задание характеристик портов при создании виртуальных сетей на базе одного коммутатора

Примеры построения VLAN-сетей на основе коммутаторов, совместимых со стандартом IEEE 802.1Q

А теперь рассмотрим типичные примеры построения виртуальных сетей на основе коммутаторов, поддерживающих стандарт IEEE 802.1Q.

Если имеется всего один коммутатор, к портам которого подключаются компьютеры конечных пользователей, то для создания полностью изолированных друг от друга виртуальных сетей все порты должны быть объявлены как Untagget Ports для обеспечения совместимости с сетевыми Ethernet-контроллерами клиентов. Принадлежность узлов сети к той или иной VLAN определяется заданием идентификатора порта PVID.

Возьмем восьмипортовый коммутатор, на базе которого создаются три изолированные виртуальные сети VLAN#1, VLAN#2 и VLAN#3 (рис. 7). Первому и второму портам коммутатора присваивается идентификатор PVID=1. Поскольку идентификаторы этих портов совпадают с идентификатором первой виртуальной сети (PVID=VID), то данные порты образуют виртуальную сеть VLAN#1 (табл. 1). Если портам 3, 5 и 6 присвоить PVID=2 (совпадает с идентификатором VID VLAN#2), то вторая виртуальная сеть будет образована портами 3, 4 и 8. Аналогично формируется и VLAN#3 на базе портов 5, 6 и 7. Для обеспечения совместимости с конечным оборудованием (предполагается, что к портам коммутатора подключаются ПК клиентов сети, сетевые карты которых не совместимы со стандартом IEEE 802.1Q) все порты необходимо сконфигурировать как Untagged.

Рис. 7. Организация трех сетей VLAN по стандарту IEEE 802.1Q на основе одного коммутатора

Если инфраструктура сети включает несколько коммутаторов, поддерживающих стандарт IEEE 802.1Q, то для связи коммутаторов друг с другом необходимо использовать несколько иной принцип конфигурирования. Рассмотрим два шестипортовых коммутатора, которые поддерживают стандарт IEEE 802.1Q и на основе которых необходимо сконфигурировать три изолированные друг от друга виртуальные сети VLAN#1, VLAN#2 и VLAN#3.

Пусть к первой виртуальной сети относятся клиенты, подключенные к портам 1 и 2 первого коммутатора и к портам 5 и 6 второго коммутатора. К сети VLAN#2 относятся клиенты, подключенные к порту 3 первого коммутатора и порту 1 второго коммутатора, а к сети VLAN#3 относятся клиенты, подключенные к портам 4 и 5 первого коммутатора и портам 2 и 3 второго коммутатора. Порт 6 первого коммутатора и порт 4 второго коммутатора используются для связи коммутаторов друг с другом (рис. 8).

Рис. 8. Организация трех VLAN-сетей по стандарту IEEE 802.1Q на основе двух коммутаторов

Чтобы сконфигурировать указанные виртуальные сети, необходимо прежде всего определить на каждом из коммутаторов по три виртуальные сети VLAN#1, VLAN#2 и VLAN#3, задав их идентификаторы (VID=1 для VLAN#1, VID=2 для VLAN#2 и VID=3 для VLAN#3).

На первом коммутаторе порты 1 и 2 должны входить в состав VLAN#1, для чего этим портам присваивается PVID=1. Порт 2 первого коммутатора необходимо приписать к VLAN#2, для чего идентификатору порта присваивается значение PVID=2. Аналогично, для портов 5 и 6 первого коммутатора устанавливаются идентификаторы PVID=3, так как эти порты относятся к VLAN#3. Все указанные порты первого коммутатора должны быть сконфигурированы как Untagged Port для обеспечения совместимости с сетевыми картами клиентов.

Порт 4 первого коммутатора используется для связи со вторым коммутатором и должен передавать кадры всех трех виртуальных сетей без изменения второму коммутатору. Поэтому его необходимо сконфигурировать как Tagged Port и включить в состав всех трех виртуальных сетей (ассоциировать с VID=1, VID=2 и VID=3). При этом идентификатор порта не имеет значения и может быть любым (в нашем случае PVID=4).

Аналогичная процедура конфигурации виртуальных сетей осуществляется и на втором коммутаторе. Конфигурации портов двух коммутаторов представлены в табл. 2.

Таблица 2. Задание характеристик портов при создании виртуальных сетей на основе двух коммутаторов

Автоматическая регистрация в виртуальных сетях стандарта IEEE 802.1Q

ассмотренные примеры виртуальных сетей относились к так называемым статическим виртуальным сетям (Static VLAN), в которых все порты настраиваются вручную, что хотя и весьма наглядно, но при развитой сетевой инфраструктуре является довольно рутинным делом. Кроме того, при каждом перемещении пользователей в пределах сети приходится производить перенастройку сети с целью сохранения их членства в заданных виртуальных сетях, а это, конечно, крайне нежелательно.

Существует и альтернативный способ конфигурирования виртуальных сетей, а создаваемые при этом сети называются динамическими виртуальными сетями (Dynamic VLAN). В таких сетях пользователи могут автоматически регистрироваться в сети VLAN, для чего служит специальный протокол регистрации GVRP (GARP VLAN Registration Protocol). Этот протокол определяет способ, посредством которого коммутаторы обмениваются информацией о сети VLAN, чтобы автоматически зарегистрировать членов VLAN на портах во всей сети.

Все коммутаторы, поддерживающие функцию GVRP, могут динамически получать от других коммутаторов (и, следовательно, передавать другим коммутаторам) информацию VLAN о регистрации, включающую данные об элементах текущей VLAN, о порте, через который можно осуществлять доступ к элементам VLAN и т.д. Для связи одного коммутатора с другим в протоколе GVRP используется сообщения GVRP BPDU (GVRP Bridge Protocol Data Units). Любое устройство с поддержкой протокола GVPR, получающее такое сообщение, может динамически подсоединяться к той сети VLAN, о которой оно оповещено.

И коммутаторах, позволяющая на одном физическом сетевом интерфейсе (Ethernet, Wi-Fi интерфейсе) создать несколько виртуальных локальных сетей. VLAN используют для создания логической топологии сети, которая никак не зависит от физической топологии.

Примеры использования VLAN

    Объединение в единую сеть компьютеров, подключенных к разным коммутаторам .
    Допустим, у вас есть компьютеры, которые подключены к разным свитчам, но их нужно объединить в одну сеть. Одни компьютеры мы объединим в виртуальную локальную сеть VLAN 1, а другие — в сеть VLAN 2. Благодаря функции VLAN компьютеры в каждой виртуальной сети будут работать, словно подключены к одному и тому же свитчу. Компьютеры из разных виртуальных сетей VLAN 1 и VLAN 2 будут невидимы друг для друга.

    Разделение в разные подсети компьютеров, подключенных к одному коммутатору .
    На рисунке компьютеры физически подключены к одному свитчу, но разделены в разные виртуальные сети VLAN 1 и VLAN 2. Компьютеры из разных виртуальных подсетей будут невидимы друг для друга.

    Разделение гостевой Wi-Fi сети и Wi-Fi сети предприятия .
    На рисунке к роутеру подключена физически одна Wi-Fi точка доступа . На точке созданы две виртуальные Wi-Fi точки с названиями HotSpot и Office. К HotSpot будут подключаться по Wi-Fi гостевые ноутбуки для доступа к интернету, а к Office — ноутбуки предприятия. В целях безопасности необходимо, чтобы гостевые ноутбуки не имели доступ к сети предприятия. Для этого компьютеры предприятия и виртуальная Wi-Fi точка Office объединены в виртуальную локальную сеть VLAN 1, а гостевые ноутбуки будут находиться в виртуальной сети VLAN 2. Гостевые ноутбуки из сети VLAN 2 не будут иметь доступ к сети предприятия VLAN 1.

Достоинства использования VLAN

    Гибкое разделение устройств на группы
    Как правило, одному VLAN соответствует одна подсеть. Компьютеры, находящиеся в разных VLAN, будут изолированы друг от друга. Также можно объединить в одну виртуальную сеть компьютеры, подключенные к разным коммутаторам.

    Уменьшение широковещательного трафика в сети
    Каждый VLAN представляет отдельный широковещательный домен. Широковещательный трафик не будет транслироваться между разными VLAN. Если на разных коммутаторах настроить один и тот же VLAN, то порты разных коммутаторов будут образовывать один широковещательный домен.

    Увеличение безопасности и управляемости сети
    В сети, разбитой на виртуальные подсети, удобно применять политики и правила безопасности для каждого VLAN. Политика будет применена к целой подсети, а не к отдельному устройству.

    Уменьшение количества оборудования и сетевого кабеля
    Для создания новой виртуальной локальной сети не требуется покупка коммутатора и прокладка сетевого кабеля. Однако вы должны использовать более дорогие управляемые коммутаторы с поддержкой VLAN.

Статьи по теме: