VLAN (от англ. Virtual Local Area Network) – логическая («виртуальная») локальная компьютерная сеть, имеющая те же свойства, что и физическая локальная сеть.
Проще говоря, VLAN – это логический канал внутри физического.
Данная технология позволяет выполнять две противоположные задачи:
1) группировать устройства на канальном уровне в один VLAN (т.е. объединять в одну виртуальную сеть устройства, которые физически могут быть подключены к разным сетевым коммутаторам);
2) разграничивать устройства (находящиеся в разных VLAN’ах), подключенные к одному коммутатору.
Применение данной технологии дает нам следующие преимущества:
группировка устройств (к примеру, серверов) по функционалу;
уменьшение количества широковещательного трафика в сети, т.к. каждый VLAN — это отдельный широковещательный домен;
увеличение безопасности и управляемости сети (как следствие первых двух преимуществ).
Приведём простой пример: допустим, у нас есть две локальные сети, соединенные одним коммутатором и выходящие в интернет через один роутер. Если не разграничить сети по VLAN’ам, то, во-первых, сетевая атака в одной сети будет оказывать влияние на вторую сеть, во-вторых, с каждой сети можно будет «вылавливать» трафик другой сети. Теперь же, разбив сеть на VLAN’ы, мы фактически получили две отдельные сети, связанные между собой роутером, то есть L3 (сетевым уровнем). Весь трафик проходит из одной сети в другую через роутер, а доступ теперь работает только на уровне L3, что значительно облегчает работу администратора.

Тегирование
Тегирование – процесс добавления метки VLAN’a (он же тег) к фреймам трафика.
Как правило, конечные хосты не тегируют трафик (например, компьютеры пользователей). Этим занимаются коммутаторы, стоящие в сети. Более того, конечные хосты и не подозревают о том, что они находятся в таком-то VLAN’е. Строго говоря, трафик в разных VLAN’ах чем-то особенным не отличается.
Если через порт коммутатора может прийти трафик разных VLAN’ов, то коммутатор должен его как-то различать. Для этого каждый кадр должен быть помечен какой-либо меткой. Наибольшее распространение получила технология, описанная в спецификации IEEE 802.1Q.
802.1q
802.1q – это открытый стандарт, описывающий процедуру тегирования трафика.
Для этого в тело фрейма помещается тег, содержащий информацию о принадлежности к VLAN’у. Т.к. тег помещается в тело, а не в заголовок фрейма, то устройства, не поддерживающие VLAN’ы, пропускают трафик прозрачно, то есть без учета его привязки к VLAN’у.

Размер метки (тега) всего 4 байта. Состоит из 4-х полей:
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.

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

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

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

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

где default — native vlan.
Источник...