Теория: VLAN — виртуальные локальные сети
Как разбить один физический коммутатор на несколько изолированных логических сетей. Прочитайте материал, а затем пройдите тест — следующий пункт курса откроется после верных ответов.
Зачем нужны VLAN
Без VLAN весь физический коммутатор — один большой домен широковещания: трафик от бухгалтерии, серверов и гостевого Wi-Fi мешается в одном сегменте, и любое устройство в принципе может оказаться в одной L2-сети с любым другим просто потому, что физически подключено к тому же коммутатору. VLAN (Virtual LAN) логически разделяет один физический коммутатор (или несколько связанных коммутаторов) на несколько независимых широковещательных доменов — как если бы это были разные физические коммутаторы, но без необходимости покупать и тянуть отдельные провода для каждой группы устройств.
Практическая выгода тройная. Во-первых, изоляция: гостевой Wi-Fi не видит внутреннюю бухгалтерскую сеть, даже если они физически подключены к одному шкафу с оборудованием. Во-вторых, контроль широковещательного шума: чем меньше устройств в одном broadcast domain, тем меньше каждое из них тратит ресурсов на обработку чужих ARP-запросов и прочего служебного трафика. В-третьих, гибкость: логическая группа (например, «отдел разработки») не привязана к конкретному этажу или шкафу — сотрудника можно физически пересадить в другую комнату, и при правильной настройке портов он останется в том же VLAN без перетяжки кабелей.
Практическая выгода тройная. Во-первых, изоляция: гостевой Wi-Fi не видит внутреннюю бухгалтерскую сеть, даже если они физически подключены к одному шкафу с оборудованием. Во-вторых, контроль широковещательного шума: чем меньше устройств в одном broadcast domain, тем меньше каждое из них тратит ресурсов на обработку чужих ARP-запросов и прочего служебного трафика. В-третьих, гибкость: логическая группа (например, «отдел разработки») не привязана к конкретному этажу или шкафу — сотрудника можно физически пересадить в другую комнату, и при правильной настройке портов он останется в том же VLAN без перетяжки кабелей.
Физически один коммутатор в одном шкафу
Коммутатор · 4 порта
VLAN 10Бухгалтерия
VLAN 20Гости
VLAN 10Бухгалтерия
VLAN 20Гости
один корпус · один блок питания · одни провода
Логически как будто два разных коммутатора
VLAN 10 — свой домен широковещания
БухгалтерияБухгалтерия
VLAN 20 — свой домен широковещания
ГостьГость
трафик одной группы вторая не увидит никогда
Слева и справа — одно и то же железо. Цвет означает номер VLAN, а не
уровень модели: здесь он ничего не говорит про OSI.
Access-порты
Access-порт смотрит в сторону конечного устройства — ПК, принтера, IP-камеры — и принадлежит ровно одному VLAN. Устройство за этим портом вообще не подозревает о существовании VLAN: оно отправляет и получает обычные нетегированные кадры Ethernet, а вся работа с тегами происходит уже внутри коммутатора, прежде чем кадр уйдёт в сторону trunk-линка. Это принципиально важно: VLAN — концепция инфраструктуры, а не конечных устройств, и обычная сетевая карта ПК понятия не имеет, в каком VLAN она работает.
Trunk-порты
Trunk-порт соединяет коммутаторы друг с другом (или коммутатор с роутером, или коммутатор с виртуализационным хостом, на котором крутится несколько VLAN сразу) и пропускает трафик нескольких VLAN одновременно по одному физическому линку. Чтобы принимающая сторона понимала, к какому VLAN относится конкретный кадр, его помечают тегом — отсюда и необходимость в стандарте 802.1Q, разобранном в следующем разделе. Без trunk пришлось бы тянуть отдельный физический кабель под каждый VLAN между каждой парой коммутаторов, что быстро становится абсурдным при росте числа VLAN.
802.1Q — как кадр помечается тегом VLAN
Стандарт IEEE 802.1Q вставляет в заголовок Ethernet дополнительные 4 байта сразу после MAC-адреса отправителя, перед полем EtherType: 2 байта TPID (фиксированное значение
На trunk-порту есть понятие native VLAN — единственный VLAN, чьи кадры передаются без тега, ради совместимости со старым оборудованием, которое вообще не умеет работать с 802.1Q. Несовпадение native VLAN на двух концах trunk-линка — частая и коварная причина проблем: трафик одного native VLAN с одной стороны коммутатор на другом конце воспринимает как трафик своего (другого) native VLAN, и два разных VLAN начинают незаметно перемешиваться именно в той части трафика, которая идёт без тега.
0x8100, сигнализирующее «это тегированный кадр, дальше идёт VLAN-информация») и 2 байта, где 3 бита отведены под приоритет (PCP, используется для QoS — тема одного из следующих уроков), 1 бит под флаг DEI, и оставшиеся 12 бит — собственно VLAN ID. 12 бит дают теоретический диапазон 0–4095, но 0 и 4095 зарезервированы стандартом, так что реально используемый диапазон — 1–4094. Из-за этих 4 добавленных байт максимальный размер кадра на trunk-линке вырастает с 1518 до 1522 байт.На trunk-порту есть понятие native VLAN — единственный VLAN, чьи кадры передаются без тега, ради совместимости со старым оборудованием, которое вообще не умеет работать с 802.1Q. Несовпадение native VLAN на двух концах trunk-линка — частая и коварная причина проблем: трафик одного native VLAN с одной стороны коммутатор на другом конце воспринимает как трафик своего (другого) native VLAN, и два разных VLAN начинают незаметно перемешиваться именно в той части трафика, которая идёт без тега.
ПК-1VLAN 10
access
без тега
без тега
Коммутатор Aпорт 1 · access
trunk
с тегом
с тегом
Коммутатор Bпорт 1 · access
access
без тега
без тега
ПК-2VLAN 10
кадр на этом участке
1518 байт
MAC получателя6 Б
MAC отправителя6 Б
802.1Q4 Б
EtherType2 Б
Данные1500 Б
FCS4 Б
Тег вставляется ровно туда, где показан, — между MAC отправителя и
EtherType. Ширина блоков не в масштабе.
Нормальный и расширенный диапазон VLAN
У многих платформ VLAN делятся на normal range (1–1005, историческое наследие, включая несколько служебных VLAN вроде 1002–1005 для устаревших технологий Token Ring/FDDI) и extended range (1006–4094). На современном оборудовании эта граница почти не имеет практического значения, но стоит знать, что VLAN 1 на многих платформах выступает default VLAN — туда автоматически попадают все access-порты, для которых явно не назначили другой VLAN, что считается плохой практикой по безопасности: лучше явно переносить рабочий трафик в отдельные VLAN, а VLAN 1 оставлять пустым или использовать только для служебных целей.
VLAN hopping — когда изоляция VLAN ломается
Несмотря на то, что VLAN создавались в том числе для изоляции, существует атака VLAN hopping, позволяющая трафику просочиться в чужой VLAN без явного разрешения. Самый известный вариант — double tagging: атакующий отправляет кадр с двумя вложенными тегами 802.1Q. Коммутатор на границе снимает внешний тег (совпадающий с native VLAN атакующего) и пересылает кадр дальше с оставшимся внутренним тегом — фактически кадр просачивается в VLAN, указанный во втором, скрытом теге. Защита простая, но часто забываемая: не использовать VLAN 1 как native VLAN на trunk-линках и явно менять native VLAN на что-то, не используемое для реального трафика.
Inter-VLAN routing — связь между VLAN
По умолчанию VLAN изолированы друг от друга на уровне L2 — устройства в разных VLAN не увидят друг друга напрямую, даже если физически сидят в соседних розетках одной комнаты. Чтобы трафик мог переходить из одного VLAN в другой, нужен узел уровня L3: либо router-on-a-stick — один физический интерфейс роутера, разделённый на subinterfaces (виртуальные под-интерфейсы), по одному на VLAN, каждый со своим IP-адресом, играющим роль шлюза для этого VLAN; либо multilayer switch с SVI (Switch Virtual Interface) — виртуальным L3-интерфейсом прямо на самом коммутаторе, без необходимости в отдельном физическом роутере вообще (большинство современных корпоративных сетей строятся именно так).
Практически это означает, что у каждого VLAN должна быть своя собственная IP-подсеть: например, VLAN 10 (бухгалтерия) —
Практически это означает, что у каждого VLAN должна быть своя собственная IP-подсеть: например, VLAN 10 (бухгалтерия) —
192.168.10.0/24 со шлюзом 192.168.10.1, VLAN 20 (гости) — 192.168.20.0/24 со шлюзом 192.168.20.1, и так далее. Маршрутизация между этими подсетями дальше работает по тем же правилам, что и обычная маршрутизация между любыми другими сетями — просто шлюзы для разных VLAN физически живут на одном устройстве.Voice VLAN и приоритизация
Отдельный практический случай — IP-телефония. IP-телефон часто подключается не напрямую в розетку, а через встроенный мини-коммутатор внутри самого аппарата, к которому в свою очередь подключается ПК пользователя — то есть на одном физическом порту коммутатора оказывается смешанный трафик и от телефона, и от компьютера. Voice VLAN — механизм, который позволяет автоматически направлять трафик телефона в отдельный VLAN (с приоритетной обработкой через QoS, разобранный в последней теме курса), а трафик компьютера — в обычный VLAN данных, хотя оба физически идут через один и тот же кабель и порт коммутатора.
Настройка VLAN — общая логика
Шаги обычно такие: 1) создать VLAN с номером (и желательно понятным именем — это сильно облегчает жизнь через год, когда придётся вспоминать, что такое VLAN 47); 2) назначить access-порты в нужный VLAN; 3) на линках между коммутаторами настроить trunk и явно разрешить список нужных VLAN. Многие платформы по умолчанию пропускают через trunk все существующие VLAN подряд — это считается плохой практикой, потому что любой новый VLAN, созданный позже кем-то по ошибке не в том месте, автоматически получит доступ ко всем trunk-линкам сети, если их не ограничить заранее явным списком разрешённых VLAN.
Как проверять / частые ошибки
show vlan brief — какие VLAN созданы и какие access-порты к ним приписаны. show interfaces trunk — какие VLAN разрешены и реально пропускаются на конкретном trunk-линке (отдельно показывает разрешённые администратором и активные VLAN — это разные списки, и несовпадение между ними тоже источник путаницы).Частые ошибки: порт по недосмотру оказался не в том VLAN; trunk не пропускает именно тот VLAN, который нужен (забыли явно разрешить); несовпадение native VLAN на двух концах линка; забыли настроить inter-VLAN routing и недоумевают, почему устройства из разных VLAN не пингуют друг друга — хотя именно так оно и должно работать без L3-узла, это не баг, а сама суть VLAN.
Команды настройки — шпаргалка
Полный цикл настройки VLAN от создания до inter-VLAN routing (Cisco-style):
# создать VLAN
vlan 10 # номер (VLAN ID), от 1 до 4094
name SALES # подпись для человека: в работе сети не участвует
# порт к конечному устройству
interface GigabitEthernet0/1
switchport mode access # access — «включено одно устройство, метки не нужны»
switchport access vlan 10 # номер того самого VLAN
# порт к соседнему коммутатору
interface GigabitEthernet0/24
switchport mode trunk # trunk — «в кабель идёт несколько VLAN,
# каждый кадр с меткой»
switchport trunk allowed vlan 10,20,30
# список через запятую: какие номера пропускать.
# Оставлять «разрешены все» по умолчанию не стоит
switchport trunk native vlan 999
# номер VLAN, кадры которого идут БЕЗ метки.
# Делают отличным от VLAN 1 против VLAN hopping
# маршрутизация между VLAN на самом коммутаторе
interface vlan 10 # SVI: число — номер обслуживаемого VLAN
ip address 192.168.10.1 255.255.255.0
# адрес шлюза для этой сети и маска в
# десятичном виде отдельным аргументом
ip routing # глобально включить маршрутизацию. Без неё SVI
# не понесут трафик, даже имея адреса
# проверка
show vlan brief # какие VLAN заведены и какие порты в них
show interfaces trunk # какие порты транки и что по ним разрешеноКонтрольные вопросы
Дальше — лабораторная работа «VLAN: раздели сеть на коммутаторах»
Для неё нужен аккаунт: стенд поднимается персонально под вас — свои роутеры, свои конфиги, никто в них не мешает. Регистрация — почта и пароль.
Теория прочитана. Дальше — руками.
Личный стенд из настоящих роутеров разворачивается за секунды. Платформа проверяет не ответы на тесты, а состояние вашей сети: поднялись ли соседства, сошлись ли маршруты, ходит ли ping. Рядом — AI-наставник, который видит ваши конфиги и ведёт к решению, не выдавая готовое.
Начать бесплатно →
бета открыта, доступ бесплатный