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

VLAN позволяет сегментировать физическую сеть на более мелкие логические сети на основе не только физического расположения, но и таких факторов, как отдел, проект или приложение.
Когда коммутаторы соединены друг с другом внутри сетевой инфраструктуры, передаваемые по этим каналам кадры Ethernet должны сохранять информацию о VLAN, к которой они принадлежат. Для этого используется механизм тегирования VLAN.
В этой статье я сравню и разберу тегированные, нетегированные и Native VLAN в Ethernet-сетях. Давайте начнем!
Магистральные порты
В большинстве корпоративных сетей любой коммутатор второго уровня имеет несколько настроенных VLAN. Каждый порт, который подключается к конечному устройству (так называемый access-порт), привязан к определенному VLAN. При этом access-порт может принадлежать только одному VLAN.
Коммутаторы, соединенные друг с другом в такой сети, должны подключаться через trunk-порт. Порт настраивается таким образом, чтобы он мог передавать кадры из нескольких VLAN.
Ниже представлена схема, иллюстрирующая этот процесс:

Устройства в VLAN 5 могут обмениваться данными между собой на канальном уровне без необходимости использования маршрутизатора. Аналогично, устройства в VLAN 6 и VLAN 7 также могут взаимодействовать с устройствами внутри своей VLAN.
Для того чтобы это стало возможным, соединение между коммутаторами должно обеспечивать передачу информации о VLAN в каждом Ethernet-кадре. Это возможно только при использовании портов, настроенных в режиме транка, так как они поддерживают передачу кадров из нескольких VLAN.
Что такое тегированные и нетегированные кадры?
По определению, кадры, проходящие через транковый порт на канальном уровне, всегда маркируются. Если Laptop 1 отправляет кадр на PC1, то при выходе из транкового порта на SW1 к кадру будет добавлен тег с идентификатором VLAN, равным 5. Такой кадр называется тегированным кадром.
На следующей иллюстрации показана разница между обычным Ethernet-кадром (нетегированным), который передается через access-порт, и тегированным Ethernet-кадром, который ожидается на транковом порту:

Обычный нетегированный кадр Ethernet

Тегированный кадр Ethernet
Обратите внимание, что в тегированном Ethernet-кадре появляется дополнительное поле, которое состоит из четырех подполей. Мы не будем подробно разбирать все эти подполя, но уделим внимание подполю VLAN ID. Это 12-битное поле, которое содержит значение идентификатора VLAN, к которому принадлежит данный кадр.
Рассмотрим наш исходный пример: представьте, что Laptop 1 отправляет кадр на PC 1. Этот кадр выходит из Laptop 1 как нетегированный Ethernet-кадр и попадает на access-порт коммутатора SW1.
Этот access-порт настроен на VLAN 5, и когда кадр выходит через транковый порт SW1, ему добавляется VLAN-тег с идентификатором 5. Это показано на следующей диаграмме:

Нетегированные и тегированные кадры в коммуникации между Laptop 1 и PC 1
Тегированный кадр достигает trunk-порта на SW2, и при входе тег считывается, удаляется, и кадр размещается в VLAN 5. Когда кадр выходит через access-порт, подключенный к PC1, вы снова видите, что кадр не имеет тега.
Обратите внимание, что тегированные кадры существуют только на транковом соединении. Теги добавляются при выходе и удаляются при входе.
Из этого примера становится очевидно, что цель тегов в Ethernet-кадрах — позволить коммутаторам отправлять и получать кадры от всех настроенных VLAN через одно физическое соединение.
Если бы этого не было, пришлось бы конфигурировать несколько access-портов с отдельными физическими соединениями между коммутаторами, по одному для каждого настроенного VLAN. Конечно, это не масштабируемо, неэффективно и неудобно, поэтому используются транки и тегированные кадры.
Процесс тегирования Ethernet-кадров стандартизирован в стандарте IEEE 802.1Q, и используется как коммутаторами Cisco, так и коммутаторами других производителей.
Что такое Native VLAN?
Теперь возникает интересная ситуация с транковыми портами. Что произойдет, если на транковый порт поступит нетегированный кадр? Помните, что транковый порт ожидает увидеть VLAN ID в теге, чтобы он знал, к какому VLAN следует отнести кадр. Если тега нет, коммутатор не будет знать, к какому VLAN относится кадр. И вот тут на помощь приходит Native VLAN. Транковые порты настроены с параметром, называемым native VLAN.
Если на транковый порт поступает нетегированный кадр, он будет отнесен к настроенному native VLAN. По умолчанию, на коммутаторах Cisco native VLAN — это VLAN 1. Однако эту настройку можно изменить, и на самом деле, это является лучшей практикой.
Но возникает вопрос: при каких обстоятельствах можно получить нетегированный кадр на транковом порту? Рассмотрим такой сценарий:

Вот сценарий, когда нетегированные кадры могут попасть на транковый порт
Мы добавили хаб между двумя коммутаторами. Напоминаю, что хаб передает трафик на все свои порты. Если Laptop 2 отправляет кадры на хаб, хаб их регенерирует и отправляет на оба транковых порта на обоих коммутаторах, что приводит к попаданию нетегированных кадров на транковый порт.
Конечно, такая топология не должна использоваться при проектировании сети. Тем не менее, это демонстрирует, как плохо спроектированная сеть или случайное подключение могут привести к подобной ситуации.
В некоторых допустимых случаях на транковый порт могут попасть нетегированные кадры, особенно когда речь идет о протоколах управления. Один из таких случаев — это использование протокола DTP, который использует предустановленный native VLAN для связи между коммутаторами.
В отличие от DTP, другие протоколы, такие как STP, VTP, CDP и PAgP, всегда используют нетегированные сообщения. Интересно, что эти протоколы всегда используют VLAN 1, независимо от того, что настроен другой native VLAN.
Таблица сравнения тегированных, нетегированных и Native VLAN
Ниже приведена таблица, которая сравнивает концепции тегированных, нетегированных и native VLAN, с объяснением каждой из них.
Характеристика | Tagged VLAN | Untagged VLAN | Native VLAN |
Идентификатор VLAN | Да | Нет | Обычно без тегов, но могут быть помечены при настройке в таком режиме. |
Связанность | Несколько VLANs | Единый VLAN | Единый VLAN |
Использование идентификатора VLAN | Использует идентификатор VLAN для определения принадлежности пакета к определенному VLAN. | Не используется идентификатор VLAN, предполагая, что все пакеты принадлежат связанной VLAN. | Не помечаются пакеты идентификатором native VLAN (если они непомечены), в противном случае используется назначенный идентификатор VLAN. |
Формат кадра | Идентификатор VLAN добавляется к кадру. | Кадр отправляется “как есть”, без какого-либо идентификатора VLAN. | Обычно кадр отправляется “как есть”, но его также можно отправить с идентификатором VLAN, если так настроено. |
Использование | На магистральных соединениях, соединяющих коммутаторы, или соединяющихся с устройствами, поддерживающими VLAN. | Обычно в доступных соединениях, соединяющихся с устройствами, не понимающими VLAN. | Используется для непомеченного трафика по магистральному соединению. |
Коммутационная связь | Может взаимодействовать через коммутаторы. | Обычно не взаимодействует через коммутаторы. | Может взаимодействовать через коммутаторы. |
Заключение
В этой статье мы рассмотрели ключевые различия между тегированными, нетегированными и native VLAN в Ethernet-сетях. Мы выяснили, как тегирование позволяет эффективно управлять несколькими VLAN через один физический канал, а также роль native VLAN в обработке нетегированных кадров. Понимание этих концепций помогает создавать более гибкие и масштабируемые сетевые решения, минимизируя ошибки и повышая производительность сетевой инфраструктуры.